diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 221da081..00000000 --- a/.eslintignore +++ /dev/null @@ -1,5 +0,0 @@ -**/node_modules/** -**/docs/** -**/dist/** -**/build/** -**/lib/** diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 8faf3d22..00000000 --- a/.eslintrc +++ /dev/null @@ -1,24 +0,0 @@ -{ - "env": { - "node": true - }, - "parserOptions": { - "project": "./tsconfig.json" - }, - "ignorePatterns": [ - "typedoc.js", - "docs/*" - ], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - "prettier" - ], - "root": true, - "rules": { - "@typescript-eslint/explicit-function-return-type": "off", - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-empty-interface": "off" - } -} \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 15ecfeee..e57d2c85 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,43 +1,49 @@ name: Test on: - # Trigger the workflow on push or pull request, - # but only for the master branch - push: - branches: - - master - pull_request: - branches: - - master + push: + branches: + - master + pull_request: + branches: + - master jobs: - build: - runs-on: ubuntu-latest + build: + runs-on: ubuntu-latest - strategy: - matrix: - node-version: [14.x, 16.x, 18.x] - mongodb-version: [4.2, 4.2, 4.4, 5.0] + strategy: + matrix: + node-version: [20.x, 22.x] + mongodb-version: ['8.0'] - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} - - name: Start MongoDB - uses: supercharge/mongodb-github-action@1.3.0 - with: - mongodb-version: ${{ matrix.mongodb-version }} - mongodb-replica-set: test-rs - - name: install, build, and test - run: | - yarn install - yarn run lint - yarn run build - yarn run test:cov - - name: Codecov - uses: codecov/codecov-action@v2 - with: - file: ./coverage/coverage-final.json - fail_ci_if_error: true + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: Start MongoDB + uses: supercharge/mongodb-github-action@1.12.0 + with: + mongodb-version: ${{ matrix.mongodb-version }} + mongodb-replica-set: rs0 + - name: install + run: | + yarn install + - name: lint + run: | + yarn run lint + - name: test + run: | + yarn run test:cov + env: + DBTEST: mongodb://localhost/nestjs-mongo?replicaSet=rs0 + - name: build + run: | + yarn run build + - name: Codecov + uses: codecov/codecov-action@v5 + with: + files: ./coverage/coverage-final.json + fail_ci_if_error: true diff --git a/.npmignore b/.npmignore index b0664ec0..918bc4a8 100755 --- a/.npmignore +++ b/.npmignore @@ -6,6 +6,7 @@ test/ .gitignore tsconfig.json tsconfig.build.json +tsconfig.build.tsbuildinfo typedoc.js yarn.lock renovate.json diff --git a/.oxlintrc.json b/.oxlintrc.json new file mode 100644 index 00000000..257d313f --- /dev/null +++ b/.oxlintrc.json @@ -0,0 +1,26 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": ["import", "react", "typescript", "unicorn"], + "globals": {}, + "settings": {}, + "ignorePatterns": ["dist/", "node_modules/", "build/", "coverage/", "docs/", "logs/", "tmp/"], + "rules": { + "eqeqeq": "warn", + "import/no-cycle": "error", + "react/self-closing-comp": [ + "error", + { + "html": false + } + ], + "@typescript-eslint/no-unsafe-declaration-merging": "off" + }, + "overrides": [ + { + "files": ["*.test.ts", "*.spec.ts"], + "rules": { + "@typescript-eslint/no-explicit-any": "off" + } + } + ] +} diff --git a/.prettierrc b/.prettierrc index e764a4bc..f5b6e40f 100755 --- a/.prettierrc +++ b/.prettierrc @@ -1,7 +1,7 @@ { "singleQuote": true, - "tabWidth": 4, - "semi": true, + "tabWidth": 2, + "semi": false, "trailingComma": "none", "printWidth": 120 } diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index a794a062..00000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "recommendations": [ - "sanaajani.taskrunnercode", - "esbenp.prettier-vscode", - "dbaeumer.vscode-eslint", - "rbbit.typescript-hero" - ] -} diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100755 index 4c759c7f..00000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "type": "node", - "request": "attach", - "name": "Debug node", - "port": 9229 - }, - { - "type": "node", - "request": "launch", - "name": "start:watch", - "runtimeExecutable": "yarn", - "runtimeArgs": ["run", "start:watch"], - "env": { - "AWS_PROFILE": "gv", - "NODE_CONFIG_DIR": "${env:HOME}/.gv" - } - } - ] -} diff --git a/.vscode/settings.json b/.vscode/settings.json index a77f2331..ad9a5908 100755 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,32 +1,9 @@ { - "eslint.validate": ["typescript", "javascript"], - "typescript.tsdk": "./node_modules/typescript/lib", - "editor.formatOnSave": true, - "editor.codeActionsOnSave": { - "source.fixAll.eslint": true, - "source.organizeImports": true - }, - "[javascript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[javascriptreact]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[typescript]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[typescriptreact]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[json]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "[graphql]": { - "editor.defaultFormatter": "esbenp.prettier-vscode" - }, - "typescript.tsc.autoDetect": "off", - "grunt.autoDetect": "off", - "jake.autoDetect": "off", - "gulp.autoDetect": "off", - "npm.autoDetect": "off" + "eslint.validate": ["typescript", "javascript"], + "typescript.tsdk": "./node_modules/typescript/lib", + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.fixAll.oxc": "explicit", + "source.organizeImports": "explicit" + } } diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 100644 index 38a703e5..00000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "version": "2.0.0", - "osx": { - "options": { - "env": { - "AWS_PROFILE": "gv", - "NODE_CONFIG_DIR": "${env:HOME}/.gv" - } - }, - "presentation":{ - "echo": true, - "reveal": "always", - "focus": true, - "panel": "shared", - "showReuseMessage": true, - "clear": true - } - }, - "tasks": [ - { - "label": "lint", - "type": "shell", - "command": "yarn run lint", - }, - { - "label": "test", - "type": "shell", - "dependsOrder": "sequence", - "command": "yarn run test", - }, - { - "label": "format", - "type": "shell", - "command": "yarn run format", - } - ] -} diff --git a/.yarnrc.yml b/.yarnrc.yml deleted file mode 100644 index 19d3e224..00000000 --- a/.yarnrc.yml +++ /dev/null @@ -1 +0,0 @@ -yarnPath: .yarn/releases/yarn-3.2.0.cjs diff --git a/docs/assets/hierarchy.js b/docs/assets/hierarchy.js new file mode 100644 index 00000000..33f2f6a1 --- /dev/null +++ b/docs/assets/hierarchy.js @@ -0,0 +1 @@ +window.hierarchyData = "eJyllMtOwzAQRf9l1i740cRtlgiQWCAqWKIuTDOlFq5bbHcBVf4dJRGVW9I8yipSPPfe45lJ9uA2m+AhexWUEpEKIrmcE3C4NLgIemM9ZHsQlJYPq9YIGdwoj89oVHW80ttHDCpXQQGBD21zyHiSEtg5AxloG9At1QL99TnZ1SqsDRBYGOU9ZBB8Pip9RgdtebjSJndoK1JJBEvnBQFBZcTVZP60rS/Rjtai7EFXgrC0A+QCgp7RqTgTPdNbPMQyPvmNrfxOMsvas3n1i+MhSF4NQPKj8M+ddpgPg2jWdMCU2RN2spR3Nujw9RCtTdc+nigGr+KUVV2YxiTDKP5JMKbVHMaU/yFo63pd0d3jRMQ3u9cmoGvzrSt6+CYx70y9a6sC5rfxh9Jgf1TYnSJ5/Ht4QaeV0d/qzWDf6TRqBm/JhJEx5SQRjCQJnxdF8QNY/tO8" \ No newline at end of file diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css index d560c2dd..4f0e11b4 100644 --- a/docs/assets/highlight.css +++ b/docs/assets/highlight.css @@ -1,21 +1,25 @@ :root { - --light-hl-0: #000000; - --dark-hl-0: #D4D4D4; - --light-hl-1: #008000; - --dark-hl-1: #6A9955; - --light-hl-2: #AF00DB; - --dark-hl-2: #C586C0; - --light-hl-3: #001080; - --dark-hl-3: #9CDCFE; - --light-hl-4: #A31515; - --dark-hl-4: #CE9178; - --light-hl-5: #795E26; - --dark-hl-5: #DCDCAA; + --light-hl-0: #795E26; + --dark-hl-0: #DCDCAA; + --light-hl-1: #000000; + --dark-hl-1: #D4D4D4; + --light-hl-2: #A31515; + --dark-hl-2: #CE9178; + --light-hl-3: #008000; + --dark-hl-3: #6A9955; + --light-hl-4: #AF00DB; + --dark-hl-4: #C586C0; + --light-hl-5: #001080; + --dark-hl-5: #9CDCFE; --light-hl-6: #267F99; --dark-hl-6: #4EC9B0; --light-hl-7: #0000FF; --dark-hl-7: #569CD6; - --light-code-background: #F5F5F5; + --light-hl-8: #0070C1; + --dark-hl-8: #4FC1FF; + --light-hl-9: #098658; + --dark-hl-9: #B5CEA8; + --light-code-background: #FFFFFF; --dark-code-background: #1E1E1E; } @@ -28,6 +32,8 @@ --hl-5: var(--light-hl-5); --hl-6: var(--light-hl-6); --hl-7: var(--light-hl-7); + --hl-8: var(--light-hl-8); + --hl-9: var(--light-hl-9); --code-background: var(--light-code-background); } } @@ -40,10 +46,12 @@ --hl-5: var(--dark-hl-5); --hl-6: var(--dark-hl-6); --hl-7: var(--dark-hl-7); + --hl-8: var(--dark-hl-8); + --hl-9: var(--dark-hl-9); --code-background: var(--dark-code-background); } } -body.light { +:root[data-theme='light'] { --hl-0: var(--light-hl-0); --hl-1: var(--light-hl-1); --hl-2: var(--light-hl-2); @@ -52,10 +60,12 @@ body.light { --hl-5: var(--light-hl-5); --hl-6: var(--light-hl-6); --hl-7: var(--light-hl-7); + --hl-8: var(--light-hl-8); + --hl-9: var(--light-hl-9); --code-background: var(--light-code-background); } -body.dark { +:root[data-theme='dark'] { --hl-0: var(--dark-hl-0); --hl-1: var(--dark-hl-1); --hl-2: var(--dark-hl-2); @@ -64,6 +74,8 @@ body.dark { --hl-5: var(--dark-hl-5); --hl-6: var(--dark-hl-6); --hl-7: var(--dark-hl-7); + --hl-8: var(--dark-hl-8); + --hl-9: var(--dark-hl-9); --code-background: var(--dark-code-background); } @@ -75,4 +87,6 @@ body.dark { .hl-5 { color: var(--hl-5); } .hl-6 { color: var(--hl-6); } .hl-7 { color: var(--hl-7); } +.hl-8 { color: var(--hl-8); } +.hl-9 { color: var(--hl-9); } pre, code { background: var(--code-background); } diff --git a/docs/assets/icons.css b/docs/assets/icons.css deleted file mode 100644 index 776a3562..00000000 --- a/docs/assets/icons.css +++ /dev/null @@ -1,1043 +0,0 @@ -.tsd-kind-icon { - display: block; - position: relative; - padding-left: 20px; - text-indent: -20px; -} -.tsd-kind-icon:before { - content: ""; - display: inline-block; - vertical-align: middle; - width: 17px; - height: 17px; - margin: 0 3px 2px 0; - background-image: url(./icons.png); -} -@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) { - .tsd-kind-icon:before { - background-image: url(./icons@2x.png); - background-size: 238px 204px; - } -} - -.tsd-signature.tsd-kind-icon:before { - background-position: 0 -153px; -} - -.tsd-kind-object-literal > .tsd-kind-icon:before { - background-position: 0px -17px; -} -.tsd-kind-object-literal.tsd-is-protected > .tsd-kind-icon:before { - background-position: -17px -17px; -} -.tsd-kind-object-literal.tsd-is-private > .tsd-kind-icon:before { - background-position: -34px -17px; -} - -.tsd-kind-class > .tsd-kind-icon:before { - background-position: 0px -34px; -} -.tsd-kind-class.tsd-is-protected > .tsd-kind-icon:before { - background-position: -17px -34px; -} -.tsd-kind-class.tsd-is-private > .tsd-kind-icon:before { - background-position: -34px -34px; -} - -.tsd-kind-class.tsd-has-type-parameter > .tsd-kind-icon:before { - background-position: 0px -51px; -} -.tsd-kind-class.tsd-has-type-parameter.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -17px -51px; -} -.tsd-kind-class.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { - background-position: -34px -51px; -} - -.tsd-kind-interface > .tsd-kind-icon:before { - background-position: 0px -68px; -} -.tsd-kind-interface.tsd-is-protected > .tsd-kind-icon:before { - background-position: -17px -68px; -} -.tsd-kind-interface.tsd-is-private > .tsd-kind-icon:before { - background-position: -34px -68px; -} - -.tsd-kind-interface.tsd-has-type-parameter > .tsd-kind-icon:before { - background-position: 0px -85px; -} -.tsd-kind-interface.tsd-has-type-parameter.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -17px -85px; -} -.tsd-kind-interface.tsd-has-type-parameter.tsd-is-private - > .tsd-kind-icon:before { - background-position: -34px -85px; -} - -.tsd-kind-namespace > .tsd-kind-icon:before { - background-position: 0px -102px; -} -.tsd-kind-namespace.tsd-is-protected > .tsd-kind-icon:before { - background-position: -17px -102px; -} -.tsd-kind-namespace.tsd-is-private > .tsd-kind-icon:before { - background-position: -34px -102px; -} - -.tsd-kind-module > .tsd-kind-icon:before { - background-position: 0px -102px; -} -.tsd-kind-module.tsd-is-protected > .tsd-kind-icon:before { - background-position: -17px -102px; -} -.tsd-kind-module.tsd-is-private > .tsd-kind-icon:before { - background-position: -34px -102px; -} - -.tsd-kind-enum > .tsd-kind-icon:before { - background-position: 0px -119px; -} -.tsd-kind-enum.tsd-is-protected > .tsd-kind-icon:before { - background-position: -17px -119px; -} -.tsd-kind-enum.tsd-is-private > .tsd-kind-icon:before { - background-position: -34px -119px; -} - -.tsd-kind-enum-member > .tsd-kind-icon:before { - background-position: 0px -136px; -} -.tsd-kind-enum-member.tsd-is-protected > .tsd-kind-icon:before { - background-position: -17px -136px; -} -.tsd-kind-enum-member.tsd-is-private > .tsd-kind-icon:before { - background-position: -34px -136px; -} - -.tsd-kind-signature > .tsd-kind-icon:before { - background-position: 0px -153px; -} -.tsd-kind-signature.tsd-is-protected > .tsd-kind-icon:before { - background-position: -17px -153px; -} -.tsd-kind-signature.tsd-is-private > .tsd-kind-icon:before { - background-position: -34px -153px; -} - -.tsd-kind-type-alias > .tsd-kind-icon:before { - background-position: 0px -170px; -} -.tsd-kind-type-alias.tsd-is-protected > .tsd-kind-icon:before { - background-position: -17px -170px; -} -.tsd-kind-type-alias.tsd-is-private > .tsd-kind-icon:before { - background-position: -34px -170px; -} - -.tsd-kind-type-alias.tsd-has-type-parameter > .tsd-kind-icon:before { - background-position: 0px -187px; -} -.tsd-kind-type-alias.tsd-has-type-parameter.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -17px -187px; -} -.tsd-kind-type-alias.tsd-has-type-parameter.tsd-is-private - > .tsd-kind-icon:before { - background-position: -34px -187px; -} - -.tsd-kind-variable > .tsd-kind-icon:before { - background-position: -136px -0px; -} -.tsd-kind-variable.tsd-is-protected > .tsd-kind-icon:before { - background-position: -153px -0px; -} -.tsd-kind-variable.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -0px; -} -.tsd-kind-variable.tsd-parent-kind-class > .tsd-kind-icon:before { - background-position: -51px -0px; -} -.tsd-kind-variable.tsd-parent-kind-class.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -68px -0px; -} -.tsd-kind-variable.tsd-parent-kind-class.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -85px -0px; -} -.tsd-kind-variable.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -0px; -} -.tsd-kind-variable.tsd-parent-kind-class.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -0px; -} -.tsd-kind-variable.tsd-parent-kind-enum > .tsd-kind-icon:before { - background-position: -170px -0px; -} -.tsd-kind-variable.tsd-parent-kind-enum.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -187px -0px; -} -.tsd-kind-variable.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -0px; -} -.tsd-kind-variable.tsd-parent-kind-interface > .tsd-kind-icon:before { - background-position: -204px -0px; -} -.tsd-kind-variable.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -0px; -} - -.tsd-kind-property > .tsd-kind-icon:before { - background-position: -136px -0px; -} -.tsd-kind-property.tsd-is-protected > .tsd-kind-icon:before { - background-position: -153px -0px; -} -.tsd-kind-property.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -0px; -} -.tsd-kind-property.tsd-parent-kind-class > .tsd-kind-icon:before { - background-position: -51px -0px; -} -.tsd-kind-property.tsd-parent-kind-class.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -68px -0px; -} -.tsd-kind-property.tsd-parent-kind-class.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -85px -0px; -} -.tsd-kind-property.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -0px; -} -.tsd-kind-property.tsd-parent-kind-class.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -0px; -} -.tsd-kind-property.tsd-parent-kind-enum > .tsd-kind-icon:before { - background-position: -170px -0px; -} -.tsd-kind-property.tsd-parent-kind-enum.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -187px -0px; -} -.tsd-kind-property.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -0px; -} -.tsd-kind-property.tsd-parent-kind-interface > .tsd-kind-icon:before { - background-position: -204px -0px; -} -.tsd-kind-property.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -0px; -} - -.tsd-kind-get-signature > .tsd-kind-icon:before { - background-position: -136px -17px; -} -.tsd-kind-get-signature.tsd-is-protected > .tsd-kind-icon:before { - background-position: -153px -17px; -} -.tsd-kind-get-signature.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -17px; -} -.tsd-kind-get-signature.tsd-parent-kind-class > .tsd-kind-icon:before { - background-position: -51px -17px; -} -.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -68px -17px; -} -.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -85px -17px; -} -.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -17px; -} -.tsd-kind-get-signature.tsd-parent-kind-class.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -17px; -} -.tsd-kind-get-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { - background-position: -170px -17px; -} -.tsd-kind-get-signature.tsd-parent-kind-enum.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -187px -17px; -} -.tsd-kind-get-signature.tsd-parent-kind-enum.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -17px; -} -.tsd-kind-get-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { - background-position: -204px -17px; -} -.tsd-kind-get-signature.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -17px; -} - -.tsd-kind-set-signature > .tsd-kind-icon:before { - background-position: -136px -34px; -} -.tsd-kind-set-signature.tsd-is-protected > .tsd-kind-icon:before { - background-position: -153px -34px; -} -.tsd-kind-set-signature.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -34px; -} -.tsd-kind-set-signature.tsd-parent-kind-class > .tsd-kind-icon:before { - background-position: -51px -34px; -} -.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -68px -34px; -} -.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -85px -34px; -} -.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -34px; -} -.tsd-kind-set-signature.tsd-parent-kind-class.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -34px; -} -.tsd-kind-set-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { - background-position: -170px -34px; -} -.tsd-kind-set-signature.tsd-parent-kind-enum.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -187px -34px; -} -.tsd-kind-set-signature.tsd-parent-kind-enum.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -34px; -} -.tsd-kind-set-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { - background-position: -204px -34px; -} -.tsd-kind-set-signature.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -34px; -} - -.tsd-kind-accessor > .tsd-kind-icon:before { - background-position: -136px -51px; -} -.tsd-kind-accessor.tsd-is-protected > .tsd-kind-icon:before { - background-position: -153px -51px; -} -.tsd-kind-accessor.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -51px; -} -.tsd-kind-accessor.tsd-parent-kind-class > .tsd-kind-icon:before { - background-position: -51px -51px; -} -.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -68px -51px; -} -.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -85px -51px; -} -.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -51px; -} -.tsd-kind-accessor.tsd-parent-kind-class.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -51px; -} -.tsd-kind-accessor.tsd-parent-kind-enum > .tsd-kind-icon:before { - background-position: -170px -51px; -} -.tsd-kind-accessor.tsd-parent-kind-enum.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -187px -51px; -} -.tsd-kind-accessor.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -51px; -} -.tsd-kind-accessor.tsd-parent-kind-interface > .tsd-kind-icon:before { - background-position: -204px -51px; -} -.tsd-kind-accessor.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -51px; -} - -.tsd-kind-function > .tsd-kind-icon:before { - background-position: -136px -68px; -} -.tsd-kind-function.tsd-is-protected > .tsd-kind-icon:before { - background-position: -153px -68px; -} -.tsd-kind-function.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -68px; -} -.tsd-kind-function.tsd-parent-kind-class > .tsd-kind-icon:before { - background-position: -51px -68px; -} -.tsd-kind-function.tsd-parent-kind-class.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -68px -68px; -} -.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -85px -68px; -} -.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -68px; -} -.tsd-kind-function.tsd-parent-kind-class.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -68px; -} -.tsd-kind-function.tsd-parent-kind-enum > .tsd-kind-icon:before { - background-position: -170px -68px; -} -.tsd-kind-function.tsd-parent-kind-enum.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -187px -68px; -} -.tsd-kind-function.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -68px; -} -.tsd-kind-function.tsd-parent-kind-interface > .tsd-kind-icon:before { - background-position: -204px -68px; -} -.tsd-kind-function.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -68px; -} - -.tsd-kind-method > .tsd-kind-icon:before { - background-position: -136px -68px; -} -.tsd-kind-method.tsd-is-protected > .tsd-kind-icon:before { - background-position: -153px -68px; -} -.tsd-kind-method.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -68px; -} -.tsd-kind-method.tsd-parent-kind-class > .tsd-kind-icon:before { - background-position: -51px -68px; -} -.tsd-kind-method.tsd-parent-kind-class.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -68px -68px; -} -.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -85px -68px; -} -.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -68px; -} -.tsd-kind-method.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -68px; -} -.tsd-kind-method.tsd-parent-kind-enum > .tsd-kind-icon:before { - background-position: -170px -68px; -} -.tsd-kind-method.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { - background-position: -187px -68px; -} -.tsd-kind-method.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -68px; -} -.tsd-kind-method.tsd-parent-kind-interface > .tsd-kind-icon:before { - background-position: -204px -68px; -} -.tsd-kind-method.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -68px; -} - -.tsd-kind-call-signature > .tsd-kind-icon:before { - background-position: -136px -68px; -} -.tsd-kind-call-signature.tsd-is-protected > .tsd-kind-icon:before { - background-position: -153px -68px; -} -.tsd-kind-call-signature.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -68px; -} -.tsd-kind-call-signature.tsd-parent-kind-class > .tsd-kind-icon:before { - background-position: -51px -68px; -} -.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -68px -68px; -} -.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -85px -68px; -} -.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -68px; -} -.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -68px; -} -.tsd-kind-call-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { - background-position: -170px -68px; -} -.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -187px -68px; -} -.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -68px; -} -.tsd-kind-call-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { - background-position: -204px -68px; -} -.tsd-kind-call-signature.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -68px; -} - -.tsd-kind-function.tsd-has-type-parameter > .tsd-kind-icon:before { - background-position: -136px -85px; -} -.tsd-kind-function.tsd-has-type-parameter.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -153px -85px; -} -.tsd-kind-function.tsd-has-type-parameter.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -85px; -} -.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class - > .tsd-kind-icon:before { - background-position: -51px -85px; -} -.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -68px -85px; -} -.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -85px -85px; -} -.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -85px; -} -.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -85px; -} -.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum - > .tsd-kind-icon:before { - background-position: -170px -85px; -} -.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -187px -85px; -} -.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -85px; -} -.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-interface - > .tsd-kind-icon:before { - background-position: -204px -85px; -} -.tsd-kind-function.tsd-has-type-parameter.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -85px; -} - -.tsd-kind-method.tsd-has-type-parameter > .tsd-kind-icon:before { - background-position: -136px -85px; -} -.tsd-kind-method.tsd-has-type-parameter.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -153px -85px; -} -.tsd-kind-method.tsd-has-type-parameter.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -85px; -} -.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class - > .tsd-kind-icon:before { - background-position: -51px -85px; -} -.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -68px -85px; -} -.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -85px -85px; -} -.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -85px; -} -.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-class.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -85px; -} -.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum - > .tsd-kind-icon:before { - background-position: -170px -85px; -} -.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -187px -85px; -} -.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-enum.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -85px; -} -.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-interface - > .tsd-kind-icon:before { - background-position: -204px -85px; -} -.tsd-kind-method.tsd-has-type-parameter.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -85px; -} - -.tsd-kind-constructor > .tsd-kind-icon:before { - background-position: -136px -102px; -} -.tsd-kind-constructor.tsd-is-protected > .tsd-kind-icon:before { - background-position: -153px -102px; -} -.tsd-kind-constructor.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -102px; -} -.tsd-kind-constructor.tsd-parent-kind-class > .tsd-kind-icon:before { - background-position: -51px -102px; -} -.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -68px -102px; -} -.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -85px -102px; -} -.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -102px; -} -.tsd-kind-constructor.tsd-parent-kind-class.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -102px; -} -.tsd-kind-constructor.tsd-parent-kind-enum > .tsd-kind-icon:before { - background-position: -170px -102px; -} -.tsd-kind-constructor.tsd-parent-kind-enum.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -187px -102px; -} -.tsd-kind-constructor.tsd-parent-kind-enum.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -102px; -} -.tsd-kind-constructor.tsd-parent-kind-interface > .tsd-kind-icon:before { - background-position: -204px -102px; -} -.tsd-kind-constructor.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -102px; -} - -.tsd-kind-constructor-signature > .tsd-kind-icon:before { - background-position: -136px -102px; -} -.tsd-kind-constructor-signature.tsd-is-protected > .tsd-kind-icon:before { - background-position: -153px -102px; -} -.tsd-kind-constructor-signature.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -102px; -} -.tsd-kind-constructor-signature.tsd-parent-kind-class > .tsd-kind-icon:before { - background-position: -51px -102px; -} -.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -68px -102px; -} -.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -85px -102px; -} -.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -102px; -} -.tsd-kind-constructor-signature.tsd-parent-kind-class.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -102px; -} -.tsd-kind-constructor-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { - background-position: -170px -102px; -} -.tsd-kind-constructor-signature.tsd-parent-kind-enum.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -187px -102px; -} -.tsd-kind-constructor-signature.tsd-parent-kind-enum.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -102px; -} -.tsd-kind-constructor-signature.tsd-parent-kind-interface - > .tsd-kind-icon:before { - background-position: -204px -102px; -} -.tsd-kind-constructor-signature.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -102px; -} - -.tsd-kind-index-signature > .tsd-kind-icon:before { - background-position: -136px -119px; -} -.tsd-kind-index-signature.tsd-is-protected > .tsd-kind-icon:before { - background-position: -153px -119px; -} -.tsd-kind-index-signature.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -119px; -} -.tsd-kind-index-signature.tsd-parent-kind-class > .tsd-kind-icon:before { - background-position: -51px -119px; -} -.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -68px -119px; -} -.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -85px -119px; -} -.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -119px; -} -.tsd-kind-index-signature.tsd-parent-kind-class.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -119px; -} -.tsd-kind-index-signature.tsd-parent-kind-enum > .tsd-kind-icon:before { - background-position: -170px -119px; -} -.tsd-kind-index-signature.tsd-parent-kind-enum.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -187px -119px; -} -.tsd-kind-index-signature.tsd-parent-kind-enum.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -119px; -} -.tsd-kind-index-signature.tsd-parent-kind-interface > .tsd-kind-icon:before { - background-position: -204px -119px; -} -.tsd-kind-index-signature.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -119px; -} - -.tsd-kind-event > .tsd-kind-icon:before { - background-position: -136px -136px; -} -.tsd-kind-event.tsd-is-protected > .tsd-kind-icon:before { - background-position: -153px -136px; -} -.tsd-kind-event.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -136px; -} -.tsd-kind-event.tsd-parent-kind-class > .tsd-kind-icon:before { - background-position: -51px -136px; -} -.tsd-kind-event.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { - background-position: -68px -136px; -} -.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { - background-position: -85px -136px; -} -.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -136px; -} -.tsd-kind-event.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -136px; -} -.tsd-kind-event.tsd-parent-kind-enum > .tsd-kind-icon:before { - background-position: -170px -136px; -} -.tsd-kind-event.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { - background-position: -187px -136px; -} -.tsd-kind-event.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -136px; -} -.tsd-kind-event.tsd-parent-kind-interface > .tsd-kind-icon:before { - background-position: -204px -136px; -} -.tsd-kind-event.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -136px; -} - -.tsd-is-static > .tsd-kind-icon:before { - background-position: -136px -153px; -} -.tsd-is-static.tsd-is-protected > .tsd-kind-icon:before { - background-position: -153px -153px; -} -.tsd-is-static.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -153px; -} -.tsd-is-static.tsd-parent-kind-class > .tsd-kind-icon:before { - background-position: -51px -153px; -} -.tsd-is-static.tsd-parent-kind-class.tsd-is-inherited > .tsd-kind-icon:before { - background-position: -68px -153px; -} -.tsd-is-static.tsd-parent-kind-class.tsd-is-protected > .tsd-kind-icon:before { - background-position: -85px -153px; -} -.tsd-is-static.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -153px; -} -.tsd-is-static.tsd-parent-kind-class.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -153px; -} -.tsd-is-static.tsd-parent-kind-enum > .tsd-kind-icon:before { - background-position: -170px -153px; -} -.tsd-is-static.tsd-parent-kind-enum.tsd-is-protected > .tsd-kind-icon:before { - background-position: -187px -153px; -} -.tsd-is-static.tsd-parent-kind-enum.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -153px; -} -.tsd-is-static.tsd-parent-kind-interface > .tsd-kind-icon:before { - background-position: -204px -153px; -} -.tsd-is-static.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -153px; -} - -.tsd-is-static.tsd-kind-function > .tsd-kind-icon:before { - background-position: -136px -170px; -} -.tsd-is-static.tsd-kind-function.tsd-is-protected > .tsd-kind-icon:before { - background-position: -153px -170px; -} -.tsd-is-static.tsd-kind-function.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -170px; -} -.tsd-is-static.tsd-kind-function.tsd-parent-kind-class > .tsd-kind-icon:before { - background-position: -51px -170px; -} -.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -68px -170px; -} -.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -85px -170px; -} -.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -170px; -} -.tsd-is-static.tsd-kind-function.tsd-parent-kind-class.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -170px; -} -.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum > .tsd-kind-icon:before { - background-position: -170px -170px; -} -.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -187px -170px; -} -.tsd-is-static.tsd-kind-function.tsd-parent-kind-enum.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -170px; -} -.tsd-is-static.tsd-kind-function.tsd-parent-kind-interface - > .tsd-kind-icon:before { - background-position: -204px -170px; -} -.tsd-is-static.tsd-kind-function.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -170px; -} - -.tsd-is-static.tsd-kind-method > .tsd-kind-icon:before { - background-position: -136px -170px; -} -.tsd-is-static.tsd-kind-method.tsd-is-protected > .tsd-kind-icon:before { - background-position: -153px -170px; -} -.tsd-is-static.tsd-kind-method.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -170px; -} -.tsd-is-static.tsd-kind-method.tsd-parent-kind-class > .tsd-kind-icon:before { - background-position: -51px -170px; -} -.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -68px -170px; -} -.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -85px -170px; -} -.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -170px; -} -.tsd-is-static.tsd-kind-method.tsd-parent-kind-class.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -170px; -} -.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum > .tsd-kind-icon:before { - background-position: -170px -170px; -} -.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -187px -170px; -} -.tsd-is-static.tsd-kind-method.tsd-parent-kind-enum.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -170px; -} -.tsd-is-static.tsd-kind-method.tsd-parent-kind-interface - > .tsd-kind-icon:before { - background-position: -204px -170px; -} -.tsd-is-static.tsd-kind-method.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -170px; -} - -.tsd-is-static.tsd-kind-call-signature > .tsd-kind-icon:before { - background-position: -136px -170px; -} -.tsd-is-static.tsd-kind-call-signature.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -153px -170px; -} -.tsd-is-static.tsd-kind-call-signature.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -170px; -} -.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class - > .tsd-kind-icon:before { - background-position: -51px -170px; -} -.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -68px -170px; -} -.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -85px -170px; -} -.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -170px; -} -.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-class.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -170px; -} -.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum - > .tsd-kind-icon:before { - background-position: -170px -170px; -} -.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -187px -170px; -} -.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-enum.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -170px; -} -.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-interface - > .tsd-kind-icon:before { - background-position: -204px -170px; -} -.tsd-is-static.tsd-kind-call-signature.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -170px; -} - -.tsd-is-static.tsd-kind-event > .tsd-kind-icon:before { - background-position: -136px -187px; -} -.tsd-is-static.tsd-kind-event.tsd-is-protected > .tsd-kind-icon:before { - background-position: -153px -187px; -} -.tsd-is-static.tsd-kind-event.tsd-is-private > .tsd-kind-icon:before { - background-position: -119px -187px; -} -.tsd-is-static.tsd-kind-event.tsd-parent-kind-class > .tsd-kind-icon:before { - background-position: -51px -187px; -} -.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -68px -187px; -} -.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -85px -187px; -} -.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-protected.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -102px -187px; -} -.tsd-is-static.tsd-kind-event.tsd-parent-kind-class.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -187px; -} -.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum > .tsd-kind-icon:before { - background-position: -170px -187px; -} -.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum.tsd-is-protected - > .tsd-kind-icon:before { - background-position: -187px -187px; -} -.tsd-is-static.tsd-kind-event.tsd-parent-kind-enum.tsd-is-private - > .tsd-kind-icon:before { - background-position: -119px -187px; -} -.tsd-is-static.tsd-kind-event.tsd-parent-kind-interface - > .tsd-kind-icon:before { - background-position: -204px -187px; -} -.tsd-is-static.tsd-kind-event.tsd-parent-kind-interface.tsd-is-inherited - > .tsd-kind-icon:before { - background-position: -221px -187px; -} diff --git a/docs/assets/icons.js b/docs/assets/icons.js new file mode 100644 index 00000000..58882d76 --- /dev/null +++ b/docs/assets/icons.js @@ -0,0 +1,18 @@ +(function() { + addIcons(); + function addIcons() { + if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons); + const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg")); + svg.innerHTML = `MMNEPVFCICPMFPCPTTAAATR`; + svg.style.display = "none"; + if (location.protocol === "file:") updateUseElements(); + } + + function updateUseElements() { + document.querySelectorAll("use").forEach(el => { + if (el.getAttribute("href").includes("#icon-")) { + el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#")); + } + }); + } +})() \ No newline at end of file diff --git a/docs/assets/icons.png b/docs/assets/icons.png deleted file mode 100644 index 3836d5fe..00000000 Binary files a/docs/assets/icons.png and /dev/null differ diff --git a/docs/assets/icons.svg b/docs/assets/icons.svg new file mode 100644 index 00000000..50ad5799 --- /dev/null +++ b/docs/assets/icons.svg @@ -0,0 +1 @@ +MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file diff --git a/docs/assets/icons@2x.png b/docs/assets/icons@2x.png deleted file mode 100644 index 5a209e2f..00000000 Binary files a/docs/assets/icons@2x.png and /dev/null differ diff --git a/docs/assets/main.js b/docs/assets/main.js index 99f331b2..19bbb7a7 100644 --- a/docs/assets/main.js +++ b/docs/assets/main.js @@ -1,52 +1,60 @@ -(()=>{var Ce=Object.create;var J=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,_e=Object.prototype.hasOwnProperty;var Me=t=>J(t,"__esModule",{value:!0});var Fe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var De=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Oe(e))!_e.call(t,i)&&(r||i!=="default")&&J(t,i,{get:()=>e[i],enumerable:!(n=Pe(e,i))||n.enumerable});return t},Ae=(t,e)=>De(Me(J(t!=null?Ce(Re(t)):{},"default",!e&&t&&t.__esModule?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);var de=Fe((ce,he)=>{(function(){var t=function(e){var r=new t.Builder;return r.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),r.searchPipeline.add(t.stemmer),e.call(r,r),r.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(r){e.console&&console.warn&&console.warn(r)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var r=Object.create(null),n=Object.keys(e),i=0;i0){var h=t.utils.clone(r)||{};h.position=[a,l],h.index=s.length,s.push(new t.Token(n.slice(a,o),h))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,r){r in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+r),e.label=r,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var r=e.label&&e.label in this.registeredFunctions;r||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var r=new t.Pipeline;return e.forEach(function(n){var i=t.Pipeline.registeredFunctions[n];if(i)r.add(i);else throw new Error("Cannot load unregistered function: "+n)}),r},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(r){t.Pipeline.warnIfFunctionNotRegistered(r),this._stack.push(r)},this)},t.Pipeline.prototype.after=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");n=n+1,this._stack.splice(n,0,r)},t.Pipeline.prototype.before=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");this._stack.splice(n,0,r)},t.Pipeline.prototype.remove=function(e){var r=this._stack.indexOf(e);r!=-1&&this._stack.splice(r,1)},t.Pipeline.prototype.run=function(e){for(var r=this._stack.length,n=0;n1&&(oe&&(n=s),o!=e);)i=n-r,s=r+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ou?h+=2:a==u&&(r+=n[l+1]*i[h+1],l+=2,h+=2);return r},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),r=1,n=0;r0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}if(s.str.length==0&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var h=s.str.charAt(0),p=s.str.charAt(1),v;p in s.node.edges?v=s.node.edges[p]:(v=new t.TokenSet,s.node.edges[p]=v),s.str.length==1&&(v.final=!0),i.push({node:v,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return n},t.TokenSet.fromString=function(e){for(var r=new t.TokenSet,n=r,i=0,s=e.length;i=e;r--){var n=this.uncheckedNodes[r],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(r){var n=new t.QueryParser(e,r);n.parse()})},t.Index.prototype.query=function(e){for(var r=new t.Query(this.fields),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,r){var n=e[this._ref],i=Object.keys(this._fields);this._documents[n]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,r;do e=this.next(),r=e.charCodeAt(0);while(r>47&&r<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var r=e.next();if(r==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(r.charCodeAt(0)==92){e.escapeCharacter();continue}if(r==":")return t.QueryLexer.lexField;if(r=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(r=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(r=="+"&&e.width()===1||r=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(r.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,r){this.lexer=new t.QueryLexer(e),this.query=r,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var r=e.peekLexeme();if(r!=null)switch(r.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(n+=" with value '"+r.str+"'"),new t.QueryParseError(n,r.start,r.end)}},t.QueryParser.parsePresence=function(e){var r=e.consumeLexeme();if(r!=null){switch(r.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+r.str+"'";throw new t.QueryParseError(n,r.start,r.end)}var i=e.peekLexeme();if(i==null){var n="expecting term or field, found nothing";throw new t.QueryParseError(n,r.start,r.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(n,i.start,i.end)}}},t.QueryParser.parseField=function(e){var r=e.consumeLexeme();if(r!=null){if(e.query.allFields.indexOf(r.str)==-1){var n=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+r.str+"', possible fields: "+n;throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.fields=[r.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,r.start,r.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var r=e.consumeLexeme();if(r!=null){e.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(n==null){e.nextClause();return}switch(n.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+n.type+"'";throw new t.QueryParseError(i,n.start,n.end)}}},t.QueryParser.parseEditDistance=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="edit distance must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.editDistance=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="boost must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.boost=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,r){typeof define=="function"&&define.amd?define(r):typeof ce=="object"?he.exports=r():e.lunr=r()}(this,function(){return t})})()});var le=[];function N(t,e){le.push({selector:e,constructor:t})}var X=class{constructor(){this.createComponents(document.body)}createComponents(e){le.forEach(r=>{e.querySelectorAll(r.selector).forEach(n=>{n.dataset.hasInstance||(new r.constructor({el:n}),n.dataset.hasInstance=String(!0))})})}};var Q=class{constructor(e){this.el=e.el}};var Z=class{constructor(){this.listeners={}}addEventListener(e,r){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push(r)}removeEventListener(e,r){if(!(e in this.listeners))return;let n=this.listeners[e];for(let i=0,s=n.length;i{let r=Date.now();return(...n)=>{r+e-Date.now()<0&&(t(...n),r=Date.now())}};var ee=class extends Z{constructor(){super();this.scrollTop=0;this.lastY=0;this.width=0;this.height=0;this.showToolbar=!0;this.toolbar=document.querySelector(".tsd-page-toolbar"),this.secondaryNav=document.querySelector(".tsd-navigation.secondary"),window.addEventListener("scroll",K(()=>this.onScroll(),10)),window.addEventListener("resize",K(()=>this.onResize(),10)),this.onResize(),this.onScroll()}triggerResize(){let e=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(e)}onResize(){this.width=window.innerWidth||0,this.height=window.innerHeight||0;let e=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(e)}onScroll(){this.scrollTop=window.scrollY||0;let e=new CustomEvent("scroll",{detail:{scrollTop:this.scrollTop}});this.dispatchEvent(e),this.hideShowToolbar()}hideShowToolbar(){var r;let e=this.showToolbar;this.showToolbar=this.lastY>=this.scrollTop||this.scrollTop<=0,e!==this.showToolbar&&(this.toolbar.classList.toggle("tsd-page-toolbar--hide"),(r=this.secondaryNav)==null||r.classList.toggle("tsd-navigation--toolbar-hide")),this.lastY=this.scrollTop}},I=ee;I.instance=new ee;var te=class extends Q{constructor(e){super(e);this.anchors=[];this.index=-1;I.instance.addEventListener("resize",()=>this.onResize()),I.instance.addEventListener("scroll",r=>this.onScroll(r)),this.createAnchors()}createAnchors(){let e=window.location.href;e.indexOf("#")!=-1&&(e=e.substr(0,e.indexOf("#"))),this.el.querySelectorAll("a").forEach(r=>{let n=r.href;if(n.indexOf("#")==-1||n.substr(0,e.length)!=e)return;let i=n.substr(n.indexOf("#")+1),s=document.querySelector("a.tsd-anchor[name="+i+"]"),o=r.parentNode;!s||!o||this.anchors.push({link:o,anchor:s,position:0})}),this.onResize()}onResize(){let e;for(let n=0,i=this.anchors.length;nn.position-i.position);let r=new CustomEvent("scroll",{detail:{scrollTop:I.instance.scrollTop}});this.onScroll(r)}onScroll(e){let r=e.detail.scrollTop+5,n=this.anchors,i=n.length-1,s=this.index;for(;s>-1&&n[s].position>r;)s-=1;for(;s-1&&this.anchors[this.index].link.classList.remove("focus"),this.index=s,this.index>-1&&this.anchors[this.index].link.classList.add("focus"))}};var ue=(t,e=100)=>{let r;return(...n)=>{clearTimeout(r),r=setTimeout(()=>t(n),e)}};var fe=Ae(de());function pe(){let t=document.getElementById("tsd-search");if(!t)return;let e=document.getElementById("search-script");t.classList.add("loading"),e&&(e.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),e.addEventListener("load",()=>{t.classList.remove("loading"),t.classList.add("ready")}),window.searchData&&t.classList.remove("loading"));let r=document.querySelector("#tsd-search input"),n=document.querySelector("#tsd-search .results");if(!r||!n)throw new Error("The input field or the result list wrapper was not found");let i=!1;n.addEventListener("mousedown",()=>i=!0),n.addEventListener("mouseup",()=>{i=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{i||(i=!1,t.classList.remove("has-focus"))});let s={base:t.dataset.base+"/"};Ve(t,n,r,s)}function Ve(t,e,r,n){r.addEventListener("input",ue(()=>{ze(t,e,r,n)},200));let i=!1;r.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ne(e,r):s.key=="Escape"?r.blur():s.key=="ArrowUp"?me(e,-1):s.key==="ArrowDown"?me(e,1):i=!1}),r.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!r.matches(":focus")&&s.key==="/"&&(r.focus(),s.preventDefault())})}function He(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=fe.Index.load(window.searchData.index))}function ze(t,e,r,n){if(He(n,t),!n.index||!n.data)return;e.textContent="";let i=r.value.trim(),s=n.index.search(`*${i}*`);for(let o=0,a=Math.min(10,s.length);o${ve(u.parent,i)}.${l}`);let h=document.createElement("li");h.classList.value=u.classes;let p=document.createElement("a");p.href=n.base+u.url,p.classList.add("tsd-kind-icon"),p.innerHTML=l,h.append(p),e.appendChild(h)}}function me(t,e){let r=t.querySelector(".current");if(!r)r=t.querySelector(e==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let n=r;if(e===1)do n=n.nextElementSibling;while(n instanceof HTMLElement&&n.offsetParent==null);else do n=n.previousElementSibling;while(n instanceof HTMLElement&&n.offsetParent==null);n&&(r.classList.remove("current"),n.classList.add("current"))}}function Ne(t,e){let r=t.querySelector(".current");if(r||(r=t.querySelector("li:first-child")),r){let n=r.querySelector("a");n&&(window.location.href=n.href),e.blur()}}function ve(t,e){if(e==="")return t;let r=t.toLocaleLowerCase(),n=e.toLocaleLowerCase(),i=[],s=0,o=r.indexOf(n);for(;o!=-1;)i.push(re(t.substring(s,o)),`${re(t.substring(o,o+n.length))}`),s=o+n.length,o=r.indexOf(n,s);return i.push(re(t.substring(s))),i.join("")}var je={"&":"&","<":"<",">":">","'":"'",'"':"""};function re(t){return t.replace(/[&<>"'"]/g,e=>je[e])}var ge=class{constructor(e,r){this.signature=e,this.description=r}addClass(e){return this.signature.classList.add(e),this.description.classList.add(e),this}removeClass(e){return this.signature.classList.remove(e),this.description.classList.remove(e),this}},ne=class extends Q{constructor(e){super(e);this.groups=[];this.index=-1;this.createGroups(),this.container&&(this.el.classList.add("active"),Array.from(this.el.children).forEach(r=>{r.addEventListener("touchstart",n=>this.onClick(n)),r.addEventListener("click",n=>this.onClick(n))}),this.container.classList.add("active"),this.setIndex(0))}setIndex(e){if(e<0&&(e=0),e>this.groups.length-1&&(e=this.groups.length-1),this.index==e)return;let r=this.groups[e];if(this.index>-1){let n=this.groups[this.index];n.removeClass("current").addClass("fade-out"),r.addClass("current"),r.addClass("fade-in"),I.instance.triggerResize(),setTimeout(()=>{n.removeClass("fade-out"),r.removeClass("fade-in")},300)}else r.addClass("current"),I.instance.triggerResize();this.index=e}createGroups(){let e=this.el.children;if(e.length<2)return;this.container=this.el.nextElementSibling;let r=this.container.children;this.groups=[];for(let n=0;n{r.signature===e.currentTarget&&this.setIndex(n)})}};var C="mousedown",ye="mousemove",_="mouseup",G={x:0,y:0},xe=!1,ie=!1,Be=!1,A=!1,Le=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(Le?"is-mobile":"not-mobile");Le&&"ontouchstart"in document.documentElement&&(Be=!0,C="touchstart",ye="touchmove",_="touchend");document.addEventListener(C,t=>{ie=!0,A=!1;let e=C=="touchstart"?t.targetTouches[0]:t;G.y=e.pageY||0,G.x=e.pageX||0});document.addEventListener(ye,t=>{if(!!ie&&!A){let e=C=="touchstart"?t.targetTouches[0]:t,r=G.x-(e.pageX||0),n=G.y-(e.pageY||0);A=Math.sqrt(r*r+n*n)>10}});document.addEventListener(_,()=>{ie=!1});document.addEventListener("click",t=>{xe&&(t.preventDefault(),t.stopImmediatePropagation(),xe=!1)});var se=class extends Q{constructor(e){super(e);this.className=this.el.dataset.toggle||"",this.el.addEventListener(_,r=>this.onPointerUp(r)),this.el.addEventListener("click",r=>r.preventDefault()),document.addEventListener(C,r=>this.onDocumentPointerDown(r)),document.addEventListener(_,r=>this.onDocumentPointerUp(r))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let r=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(r),setTimeout(()=>document.documentElement.classList.remove(r),500)}onPointerUp(e){A||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-menu, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!A&&this.active&&e.target.closest(".col-menu")){let r=e.target.closest("a");if(r){let n=window.location.href;n.indexOf("#")!=-1&&(n=n.substr(0,n.indexOf("#"))),r.href.substr(0,n.length)==n&&setTimeout(()=>this.setActive(!1),250)}}}};var oe=class{constructor(e,r){this.key=e,this.value=r,this.defaultValue=r,this.initialize(),window.localStorage[this.key]&&this.setValue(this.fromLocalStorage(window.localStorage[this.key]))}initialize(){}setValue(e){if(this.value==e)return;let r=this.value;this.value=e,window.localStorage[this.key]=this.toLocalStorage(e),this.handleValueChange(r,e)}},ae=class extends oe{initialize(){let e=document.querySelector("#tsd-filter-"+this.key);!e||(this.checkbox=e,this.checkbox.addEventListener("change",()=>{this.setValue(this.checkbox.checked)}))}handleValueChange(e,r){!this.checkbox||(this.checkbox.checked=this.value,document.documentElement.classList.toggle("toggle-"+this.key,this.value!=this.defaultValue))}fromLocalStorage(e){return e=="true"}toLocalStorage(e){return e?"true":"false"}},Ee=class extends oe{initialize(){document.documentElement.classList.add("toggle-"+this.key+this.value);let e=document.querySelector("#tsd-filter-"+this.key);if(!e)return;this.select=e;let r=()=>{this.select.classList.add("active")},n=()=>{this.select.classList.remove("active")};this.select.addEventListener(C,r),this.select.addEventListener("mouseover",r),this.select.addEventListener("mouseleave",n),this.select.querySelectorAll("li").forEach(i=>{i.addEventListener(_,s=>{e.classList.remove("active"),this.setValue(s.target.dataset.value||"")})}),document.addEventListener(C,i=>{this.select.contains(i.target)||this.select.classList.remove("active")})}handleValueChange(e,r){this.select.querySelectorAll("li.selected").forEach(s=>{s.classList.remove("selected")});let n=this.select.querySelector('li[data-value="'+r+'"]'),i=this.select.querySelector(".tsd-select-label");n&&i&&(n.classList.add("selected"),i.textContent=n.textContent),document.documentElement.classList.remove("toggle-"+e),document.documentElement.classList.add("toggle-"+r)}fromLocalStorage(e){return e}toLocalStorage(e){return e}},Y=class extends Q{constructor(e){super(e);this.optionVisibility=new Ee("visibility","private"),this.optionInherited=new ae("inherited",!0),this.optionExternals=new ae("externals",!0)}static isSupported(){try{return typeof window.localStorage!="undefined"}catch{return!1}}};function be(t){let e=localStorage.getItem("tsd-theme")||"os";t.value=e,we(e),t.addEventListener("change",()=>{localStorage.setItem("tsd-theme",t.value),we(t.value)})}function we(t){switch(t){case"os":document.body.classList.remove("light","dark");break;case"light":document.body.classList.remove("dark"),document.body.classList.add("light");break;case"dark":document.body.classList.remove("light"),document.body.classList.add("dark");break}}pe();N(te,".menu-highlight");N(ne,".tsd-signatures");N(se,"a[data-toggle]");Y.isSupported()?N(Y,"#tsd-filter"):document.documentElement.classList.add("no-filter");var Te=document.getElementById("theme");Te&&be(Te);var qe=new X;Object.defineProperty(window,"app",{value:qe});})(); -/*! - * lunr.Builder - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.Index - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.Pipeline - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.Set - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.TokenSet - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.Vector - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.stemmer - * Copyright (C) 2020 Oliver Nightingale - * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt - */ -/*! - * lunr.stopWordFilter - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.tokenizer - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.trimmer - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.utils - * Copyright (C) 2020 Oliver Nightingale - */ -/** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 - * Copyright (C) 2020 Oliver Nightingale - * @license MIT - */ +"use strict"; +window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse","folder":"Folder","search_index_not_available":"The search index is not available","search_no_results_found_for_0":"No results found for {0}","kind_1":"Project","kind_2":"Module","kind_4":"Namespace","kind_8":"Enumeration","kind_16":"Enumeration Member","kind_32":"Variable","kind_64":"Function","kind_128":"Class","kind_256":"Interface","kind_512":"Constructor","kind_1024":"Property","kind_2048":"Method","kind_4096":"Call Signature","kind_8192":"Index Signature","kind_16384":"Constructor Signature","kind_32768":"Parameter","kind_65536":"Type Literal","kind_131072":"Type Parameter","kind_262144":"Accessor","kind_524288":"Get Signature","kind_1048576":"Set Signature","kind_2097152":"Type Alias","kind_4194304":"Reference","kind_8388608":"Document"}; +"use strict";(()=>{var Ke=Object.create;var he=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Xe=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var et=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var tt=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ze(e))!Ye.call(t,i)&&i!==n&&he(t,i,{get:()=>e[i],enumerable:!(r=Ge(e,i))||r.enumerable});return t};var nt=(t,e,n)=>(n=t!=null?Ke(Xe(t)):{},tt(e||!t||!t.__esModule?he(n,"default",{value:t,enumerable:!0}):n,t));var ye=et((me,ge)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,l],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(oc?d+=2:a==c&&(n+=r[l+1]*i[d+1],l+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}if(s.str.length==0&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),f=s.str.charAt(1),p;f in s.node.edges?p=s.node.edges[f]:(p=new t.TokenSet,s.node.edges[f]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),c=0;c1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof me=="object"?ge.exports=n():e.lunr=n()}(this,function(){return t})})()});var M,G={getItem(){return null},setItem(){}},K;try{K=localStorage,M=K}catch{K=G,M=G}var S={getItem:t=>M.getItem(t),setItem:(t,e)=>M.setItem(t,e),disableWritingLocalStorage(){M=G},disable(){localStorage.clear(),M=G},enable(){M=K}};window.TypeDoc||={disableWritingLocalStorage(){S.disableWritingLocalStorage()},disableLocalStorage:()=>{S.disable()},enableLocalStorage:()=>{S.enable()}};window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",search_index_not_available:"The search index is not available",search_no_results_found_for_0:"No results found for {0}",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var pe=[];function X(t,e){pe.push({selector:e,constructor:t})}var Z=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){pe.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!rt(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function rt(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var fe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var Ie=nt(ye(),1);async function R(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}var Y="closing",ae="tsd-overlay";function it(){let t=Math.abs(window.innerWidth-document.documentElement.clientWidth);document.body.style.overflow="hidden",document.body.style.paddingRight=`${t}px`}function st(){document.body.style.removeProperty("overflow"),document.body.style.removeProperty("padding-right")}function xe(t,e){t.addEventListener("animationend",()=>{t.classList.contains(Y)&&(t.classList.remove(Y),document.getElementById(ae)?.remove(),t.close(),st())}),t.addEventListener("cancel",n=>{n.preventDefault(),ve(t)}),e?.closeOnClick&&document.addEventListener("click",n=>{t.open&&!t.contains(n.target)&&ve(t)},!0)}function Ee(t){if(t.open)return;let e=document.createElement("div");e.id=ae,document.body.appendChild(e),t.showModal(),it()}function ve(t){if(!t.open)return;document.getElementById(ae)?.classList.add(Y),t.classList.add(Y)}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var be=document.head.appendChild(document.createElement("style"));be.dataset.for="filters";var le={};function we(t){for(let e of t.split(/\s+/))if(le.hasOwnProperty(e)&&!le[e])return!0;return!1}var ee=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),be.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=S.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){S.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),le[`tsd-is-${this.el.name}`]=this.value,this.app.filterChanged(),this.app.updateIndexVisibility()}};var Le=0;async function Se(t,e){if(!window.searchData)return;let n=await R(window.searchData);t.data=n,t.index=Ie.Index.load(n.index),e.innerHTML=""}function _e(){let t=document.getElementById("tsd-search-trigger"),e=document.getElementById("tsd-search"),n=document.getElementById("tsd-search-input"),r=document.getElementById("tsd-search-results"),i=document.getElementById("tsd-search-script"),s=document.getElementById("tsd-search-status");if(!(t&&e&&n&&r&&i&&s))throw new Error("Search controls missing");let o={base:document.documentElement.dataset.base};o.base.endsWith("/")||(o.base+="/"),i.addEventListener("error",()=>{let a=window.translations.search_index_not_available;Pe(s,a)}),i.addEventListener("load",()=>{Se(o,s)}),Se(o,s),ot({trigger:t,searchEl:e,results:r,field:n,status:s},o)}function ot(t,e){let{field:n,results:r,searchEl:i,status:s,trigger:o}=t;xe(i,{closeOnClick:!0});function a(){Ee(i),n.setSelectionRange(0,n.value.length)}o.addEventListener("click",a),n.addEventListener("input",fe(()=>{at(r,n,s,e)},200)),n.addEventListener("keydown",l=>{if(r.childElementCount===0||l.ctrlKey||l.metaKey||l.altKey)return;let d=n.getAttribute("aria-activedescendant"),f=d?document.getElementById(d):null;if(f){let p=!1,v=!1;switch(l.key){case"Home":case"End":case"ArrowLeft":case"ArrowRight":v=!0;break;case"ArrowDown":case"ArrowUp":p=l.shiftKey;break}(p||v)&&ke(n)}if(!l.shiftKey)switch(l.key){case"Enter":f?.querySelector("a")?.click();break;case"ArrowUp":Te(r,n,f,-1),l.preventDefault();break;case"ArrowDown":Te(r,n,f,1),l.preventDefault();break}});function c(){ke(n)}n.addEventListener("change",c),n.addEventListener("blur",c),n.addEventListener("click",c),document.body.addEventListener("keydown",l=>{if(l.altKey||l.metaKey||l.shiftKey)return;let d=l.ctrlKey&&l.key==="k",f=!l.ctrlKey&&!ut()&&l.key==="/";(d||f)&&(l.preventDefault(),a())})}function at(t,e,n,r){if(!r.index||!r.data)return;t.innerHTML="",n.innerHTML="",Le+=1;let i=e.value.trim(),s;if(i){let a=i.split(" ").map(c=>c.length?`*${c}*`:"").join(" ");s=r.index.search(a).filter(({ref:c})=>{let l=r.data.rows[Number(c)].classes;return!l||!we(l)})}else s=[];if(s.length===0&&i){let a=window.translations.search_no_results_found_for_0.replace("{0}",` "${te(i)}" `);Pe(n,a);return}for(let a=0;ac.score-a.score);let o=Math.min(10,s.length);for(let a=0;a`,f=Ce(c.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(f+=` (score: ${s[a].score.toFixed(2)})`),c.parent&&(f=` + ${Ce(c.parent,i)}.${f}`);let p=document.createElement("li");p.id=`tsd-search:${Le}-${a}`,p.role="option",p.ariaSelected="false",p.classList.value=c.classes??"";let v=document.createElement("a");v.tabIndex=-1,v.href=r.base+c.url,v.innerHTML=d+`${f}`,p.append(v),t.appendChild(p)}}function Te(t,e,n,r){let i;if(r===1?i=n?.nextElementSibling||t.firstElementChild:i=n?.previousElementSibling||t.lastElementChild,i!==n){if(!i||i.role!=="option"){console.error("Option missing");return}i.ariaSelected="true",i.scrollIntoView({behavior:"smooth",block:"nearest"}),e.setAttribute("aria-activedescendant",i.id),n?.setAttribute("aria-selected","false")}}function ke(t){let e=t.getAttribute("aria-activedescendant");(e?document.getElementById(e):null)?.setAttribute("aria-selected","false"),t.setAttribute("aria-activedescendant","")}function Ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(te(t.substring(s,o)),`${te(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(te(t.substring(s))),i.join("")}var lt={"&":"&","<":"<",">":">","'":"'",'"':"""};function te(t){return t.replace(/[&<>"'"]/g,e=>lt[e])}function Pe(t,e){t.innerHTML=e?`
${e}
`:""}var ct=["button","checkbox","file","hidden","image","radio","range","reset","submit"];function ut(){let t=document.activeElement;return t?t.isContentEditable||t.tagName==="TEXTAREA"||t.tagName==="SEARCH"?!0:t.tagName==="INPUT"&&!ct.includes(t.type):!1}var D="mousedown",Me="mousemove",$="mouseup",ne={x:0,y:0},Qe=!1,ce=!1,dt=!1,F=!1,Oe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(Oe?"is-mobile":"not-mobile");Oe&&"ontouchstart"in document.documentElement&&(dt=!0,D="touchstart",Me="touchmove",$="touchend");document.addEventListener(D,t=>{ce=!0,F=!1;let e=D=="touchstart"?t.targetTouches[0]:t;ne.y=e.pageY||0,ne.x=e.pageX||0});document.addEventListener(Me,t=>{if(ce&&!F){let e=D=="touchstart"?t.targetTouches[0]:t,n=ne.x-(e.pageX||0),r=ne.y-(e.pageY||0);F=Math.sqrt(n*n+r*r)>10}});document.addEventListener($,()=>{ce=!1});document.addEventListener("click",t=>{Qe&&(t.preventDefault(),t.stopImmediatePropagation(),Qe=!1)});var re=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener($,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(D,n=>this.onDocumentPointerDown(n)),document.addEventListener($,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){F||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!F&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var ue=new Map,de=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;S.setItem(this.key,e.toString())}},ie=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(ue.has(i))s=ue.get(i);else{let o=S.getItem(i),a=o?o==="true":this.el.open;s=new de(i,a),ue.set(i,s)}s.add(this.el)}};function He(t){let e=S.getItem("tsd-theme")||"os";t.value=e,Ae(e),t.addEventListener("change",()=>{S.setItem("tsd-theme",t.value),Ae(t.value)})}function Ae(t){document.documentElement.dataset.theme=t}var se;function Ne(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Re),Re())}async function Re(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let e=await R(window.navigationData);se=document.documentElement.dataset.base,se.endsWith("/")||(se+="/"),t.innerHTML="";for(let n of e)Be(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Be(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',De(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let c=a.appendChild(document.createElement("ul"));c.className="tsd-nested-navigation";for(let l of t.children)Be(l,c,i)}else De(t,r,t.class)}function De(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));if(r.href=se+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&(r.classList.add("current"),r.ariaCurrent="page"),t.kind){let i=window.translations[`kind_${t.kind}`].replaceAll('"',""");r.innerHTML=``}r.appendChild(Fe(t.text,document.createElement("span")))}else{let r=e.appendChild(document.createElement("span")),i=window.translations.folder.replaceAll('"',""");r.innerHTML=``,r.appendChild(Fe(t.text,document.createElement("span")))}}function Fe(t,e){let n=t.split(/(?<=[^A-Z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|(?<=[_-])(?=[^_-])/);for(let r=0;r{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=gt(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function pt(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Ve),Ve())}async function Ve(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await R(window.hierarchyData),r=t.querySelector("ul"),i=document.createElement("ul");if(i.classList.add("tsd-hierarchy"),ft(i,n,e),r.querySelectorAll("li").length==i.querySelectorAll("li").length)return;let s=document.createElement("span");s.classList.add("tsd-hierarchy-toggle"),s.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",s),s.insertAdjacentText("beforebegin",", "),s.addEventListener("click",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement("afterend",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement("afterend",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function ft(t,e,n){let r=e.roots.filter(i=>mt(e,i,n));for(let i of r)t.appendChild(je(e,i,n))}function je(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let c=t.reflections[a],l=s.appendChild(document.createElement("a"));l.textContent=c.name,l.href=oe+c.url,l.className=c.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=oe+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let c=je(t,a,n,r);c&&o.appendChild(c)}}return r.delete(e),s}function mt(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function gt(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.innerHTML='',t}X(re,"a[data-toggle]");X(ie,".tsd-accordion");X(ee,".tsd-filter-item input[type=checkbox]");var qe=document.getElementById("tsd-theme");qe&&He(qe);var yt=new Z;Object.defineProperty(window,"app",{value:yt});_e();Ne();$e();"virtualKeyboard"in navigator&&(navigator.virtualKeyboard.overlaysContent=!0);})(); +/*! Bundled license information: + +lunr/lunr.js: + (** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + *) + (*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + *) + (*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + *) +*/ diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js new file mode 100644 index 00000000..89c58fe6 --- /dev/null +++ b/docs/assets/navigation.js @@ -0,0 +1 @@ +window.navigationData = "eJydmG1zozYQgP8Ln3N1L+1d23zjgNy557cxTptOp+NRYG2rkYUjybmknf73Di+JBSwrOR/NPvusECCv9Oe/gYEnE1wFEdMZy2H1fIDgIjgwswuuApDHvR5Zoe92Zi+Ci+Ceyzy4+vm/i9f8RBpunk+pmWBagx7V19t57y/7mVMm2RbUkKAJuz1LOBSam0INjuVEuG0pqEeewZCqCVOeay4Mdlv1dSrzC9flIMPM8EL2Ba2wt0c7RJoyjfWN5A9HiAqpjWJcmr6tz9DG35jg+RIEq6rv+IGWEzhVZ1rIbTEt8qNAnqUVpBzzu78hM+N8wQ+IxI5SlgXbcskM5DEzrK9phSmPPQf4iLoEbXs4cgW5jxUnKXsKWvNCTgqWg5ryPBfwjSlEPgB6uwc/V4yirJ+YhvoTH0sDasNsKX+5pEcI19ZefvjY0doTNwXD8tZ70HFjMFUg2nGRe1cYpKkSPtNyxpSMZQ5P5ChbBKnqrw7zQ2fRs72D+JlFqgvVr1Btj3uQxrsgkkoVr1aqa2DmqGBa5CCo+xuCfQv4un219Qob6meZOdV91lPvafaVNtw1y9odRdfa5ijtotCa34mqm8KH2SIoVetvsO7RUCHC+WrJD/PclQPjqedF8FSZFBRngv/D7gTQyxRKkmvfI0gTMSHuWHZ/UprySY1awY7l+19+ev/h0jY9ZVDdSu/VamSduMv30nb15rPWdcIumz3z5WsYg84UP5hCdcXDpKvG79zsWtmgTdeOMT7e3jqLiXuQyxwnn24+n0yPTPHyzdGjKtDO/qGdeB3eTFbraD6bJdFqPJ+tZ+E0wVUoSsiT22hyEyfxerFMrse3SYppexAhHM/i5HY9TVZhHK7CwZEiGCGdzmef5+s0SdPylr4mf2DKHkQIy3qxPU2r+ddkhllxklAvk0lYgumX8WI9Gacr92Q4UnyLnVfHt8TLhE7mYZwsKzpdhBFaYIgl9Cx3dJybo6z3lqMBtC3/+ONF3beXX6vO33H97qD4IzMQ2J1uIQR0tsanQqdo120pQOqjghQejiANZ2KlmNRs0EngRJGNKvYLwTiqfA0Sgi2YqJAbvl0V94Ba2oRTJeuJcehsilaWO1VRbawoZYeila0zH8raB33EpxMgt7vD0vqBzUxLS2xnSJ328WlaWB9SzNgeBmQngBYhLaV23DeV4l/sjCJvl0+43Yo4C5S4fxH9hvnq5RDlqvcBc1YBMrF89gOnsbamh3lKsaNZ3Dt0RIuoq+1XJDhI9JH1IELIdVT97SCaJkSNpumw0UE0MTKd6Fltk6NrbUn3oLbogKoAkegahmd9e3+Faew4odENhjpeg6TAvTJ3GVrnuyQNoG9pePQblhFXDvXsxHEbQ1Yo1tr1WQ/PBhwivkE/+SZEJJvi13Q+w3LrCJk62HY1ISq57O02hdq/HOujmi5ECMu9MeWy4z3NX/8D1L+Vcw==" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js index 90d3432d..bd00fc7a 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = JSON.parse("{\"kinds\":{\"8\":\"Enumeration\",\"16\":\"Enumeration member\",\"32\":\"Variable\",\"64\":\"Function\",\"128\":\"Class\",\"256\":\"Interface\",\"512\":\"Constructor\",\"1024\":\"Property\",\"2048\":\"Method\",\"65536\":\"Type literal\",\"4194304\":\"Type alias\"},\"rows\":[{\"id\":0,\"kind\":32,\"name\":\"DEBUG\",\"url\":\"modules.html#DEBUG\",\"classes\":\"tsd-kind-variable\"},{\"id\":1,\"kind\":32,\"name\":\"DEFAULT_CONNECTION_NAME\",\"url\":\"modules.html#DEFAULT_CONNECTION_NAME\",\"classes\":\"tsd-kind-variable\"},{\"id\":2,\"kind\":32,\"name\":\"NAMED_CONNECTION_TOKEN\",\"url\":\"modules.html#NAMED_CONNECTION_TOKEN\",\"classes\":\"tsd-kind-variable\"},{\"id\":3,\"kind\":32,\"name\":\"RELATIONSHIP_METADATA_NAME\",\"url\":\"modules.html#RELATIONSHIP_METADATA_NAME\",\"classes\":\"tsd-kind-variable\"},{\"id\":4,\"kind\":32,\"name\":\"RELATIONSHIP_LIST_METADATA_NAME\",\"url\":\"modules.html#RELATIONSHIP_LIST_METADATA_NAME\",\"classes\":\"tsd-kind-variable\"},{\"id\":5,\"kind\":32,\"name\":\"INDEX_METADATA_NAME\",\"url\":\"modules.html#INDEX_METADATA_NAME\",\"classes\":\"tsd-kind-variable\"},{\"id\":6,\"kind\":32,\"name\":\"SESSION_LOADER_NAMESPACE\",\"url\":\"modules.html#SESSION_LOADER_NAMESPACE\",\"classes\":\"tsd-kind-variable\"},{\"id\":7,\"kind\":32,\"name\":\"MONGO_SESSION_KEY\",\"url\":\"modules.html#MONGO_SESSION_KEY\",\"classes\":\"tsd-kind-variable\"},{\"id\":8,\"kind\":128,\"name\":\"SessionLoaderMiddleware\",\"url\":\"classes/SessionLoaderMiddleware.html\",\"classes\":\"tsd-kind-class\"},{\"id\":9,\"kind\":1024,\"name\":\"ns\",\"url\":\"classes/SessionLoaderMiddleware.html#ns\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-static\",\"parent\":\"SessionLoaderMiddleware\"},{\"id\":10,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/SessionLoaderMiddleware.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"SessionLoaderMiddleware\"},{\"id\":11,\"kind\":1024,\"name\":\"log\",\"url\":\"classes/SessionLoaderMiddleware.html#log\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"SessionLoaderMiddleware\"},{\"id\":12,\"kind\":2048,\"name\":\"use\",\"url\":\"classes/SessionLoaderMiddleware.html#use\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SessionLoaderMiddleware\"},{\"id\":13,\"kind\":128,\"name\":\"SessionLoaderService\",\"url\":\"classes/SessionLoaderService.html\",\"classes\":\"tsd-kind-class\"},{\"id\":14,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/SessionLoaderService.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"SessionLoaderService\"},{\"id\":15,\"kind\":1024,\"name\":\"log\",\"url\":\"classes/SessionLoaderService.html#log\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"SessionLoaderService\"},{\"id\":16,\"kind\":2048,\"name\":\"getSession\",\"url\":\"classes/SessionLoaderService.html#getSession\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SessionLoaderService\"},{\"id\":17,\"kind\":2048,\"name\":\"getSessionContext\",\"url\":\"classes/SessionLoaderService.html#getSessionContext\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SessionLoaderService\"},{\"id\":18,\"kind\":2048,\"name\":\"setSessionContext\",\"url\":\"classes/SessionLoaderService.html#setSessionContext\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SessionLoaderService\"},{\"id\":19,\"kind\":2048,\"name\":\"clearSessionContext\",\"url\":\"classes/SessionLoaderService.html#clearSessionContext\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SessionLoaderService\"},{\"id\":20,\"kind\":64,\"name\":\"ensureSequentialTransaction\",\"url\":\"modules.html#ensureSequentialTransaction\",\"classes\":\"tsd-kind-function tsd-has-type-parameter\"},{\"id\":21,\"kind\":64,\"name\":\"getObjectName\",\"url\":\"modules.html#getObjectName\",\"classes\":\"tsd-kind-function\"},{\"id\":22,\"kind\":64,\"name\":\"isClass\",\"url\":\"modules.html#isClass\",\"classes\":\"tsd-kind-function\"},{\"id\":23,\"kind\":4194304,\"name\":\"EventCallback\",\"url\":\"modules.html#EventCallback\",\"classes\":\"tsd-kind-type-alias tsd-has-type-parameter\"},{\"id\":24,\"kind\":65536,\"name\":\"__type\",\"url\":\"modules.html#EventCallback.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"EventCallback\"},{\"id\":25,\"kind\":256,\"name\":\"MongoOptionsFactory\",\"url\":\"interfaces/MongoOptionsFactory.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":26,\"kind\":2048,\"name\":\"createMongoOptions\",\"url\":\"interfaces/MongoOptionsFactory.html#createMongoOptions\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"MongoOptionsFactory\"},{\"id\":27,\"kind\":256,\"name\":\"MongoModuleOptions\",\"url\":\"interfaces/MongoModuleOptions.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":28,\"kind\":1024,\"name\":\"uri\",\"url\":\"interfaces/MongoModuleOptions.html#uri\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"MongoModuleOptions\"},{\"id\":29,\"kind\":1024,\"name\":\"exceptionFactory\",\"url\":\"interfaces/MongoModuleOptions.html#exceptionFactory\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"MongoModuleOptions\"},{\"id\":30,\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/MongoModuleOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"MongoModuleOptions\"},{\"id\":31,\"kind\":256,\"name\":\"MongoModuleAsyncOptions\",\"url\":\"interfaces/MongoModuleAsyncOptions.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":32,\"kind\":1024,\"name\":\"connectionName\",\"url\":\"interfaces/MongoModuleAsyncOptions.html#connectionName\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"MongoModuleAsyncOptions\"},{\"id\":33,\"kind\":2048,\"name\":\"useFactory\",\"url\":\"interfaces/MongoModuleAsyncOptions.html#useFactory\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"MongoModuleAsyncOptions\"},{\"id\":34,\"kind\":1024,\"name\":\"inject\",\"url\":\"interfaces/MongoModuleAsyncOptions.html#inject\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"MongoModuleAsyncOptions\"},{\"id\":35,\"kind\":256,\"name\":\"MongoFeatureModelOptions\",\"url\":\"interfaces/MongoFeatureModelOptions.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":36,\"kind\":1024,\"name\":\"model\",\"url\":\"interfaces/MongoFeatureModelOptions.html#model\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"MongoFeatureModelOptions\"},{\"id\":37,\"kind\":1024,\"name\":\"repository\",\"url\":\"interfaces/MongoFeatureModelOptions.html#repository\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"MongoFeatureModelOptions\"},{\"id\":38,\"kind\":256,\"name\":\"MongoFeatureOptions\",\"url\":\"interfaces/MongoFeatureOptions.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":39,\"kind\":1024,\"name\":\"connectionName\",\"url\":\"interfaces/MongoFeatureOptions.html#connectionName\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"MongoFeatureOptions\"},{\"id\":40,\"kind\":1024,\"name\":\"models\",\"url\":\"interfaces/MongoFeatureOptions.html#models\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"MongoFeatureOptions\"},{\"id\":41,\"kind\":4194304,\"name\":\"ExceptionFactory\",\"url\":\"modules.html#ExceptionFactory\",\"classes\":\"tsd-kind-type-alias\"},{\"id\":42,\"kind\":65536,\"name\":\"__type\",\"url\":\"modules.html#ExceptionFactory.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"ExceptionFactory\"},{\"id\":43,\"kind\":64,\"name\":\"getEntityRepositoryToken\",\"url\":\"modules.html#getEntityRepositoryToken\",\"classes\":\"tsd-kind-function\"},{\"id\":44,\"kind\":64,\"name\":\"getDataloaderToken\",\"url\":\"modules.html#getDataloaderToken\",\"classes\":\"tsd-kind-function\"},{\"id\":45,\"kind\":64,\"name\":\"getConfigToken\",\"url\":\"modules.html#getConfigToken\",\"classes\":\"tsd-kind-function\"},{\"id\":46,\"kind\":64,\"name\":\"getConnectionToken\",\"url\":\"modules.html#getConnectionToken\",\"classes\":\"tsd-kind-function\"},{\"id\":47,\"kind\":64,\"name\":\"getEntityManagerToken\",\"url\":\"modules.html#getEntityManagerToken\",\"classes\":\"tsd-kind-function\"},{\"id\":48,\"kind\":64,\"name\":\"InjectMongoClient\",\"url\":\"modules.html#InjectMongoClient\",\"classes\":\"tsd-kind-function\"},{\"id\":49,\"kind\":64,\"name\":\"InjectEntityManager\",\"url\":\"modules.html#InjectEntityManager\",\"classes\":\"tsd-kind-function\"},{\"id\":50,\"kind\":64,\"name\":\"InjectEntityRepository\",\"url\":\"modules.html#InjectEntityRepository\",\"classes\":\"tsd-kind-function\"},{\"id\":51,\"kind\":128,\"name\":\"MongoModule\",\"url\":\"classes/MongoModule.html\",\"classes\":\"tsd-kind-class\"},{\"id\":52,\"kind\":2048,\"name\":\"forRootAsync\",\"url\":\"classes/MongoModule.html#forRootAsync\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-static\",\"parent\":\"MongoModule\"},{\"id\":53,\"kind\":2048,\"name\":\"forFeature\",\"url\":\"classes/MongoModule.html#forFeature\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-static\",\"parent\":\"MongoModule\"},{\"id\":54,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MongoModule.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"MongoModule\"},{\"id\":55,\"kind\":2048,\"name\":\"onModuleDestroy\",\"url\":\"classes/MongoModule.html#onModuleDestroy\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MongoModule\"},{\"id\":56,\"kind\":128,\"name\":\"IsValidRelationshipConstraint\",\"url\":\"classes/IsValidRelationshipConstraint.html\",\"classes\":\"tsd-kind-class\"},{\"id\":57,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/IsValidRelationshipConstraint.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"IsValidRelationshipConstraint\"},{\"id\":58,\"kind\":1024,\"name\":\"em\",\"url\":\"classes/IsValidRelationshipConstraint.html#em\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IsValidRelationshipConstraint\"},{\"id\":59,\"kind\":1024,\"name\":\"message\",\"url\":\"classes/IsValidRelationshipConstraint.html#message\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IsValidRelationshipConstraint\"},{\"id\":60,\"kind\":2048,\"name\":\"defaultMessage\",\"url\":\"classes/IsValidRelationshipConstraint.html#defaultMessage\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"IsValidRelationshipConstraint\"},{\"id\":61,\"kind\":2048,\"name\":\"validate\",\"url\":\"classes/IsValidRelationshipConstraint.html#validate\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"IsValidRelationshipConstraint\"},{\"id\":62,\"kind\":2048,\"name\":\"setEm\",\"url\":\"classes/IsValidRelationshipConstraint.html#setEm\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"IsValidRelationshipConstraint\"},{\"id\":63,\"kind\":64,\"name\":\"IsValidRelationship\",\"url\":\"modules.html#IsValidRelationship\",\"classes\":\"tsd-kind-function\"},{\"id\":64,\"kind\":64,\"name\":\"Relationship\",\"url\":\"modules.html#Relationship\",\"classes\":\"tsd-kind-function tsd-has-type-parameter\"},{\"id\":65,\"kind\":4194304,\"name\":\"WithValidRelationship\",\"url\":\"modules.html#WithValidRelationship\",\"classes\":\"tsd-kind-type-alias\"},{\"id\":66,\"kind\":65536,\"name\":\"__type\",\"url\":\"modules.html#WithValidRelationship.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"WithValidRelationship\"},{\"id\":67,\"kind\":256,\"name\":\"IsValidRelationshipOptions\",\"url\":\"interfaces/IsValidRelationshipOptions.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":68,\"kind\":1024,\"name\":\"with\",\"url\":\"interfaces/IsValidRelationshipOptions.html#with\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IsValidRelationshipOptions\"},{\"id\":69,\"kind\":4194304,\"name\":\"WithRelationshipTest\",\"url\":\"modules.html#WithRelationshipTest\",\"classes\":\"tsd-kind-type-alias\"},{\"id\":70,\"kind\":65536,\"name\":\"__type\",\"url\":\"modules.html#WithRelationshipTest.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"WithRelationshipTest\"},{\"id\":71,\"kind\":256,\"name\":\"IsValidRelationshipValidationArguments\",\"url\":\"interfaces/IsValidRelationshipValidationArguments.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":72,\"kind\":1024,\"name\":\"constraints\",\"url\":\"interfaces/IsValidRelationshipValidationArguments.html#constraints\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-overwrite\",\"parent\":\"IsValidRelationshipValidationArguments\"},{\"id\":73,\"kind\":8,\"name\":\"CascadeType\",\"url\":\"enums/CascadeType.html\",\"classes\":\"tsd-kind-enum\"},{\"id\":74,\"kind\":16,\"name\":\"DELETE\",\"url\":\"enums/CascadeType.html#DELETE\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"CascadeType\"},{\"id\":75,\"kind\":256,\"name\":\"RelationshipCascade\",\"url\":\"interfaces/RelationshipCascade.html\",\"classes\":\"tsd-kind-interface tsd-has-type-parameter\"},{\"id\":76,\"kind\":1024,\"name\":\"model\",\"url\":\"interfaces/RelationshipCascade.html#model\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RelationshipCascade\"},{\"id\":77,\"kind\":1024,\"name\":\"cascade\",\"url\":\"interfaces/RelationshipCascade.html#cascade\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RelationshipCascade\"},{\"id\":78,\"kind\":1024,\"name\":\"property\",\"url\":\"interfaces/RelationshipCascade.html#property\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RelationshipCascade\"},{\"id\":79,\"kind\":1024,\"name\":\"isArray\",\"url\":\"interfaces/RelationshipCascade.html#isArray\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RelationshipCascade\"},{\"id\":80,\"kind\":4194304,\"name\":\"RelationshipTypeDescriptor\",\"url\":\"modules.html#RelationshipTypeDescriptor\",\"classes\":\"tsd-kind-type-alias tsd-has-type-parameter\"},{\"id\":81,\"kind\":65536,\"name\":\"__type\",\"url\":\"modules.html#RelationshipTypeDescriptor.__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"RelationshipTypeDescriptor\"},{\"id\":82,\"kind\":256,\"name\":\"PossibleTypes\",\"url\":\"interfaces/PossibleTypes.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":83,\"kind\":1024,\"name\":\"property\",\"url\":\"interfaces/PossibleTypes.html#property\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PossibleTypes\"},{\"id\":84,\"kind\":1024,\"name\":\"values\",\"url\":\"interfaces/PossibleTypes.html#values\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PossibleTypes\"},{\"id\":85,\"kind\":256,\"name\":\"ChildRelationshipMetadata\",\"url\":\"interfaces/ChildRelationshipMetadata.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":86,\"kind\":1024,\"name\":\"property\",\"url\":\"interfaces/ChildRelationshipMetadata.html#property\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ChildRelationshipMetadata\"},{\"id\":87,\"kind\":1024,\"name\":\"possibleTypes\",\"url\":\"interfaces/ChildRelationshipMetadata.html#possibleTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ChildRelationshipMetadata\"},{\"id\":88,\"kind\":256,\"name\":\"BaseRelationshipMetadata\",\"url\":\"interfaces/BaseRelationshipMetadata.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":89,\"kind\":1024,\"name\":\"isArray\",\"url\":\"interfaces/BaseRelationshipMetadata.html#isArray\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BaseRelationshipMetadata\"},{\"id\":90,\"kind\":1024,\"name\":\"cascade\",\"url\":\"interfaces/BaseRelationshipMetadata.html#cascade\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BaseRelationshipMetadata\"},{\"id\":91,\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/BaseRelationshipMetadata.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BaseRelationshipMetadata\"},{\"id\":92,\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/BaseRelationshipMetadata.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"BaseRelationshipMetadata\"},{\"id\":93,\"kind\":1024,\"name\":\"description\",\"url\":\"interfaces/BaseRelationshipMetadata.html#__type.description\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"BaseRelationshipMetadata.__type\"},{\"id\":94,\"kind\":1024,\"name\":\"possibleTypes\",\"url\":\"interfaces/BaseRelationshipMetadata.html#possibleTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BaseRelationshipMetadata\"},{\"id\":95,\"kind\":256,\"name\":\"RelationshipMetadataOptions\",\"url\":\"interfaces/RelationshipMetadataOptions.html\",\"classes\":\"tsd-kind-interface tsd-has-type-parameter\"},{\"id\":96,\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/RelationshipMetadataOptions.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RelationshipMetadataOptions\"},{\"id\":97,\"kind\":1024,\"name\":\"isArray\",\"url\":\"interfaces/RelationshipMetadataOptions.html#isArray\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RelationshipMetadataOptions\"},{\"id\":98,\"kind\":1024,\"name\":\"cascade\",\"url\":\"interfaces/RelationshipMetadataOptions.html#cascade\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RelationshipMetadataOptions\"},{\"id\":99,\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/RelationshipMetadataOptions.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RelationshipMetadataOptions\"},{\"id\":100,\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/RelationshipMetadataOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"RelationshipMetadataOptions\"},{\"id\":101,\"kind\":1024,\"name\":\"description\",\"url\":\"interfaces/RelationshipMetadataOptions.html#__type.description\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"RelationshipMetadataOptions.__type\"},{\"id\":102,\"kind\":1024,\"name\":\"possibleTypes\",\"url\":\"interfaces/RelationshipMetadataOptions.html#possibleTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RelationshipMetadataOptions\"},{\"id\":103,\"kind\":256,\"name\":\"RelationshipMetadata\",\"url\":\"interfaces/RelationshipMetadata.html\",\"classes\":\"tsd-kind-interface tsd-has-type-parameter\"},{\"id\":104,\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/RelationshipMetadata.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RelationshipMetadata\"},{\"id\":105,\"kind\":1024,\"name\":\"isArray\",\"url\":\"interfaces/RelationshipMetadata.html#isArray\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RelationshipMetadata\"},{\"id\":106,\"kind\":1024,\"name\":\"cascade\",\"url\":\"interfaces/RelationshipMetadata.html#cascade\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RelationshipMetadata\"},{\"id\":107,\"kind\":1024,\"name\":\"index\",\"url\":\"interfaces/RelationshipMetadata.html#index\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RelationshipMetadata\"},{\"id\":108,\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/RelationshipMetadata.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"RelationshipMetadata\"},{\"id\":109,\"kind\":1024,\"name\":\"description\",\"url\":\"interfaces/RelationshipMetadata.html#__type.description\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"RelationshipMetadata.__type\"},{\"id\":110,\"kind\":1024,\"name\":\"possibleTypes\",\"url\":\"interfaces/RelationshipMetadata.html#possibleTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RelationshipMetadata\"},{\"id\":111,\"kind\":64,\"name\":\"setRelationshipMetadata\",\"url\":\"modules.html#setRelationshipMetadata\",\"classes\":\"tsd-kind-function tsd-has-type-parameter tsd-is-private\"},{\"id\":112,\"kind\":64,\"name\":\"getRelationshipMetadata\",\"url\":\"modules.html#getRelationshipMetadata\",\"classes\":\"tsd-kind-function tsd-has-type-parameter\"},{\"id\":113,\"kind\":64,\"name\":\"addRelationshipMetadata\",\"url\":\"modules.html#addRelationshipMetadata\",\"classes\":\"tsd-kind-function tsd-has-type-parameter tsd-is-private\"},{\"id\":114,\"kind\":64,\"name\":\"getRelationshipMetadataList\",\"url\":\"modules.html#getRelationshipMetadataList\",\"classes\":\"tsd-kind-function tsd-has-type-parameter\"},{\"id\":115,\"kind\":64,\"name\":\"setRelationshipsCascadesMetadata\",\"url\":\"modules.html#setRelationshipsCascadesMetadata\",\"classes\":\"tsd-kind-function tsd-has-type-parameter\"},{\"id\":116,\"kind\":64,\"name\":\"getRelationshipsCascadesMetadata\",\"url\":\"modules.html#getRelationshipsCascadesMetadata\",\"classes\":\"tsd-kind-function tsd-has-type-parameter\"},{\"id\":117,\"kind\":64,\"name\":\"getRelationshipCascadesMetadata\",\"url\":\"modules.html#getRelationshipCascadesMetadata\",\"classes\":\"tsd-kind-function tsd-has-type-parameter\"},{\"id\":118,\"kind\":128,\"name\":\"RelationshipPipe\",\"url\":\"classes/RelationshipPipe.html\",\"classes\":\"tsd-kind-class\"},{\"id\":119,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RelationshipPipe.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RelationshipPipe\"},{\"id\":120,\"kind\":1024,\"name\":\"em\",\"url\":\"classes/RelationshipPipe.html#em\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"RelationshipPipe\"},{\"id\":121,\"kind\":2048,\"name\":\"transform\",\"url\":\"classes/RelationshipPipe.html#transform\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RelationshipPipe\"},{\"id\":122,\"kind\":128,\"name\":\"RequiredRelationshipPipe\",\"url\":\"classes/RequiredRelationshipPipe.html\",\"classes\":\"tsd-kind-class\"},{\"id\":123,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RequiredRelationshipPipe.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RequiredRelationshipPipe\"},{\"id\":124,\"kind\":2048,\"name\":\"transform\",\"url\":\"classes/RequiredRelationshipPipe.html#transform\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-overwrite\",\"parent\":\"RequiredRelationshipPipe\"},{\"id\":125,\"kind\":1024,\"name\":\"em\",\"url\":\"classes/RequiredRelationshipPipe.html#em\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited tsd-is-protected\",\"parent\":\"RequiredRelationshipPipe\"},{\"id\":126,\"kind\":256,\"name\":\"EntityInterface\",\"url\":\"interfaces/EntityInterface.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":127,\"kind\":1024,\"name\":\"_id\",\"url\":\"interfaces/EntityInterface.html#_id\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EntityInterface\"},{\"id\":128,\"kind\":1024,\"name\":\"createdAt\",\"url\":\"interfaces/EntityInterface.html#createdAt\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EntityInterface\"},{\"id\":129,\"kind\":1024,\"name\":\"updatedAt\",\"url\":\"interfaces/EntityInterface.html#updatedAt\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EntityInterface\"},{\"id\":130,\"kind\":1024,\"name\":\"history\",\"url\":\"interfaces/EntityInterface.html#history\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EntityInterface\"},{\"id\":131,\"kind\":2048,\"name\":\"serialize\",\"url\":\"interfaces/EntityInterface.html#serialize\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EntityInterface\"},{\"id\":132,\"kind\":2048,\"name\":\"toJSON\",\"url\":\"interfaces/EntityInterface.html#toJSON\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"EntityInterface\"},{\"id\":133,\"kind\":128,\"name\":\"Entity\",\"url\":\"classes/Entity.html\",\"classes\":\"tsd-kind-class\"},{\"id\":134,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Entity.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Entity\"},{\"id\":135,\"kind\":1024,\"name\":\"_id\",\"url\":\"classes/Entity.html#_id\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Entity\"},{\"id\":136,\"kind\":1024,\"name\":\"createdAt\",\"url\":\"classes/Entity.html#createdAt\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Entity\"},{\"id\":137,\"kind\":1024,\"name\":\"updatedAt\",\"url\":\"classes/Entity.html#updatedAt\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Entity\"},{\"id\":138,\"kind\":2048,\"name\":\"serialize\",\"url\":\"classes/Entity.html#serialize\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Entity\"},{\"id\":139,\"kind\":2048,\"name\":\"toJSON\",\"url\":\"classes/Entity.html#toJSON\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Entity\"},{\"id\":140,\"kind\":128,\"name\":\"EntityRepository\",\"url\":\"classes/EntityRepository.html\",\"classes\":\"tsd-kind-class tsd-has-type-parameter\"},{\"id\":141,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/EntityRepository.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityRepository\"},{\"id\":142,\"kind\":1024,\"name\":\"em\",\"url\":\"classes/EntityRepository.html#em\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"EntityRepository\"},{\"id\":143,\"kind\":1024,\"name\":\"classType\",\"url\":\"classes/EntityRepository.html#classType\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"EntityRepository\"},{\"id\":144,\"kind\":2048,\"name\":\"getClassType\",\"url\":\"classes/EntityRepository.html#getClassType\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityRepository\"},{\"id\":145,\"kind\":2048,\"name\":\"getEm\",\"url\":\"classes/EntityRepository.html#getEm\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityRepository\"},{\"id\":146,\"kind\":2048,\"name\":\"save\",\"url\":\"classes/EntityRepository.html#save\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityRepository\"},{\"id\":147,\"kind\":2048,\"name\":\"watch\",\"url\":\"classes/EntityRepository.html#watch\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityRepository\"},{\"id\":148,\"kind\":2048,\"name\":\"find\",\"url\":\"classes/EntityRepository.html#find\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityRepository\"},{\"id\":149,\"kind\":2048,\"name\":\"count\",\"url\":\"classes/EntityRepository.html#count\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityRepository\"},{\"id\":150,\"kind\":2048,\"name\":\"findOne\",\"url\":\"classes/EntityRepository.html#findOne\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityRepository\"},{\"id\":151,\"kind\":2048,\"name\":\"deleteOne\",\"url\":\"classes/EntityRepository.html#deleteOne\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityRepository\"},{\"id\":152,\"kind\":2048,\"name\":\"deleteMany\",\"url\":\"classes/EntityRepository.html#deleteMany\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityRepository\"},{\"id\":153,\"kind\":2048,\"name\":\"getRelationship\",\"url\":\"classes/EntityRepository.html#getRelationship\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityRepository\"},{\"id\":154,\"kind\":2048,\"name\":\"getRelationships\",\"url\":\"classes/EntityRepository.html#getRelationships\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityRepository\"},{\"id\":155,\"kind\":2048,\"name\":\"fromPlain\",\"url\":\"classes/EntityRepository.html#fromPlain\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityRepository\"},{\"id\":156,\"kind\":2048,\"name\":\"merge\",\"url\":\"classes/EntityRepository.html#merge\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityRepository\"},{\"id\":157,\"kind\":2048,\"name\":\"validate\",\"url\":\"classes/EntityRepository.html#validate\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityRepository\"},{\"id\":158,\"kind\":128,\"name\":\"EntityService\",\"url\":\"classes/EntityService.html\",\"classes\":\"tsd-kind-class tsd-has-type-parameter\"},{\"id\":159,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/EntityService.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityService\"},{\"id\":160,\"kind\":1024,\"name\":\"repository\",\"url\":\"classes/EntityService.html#repository\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"EntityService\"},{\"id\":161,\"kind\":1024,\"name\":\"log\",\"url\":\"classes/EntityService.html#log\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"EntityService\"},{\"id\":162,\"kind\":2048,\"name\":\"addHistory\",\"url\":\"classes/EntityService.html#addHistory\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityService\"},{\"id\":163,\"kind\":2048,\"name\":\"getRepository\",\"url\":\"classes/EntityService.html#getRepository\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityService\"},{\"id\":164,\"kind\":2048,\"name\":\"create\",\"url\":\"classes/EntityService.html#create\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityService\"},{\"id\":165,\"kind\":2048,\"name\":\"get\",\"url\":\"classes/EntityService.html#get\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityService\"},{\"id\":166,\"kind\":2048,\"name\":\"list\",\"url\":\"classes/EntityService.html#list\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityService\"},{\"id\":167,\"kind\":2048,\"name\":\"update\",\"url\":\"classes/EntityService.html#update\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityService\"},{\"id\":168,\"kind\":2048,\"name\":\"delete\",\"url\":\"classes/EntityService.html#delete\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityService\"},{\"id\":169,\"kind\":2048,\"name\":\"subscribe\",\"url\":\"classes/EntityService.html#subscribe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityService\"},{\"id\":170,\"kind\":2048,\"name\":\"onData\",\"url\":\"classes/EntityService.html#onData\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"EntityService\"},{\"id\":171,\"kind\":128,\"name\":\"Filter\",\"url\":\"classes/Filter.html\",\"classes\":\"tsd-kind-class\"},{\"id\":172,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Filter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Filter\"},{\"id\":173,\"kind\":1024,\"name\":\"skip\",\"url\":\"classes/Filter.html#skip\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Filter\"},{\"id\":174,\"kind\":1024,\"name\":\"limit\",\"url\":\"classes/Filter.html#limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Filter\"},{\"id\":175,\"kind\":1024,\"name\":\"orderBy\",\"url\":\"classes/Filter.html#orderBy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"Filter\"},{\"id\":176,\"kind\":2048,\"name\":\"getSort\",\"url\":\"classes/Filter.html#getSort\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Filter\"},{\"id\":177,\"kind\":2048,\"name\":\"getSortForAggregation\",\"url\":\"classes/Filter.html#getSortForAggregation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Filter\"},{\"id\":178,\"kind\":2048,\"name\":\"toQuery\",\"url\":\"classes/Filter.html#toQuery\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"Filter\"},{\"id\":179,\"kind\":2048,\"name\":\"serialize\",\"url\":\"classes/Filter.html#serialize\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Filter\"},{\"id\":180,\"kind\":2048,\"name\":\"toJSON\",\"url\":\"classes/Filter.html#toJSON\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Filter\"},{\"id\":181,\"kind\":128,\"name\":\"PaginatedData\",\"url\":\"classes/PaginatedData.html\",\"classes\":\"tsd-kind-class tsd-has-type-parameter\"},{\"id\":182,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PaginatedData.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-has-type-parameter tsd-is-inherited\",\"parent\":\"PaginatedData\"},{\"id\":183,\"kind\":1024,\"name\":\"count\",\"url\":\"classes/PaginatedData.html#count\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"PaginatedData\"},{\"id\":184,\"kind\":1024,\"name\":\"data\",\"url\":\"classes/PaginatedData.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"PaginatedData\"},{\"id\":185,\"kind\":2048,\"name\":\"serialize\",\"url\":\"classes/PaginatedData.html#serialize\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PaginatedData\"},{\"id\":186,\"kind\":2048,\"name\":\"toJSON\",\"url\":\"classes/PaginatedData.html#toJSON\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PaginatedData\"},{\"id\":187,\"kind\":64,\"name\":\"Collection\",\"url\":\"modules.html#Collection\",\"classes\":\"tsd-kind-function\"},{\"id\":188,\"kind\":128,\"name\":\"EntityManager\",\"url\":\"classes/EntityManager.html\",\"classes\":\"tsd-kind-class\"},{\"id\":189,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/EntityManager.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"EntityManager\"},{\"id\":190,\"kind\":1024,\"name\":\"repositories\",\"url\":\"classes/EntityManager.html#repositories\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"EntityManager\"},{\"id\":191,\"kind\":1024,\"name\":\"models\",\"url\":\"classes/EntityManager.html#models\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"EntityManager\"},{\"id\":192,\"kind\":1024,\"name\":\"log\",\"url\":\"classes/EntityManager.html#log\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"EntityManager\"},{\"id\":193,\"kind\":1024,\"name\":\"client\",\"url\":\"classes/EntityManager.html#client\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"EntityManager\"},{\"id\":194,\"kind\":1024,\"name\":\"sessionLoaderService\",\"url\":\"classes/EntityManager.html#sessionLoaderService\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"EntityManager\"},{\"id\":195,\"kind\":1024,\"name\":\"exceptionFactory\",\"url\":\"classes/EntityManager.html#exceptionFactory\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"EntityManager\"},{\"id\":196,\"kind\":2048,\"name\":\"registerModel\",\"url\":\"classes/EntityManager.html#registerModel\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityManager\"},{\"id\":197,\"kind\":2048,\"name\":\"getModel\",\"url\":\"classes/EntityManager.html#getModel\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityManager\"},{\"id\":198,\"kind\":2048,\"name\":\"getModels\",\"url\":\"classes/EntityManager.html#getModels\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityManager\"},{\"id\":199,\"kind\":2048,\"name\":\"registerRepository\",\"url\":\"classes/EntityManager.html#registerRepository\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityManager\"},{\"id\":200,\"kind\":2048,\"name\":\"getRepository\",\"url\":\"classes/EntityManager.html#getRepository\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityManager\"},{\"id\":201,\"kind\":2048,\"name\":\"getClient\",\"url\":\"classes/EntityManager.html#getClient\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityManager\"},{\"id\":202,\"kind\":2048,\"name\":\"getDatabase\",\"url\":\"classes/EntityManager.html#getDatabase\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityManager\"},{\"id\":203,\"kind\":2048,\"name\":\"getSessionLoaderService\",\"url\":\"classes/EntityManager.html#getSessionLoaderService\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityManager\"},{\"id\":204,\"kind\":2048,\"name\":\"getSessionContext\",\"url\":\"classes/EntityManager.html#getSessionContext\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityManager\"},{\"id\":205,\"kind\":2048,\"name\":\"setSessionContext\",\"url\":\"classes/EntityManager.html#setSessionContext\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityManager\"},{\"id\":206,\"kind\":2048,\"name\":\"clearSessionContext\",\"url\":\"classes/EntityManager.html#clearSessionContext\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityManager\"},{\"id\":207,\"kind\":2048,\"name\":\"getCollectionName\",\"url\":\"classes/EntityManager.html#getCollectionName\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityManager\"},{\"id\":208,\"kind\":2048,\"name\":\"getCollection\",\"url\":\"classes/EntityManager.html#getCollection\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityManager\"},{\"id\":209,\"kind\":2048,\"name\":\"validate\",\"url\":\"classes/EntityManager.html#validate\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityManager\"},{\"id\":210,\"kind\":2048,\"name\":\"save\",\"url\":\"classes/EntityManager.html#save\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityManager\"},{\"id\":211,\"kind\":2048,\"name\":\"find\",\"url\":\"classes/EntityManager.html#find\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityManager\"},{\"id\":212,\"kind\":2048,\"name\":\"findOne\",\"url\":\"classes/EntityManager.html#findOne\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityManager\"},{\"id\":213,\"kind\":2048,\"name\":\"count\",\"url\":\"classes/EntityManager.html#count\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityManager\"},{\"id\":214,\"kind\":2048,\"name\":\"isIdQuery\",\"url\":\"classes/EntityManager.html#isIdQuery\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityManager\"},{\"id\":215,\"kind\":2048,\"name\":\"isIdsQuery\",\"url\":\"classes/EntityManager.html#isIdsQuery\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityManager\"},{\"id\":216,\"kind\":2048,\"name\":\"deleteCascade\",\"url\":\"classes/EntityManager.html#deleteCascade\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter tsd-is-protected\",\"parent\":\"EntityManager\"},{\"id\":217,\"kind\":2048,\"name\":\"deleteOne\",\"url\":\"classes/EntityManager.html#deleteOne\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityManager\"},{\"id\":218,\"kind\":2048,\"name\":\"deleteMany\",\"url\":\"classes/EntityManager.html#deleteMany\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityManager\"},{\"id\":219,\"kind\":2048,\"name\":\"watch\",\"url\":\"classes/EntityManager.html#watch\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityManager\"},{\"id\":220,\"kind\":2048,\"name\":\"getRelationship\",\"url\":\"classes/EntityManager.html#getRelationship\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityManager\"},{\"id\":221,\"kind\":2048,\"name\":\"getRelationships\",\"url\":\"classes/EntityManager.html#getRelationships\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityManager\"},{\"id\":222,\"kind\":2048,\"name\":\"startSessionWithTransaction\",\"url\":\"classes/EntityManager.html#startSessionWithTransaction\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EntityManager\"},{\"id\":223,\"kind\":2048,\"name\":\"fromPlain\",\"url\":\"classes/EntityManager.html#fromPlain\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityManager\"},{\"id\":224,\"kind\":2048,\"name\":\"merge\",\"url\":\"classes/EntityManager.html#merge\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityManager\"},{\"id\":225,\"kind\":2048,\"name\":\"createIndexs\",\"url\":\"classes/EntityManager.html#createIndexs\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"EntityManager\"},{\"id\":226,\"kind\":256,\"name\":\"SerializableInterface\",\"url\":\"interfaces/SerializableInterface.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":227,\"kind\":2048,\"name\":\"serialize\",\"url\":\"interfaces/SerializableInterface.html#serialize\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"SerializableInterface\"},{\"id\":228,\"kind\":2048,\"name\":\"toJSON\",\"url\":\"interfaces/SerializableInterface.html#toJSON\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"SerializableInterface\"},{\"id\":229,\"kind\":64,\"name\":\"serialize\",\"url\":\"modules.html#serialize\",\"classes\":\"tsd-kind-function\"},{\"id\":230,\"kind\":64,\"name\":\"toJSON\",\"url\":\"modules.html#toJSON\",\"classes\":\"tsd-kind-function\"},{\"id\":231,\"kind\":64,\"name\":\"Serializable\",\"url\":\"modules.html#Serializable\",\"classes\":\"tsd-kind-function\"},{\"id\":232,\"kind\":64,\"name\":\"TypeObjectId\",\"url\":\"modules.html#TypeObjectId\",\"classes\":\"tsd-kind-function\"},{\"id\":233,\"kind\":64,\"name\":\"transformObjectId\",\"url\":\"modules.html#transformObjectId\",\"classes\":\"tsd-kind-function\"},{\"id\":234,\"kind\":128,\"name\":\"ObjectIdPipe\",\"url\":\"classes/ObjectIdPipe.html\",\"classes\":\"tsd-kind-class\"},{\"id\":235,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ObjectIdPipe.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ObjectIdPipe\"},{\"id\":236,\"kind\":2048,\"name\":\"transform\",\"url\":\"classes/ObjectIdPipe.html#transform\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ObjectIdPipe\"},{\"id\":237,\"kind\":32,\"name\":\"EXCLUDED_PREFIXES\",\"url\":\"modules.html#EXCLUDED_PREFIXES\",\"classes\":\"tsd-kind-variable\"},{\"id\":238,\"kind\":64,\"name\":\"toPlain\",\"url\":\"modules.html#toPlain\",\"classes\":\"tsd-kind-function tsd-has-type-parameter\"},{\"id\":239,\"kind\":64,\"name\":\"fromPlain\",\"url\":\"modules.html#fromPlain\",\"classes\":\"tsd-kind-function tsd-has-type-parameter\"},{\"id\":240,\"kind\":64,\"name\":\"merge\",\"url\":\"modules.html#merge\",\"classes\":\"tsd-kind-function tsd-has-type-parameter\"},{\"id\":241,\"kind\":64,\"name\":\"SlugDecorator\",\"url\":\"modules.html#SlugDecorator\",\"classes\":\"tsd-kind-function tsd-has-type-parameter\"},{\"id\":242,\"kind\":64,\"name\":\"Slugify\",\"url\":\"modules.html#Slugify\",\"classes\":\"tsd-kind-function tsd-has-type-parameter\"},{\"id\":243,\"kind\":64,\"name\":\"IsUnique\",\"url\":\"modules.html#IsUnique\",\"classes\":\"tsd-kind-function\"},{\"id\":244,\"kind\":4194304,\"name\":\"IsUniqueOptions\",\"url\":\"modules.html#IsUniqueOptions\",\"classes\":\"tsd-kind-type-alias\"},{\"id\":245,\"kind\":128,\"name\":\"IsUniqueConstraint\",\"url\":\"classes/IsUniqueConstraint.html\",\"classes\":\"tsd-kind-class\"},{\"id\":246,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/IsUniqueConstraint.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"IsUniqueConstraint\"},{\"id\":247,\"kind\":1024,\"name\":\"em\",\"url\":\"classes/IsUniqueConstraint.html#em\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IsUniqueConstraint\"},{\"id\":248,\"kind\":1024,\"name\":\"message\",\"url\":\"classes/IsUniqueConstraint.html#message\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IsUniqueConstraint\"},{\"id\":249,\"kind\":2048,\"name\":\"defaultMessage\",\"url\":\"classes/IsUniqueConstraint.html#defaultMessage\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"IsUniqueConstraint\"},{\"id\":250,\"kind\":2048,\"name\":\"validate\",\"url\":\"classes/IsUniqueConstraint.html#validate\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"IsUniqueConstraint\"},{\"id\":251,\"kind\":2048,\"name\":\"setEm\",\"url\":\"classes/IsUniqueConstraint.html#setEm\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"IsUniqueConstraint\"},{\"id\":252,\"kind\":64,\"name\":\"setIndexMetadata\",\"url\":\"modules.html#setIndexMetadata\",\"classes\":\"tsd-kind-function\"},{\"id\":253,\"kind\":64,\"name\":\"getIndexMetadatas\",\"url\":\"modules.html#getIndexMetadatas\",\"classes\":\"tsd-kind-function\"},{\"id\":254,\"kind\":64,\"name\":\"getIndexMetadata\",\"url\":\"modules.html#getIndexMetadata\",\"classes\":\"tsd-kind-function\"},{\"id\":255,\"kind\":256,\"name\":\"IndexMetadata\",\"url\":\"interfaces/IndexMetadata.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":256,\"kind\":1024,\"name\":\"property\",\"url\":\"interfaces/IndexMetadata.html#property\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IndexMetadata\"},{\"id\":257,\"kind\":1024,\"name\":\"description\",\"url\":\"interfaces/IndexMetadata.html#description\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IndexMetadata\"},{\"id\":258,\"kind\":64,\"name\":\"Index\",\"url\":\"modules.html#Index\",\"classes\":\"tsd-kind-function\"},{\"id\":259,\"kind\":128,\"name\":\"HistoryAction\",\"url\":\"classes/HistoryAction.html\",\"classes\":\"tsd-kind-class\"},{\"id\":260,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HistoryAction.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"HistoryAction\"},{\"id\":261,\"kind\":1024,\"name\":\"action\",\"url\":\"classes/HistoryAction.html#action\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"HistoryAction\"},{\"id\":262,\"kind\":1024,\"name\":\"date\",\"url\":\"classes/HistoryAction.html#date\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"HistoryAction\"},{\"id\":263,\"kind\":128,\"name\":\"HistoryActions\",\"url\":\"classes/HistoryActions.html\",\"classes\":\"tsd-kind-class\"},{\"id\":264,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HistoryActions.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"HistoryActions\"},{\"id\":265,\"kind\":1024,\"name\":\"actions\",\"url\":\"classes/HistoryActions.html#actions\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"HistoryActions\"},{\"id\":266,\"kind\":2048,\"name\":\"add\",\"url\":\"classes/HistoryActions.html#add\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HistoryActions\"},{\"id\":267,\"kind\":2048,\"name\":\"clear\",\"url\":\"classes/HistoryActions.html#clear\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HistoryActions\"},{\"id\":268,\"kind\":2048,\"name\":\"getActions\",\"url\":\"classes/HistoryActions.html#getActions\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HistoryActions\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"parent\"],\"fieldVectors\":[[\"name/0\",[0,51.93]],[\"parent/0\",[]],[\"name/1\",[1,51.93]],[\"parent/1\",[]],[\"name/2\",[2,51.93]],[\"parent/2\",[]],[\"name/3\",[3,51.93]],[\"parent/3\",[]],[\"name/4\",[4,51.93]],[\"parent/4\",[]],[\"name/5\",[5,51.93]],[\"parent/5\",[]],[\"name/6\",[6,51.93]],[\"parent/6\",[]],[\"name/7\",[7,51.93]],[\"parent/7\",[]],[\"name/8\",[8,38.937]],[\"parent/8\",[]],[\"name/9\",[9,51.93]],[\"parent/9\",[8,3.284]],[\"name/10\",[10,27.951]],[\"parent/10\",[8,3.284]],[\"name/11\",[11,40.943]],[\"parent/11\",[8,3.284]],[\"name/12\",[12,51.93]],[\"parent/12\",[8,3.284]],[\"name/13\",[13,34.584]],[\"parent/13\",[]],[\"name/14\",[10,27.951]],[\"parent/14\",[13,2.917]],[\"name/15\",[11,40.943]],[\"parent/15\",[13,2.917]],[\"name/16\",[14,51.93]],[\"parent/16\",[13,2.917]],[\"name/17\",[15,46.821]],[\"parent/17\",[13,2.917]],[\"name/18\",[16,46.821]],[\"parent/18\",[13,2.917]],[\"name/19\",[17,46.821]],[\"parent/19\",[13,2.917]],[\"name/20\",[18,51.93]],[\"parent/20\",[]],[\"name/21\",[19,51.93]],[\"parent/21\",[]],[\"name/22\",[20,51.93]],[\"parent/22\",[]],[\"name/23\",[21,46.821]],[\"parent/23\",[]],[\"name/24\",[22,33.471]],[\"parent/24\",[21,3.949]],[\"name/25\",[23,46.821]],[\"parent/25\",[]],[\"name/26\",[24,51.93]],[\"parent/26\",[23,3.949]],[\"name/27\",[25,40.943]],[\"parent/27\",[]],[\"name/28\",[26,51.93]],[\"parent/28\",[25,3.453]],[\"name/29\",[27,40.943]],[\"parent/29\",[25,3.453]],[\"name/30\",[22,33.471]],[\"parent/30\",[25,3.453]],[\"name/31\",[28,40.943]],[\"parent/31\",[]],[\"name/32\",[29,46.821]],[\"parent/32\",[28,3.453]],[\"name/33\",[30,51.93]],[\"parent/33\",[28,3.453]],[\"name/34\",[31,51.93]],[\"parent/34\",[28,3.453]],[\"name/35\",[32,43.457]],[\"parent/35\",[]],[\"name/36\",[33,46.821]],[\"parent/36\",[32,3.665]],[\"name/37\",[34,46.821]],[\"parent/37\",[32,3.665]],[\"name/38\",[35,43.457]],[\"parent/38\",[]],[\"name/39\",[29,46.821]],[\"parent/39\",[35,3.665]],[\"name/40\",[36,46.821]],[\"parent/40\",[35,3.665]],[\"name/41\",[27,40.943]],[\"parent/41\",[]],[\"name/42\",[22,33.471]],[\"parent/42\",[27,3.453]],[\"name/43\",[37,51.93]],[\"parent/43\",[]],[\"name/44\",[38,51.93]],[\"parent/44\",[]],[\"name/45\",[39,51.93]],[\"parent/45\",[]],[\"name/46\",[40,51.93]],[\"parent/46\",[]],[\"name/47\",[41,51.93]],[\"parent/47\",[]],[\"name/48\",[42,51.93]],[\"parent/48\",[]],[\"name/49\",[43,51.93]],[\"parent/49\",[]],[\"name/50\",[44,51.93]],[\"parent/50\",[]],[\"name/51\",[45,38.937]],[\"parent/51\",[]],[\"name/52\",[46,51.93]],[\"parent/52\",[45,3.284]],[\"name/53\",[47,51.93]],[\"parent/53\",[45,3.284]],[\"name/54\",[10,27.951]],[\"parent/54\",[45,3.284]],[\"name/55\",[48,51.93]],[\"parent/55\",[45,3.284]],[\"name/56\",[49,35.835]],[\"parent/56\",[]],[\"name/57\",[10,27.951]],[\"parent/57\",[49,3.022]],[\"name/58\",[50,38.937]],[\"parent/58\",[49,3.022]],[\"name/59\",[51,46.821]],[\"parent/59\",[49,3.022]],[\"name/60\",[52,46.821]],[\"parent/60\",[49,3.022]],[\"name/61\",[53,40.943]],[\"parent/61\",[49,3.022]],[\"name/62\",[54,46.821]],[\"parent/62\",[49,3.022]],[\"name/63\",[55,51.93]],[\"parent/63\",[]],[\"name/64\",[56,51.93]],[\"parent/64\",[]],[\"name/65\",[57,46.821]],[\"parent/65\",[]],[\"name/66\",[22,33.471]],[\"parent/66\",[57,3.949]],[\"name/67\",[58,46.821]],[\"parent/67\",[]],[\"name/68\",[59,51.93]],[\"parent/68\",[58,3.949]],[\"name/69\",[60,46.821]],[\"parent/69\",[]],[\"name/70\",[22,33.471]],[\"parent/70\",[60,3.949]],[\"name/71\",[61,46.821]],[\"parent/71\",[]],[\"name/72\",[62,51.93]],[\"parent/72\",[61,3.949]],[\"name/73\",[63,46.821]],[\"parent/73\",[]],[\"name/74\",[64,46.821]],[\"parent/74\",[63,3.949]],[\"name/75\",[65,38.937]],[\"parent/75\",[]],[\"name/76\",[33,46.821]],[\"parent/76\",[65,3.284]],[\"name/77\",[66,40.943]],[\"parent/77\",[65,3.284]],[\"name/78\",[67,40.943]],[\"parent/78\",[65,3.284]],[\"name/79\",[68,40.943]],[\"parent/79\",[65,3.284]],[\"name/80\",[69,46.821]],[\"parent/80\",[]],[\"name/81\",[22,33.471]],[\"parent/81\",[69,3.949]],[\"name/82\",[70,35.835]],[\"parent/82\",[]],[\"name/83\",[67,40.943]],[\"parent/83\",[70,3.022]],[\"name/84\",[71,51.93]],[\"parent/84\",[70,3.022]],[\"name/85\",[72,43.457]],[\"parent/85\",[]],[\"name/86\",[67,40.943]],[\"parent/86\",[72,3.665]],[\"name/87\",[70,35.835]],[\"parent/87\",[72,3.665]],[\"name/88\",[73,37.266]],[\"parent/88\",[]],[\"name/89\",[68,40.943]],[\"parent/89\",[73,3.143]],[\"name/90\",[66,40.943]],[\"parent/90\",[73,3.143]],[\"name/91\",[74,40.943]],[\"parent/91\",[73,3.143]],[\"name/92\",[22,33.471]],[\"parent/92\",[73,3.143]],[\"name/93\",[75,40.943]],[\"parent/93\",[76,4.379]],[\"name/94\",[70,35.835]],[\"parent/94\",[73,3.143]],[\"name/95\",[77,35.835]],[\"parent/95\",[]],[\"name/96\",[78,46.821]],[\"parent/96\",[77,3.022]],[\"name/97\",[68,40.943]],[\"parent/97\",[77,3.022]],[\"name/98\",[66,40.943]],[\"parent/98\",[77,3.022]],[\"name/99\",[74,40.943]],[\"parent/99\",[77,3.022]],[\"name/100\",[22,33.471]],[\"parent/100\",[77,3.022]],[\"name/101\",[75,40.943]],[\"parent/101\",[79,4.379]],[\"name/102\",[70,35.835]],[\"parent/102\",[77,3.022]],[\"name/103\",[80,35.835]],[\"parent/103\",[]],[\"name/104\",[78,46.821]],[\"parent/104\",[80,3.022]],[\"name/105\",[68,40.943]],[\"parent/105\",[80,3.022]],[\"name/106\",[66,40.943]],[\"parent/106\",[80,3.022]],[\"name/107\",[74,40.943]],[\"parent/107\",[80,3.022]],[\"name/108\",[22,33.471]],[\"parent/108\",[80,3.022]],[\"name/109\",[75,40.943]],[\"parent/109\",[81,4.379]],[\"name/110\",[70,35.835]],[\"parent/110\",[80,3.022]],[\"name/111\",[82,51.93]],[\"parent/111\",[]],[\"name/112\",[83,51.93]],[\"parent/112\",[]],[\"name/113\",[84,51.93]],[\"parent/113\",[]],[\"name/114\",[85,51.93]],[\"parent/114\",[]],[\"name/115\",[86,51.93]],[\"parent/115\",[]],[\"name/116\",[87,51.93]],[\"parent/116\",[]],[\"name/117\",[88,51.93]],[\"parent/117\",[]],[\"name/118\",[89,40.943]],[\"parent/118\",[]],[\"name/119\",[10,27.951]],[\"parent/119\",[89,3.453]],[\"name/120\",[50,38.937]],[\"parent/120\",[89,3.453]],[\"name/121\",[90,43.457]],[\"parent/121\",[89,3.453]],[\"name/122\",[91,40.943]],[\"parent/122\",[]],[\"name/123\",[10,27.951]],[\"parent/123\",[91,3.453]],[\"name/124\",[90,43.457]],[\"parent/124\",[91,3.453]],[\"name/125\",[50,38.937]],[\"parent/125\",[91,3.453]],[\"name/126\",[92,35.835]],[\"parent/126\",[]],[\"name/127\",[93,46.821]],[\"parent/127\",[92,3.022]],[\"name/128\",[94,46.821]],[\"parent/128\",[92,3.022]],[\"name/129\",[95,46.821]],[\"parent/129\",[92,3.022]],[\"name/130\",[96,51.93]],[\"parent/130\",[92,3.022]],[\"name/131\",[97,37.266]],[\"parent/131\",[92,3.022]],[\"name/132\",[98,37.266]],[\"parent/132\",[92,3.022]],[\"name/133\",[99,35.835]],[\"parent/133\",[]],[\"name/134\",[10,27.951]],[\"parent/134\",[99,3.022]],[\"name/135\",[93,46.821]],[\"parent/135\",[99,3.022]],[\"name/136\",[94,46.821]],[\"parent/136\",[99,3.022]],[\"name/137\",[95,46.821]],[\"parent/137\",[99,3.022]],[\"name/138\",[97,37.266]],[\"parent/138\",[99,3.022]],[\"name/139\",[98,37.266]],[\"parent/139\",[99,3.022]],[\"name/140\",[100,26.807]],[\"parent/140\",[]],[\"name/141\",[10,27.951]],[\"parent/141\",[100,2.261]],[\"name/142\",[50,38.937]],[\"parent/142\",[100,2.261]],[\"name/143\",[101,51.93]],[\"parent/143\",[100,2.261]],[\"name/144\",[102,51.93]],[\"parent/144\",[100,2.261]],[\"name/145\",[103,51.93]],[\"parent/145\",[100,2.261]],[\"name/146\",[104,46.821]],[\"parent/146\",[100,2.261]],[\"name/147\",[105,46.821]],[\"parent/147\",[100,2.261]],[\"name/148\",[106,46.821]],[\"parent/148\",[100,2.261]],[\"name/149\",[107,43.457]],[\"parent/149\",[100,2.261]],[\"name/150\",[108,46.821]],[\"parent/150\",[100,2.261]],[\"name/151\",[109,46.821]],[\"parent/151\",[100,2.261]],[\"name/152\",[110,46.821]],[\"parent/152\",[100,2.261]],[\"name/153\",[111,46.821]],[\"parent/153\",[100,2.261]],[\"name/154\",[112,46.821]],[\"parent/154\",[100,2.261]],[\"name/155\",[113,43.457]],[\"parent/155\",[100,2.261]],[\"name/156\",[114,43.457]],[\"parent/156\",[100,2.261]],[\"name/157\",[53,40.943]],[\"parent/157\",[100,2.261]],[\"name/158\",[115,29.957]],[\"parent/158\",[]],[\"name/159\",[10,27.951]],[\"parent/159\",[115,2.526]],[\"name/160\",[34,46.821]],[\"parent/160\",[115,2.526]],[\"name/161\",[11,40.943]],[\"parent/161\",[115,2.526]],[\"name/162\",[116,51.93]],[\"parent/162\",[115,2.526]],[\"name/163\",[117,46.821]],[\"parent/163\",[115,2.526]],[\"name/164\",[118,51.93]],[\"parent/164\",[115,2.526]],[\"name/165\",[119,51.93]],[\"parent/165\",[115,2.526]],[\"name/166\",[120,51.93]],[\"parent/166\",[115,2.526]],[\"name/167\",[121,51.93]],[\"parent/167\",[115,2.526]],[\"name/168\",[64,46.821]],[\"parent/168\",[115,2.526]],[\"name/169\",[122,51.93]],[\"parent/169\",[115,2.526]],[\"name/170\",[123,51.93]],[\"parent/170\",[115,2.526]],[\"name/171\",[124,32.47]],[\"parent/171\",[]],[\"name/172\",[10,27.951]],[\"parent/172\",[124,2.738]],[\"name/173\",[125,51.93]],[\"parent/173\",[124,2.738]],[\"name/174\",[126,51.93]],[\"parent/174\",[124,2.738]],[\"name/175\",[127,51.93]],[\"parent/175\",[124,2.738]],[\"name/176\",[128,51.93]],[\"parent/176\",[124,2.738]],[\"name/177\",[129,51.93]],[\"parent/177\",[124,2.738]],[\"name/178\",[130,51.93]],[\"parent/178\",[124,2.738]],[\"name/179\",[97,37.266]],[\"parent/179\",[124,2.738]],[\"name/180\",[98,37.266]],[\"parent/180\",[124,2.738]],[\"name/181\",[131,37.266]],[\"parent/181\",[]],[\"name/182\",[10,27.951]],[\"parent/182\",[131,3.143]],[\"name/183\",[107,43.457]],[\"parent/183\",[131,3.143]],[\"name/184\",[132,51.93]],[\"parent/184\",[131,3.143]],[\"name/185\",[97,37.266]],[\"parent/185\",[131,3.143]],[\"name/186\",[98,37.266]],[\"parent/186\",[131,3.143]],[\"name/187\",[133,51.93]],[\"parent/187\",[]],[\"name/188\",[134,19.478]],[\"parent/188\",[]],[\"name/189\",[10,27.951]],[\"parent/189\",[134,1.643]],[\"name/190\",[135,51.93]],[\"parent/190\",[134,1.643]],[\"name/191\",[36,46.821]],[\"parent/191\",[134,1.643]],[\"name/192\",[11,40.943]],[\"parent/192\",[134,1.643]],[\"name/193\",[136,51.93]],[\"parent/193\",[134,1.643]],[\"name/194\",[13,34.584]],[\"parent/194\",[134,1.643]],[\"name/195\",[27,40.943]],[\"parent/195\",[134,1.643]],[\"name/196\",[137,51.93]],[\"parent/196\",[134,1.643]],[\"name/197\",[138,51.93]],[\"parent/197\",[134,1.643]],[\"name/198\",[139,51.93]],[\"parent/198\",[134,1.643]],[\"name/199\",[140,51.93]],[\"parent/199\",[134,1.643]],[\"name/200\",[117,46.821]],[\"parent/200\",[134,1.643]],[\"name/201\",[141,51.93]],[\"parent/201\",[134,1.643]],[\"name/202\",[142,51.93]],[\"parent/202\",[134,1.643]],[\"name/203\",[143,51.93]],[\"parent/203\",[134,1.643]],[\"name/204\",[15,46.821]],[\"parent/204\",[134,1.643]],[\"name/205\",[16,46.821]],[\"parent/205\",[134,1.643]],[\"name/206\",[17,46.821]],[\"parent/206\",[134,1.643]],[\"name/207\",[144,51.93]],[\"parent/207\",[134,1.643]],[\"name/208\",[145,51.93]],[\"parent/208\",[134,1.643]],[\"name/209\",[53,40.943]],[\"parent/209\",[134,1.643]],[\"name/210\",[104,46.821]],[\"parent/210\",[134,1.643]],[\"name/211\",[106,46.821]],[\"parent/211\",[134,1.643]],[\"name/212\",[108,46.821]],[\"parent/212\",[134,1.643]],[\"name/213\",[107,43.457]],[\"parent/213\",[134,1.643]],[\"name/214\",[146,51.93]],[\"parent/214\",[134,1.643]],[\"name/215\",[147,51.93]],[\"parent/215\",[134,1.643]],[\"name/216\",[148,51.93]],[\"parent/216\",[134,1.643]],[\"name/217\",[109,46.821]],[\"parent/217\",[134,1.643]],[\"name/218\",[110,46.821]],[\"parent/218\",[134,1.643]],[\"name/219\",[105,46.821]],[\"parent/219\",[134,1.643]],[\"name/220\",[111,46.821]],[\"parent/220\",[134,1.643]],[\"name/221\",[112,46.821]],[\"parent/221\",[134,1.643]],[\"name/222\",[149,51.93]],[\"parent/222\",[134,1.643]],[\"name/223\",[113,43.457]],[\"parent/223\",[134,1.643]],[\"name/224\",[114,43.457]],[\"parent/224\",[134,1.643]],[\"name/225\",[150,51.93]],[\"parent/225\",[134,1.643]],[\"name/226\",[151,43.457]],[\"parent/226\",[]],[\"name/227\",[97,37.266]],[\"parent/227\",[151,3.665]],[\"name/228\",[98,37.266]],[\"parent/228\",[151,3.665]],[\"name/229\",[97,37.266]],[\"parent/229\",[]],[\"name/230\",[98,37.266]],[\"parent/230\",[]],[\"name/231\",[152,51.93]],[\"parent/231\",[]],[\"name/232\",[153,51.93]],[\"parent/232\",[]],[\"name/233\",[154,51.93]],[\"parent/233\",[]],[\"name/234\",[155,43.457]],[\"parent/234\",[]],[\"name/235\",[10,27.951]],[\"parent/235\",[155,3.665]],[\"name/236\",[90,43.457]],[\"parent/236\",[155,3.665]],[\"name/237\",[156,51.93]],[\"parent/237\",[]],[\"name/238\",[157,51.93]],[\"parent/238\",[]],[\"name/239\",[113,43.457]],[\"parent/239\",[]],[\"name/240\",[114,43.457]],[\"parent/240\",[]],[\"name/241\",[158,51.93]],[\"parent/241\",[]],[\"name/242\",[159,51.93]],[\"parent/242\",[]],[\"name/243\",[160,51.93]],[\"parent/243\",[]],[\"name/244\",[161,51.93]],[\"parent/244\",[]],[\"name/245\",[162,35.835]],[\"parent/245\",[]],[\"name/246\",[10,27.951]],[\"parent/246\",[162,3.022]],[\"name/247\",[50,38.937]],[\"parent/247\",[162,3.022]],[\"name/248\",[51,46.821]],[\"parent/248\",[162,3.022]],[\"name/249\",[52,46.821]],[\"parent/249\",[162,3.022]],[\"name/250\",[53,40.943]],[\"parent/250\",[162,3.022]],[\"name/251\",[54,46.821]],[\"parent/251\",[162,3.022]],[\"name/252\",[163,51.93]],[\"parent/252\",[]],[\"name/253\",[164,51.93]],[\"parent/253\",[]],[\"name/254\",[165,51.93]],[\"parent/254\",[]],[\"name/255\",[166,43.457]],[\"parent/255\",[]],[\"name/256\",[67,40.943]],[\"parent/256\",[166,3.665]],[\"name/257\",[75,40.943]],[\"parent/257\",[166,3.665]],[\"name/258\",[74,40.943]],[\"parent/258\",[]],[\"name/259\",[167,40.943]],[\"parent/259\",[]],[\"name/260\",[10,27.951]],[\"parent/260\",[167,3.453]],[\"name/261\",[168,51.93]],[\"parent/261\",[167,3.453]],[\"name/262\",[169,51.93]],[\"parent/262\",[167,3.453]],[\"name/263\",[170,37.266]],[\"parent/263\",[]],[\"name/264\",[10,27.951]],[\"parent/264\",[170,3.143]],[\"name/265\",[171,51.93]],[\"parent/265\",[170,3.143]],[\"name/266\",[172,51.93]],[\"parent/266\",[170,3.143]],[\"name/267\",[173,51.93]],[\"parent/267\",[170,3.143]],[\"name/268\",[174,51.93]],[\"parent/268\",[170,3.143]]],\"invertedIndex\":[[\"__type\",{\"_index\":22,\"name\":{\"24\":{},\"30\":{},\"42\":{},\"66\":{},\"70\":{},\"81\":{},\"92\":{},\"100\":{},\"108\":{}},\"parent\":{}}],[\"_id\",{\"_index\":93,\"name\":{\"127\":{},\"135\":{}},\"parent\":{}}],[\"action\",{\"_index\":168,\"name\":{\"261\":{}},\"parent\":{}}],[\"actions\",{\"_index\":171,\"name\":{\"265\":{}},\"parent\":{}}],[\"add\",{\"_index\":172,\"name\":{\"266\":{}},\"parent\":{}}],[\"addhistory\",{\"_index\":116,\"name\":{\"162\":{}},\"parent\":{}}],[\"addrelationshipmetadata\",{\"_index\":84,\"name\":{\"113\":{}},\"parent\":{}}],[\"baserelationshipmetadata\",{\"_index\":73,\"name\":{\"88\":{}},\"parent\":{\"89\":{},\"90\":{},\"91\":{},\"92\":{},\"94\":{}}}],[\"baserelationshipmetadata.__type\",{\"_index\":76,\"name\":{},\"parent\":{\"93\":{}}}],[\"cascade\",{\"_index\":66,\"name\":{\"77\":{},\"90\":{},\"98\":{},\"106\":{}},\"parent\":{}}],[\"cascadetype\",{\"_index\":63,\"name\":{\"73\":{}},\"parent\":{\"74\":{}}}],[\"childrelationshipmetadata\",{\"_index\":72,\"name\":{\"85\":{}},\"parent\":{\"86\":{},\"87\":{}}}],[\"classtype\",{\"_index\":101,\"name\":{\"143\":{}},\"parent\":{}}],[\"clear\",{\"_index\":173,\"name\":{\"267\":{}},\"parent\":{}}],[\"clearsessioncontext\",{\"_index\":17,\"name\":{\"19\":{},\"206\":{}},\"parent\":{}}],[\"client\",{\"_index\":136,\"name\":{\"193\":{}},\"parent\":{}}],[\"collection\",{\"_index\":133,\"name\":{\"187\":{}},\"parent\":{}}],[\"connectionname\",{\"_index\":29,\"name\":{\"32\":{},\"39\":{}},\"parent\":{}}],[\"constraints\",{\"_index\":62,\"name\":{\"72\":{}},\"parent\":{}}],[\"constructor\",{\"_index\":10,\"name\":{\"10\":{},\"14\":{},\"54\":{},\"57\":{},\"119\":{},\"123\":{},\"134\":{},\"141\":{},\"159\":{},\"172\":{},\"182\":{},\"189\":{},\"235\":{},\"246\":{},\"260\":{},\"264\":{}},\"parent\":{}}],[\"count\",{\"_index\":107,\"name\":{\"149\":{},\"183\":{},\"213\":{}},\"parent\":{}}],[\"create\",{\"_index\":118,\"name\":{\"164\":{}},\"parent\":{}}],[\"createdat\",{\"_index\":94,\"name\":{\"128\":{},\"136\":{}},\"parent\":{}}],[\"createindexs\",{\"_index\":150,\"name\":{\"225\":{}},\"parent\":{}}],[\"createmongooptions\",{\"_index\":24,\"name\":{\"26\":{}},\"parent\":{}}],[\"data\",{\"_index\":132,\"name\":{\"184\":{}},\"parent\":{}}],[\"date\",{\"_index\":169,\"name\":{\"262\":{}},\"parent\":{}}],[\"debug\",{\"_index\":0,\"name\":{\"0\":{}},\"parent\":{}}],[\"default_connection_name\",{\"_index\":1,\"name\":{\"1\":{}},\"parent\":{}}],[\"defaultmessage\",{\"_index\":52,\"name\":{\"60\":{},\"249\":{}},\"parent\":{}}],[\"delete\",{\"_index\":64,\"name\":{\"74\":{},\"168\":{}},\"parent\":{}}],[\"deletecascade\",{\"_index\":148,\"name\":{\"216\":{}},\"parent\":{}}],[\"deletemany\",{\"_index\":110,\"name\":{\"152\":{},\"218\":{}},\"parent\":{}}],[\"deleteone\",{\"_index\":109,\"name\":{\"151\":{},\"217\":{}},\"parent\":{}}],[\"description\",{\"_index\":75,\"name\":{\"93\":{},\"101\":{},\"109\":{},\"257\":{}},\"parent\":{}}],[\"em\",{\"_index\":50,\"name\":{\"58\":{},\"120\":{},\"125\":{},\"142\":{},\"247\":{}},\"parent\":{}}],[\"ensuresequentialtransaction\",{\"_index\":18,\"name\":{\"20\":{}},\"parent\":{}}],[\"entity\",{\"_index\":99,\"name\":{\"133\":{}},\"parent\":{\"134\":{},\"135\":{},\"136\":{},\"137\":{},\"138\":{},\"139\":{}}}],[\"entityinterface\",{\"_index\":92,\"name\":{\"126\":{}},\"parent\":{\"127\":{},\"128\":{},\"129\":{},\"130\":{},\"131\":{},\"132\":{}}}],[\"entitymanager\",{\"_index\":134,\"name\":{\"188\":{}},\"parent\":{\"189\":{},\"190\":{},\"191\":{},\"192\":{},\"193\":{},\"194\":{},\"195\":{},\"196\":{},\"197\":{},\"198\":{},\"199\":{},\"200\":{},\"201\":{},\"202\":{},\"203\":{},\"204\":{},\"205\":{},\"206\":{},\"207\":{},\"208\":{},\"209\":{},\"210\":{},\"211\":{},\"212\":{},\"213\":{},\"214\":{},\"215\":{},\"216\":{},\"217\":{},\"218\":{},\"219\":{},\"220\":{},\"221\":{},\"222\":{},\"223\":{},\"224\":{},\"225\":{}}}],[\"entityrepository\",{\"_index\":100,\"name\":{\"140\":{}},\"parent\":{\"141\":{},\"142\":{},\"143\":{},\"144\":{},\"145\":{},\"146\":{},\"147\":{},\"148\":{},\"149\":{},\"150\":{},\"151\":{},\"152\":{},\"153\":{},\"154\":{},\"155\":{},\"156\":{},\"157\":{}}}],[\"entityservice\",{\"_index\":115,\"name\":{\"158\":{}},\"parent\":{\"159\":{},\"160\":{},\"161\":{},\"162\":{},\"163\":{},\"164\":{},\"165\":{},\"166\":{},\"167\":{},\"168\":{},\"169\":{},\"170\":{}}}],[\"eventcallback\",{\"_index\":21,\"name\":{\"23\":{}},\"parent\":{\"24\":{}}}],[\"exceptionfactory\",{\"_index\":27,\"name\":{\"29\":{},\"41\":{},\"195\":{}},\"parent\":{\"42\":{}}}],[\"excluded_prefixes\",{\"_index\":156,\"name\":{\"237\":{}},\"parent\":{}}],[\"filter\",{\"_index\":124,\"name\":{\"171\":{}},\"parent\":{\"172\":{},\"173\":{},\"174\":{},\"175\":{},\"176\":{},\"177\":{},\"178\":{},\"179\":{},\"180\":{}}}],[\"find\",{\"_index\":106,\"name\":{\"148\":{},\"211\":{}},\"parent\":{}}],[\"findone\",{\"_index\":108,\"name\":{\"150\":{},\"212\":{}},\"parent\":{}}],[\"forfeature\",{\"_index\":47,\"name\":{\"53\":{}},\"parent\":{}}],[\"forrootasync\",{\"_index\":46,\"name\":{\"52\":{}},\"parent\":{}}],[\"fromplain\",{\"_index\":113,\"name\":{\"155\":{},\"223\":{},\"239\":{}},\"parent\":{}}],[\"get\",{\"_index\":119,\"name\":{\"165\":{}},\"parent\":{}}],[\"getactions\",{\"_index\":174,\"name\":{\"268\":{}},\"parent\":{}}],[\"getclasstype\",{\"_index\":102,\"name\":{\"144\":{}},\"parent\":{}}],[\"getclient\",{\"_index\":141,\"name\":{\"201\":{}},\"parent\":{}}],[\"getcollection\",{\"_index\":145,\"name\":{\"208\":{}},\"parent\":{}}],[\"getcollectionname\",{\"_index\":144,\"name\":{\"207\":{}},\"parent\":{}}],[\"getconfigtoken\",{\"_index\":39,\"name\":{\"45\":{}},\"parent\":{}}],[\"getconnectiontoken\",{\"_index\":40,\"name\":{\"46\":{}},\"parent\":{}}],[\"getdatabase\",{\"_index\":142,\"name\":{\"202\":{}},\"parent\":{}}],[\"getdataloadertoken\",{\"_index\":38,\"name\":{\"44\":{}},\"parent\":{}}],[\"getem\",{\"_index\":103,\"name\":{\"145\":{}},\"parent\":{}}],[\"getentitymanagertoken\",{\"_index\":41,\"name\":{\"47\":{}},\"parent\":{}}],[\"getentityrepositorytoken\",{\"_index\":37,\"name\":{\"43\":{}},\"parent\":{}}],[\"getindexmetadata\",{\"_index\":165,\"name\":{\"254\":{}},\"parent\":{}}],[\"getindexmetadatas\",{\"_index\":164,\"name\":{\"253\":{}},\"parent\":{}}],[\"getmodel\",{\"_index\":138,\"name\":{\"197\":{}},\"parent\":{}}],[\"getmodels\",{\"_index\":139,\"name\":{\"198\":{}},\"parent\":{}}],[\"getobjectname\",{\"_index\":19,\"name\":{\"21\":{}},\"parent\":{}}],[\"getrelationship\",{\"_index\":111,\"name\":{\"153\":{},\"220\":{}},\"parent\":{}}],[\"getrelationshipcascadesmetadata\",{\"_index\":88,\"name\":{\"117\":{}},\"parent\":{}}],[\"getrelationshipmetadata\",{\"_index\":83,\"name\":{\"112\":{}},\"parent\":{}}],[\"getrelationshipmetadatalist\",{\"_index\":85,\"name\":{\"114\":{}},\"parent\":{}}],[\"getrelationships\",{\"_index\":112,\"name\":{\"154\":{},\"221\":{}},\"parent\":{}}],[\"getrelationshipscascadesmetadata\",{\"_index\":87,\"name\":{\"116\":{}},\"parent\":{}}],[\"getrepository\",{\"_index\":117,\"name\":{\"163\":{},\"200\":{}},\"parent\":{}}],[\"getsession\",{\"_index\":14,\"name\":{\"16\":{}},\"parent\":{}}],[\"getsessioncontext\",{\"_index\":15,\"name\":{\"17\":{},\"204\":{}},\"parent\":{}}],[\"getsessionloaderservice\",{\"_index\":143,\"name\":{\"203\":{}},\"parent\":{}}],[\"getsort\",{\"_index\":128,\"name\":{\"176\":{}},\"parent\":{}}],[\"getsortforaggregation\",{\"_index\":129,\"name\":{\"177\":{}},\"parent\":{}}],[\"history\",{\"_index\":96,\"name\":{\"130\":{}},\"parent\":{}}],[\"historyaction\",{\"_index\":167,\"name\":{\"259\":{}},\"parent\":{\"260\":{},\"261\":{},\"262\":{}}}],[\"historyactions\",{\"_index\":170,\"name\":{\"263\":{}},\"parent\":{\"264\":{},\"265\":{},\"266\":{},\"267\":{},\"268\":{}}}],[\"index\",{\"_index\":74,\"name\":{\"91\":{},\"99\":{},\"107\":{},\"258\":{}},\"parent\":{}}],[\"index_metadata_name\",{\"_index\":5,\"name\":{\"5\":{}},\"parent\":{}}],[\"indexmetadata\",{\"_index\":166,\"name\":{\"255\":{}},\"parent\":{\"256\":{},\"257\":{}}}],[\"inject\",{\"_index\":31,\"name\":{\"34\":{}},\"parent\":{}}],[\"injectentitymanager\",{\"_index\":43,\"name\":{\"49\":{}},\"parent\":{}}],[\"injectentityrepository\",{\"_index\":44,\"name\":{\"50\":{}},\"parent\":{}}],[\"injectmongoclient\",{\"_index\":42,\"name\":{\"48\":{}},\"parent\":{}}],[\"isarray\",{\"_index\":68,\"name\":{\"79\":{},\"89\":{},\"97\":{},\"105\":{}},\"parent\":{}}],[\"isclass\",{\"_index\":20,\"name\":{\"22\":{}},\"parent\":{}}],[\"isidquery\",{\"_index\":146,\"name\":{\"214\":{}},\"parent\":{}}],[\"isidsquery\",{\"_index\":147,\"name\":{\"215\":{}},\"parent\":{}}],[\"isunique\",{\"_index\":160,\"name\":{\"243\":{}},\"parent\":{}}],[\"isuniqueconstraint\",{\"_index\":162,\"name\":{\"245\":{}},\"parent\":{\"246\":{},\"247\":{},\"248\":{},\"249\":{},\"250\":{},\"251\":{}}}],[\"isuniqueoptions\",{\"_index\":161,\"name\":{\"244\":{}},\"parent\":{}}],[\"isvalidrelationship\",{\"_index\":55,\"name\":{\"63\":{}},\"parent\":{}}],[\"isvalidrelationshipconstraint\",{\"_index\":49,\"name\":{\"56\":{}},\"parent\":{\"57\":{},\"58\":{},\"59\":{},\"60\":{},\"61\":{},\"62\":{}}}],[\"isvalidrelationshipoptions\",{\"_index\":58,\"name\":{\"67\":{}},\"parent\":{\"68\":{}}}],[\"isvalidrelationshipvalidationarguments\",{\"_index\":61,\"name\":{\"71\":{}},\"parent\":{\"72\":{}}}],[\"limit\",{\"_index\":126,\"name\":{\"174\":{}},\"parent\":{}}],[\"list\",{\"_index\":120,\"name\":{\"166\":{}},\"parent\":{}}],[\"log\",{\"_index\":11,\"name\":{\"11\":{},\"15\":{},\"161\":{},\"192\":{}},\"parent\":{}}],[\"merge\",{\"_index\":114,\"name\":{\"156\":{},\"224\":{},\"240\":{}},\"parent\":{}}],[\"message\",{\"_index\":51,\"name\":{\"59\":{},\"248\":{}},\"parent\":{}}],[\"model\",{\"_index\":33,\"name\":{\"36\":{},\"76\":{}},\"parent\":{}}],[\"models\",{\"_index\":36,\"name\":{\"40\":{},\"191\":{}},\"parent\":{}}],[\"mongo_session_key\",{\"_index\":7,\"name\":{\"7\":{}},\"parent\":{}}],[\"mongofeaturemodeloptions\",{\"_index\":32,\"name\":{\"35\":{}},\"parent\":{\"36\":{},\"37\":{}}}],[\"mongofeatureoptions\",{\"_index\":35,\"name\":{\"38\":{}},\"parent\":{\"39\":{},\"40\":{}}}],[\"mongomodule\",{\"_index\":45,\"name\":{\"51\":{}},\"parent\":{\"52\":{},\"53\":{},\"54\":{},\"55\":{}}}],[\"mongomoduleasyncoptions\",{\"_index\":28,\"name\":{\"31\":{}},\"parent\":{\"32\":{},\"33\":{},\"34\":{}}}],[\"mongomoduleoptions\",{\"_index\":25,\"name\":{\"27\":{}},\"parent\":{\"28\":{},\"29\":{},\"30\":{}}}],[\"mongooptionsfactory\",{\"_index\":23,\"name\":{\"25\":{}},\"parent\":{\"26\":{}}}],[\"named_connection_token\",{\"_index\":2,\"name\":{\"2\":{}},\"parent\":{}}],[\"ns\",{\"_index\":9,\"name\":{\"9\":{}},\"parent\":{}}],[\"objectidpipe\",{\"_index\":155,\"name\":{\"234\":{}},\"parent\":{\"235\":{},\"236\":{}}}],[\"ondata\",{\"_index\":123,\"name\":{\"170\":{}},\"parent\":{}}],[\"onmoduledestroy\",{\"_index\":48,\"name\":{\"55\":{}},\"parent\":{}}],[\"orderby\",{\"_index\":127,\"name\":{\"175\":{}},\"parent\":{}}],[\"paginateddata\",{\"_index\":131,\"name\":{\"181\":{}},\"parent\":{\"182\":{},\"183\":{},\"184\":{},\"185\":{},\"186\":{}}}],[\"possibletypes\",{\"_index\":70,\"name\":{\"82\":{},\"87\":{},\"94\":{},\"102\":{},\"110\":{}},\"parent\":{\"83\":{},\"84\":{}}}],[\"property\",{\"_index\":67,\"name\":{\"78\":{},\"83\":{},\"86\":{},\"256\":{}},\"parent\":{}}],[\"registermodel\",{\"_index\":137,\"name\":{\"196\":{}},\"parent\":{}}],[\"registerrepository\",{\"_index\":140,\"name\":{\"199\":{}},\"parent\":{}}],[\"relationship\",{\"_index\":56,\"name\":{\"64\":{}},\"parent\":{}}],[\"relationship_list_metadata_name\",{\"_index\":4,\"name\":{\"4\":{}},\"parent\":{}}],[\"relationship_metadata_name\",{\"_index\":3,\"name\":{\"3\":{}},\"parent\":{}}],[\"relationshipcascade\",{\"_index\":65,\"name\":{\"75\":{}},\"parent\":{\"76\":{},\"77\":{},\"78\":{},\"79\":{}}}],[\"relationshipmetadata\",{\"_index\":80,\"name\":{\"103\":{}},\"parent\":{\"104\":{},\"105\":{},\"106\":{},\"107\":{},\"108\":{},\"110\":{}}}],[\"relationshipmetadata.__type\",{\"_index\":81,\"name\":{},\"parent\":{\"109\":{}}}],[\"relationshipmetadataoptions\",{\"_index\":77,\"name\":{\"95\":{}},\"parent\":{\"96\":{},\"97\":{},\"98\":{},\"99\":{},\"100\":{},\"102\":{}}}],[\"relationshipmetadataoptions.__type\",{\"_index\":79,\"name\":{},\"parent\":{\"101\":{}}}],[\"relationshippipe\",{\"_index\":89,\"name\":{\"118\":{}},\"parent\":{\"119\":{},\"120\":{},\"121\":{}}}],[\"relationshiptypedescriptor\",{\"_index\":69,\"name\":{\"80\":{}},\"parent\":{\"81\":{}}}],[\"repositories\",{\"_index\":135,\"name\":{\"190\":{}},\"parent\":{}}],[\"repository\",{\"_index\":34,\"name\":{\"37\":{},\"160\":{}},\"parent\":{}}],[\"requiredrelationshippipe\",{\"_index\":91,\"name\":{\"122\":{}},\"parent\":{\"123\":{},\"124\":{},\"125\":{}}}],[\"save\",{\"_index\":104,\"name\":{\"146\":{},\"210\":{}},\"parent\":{}}],[\"serializable\",{\"_index\":152,\"name\":{\"231\":{}},\"parent\":{}}],[\"serializableinterface\",{\"_index\":151,\"name\":{\"226\":{}},\"parent\":{\"227\":{},\"228\":{}}}],[\"serialize\",{\"_index\":97,\"name\":{\"131\":{},\"138\":{},\"179\":{},\"185\":{},\"227\":{},\"229\":{}},\"parent\":{}}],[\"session_loader_namespace\",{\"_index\":6,\"name\":{\"6\":{}},\"parent\":{}}],[\"sessionloadermiddleware\",{\"_index\":8,\"name\":{\"8\":{}},\"parent\":{\"9\":{},\"10\":{},\"11\":{},\"12\":{}}}],[\"sessionloaderservice\",{\"_index\":13,\"name\":{\"13\":{},\"194\":{}},\"parent\":{\"14\":{},\"15\":{},\"16\":{},\"17\":{},\"18\":{},\"19\":{}}}],[\"setem\",{\"_index\":54,\"name\":{\"62\":{},\"251\":{}},\"parent\":{}}],[\"setindexmetadata\",{\"_index\":163,\"name\":{\"252\":{}},\"parent\":{}}],[\"setrelationshipmetadata\",{\"_index\":82,\"name\":{\"111\":{}},\"parent\":{}}],[\"setrelationshipscascadesmetadata\",{\"_index\":86,\"name\":{\"115\":{}},\"parent\":{}}],[\"setsessioncontext\",{\"_index\":16,\"name\":{\"18\":{},\"205\":{}},\"parent\":{}}],[\"skip\",{\"_index\":125,\"name\":{\"173\":{}},\"parent\":{}}],[\"slugdecorator\",{\"_index\":158,\"name\":{\"241\":{}},\"parent\":{}}],[\"slugify\",{\"_index\":159,\"name\":{\"242\":{}},\"parent\":{}}],[\"startsessionwithtransaction\",{\"_index\":149,\"name\":{\"222\":{}},\"parent\":{}}],[\"subscribe\",{\"_index\":122,\"name\":{\"169\":{}},\"parent\":{}}],[\"tojson\",{\"_index\":98,\"name\":{\"132\":{},\"139\":{},\"180\":{},\"186\":{},\"228\":{},\"230\":{}},\"parent\":{}}],[\"toplain\",{\"_index\":157,\"name\":{\"238\":{}},\"parent\":{}}],[\"toquery\",{\"_index\":130,\"name\":{\"178\":{}},\"parent\":{}}],[\"transform\",{\"_index\":90,\"name\":{\"121\":{},\"124\":{},\"236\":{}},\"parent\":{}}],[\"transformobjectid\",{\"_index\":154,\"name\":{\"233\":{}},\"parent\":{}}],[\"type\",{\"_index\":78,\"name\":{\"96\":{},\"104\":{}},\"parent\":{}}],[\"typeobjectid\",{\"_index\":153,\"name\":{\"232\":{}},\"parent\":{}}],[\"update\",{\"_index\":121,\"name\":{\"167\":{}},\"parent\":{}}],[\"updatedat\",{\"_index\":95,\"name\":{\"129\":{},\"137\":{}},\"parent\":{}}],[\"uri\",{\"_index\":26,\"name\":{\"28\":{}},\"parent\":{}}],[\"use\",{\"_index\":12,\"name\":{\"12\":{}},\"parent\":{}}],[\"usefactory\",{\"_index\":30,\"name\":{\"33\":{}},\"parent\":{}}],[\"validate\",{\"_index\":53,\"name\":{\"61\":{},\"157\":{},\"209\":{},\"250\":{}},\"parent\":{}}],[\"values\",{\"_index\":71,\"name\":{\"84\":{}},\"parent\":{}}],[\"watch\",{\"_index\":105,\"name\":{\"147\":{},\"219\":{}},\"parent\":{}}],[\"with\",{\"_index\":59,\"name\":{\"68\":{}},\"parent\":{}}],[\"withrelationshiptest\",{\"_index\":60,\"name\":{\"69\":{}},\"parent\":{\"70\":{}}}],[\"withvalidrelationship\",{\"_index\":57,\"name\":{\"65\":{}},\"parent\":{\"66\":{}}}]],\"pipeline\":[]}}"); \ No newline at end of file +window.searchData = "eJy1XW2T2zaS/itX8letzQbf/c1rT3Z965ds7OztlSs1RY84MtcacUJSdvZS+e9XAEmp0WiQTUn7Kc4Q6G4ATzeAfgDo91VTf29Xzz/9vvpa7Ter59l6tS8eytXz1cuivSs25cd/P5ar9erQ7FbPV+X+8NA+Q1+efukedqv16m5XtG3Zrp6vVn+sR1mQHIW9unlz8/FmRs6TTbkru9IWt149Fk2574hFSIs62Xyz76ru30c1g5hn/Z8nbY1BHaXc1fu2aw53Xd1MiXpil+NtHixC5gYqOmq6rTaTGvrv50i+a8qiKzcvuukW9KWK7kwtbdlUxa76v3JSCy510tK1mz9V7Z+q/ZeyqbpyI9fa1f/94f27SZVd/a+23l9J3+FxI+jLodSivnSg+7bYF9vSB7vh6xWBjCUuwPNopg98u0qXlqgcSzrj9NjUXXnHjtOM9vK3u/Kxq+r9D4Vuii8cWHYc69wf61zRol29lRjRF7ui3od6U+5aiepjyStqb8rHuq26uqlKkQ2k/BUtacu2rer9m7rYlM2HsvlW3fkilmXRUG9n6rXHepdZpoIoQ55SFs2HXs3Let+Vvwndpiyawbq7Y7VlHmvbUR+EDjsUvESXmXRe7zflbyJc9OWrsfwFmvv1xbCMkKjuK9wdK1xx5HvRb4u9KD71pR/60hf3wPv9gtbXe/+KTKTzXv9JoG4od6EmYdt00ctb1tQPP+6Kai/S2NQPj0PhC3Ruy+6leHrdlh0zw56ls97tyjs9Q0r14grX0v1O/22p/n1f6TIbXhVd8blopdo3p+KX6X2rJ2ah0oeh7BU0igLzqPLCqLwtu5/KXaGHqv1SPQo1N3aV6+mXNr0hdS61YFj8iKYDox5VuEz38vXHtuyuufo42bB4iXayxL9KW2xP1b7e/P1QysaiaqvNr0PhC3W2i5S2V9D6UDZbUT+PBS/Q1ZTbqu3KRhzSxgpXiGujqGVuNta6lq+1xTfZvqMvd4mmc7y6va5Xt13RjFb8T9V9+dgU+7YQryFM9cGe71X3pbOqX2DXt2JX6VSNxAhU9gKN34vu7otE3VhwYe7FSSPNwvxU4IrJJCJ0QT4J2etNKRVta+WiZ3Trr11ffsmubd6S8kFogil4sW7xNt3t/fmd+rzG2W0qVSveqUp1+zd0vOr5Xd285oktK1Uq2LXK9MnbKdu7CrTObF8dvcId7Lxms4ld5tBmK8v59Ln65za0nAHSPa3IghtpINlqh7qGRsE2i9G9YKe12ArfZmvGjLn91rwdUwtfqlyy9p3XOLH4owoF6795fTPLHKpTuNKZ1zu12KFKJesdfkZ2ljzTe8bh6xUXO1jigpXOaOZipsjSt5wpmtFr7XBm1Z9K/wkutsMCT7HZ/LVqpXYUm82XY+llvc4wEqKBHkteoO14ymFW28x5CJG2belbMFqq+mKX6ZnddVCN4n31jO5d1YoaOZS7QFO914lgia56v+lLXtE72sPn9q6pPovAgwtf0OL+WINE4bHkwviHQvkP1a5jTj/0f75K8EaiRFF7sMgXrquHykUe1jGWOEd63WzK5s+uM2H5psxnv/9Ma/Cf38E6lp/fmdH6lVl+Wgq/Tqw0p2V7zgZh6QvPBjn6nNR13UxjQOeo+zLCFnEafqibF9ttU24Lds/C6Luvm8KqcY72ruZz0naHTmei3RFDLj9M9y/4rZj19SoBwJUoigO2mR7weZKbjMqZPKZIGxuXGV2TUdmryTdE7o7N/nz9QWrPHKV2ephEDXlyKrtQI13WyrRt/LkkmSZzMkjWn0PJS7Rty24BKnRgOrs/MSBftz/vq18P5UsDiaJicqJukasA0yNWBE7GanmK2afYl2SuvvVef4b2h7JtCyY54jPhVP5iO8g+6b447Lq3C80ZqnFWnWdHy6bqfOrbyWSdXKs3feNTPJvAmUaA5V7/0LJwnm7S0yZKX8np5jQI/W+qWUtccdacBV55hk1+B501bKmvyqxb5razRoo9+AzrfM48a9ScX59hy4SLz5oj8HYhspDjv6332/ptvTnsXJvQt6s4NZUncmFsoNxhHVVi9+T1kYxQ//1V2XZN7W6UHOX1/sH83+ZYYUlbbQKvbn4oi+7QzA/Xk/u6uT+WvUTjT3XdvWj/vb8T6WzquiuG0ovGFMHy/ed/lXfd682PFcMW4o9XAaYjUIRMy0bfXlqfYLmvGxehrk5cdpFG3HE/Fttqry8lsUlL6+tVus6VKOo720zfARD26AOrcercg0jXRtZdT5wM72JN/gQco255Hk5kgydlxhiwMHPm1Y4giucn1r9pgasAlRUqwqpjr3wa4pUuOCU0oVsYZ3gT5mPNVKutwfz1UDXlRjCofMErDe6EcOEge9qxZLCnjJgZ9P+a8iqBcWI0TNkoQcV8NyF0WEe831abza78XjBLF0+5q2BjSrYIGr5GLODzJ21YwuwvtIVJ0k2aspffwpy3xOYUmXs0k6YcJm7SCHrBB0LfmRGu0PXht/gECWv7ucA7+zzJjBWLr7dO9MmCW65LrDpdN1lgzOmiyZVtWN4v8ts3SyyavzLgt0h+c2DOovj0Zsifi7bsDw283ndlc18gT63Gv7TPmGKTvjrzTIZAsuDZDM52jwlfyHkniQFzp54WqHd3IBIDlm9FFphENiQSexbuTBYY4z7+IbFn/jGQaROoH+Al1tuyK6wdKjGIK7vAI8jteKnwJ9wtedpgthkeQ8yF/+VmjNWuZET7omkKr3NOmNEWQ8XrGPJYt231eWceP2qXmzNW74bqZxuFgfnyS7XbSJHpLSyH5mwfTOsQdoK/VT6zmvqxbDoWJHMWnaqebwweEsF8+Z+ZKxfMk/MPMV0yZ4rnyyuYMTl3XmnevHjOvMZ8eY25csE8eZ4p2A/M6zJT4cgqIPeBTanP1D5ax7wmpT6xa3i4OsvaM8IMo3c2tPiUWt3okojvH+3zPtgKb2l5B+ubvmfIfjLUE3OhYzPE7f5HT7hW9f5Fsz08lPtO2gdMzQVB98jZXqruiS1K3FNcw/leM0zeQEiaS/4TWPGVlffMg/WMgFR0/9IZubbi0JFcI+Q3Z8S2eO/RLDTINwjC/l/c9Xf1fs88yCMQ/+RUdV9MPMvDtWIKB4vayL12J1fudHbPXRtKfK7D3aJX73SPikUdz7TIu0nTJPRiY47VrmLEoS3pU49SQw5tyb34uMwYDyJkYFiMA+/zlvPyp5+59DR6rvObaokFffEzlDqdPBSZ6wW72NLdDhaxRMWw9XnQn+tj9Ylmk9bw7f5xbgNsFViwsZ5YWroi55eWtp0epd+K3UHaiifHwssU4s6zTsL5k1xMsaskz3xyZ/NmnN3Ls1Ve9XOJqgXqvSsyr/Lpl50WqJ5CsFf7LI6nDfCBa2rb+R/LzS7Ly06fL7hCjnZJfvZqxsjQP5+nvZZBs/nKc1KV1zKuw0+viGyafHllQY6SKzoxxU4U/495jr1yvoIDzS6jF/gRWUlf6k5zpi3zKtu4KzjXjHln+Zhl5PVcbcbUJR5nWbjY8aZXzx+GHHTxeVdOMgVsQbnPTWbH/bI9OXL7EAHXgsWZ8QkbmPz4EgNUkKcQn84E3Xwr993LYrf7XNx9PZpiEPfM+jbZu45U305wEEw+L5I9XhajgbkXTb4ukowBq7321ZAgR8eleiX+gov06acnLVEleiyk18QVWazDSZwySpwyk1rCk4JXN3/++S9Hgd+KptLQa5+Zv8uF/PDi5zcfb1++f/fu5uXH1+/f3b578faGFcuWlCq6+efLNz+/unl1++NPNz+8/ufNB0aFU0Yq/PW7Vzf/vH178/HFqxcfX/hawJSSKnj7/t1f3t9+uPnwQbf7bzf/y4h3ykiFa0Ne4X79+P5vN+8YDXxBqZqfbt680LU+/PX1j7dvXn/4ONthMzXOUrxI51nqxhF48/7Fq5ufTNUPP754ySnzFZ1UlaBXAzbTZx3uD/v+0vozT0lXEbl4xqpl3ik8aTp9lLai3LeHpvxQ/noo911V7LhHeU/yJ0pLFbqPTJ7EH79JhZl3G/f31fZj/bXkJNoFlokd0uPTonGhBeL1DZj+gfIJ8aTQAvHWy8ATGtxyi5WcHvma1UOKLlDF0/eWCjmBPyG6FcieXt3Ywvs7eRY/Ywk+fV8glMlCtdN9M1XjTMVyhVdS9Aa/6TarTJc+U2G7vE+dKlLVr619/km++btciAaR/Rg4J9IpdY4C5k0/XofwRXFHjWE/yC/aUA2ojFR41ZoHhhmRwxexlcNWhzNu+CQX5d8jYKnLdglIgf2o7Umk+btUyIx559iFt8uMSPxZKtJNLpzkHb/Jhc3OOLTIAtHCMOoped6qsV0e4+aqiAd7d9i+Ku/qpsBbejTa+PsSodU9F4OGL1JBJBt0ktN/kIvxrWmHL2JB4y3L8To/J5KWkQrXWZMJufgzJ/KX9ZCYfv776lvZmLtPz1fqafg0X61X91W52+ifDl6NB0rqh4c+im/qO3NQbPXLUOwfpc5A6cJ96WfBav0pWMfwNI3CX35Zfxormw/mD6OM019MRVitP8E6Sp4mYWRVBKciWBXVav1JcRqVU1FZFcPV+lO4VunTNLE1hk7F0KoYrdafIk5j5FSMrIrxav0pXkfhU5Va9WKnXmzVS1brT8k6jJ8mUWZVTJyKiVUxXa0/pVzF1KmYWhWz1fpTxliaOfUyq16+Wn/Kua7JnYq5PfyBbzTARQ4Q6BjssKgDBj02fECDAoBpK7gAAhtBoHEBah0FT9OYVHZBBDaKQGMDQhbyLpDARhJogAALQnDRBDacQIMEYlaziyiwIQUaKJCwlV1UgQ0r0GiBlOtsF1lgQws0YCBjm+yiC2x4KY0YYJGpXHwpG19KI0YFXJOViy9FwpOJT2xkU0yEsgGmNGSUYiu7AFM2wJSGjGIBplyAKRtgSkNGRcxIKRdfysaX0ohRMdvZLr6UjS+lEaNYfCkXX8rGl9KQUSmr2QWYsgGmNGQUCzDlAkzZAAs1ZBQLsNAFWGgDLNSQCdkAFroAC22AhRoyIQuw0AVYSOZAMwmyAAuZadAGWKghE7IAC12AhTbAQo2ZMGIruwgLbYSFGjMhi7DQRVhoIyzUmAkTtrKLsNBGWKgxE7IIC12EhTbCQo2ZkJtXQxdgoQ2wyEyQLMAiF2CRDbBIQyZiARa5AItsgEUaMhELsMgFWGQDLNKQiViARS7AIrLQMiutkDWbWWvZAIs0ZKKIm5wjF2CRDbBIQyZip8jIBVhkAyzSkIlYgEUuwCIbYFHmWwhFLr4iG1+RhkzEgjNyARbZAIs1ZKJsHaZPgzS3KscuwGIbYDH4JvbYxVds4ytW3uk1dvEV2/iKQ+/0Grv4im18xZF3eo1dfMVkMR97p9eYWdDb+IoT3/Qau/CKbXjFBl5sJIhdeMU2vOLMO73GLr5iG1+xRkzMhpHYxVds4ysJvPNU4uIrsfGVgHeeSlyAJTbAEuULu4mLr8TGVxJ6g1/i4iux8ZVE3hCUuPhKbHwlsTcEJS6+ErJj1JCJgRuphNk02gBLUl8ISlx8JTa+ksy7JUpcfCU2vhKDL36UXXwlNr5SjZiYnSxSF1+pja9UIyZm91Opi6/UxleqfLmL1MVXauMr1YiJ2ZVM6uIrtfGV+hdgqYuv1MZXarIR7CyVuvhKbXylBl/sTJO6+EpJVkJDJmYX2imTmLABlmrIxGz0S12ApTbAUg2ZhA1gqQuw1AZY5k1RZC6+MhtfmUZMwvpj5uIrs/GVacgkbI4rcwGW2QDLQl/yKHPxldn4yjRiEtalMhdfmY2vLPYlnzIXXpkNr8xkvFh3zFx4ZTa8Mg2YhHWpzIVXRhJfGjAJ6xUZk/yy4ZUZeLFekbnwymx45V545S68chteuYEX61G5C6/chldu4MVn7Vx45Ta8co2YlPWo3MVXbuMrj7xNduGV2/DKDbxYj8pdfOU2vnKNmJT1qNzFV27jKzdZVdYrchdfuY2vXCMmZZGdu/jKSXZVIyZlkZ0zCVaaYZ1IsXI5VpJkDcC7P+i/0fokzxpo4KR84jBgUq0BybUGBmkpX5/JtgYk3Rpo/KQZX59JuAYk4xr495P9N1qfJF0DgznWzfpvtD7JuwbeVVn/iVYnmdcgmxg+JvkakOxrkE8MH5N/DQj6TM7eM3xcit/J8YN/+NgsP4GfSd17ho/L9NNUv8neZx6SgYEfzfaDN9YBl+6n+X6TwvcMH5fxpyl/k8XP2HAJXNKfZv1NIj9jIyZweX+a+DfJ/IwNmsDl/mny3+TzM57w4NL/JP8Pyh/8GAIACAMAJqmfcdwdMBQAEA4ATFo/Y1cVwLAAQGgAUF6uEhgeAAgRACa3z9MuDBMAhAoAk97P2GUNMGwAEDoAlJe/BIYPAEIIgPKymMAwAkAoATBZ/oznjRhSAAgrACbR7+l7BniEF4DQn1YDhhkAQg1A6Eceww0AIQfA5PszftZh6AEg/ACEfuQxBAEQhgBM0t/XegZ6hCQAk/f3tJ5BHqEJwGT+cz5oM0QBEKYAQv+cy1AFQLgCCP3JEGDYAiB0ARgKIOeDNsMYAKEMwLAAOR+0GdIACGsAhgjwEMUMbwCEOADDBfDdxzAHQKgDiCbodYY8AMIegCEEPFQ1wx8AIRDAcAI5P2cxFAIQDgEMLcBTXMCwCEBoBOh5BDYdBgyRAIRJAMMO5PycyZAJQNgEMAQB63sMmwCETgDDEOQ8eBhCAQijAIYl4GcNhlMAQiqA4Qn4WYNhFYDQCmCYAi5lDAytAIRXAEMV5Px8zzALQKgFMGxBnrLIZ8gFIOwCGMYgz/j6DPIIwwCGNMhzvj6DPEIygOENIAjWYfY0jUl9BnmEZwBDHUDARz6GagDCNYChDzwGMGwDELoBkv5IER97GMYBCOUAhkaAgA8eDO0AhHcAQyWwzsfwDkCIBzBcgsf5GOoBCPcAhk7gnY8hH4CwD2AIBd75GPoBCP8AhlNgnY8hIIAwENBTEAEf9xgSAggLAUmPPjbPAgwRAYSJgDSYQA9DRgBhIyDt4ccHEIaQAMJIQE9JBPyanWElgNASYJgGCPhlM8NMAKEmwLANEPArT4adAEJPgGEcwHOsj2EogFAUYFgHAP5QKcNSAKEpoOcp+PmXISqAMBVgyAcAfv3FkBVA2AowBAR4zggyhAUQxgIMC+Gpz5AWQFgLMEQEeM4ZMsQFEOYCMjXRAoa8AMJegGEkAHhfZBgMIBQGGFYCgHclhsUAQmNA1uOQdyWGygDCZUCWeE+YMmQGEDYDDEEBnoOPDKEBhNGArIch74kMqQGE1QBDVIDiPZEhNoAwG5BPzMYMuQGE3YB8ajZmCA4gDAcY0gIUv55gSA4gLAfk/VaEd2WG6ADCdIBhLzwrOobsAMJ2gCEwPCsyhu8AQnhAPhUMGc4DCOkBhsfwjgEDQ0J8QN5vhvkVEcN9ACE/wPAZvi7kTgDTI8CBd1GsGAJEEQJEGUKDHwLFECCKECAqUF4vUAwBoggBooIeg+x+UjEMiCIMiDKMBngO5jIUiCIUiAr82xLFUCCKUCAq8G9LFEOBKEKBqMC/LVEMB6IIB6IC/7ZEMRyIIhyICvKpEWDOCBMSRBlSAxQ7GSmGBVGEBVHg3RQrhgRRhARR4N0UK4YDUYQDUcN9B/58NUOCKEKCqP7OAzcVKoYEUYQEUf2tB88RbYYFUYQFUf3NB/6YtmJoEEVoENXffuCPaiuGB1GEB1H9DYiQnYkUQ4QoQoSo/hpEyN94YpgQRW9C9FchQjYOK+4yBL0NYcgNCNlFoeIuRDg3Ikwg5I9vK/ZSBMGh4TeAP8KtuIsR9GZET4jwx7gVdzmC3o4wFAeEPBK5GxL0ioQhOYA/z624WxL0moShOYA/0624mxL0qoThOSDikcjdlqDXJQzTARGPRO7GBKFGlKE6gD/frRhuRBFuRBmyg7+kwnAjinAjynAdEPFAZsgRRcgRZdgOiHggM/SIIvSIMnQH8EfFFcOPKMKPqLC/B8YDmWFIFGFIlGE8IOKBzFAkilAkKuxxyAOZIUkUIUlUT5Lwp4oVw5IowpIow3oAf9hVMTSJIjSJMrSHfvWLE8DwJIrwJGrgSXggM0SJIkSJMswH8OdPFUOVKEKVqJ4q4c+RKoYrUYQrUYb78CzNGK5EEa5EGe4D+OOkiiFLFCFLVNRfSuSRzLAlirAlyrAfwB8rVQxdoghdoqIeiDySGb5EEb5EGQYE+OOliqFMFKFMlKFAgD8mqhjORBHORBkShD3prhjORBHORBkSBPiTpophTRRhTZThQYA/MaoY4kQR4kQZIoRf3zK8iSK8iTI8CPAHRxVDnChCnChDhAB/eFQxzIkizImK++uxvB8w1Iki1InqqRP+EKliuBNFuBPVcyf8YVDFcCeKcCfKcCH8JoGhThShTlRPnfDnSRVDnShCnaieOuHPlCqGOlGEOlGGDAH+bKhi2JPxb+ZZhG9l05Wb/j0f/arBbbVZrX9f3Q4PJhzfYPh9Fa2e//7HH6fnEZ7//gd6IUF/01rGJ9hOIpLsJCOHBUJaLCUFJCWWSdlYTUkVkpBIJRx/ce0kKA5PgtJAKqhBb5I8HF8vOUnVS9OjWL34lMj9XLRlaZ4tqk4P4J5k5mj4NN0tFTlna54gubEMGMfXp5GYFIuJ+4o6FTj8I+//ofMqCzT0rwyftAQnJbLButO/VTg7XAFg43OZZP0oCbUvQr0QSeWURWNhG0EyT+Uy6I8do/bhIU6HEYmEQz28goV7C0mTxYA79F4k9hKFvUTYXeQng5A4CHEzB8BpVkYo9/RDZLixORYq7DP8u+knWci8cDAu6P/bu/N6lQyDkw1/z8f/jm4UBOM/xmGE8ZMaP6lRuBq7IBz/Eh4HX9opBzL22MsHo2MY9Ql7x/wKjRWEUWhLhYg6/YonknMSMwagaOyDJFwg18izcYAmPhAilfm1HSRQYTfKZCJp4MrwcChZZN2Qzk8QwHMZLDbl58PWakyIPVnYP5vyvjjsutuTR986Lh2GOELIQv4g96Fs22JriUtxdwWjU4BU7K60ew5PGn2lVNp/WhQziQIaC3FrtayHYm8tazC41GBcvMS4em8Zpqz1zCBP5lHWb43iwIq8VZ9CkcgqH6zJFvlkfAyMYzQKsnF8x1gQjmVCWaDqHxpujw8Nd/hZYjyNYZCGsmHrF3pWFyMhC0Swa0V9eAt17hJ5D+PjnWhphwLEAkn4RyjRoKG1SCRb3fTi2rL5VtnNjBEqE9kuoNQ/bHB3/NEDHI9T7DIybLs/XYeXIzg2j4uRpP+HAiEEf7vbHTbl5vaxKe+r30p7Cgkj7JWyifO+2nX28CYoVqSyAb7Xj/ph7GLwDnFVuJXQomiwwf40LG9i2eR2Xzf3/W9kWtMkMg9ABrr7umnquiv0rytasrBngWwbpp8Uf+yfZkStxIM3hKh4hEcoG8xtaa9/UEhNZQjelh23QUe25bI2bsuO3xGh6BHLut6IorsOhdqmZL6u5bAbD4VikBqWxLG8mUeZdLlihZAF8vTb8F3/cDmeVjBAQlkM78UNyylGJO7EUIwQvezUqQSrrWjyFW7dBkn9a/KMcXhUhFP0Vq99LBdAwUy4kdcy8NTHWIbHNZRFoqPU0zTICMadGIpRbarzeSe8gAzF7mYJtOcY3KGavhJKHH5EEeEFWSZcI41iLINCZI88StbmRVlne4EXEJpaE0prrNeokW1IXDhM+Ym4rVjqsDdo2UGO8WwbnSWfl2vNu+K+5eTuzEP5WDYOZsLsA5FtwwD1wZjeSM4yuZ3uaxwxI3HE5Ne+eDcbDgsbYUppW3ZDfs9amePFSCQOTP5MIV5RhsccijgwDYL7CM8s2EPUm/Jw19aNZWSCjMwWSbmvm2K7bcpt4RAbyLJMFjcZNiHHe9rjljSRDfEgjyFd0PQjTBRZsuylHYqfuQzPw885ombiZNhxzTrmJvXRx/4fwhSzkXo7uh+TBMI+qGSxwz9FBphHSWQT2vjT8Hh3h4c6k3akFuPdZ0OMV0BCd8Yy+aijDyYgsTKH6cWa5CXDAMR43SLcxR9/dxPhCOfW4zE3nccjjmD8h1TDXf/zGthSvCASsmZVW21+PZQkdqOxES6stJzWFYRGQ7ieqtrD8HMfmNPBCzMh1zQKOpEdVmhAkM6XCWQT3BgkIERz+03/zohvgaXPl6BNs2zpw8j0tB/DMRD6iSuc64vAYuBk6xRGtPmD+b+i2ZrSRA0OzMIMwK56qOzpFfVxJjOVLvdwIEtlI7+rbUYBp2zG9d2Y0Q3HfwgXZMNP0CAfRP0UDgxRMizYVSxrM8cv4FEOxpxfIHMlZ8cEVgYxTcbwKAOmu3Oy6NGRNcxkPmQmgttheXf7tbQnGBwblRKOiZY45OqMrZzbWFSzEEhYMCsTIyuVBWAj86HeHHZ2XtFiwhe0uxdlcousiXiJInRBJJcVaRG3C3pyEMYmuHG8zGQ9qctvMOXnJkXwBKmEnLLd2hw7jnBb32cIqs1jZecvMzwWQmaz3tNVJ16CpTIHrvf9aG7Ktmtqq+cz3D4Qims2ZfPZEpMgTxCekngsttVeE+8OE41Dn3CNTn7kHM9j2LHiMdon44YqP+40xpgdyND32NSPZWPzbvpeINoQjPRhelQ2/kV4Fqcpt1XblY0Tz0PkLsKszSjLQ6WhXhKma/wLK5xTEjLFWNitXgJM7eHwYlB4UsGSPyEaL/GF1ACTa7NXHxgTwm3ybH4N81ogpFU4oexiG++RA1nQxLKdsIdXkkIuA8vTPr1BP6KOTcXjJYxeRweoSKTA0VmKKs6XcE41Gc8MpVKP//VQNeVmsj/xXCkkc9rim02lobAfjellGTZb68cOsd/jnK/wRAcWxh8/sAg24fka9OOJaIpCo9LXy46n28YF8fH8WTImDmBMHAg56HFd2+ctTYRpH2mbcLRVSoYMKx/6UG02u/J7YXPTOZ7qhDnRuTSrlZsau0k4Q7SUUUtxJAjGfYPw4Gc7RVYlFgMu895WwGPgXK6KpV26gBRIMLyFpHY7lXbHB2GjEeDCvFr71Z7KsUdnQvzvDtvN6dcxcUvxWlxIkbfjz2JiOXj6F/KybVc0Y599r7ovnuNX+PSVMOHcHj7rmemzfZgImSgM/F39r9Y2Bi/zh3g1sijjQQOIx8RAcjwMNC5jhWRhVzunSQAf41RCJqyrnewkhrZwS3f8JVBrvsMhaDyBCOHxHzJvP4oed2dWkzGVoYSH3OjxFLCO4YxnQpUwZ6Ol8abhPKVwjj480qO5OHktzFT0Qsi5aITscS8Vj1EmkUH90FT23h/PCkLC7GCfIMnxGlu4ITq0JZuJwLtPYdAbcqn2CgtfkRocNzmevR89GWRQ+1bsDmS1io/RgvCw9feiu/tiGYlcKxpCSCLzJx1G7b0vTgsJTy9rIdZSvyRcf2gdPpZhQwudTv3jwxVKcvDul/VKr8J31b5cPf/0yx9//D/Q/0py"; \ No newline at end of file diff --git a/docs/assets/style.css b/docs/assets/style.css index a16ed029..5ba5a2a9 100644 --- a/docs/assets/style.css +++ b/docs/assets/style.css @@ -1,1413 +1,1633 @@ -@import url("./icons.css"); - -:root { - /* Light */ - --light-color-background: #fcfcfc; - --light-color-secondary-background: #fff; - --light-color-text: #222; - --light-color-text-aside: #707070; - --light-color-link: #4da6ff; - --light-color-menu-divider: #eee; - --light-color-menu-divider-focus: #000; - --light-color-menu-label: #707070; - --light-color-panel: var(--light-color-secondary-background); - --light-color-panel-divider: #eee; - --light-color-comment-tag: #707070; - --light-color-comment-tag-text: #fff; - --light-color-ts: #9600ff; - --light-color-ts-interface: #647f1b; - --light-color-ts-enum: #937210; - --light-color-ts-class: #0672de; - --light-color-ts-private: #707070; - --light-color-toolbar: #fff; - --light-color-toolbar-text: #333; - --light-icon-filter: invert(0); - --light-external-icon: url("data:image/svg+xml;utf8,"); - - /* Dark */ - --dark-color-background: #36393f; - --dark-color-secondary-background: #2f3136; - --dark-color-text: #ffffff; - --dark-color-text-aside: #e6e4e4; - --dark-color-link: #00aff4; - --dark-color-menu-divider: #eee; - --dark-color-menu-divider-focus: #000; - --dark-color-menu-label: #707070; - --dark-color-panel: var(--dark-color-secondary-background); - --dark-color-panel-divider: #818181; - --dark-color-comment-tag: #dcddde; - --dark-color-comment-tag-text: #2f3136; - --dark-color-ts: #c97dff; - --dark-color-ts-interface: #9cbe3c; - --dark-color-ts-enum: #d6ab29; - --dark-color-ts-class: #3695f3; - --dark-color-ts-private: #e2e2e2; - --dark-color-toolbar: #34373c; - --dark-color-toolbar-text: #ffffff; - --dark-icon-filter: invert(1); - --dark-external-icon: url("data:image/svg+xml;utf8,"); -} +@layer typedoc { + :root { + --dim-toolbar-contents-height: 2.5rem; + --dim-toolbar-border-bottom-width: 1px; + --dim-header-height: calc( + var(--dim-toolbar-border-bottom-width) + + var(--dim-toolbar-contents-height) + ); + + /* 0rem For mobile; unit is required for calculation in `calc` */ + --dim-container-main-margin-y: 0rem; + + --dim-footer-height: 3.5rem; + + --modal-animation-duration: 0.2s; + } + + :root { + /* Light */ + --light-color-background: #f2f4f8; + --light-color-background-secondary: #eff0f1; + /* Not to be confused with [:active](https://developer.mozilla.org/en-US/docs/Web/CSS/:active) */ + --light-color-background-active: #d6d8da; + --light-color-background-warning: #e6e600; + --light-color-warning-text: #222; + --light-color-accent: #c5c7c9; + --light-color-active-menu-item: var(--light-color-background-active); + --light-color-text: #222; + --light-color-contrast-text: #000; + --light-color-text-aside: #5e5e5e; + + --light-color-icon-background: var(--light-color-background); + --light-color-icon-text: var(--light-color-text); + + --light-color-comment-tag-text: var(--light-color-text); + --light-color-comment-tag: var(--light-color-background); + + --light-color-link: #1f70c2; + --light-color-focus-outline: #3584e4; + + --light-color-ts-keyword: #056bd6; + --light-color-ts-project: #b111c9; + --light-color-ts-module: var(--light-color-ts-project); + --light-color-ts-namespace: var(--light-color-ts-project); + --light-color-ts-enum: #7e6f15; + --light-color-ts-enum-member: var(--light-color-ts-enum); + --light-color-ts-variable: #4760ec; + --light-color-ts-function: #572be7; + --light-color-ts-class: #1f70c2; + --light-color-ts-interface: #108024; + --light-color-ts-constructor: var(--light-color-ts-class); + --light-color-ts-property: #9f5f30; + --light-color-ts-method: #be3989; + --light-color-ts-reference: #ff4d82; + --light-color-ts-call-signature: var(--light-color-ts-method); + --light-color-ts-index-signature: var(--light-color-ts-property); + --light-color-ts-constructor-signature: var( + --light-color-ts-constructor + ); + --light-color-ts-parameter: var(--light-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --light-color-ts-type-parameter: #a55c0e; + --light-color-ts-accessor: #c73c3c; + --light-color-ts-get-signature: var(--light-color-ts-accessor); + --light-color-ts-set-signature: var(--light-color-ts-accessor); + --light-color-ts-type-alias: #d51270; + /* reference not included as links will be colored with the kind that it points to */ + --light-color-document: #000000; + + --light-color-alert-note: #0969d9; + --light-color-alert-tip: #1a7f37; + --light-color-alert-important: #8250df; + --light-color-alert-warning: #9a6700; + --light-color-alert-caution: #cf222e; + + --light-external-icon: url("data:image/svg+xml;utf8,"); + --light-color-scheme: light; + } -@media (prefers-color-scheme: light) { :root { + /* Dark */ + --dark-color-background: #2b2e33; + --dark-color-background-secondary: #1e2024; + /* Not to be confused with [:active](https://developer.mozilla.org/en-US/docs/Web/CSS/:active) */ + --dark-color-background-active: #5d5d6a; + --dark-color-background-warning: #bebe00; + --dark-color-warning-text: #222; + --dark-color-accent: #9096a2; + --dark-color-active-menu-item: var(--dark-color-background-active); + --dark-color-text: #f5f5f5; + --dark-color-contrast-text: #ffffff; + --dark-color-text-aside: #dddddd; + + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-icon-text: var(--dark-color-text); + + --dark-color-comment-tag-text: var(--dark-color-text); + --dark-color-comment-tag: var(--dark-color-background); + + --dark-color-link: #00aff4; + --dark-color-focus-outline: #4c97f2; + + --dark-color-ts-keyword: #3399ff; + --dark-color-ts-project: #e358ff; + --dark-color-ts-module: var(--dark-color-ts-project); + --dark-color-ts-namespace: var(--dark-color-ts-project); + --dark-color-ts-enum: #f4d93e; + --dark-color-ts-enum-member: var(--dark-color-ts-enum); + --dark-color-ts-variable: #798dff; + --dark-color-ts-function: #a280ff; + --dark-color-ts-class: #8ac4ff; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-constructor: var(--dark-color-ts-class); + --dark-color-ts-property: #ff984d; + --dark-color-ts-method: #ff4db8; + --dark-color-ts-reference: #ff4d82; + --dark-color-ts-call-signature: var(--dark-color-ts-method); + --dark-color-ts-index-signature: var(--dark-color-ts-property); + --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); + --dark-color-ts-parameter: var(--dark-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --dark-color-ts-type-parameter: #e07d13; + --dark-color-ts-accessor: #ff6060; + --dark-color-ts-get-signature: var(--dark-color-ts-accessor); + --dark-color-ts-set-signature: var(--dark-color-ts-accessor); + --dark-color-ts-type-alias: #ff6492; + /* reference not included as links will be colored with the kind that it points to */ + --dark-color-document: #ffffff; + + --dark-color-alert-note: #0969d9; + --dark-color-alert-tip: #1a7f37; + --dark-color-alert-important: #8250df; + --dark-color-alert-warning: #9a6700; + --dark-color-alert-caution: #cf222e; + + --dark-external-icon: url("data:image/svg+xml;utf8,"); + --dark-color-scheme: dark; + } + + @media (prefers-color-scheme: light) { + :root { + --color-background: var(--light-color-background); + --color-background-secondary: var( + --light-color-background-secondary + ); + --color-background-active: var(--light-color-background-active); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-contrast-text: var(--light-color-contrast-text); + --color-text-aside: var(--light-color-text-aside); + + --color-icon-background: var(--light-color-icon-background); + --color-icon-text: var(--light-color-icon-text); + + --color-comment-tag-text: var(--light-color-text); + --color-comment-tag: var(--light-color-background); + + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-project: var(--light-color-ts-project); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-reference: var(--light-color-ts-reference); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --color-alert-note: var(--light-color-alert-note); + --color-alert-tip: var(--light-color-alert-tip); + --color-alert-important: var(--light-color-alert-important); + --color-alert-warning: var(--light-color-alert-warning); + --color-alert-caution: var(--light-color-alert-caution); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } + } + + @media (prefers-color-scheme: dark) { + :root { + --color-background: var(--dark-color-background); + --color-background-secondary: var( + --dark-color-background-secondary + ); + --color-background-active: var(--dark-color-background-active); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-contrast-text: var(--dark-color-contrast-text); + --color-text-aside: var(--dark-color-text-aside); + + --color-icon-background: var(--dark-color-icon-background); + --color-icon-text: var(--dark-color-icon-text); + + --color-comment-tag-text: var(--dark-color-text); + --color-comment-tag: var(--dark-color-background); + + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-project: var(--dark-color-ts-project); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-reference: var(--dark-color-ts-reference); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --color-alert-note: var(--dark-color-alert-note); + --color-alert-tip: var(--dark-color-alert-tip); + --color-alert-important: var(--dark-color-alert-important); + --color-alert-warning: var(--dark-color-alert-warning); + --color-alert-caution: var(--dark-color-alert-caution); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } + } + + :root[data-theme="light"] { --color-background: var(--light-color-background); - --color-secondary-background: var(--light-color-secondary-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-active: var(--light-color-background-active); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); --color-text: var(--light-color-text); + --color-contrast-text: var(--light-color-contrast-text); --color-text-aside: var(--light-color-text-aside); + --color-icon-text: var(--light-color-icon-text); + + --color-comment-tag-text: var(--light-color-text); + --color-comment-tag: var(--light-color-background); + --color-link: var(--light-color-link); - --color-menu-divider: var(--light-color-menu-divider); - --color-menu-divider-focus: var(--light-color-menu-divider-focus); - --color-menu-label: var(--light-color-menu-label); - --color-panel: var(--light-color-panel); - --color-panel-divider: var(--light-color-panel-divider); - --color-comment-tag: var(--light-color-comment-tag); - --color-comment-tag-text: var(--light-color-comment-tag-text); - --color-ts: var(--light-color-ts); - --color-ts-interface: var(--light-color-ts-interface); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-project: var(--light-color-ts-project); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); --color-ts-class: var(--light-color-ts-class); - --color-ts-private: var(--light-color-ts-private); - --color-toolbar: var(--light-color-toolbar); - --color-toolbar-text: var(--light-color-toolbar-text); - --icon-filter: var(--light-icon-filter); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-reference: var(--light-color-ts-reference); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --color-note: var(--light-color-note); + --color-tip: var(--light-color-tip); + --color-important: var(--light-color-important); + --color-warning: var(--light-color-warning); + --color-caution: var(--light-color-caution); + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); } -} -@media (prefers-color-scheme: dark) { - :root { + :root[data-theme="dark"] { --color-background: var(--dark-color-background); - --color-secondary-background: var(--dark-color-secondary-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-active: var(--dark-color-background-active); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); --color-text: var(--dark-color-text); + --color-contrast-text: var(--dark-color-contrast-text); --color-text-aside: var(--dark-color-text-aside); + --color-icon-text: var(--dark-color-icon-text); + + --color-comment-tag-text: var(--dark-color-text); + --color-comment-tag: var(--dark-color-background); + --color-link: var(--dark-color-link); - --color-menu-divider: var(--dark-color-menu-divider); - --color-menu-divider-focus: var(--dark-color-menu-divider-focus); - --color-menu-label: var(--dark-color-menu-label); - --color-panel: var(--dark-color-panel); - --color-panel-divider: var(--dark-color-panel-divider); - --color-comment-tag: var(--dark-color-comment-tag); - --color-comment-tag-text: var(--dark-color-comment-tag-text); - --color-ts: var(--dark-color-ts); - --color-ts-interface: var(--dark-color-ts-interface); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-project: var(--dark-color-ts-project); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); --color-ts-class: var(--dark-color-ts-class); - --color-ts-private: var(--dark-color-ts-private); - --color-toolbar: var(--dark-color-toolbar); - --color-toolbar-text: var(--dark-color-toolbar-text); - --icon-filter: var(--dark-icon-filter); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-reference: var(--dark-color-ts-reference); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --color-note: var(--dark-color-note); + --color-tip: var(--dark-color-tip); + --color-important: var(--dark-color-important); + --color-warning: var(--dark-color-warning); + --color-caution: var(--dark-color-caution); + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); } -} - -body { - margin: 0; -} -body.light { - --color-background: var(--light-color-background); - --color-secondary-background: var(--light-color-secondary-background); - --color-text: var(--light-color-text); - --color-text-aside: var(--light-color-text-aside); - --color-link: var(--light-color-link); - --color-menu-divider: var(--light-color-menu-divider); - --color-menu-divider-focus: var(--light-color-menu-divider-focus); - --color-menu-label: var(--light-color-menu-label); - --color-panel: var(--light-color-panel); - --color-panel-divider: var(--light-color-panel-divider); - --color-comment-tag: var(--light-color-comment-tag); - --color-comment-tag-text: var(--light-color-comment-tag-text); - --color-ts: var(--light-color-ts); - --color-ts-interface: var(--light-color-ts-interface); - --color-ts-enum: var(--light-color-ts-enum); - --color-ts-class: var(--light-color-ts-class); - --color-ts-private: var(--light-color-ts-private); - --color-toolbar: var(--light-color-toolbar); - --color-toolbar-text: var(--light-color-toolbar-text); - --icon-filter: var(--light-icon-filter); - --external-icon: var(--light-external-icon); -} + html { + color-scheme: var(--color-scheme); + @media (prefers-reduced-motion: no-preference) { + scroll-behavior: smooth; + } + } -body.dark { - --color-background: var(--dark-color-background); - --color-secondary-background: var(--dark-color-secondary-background); - --color-text: var(--dark-color-text); - --color-text-aside: var(--dark-color-text-aside); - --color-link: var(--dark-color-link); - --color-menu-divider: var(--dark-color-menu-divider); - --color-menu-divider-focus: var(--dark-color-menu-divider-focus); - --color-menu-label: var(--dark-color-menu-label); - --color-panel: var(--dark-color-panel); - --color-panel-divider: var(--dark-color-panel-divider); - --color-comment-tag: var(--dark-color-comment-tag); - --color-comment-tag-text: var(--dark-color-comment-tag-text); - --color-ts: var(--dark-color-ts); - --color-ts-interface: var(--dark-color-ts-interface); - --color-ts-enum: var(--dark-color-ts-enum); - --color-ts-class: var(--dark-color-ts-class); - --color-ts-private: var(--dark-color-ts-private); - --color-toolbar: var(--dark-color-toolbar); - --color-toolbar-text: var(--dark-color-toolbar-text); - --icon-filter: var(--dark-icon-filter); - --external-icon: var(--dark-external-icon); -} + *:focus-visible, + .tsd-accordion-summary:focus-visible svg { + outline: 2px solid var(--color-focus-outline); + } -h1, -h2, -h3, -h4, -h5, -h6 { - line-height: 1.2; -} + .always-visible, + .always-visible .tsd-signatures { + display: inherit !important; + } -h1 { - font-size: 2em; - margin: 0.67em 0; -} + h1, + h2, + h3, + h4, + h5, + h6 { + line-height: 1.2; + } -h2 { - font-size: 1.5em; - margin: 0.83em 0; -} + h1 { + font-size: 1.875rem; + margin: 0.67rem 0; + } -h3 { - font-size: 1.17em; - margin: 1em 0; -} + h2 { + font-size: 1.5rem; + margin: 0.83rem 0; + } -h4, -.tsd-index-panel h3 { - font-size: 1em; - margin: 1.33em 0; -} + h3 { + font-size: 1.25rem; + margin: 1rem 0; + } -h5 { - font-size: 0.83em; - margin: 1.67em 0; -} + h4 { + font-size: 1.05rem; + margin: 1.33rem 0; + } -h6 { - font-size: 0.67em; - margin: 2.33em 0; -} + h5 { + font-size: 1rem; + margin: 1.5rem 0; + } -pre { - white-space: pre; - white-space: pre-wrap; - word-wrap: break-word; -} + h6 { + font-size: 0.875rem; + margin: 2.33rem 0; + } -dl, -menu, -ol, -ul { - margin: 1em 0; -} + dl, + menu, + ol, + ul { + margin: 1em 0; + } -dd { - margin: 0 0 0 40px; -} + dd { + margin: 0 0 0 34px; + } -.container { - max-width: 1200px; - margin: 0 auto; - padding: 0 40px; -} -@media (max-width: 640px) { .container { - padding: 0 20px; + max-width: 1700px; + padding: 0 2rem; } -} - -.container-main { - padding-bottom: 200px; -} - -.row { - display: flex; - position: relative; - margin: 0 -10px; -} -.row:after { - visibility: hidden; - display: block; - content: ""; - clear: both; - height: 0; -} -.col-4, -.col-8 { - box-sizing: border-box; - float: left; - padding: 0 10px; -} - -.col-4 { - width: 33.3333333333%; -} -.col-8 { - width: 66.6666666667%; -} - -ul.tsd-descriptions > li > :first-child, -.tsd-panel > :first-child, -.col-8 > :first-child, -.col-4 > :first-child, -ul.tsd-descriptions > li > :first-child > :first-child, -.tsd-panel > :first-child > :first-child, -.col-8 > :first-child > :first-child, -.col-4 > :first-child > :first-child, -ul.tsd-descriptions > li > :first-child > :first-child > :first-child, -.tsd-panel > :first-child > :first-child > :first-child, -.col-8 > :first-child > :first-child > :first-child, -.col-4 > :first-child > :first-child > :first-child { - margin-top: 0; -} -ul.tsd-descriptions > li > :last-child, -.tsd-panel > :last-child, -.col-8 > :last-child, -.col-4 > :last-child, -ul.tsd-descriptions > li > :last-child > :last-child, -.tsd-panel > :last-child > :last-child, -.col-8 > :last-child > :last-child, -.col-4 > :last-child > :last-child, -ul.tsd-descriptions > li > :last-child > :last-child > :last-child, -.tsd-panel > :last-child > :last-child > :last-child, -.col-8 > :last-child > :last-child > :last-child, -.col-4 > :last-child > :last-child > :last-child { - margin-bottom: 0; -} - -@keyframes fade-in { - from { - opacity: 0; + /* Footer */ + footer { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: var(--dim-footer-height); } - to { - opacity: 1; + footer > p { + margin: 0 1em; } -} -@keyframes fade-out { - from { - opacity: 1; - visibility: visible; + + .container-main { + margin: var(--dim-container-main-margin-y) auto; + /* toolbar, footer, margin */ + min-height: calc( + 100svh - var(--dim-header-height) - var(--dim-footer-height) - + 2 * var(--dim-container-main-margin-y) + ); } - to { - opacity: 0; + + @keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } } -} -@keyframes fade-in-delayed { - 0% { - opacity: 0; + @keyframes fade-out { + from { + opacity: 1; + visibility: visible; + } + to { + opacity: 0; + } } - 33% { - opacity: 0; + @keyframes pop-in-from-right { + from { + transform: translate(100%, 0); + } + to { + transform: translate(0, 0); + } } - 100% { - opacity: 1; + @keyframes pop-out-to-right { + from { + transform: translate(0, 0); + visibility: visible; + } + to { + transform: translate(100%, 0); + } } -} -@keyframes fade-out-delayed { - 0% { - opacity: 1; - visibility: visible; + body { + background: var(--color-background); + font-family: + -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", + Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + font-size: 16px; + color: var(--color-text); + margin: 0; } - 66% { - opacity: 0; + + a { + color: var(--color-link); + text-decoration: none; } - 100% { - opacity: 0; + a:hover { + text-decoration: underline; } -} -@keyframes shift-to-left { - from { - transform: translate(0, 0); + a.external[target="_blank"] { + background-image: var(--external-icon); + background-position: top 3px right; + background-repeat: no-repeat; + padding-right: 13px; } - to { - transform: translate(-25%, 0); + a.tsd-anchor-link { + color: var(--color-text); } -} -@keyframes unshift-to-left { - from { - transform: translate(-25%, 0); + :target { + scroll-margin-block: calc(var(--dim-header-height) + 0.5rem); } - to { - transform: translate(0, 0); + + code, + pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 0.875rem; + border-radius: 0.8em; } -} -@keyframes pop-in-from-right { - from { - transform: translate(100%, 0); + + pre { + position: relative; + white-space: pre-wrap; + word-wrap: break-word; + padding: 10px; + border: 1px solid var(--color-accent); + margin-bottom: 8px; } - to { - transform: translate(0, 0); + pre code { + padding: 0; + font-size: 100%; } -} -@keyframes pop-out-to-right { - from { - transform: translate(0, 0); - visibility: visible; + pre > button { + position: absolute; + top: 10px; + right: 10px; + opacity: 0; + transition: opacity 0.1s; + box-sizing: border-box; } - to { - transform: translate(100%, 0); + pre:hover > button, + pre > button.visible, + pre > button:focus-visible { + opacity: 1; } -} -body { - background: var(--color-background); - font-family: "Segoe UI", sans-serif; - font-size: 16px; - color: var(--color-text); -} - -a { - color: var(--color-link); - text-decoration: none; -} -a:hover { - text-decoration: underline; -} -a.external[target="_blank"] { - background-image: var(--external-icon); - background-position: top 3px right; - background-repeat: no-repeat; - padding-right: 13px; -} - -code, -pre { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - padding: 0.2em; - margin: 0; - font-size: 14px; -} -pre { - padding: 10px; -} -pre code { - padding: 0; - font-size: 100%; -} - -blockquote { - margin: 1em 0; - padding-left: 1em; - border-left: 4px solid gray; -} + blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid gray; + } -.tsd-typography { - line-height: 1.333em; -} -.tsd-typography ul { - list-style: square; - padding: 0 0 0 20px; - margin: 0; -} -.tsd-typography h4, -.tsd-typography .tsd-index-panel h3, -.tsd-index-panel .tsd-typography h3, -.tsd-typography h5, -.tsd-typography h6 { - font-size: 1em; - margin: 0; -} -.tsd-typography h5, -.tsd-typography h6 { - font-weight: normal; -} -.tsd-typography p, -.tsd-typography ul, -.tsd-typography ol { - margin: 1em 0; -} + img { + max-width: 100%; + } -@media (min-width: 901px) and (max-width: 1024px) { - html .col-content { - width: 72%; + * { + scrollbar-width: thin; + scrollbar-color: var(--color-accent) var(--color-icon-background); } - html .col-menu { - width: 28%; + + *::-webkit-scrollbar { + width: 0.75rem; } - html .tsd-navigation { - padding-left: 10px; + + *::-webkit-scrollbar-track { + background: var(--color-icon-background); } -} -@media (max-width: 900px) { - html .col-content { - float: none; - width: 100%; + + *::-webkit-scrollbar-thumb { + background-color: var(--color-accent); + border-radius: 999rem; + border: 0.25rem solid var(--color-icon-background); } - html .col-menu { - position: fixed !important; - overflow: auto; - -webkit-overflow-scrolling: touch; - z-index: 1024; - top: 0 !important; - bottom: 0 !important; - left: auto !important; - right: 0 !important; - width: 100%; - padding: 20px 20px 0 0; - max-width: 450px; - visibility: hidden; - background-color: var(--color-panel); - transform: translate(100%, 0); + + dialog { + border: none; + outline: none; + padding: 0; + background-color: var(--color-background); } - html .col-menu > *:last-child { - padding-bottom: 20px; + dialog::backdrop { + display: none; } - html .overlay { - content: ""; - display: block; + #tsd-overlay { + background-color: rgba(0, 0, 0, 0.5); position: fixed; - z-index: 1023; + z-index: 9999; top: 0; left: 0; right: 0; bottom: 0; - background-color: rgba(0, 0, 0, 0.75); - visibility: hidden; + animation: fade-in var(--modal-animation-duration) forwards; } - - .to-has-menu .overlay { - animation: fade-in 0.4s; + #tsd-overlay.closing { + animation-name: fade-out; } - .to-has-menu :is(header, footer, .col-content) { - animation: shift-to-left 0.4s; + .tsd-typography { + line-height: 1.333em; } - - .to-has-menu .col-menu { - animation: pop-in-from-right 0.4s; + .tsd-typography ul { + list-style: square; + padding: 0 0 0 20px; + margin: 0; + } + .tsd-typography .tsd-index-panel h3, + .tsd-index-panel .tsd-typography h3, + .tsd-typography h4, + .tsd-typography h5, + .tsd-typography h6 { + font-size: 1em; + } + .tsd-typography h5, + .tsd-typography h6 { + font-weight: normal; + } + .tsd-typography p, + .tsd-typography ul, + .tsd-typography ol { + margin: 1em 0; + } + .tsd-typography table { + border-collapse: collapse; + border: none; + } + .tsd-typography td, + .tsd-typography th { + padding: 6px 13px; + border: 1px solid var(--color-accent); + } + .tsd-typography thead, + .tsd-typography tr:nth-child(even) { + background-color: var(--color-background-secondary); } - .from-has-menu .overlay { - animation: fade-out 0.4s; + .tsd-alert { + padding: 8px 16px; + margin-bottom: 16px; + border-left: 0.25em solid var(--alert-color); + } + .tsd-alert blockquote > :last-child, + .tsd-alert > :last-child { + margin-bottom: 0; + } + .tsd-alert-title { + color: var(--alert-color); + display: inline-flex; + align-items: center; + } + .tsd-alert-title span { + margin-left: 4px; } - .from-has-menu :is(header, footer, .col-content) { - animation: unshift-to-left 0.4s; + .tsd-alert-note { + --alert-color: var(--color-alert-note); + } + .tsd-alert-tip { + --alert-color: var(--color-alert-tip); + } + .tsd-alert-important { + --alert-color: var(--color-alert-important); + } + .tsd-alert-warning { + --alert-color: var(--color-alert-warning); + } + .tsd-alert-caution { + --alert-color: var(--color-alert-caution); } - .from-has-menu .col-menu { - animation: pop-out-to-right 0.4s; + .tsd-breadcrumb { + margin: 0; + margin-top: 1rem; + padding: 0; + color: var(--color-text-aside); + } + .tsd-breadcrumb a { + color: var(--color-text-aside); + text-decoration: none; + } + .tsd-breadcrumb a:hover { + text-decoration: underline; + } + .tsd-breadcrumb li { + display: inline; + } + .tsd-breadcrumb li:after { + content: " / "; } - .has-menu body { + .tsd-comment-tags { + display: flex; + flex-direction: column; + } + dl.tsd-comment-tag-group { + display: flex; + align-items: center; overflow: hidden; + margin: 0.5em 0; } - .has-menu .overlay { - visibility: visible; + dl.tsd-comment-tag-group dt { + display: flex; + margin-right: 0.5em; + font-size: 0.875em; + font-weight: normal; } - .has-menu :is(header, footer, .col-content) { - transform: translate(-25%, 0); + dl.tsd-comment-tag-group dd { + margin: 0; } - .has-menu .col-menu { - visibility: visible; - transform: translate(0, 0); - display: grid; - grid-template-rows: auto 1fr; - max-height: 100vh; + code.tsd-tag { + padding: 0.25em 0.4em; + border: 0.1em solid var(--color-accent); + margin-right: 0.25em; + font-size: 70%; } - .has-menu .tsd-navigation { - max-height: 100%; + h1 code.tsd-tag:first-of-type { + margin-left: 0.25em; } -} -.tsd-page-title { - padding: 70px 0 20px 0; - margin: 0 0 40px 0; - background: var(--color-panel); - box-shadow: 0 0 5px rgba(0, 0, 0, 0.35); -} -.tsd-page-title h1 { - margin: 0; -} + dl.tsd-comment-tag-group dd:before, + dl.tsd-comment-tag-group dd:after { + content: " "; + } + dl.tsd-comment-tag-group dd pre, + dl.tsd-comment-tag-group dd:after { + clear: both; + } + dl.tsd-comment-tag-group p { + margin: 0; + } -.tsd-breadcrumb { - margin: 0; - padding: 0; - color: var(--color-text-aside); -} -.tsd-breadcrumb a { - color: var(--color-text-aside); - text-decoration: none; -} -.tsd-breadcrumb a:hover { - text-decoration: underline; -} -.tsd-breadcrumb li { - display: inline; -} -.tsd-breadcrumb li:after { - content: " / "; -} + .tsd-panel.tsd-comment .lead { + font-size: 1.1em; + line-height: 1.333em; + margin-bottom: 2em; + } + .tsd-panel.tsd-comment .lead:last-child { + margin-bottom: 0; + } -dl.tsd-comment-tags { - overflow: hidden; -} -dl.tsd-comment-tags dt { - float: left; - padding: 1px 5px; - margin: 0 10px 0 0; - border-radius: 4px; - border: 1px solid var(--color-comment-tag); - color: var(--color-comment-tag); - font-size: 0.8em; - font-weight: normal; -} -dl.tsd-comment-tags dd { - margin: 0 0 10px 0; -} -dl.tsd-comment-tags dd:before, -dl.tsd-comment-tags dd:after { - display: table; - content: " "; -} -dl.tsd-comment-tags dd pre, -dl.tsd-comment-tags dd:after { - clear: both; -} -dl.tsd-comment-tags p { - margin: 0; -} + .tsd-filter-visibility h4 { + font-size: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.5rem; + margin: 0; + } + .tsd-filter-item:not(:last-child) { + margin-bottom: 0.5rem; + } + .tsd-filter-input { + display: flex; + width: -moz-fit-content; + width: fit-content; + align-items: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + } + .tsd-filter-input input[type="checkbox"] { + cursor: pointer; + position: absolute; + width: 1.5em; + height: 1.5em; + opacity: 0; + } + .tsd-filter-input input[type="checkbox"]:disabled { + pointer-events: none; + } + .tsd-filter-input svg { + cursor: pointer; + width: 1.5em; + height: 1.5em; + margin-right: 0.5em; + border-radius: 0.33em; + /* Leaving this at full opacity breaks event listeners on Firefox. + Don't remove unless you know what you're doing. */ + opacity: 0.99; + } + .tsd-filter-input input[type="checkbox"]:focus-visible + svg { + outline: 2px solid var(--color-focus-outline); + } + .tsd-checkbox-background { + fill: var(--color-accent); + } + input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { + stroke: var(--color-text); + } + .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 0.25rem; + } + .tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { + stroke: var(--color-accent); + } -.tsd-panel.tsd-comment .lead { - font-size: 1.1em; - line-height: 1.333em; - margin-bottom: 2em; -} -.tsd-panel.tsd-comment .lead:last-child { - margin-bottom: 0; -} + .settings-label { + font-weight: bold; + text-transform: uppercase; + display: inline-block; + } -.toggle-protected .tsd-is-private { - display: none; -} + .tsd-filter-visibility .settings-label { + margin: 0.75rem 0 0.5rem 0; + } -.toggle-public .tsd-is-private, -.toggle-public .tsd-is-protected, -.toggle-public .tsd-is-private-protected { - display: none; -} + .tsd-theme-toggle .settings-label { + margin: 0.75rem 0.75rem 0 0; + } -.toggle-inherited .tsd-is-inherited { - display: none; -} + .tsd-hierarchy h4 label:hover span { + text-decoration: underline; + } -.toggle-externals .tsd-is-external { - display: none; -} + .tsd-hierarchy { + list-style: square; + margin: 0; + } + .tsd-hierarchy-target { + font-weight: bold; + } + .tsd-hierarchy-toggle { + color: var(--color-link); + cursor: pointer; + } -#tsd-filter { - position: relative; - display: inline-block; - height: 40px; - vertical-align: bottom; -} -.no-filter #tsd-filter { - display: none; -} -#tsd-filter .tsd-filter-group { - display: inline-block; - height: 40px; - vertical-align: bottom; - white-space: nowrap; -} -#tsd-filter input { - display: none; -} -@media (max-width: 900px) { - #tsd-filter .tsd-filter-group { - display: block; - position: absolute; - top: 40px; - right: 20px; - height: auto; - background-color: var(--color-panel); - visibility: hidden; - transform: translate(50%, 0); - box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); + .tsd-full-hierarchy:not(:last-child) { + margin-bottom: 1em; + padding-bottom: 1em; + border-bottom: 1px solid var(--color-accent); } - .has-options #tsd-filter .tsd-filter-group { - visibility: visible; + .tsd-full-hierarchy, + .tsd-full-hierarchy ul { + list-style: none; + margin: 0; + padding: 0; } - .to-has-options #tsd-filter .tsd-filter-group { - animation: fade-in 0.2s; + .tsd-full-hierarchy ul { + padding-left: 1.5rem; } - .from-has-options #tsd-filter .tsd-filter-group { - animation: fade-out 0.2s; + .tsd-full-hierarchy a { + padding: 0.25rem 0 !important; + font-size: 1rem; + display: inline-flex; + align-items: center; + color: var(--color-text); } - #tsd-filter label, - #tsd-filter .tsd-select { - display: block; - padding-right: 20px; + .tsd-full-hierarchy svg[data-dropdown] { + cursor: pointer; + } + .tsd-full-hierarchy svg[data-dropdown="false"] { + transform: rotate(-90deg); + } + .tsd-full-hierarchy svg[data-dropdown="false"] ~ ul { + display: none; } -} -footer { - border-top: 1px solid var(--color-panel-divider); - background-color: var(--color-panel); -} -footer:after { - content: ""; - display: table; -} -footer.with-border-bottom { - border-bottom: 1px solid var(--color-panel-divider); -} -footer .tsd-legend-group { - font-size: 0; -} -footer .tsd-legend { - display: inline-block; - width: 25%; - padding: 0; - font-size: 16px; - list-style: none; - line-height: 1.333em; - vertical-align: top; -} -@media (max-width: 900px) { - footer .tsd-legend { - width: 50%; + .tsd-panel-group.tsd-index-group { + margin-bottom: 0; + } + .tsd-index-panel .tsd-index-list { + list-style: none; + line-height: 1.333em; + margin: 0; + padding: 0.25rem 0 0 0; + overflow: hidden; + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 1rem; + grid-template-rows: auto; + } + @media (max-width: 1024px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(2, 1fr); + } + } + @media (max-width: 768px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(1, 1fr); + } + } + .tsd-index-panel .tsd-index-list li { + -webkit-page-break-inside: avoid; + -moz-page-break-inside: avoid; + -ms-page-break-inside: avoid; + -o-page-break-inside: avoid; + page-break-inside: avoid; } -} -.tsd-hierarchy { - list-style: square; - padding: 0 0 0 20px; - margin: 0; -} -.tsd-hierarchy .target { - font-weight: bold; -} + .tsd-flag { + display: inline-block; + padding: 0.25em 0.4em; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 75%; + line-height: 1; + font-weight: normal; + } -.tsd-index-panel .tsd-index-content { - margin-bottom: -30px !important; -} -.tsd-index-panel .tsd-index-section { - margin-bottom: 30px !important; -} -.tsd-index-panel h3 { - margin: 0 -20px 10px -20px; - padding: 0 20px 10px 20px; - border-bottom: 1px solid var(--color-panel-divider); -} -.tsd-index-panel ul.tsd-index-list { - -webkit-column-count: 3; - -moz-column-count: 3; - -ms-column-count: 3; - -o-column-count: 3; - column-count: 3; - -webkit-column-gap: 20px; - -moz-column-gap: 20px; - -ms-column-gap: 20px; - -o-column-gap: 20px; - column-gap: 20px; - padding: 0; - list-style: none; - line-height: 1.333em; -} -@media (max-width: 900px) { - .tsd-index-panel ul.tsd-index-list { - -webkit-column-count: 1; - -moz-column-count: 1; - -ms-column-count: 1; - -o-column-count: 1; - column-count: 1; + .tsd-anchor { + position: relative; + top: -100px; } -} -@media (min-width: 901px) and (max-width: 1024px) { - .tsd-index-panel ul.tsd-index-list { - -webkit-column-count: 2; - -moz-column-count: 2; - -ms-column-count: 2; - -o-column-count: 2; - column-count: 2; + + .tsd-member { + position: relative; + } + .tsd-member .tsd-anchor + h3 { + display: flex; + align-items: center; + margin-top: 0; + margin-bottom: 0; + border-bottom: none; } -} -.tsd-index-panel ul.tsd-index-list li { - -webkit-page-break-inside: avoid; - -moz-page-break-inside: avoid; - -ms-page-break-inside: avoid; - -o-page-break-inside: avoid; - page-break-inside: avoid; -} -.tsd-index-panel a, -.tsd-index-panel .tsd-parent-kind-module a { - color: var(--color-ts); -} -.tsd-index-panel .tsd-parent-kind-interface a { - color: var(--color-ts-interface); -} -.tsd-index-panel .tsd-parent-kind-enum a { - color: var(--color-ts-enum); -} -.tsd-index-panel .tsd-parent-kind-class a { - color: var(--color-ts-class); -} -.tsd-index-panel .tsd-kind-module a { - color: var(--color-ts); -} -.tsd-index-panel .tsd-kind-interface a { - color: var(--color-ts-interface); -} -.tsd-index-panel .tsd-kind-enum a { - color: var(--color-ts-enum); -} -.tsd-index-panel .tsd-kind-class a { - color: var(--color-ts-class); -} -.tsd-index-panel .tsd-is-private a { - color: var(--color-ts-private); -} -.tsd-flag { - display: inline-block; - padding: 1px 5px; - border-radius: 4px; - color: var(--color-comment-tag-text); - background-color: var(--color-comment-tag); - text-indent: 0; - font-size: 14px; - font-weight: normal; -} + .tsd-navigation.settings { + margin: 0; + margin-bottom: 1rem; + } + .tsd-navigation > a, + .tsd-navigation .tsd-accordion-summary { + width: calc(100% - 0.25rem); + display: flex; + align-items: center; + } + .tsd-navigation a, + .tsd-navigation summary > span, + .tsd-page-navigation a { + display: flex; + width: calc(100% - 0.25rem); + align-items: center; + padding: 0.25rem; + color: var(--color-text); + text-decoration: none; + box-sizing: border-box; + } + .tsd-navigation a.current, + .tsd-page-navigation a.current { + background: var(--color-active-menu-item); + color: var(--color-contrast-text); + } + .tsd-navigation a:hover, + .tsd-page-navigation a:hover { + text-decoration: underline; + } + .tsd-navigation ul, + .tsd-page-navigation ul { + margin-top: 0; + margin-bottom: 0; + padding: 0; + list-style: none; + } + .tsd-navigation li, + .tsd-page-navigation li { + padding: 0; + max-width: 100%; + } + .tsd-navigation .tsd-nav-link { + display: none; + } + .tsd-nested-navigation { + margin-left: 3rem; + } + .tsd-nested-navigation > li > details { + margin-left: -1.5rem; + } + .tsd-small-nested-navigation { + margin-left: 1.5rem; + } + .tsd-small-nested-navigation > li > details { + margin-left: -1.5rem; + } -.tsd-anchor { - position: absolute; - top: -100px; -} + .tsd-page-navigation-section > summary { + padding: 0.25rem; + } + .tsd-page-navigation-section > summary > svg { + margin-right: 0.25rem; + } + .tsd-page-navigation-section > div { + margin-left: 30px; + } + .tsd-page-navigation ul { + padding-left: 1.75rem; + } -.tsd-member { - position: relative; -} -.tsd-member .tsd-anchor + h3 { - margin-top: 0; - margin-bottom: 0; - border-bottom: none; -} -.tsd-member [data-tsd-kind] { - color: var(--color-ts); -} -.tsd-member [data-tsd-kind="Interface"] { - color: var(--color-ts-interface); -} -.tsd-member [data-tsd-kind="Enum"] { - color: var(--color-ts-enum); -} -.tsd-member [data-tsd-kind="Class"] { - color: var(--color-ts-class); -} -.tsd-member [data-tsd-kind="Private"] { - color: var(--color-ts-private); -} + #tsd-sidebar-links a { + margin-top: 0; + margin-bottom: 0.5rem; + line-height: 1.25rem; + } + #tsd-sidebar-links a:last-of-type { + margin-bottom: 0; + } -.tsd-navigation { - margin: 0 0 0 40px; -} -.tsd-navigation a { - display: block; - padding-top: 2px; - padding-bottom: 2px; - border-left: 2px solid transparent; - color: var(--color-text); - text-decoration: none; - transition: border-left-color 0.1s; -} -.tsd-navigation a:hover { - text-decoration: underline; -} -.tsd-navigation ul { - margin: 0; - padding: 0; - list-style: none; -} -.tsd-navigation li { - padding: 0; -} + a.tsd-index-link { + padding: 0.25rem 0 !important; + font-size: 1rem; + line-height: 1.25rem; + display: inline-flex; + align-items: center; + color: var(--color-text); + } + .tsd-accordion-summary { + list-style-type: none; /* hide marker on non-safari */ + outline: none; /* broken on safari, so just hide it */ + display: flex; + align-items: center; + gap: 0.25rem; + box-sizing: border-box; + } + .tsd-accordion-summary::-webkit-details-marker { + display: none; /* hide marker on safari */ + } + .tsd-accordion-summary, + .tsd-accordion-summary a { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + + cursor: pointer; + } + .tsd-accordion-summary a { + width: calc(100% - 1.5rem); + } + .tsd-accordion-summary > * { + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; + } + /* + * We need to be careful to target the arrow indicating whether the accordion + * is open, but not any other SVGs included in the details element. + */ + .tsd-accordion:not([open]) > .tsd-accordion-summary > svg:first-child { + transform: rotate(-90deg); + } + .tsd-index-content > :not(:first-child) { + margin-top: 0.75rem; + } + .tsd-index-summary { + margin-top: 1.5rem; + margin-bottom: 0.75rem; + display: flex; + align-content: center; + } -.tsd-navigation.primary { - padding-bottom: 40px; -} -.tsd-navigation.primary a { - display: block; - padding-top: 6px; - padding-bottom: 6px; -} -.tsd-navigation.primary ul li a { - padding-left: 5px; -} -.tsd-navigation.primary ul li li a { - padding-left: 25px; -} -.tsd-navigation.primary ul li li li a { - padding-left: 45px; -} -.tsd-navigation.primary ul li li li li a { - padding-left: 65px; -} -.tsd-navigation.primary ul li li li li li a { - padding-left: 85px; -} -.tsd-navigation.primary ul li li li li li li a { - padding-left: 105px; -} -.tsd-navigation.primary > ul { - border-bottom: 1px solid var(--color-panel-divider); -} -.tsd-navigation.primary li { - border-top: 1px solid var(--color-panel-divider); -} -.tsd-navigation.primary li.current > a { - font-weight: bold; -} -.tsd-navigation.primary li.label span { - display: block; - padding: 20px 0 6px 5px; - color: var(--color-menu-label); -} -.tsd-navigation.primary li.globals + li > span, -.tsd-navigation.primary li.globals + li > a { - padding-top: 20px; -} + .tsd-no-select { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + } + .tsd-kind-icon { + margin-right: 0.5rem; + width: 1.25rem; + height: 1.25rem; + min-width: 1.25rem; + min-height: 1.25rem; + } + .tsd-signature > .tsd-kind-icon { + margin-right: 0.8rem; + } -.tsd-navigation.secondary { - max-height: calc(100vh - 1rem - 40px); - overflow: auto; - position: sticky; - top: calc(0.5rem + 40px); - transition: 0.3s; -} -.tsd-navigation.secondary.tsd-navigation--toolbar-hide { - max-height: calc(100vh - 1rem); - top: 0.5rem; -} -.tsd-navigation.secondary ul { - transition: opacity 0.2s; -} -.tsd-navigation.secondary ul li a { - padding-left: 25px; -} -.tsd-navigation.secondary ul li li a { - padding-left: 45px; -} -.tsd-navigation.secondary ul li li li a { - padding-left: 65px; -} -.tsd-navigation.secondary ul li li li li a { - padding-left: 85px; -} -.tsd-navigation.secondary ul li li li li li a { - padding-left: 105px; -} -.tsd-navigation.secondary ul li li li li li li a { - padding-left: 125px; -} -.tsd-navigation.secondary ul.current a { - border-left-color: var(--color-panel-divider); -} -.tsd-navigation.secondary li.focus > a, -.tsd-navigation.secondary ul.current li.focus > a { - border-left-color: var(--color-menu-divider-focus); -} -.tsd-navigation.secondary li.current { - margin-top: 20px; - margin-bottom: 20px; - border-left-color: var(--color-panel-divider); -} -.tsd-navigation.secondary li.current > a { - font-weight: bold; -} + .tsd-panel { + margin-bottom: 2.5rem; + } + .tsd-panel.tsd-member { + margin-bottom: 4rem; + } + .tsd-panel:empty { + display: none; + } + .tsd-panel > h1, + .tsd-panel > h2, + .tsd-panel > h3 { + margin: 1.5rem -1.5rem 0.75rem -1.5rem; + padding: 0 1.5rem 0.75rem 1.5rem; + } + .tsd-panel > h1.tsd-before-signature, + .tsd-panel > h2.tsd-before-signature, + .tsd-panel > h3.tsd-before-signature { + margin-bottom: 0; + border-bottom: none; + } -@media (min-width: 901px) { - .menu-sticky-wrap { - position: static; + .tsd-panel-group { + margin: 2rem 0; + } + .tsd-panel-group.tsd-index-group { + margin: 2rem 0; + } + .tsd-panel-group.tsd-index-group details { + margin: 2rem 0; + } + .tsd-panel-group > .tsd-accordion-summary { + margin-bottom: 1rem; } -} -.tsd-panel { - margin: 20px 0; - padding: 20px; - background-color: var(--color-panel); - box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); -} -.tsd-panel:empty { - display: none; -} -.tsd-panel > h1, -.tsd-panel > h2, -.tsd-panel > h3 { - margin: 1.5em -20px 10px -20px; - padding: 0 20px 10px 20px; - border-bottom: 1px solid var(--color-panel-divider); -} -.tsd-panel > h1.tsd-before-signature, -.tsd-panel > h2.tsd-before-signature, -.tsd-panel > h3.tsd-before-signature { - margin-bottom: 0; - border-bottom: 0; -} -.tsd-panel table { - display: block; - width: 100%; - overflow: auto; - margin-top: 10px; - word-break: normal; - word-break: keep-all; - border-collapse: collapse; -} -.tsd-panel table th { - font-weight: bold; -} -.tsd-panel table th, -.tsd-panel table td { - padding: 6px 13px; - border: 1px solid var(--color-panel-divider); -} -.tsd-panel table tr { - background: var(--color-background); -} -.tsd-panel table tr:nth-child(even) { - background: var(--color-secondary-background); -} + #tsd-search[open] { + animation: fade-in var(--modal-animation-duration) ease-out forwards; + } + #tsd-search[open].closing { + animation-name: fade-out; + } -.tsd-panel-group { - margin: 60px 0; -} -.tsd-panel-group > h1, -.tsd-panel-group > h2, -.tsd-panel-group > h3 { - padding-left: 20px; - padding-right: 20px; -} + /* Avoid setting `display` on closed dialog */ + #tsd-search[open] { + display: flex; + flex-direction: column; + padding: 1rem; + width: 32rem; + max-width: 90vw; + max-height: calc(100vh - env(keyboard-inset-height, 0px) - 25vh); + /* Anchor dialog to top */ + margin-top: 10vh; + border-radius: 6px; + will-change: max-height; + } + #tsd-search-input { + box-sizing: border-box; + width: 100%; + padding: 0 0.625rem; /* 10px */ + outline: 0; + border: 2px solid var(--color-accent); + background-color: transparent; + color: var(--color-text); + border-radius: 4px; + height: 2.5rem; + flex: 0 0 auto; + font-size: 0.875rem; + transition: border-color 0.2s, background-color 0.2s; + } + #tsd-search-input:focus-visible { + background-color: var(--color-background-active); + border-color: transparent; + color: var(--color-contrast-text); + } + #tsd-search-input::placeholder { + color: inherit; + opacity: 0.8; + } + #tsd-search-results { + margin: 0; + padding: 0; + list-style: none; + flex: 1 1 auto; + display: flex; + flex-direction: column; + overflow-y: auto; + } + #tsd-search-results:not(:empty) { + margin-top: 0.5rem; + } + #tsd-search-results > li { + background-color: var(--color-background); + line-height: 1.5; + box-sizing: border-box; + border-radius: 4px; + } + #tsd-search-results > li:nth-child(even) { + background-color: var(--color-background-secondary); + } + #tsd-search-results > li:is(:hover, [aria-selected="true"]) { + background-color: var(--color-background-active); + color: var(--color-contrast-text); + } + /* It's important that this takes full size of parent `li`, to capture a click on `li` */ + #tsd-search-results > li > a { + display: flex; + align-items: center; + padding: 0.5rem 0.25rem; + box-sizing: border-box; + width: 100%; + } + #tsd-search-results > li > a > .text { + flex: 1 1 auto; + min-width: 0; + overflow-wrap: anywhere; + } + #tsd-search-results > li > a .parent { + color: var(--color-text-aside); + } + #tsd-search-results > li > a mark { + color: inherit; + background-color: inherit; + font-weight: bold; + } + #tsd-search-status { + flex: 1; + display: grid; + place-content: center; + text-align: center; + overflow-wrap: anywhere; + } + #tsd-search-status:not(:empty) { + min-height: 6rem; + } -#tsd-search { - transition: background-color 0.2s; -} -#tsd-search .title { - position: relative; - z-index: 2; -} -#tsd-search .field { - position: absolute; - left: 0; - top: 0; - right: 40px; - height: 40px; -} -#tsd-search .field input { - box-sizing: border-box; - position: relative; - top: -50px; - z-index: 1; - width: 100%; - padding: 0 10px; - opacity: 0; - outline: 0; - border: 0; - background: transparent; - color: var(--color-text); -} -#tsd-search .field label { - position: absolute; - overflow: hidden; - right: -40px; -} -#tsd-search .field input, -#tsd-search .title { - transition: opacity 0.2s; -} -#tsd-search .results { - position: absolute; - visibility: hidden; - top: 40px; - width: 100%; - margin: 0; - padding: 0; - list-style: none; - box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); -} -#tsd-search .results li { - padding: 0 10px; - background-color: var(--color-background); -} -#tsd-search .results li:nth-child(even) { - background-color: var(--color-panel); -} -#tsd-search .results li.state { - display: none; -} -#tsd-search .results li.current, -#tsd-search .results li:hover { - background-color: var(--color-panel-divider); -} -#tsd-search .results a { - display: block; -} -#tsd-search .results a:before { - top: 10px; -} -#tsd-search .results span.parent { - color: var(--color-text-aside); - font-weight: normal; -} -#tsd-search.has-focus { - background-color: var(--color-panel-divider); -} -#tsd-search.has-focus .field input { - top: 0; - opacity: 1; -} -#tsd-search.has-focus .title { - z-index: 0; - opacity: 0; -} -#tsd-search.has-focus .results { - visibility: visible; -} -#tsd-search.loading .results li.state.loading { - display: block; -} -#tsd-search.failure .results li.state.failure { - display: block; -} + .tsd-signature { + margin: 0 0 1rem 0; + padding: 1rem 0.5rem; + border: 1px solid var(--color-accent); + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 14px; + overflow-x: auto; + } -.tsd-signature { - margin: 0 0 1em 0; - padding: 10px; - border: 1px solid var(--color-panel-divider); - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - font-size: 14px; - overflow-x: auto; -} -.tsd-signature.tsd-kind-icon { - padding-left: 30px; -} -.tsd-signature.tsd-kind-icon:before { - top: 10px; - left: 10px; -} -.tsd-panel > .tsd-signature { - margin-left: -20px; - margin-right: -20px; - border-width: 1px 0; -} -.tsd-panel > .tsd-signature.tsd-kind-icon { - padding-left: 40px; -} -.tsd-panel > .tsd-signature.tsd-kind-icon:before { - left: 20px; -} + .tsd-signature-keyword { + color: var(--color-ts-keyword); + font-weight: normal; + } -.tsd-signature-symbol { - color: var(--color-text-aside); - font-weight: normal; -} + .tsd-signature-symbol { + color: var(--color-text-aside); + font-weight: normal; + } -.tsd-signature-type { - font-style: italic; - font-weight: normal; -} + .tsd-signature-type { + font-style: italic; + font-weight: normal; + } -.tsd-signatures { - padding: 0; - margin: 0 0 1em 0; - border: 1px solid var(--color-panel-divider); -} -.tsd-signatures .tsd-signature { - margin: 0; - border-width: 1px 0 0 0; - transition: background-color 0.1s; -} -.tsd-signatures .tsd-signature:first-child { - border-top-width: 0; -} -.tsd-signatures .tsd-signature.current { - background-color: var(--color-panel-divider); -} -.tsd-signatures.active > .tsd-signature { - cursor: pointer; -} -.tsd-panel > .tsd-signatures { - margin-left: -20px; - margin-right: -20px; - border-width: 1px 0; -} -.tsd-panel > .tsd-signatures .tsd-signature.tsd-kind-icon { - padding-left: 40px; -} -.tsd-panel > .tsd-signatures .tsd-signature.tsd-kind-icon:before { - left: 20px; -} -.tsd-panel > a.anchor + .tsd-signatures { - border-top-width: 0; - margin-top: -20px; -} + .tsd-signatures { + padding: 0; + margin: 0 0 1em 0; + list-style-type: none; + } + .tsd-signatures .tsd-signature { + margin: 0; + border-color: var(--color-accent); + border-width: 1px 0; + transition: background-color 0.1s; + } + .tsd-signatures .tsd-index-signature:not(:last-child) { + margin-bottom: 1em; + } + .tsd-signatures .tsd-index-signature .tsd-signature { + border-width: 1px; + } + .tsd-description .tsd-signatures .tsd-signature { + border-width: 1px; + } -ul.tsd-descriptions { - position: relative; - overflow: hidden; - padding: 0; - list-style: none; -} -ul.tsd-descriptions.active > .tsd-description { - display: none; -} -ul.tsd-descriptions.active > .tsd-description.current { - display: block; -} -ul.tsd-descriptions.active > .tsd-description.fade-in { - animation: fade-in-delayed 0.3s; -} -ul.tsd-descriptions.active > .tsd-description.fade-out { - animation: fade-out-delayed 0.3s; - position: absolute; - display: block; - top: 0; - left: 0; - right: 0; - opacity: 0; - visibility: hidden; -} -ul.tsd-descriptions h4, -ul.tsd-descriptions .tsd-index-panel h3, -.tsd-index-panel ul.tsd-descriptions h3 { - font-size: 16px; - margin: 1em 0 0.5em 0; -} + ul.tsd-parameter-list, + ul.tsd-type-parameter-list { + list-style: square; + margin: 0; + padding-left: 20px; + } + ul.tsd-parameter-list > li.tsd-parameter-signature, + ul.tsd-type-parameter-list > li.tsd-parameter-signature { + list-style: none; + margin-left: -20px; + } + ul.tsd-parameter-list h5, + ul.tsd-type-parameter-list h5 { + font-size: 16px; + margin: 1em 0 0.5em 0; + } + .tsd-sources { + margin-top: 1rem; + font-size: 0.875em; + } + .tsd-sources a { + color: var(--color-text-aside); + text-decoration: underline; + } + .tsd-sources ul { + list-style: none; + padding: 0; + } -ul.tsd-parameters, -ul.tsd-type-parameters { - list-style: square; - margin: 0; - padding-left: 20px; -} -ul.tsd-parameters > li.tsd-parameter-signature, -ul.tsd-type-parameters > li.tsd-parameter-signature { - list-style: none; - margin-left: -20px; -} -ul.tsd-parameters h5, -ul.tsd-type-parameters h5 { - font-size: 16px; - margin: 1em 0 0.5em 0; -} -ul.tsd-parameters .tsd-comment, -ul.tsd-type-parameters .tsd-comment { - margin-top: -0.5em; -} + .tsd-page-toolbar { + position: sticky; + z-index: 1; + top: 0; + left: 0; + width: 100%; + color: var(--color-text); + background: var(--color-background-secondary); + border-bottom: var(--dim-toolbar-border-bottom-width) + var(--color-accent) solid; + transition: transform 0.3s ease-in-out; + } + .tsd-page-toolbar a { + color: var(--color-text); + } + .tsd-toolbar-contents { + display: flex; + align-items: center; + height: var(--dim-toolbar-contents-height); + margin: 0 auto; + } + .tsd-toolbar-contents > .title { + font-weight: bold; + margin-right: auto; + } + #tsd-toolbar-links { + display: flex; + align-items: center; + gap: 1.5rem; + margin-right: 1rem; + } -.tsd-sources { - font-size: 14px; - color: var(--color-text-aside); - margin: 0 0 1em 0; -} -.tsd-sources a { - color: var(--color-text-aside); - text-decoration: underline; -} -.tsd-sources ul, -.tsd-sources p { - margin: 0 !important; -} -.tsd-sources ul { - list-style: none; - padding: 0; -} + .tsd-widget { + box-sizing: border-box; + display: inline-block; + opacity: 0.8; + height: 2.5rem; + width: 2.5rem; + transition: opacity 0.1s, background-color 0.1s; + text-align: center; + cursor: pointer; + border: none; + background-color: transparent; + } + .tsd-widget:hover { + opacity: 0.9; + } + .tsd-widget:active { + opacity: 1; + background-color: var(--color-accent); + } + #tsd-toolbar-menu-trigger { + display: none; + } -.tsd-page-toolbar { - position: fixed; - z-index: 1; - top: 0; - left: 0; - width: 100%; - height: 40px; - color: var(--color-toolbar-text); - background: var(--color-toolbar); - border-bottom: 1px solid var(--color-panel-divider); - transition: transform 0.3s linear; -} -.tsd-page-toolbar a { - color: var(--color-toolbar-text); - text-decoration: none; -} -.tsd-page-toolbar a.title { - font-weight: bold; -} -.tsd-page-toolbar a.title:hover { - text-decoration: underline; -} -.tsd-page-toolbar .table-wrap { - display: table; - width: 100%; - height: 40px; -} -.tsd-page-toolbar .table-cell { - display: table-cell; - position: relative; - white-space: nowrap; - line-height: 40px; -} -.tsd-page-toolbar .table-cell:first-child { - width: 100%; -} + .tsd-member-summary-name { + display: inline-flex; + align-items: center; + padding: 0.25rem; + text-decoration: none; + } -.tsd-page-toolbar--hide { - transform: translateY(-100%); -} + .tsd-anchor-icon { + display: inline-flex; + align-items: center; + margin-left: 0.5rem; + color: var(--color-text); + vertical-align: middle; + } -.tsd-select .tsd-select-list li:before, -.tsd-select .tsd-select-label:before, -.tsd-widget:before { - content: ""; - display: inline-block; - width: 40px; - height: 40px; - margin: 0 -8px 0 0; - background-image: url(./widgets.png); - background-repeat: no-repeat; - text-indent: -1024px; - vertical-align: bottom; - filter: var(--icon-filter); -} -@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) { - .tsd-select .tsd-select-list li:before, - .tsd-select .tsd-select-label:before, - .tsd-widget:before { - background-image: url(./widgets@2x.png); - background-size: 320px 40px; + .tsd-anchor-icon svg { + width: 1em; + height: 1em; + visibility: hidden; } -} -.tsd-widget { - display: inline-block; - overflow: hidden; - opacity: 0.8; - height: 40px; - transition: opacity 0.1s, background-color 0.2s; - vertical-align: bottom; - cursor: pointer; -} -.tsd-widget:hover { - opacity: 0.9; -} -.tsd-widget.active { - opacity: 1; - background-color: var(--color-panel-divider); -} -.tsd-widget.no-caption { - width: 40px; -} -.tsd-widget.no-caption:before { - margin: 0; -} -.tsd-widget.search:before { - background-position: 0 0; -} -.tsd-widget.menu:before { - background-position: -40px 0; -} -.tsd-widget.options:before { - background-position: -80px 0; -} -.tsd-widget.options, -.tsd-widget.menu { - display: none; -} -@media (max-width: 900px) { - .tsd-widget.options, - .tsd-widget.menu { - display: inline-block; + .tsd-member-summary-name:hover > .tsd-anchor-icon svg, + .tsd-anchor-link:hover > .tsd-anchor-icon svg, + .tsd-anchor-icon:focus-visible svg { + visibility: visible; } -} -input[type="checkbox"] + .tsd-widget:before { - background-position: -120px 0; -} -input[type="checkbox"]:checked + .tsd-widget:before { - background-position: -160px 0; -} -.tsd-select { - position: relative; - display: inline-block; - height: 40px; - transition: opacity 0.1s, background-color 0.2s; - vertical-align: bottom; - cursor: pointer; -} -.tsd-select .tsd-select-label { - opacity: 0.6; - transition: opacity 0.2s; -} -.tsd-select .tsd-select-label:before { - background-position: -240px 0; -} -.tsd-select.active .tsd-select-label { - opacity: 0.8; -} -.tsd-select.active .tsd-select-list { - visibility: visible; - opacity: 1; - transition-delay: 0s; -} -.tsd-select .tsd-select-list { - position: absolute; - visibility: hidden; - top: 40px; - left: 0; - margin: 0; - padding: 0; - opacity: 0; - list-style: none; - box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); - transition: visibility 0s 0.2s, opacity 0.2s; -} -.tsd-select .tsd-select-list li { - padding: 0 20px 0 0; - background-color: var(--color-background); -} -.tsd-select .tsd-select-list li:before { - background-position: 40px 0; -} -.tsd-select .tsd-select-list li:nth-child(even) { - background-color: var(--color-panel); -} -.tsd-select .tsd-select-list li:hover { - background-color: var(--color-panel-divider); -} -.tsd-select .tsd-select-list li.selected:before { - background-position: -200px 0; -} -@media (max-width: 900px) { - .tsd-select .tsd-select-list { - top: 0; - left: auto; - right: 100%; - margin-right: -5px; + .deprecated { + text-decoration: line-through !important; } - .tsd-select .tsd-select-label:before { - background-position: -280px 0; + + .warning { + padding: 1rem; + color: var(--color-warning-text); + background: var(--color-background-warning); } -} -img { - max-width: 100%; -} + .tsd-kind-project { + color: var(--color-ts-project); + } + .tsd-kind-module { + color: var(--color-ts-module); + } + .tsd-kind-namespace { + color: var(--color-ts-namespace); + } + .tsd-kind-enum { + color: var(--color-ts-enum); + } + .tsd-kind-enum-member { + color: var(--color-ts-enum-member); + } + .tsd-kind-variable { + color: var(--color-ts-variable); + } + .tsd-kind-function { + color: var(--color-ts-function); + } + .tsd-kind-class { + color: var(--color-ts-class); + } + .tsd-kind-interface { + color: var(--color-ts-interface); + } + .tsd-kind-constructor { + color: var(--color-ts-constructor); + } + .tsd-kind-property { + color: var(--color-ts-property); + } + .tsd-kind-method { + color: var(--color-ts-method); + } + .tsd-kind-reference { + color: var(--color-ts-reference); + } + .tsd-kind-call-signature { + color: var(--color-ts-call-signature); + } + .tsd-kind-index-signature { + color: var(--color-ts-index-signature); + } + .tsd-kind-constructor-signature { + color: var(--color-ts-constructor-signature); + } + .tsd-kind-parameter { + color: var(--color-ts-parameter); + } + .tsd-kind-type-parameter { + color: var(--color-ts-type-parameter); + } + .tsd-kind-accessor { + color: var(--color-ts-accessor); + } + .tsd-kind-get-signature { + color: var(--color-ts-get-signature); + } + .tsd-kind-set-signature { + color: var(--color-ts-set-signature); + } + .tsd-kind-type-alias { + color: var(--color-ts-type-alias); + } -.tsd-anchor-icon { - margin-left: 10px; - vertical-align: middle; - color: var(--color-text); -} + /* if we have a kind icon, don't color the text by kind */ + .tsd-kind-icon ~ span { + color: var(--color-text); + } -.tsd-anchor-icon svg { - width: 1em; - height: 1em; - visibility: hidden; -} + /* mobile */ + @media (max-width: 769px) { + #tsd-toolbar-menu-trigger { + display: inline-block; + /* temporary fix to vertically align, for compatibility */ + line-height: 2.5; + } + #tsd-toolbar-links { + display: none; + } + + .container-main { + display: flex; + } + .col-content { + float: none; + max-width: 100%; + width: 100%; + } + .col-sidebar { + position: fixed !important; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + padding: 1.5rem 1.5rem 0 0; + width: 75vw; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + .col-sidebar > *:last-child { + padding-bottom: 20px; + } + .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu .col-sidebar { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu .col-sidebar { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu .col-sidebar { + visibility: visible; + transform: translate(0, 0); + display: flex; + flex-direction: column; + gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } + .tsd-navigation .tsd-nav-link { + display: flex; + } + } -.tsd-anchor-link:hover > .tsd-anchor-icon svg { - visibility: visible; + /* one sidebar */ + @media (min-width: 770px) { + .container-main { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); + grid-template-areas: "sidebar content"; + --dim-container-main-margin-y: 2rem; + } + + .tsd-breadcrumb { + margin-top: 0; + } + + .col-sidebar { + grid-area: sidebar; + } + .col-content { + grid-area: content; + padding: 0 1rem; + } + } + @media (min-width: 770px) and (max-width: 1399px) { + .col-sidebar { + max-height: calc( + 100vh - var(--dim-header-height) - var(--dim-footer-height) - + 2 * var(--dim-container-main-margin-y) + ); + overflow: auto; + position: sticky; + top: calc( + var(--dim-header-height) + var(--dim-container-main-margin-y) + ); + } + .site-menu { + margin-top: 1rem; + } + } + + /* two sidebars */ + @media (min-width: 1200px) { + .container-main { + grid-template-columns: + minmax(0, 1fr) minmax(0, 2.5fr) minmax( + 0, + 20rem + ); + grid-template-areas: "sidebar content toc"; + } + + .col-sidebar { + display: contents; + } + + .page-menu { + grid-area: toc; + padding-left: 1rem; + } + .site-menu { + grid-area: sidebar; + } + + .site-menu { + margin-top: 0rem; + } + + .page-menu, + .site-menu { + max-height: calc( + 100vh - var(--dim-header-height) - var(--dim-footer-height) - + 2 * var(--dim-container-main-margin-y) + ); + overflow: auto; + position: sticky; + top: calc( + var(--dim-header-height) + var(--dim-container-main-margin-y) + ); + } + } } diff --git a/docs/assets/widgets.png b/docs/assets/widgets.png deleted file mode 100644 index c7380532..00000000 Binary files a/docs/assets/widgets.png and /dev/null differ diff --git a/docs/assets/widgets@2x.png b/docs/assets/widgets@2x.png deleted file mode 100644 index 4bbbd572..00000000 Binary files a/docs/assets/widgets@2x.png and /dev/null differ diff --git a/docs/classes/Entity.html b/docs/classes/Entity.html index 3db4bda0..59fccd8c 100644 --- a/docs/classes/Entity.html +++ b/docs/classes/Entity.html @@ -1,5 +1,9 @@ -Entity | NestJS Mongo - v0.13.2
Options
All
  • Public
  • Public/Protected
  • All
Menu

Hierarchy

Implements

Index

Constructors

  • Returns Entity

Properties

_id: ObjectId
createdAt: Date = ...
updatedAt?: Date

Methods

  • serialize(): Record<string, any>
  • toJSON(): Record<string, any>

Legend

  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Inherited constructor
  • Inherited method
  • Protected property
  • Protected method
  • Private property
  • Static method

Settings

Theme

\ No newline at end of file +Entity | NestJS Mongo - v0.15.0
NestJS Mongo - v0.15.0
    Preparing search index...

    Class EntityAbstract

    Hierarchy (View Summary)

    Implements

    Index

    Constructors

    Properties

    Constructors

    • Returns Entity

    Properties

    _id: ObjectId
    createdAt: Date = ...
    serialize: () => Record<string, any>

    Transform a class instance to plain object (ObjectIds become string)

    +
    toJSON: () => Record<string, any>

    Transform a class instance to json object (ObjectIds are not touched)

    +
    updatedAt?: Date
    diff --git a/docs/classes/EntityManager.html b/docs/classes/EntityManager.html index dc352136..6457fb4a 100644 --- a/docs/classes/EntityManager.html +++ b/docs/classes/EntityManager.html @@ -1,5 +1,41 @@ -EntityManager | NestJS Mongo - v0.13.2
    Options
    All
    • Public
    • Public/Protected
    • All
    Menu

    Hierarchy

    • EntityManager

    Index

    Constructors

    Properties

    client: MongoClient
    exceptionFactory: ExceptionFactory
    log: Debugger = ...
    models: Map<string, ClassConstructor<any>> = ...
    repositories: Map<string, any> = ...
    sessionLoaderService: SessionLoaderService

    Methods

    • clearSessionContext(): void
    • count<Model>(classType: ClassConstructor<Model>, query: Filter<Model>, options?: CountDocumentsOptions): Promise<number>
    • createIndexs<Model>(model: ClassConstructor<Model>): Promise<undefined | string[]>
    • deleteCascade<Model>(classType: ClassConstructor<Model>, entity: WithId<Model>): Promise<void>
    • deleteMany<Model>(classType: ClassConstructor<Model>, query: Filter<Model>, options?: DeleteOptions): Promise<DeleteResult>
    • deleteOne<Model>(classType: ClassConstructor<Model>, query: Filter<Model>, options?: DeleteOptions): Promise<DeleteResult>
    • find<Model>(classType: ClassConstructor<Model>, query: Filter<Model>, options?: FindOptions<Model>): Promise<FindCursor<WithId<Model>>>
    • Type parameters

      Parameters

      • classType: ClassConstructor<Model>
      • query: Filter<Model>
      • options: FindOptions<Model> = {}

      Returns Promise<FindCursor<WithId<Model>>>

    • findOne<Model>(classType: ClassConstructor<Model>, query: Filter<Model>, options?: FindOptions<Document>): Promise<undefined | WithId<Model>>
    • Type parameters

      Parameters

      • classType: ClassConstructor<Model>
      • query: Filter<Model>
      • options: FindOptions<Document> = {}

      Returns Promise<undefined | WithId<Model>>

    • fromPlain<Model>(classType: ClassConstructor<Model>, data: object, options?: ClassTransformOptions): Model
    • getClient(): MongoClient
    • getCollection<Model>(nameOrInstance: Model | ClassConstructor<Model>, databaseName?: string): Collection<Document>
    • getCollectionName<Model>(nameOrInstance: Model | ClassConstructor<Model>): string
    • getDatabase(databaseName?: string): Db
    • getModel(id: string): undefined | ClassConstructor<any>
    • getModels(): Map<string, ClassConstructor<any>>
    • getRelationship<R>(obj: any, property: string, options?: FindOptions<Document>): Promise<undefined | WithId<R>>
    • getRelationships<R>(obj: any, property: string, options?: FindOptions<Document>): Promise<WithId<R>[]>
    • getRepository<Model, R>(classType: ClassConstructor<Model>): R
    • getSessionContext(): ClientSessionContext
    • isIdQuery(query: any): boolean
    • isIdsQuery(query: any): boolean
    • merge<Model>(entity: Model, data: Model, excludePrefixes?: string[]): Model
    • registerModel<Model>(name: string, model: ClassConstructor<Model>): Promise<EntityManager>
    • registerRepository<Model, R>(name: string, repository: R): EntityManager
    • save<Model>(entity: Model | WithId<Model>, options?: (InsertOneOptions & { skipValidation?: boolean; validatorOptions?: ValidatorOptions }) & (UpdateOptions & { skipValidation?: boolean; validatorOptions?: ValidatorOptions })): Promise<WithId<Model>>
    • Type parameters

      Parameters

      • entity: Model | WithId<Model>
      • options: (InsertOneOptions & { skipValidation?: boolean; validatorOptions?: ValidatorOptions }) & (UpdateOptions & { skipValidation?: boolean; validatorOptions?: ValidatorOptions }) = {}

      Returns Promise<WithId<Model>>

    • setSessionContext(mongoSession: ClientSession): void
    • startSessionWithTransaction(transactionFn: (session: ClientSession) => Promise<any>, options?: { sessionOptions?: ClientSessionOptions; transactionOptions?: TransactionOptions; useContext?: boolean }): Promise<ClientSession>
    • Type Parameters

      Parameters

      • obj: Model
      • validatorOptions: ValidatorOptions = {}
      • throwError: boolean = false

      Returns Promise<ValidationError[]>

    diff --git a/docs/classes/EntityRepository.html b/docs/classes/EntityRepository.html index 332174d5..a843898c 100644 --- a/docs/classes/EntityRepository.html +++ b/docs/classes/EntityRepository.html @@ -1 +1,19 @@ -EntityRepository | NestJS Mongo - v0.13.2
    Options
    All
    • Public
    • Public/Protected
    • All
    Menu

    Class EntityRepository<Model>

    Type parameters

    Hierarchy

    • EntityRepository

    Index

    Constructors

    Properties

    classType: ClassConstructor<Model>

    Methods

    • count(query: Filter<Model>, options?: CountDocumentsOptions): Promise<number>
    • deleteMany(query: Filter<Model>, ...args: any): Promise<DeleteResult>
    • deleteOne(query: Filter<Model>, options?: DeleteOptions): Promise<DeleteResult>
    • find(query: Filter<Model>, options?: FindOptions<Model>): Promise<FindCursor<WithId<Model>>>
    • Parameters

      • query: Filter<Model>
      • options: FindOptions<Model> = {}

      Returns Promise<FindCursor<WithId<Model>>>

    • findOne(query: Filter<Model>, options?: FindOptions<Document>): Promise<undefined | WithId<Model>>
    • Parameters

      • query: Filter<Model>
      • options: FindOptions<Document> = {}

      Returns Promise<undefined | WithId<Model>>

    • fromPlain(data: object | object[], options?: ClassTransformOptions): Model
    • getClassType(): ClassConstructor<Model>
    • getRelationship<E>(object: Model, property: string, options?: FindOptions<Document>): Promise<undefined | WithId<E>>
    • getRelationships<E>(object: Model, property: string, options?: FindOptions<Document>): Promise<WithId<E>[]>
    • merge(entity: Model | WithId<Model>, data: Model | WithId<Model>, excludePrefixes?: string[]): Model | WithId<Model>
    • Parameters

      • entity: Model | WithId<Model>
      • data: Model | WithId<Model>
      • Optional excludePrefixes: string[]

      Returns Model | WithId<Model>

    • save(entity: Model | WithId<Model>, ...args: any[]): Promise<WithId<Model>>
    • validate(entity: Model, validatorOptions?: ValidatorOptions, throwError?: boolean): Promise<ValidationError[]>
    • Parameters

      • entity: Model
      • validatorOptions: ValidatorOptions = {}
      • throwError: boolean = false

      Returns Promise<ValidationError[]>

    • watch(pipes?: Document[], options?: ChangeStreamOptions): ChangeStream<WithId<Model>>
    • Parameters

      • Optional pipes: Document[]
      • options: ChangeStreamOptions = {}

      Returns ChangeStream<WithId<Model>>

    Legend

    • Constructor
    • Property
    • Method
    • Property
    • Method
    • Inherited constructor
    • Inherited method
    • Protected property
    • Protected method
    • Private property
    • Static method

    Settings

    Theme

    \ No newline at end of file +EntityRepository | NestJS Mongo - v0.15.0
    NestJS Mongo - v0.15.0
      Preparing search index...

      Class EntityRepository<Model>

      Type Parameters

      Index

      Constructors

      Properties

      classType: ClassConstructor<Model>

      Methods

      • Parameters

        • query: Filter<Model>
        • options: CountDocumentsOptions = {}

        Returns Promise<number>

      • Parameters

        • query: Filter<Model>
        • options: DeleteOptions = {}

        Returns Promise<DeleteResult>

      • Parameters

        • data: object | object[]
        • Optionaloptions: ClassTransformOptions

        Returns Model

      • Parameters

        • entity: Model
        • validatorOptions: ValidatorOptions = {}
        • throwError: boolean = false

        Returns Promise<ValidationError[]>

      • Parameters

        • Optionalpipes: Document[]
        • options: ChangeStreamOptions = {}

        Returns ChangeStream<Model, ChangeStreamDocument<Model>>

      diff --git a/docs/classes/EntityService.html b/docs/classes/EntityService.html index 3bc497bd..90e05737 100644 --- a/docs/classes/EntityService.html +++ b/docs/classes/EntityService.html @@ -1 +1,13 @@ -EntityService | NestJS Mongo - v0.13.2
      Options
      All
      • Public
      • Public/Protected
      • All
      Menu

      Class EntityService<Model, Repository>

      Type parameters

      Hierarchy

      • EntityService

      Index

      Constructors

      • new EntityService<Model, Repository>(): EntityService<Model, Repository>

      Properties

      log: Debugger
      repository: Repository

      Methods

      • addHistory<Obj>(item: Obj, action: string, date?: Date): EntityService<Model, Repository>
      • create(data: any, save?: boolean, ...rest: any[]): Promise<Model | WithId<Model>>
      • Parameters

        • data: any
        • save: boolean = false
        • Rest ...rest: any[]

        Returns Promise<Model | WithId<Model>>

      • delete(itemId: ObjectId, ...rest: any[]): Promise<void>
      • get(itemId: ObjectId, ...rest: any[]): Promise<WithId<Model>>
      • getRepository(): Repository
      • onData(change: ChangeStreamDocument<WithId<Model>>, onData: EventCallback<WithId<Model>>): Promise<void>
      • subscribe(onData: EventCallback<WithId<Model>>): ChangeStream<WithId<Model>>
      • update(itemId: ObjectId, data: any, save?: boolean, ...rest: any[]): Promise<Model | WithId<Model>>
      • Parameters

        • itemId: ObjectId
        • data: any
        • save: boolean = false
        • Rest ...rest: any[]

        Returns Promise<Model | WithId<Model>>

      Legend

      • Constructor
      • Property
      • Method
      • Property
      • Method
      • Inherited constructor
      • Inherited method
      • Protected property
      • Protected method
      • Private property
      • Static method

      Settings

      Theme

      \ No newline at end of file +EntityService | NestJS Mongo - v0.15.0
      NestJS Mongo - v0.15.0
        Preparing search index...

        Class EntityService<Model, Repository>Abstract

        Type Parameters

        Index

        Constructors

        Properties

        log: Debugger
        repository: Repository

        Methods

        • Parameters

          • data: any
          • save: boolean = false
          • ...rest: any[]

          Returns Promise<Model>

        • Parameters

          • _id: ObjectId
          • ...rest: any[]

          Returns Promise<void>

        • Parameters

          • itemId: ObjectId
          • data: any
          • save: boolean = false
          • ...rest: any[]

          Returns Promise<Model>

        diff --git a/docs/classes/Filter.html b/docs/classes/Filter.html index b9b8b3fd..b03c6a89 100644 --- a/docs/classes/Filter.html +++ b/docs/classes/Filter.html @@ -1,5 +1,12 @@ -Filter | NestJS Mongo - v0.13.2
        Options
        All
        • Public
        • Public/Protected
        • All
        Menu

        Hierarchy

        Index

        Constructors

        • Returns Filter

        Properties

        limit: number = 50
        orderBy?: string[] = ...
        skip: number = 0

        Methods

        • getSort(): [string, 1 | -1][]
        • getSortForAggregation(): {}
        • serialize(): Record<string, any>
        • toJSON(): Record<string, any>
        • toQuery(): any

        Legend

        • Constructor
        • Property
        • Method
        • Property
        • Method
        • Inherited constructor
        • Inherited method
        • Protected property
        • Protected method
        • Private property
        • Static method

        Settings

        Theme

        \ No newline at end of file +Filter | NestJS Mongo - v0.15.0
        NestJS Mongo - v0.15.0
          Preparing search index...

          Class Filter

          Hierarchy (View Summary)

          Index

          Constructors

          • Returns Filter

          Properties

          limit: number = 50
          orderBy?: string[] = ...
          serialize: () => Record<string, any>

          Transform a class instance to plain object (ObjectIds become string)

          +
          skip: number = 0
          toJSON: () => Record<string, any>

          Transform a class instance to json object (ObjectIds are not touched)

          +

          Methods

          • Returns { [property: string]: -1 | 1 }

          diff --git a/docs/classes/HistoryAction.html b/docs/classes/HistoryAction.html index 88174d53..c5dafa20 100644 --- a/docs/classes/HistoryAction.html +++ b/docs/classes/HistoryAction.html @@ -1 +1,4 @@ -HistoryAction | NestJS Mongo - v0.13.2
          Options
          All
          • Public
          • Public/Protected
          • All
          Menu

          Hierarchy

          • HistoryAction

          Index

          Constructors

          Properties

          Constructors

          Properties

          action: string
          date: Date

          Legend

          • Constructor
          • Property
          • Method
          • Property
          • Method
          • Inherited constructor
          • Inherited method
          • Protected property
          • Protected method
          • Private property
          • Static method

          Settings

          Theme

          \ No newline at end of file +HistoryAction | NestJS Mongo - v0.15.0
          NestJS Mongo - v0.15.0
            Preparing search index...

            Class HistoryAction

            Index

            Constructors

            Properties

            Constructors

            Properties

            action: string
            date: Date
            diff --git a/docs/classes/HistoryActions.html b/docs/classes/HistoryActions.html index 126df171..ecb28e08 100644 --- a/docs/classes/HistoryActions.html +++ b/docs/classes/HistoryActions.html @@ -1 +1,6 @@ -HistoryActions | NestJS Mongo - v0.13.2
            Options
            All
            • Public
            • Public/Protected
            • All
            Menu

            Hierarchy

            • HistoryActions

            Index

            Constructors

            Properties

            Methods

            Constructors

            Properties

            actions: HistoryAction[] = []

            Methods

            • clear(): void

            Legend

            • Constructor
            • Property
            • Method
            • Property
            • Method
            • Inherited constructor
            • Inherited method
            • Protected property
            • Protected method
            • Private property
            • Static method

            Settings

            Theme

            \ No newline at end of file +HistoryActions | NestJS Mongo - v0.15.0
            NestJS Mongo - v0.15.0
              Preparing search index...

              Class HistoryActions

              Index

              Constructors

              Properties

              Methods

              Constructors

              Properties

              actions: HistoryAction[] = []

              Methods

              diff --git a/docs/classes/IsUniqueConstraint.html b/docs/classes/IsUniqueConstraint.html index 3c5d55da..e13cdc1f 100644 --- a/docs/classes/IsUniqueConstraint.html +++ b/docs/classes/IsUniqueConstraint.html @@ -1 +1,9 @@ -IsUniqueConstraint | NestJS Mongo - v0.13.2
              Options
              All
              • Public
              • Public/Protected
              • All
              Menu

              Hierarchy

              • IsUniqueConstraint

              Implements

              • ValidatorConstraintInterface

              Index

              Constructors

              Properties

              message: string

              Methods

              • defaultMessage(args?: ValidationArguments): string
              • validate(value: any, args: ValidationArguments): Promise<boolean>

              Legend

              • Constructor
              • Property
              • Method
              • Property
              • Method
              • Inherited constructor
              • Inherited method
              • Protected property
              • Protected method
              • Private property
              • Static method

              Settings

              Theme

              \ No newline at end of file +IsUniqueConstraint | NestJS Mongo - v0.15.0
              NestJS Mongo - v0.15.0
                Preparing search index...

                Class IsUniqueConstraint

                Implements

                • ValidatorConstraintInterface
                Index

                Constructors

                Properties

                Methods

                Constructors

                Properties

                message: string

                Methods

                • Gets default message when validation for this constraint fail.

                  +

                  Returns string

                • Method to be called to perform custom validation over given value.

                  +

                  Parameters

                  • value: any
                  • args: ValidationArguments

                  Returns Promise<boolean>

                diff --git a/docs/classes/IsValidRelationshipConstraint.html b/docs/classes/IsValidRelationshipConstraint.html index b10e8f9e..2ab8ad07 100644 --- a/docs/classes/IsValidRelationshipConstraint.html +++ b/docs/classes/IsValidRelationshipConstraint.html @@ -1 +1,9 @@ -IsValidRelationshipConstraint | NestJS Mongo - v0.13.2
                Options
                All
                • Public
                • Public/Protected
                • All
                Menu

                Class IsValidRelationshipConstraint

                Hierarchy

                • IsValidRelationshipConstraint

                Implements

                • ValidatorConstraintInterface

                Index

                Constructors

                Properties

                message: string

                Methods

                Legend

                • Constructor
                • Property
                • Method
                • Property
                • Method
                • Inherited constructor
                • Inherited method
                • Protected property
                • Protected method
                • Private property
                • Static method

                Settings

                Theme

                \ No newline at end of file +IsValidRelationshipConstraint | NestJS Mongo - v0.15.0
                NestJS Mongo - v0.15.0
                  Preparing search index...

                  Class IsValidRelationshipConstraint

                  Implements

                  • ValidatorConstraintInterface
                  Index

                  Constructors

                  Properties

                  Methods

                  Constructors

                  Properties

                  message: string

                  Methods

                  • Gets default message when validation for this constraint fail.

                    +

                    Returns string

                  diff --git a/docs/classes/MongoModule.html b/docs/classes/MongoModule.html index da216fed..d1951d60 100644 --- a/docs/classes/MongoModule.html +++ b/docs/classes/MongoModule.html @@ -1 +1,6 @@ -MongoModule | NestJS Mongo - v0.13.2
                  Options
                  All
                  • Public
                  • Public/Protected
                  • All
                  Menu

                  Hierarchy

                  • MongoModule

                  Implements

                  • OnModuleDestroy

                  Index

                  Constructors

                  Methods

                  • onModuleDestroy(): Promise<void>

                  Legend

                  • Constructor
                  • Property
                  • Method
                  • Property
                  • Method
                  • Inherited constructor
                  • Inherited method
                  • Protected property
                  • Protected method
                  • Private property
                  • Static method

                  Settings

                  Theme

                  \ No newline at end of file +MongoModule | NestJS Mongo - v0.15.0
                  NestJS Mongo - v0.15.0
                    Preparing search index...

                    Class MongoModule

                    Implements

                    • OnModuleDestroy
                    Index

                    Constructors

                    Properties

                    em +

                    Methods

                    Constructors

                    Properties

                    Methods

                    • Returns Promise<void>

                    diff --git a/docs/classes/ObjectIdPipe.html b/docs/classes/ObjectIdPipe.html index c065a1b1..4af726dd 100644 --- a/docs/classes/ObjectIdPipe.html +++ b/docs/classes/ObjectIdPipe.html @@ -1 +1,6 @@ -ObjectIdPipe | NestJS Mongo - v0.13.2
                    Options
                    All
                    • Public
                    • Public/Protected
                    • All
                    Menu

                    Hierarchy

                    • ObjectIdPipe

                    Implements

                    • PipeTransform

                    Index

                    Constructors

                    Methods

                    Constructors

                    Methods

                    • transform(value: any, metadata: ArgumentMetadata): Promise<ObjectId>

                    Legend

                    • Constructor
                    • Property
                    • Method
                    • Property
                    • Method
                    • Inherited constructor
                    • Inherited method
                    • Protected property
                    • Protected method
                    • Private property
                    • Static method

                    Settings

                    Theme

                    \ No newline at end of file +ObjectIdPipe | NestJS Mongo - v0.15.0
                    NestJS Mongo - v0.15.0
                      Preparing search index...

                      Class ObjectIdPipe

                      Implements

                      • PipeTransform
                      Index

                      Constructors

                      Methods

                      Constructors

                      Methods

                      • Method to implement a custom pipe. Called with two parameters

                        +

                        Parameters

                        • value: any

                          argument before it is received by route handler method

                          +
                        • metadata: ArgumentMetadata

                          contains metadata about the value

                          +

                        Returns Promise<ObjectId>

                      diff --git a/docs/classes/PaginatedData.html b/docs/classes/PaginatedData.html index 5e8723d9..34c8111f 100644 --- a/docs/classes/PaginatedData.html +++ b/docs/classes/PaginatedData.html @@ -1,5 +1,8 @@ -PaginatedData | NestJS Mongo - v0.13.2
                      Options
                      All
                      • Public
                      • Public/Protected
                      • All
                      Menu

                      Type parameters

                      • D = any

                      Hierarchy

                      Index

                      Constructors

                      Properties

                      Methods

                      Constructors

                      • Type parameters

                        • D = any

                        Returns PaginatedData<D>

                      Properties

                      count: number
                      data: D[]

                      Methods

                      • serialize(): Record<string, any>
                      • toJSON(): Record<string, any>

                      Legend

                      • Constructor
                      • Property
                      • Method
                      • Property
                      • Method
                      • Inherited constructor
                      • Inherited method
                      • Protected property
                      • Protected method
                      • Private property
                      • Static method

                      Settings

                      Theme

                      \ No newline at end of file +PaginatedData | NestJS Mongo - v0.15.0
                      NestJS Mongo - v0.15.0
                        Preparing search index...

                        Class PaginatedData<D>

                        Type Parameters

                        • D = any

                        Hierarchy (View Summary)

                        Index

                        Constructors

                        Properties

                        Constructors

                        Properties

                        count: number
                        data: D[]
                        serialize: () => Record<string, any>

                        Transform a class instance to plain object (ObjectIds become string)

                        +
                        toJSON: () => Record<string, any>

                        Transform a class instance to json object (ObjectIds are not touched)

                        +
                        diff --git a/docs/classes/RelationshipPipe.html b/docs/classes/RelationshipPipe.html index 3befd96e..5623bbb6 100644 --- a/docs/classes/RelationshipPipe.html +++ b/docs/classes/RelationshipPipe.html @@ -1 +1,7 @@ -RelationshipPipe | NestJS Mongo - v0.13.2
                        Options
                        All
                        • Public
                        • Public/Protected
                        • All
                        Menu

                        Hierarchy

                        Implements

                        • PipeTransform

                        Index

                        Constructors

                        Properties

                        Methods

                        Constructors

                        Properties

                        Methods

                        • transform(value: any, metadata: ArgumentMetadata): Promise<undefined | WithId<EntityInterface>>

                        Legend

                        • Constructor
                        • Property
                        • Method
                        • Property
                        • Method
                        • Inherited constructor
                        • Inherited method
                        • Protected property
                        • Protected method
                        • Private property
                        • Static method

                        Settings

                        Theme

                        \ No newline at end of file +RelationshipPipe | NestJS Mongo - v0.15.0
                        NestJS Mongo - v0.15.0
                          Preparing search index...

                          Class RelationshipPipe

                          Hierarchy (View Summary)

                          Implements

                          • PipeTransform
                          Index

                          Constructors

                          Properties

                          em +

                          Methods

                          Constructors

                          Properties

                          Methods

                          • Method to implement a custom pipe. Called with two parameters

                            +

                            Parameters

                            • value: any

                              argument before it is received by route handler method

                              +
                            • metadata: ArgumentMetadata

                              contains metadata about the value

                              +

                            Returns Promise<undefined | EntityInterface>

                          diff --git a/docs/classes/RequiredRelationshipPipe.html b/docs/classes/RequiredRelationshipPipe.html index 6e27e5cc..2257de11 100644 --- a/docs/classes/RequiredRelationshipPipe.html +++ b/docs/classes/RequiredRelationshipPipe.html @@ -1 +1,7 @@ -RequiredRelationshipPipe | NestJS Mongo - v0.13.2
                          Options
                          All
                          • Public
                          • Public/Protected
                          • All
                          Menu

                          Hierarchy

                          Index

                          Constructors

                          Properties

                          Methods

                          Constructors

                          Properties

                          Methods

                          • transform(value: ObjectId, metadata: ArgumentMetadata): Promise<WithId<EntityInterface>>

                          Legend

                          • Constructor
                          • Property
                          • Method
                          • Property
                          • Method
                          • Inherited constructor
                          • Inherited method
                          • Protected property
                          • Protected method
                          • Private property
                          • Static method

                          Settings

                          Theme

                          \ No newline at end of file +RequiredRelationshipPipe | NestJS Mongo - v0.15.0
                          NestJS Mongo - v0.15.0
                            Preparing search index...

                            Class RequiredRelationshipPipe

                            Hierarchy (View Summary)

                            Index

                            Constructors

                            Properties

                            em +

                            Methods

                            Constructors

                            Properties

                            Methods

                            diff --git a/docs/classes/SessionLoaderMiddleware.html b/docs/classes/SessionLoaderMiddleware.html index 35ecfe63..65cd8d78 100644 --- a/docs/classes/SessionLoaderMiddleware.html +++ b/docs/classes/SessionLoaderMiddleware.html @@ -1 +1,5 @@ -SessionLoaderMiddleware | NestJS Mongo - v0.13.2
                            Options
                            All
                            • Public
                            • Public/Protected
                            • All
                            Menu

                            Hierarchy

                            • SessionLoaderMiddleware

                            Implements

                            • NestMiddleware

                            Index

                            Constructors

                            Properties

                            Methods

                            Constructors

                            Properties

                            log: Debugger = ...
                            ns: Namespace = ...

                            Methods

                            • use(_: Request, __: Response, next: Function): void

                            Legend

                            • Constructor
                            • Property
                            • Method
                            • Property
                            • Method
                            • Inherited constructor
                            • Inherited method
                            • Protected property
                            • Protected method
                            • Private property
                            • Static method

                            Settings

                            Theme

                            \ No newline at end of file +SessionLoaderMiddleware | NestJS Mongo - v0.15.0
                            NestJS Mongo - v0.15.0
                              Preparing search index...

                              Class SessionLoaderMiddleware

                              Implements

                              • NestMiddleware
                              Index

                              Constructors

                              Properties

                              log +ns +

                              Methods

                              use +

                              Constructors

                              Properties

                              log: Debugger = ...
                              ns: Namespace<Record<string, any>> = ...

                              Methods

                              • Parameters

                                • _: Request
                                • __: Response
                                • next: (error?: any) => void

                                Returns void

                              diff --git a/docs/classes/SessionLoaderService.html b/docs/classes/SessionLoaderService.html index 2d94c2c6..2b8c6ab2 100644 --- a/docs/classes/SessionLoaderService.html +++ b/docs/classes/SessionLoaderService.html @@ -1 +1,7 @@ -SessionLoaderService | NestJS Mongo - v0.13.2
                              Options
                              All
                              • Public
                              • Public/Protected
                              • All
                              Menu

                              Hierarchy

                              • SessionLoaderService

                              Index

                              Constructors

                              Properties

                              log: Debugger = ...

                              Methods

                              • clearSessionContext(): void
                              • getSession(): undefined | Namespace
                              • getSessionContext(): ClientSessionContext
                              • setSessionContext(mongoClientSession: ClientSession): void

                              Legend

                              • Constructor
                              • Property
                              • Method
                              • Property
                              • Method
                              • Inherited constructor
                              • Inherited method
                              • Protected property
                              • Protected method
                              • Private property
                              • Static method

                              Settings

                              Theme

                              \ No newline at end of file +SessionLoaderService | NestJS Mongo - v0.15.0
                              NestJS Mongo - v0.15.0
                                Preparing search index...

                                Class SessionLoaderService

                                Index

                                Constructors

                                Properties

                                log: Debugger = ...

                                Methods

                                • Returns undefined | Namespace<Record<string, any>>

                                • Parameters

                                  • mongoClientSession: ClientSession

                                  Returns void

                                diff --git a/docs/enums/CascadeType.html b/docs/enums/CascadeType.html index 876291f6..13b34110 100644 --- a/docs/enums/CascadeType.html +++ b/docs/enums/CascadeType.html @@ -1,3 +1,3 @@ -CascadeType | NestJS Mongo - v0.13.2
                                Options
                                All
                                • Public
                                • Public/Protected
                                • All
                                Menu

                                Enumeration CascadeType

                                -

                                Define the cascade operation of a relationship

                                -

                                Index

                                Enumeration members

                                Enumeration members

                                DELETE = "DELETE"

                                Legend

                                • Constructor
                                • Property
                                • Method
                                • Property
                                • Method
                                • Inherited constructor
                                • Inherited method
                                • Protected property
                                • Protected method
                                • Private property
                                • Static method

                                Settings

                                Theme

                                \ No newline at end of file +CascadeType | NestJS Mongo - v0.15.0
                                NestJS Mongo - v0.15.0
                                  Preparing search index...

                                  Enumeration CascadeType

                                  Define the cascade operation of a relationship

                                  +
                                  Index

                                  Enumeration Members

                                  Enumeration Members

                                  DELETE: "DELETE"
                                  diff --git a/docs/functions/Collection.html b/docs/functions/Collection.html new file mode 100644 index 00000000..778cccb1 --- /dev/null +++ b/docs/functions/Collection.html @@ -0,0 +1 @@ +Collection | NestJS Mongo - v0.15.0
                                  NestJS Mongo - v0.15.0
                                    Preparing search index...

                                    Function Collection

                                    • Parameters

                                      • name: string

                                      Returns (target: any) => void

                                    diff --git a/docs/functions/Index.html b/docs/functions/Index.html new file mode 100644 index 00000000..d8e33526 --- /dev/null +++ b/docs/functions/Index.html @@ -0,0 +1 @@ +Index | NestJS Mongo - v0.15.0
                                    NestJS Mongo - v0.15.0
                                      Preparing search index...

                                      Function Index

                                      • Parameters

                                        • Optionalmetadata: Partial<IndexDescription> & CreateIndexesOptions

                                        Returns (target: any, property: string) => void

                                      diff --git a/docs/functions/InjectEntityManager.html b/docs/functions/InjectEntityManager.html new file mode 100644 index 00000000..c6c58dbd --- /dev/null +++ b/docs/functions/InjectEntityManager.html @@ -0,0 +1 @@ +InjectEntityManager | NestJS Mongo - v0.15.0
                                      NestJS Mongo - v0.15.0
                                        Preparing search index...

                                        Function InjectEntityManager

                                        • Parameters

                                          • connectionName: string = DEFAULT_CONNECTION_NAME

                                          Returns PropertyDecorator & ParameterDecorator

                                        diff --git a/docs/functions/InjectEntityRepository.html b/docs/functions/InjectEntityRepository.html new file mode 100644 index 00000000..2d167859 --- /dev/null +++ b/docs/functions/InjectEntityRepository.html @@ -0,0 +1 @@ +InjectEntityRepository | NestJS Mongo - v0.15.0
                                        NestJS Mongo - v0.15.0
                                          Preparing search index...

                                          Function InjectEntityRepository

                                          • Parameters

                                            • entity: ClassConstructor<any>
                                            • connectionName: string = DEFAULT_CONNECTION_NAME

                                            Returns PropertyDecorator & ParameterDecorator

                                          diff --git a/docs/functions/InjectMongoClient.html b/docs/functions/InjectMongoClient.html new file mode 100644 index 00000000..798c74d6 --- /dev/null +++ b/docs/functions/InjectMongoClient.html @@ -0,0 +1 @@ +InjectMongoClient | NestJS Mongo - v0.15.0
                                          NestJS Mongo - v0.15.0
                                            Preparing search index...

                                            Function InjectMongoClient

                                            • Parameters

                                              • connectionName: string = DEFAULT_CONNECTION_NAME

                                              Returns PropertyDecorator & ParameterDecorator

                                            diff --git a/docs/functions/IsUnique.html b/docs/functions/IsUnique.html new file mode 100644 index 00000000..89048a2f --- /dev/null +++ b/docs/functions/IsUnique.html @@ -0,0 +1 @@ +IsUnique | NestJS Mongo - v0.15.0
                                            NestJS Mongo - v0.15.0
                                              Preparing search index...

                                              Function IsUnique

                                              diff --git a/docs/functions/IsValidRelationship.html b/docs/functions/IsValidRelationship.html new file mode 100644 index 00000000..dba0c792 --- /dev/null +++ b/docs/functions/IsValidRelationship.html @@ -0,0 +1 @@ +IsValidRelationship | NestJS Mongo - v0.15.0
                                              NestJS Mongo - v0.15.0
                                                Preparing search index...

                                                Function IsValidRelationship

                                                diff --git a/docs/functions/Relationship.html b/docs/functions/Relationship.html new file mode 100644 index 00000000..a243a05a --- /dev/null +++ b/docs/functions/Relationship.html @@ -0,0 +1 @@ +Relationship | NestJS Mongo - v0.15.0
                                                NestJS Mongo - v0.15.0
                                                  Preparing search index...

                                                  Function Relationship

                                                  diff --git a/docs/functions/Serializable.html b/docs/functions/Serializable.html new file mode 100644 index 00000000..975d8700 --- /dev/null +++ b/docs/functions/Serializable.html @@ -0,0 +1,2 @@ +Serializable | NestJS Mongo - v0.15.0
                                                  NestJS Mongo - v0.15.0
                                                    Preparing search index...

                                                    Function Serializable

                                                    • Extend a class to be serializable, add 2 methods serialize() and toJSON()

                                                      +

                                                      Returns (target: any) => void

                                                    diff --git a/docs/functions/SlugDecorator.html b/docs/functions/SlugDecorator.html new file mode 100644 index 00000000..f9a65248 --- /dev/null +++ b/docs/functions/SlugDecorator.html @@ -0,0 +1 @@ +SlugDecorator | NestJS Mongo - v0.15.0
                                                    NestJS Mongo - v0.15.0
                                                      Preparing search index...

                                                      Function SlugDecorator

                                                      • Type Parameters

                                                        • T

                                                        Parameters

                                                        • target: any
                                                        • key: string
                                                        • config: ISlugifyOptions<T>

                                                        Returns void

                                                      diff --git a/docs/functions/Slugify.html b/docs/functions/Slugify.html new file mode 100644 index 00000000..79cb94a8 --- /dev/null +++ b/docs/functions/Slugify.html @@ -0,0 +1 @@ +Slugify | NestJS Mongo - v0.15.0
                                                      NestJS Mongo - v0.15.0
                                                        Preparing search index...

                                                        Function Slugify

                                                        • Type Parameters

                                                          • T = any

                                                          Parameters

                                                          • config: ISlugifyOptions<T>

                                                          Returns <TFunction extends Function, Y>(
                                                              target: object | TFunction,
                                                              propertyKey?: string | symbol,
                                                              descriptor?: TypedPropertyDescriptor<Y>,
                                                          ) => void

                                                        diff --git a/docs/functions/TypeObjectId.html b/docs/functions/TypeObjectId.html new file mode 100644 index 00000000..158b192c --- /dev/null +++ b/docs/functions/TypeObjectId.html @@ -0,0 +1 @@ +TypeObjectId | NestJS Mongo - v0.15.0
                                                        NestJS Mongo - v0.15.0
                                                          Preparing search index...

                                                          Function TypeObjectId

                                                          • Parameters

                                                            • OptionalisArray: boolean

                                                            Returns <TFunction extends Function, Y>(
                                                                target: object | TFunction,
                                                                propertyKey?: string | symbol,
                                                                descriptor?: TypedPropertyDescriptor<Y>,
                                                            ) => void

                                                          diff --git a/docs/functions/addRelationshipMetadata.html b/docs/functions/addRelationshipMetadata.html new file mode 100644 index 00000000..44c1cec9 --- /dev/null +++ b/docs/functions/addRelationshipMetadata.html @@ -0,0 +1,4 @@ +addRelationshipMetadata | NestJS Mongo - v0.15.0
                                                          NestJS Mongo - v0.15.0
                                                            Preparing search index...

                                                            Function addRelationshipMetadataPrivate

                                                            diff --git a/docs/functions/ensureSequentialTransaction.html b/docs/functions/ensureSequentialTransaction.html new file mode 100644 index 00000000..67fd7107 --- /dev/null +++ b/docs/functions/ensureSequentialTransaction.html @@ -0,0 +1 @@ +ensureSequentialTransaction | NestJS Mongo - v0.15.0
                                                            NestJS Mongo - v0.15.0
                                                              Preparing search index...

                                                              Function ensureSequentialTransaction

                                                              • Type Parameters

                                                                • F extends () => Promise<any>

                                                                Parameters

                                                                • ctx: ClientSessionContext
                                                                • jobFn: F

                                                                Returns Promise<ReturnType<F>>

                                                              diff --git a/docs/functions/fromPlain.html b/docs/functions/fromPlain.html new file mode 100644 index 00000000..0ac40de1 --- /dev/null +++ b/docs/functions/fromPlain.html @@ -0,0 +1 @@ +fromPlain | NestJS Mongo - v0.15.0
                                                              NestJS Mongo - v0.15.0
                                                                Preparing search index...

                                                                Function fromPlain

                                                                diff --git a/docs/functions/getConfigToken.html b/docs/functions/getConfigToken.html new file mode 100644 index 00000000..d5d41920 --- /dev/null +++ b/docs/functions/getConfigToken.html @@ -0,0 +1 @@ +getConfigToken | NestJS Mongo - v0.15.0
                                                                NestJS Mongo - v0.15.0
                                                                  Preparing search index...

                                                                  Function getConfigToken

                                                                  • Parameters

                                                                    • connectionName: string = DEFAULT_CONNECTION_NAME

                                                                    Returns string

                                                                  diff --git a/docs/functions/getConnectionToken.html b/docs/functions/getConnectionToken.html new file mode 100644 index 00000000..d220e32f --- /dev/null +++ b/docs/functions/getConnectionToken.html @@ -0,0 +1 @@ +getConnectionToken | NestJS Mongo - v0.15.0
                                                                  NestJS Mongo - v0.15.0
                                                                    Preparing search index...

                                                                    Function getConnectionToken

                                                                    • Parameters

                                                                      • connectionName: string = DEFAULT_CONNECTION_NAME

                                                                      Returns string

                                                                    diff --git a/docs/functions/getDataloaderToken.html b/docs/functions/getDataloaderToken.html new file mode 100644 index 00000000..24a82eb4 --- /dev/null +++ b/docs/functions/getDataloaderToken.html @@ -0,0 +1 @@ +getDataloaderToken | NestJS Mongo - v0.15.0
                                                                    NestJS Mongo - v0.15.0
                                                                      Preparing search index...

                                                                      Function getDataloaderToken

                                                                      • Parameters

                                                                        • model: string
                                                                        • connectionName: string = DEFAULT_CONNECTION_NAME

                                                                        Returns string

                                                                      diff --git a/docs/functions/getEntityManagerToken.html b/docs/functions/getEntityManagerToken.html new file mode 100644 index 00000000..688a4f85 --- /dev/null +++ b/docs/functions/getEntityManagerToken.html @@ -0,0 +1 @@ +getEntityManagerToken | NestJS Mongo - v0.15.0
                                                                      NestJS Mongo - v0.15.0
                                                                        Preparing search index...

                                                                        Function getEntityManagerToken

                                                                        • Parameters

                                                                          • connectionName: string = DEFAULT_CONNECTION_NAME

                                                                          Returns string

                                                                        diff --git a/docs/functions/getEntityRepositoryToken.html b/docs/functions/getEntityRepositoryToken.html new file mode 100644 index 00000000..e3ae6e83 --- /dev/null +++ b/docs/functions/getEntityRepositoryToken.html @@ -0,0 +1 @@ +getEntityRepositoryToken | NestJS Mongo - v0.15.0
                                                                        NestJS Mongo - v0.15.0
                                                                          Preparing search index...

                                                                          Function getEntityRepositoryToken

                                                                          • Parameters

                                                                            • model: string
                                                                            • connectionName: string = DEFAULT_CONNECTION_NAME

                                                                            Returns string

                                                                          diff --git a/docs/functions/getIndexMetadata.html b/docs/functions/getIndexMetadata.html new file mode 100644 index 00000000..895b0271 --- /dev/null +++ b/docs/functions/getIndexMetadata.html @@ -0,0 +1 @@ +getIndexMetadata | NestJS Mongo - v0.15.0
                                                                          NestJS Mongo - v0.15.0
                                                                            Preparing search index...

                                                                            Function getIndexMetadata

                                                                            diff --git a/docs/functions/getIndexMetadatas.html b/docs/functions/getIndexMetadatas.html new file mode 100644 index 00000000..3c3e1dd4 --- /dev/null +++ b/docs/functions/getIndexMetadatas.html @@ -0,0 +1 @@ +getIndexMetadatas | NestJS Mongo - v0.15.0
                                                                            NestJS Mongo - v0.15.0
                                                                              Preparing search index...

                                                                              Function getIndexMetadatas

                                                                              diff --git a/docs/functions/getObjectName.html b/docs/functions/getObjectName.html new file mode 100644 index 00000000..d12ed57e --- /dev/null +++ b/docs/functions/getObjectName.html @@ -0,0 +1 @@ +getObjectName | NestJS Mongo - v0.15.0
                                                                              NestJS Mongo - v0.15.0
                                                                                Preparing search index...

                                                                                Function getObjectName

                                                                                • Parameters

                                                                                  • o: any

                                                                                  Returns string

                                                                                diff --git a/docs/functions/getRelationshipCascadesMetadata.html b/docs/functions/getRelationshipCascadesMetadata.html new file mode 100644 index 00000000..d8308799 --- /dev/null +++ b/docs/functions/getRelationshipCascadesMetadata.html @@ -0,0 +1 @@ +getRelationshipCascadesMetadata | NestJS Mongo - v0.15.0
                                                                                NestJS Mongo - v0.15.0
                                                                                  Preparing search index...

                                                                                  Function getRelationshipCascadesMetadata

                                                                                  diff --git a/docs/functions/getRelationshipMetadata.html b/docs/functions/getRelationshipMetadata.html new file mode 100644 index 00000000..8413777c --- /dev/null +++ b/docs/functions/getRelationshipMetadata.html @@ -0,0 +1,6 @@ +getRelationshipMetadata | NestJS Mongo - v0.15.0
                                                                                  NestJS Mongo - v0.15.0
                                                                                    Preparing search index...

                                                                                    Function getRelationshipMetadata

                                                                                    • Get relationship metadata

                                                                                      +

                                                                                      Type Parameters

                                                                                      Parameters

                                                                                      • target: any

                                                                                        A class constructor

                                                                                        +
                                                                                      • property: string

                                                                                        The property that was set as relationship

                                                                                        +
                                                                                      • Optionalem: EntityManager

                                                                                        The entity manager (only required if the relationship target type is set as a string)

                                                                                        +
                                                                                      • Optionalobj: any

                                                                                        The instance of the entity (only required if the type of the relationship is dynamic)

                                                                                        +

                                                                                      Returns RelationshipMetadata<R>

                                                                                    diff --git a/docs/functions/getRelationshipMetadataList.html b/docs/functions/getRelationshipMetadataList.html new file mode 100644 index 00000000..4f9be0cb --- /dev/null +++ b/docs/functions/getRelationshipMetadataList.html @@ -0,0 +1,2 @@ +getRelationshipMetadataList | NestJS Mongo - v0.15.0
                                                                                    NestJS Mongo - v0.15.0
                                                                                      Preparing search index...

                                                                                      Function getRelationshipMetadataList

                                                                                      diff --git a/docs/functions/getRelationshipsCascadesMetadata.html b/docs/functions/getRelationshipsCascadesMetadata.html new file mode 100644 index 00000000..0c33e4fb --- /dev/null +++ b/docs/functions/getRelationshipsCascadesMetadata.html @@ -0,0 +1 @@ +getRelationshipsCascadesMetadata | NestJS Mongo - v0.15.0
                                                                                      NestJS Mongo - v0.15.0
                                                                                        Preparing search index...

                                                                                        Function getRelationshipsCascadesMetadata

                                                                                        diff --git a/docs/functions/isClass.html b/docs/functions/isClass.html new file mode 100644 index 00000000..81b7a397 --- /dev/null +++ b/docs/functions/isClass.html @@ -0,0 +1 @@ +isClass | NestJS Mongo - v0.15.0
                                                                                        NestJS Mongo - v0.15.0
                                                                                          Preparing search index...

                                                                                          Function isClass

                                                                                          • Parameters

                                                                                            • fn: any

                                                                                            Returns boolean

                                                                                          diff --git a/docs/functions/merge.html b/docs/functions/merge.html new file mode 100644 index 00000000..dc00746a --- /dev/null +++ b/docs/functions/merge.html @@ -0,0 +1,4 @@ +merge | NestJS Mongo - v0.15.0
                                                                                          NestJS Mongo - v0.15.0
                                                                                            Preparing search index...

                                                                                            Function merge

                                                                                            diff --git a/docs/functions/serialize.html b/docs/functions/serialize.html new file mode 100644 index 00000000..ef816015 --- /dev/null +++ b/docs/functions/serialize.html @@ -0,0 +1 @@ +serialize | NestJS Mongo - v0.15.0
                                                                                            NestJS Mongo - v0.15.0
                                                                                              Preparing search index...

                                                                                              Function serialize

                                                                                              diff --git a/docs/functions/setIndexMetadata.html b/docs/functions/setIndexMetadata.html new file mode 100644 index 00000000..d0fbc6a6 --- /dev/null +++ b/docs/functions/setIndexMetadata.html @@ -0,0 +1 @@ +setIndexMetadata | NestJS Mongo - v0.15.0
                                                                                              NestJS Mongo - v0.15.0
                                                                                                Preparing search index...

                                                                                                Function setIndexMetadata

                                                                                                diff --git a/docs/functions/setRelationshipMetadata.html b/docs/functions/setRelationshipMetadata.html new file mode 100644 index 00000000..4e9d3150 --- /dev/null +++ b/docs/functions/setRelationshipMetadata.html @@ -0,0 +1,5 @@ +setRelationshipMetadata | NestJS Mongo - v0.15.0
                                                                                                NestJS Mongo - v0.15.0
                                                                                                  Preparing search index...

                                                                                                  Function setRelationshipMetadataPrivate

                                                                                                  diff --git a/docs/functions/setRelationshipsCascadesMetadata.html b/docs/functions/setRelationshipsCascadesMetadata.html new file mode 100644 index 00000000..cc83a416 --- /dev/null +++ b/docs/functions/setRelationshipsCascadesMetadata.html @@ -0,0 +1 @@ +setRelationshipsCascadesMetadata | NestJS Mongo - v0.15.0
                                                                                                  NestJS Mongo - v0.15.0
                                                                                                    Preparing search index...

                                                                                                    Function setRelationshipsCascadesMetadata

                                                                                                    diff --git a/docs/functions/toJSON.html b/docs/functions/toJSON.html new file mode 100644 index 00000000..600913b1 --- /dev/null +++ b/docs/functions/toJSON.html @@ -0,0 +1 @@ +toJSON | NestJS Mongo - v0.15.0
                                                                                                    NestJS Mongo - v0.15.0
                                                                                                      Preparing search index...

                                                                                                      Function toJSON

                                                                                                      diff --git a/docs/functions/toPlain.html b/docs/functions/toPlain.html new file mode 100644 index 00000000..0f41d8ca --- /dev/null +++ b/docs/functions/toPlain.html @@ -0,0 +1 @@ +toPlain | NestJS Mongo - v0.15.0
                                                                                                      NestJS Mongo - v0.15.0
                                                                                                        Preparing search index...

                                                                                                        Function toPlain

                                                                                                        • Type Parameters

                                                                                                          • T = any

                                                                                                          Parameters

                                                                                                          • data: T

                                                                                                          Returns Record<string, any>

                                                                                                        diff --git a/docs/functions/transformObjectId.html b/docs/functions/transformObjectId.html new file mode 100644 index 00000000..2d901ba8 --- /dev/null +++ b/docs/functions/transformObjectId.html @@ -0,0 +1 @@ +transformObjectId | NestJS Mongo - v0.15.0
                                                                                                        NestJS Mongo - v0.15.0
                                                                                                          Preparing search index...

                                                                                                          Function transformObjectId

                                                                                                          • Parameters

                                                                                                            • type: TransformationType
                                                                                                            • value: string | ObjectId

                                                                                                            Returns undefined | string | ObjectId

                                                                                                          diff --git a/docs/hierarchy.html b/docs/hierarchy.html new file mode 100644 index 00000000..eba4efcd --- /dev/null +++ b/docs/hierarchy.html @@ -0,0 +1 @@ +NestJS Mongo - v0.15.0
                                                                                                          NestJS Mongo - v0.15.0
                                                                                                            Preparing search index...
                                                                                                            diff --git a/docs/index.html b/docs/index.html index aa12ecdd..cd151c35 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,38 +1,16 @@ -NestJS Mongo - v0.13.2
                                                                                                            Options
                                                                                                            All
                                                                                                            • Public
                                                                                                            • Public/Protected
                                                                                                            • All
                                                                                                            Menu

                                                                                                            NestJS Mongo - v0.13.2

                                                                                                            - -

                                                                                                            nestjs-mongo

                                                                                                            -
                                                                                                            -

                                                                                                            NestJS Mongo is a module that provide a little orm. Build with typescript and the nodejs mongodb driver

                                                                                                            +NestJS Mongo - v0.15.0
                                                                                                            NestJS Mongo - v0.15.0
                                                                                                              Preparing search index...

                                                                                                              NestJS Mongo - v0.15.0

                                                                                                              nestjs-mongo

                                                                                                              NestJS Mongo is a module that provide a little orm. Build with typescript and the nodejs mongodb driver

                                                                                                              +
                                                                                                              npm install nestjs-mongo
                                                                                                              # or unig yarn
                                                                                                              yarn add nestjs-mongo +
                                                                                                              - -

                                                                                                              Install FROM NPM

                                                                                                              - -
                                                                                                              npm install nestjs-mongo
                                                                                                              # or unig yarn
                                                                                                              yarn add nestjs-mongo -
                                                                                                              +

                                                                                                              An example of nestjs module that import the nestjs-mongo

                                                                                                              +
                                                                                                              // module.ts
                                                                                                              import { Module } from '@nestjs/common';
                                                                                                              import { MongoModule } from 'nestjs-mongo';

                                                                                                              @Module({
                                                                                                              imports: [
                                                                                                              MongoModule.forRootAsync({
                                                                                                              imports: [],
                                                                                                              useFactory: (config: ConfigService) => ({
                                                                                                              uri: config.mongoUri
                                                                                                              }),
                                                                                                              inject: [MyConfigService]
                                                                                                              })
                                                                                                              ]
                                                                                                              })
                                                                                                              export class MyModule {} +
                                                                                                              - -

                                                                                                              Usage

                                                                                                              -
                                                                                                              -

                                                                                                              An example of nestjs module that import the nestjs-mongo

                                                                                                              -
                                                                                                              // module.ts
                                                                                                              import { Module } from '@nestjs/common';
                                                                                                              import { MongoModule } from 'nestjs-mongo';

                                                                                                              @Module({
                                                                                                              imports: [
                                                                                                              MongoModule.forRootAsync({
                                                                                                              imports: [],
                                                                                                              useFactory: (config: ConfigService) => ({
                                                                                                              uri: config.mongoUri
                                                                                                              }),
                                                                                                              inject: [MyConfigService]
                                                                                                              })
                                                                                                              ]
                                                                                                              })
                                                                                                              export class MyModule {} -

                                                                                                              ....More coming soon.

                                                                                                              - - -

                                                                                                              Documentation

                                                                                                              -
                                                                                                              -

                                                                                                              A typedoc is generated and available on github https://pop-code.github.io/nestjs-mongo

                                                                                                              - - -

                                                                                                              CHANGELOG

                                                                                                              - - - -

                                                                                                              TODO

                                                                                                              -
                                                                                                              -

                                                                                                              Legend

                                                                                                              • Constructor
                                                                                                              • Property
                                                                                                              • Method
                                                                                                              • Property
                                                                                                              • Method
                                                                                                              • Inherited constructor
                                                                                                              • Inherited method
                                                                                                              • Protected property
                                                                                                              • Protected method
                                                                                                              • Private property
                                                                                                              • Static method

                                                                                                              Settings

                                                                                                              Theme

                                                                                                              \ No newline at end of file +
                                                                                                              diff --git a/docs/interfaces/BaseEntityInterface.html b/docs/interfaces/BaseEntityInterface.html new file mode 100644 index 00000000..67cdea2c --- /dev/null +++ b/docs/interfaces/BaseEntityInterface.html @@ -0,0 +1,8 @@ +BaseEntityInterface | NestJS Mongo - v0.15.0
                                                                                                              NestJS Mongo - v0.15.0
                                                                                                                Preparing search index...

                                                                                                                Interface BaseEntityInterface

                                                                                                                interface BaseEntityInterface {
                                                                                                                    createdAt: Date;
                                                                                                                    history?: HistoryActions;
                                                                                                                    serialize: () => Record<string, any>;
                                                                                                                    toJSON: () => Record<string, any>;
                                                                                                                    updatedAt?: Date;
                                                                                                                }

                                                                                                                Hierarchy (View Summary)

                                                                                                                Index

                                                                                                                Properties

                                                                                                                createdAt: Date
                                                                                                                history?: HistoryActions
                                                                                                                serialize: () => Record<string, any>

                                                                                                                Transform a class instance to plain object (ObjectIds become string)

                                                                                                                +
                                                                                                                toJSON: () => Record<string, any>

                                                                                                                Transform a class instance to json object (ObjectIds are not touched)

                                                                                                                +
                                                                                                                updatedAt?: Date
                                                                                                                diff --git a/docs/interfaces/BaseRelationshipMetadata.html b/docs/interfaces/BaseRelationshipMetadata.html index 3e8601c7..0994a4a1 100644 --- a/docs/interfaces/BaseRelationshipMetadata.html +++ b/docs/interfaces/BaseRelationshipMetadata.html @@ -1,3 +1,6 @@ -BaseRelationshipMetadata | NestJS Mongo - v0.13.2
                                                                                                                Options
                                                                                                                All
                                                                                                                • Public
                                                                                                                • Public/Protected
                                                                                                                • All
                                                                                                                Menu

                                                                                                                Interface BaseRelationshipMetadata

                                                                                                                -

                                                                                                                The abstract relationship metadata

                                                                                                                -

                                                                                                                Hierarchy

                                                                                                                Index

                                                                                                                Properties

                                                                                                                cascade?: DELETE[]
                                                                                                                index?: { description?: IndexDescription & CreateIndexesOptions }

                                                                                                                Type declaration

                                                                                                                • Optional description?: IndexDescription & CreateIndexesOptions
                                                                                                                isArray?: boolean
                                                                                                                possibleTypes?: PossibleTypes

                                                                                                                Legend

                                                                                                                • Constructor
                                                                                                                • Property
                                                                                                                • Method
                                                                                                                • Property
                                                                                                                • Method
                                                                                                                • Inherited constructor
                                                                                                                • Inherited method
                                                                                                                • Protected property
                                                                                                                • Protected method
                                                                                                                • Private property
                                                                                                                • Static method

                                                                                                                Settings

                                                                                                                Theme

                                                                                                                \ No newline at end of file +BaseRelationshipMetadata | NestJS Mongo - v0.15.0
                                                                                                                NestJS Mongo - v0.15.0
                                                                                                                  Preparing search index...

                                                                                                                  Interface BaseRelationshipMetadata

                                                                                                                  The abstract relationship metadata

                                                                                                                  +
                                                                                                                  interface BaseRelationshipMetadata {
                                                                                                                      cascade?: DELETE[];
                                                                                                                      index?: { description?: IndexDescription & CreateIndexesOptions };
                                                                                                                      isArray?: boolean;
                                                                                                                      possibleTypes?: PossibleTypes;
                                                                                                                  }

                                                                                                                  Hierarchy (View Summary)

                                                                                                                  Index

                                                                                                                  Properties

                                                                                                                  cascade?: DELETE[]
                                                                                                                  index?: { description?: IndexDescription & CreateIndexesOptions }
                                                                                                                  isArray?: boolean
                                                                                                                  possibleTypes?: PossibleTypes
                                                                                                                  diff --git a/docs/interfaces/ChildRelationshipMetadata.html b/docs/interfaces/ChildRelationshipMetadata.html index 5de16ca6..09ef7fec 100644 --- a/docs/interfaces/ChildRelationshipMetadata.html +++ b/docs/interfaces/ChildRelationshipMetadata.html @@ -1,3 +1,4 @@ -ChildRelationshipMetadata | NestJS Mongo - v0.13.2
                                                                                                                  Options
                                                                                                                  All
                                                                                                                  • Public
                                                                                                                  • Public/Protected
                                                                                                                  • All
                                                                                                                  Menu

                                                                                                                  Interface ChildRelationshipMetadata

                                                                                                                  -

                                                                                                                  Define the PossibleTypes of the relationship linked to a property

                                                                                                                  -

                                                                                                                  Hierarchy

                                                                                                                  • ChildRelationshipMetadata

                                                                                                                  Index

                                                                                                                  Properties

                                                                                                                  possibleTypes?: PossibleTypes
                                                                                                                  property: string

                                                                                                                  Legend

                                                                                                                  • Constructor
                                                                                                                  • Property
                                                                                                                  • Method
                                                                                                                  • Property
                                                                                                                  • Method
                                                                                                                  • Inherited constructor
                                                                                                                  • Inherited method
                                                                                                                  • Protected property
                                                                                                                  • Protected method
                                                                                                                  • Private property
                                                                                                                  • Static method

                                                                                                                  Settings

                                                                                                                  Theme

                                                                                                                  \ No newline at end of file +ChildRelationshipMetadata | NestJS Mongo - v0.15.0
                                                                                                                  NestJS Mongo - v0.15.0
                                                                                                                    Preparing search index...

                                                                                                                    Interface ChildRelationshipMetadata

                                                                                                                    Define the PossibleTypes of the relationship linked to a property

                                                                                                                    +
                                                                                                                    interface ChildRelationshipMetadata {
                                                                                                                        possibleTypes?: PossibleTypes;
                                                                                                                        property: string;
                                                                                                                    }
                                                                                                                    Index

                                                                                                                    Properties

                                                                                                                    possibleTypes?: PossibleTypes
                                                                                                                    property: string
                                                                                                                    diff --git a/docs/interfaces/EntityInterface.html b/docs/interfaces/EntityInterface.html index cf2a36f9..366a1629 100644 --- a/docs/interfaces/EntityInterface.html +++ b/docs/interfaces/EntityInterface.html @@ -1,5 +1,9 @@ -EntityInterface | NestJS Mongo - v0.13.2
                                                                                                                    Options
                                                                                                                    All
                                                                                                                    • Public
                                                                                                                    • Public/Protected
                                                                                                                    • All
                                                                                                                    Menu

                                                                                                                    Interface EntityInterface

                                                                                                                    Hierarchy

                                                                                                                    Implemented by

                                                                                                                    Index

                                                                                                                    Properties

                                                                                                                    _id?: ObjectId
                                                                                                                    createdAt: Date
                                                                                                                    history?: HistoryActions
                                                                                                                    updatedAt?: Date

                                                                                                                    Methods

                                                                                                                    • serialize(): Record<string, any>
                                                                                                                    • toJSON(): Record<string, any>

                                                                                                                    Legend

                                                                                                                    • Constructor
                                                                                                                    • Property
                                                                                                                    • Method
                                                                                                                    • Property
                                                                                                                    • Method
                                                                                                                    • Inherited constructor
                                                                                                                    • Inherited method
                                                                                                                    • Protected property
                                                                                                                    • Protected method
                                                                                                                    • Private property
                                                                                                                    • Static method

                                                                                                                    Settings

                                                                                                                    Theme

                                                                                                                    \ No newline at end of file +EntityInterface | NestJS Mongo - v0.15.0
                                                                                                                    NestJS Mongo - v0.15.0
                                                                                                                      Preparing search index...

                                                                                                                      Interface EntityInterface

                                                                                                                      interface EntityInterface {
                                                                                                                          _id: ObjectId;
                                                                                                                          createdAt: Date;
                                                                                                                          history?: HistoryActions;
                                                                                                                          serialize: () => Record<string, any>;
                                                                                                                          toJSON: () => Record<string, any>;
                                                                                                                          updatedAt?: Date;
                                                                                                                      }

                                                                                                                      Hierarchy (View Summary)

                                                                                                                      Implemented by

                                                                                                                      Index

                                                                                                                      Properties

                                                                                                                      _id: ObjectId
                                                                                                                      createdAt: Date
                                                                                                                      history?: HistoryActions
                                                                                                                      serialize: () => Record<string, any>

                                                                                                                      Transform a class instance to plain object (ObjectIds become string)

                                                                                                                      +
                                                                                                                      toJSON: () => Record<string, any>

                                                                                                                      Transform a class instance to json object (ObjectIds are not touched)

                                                                                                                      +
                                                                                                                      updatedAt?: Date
                                                                                                                      diff --git a/docs/interfaces/IndexMetadata.html b/docs/interfaces/IndexMetadata.html index 1a99e826..ccdcaa03 100644 --- a/docs/interfaces/IndexMetadata.html +++ b/docs/interfaces/IndexMetadata.html @@ -1 +1,3 @@ -IndexMetadata | NestJS Mongo - v0.13.2
                                                                                                                      Options
                                                                                                                      All
                                                                                                                      • Public
                                                                                                                      • Public/Protected
                                                                                                                      • All
                                                                                                                      Menu

                                                                                                                      Hierarchy

                                                                                                                      • IndexMetadata

                                                                                                                      Index

                                                                                                                      Properties

                                                                                                                      description?: Partial<IndexDescription> & CreateIndexesOptions
                                                                                                                      property: string

                                                                                                                      Legend

                                                                                                                      • Constructor
                                                                                                                      • Property
                                                                                                                      • Method
                                                                                                                      • Property
                                                                                                                      • Method
                                                                                                                      • Inherited constructor
                                                                                                                      • Inherited method
                                                                                                                      • Protected property
                                                                                                                      • Protected method
                                                                                                                      • Private property
                                                                                                                      • Static method

                                                                                                                      Settings

                                                                                                                      Theme

                                                                                                                      \ No newline at end of file +IndexMetadata | NestJS Mongo - v0.15.0
                                                                                                                      NestJS Mongo - v0.15.0
                                                                                                                        Preparing search index...

                                                                                                                        Interface IndexMetadata

                                                                                                                        interface IndexMetadata {
                                                                                                                            description?: Partial<IndexDescription> & CreateIndexesOptions;
                                                                                                                            property: string;
                                                                                                                        }
                                                                                                                        Index

                                                                                                                        Properties

                                                                                                                        Properties

                                                                                                                        description?: Partial<IndexDescription> & CreateIndexesOptions
                                                                                                                        property: string
                                                                                                                        diff --git a/docs/interfaces/IsValidRelationshipOptions.html b/docs/interfaces/IsValidRelationshipOptions.html index 907b2a62..4dec4638 100644 --- a/docs/interfaces/IsValidRelationshipOptions.html +++ b/docs/interfaces/IsValidRelationshipOptions.html @@ -1,10 +1,12 @@ -IsValidRelationshipOptions | NestJS Mongo - v0.13.2
                                                                                                                        Options
                                                                                                                        All
                                                                                                                        • Public
                                                                                                                        • Public/Protected
                                                                                                                        • All
                                                                                                                        Menu

                                                                                                                        Interface IsValidRelationshipOptions

                                                                                                                        Hierarchy

                                                                                                                        • ValidationOptions
                                                                                                                          • IsValidRelationshipOptions

                                                                                                                        Index

                                                                                                                        Properties

                                                                                                                        always?: boolean
                                                                                                                        -

                                                                                                                        Indicates if validation must be performed always, no matter of validation groups used.

                                                                                                                        -
                                                                                                                        context?: any
                                                                                                                        each?: boolean
                                                                                                                        -

                                                                                                                        Specifies if validated value is an array and each of its items must be validated.

                                                                                                                        -
                                                                                                                        groups?: string[]
                                                                                                                        -

                                                                                                                        Validation groups used for this validation.

                                                                                                                        -
                                                                                                                        message?: string | ((validationArguments: ValidationArguments) => string)
                                                                                                                        -

                                                                                                                        Error message to be used on validation fail. +IsValidRelationshipOptions | NestJS Mongo - v0.15.0

                                                                                                                        NestJS Mongo - v0.15.0
                                                                                                                          Preparing search index...

                                                                                                                          Interface IsValidRelationshipOptions

                                                                                                                          interface IsValidRelationshipOptions {
                                                                                                                              always?: boolean;
                                                                                                                              context?: any;
                                                                                                                              each?: boolean;
                                                                                                                              groups?: string[];
                                                                                                                              message?: string | ((validationArguments: ValidationArguments) => string);
                                                                                                                              with?: WithValidRelationship;
                                                                                                                          }

                                                                                                                          Hierarchy

                                                                                                                          • ValidationOptions
                                                                                                                            • IsValidRelationshipOptions
                                                                                                                          Index

                                                                                                                          Properties

                                                                                                                          always?: boolean

                                                                                                                          Indicates if validation must be performed always, no matter of validation groups used.

                                                                                                                          +
                                                                                                                          context?: any
                                                                                                                          each?: boolean

                                                                                                                          Specifies if validated value is an array and each of its items must be validated.

                                                                                                                          +
                                                                                                                          groups?: string[]

                                                                                                                          Validation groups used for this validation.

                                                                                                                          +
                                                                                                                          message?: string | ((validationArguments: ValidationArguments) => string)

                                                                                                                          Error message to be used on validation fail. Message can be either string or a function that returns a string.

                                                                                                                          -

                                                                                                                          Legend

                                                                                                                          • Constructor
                                                                                                                          • Property
                                                                                                                          • Method
                                                                                                                          • Property
                                                                                                                          • Method
                                                                                                                          • Inherited constructor
                                                                                                                          • Inherited method
                                                                                                                          • Protected property
                                                                                                                          • Protected method
                                                                                                                          • Private property
                                                                                                                          • Static method

                                                                                                                          Settings

                                                                                                                          Theme

                                                                                                                          \ No newline at end of file +
                                                                                                                          diff --git a/docs/interfaces/IsValidRelationshipValidationArguments.html b/docs/interfaces/IsValidRelationshipValidationArguments.html index a0a3718f..cc4296e7 100644 --- a/docs/interfaces/IsValidRelationshipValidationArguments.html +++ b/docs/interfaces/IsValidRelationshipValidationArguments.html @@ -1,9 +1,11 @@ -IsValidRelationshipValidationArguments | NestJS Mongo - v0.13.2
                                                                                                                          Options
                                                                                                                          All
                                                                                                                          • Public
                                                                                                                          • Public/Protected
                                                                                                                          • All
                                                                                                                          Menu

                                                                                                                          Interface IsValidRelationshipValidationArguments

                                                                                                                          Hierarchy

                                                                                                                          • ValidationArguments
                                                                                                                            • IsValidRelationshipValidationArguments

                                                                                                                          Index

                                                                                                                          Properties

                                                                                                                          constraints: [WithRelationshipTest?]
                                                                                                                          object: object
                                                                                                                          -

                                                                                                                          Object that is being validated.

                                                                                                                          -
                                                                                                                          property: string
                                                                                                                          -

                                                                                                                          Name of the object's property being validated.

                                                                                                                          -
                                                                                                                          targetName: string
                                                                                                                          -

                                                                                                                          Name of the target that is being validated.

                                                                                                                          -
                                                                                                                          value: any
                                                                                                                          -

                                                                                                                          Validating value.

                                                                                                                          -

                                                                                                                          Legend

                                                                                                                          • Constructor
                                                                                                                          • Property
                                                                                                                          • Method
                                                                                                                          • Property
                                                                                                                          • Method
                                                                                                                          • Inherited constructor
                                                                                                                          • Inherited method
                                                                                                                          • Protected property
                                                                                                                          • Protected method
                                                                                                                          • Private property
                                                                                                                          • Static method

                                                                                                                          Settings

                                                                                                                          Theme

                                                                                                                          \ No newline at end of file +IsValidRelationshipValidationArguments | NestJS Mongo - v0.15.0
                                                                                                                          NestJS Mongo - v0.15.0
                                                                                                                            Preparing search index...

                                                                                                                            Interface IsValidRelationshipValidationArguments

                                                                                                                            interface IsValidRelationshipValidationArguments {
                                                                                                                                constraints: [WithRelationshipTest?];
                                                                                                                                object: object;
                                                                                                                                property: string;
                                                                                                                                targetName: string;
                                                                                                                                value: any;
                                                                                                                            }

                                                                                                                            Hierarchy

                                                                                                                            • ValidationArguments
                                                                                                                              • IsValidRelationshipValidationArguments
                                                                                                                            Index

                                                                                                                            Properties

                                                                                                                            constraints: [WithRelationshipTest?]

                                                                                                                            Constraints set by this validation type.

                                                                                                                            +
                                                                                                                            object: object

                                                                                                                            Object that is being validated.

                                                                                                                            +
                                                                                                                            property: string

                                                                                                                            Name of the object's property being validated.

                                                                                                                            +
                                                                                                                            targetName: string

                                                                                                                            Name of the target that is being validated.

                                                                                                                            +
                                                                                                                            value: any

                                                                                                                            Validating value.

                                                                                                                            +
                                                                                                                            diff --git a/docs/interfaces/MongoFeatureModelOptions.html b/docs/interfaces/MongoFeatureModelOptions.html index b663d261..f3d11abd 100644 --- a/docs/interfaces/MongoFeatureModelOptions.html +++ b/docs/interfaces/MongoFeatureModelOptions.html @@ -1 +1,3 @@ -MongoFeatureModelOptions | NestJS Mongo - v0.13.2
                                                                                                                            Options
                                                                                                                            All
                                                                                                                            • Public
                                                                                                                            • Public/Protected
                                                                                                                            • All
                                                                                                                            Menu

                                                                                                                            Interface MongoFeatureModelOptions

                                                                                                                            Hierarchy

                                                                                                                            • MongoFeatureModelOptions

                                                                                                                            Index

                                                                                                                            Properties

                                                                                                                            Properties

                                                                                                                            model: Type<EntityInterface>
                                                                                                                            repository?: Type<EntityRepository<EntityInterface>>

                                                                                                                            Legend

                                                                                                                            • Constructor
                                                                                                                            • Property
                                                                                                                            • Method
                                                                                                                            • Property
                                                                                                                            • Method
                                                                                                                            • Inherited constructor
                                                                                                                            • Inherited method
                                                                                                                            • Protected property
                                                                                                                            • Protected method
                                                                                                                            • Private property
                                                                                                                            • Static method

                                                                                                                            Settings

                                                                                                                            Theme

                                                                                                                            \ No newline at end of file +MongoFeatureModelOptions | NestJS Mongo - v0.15.0
                                                                                                                            NestJS Mongo - v0.15.0
                                                                                                                              Preparing search index...

                                                                                                                              Interface MongoFeatureModelOptions<Model, Repository>

                                                                                                                              interface MongoFeatureModelOptions<
                                                                                                                                  Model extends EntityInterface,
                                                                                                                                  Repository extends EntityRepository<Model>,
                                                                                                                              > {
                                                                                                                                  model: Type<Model>;
                                                                                                                                  repository?: Type<Repository>;
                                                                                                                              }

                                                                                                                              Type Parameters

                                                                                                                              Index

                                                                                                                              Properties

                                                                                                                              Properties

                                                                                                                              model: Type<Model>
                                                                                                                              repository?: Type<Repository>
                                                                                                                              diff --git a/docs/interfaces/MongoFeatureOptions.html b/docs/interfaces/MongoFeatureOptions.html index f90692da..5c09c2a4 100644 --- a/docs/interfaces/MongoFeatureOptions.html +++ b/docs/interfaces/MongoFeatureOptions.html @@ -1 +1,3 @@ -MongoFeatureOptions | NestJS Mongo - v0.13.2
                                                                                                                              Options
                                                                                                                              All
                                                                                                                              • Public
                                                                                                                              • Public/Protected
                                                                                                                              • All
                                                                                                                              Menu

                                                                                                                              Interface MongoFeatureOptions

                                                                                                                              Hierarchy

                                                                                                                              • MongoFeatureOptions

                                                                                                                              Index

                                                                                                                              Properties

                                                                                                                              connectionName?: string

                                                                                                                              Legend

                                                                                                                              • Constructor
                                                                                                                              • Property
                                                                                                                              • Method
                                                                                                                              • Property
                                                                                                                              • Method
                                                                                                                              • Inherited constructor
                                                                                                                              • Inherited method
                                                                                                                              • Protected property
                                                                                                                              • Protected method
                                                                                                                              • Private property
                                                                                                                              • Static method

                                                                                                                              Settings

                                                                                                                              Theme

                                                                                                                              \ No newline at end of file +MongoFeatureOptions | NestJS Mongo - v0.15.0
                                                                                                                              NestJS Mongo - v0.15.0
                                                                                                                                Preparing search index...

                                                                                                                                Interface MongoFeatureOptions

                                                                                                                                interface MongoFeatureOptions {
                                                                                                                                    connectionName?: string;
                                                                                                                                    models: (Type<EntityInterface> | MongoFeatureModelOptions<any, any>)[];
                                                                                                                                }
                                                                                                                                Index

                                                                                                                                Properties

                                                                                                                                Properties

                                                                                                                                connectionName?: string
                                                                                                                                models: (Type<EntityInterface> | MongoFeatureModelOptions<any, any>)[]
                                                                                                                                diff --git a/docs/interfaces/MongoModuleAsyncOptions.html b/docs/interfaces/MongoModuleAsyncOptions.html index 706641b7..3fd0930f 100644 --- a/docs/interfaces/MongoModuleAsyncOptions.html +++ b/docs/interfaces/MongoModuleAsyncOptions.html @@ -1,4 +1,7 @@ -MongoModuleAsyncOptions | NestJS Mongo - v0.13.2
                                                                                                                                Options
                                                                                                                                All
                                                                                                                                • Public
                                                                                                                                • Public/Protected
                                                                                                                                • All
                                                                                                                                Menu

                                                                                                                                Interface MongoModuleAsyncOptions

                                                                                                                                Hierarchy

                                                                                                                                • Pick<ModuleMetadata, "imports">
                                                                                                                                  • MongoModuleAsyncOptions

                                                                                                                                Index

                                                                                                                                Properties

                                                                                                                                connectionName?: string
                                                                                                                                imports?: (Type<any> | DynamicModule | Promise<DynamicModule> | ForwardReference<any>)[]
                                                                                                                                -

                                                                                                                                Optional list of imported modules that export the providers which are +MongoModuleAsyncOptions | NestJS Mongo - v0.15.0

                                                                                                                                NestJS Mongo - v0.15.0
                                                                                                                                  Preparing search index...

                                                                                                                                  Interface MongoModuleAsyncOptions

                                                                                                                                  interface MongoModuleAsyncOptions {
                                                                                                                                      connectionName?: string;
                                                                                                                                      imports?: (
                                                                                                                                          | Type<any>
                                                                                                                                          | DynamicModule
                                                                                                                                          | Promise<DynamicModule>
                                                                                                                                          | ForwardReference<any>
                                                                                                                                      )[];
                                                                                                                                      inject?: any[];
                                                                                                                                      useFactory: (
                                                                                                                                          ...args: any[],
                                                                                                                                      ) => MongoModuleOptions | Promise<MongoModuleOptions>;
                                                                                                                                  }

                                                                                                                                  Hierarchy

                                                                                                                                  • Pick<ModuleMetadata, "imports">
                                                                                                                                    • MongoModuleAsyncOptions
                                                                                                                                  Index

                                                                                                                                  Properties

                                                                                                                                  connectionName?: string
                                                                                                                                  imports?: (
                                                                                                                                      | Type<any>
                                                                                                                                      | DynamicModule
                                                                                                                                      | Promise<DynamicModule>
                                                                                                                                      | ForwardReference<any>
                                                                                                                                  )[]

                                                                                                                                  Optional list of imported modules that export the providers which are required in this module.

                                                                                                                                  -
                                                                                                                                  inject?: any[]

                                                                                                                                  Methods

                                                                                                                                  Legend

                                                                                                                                  • Constructor
                                                                                                                                  • Property
                                                                                                                                  • Method
                                                                                                                                  • Property
                                                                                                                                  • Method
                                                                                                                                  • Inherited constructor
                                                                                                                                  • Inherited method
                                                                                                                                  • Protected property
                                                                                                                                  • Protected method
                                                                                                                                  • Private property
                                                                                                                                  • Static method

                                                                                                                                  Settings

                                                                                                                                  Theme

                                                                                                                                  \ No newline at end of file +
                                                                                                                                  inject?: any[]
                                                                                                                                  useFactory: (...args: any[]) => MongoModuleOptions | Promise<MongoModuleOptions>
                                                                                                                                  diff --git a/docs/interfaces/MongoModuleOptions.html b/docs/interfaces/MongoModuleOptions.html index 870ef12a..f6d83d77 100644 --- a/docs/interfaces/MongoModuleOptions.html +++ b/docs/interfaces/MongoModuleOptions.html @@ -1,101 +1,182 @@ -MongoModuleOptions | NestJS Mongo - v0.13.2
                                                                                                                                  Options
                                                                                                                                  All
                                                                                                                                  • Public
                                                                                                                                  • Public/Protected
                                                                                                                                  • All
                                                                                                                                  Menu

                                                                                                                                  Interface MongoModuleOptions

                                                                                                                                  Hierarchy

                                                                                                                                  • MongoClientOptions
                                                                                                                                    • MongoModuleOptions

                                                                                                                                  Index

                                                                                                                                  Properties

                                                                                                                                  ALPNProtocols?: string[] | Uint8Array | Uint8Array[]
                                                                                                                                  -

                                                                                                                                  An array of strings or a Buffer naming possible ALPN protocols. +MongoModuleOptions | NestJS Mongo - v0.15.0

                                                                                                                                  NestJS Mongo - v0.15.0
                                                                                                                                    Preparing search index...

                                                                                                                                    Interface MongoModuleOptions

                                                                                                                                    interface MongoModuleOptions {
                                                                                                                                        allowPartialTrustChain?: boolean;
                                                                                                                                        ALPNProtocols?:
                                                                                                                                            | string[]
                                                                                                                                            | Uint8Array<ArrayBufferLike>
                                                                                                                                            | Uint8Array<ArrayBufferLike>[];
                                                                                                                                        appName?: string;
                                                                                                                                        auth?: Auth;
                                                                                                                                        authMechanism?: AuthMechanism;
                                                                                                                                        authMechanismProperties?: AuthMechanismProperties;
                                                                                                                                        authSource?: string;
                                                                                                                                        autoEncryption?: AutoEncryptionOptions;
                                                                                                                                        autoSelectFamily?: boolean;
                                                                                                                                        autoSelectFamilyAttemptTimeout?: number;
                                                                                                                                        bsonRegExp?: boolean;
                                                                                                                                        ca?:
                                                                                                                                            | string
                                                                                                                                            | Buffer<ArrayBufferLike>
                                                                                                                                            | (string | Buffer<ArrayBufferLike>)[];
                                                                                                                                        cert?:
                                                                                                                                            | string
                                                                                                                                            | Buffer<ArrayBufferLike>
                                                                                                                                            | (string | Buffer<ArrayBufferLike>)[];
                                                                                                                                        checkKeys?: boolean;
                                                                                                                                        checkServerIdentity?: (
                                                                                                                                            hostname: string,
                                                                                                                                            cert: PeerCertificate,
                                                                                                                                        ) => undefined | Error;
                                                                                                                                        ciphers?: string;
                                                                                                                                        compressors?: string | ("none" | "zlib" | "snappy" | "zstd")[];
                                                                                                                                        connectTimeoutMS?: number;
                                                                                                                                        crl?:
                                                                                                                                            | string
                                                                                                                                            | Buffer<ArrayBufferLike>
                                                                                                                                            | (string | Buffer<ArrayBufferLike>)[];
                                                                                                                                        directConnection?: boolean;
                                                                                                                                        driverInfo?: DriverInfo;
                                                                                                                                        ecdhCurve?: string;
                                                                                                                                        enableUtf8Validation?: boolean;
                                                                                                                                        exceptionFactory?: ExceptionFactory;
                                                                                                                                        family?: number;
                                                                                                                                        fieldsAsRaw?: Document;
                                                                                                                                        forceServerObjectId?: boolean;
                                                                                                                                        heartbeatFrequencyMS?: number;
                                                                                                                                        hints?: number;
                                                                                                                                        ignoreUndefined?: boolean;
                                                                                                                                        journal?: boolean;
                                                                                                                                        keepAliveInitialDelay?: number;
                                                                                                                                        key?:
                                                                                                                                            | string
                                                                                                                                            | Buffer<ArrayBufferLike>
                                                                                                                                            | (string | Buffer<ArrayBufferLike> | KeyObject)[];
                                                                                                                                        loadBalanced?: boolean;
                                                                                                                                        localAddress?: string;
                                                                                                                                        localPort?: number;
                                                                                                                                        localThresholdMS?: number;
                                                                                                                                        lookup?: LookupFunction;
                                                                                                                                        maxConnecting?: number;
                                                                                                                                        maxIdleTimeMS?: number;
                                                                                                                                        maxPoolSize?: number;
                                                                                                                                        maxStalenessSeconds?: number;
                                                                                                                                        minDHSize?: number;
                                                                                                                                        minHeartbeatFrequencyMS?: number;
                                                                                                                                        minPoolSize?: number;
                                                                                                                                        mongodbLogComponentSeverities?: LogComponentSeveritiesClientOptions;
                                                                                                                                        mongodbLogMaxDocumentLength?: number;
                                                                                                                                        mongodbLogPath?: "stdout" | "stderr" | MongoDBLogWritable;
                                                                                                                                        monitorCommands?: boolean;
                                                                                                                                        noDelay?: boolean;
                                                                                                                                        passphrase?: string;
                                                                                                                                        pfx?:
                                                                                                                                            | string
                                                                                                                                            | Buffer<ArrayBufferLike>
                                                                                                                                            | (string | Buffer<ArrayBufferLike> | PxfObject)[];
                                                                                                                                        pkFactory?: PkFactory;
                                                                                                                                        promoteBuffers?: boolean;
                                                                                                                                        promoteLongs?: boolean;
                                                                                                                                        promoteValues?: boolean;
                                                                                                                                        proxyHost?: string;
                                                                                                                                        proxyPassword?: string;
                                                                                                                                        proxyPort?: number;
                                                                                                                                        proxyUsername?: string;
                                                                                                                                        raw?: boolean;
                                                                                                                                        readConcern?: ReadConcernLike;
                                                                                                                                        readConcernLevel?: ReadConcernLevel;
                                                                                                                                        readPreference?: ReadPreference | ReadPreferenceMode;
                                                                                                                                        readPreferenceTags?: TagSet[];
                                                                                                                                        rejectUnauthorized?: boolean;
                                                                                                                                        replicaSet?: string;
                                                                                                                                        retryReads?: boolean;
                                                                                                                                        retryWrites?: boolean;
                                                                                                                                        secureContext?: SecureContext;
                                                                                                                                        secureProtocol?: string;
                                                                                                                                        serializeFunctions?: boolean;
                                                                                                                                        serverApi?: "1" | ServerApi;
                                                                                                                                        serverMonitoringMode?: ServerMonitoringMode;
                                                                                                                                        servername?: string;
                                                                                                                                        serverSelectionTimeoutMS?: number;
                                                                                                                                        session?: Buffer<ArrayBufferLike>;
                                                                                                                                        socketTimeoutMS?: number;
                                                                                                                                        srvMaxHosts?: number;
                                                                                                                                        srvServiceName?: string;
                                                                                                                                        ssl?: boolean;
                                                                                                                                        timeoutMS?: number;
                                                                                                                                        tls?: boolean;
                                                                                                                                        tlsAllowInvalidCertificates?: boolean;
                                                                                                                                        tlsAllowInvalidHostnames?: boolean;
                                                                                                                                        tlsCAFile?: string;
                                                                                                                                        tlsCertificateKeyFile?: string;
                                                                                                                                        tlsCertificateKeyFilePassword?: string;
                                                                                                                                        tlsCRLFile?: string;
                                                                                                                                        tlsInsecure?: boolean;
                                                                                                                                        uri: string;
                                                                                                                                        useBigInt64?: boolean;
                                                                                                                                        w?: W;
                                                                                                                                        waitQueueTimeoutMS?: number;
                                                                                                                                        writeConcern?: WriteConcern | WriteConcernSettings;
                                                                                                                                        wtimeoutMS?: number;
                                                                                                                                        zlibCompressionLevel?: 0 | 2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
                                                                                                                                    }

                                                                                                                                    Hierarchy

                                                                                                                                    • MongoClientOptions
                                                                                                                                      • MongoModuleOptions
                                                                                                                                    Index

                                                                                                                                    Properties

                                                                                                                                    allowPartialTrustChain? +ALPNProtocols? +appName? +auth? +authMechanism? +authMechanismProperties? +authSource? +autoEncryption? +autoSelectFamily? +autoSelectFamilyAttemptTimeout? +bsonRegExp? +ca? +cert? +checkKeys? +checkServerIdentity? +ciphers? +compressors? +connectTimeoutMS? +crl? +directConnection? +driverInfo? +ecdhCurve? +enableUtf8Validation? +exceptionFactory? +family? +fieldsAsRaw? +forceServerObjectId? +heartbeatFrequencyMS? +hints? +ignoreUndefined? +journal? +keepAliveInitialDelay? +key? +loadBalanced? +localAddress? +localPort? +localThresholdMS? +lookup? +maxConnecting? +maxIdleTimeMS? +maxPoolSize? +maxStalenessSeconds? +minDHSize? +minHeartbeatFrequencyMS? +minPoolSize? +mongodbLogComponentSeverities? +mongodbLogMaxDocumentLength? +mongodbLogPath? +monitorCommands? +noDelay? +passphrase? +pfx? +pkFactory? +promoteBuffers? +promoteLongs? +promoteValues? +proxyHost? +proxyPassword? +proxyPort? +proxyUsername? +raw? +readConcern? +readConcernLevel? +readPreference? +readPreferenceTags? +rejectUnauthorized? +replicaSet? +retryReads? +retryWrites? +secureContext? +secureProtocol? +serializeFunctions? +serverApi? +serverMonitoringMode? +servername? +serverSelectionTimeoutMS? +session? +socketTimeoutMS? +srvMaxHosts? +srvServiceName? +ssl? +timeoutMS? +tls? +tlsAllowInvalidCertificates? +tlsAllowInvalidHostnames? +tlsCAFile? +tlsCertificateKeyFile? +tlsCertificateKeyFilePassword? +tlsCRLFile? +tlsInsecure? +uri +useBigInt64? +w? +waitQueueTimeoutMS? +writeConcern? +wtimeoutMS? +zlibCompressionLevel? +

                                                                                                                                    Properties

                                                                                                                                    allowPartialTrustChain?: boolean

                                                                                                                                    Treat intermediate (non-self-signed) +certificates in the trust CA certificate list as trusted.

                                                                                                                                    +

                                                                                                                                    v22.9.0, v20.18.0

                                                                                                                                    +
                                                                                                                                    ALPNProtocols?:
                                                                                                                                        | string[]
                                                                                                                                        | Uint8Array<ArrayBufferLike>
                                                                                                                                        | Uint8Array<ArrayBufferLike>[]

                                                                                                                                    An array of strings or a Buffer naming possible ALPN protocols. (Protocols should be ordered by their priority.)

                                                                                                                                    -
                                                                                                                                    appName?: string
                                                                                                                                    -

                                                                                                                                    The name of the application that created this MongoClient instance. MongoDB 3.4 and newer will print this value in the server log upon establishing each connection. It is also recorded in the slow query log and profile collections

                                                                                                                                    -
                                                                                                                                    auth?: Auth
                                                                                                                                    -

                                                                                                                                    The auth settings for when connection to server.

                                                                                                                                    -
                                                                                                                                    authMechanism?: AuthMechanism
                                                                                                                                    -

                                                                                                                                    Specify the authentication mechanism that MongoDB will use to authenticate the connection.

                                                                                                                                    -
                                                                                                                                    authMechanismProperties?: AuthMechanismProperties
                                                                                                                                    -

                                                                                                                                    Specify properties for the specified authMechanism as a comma-separated list of colon-separated key-value pairs.

                                                                                                                                    -
                                                                                                                                    authSource?: string
                                                                                                                                    -

                                                                                                                                    Specify the database name associated with the user’s credentials.

                                                                                                                                    -
                                                                                                                                    autoEncryption?: AutoEncryptionOptions
                                                                                                                                    -

                                                                                                                                    Optionally enable client side auto encryption

                                                                                                                                    -
                                                                                                                                    remarks

                                                                                                                                    Automatic encryption is an enterprise only feature that only applies to operations on a collection. Automatic encryption is not supported for operations on a database or view, and operations that are not bypassed will result in error - (see libmongocrypt: Auto Encryption Allow-List). To bypass automatic encryption for all operations, set bypassAutoEncryption=true in AutoEncryptionOpts.

                                                                                                                                    -

                                                                                                                                    Automatic encryption requires the authenticated user to have the listCollections privilege action.

                                                                                                                                    -

                                                                                                                                    If a MongoClient with a limited connection pool size (i.e a non-zero maxPoolSize) is configured with AutoEncryptionOptions, a separate internal MongoClient is created if any of the following are true:

                                                                                                                                    +
                                                                                                                                    appName?: string

                                                                                                                                    The name of the application that created this MongoClient instance. MongoDB 3.4 and newer will print this value in the server log upon establishing each connection. It is also recorded in the slow query log and profile collections

                                                                                                                                    +
                                                                                                                                    auth?: Auth

                                                                                                                                    The auth settings for when connection to server.

                                                                                                                                    +
                                                                                                                                    authMechanism?: AuthMechanism

                                                                                                                                    Specify the authentication mechanism that MongoDB will use to authenticate the connection.

                                                                                                                                    +
                                                                                                                                    authMechanismProperties?: AuthMechanismProperties

                                                                                                                                    Specify properties for the specified authMechanism as a comma-separated list of colon-separated key-value pairs.

                                                                                                                                    +
                                                                                                                                    authSource?: string

                                                                                                                                    Specify the database name associated with the user’s credentials.

                                                                                                                                    +
                                                                                                                                    autoEncryption?: AutoEncryptionOptions

                                                                                                                                    Optionally enable in-use auto encryption

                                                                                                                                    +

                                                                                                                                    Automatic encryption is an enterprise only feature that only applies to operations on a collection. Automatic encryption is not supported for operations on a database or view, and operations that are not bypassed will result in error +(see libmongocrypt: Auto Encryption Allow-List). To bypass automatic encryption for all operations, set bypassAutoEncryption=true in AutoEncryptionOpts.

                                                                                                                                    +

                                                                                                                                    Automatic encryption requires the authenticated user to have the listCollections privilege action.

                                                                                                                                    +

                                                                                                                                    If a MongoClient with a limited connection pool size (i.e a non-zero maxPoolSize) is configured with AutoEncryptionOptions, a separate internal MongoClient is created if any of the following are true:

                                                                                                                                    • AutoEncryptionOptions.keyVaultClient is not passed.
                                                                                                                                    • AutoEncryptionOptions.bypassAutomaticEncryption is false.

                                                                                                                                    If an internal MongoClient is created, it is configured with the same options as the parent MongoClient except minPoolSize is set to 0 and AutoEncryptionOptions is omitted.

                                                                                                                                    -
                                                                                                                                    bsonRegExp?: boolean
                                                                                                                                    -

                                                                                                                                    return BSON regular expressions as BSONRegExp instances.

                                                                                                                                    -
                                                                                                                                    ca?: string | Buffer | (string | Buffer)[]
                                                                                                                                    -

                                                                                                                                    Optionally override the trusted CA certificates. Default is to trust -the well-known CAs curated by Mozilla. Mozilla's CAs are completely +

                                                                                                                                    autoSelectFamily?: boolean

                                                                                                                                    v18.13.0

                                                                                                                                    +
                                                                                                                                    autoSelectFamilyAttemptTimeout?: number

                                                                                                                                    v18.13.0

                                                                                                                                    +
                                                                                                                                    bsonRegExp?: boolean

                                                                                                                                    return BSON regular expressions as BSONRegExp instances.

                                                                                                                                    +

                                                                                                                                    false

                                                                                                                                    +
                                                                                                                                    ca?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike>)[]

                                                                                                                                    Optionally override the trusted CA certificates. Default is to trust +the well-known CAs curated by Mozilla. Mozilla's CAs are completely replaced when CAs are explicitly specified using this option.

                                                                                                                                    -
                                                                                                                                    cert?: string | Buffer | (string | Buffer)[]
                                                                                                                                    -

                                                                                                                                    Cert chains in PEM format. One cert chain should be provided per - private key. Each cert chain should consist of the PEM formatted - certificate for a provided private key, followed by the PEM - formatted intermediate certificates (if any), in order, and not - including the root CA (the root CA must be pre-known to the peer, - see ca). When providing multiple cert chains, they do not have to - be in the same order as their private keys in key. If the - intermediate certificates are not provided, the peer will not be - able to validate the certificate, and the handshake will fail.

                                                                                                                                    -
                                                                                                                                    checkKeys?: boolean
                                                                                                                                    -

                                                                                                                                    the serializer will check if keys are valid.

                                                                                                                                    -
                                                                                                                                    checkServerIdentity?: (hostname: string, cert: PeerCertificate) => Error | undefined

                                                                                                                                    Type declaration

                                                                                                                                      • (hostname: string, cert: PeerCertificate): Error | undefined
                                                                                                                                      • -

                                                                                                                                        Verifies the certificate cert is issued to hostname.

                                                                                                                                        -

                                                                                                                                        Returns Error object, populating it with reason, host, and cert on +

                                                                                                                                    cert?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike>)[]

                                                                                                                                    Cert chains in PEM format. One cert chain should be provided per +private key. Each cert chain should consist of the PEM formatted +certificate for a provided private key, followed by the PEM +formatted intermediate certificates (if any), in order, and not +including the root CA (the root CA must be pre-known to the peer, +see ca). When providing multiple cert chains, they do not have to +be in the same order as their private keys in key. If the +intermediate certificates are not provided, the peer will not be +able to validate the certificate, and the handshake will fail.

                                                                                                                                    +
                                                                                                                                    checkKeys?: boolean

                                                                                                                                    the serializer will check if keys are valid.

                                                                                                                                    +

                                                                                                                                    false

                                                                                                                                    +
                                                                                                                                    checkServerIdentity?: (
                                                                                                                                        hostname: string,
                                                                                                                                        cert: PeerCertificate,
                                                                                                                                    ) => undefined | Error

                                                                                                                                    Type declaration

                                                                                                                                      • (hostname: string, cert: PeerCertificate): undefined | Error
                                                                                                                                      • Verifies the certificate cert is issued to hostname.

                                                                                                                                        +

                                                                                                                                        Returns Error object, populating it with reason, host, and cert on failure. On success, returns undefined.

                                                                                                                                        -

                                                                                                                                        This function can be overwritten by providing alternative function as part of -the options.checkServerIdentity option passed to tls.connect(). The +

                                                                                                                                        This function is intended to be used in combination with thecheckServerIdentity option that can be passed to connect and as +such operates on a certificate object. For other purposes, consider using x509.checkHost() instead.

                                                                                                                                        +

                                                                                                                                        This function can be overwritten by providing an alternative function as the options.checkServerIdentity option that is passed to tls.connect(). The overwriting function can call tls.checkServerIdentity() of course, to augment the checks done with additional verification.

                                                                                                                                        This function is only called if the certificate passed all other checks, such as being issued by trusted CA (options.ca).

                                                                                                                                        -
                                                                                                                                        since

                                                                                                                                        v0.8.4

                                                                                                                                        -

                                                                                                                                    Parameters

                                                                                                                                    • hostname: string
                                                                                                                                      -

                                                                                                                                      The host name or IP address to verify the certificate against.

                                                                                                                                      -
                                                                                                                                    • cert: PeerCertificate
                                                                                                                                      -

                                                                                                                                      A certificate object representing the peer's certificate.

                                                                                                                                      -

                                                                                                                                    Returns Error | undefined

                                                                                                                                    ciphers?: string
                                                                                                                                    -

                                                                                                                                    Cipher suite specification, replacing the default. For more +

                                                                                                                                    Earlier versions of Node.js incorrectly accepted certificates for a givenhostname if a matching uniformResourceIdentifier subject alternative name +was present (see CVE-2021-44531). Applications that wish to acceptuniformResourceIdentifier subject alternative names can use +a custom options.checkServerIdentity function that implements the desired behavior.

                                                                                                                                    +

                                                                                                                                    Parameters

                                                                                                                                    • hostname: string

                                                                                                                                      The host name or IP address to verify the certificate against.

                                                                                                                                      +
                                                                                                                                    • cert: PeerCertificate

                                                                                                                                      A certificate object representing the peer's certificate.

                                                                                                                                      +

                                                                                                                                    Returns undefined | Error

                                                                                                                                    v0.8.4

                                                                                                                                    +
                                                                                                                                    ciphers?: string

                                                                                                                                    Cipher suite specification, replacing the default. For more information, see modifying the default cipher suite. Permitted ciphers can be obtained via tls.getCiphers(). Cipher names must be uppercased in order for OpenSSL to accept them.

                                                                                                                                    -
                                                                                                                                    compressors?: string | ("none" | "snappy" | "zlib")[]
                                                                                                                                    -

                                                                                                                                    An array or comma-delimited string of compressors to enable network compression for communication between this client and a mongod/mongos instance.

                                                                                                                                    -
                                                                                                                                    connectTimeoutMS?: number
                                                                                                                                    -

                                                                                                                                    The time in milliseconds to attempt a connection before timing out.

                                                                                                                                    -
                                                                                                                                    crl?: string | Buffer | (string | Buffer)[]
                                                                                                                                    -

                                                                                                                                    PEM formatted CRLs (Certificate Revocation Lists).

                                                                                                                                    -
                                                                                                                                    directConnection?: boolean
                                                                                                                                    -

                                                                                                                                    Allow a driver to force a Single topology type with a connection string containing one host

                                                                                                                                    -
                                                                                                                                    driverInfo?: DriverInfo
                                                                                                                                    -

                                                                                                                                    Allows a wrapping driver to amend the client metadata generated by the driver to include information about the wrapping driver

                                                                                                                                    -
                                                                                                                                    ecdhCurve?: string
                                                                                                                                    -

                                                                                                                                    A string describing a named curve or a colon separated list of curve +

                                                                                                                                    compressors?: string | ("none" | "zlib" | "snappy" | "zstd")[]

                                                                                                                                    An array or comma-delimited string of compressors to enable network compression for communication between this client and a mongod/mongos instance.

                                                                                                                                    +
                                                                                                                                    connectTimeoutMS?: number

                                                                                                                                    The time in milliseconds to attempt a connection before timing out.

                                                                                                                                    +
                                                                                                                                    crl?: string | Buffer<ArrayBufferLike> | (string | Buffer<ArrayBufferLike>)[]

                                                                                                                                    PEM formatted CRLs (Certificate Revocation Lists).

                                                                                                                                    +
                                                                                                                                    directConnection?: boolean

                                                                                                                                    Allow a driver to force a Single topology type with a connection string containing one host

                                                                                                                                    +
                                                                                                                                    driverInfo?: DriverInfo

                                                                                                                                    Allows a wrapping driver to amend the client metadata generated by the driver to include information about the wrapping driver

                                                                                                                                    +
                                                                                                                                    ecdhCurve?: string

                                                                                                                                    A string describing a named curve or a colon separated list of curve NIDs or names, for example P-521:P-384:P-256, to use for ECDH key agreement. Set to auto to select the curve automatically. Use crypto.getCurves() to obtain a list of available curve names. On recent releases, openssl ecparam -list_curves will also display the name and description of each available elliptic curve. Default: tls.DEFAULT_ECDH_CURVE.

                                                                                                                                    -
                                                                                                                                    enableUtf8Validation?: boolean
                                                                                                                                    -

                                                                                                                                    Enable utf8 validation when deserializing BSON documents. Defaults to true.

                                                                                                                                    -
                                                                                                                                    exceptionFactory?: ExceptionFactory
                                                                                                                                    family?: number
                                                                                                                                    fieldsAsRaw?: Document
                                                                                                                                    -

                                                                                                                                    allow to specify if there what fields we wish to return as unserialized raw buffer.

                                                                                                                                    -
                                                                                                                                    forceServerObjectId?: boolean
                                                                                                                                    -

                                                                                                                                    Force server to assign _id values instead of driver

                                                                                                                                    -
                                                                                                                                    heartbeatFrequencyMS?: number
                                                                                                                                    -

                                                                                                                                    heartbeatFrequencyMS controls when the driver checks the state of the MongoDB deployment. Specify the interval (in milliseconds) between checks, counted from the end of the previous check until the beginning of the next one.

                                                                                                                                    -
                                                                                                                                    hints?: number
                                                                                                                                    ignoreUndefined?: boolean
                                                                                                                                    -

                                                                                                                                    serialize will not emit undefined fields (default:true)

                                                                                                                                    -
                                                                                                                                    journal?: boolean
                                                                                                                                    -

                                                                                                                                    The journal write concern

                                                                                                                                    -
                                                                                                                                    keepAlive?: boolean
                                                                                                                                    -

                                                                                                                                    TCP Connection keep alive enabled

                                                                                                                                    -
                                                                                                                                    keepAliveInitialDelay?: number
                                                                                                                                    -

                                                                                                                                    The number of milliseconds to wait before initiating keepAlive on the TCP socket

                                                                                                                                    -
                                                                                                                                    key?: string | Buffer | (Buffer | KeyObject)[]
                                                                                                                                    -

                                                                                                                                    Private keys in PEM format. PEM allows the option of private keys +

                                                                                                                                    enableUtf8Validation?: boolean

                                                                                                                                    Enable utf8 validation when deserializing BSON documents. Defaults to true.

                                                                                                                                    +
                                                                                                                                    exceptionFactory?: ExceptionFactory
                                                                                                                                    family?: number
                                                                                                                                    fieldsAsRaw?: Document

                                                                                                                                    allow to specify if there what fields we wish to return as unserialized raw buffer.

                                                                                                                                    +

                                                                                                                                    null

                                                                                                                                    +
                                                                                                                                    forceServerObjectId?: boolean

                                                                                                                                    Force server to assign _id values instead of driver

                                                                                                                                    +
                                                                                                                                    heartbeatFrequencyMS?: number

                                                                                                                                    heartbeatFrequencyMS controls when the driver checks the state of the MongoDB deployment. Specify the interval (in milliseconds) between checks, counted from the end of the previous check until the beginning of the next one.

                                                                                                                                    +
                                                                                                                                    hints?: number
                                                                                                                                    ignoreUndefined?: boolean

                                                                                                                                    serialize will not emit undefined fields +note that the driver sets this to false

                                                                                                                                    +

                                                                                                                                    true

                                                                                                                                    +
                                                                                                                                    journal?: boolean

                                                                                                                                    The journal write concern

                                                                                                                                    +

                                                                                                                                    Please use the writeConcern option instead

                                                                                                                                    +
                                                                                                                                    keepAliveInitialDelay?: number

                                                                                                                                    Node.JS socket option to set the time the first keepalive probe is sent on an idle socket. Defaults to 120000ms

                                                                                                                                    +
                                                                                                                                    key?:
                                                                                                                                        | string
                                                                                                                                        | Buffer<ArrayBufferLike>
                                                                                                                                        | (string | Buffer<ArrayBufferLike> | KeyObject)[]

                                                                                                                                    Private keys in PEM format. PEM allows the option of private keys being encrypted. Encrypted keys will be decrypted with options.passphrase. Multiple keys using different algorithms can be provided either as an array of unencrypted key strings or buffers, @@ -103,32 +184,22 @@ passphrase: ]}. The object form can only occur in an array. object.passphrase is optional. Encrypted keys will be decrypted with object.passphrase if provided, or options.passphrase if it is not.

                                                                                                                                    -
                                                                                                                                    loadBalanced?: boolean
                                                                                                                                    -

                                                                                                                                    Instruct the driver it is connecting to a load balancer fronting a mongos like service

                                                                                                                                    -
                                                                                                                                    localAddress?: string
                                                                                                                                    localPort?: number
                                                                                                                                    localThresholdMS?: number
                                                                                                                                    -

                                                                                                                                    The size (in milliseconds) of the latency window for selecting among multiple suitable MongoDB instances.

                                                                                                                                    -
                                                                                                                                    logger?: Logger
                                                                                                                                    -

                                                                                                                                    Custom logger object

                                                                                                                                    -
                                                                                                                                    loggerLevel?: LoggerLevel
                                                                                                                                    -

                                                                                                                                    The logging level

                                                                                                                                    -
                                                                                                                                    lookup?: LookupFunction
                                                                                                                                    maxIdleTimeMS?: number
                                                                                                                                    -

                                                                                                                                    The maximum number of milliseconds that a connection can remain idle in the pool before being removed and closed.

                                                                                                                                    -
                                                                                                                                    maxPoolSize?: number
                                                                                                                                    -

                                                                                                                                    The maximum number of connections in the connection pool.

                                                                                                                                    -
                                                                                                                                    maxStalenessSeconds?: number
                                                                                                                                    -

                                                                                                                                    Specifies, in seconds, how stale a secondary can be before the client stops using it for read operations.

                                                                                                                                    -
                                                                                                                                    minDHSize?: number
                                                                                                                                    minHeartbeatFrequencyMS?: number
                                                                                                                                    -

                                                                                                                                    Sets the minimum heartbeat frequency. In the event that the driver has to frequently re-check a server's availability, it will wait at least this long since the previous check to avoid wasted effort.

                                                                                                                                    -
                                                                                                                                    minPoolSize?: number
                                                                                                                                    -

                                                                                                                                    The minimum number of connections in the connection pool.

                                                                                                                                    -
                                                                                                                                    monitorCommands?: boolean
                                                                                                                                    -

                                                                                                                                    Enable command monitoring for this client

                                                                                                                                    -
                                                                                                                                    noDelay?: boolean
                                                                                                                                    -

                                                                                                                                    TCP Connection no delay

                                                                                                                                    -
                                                                                                                                    passphrase?: string
                                                                                                                                    -

                                                                                                                                    Shared passphrase used for a single private key and/or a PFX.

                                                                                                                                    -
                                                                                                                                    pfx?: string | Buffer | (string | Buffer | PxfObject)[]
                                                                                                                                    -

                                                                                                                                    PFX or PKCS12 encoded private key and certificate chain. pfx is an +

                                                                                                                                    loadBalanced?: boolean

                                                                                                                                    Instruct the driver it is connecting to a load balancer fronting a mongos like service

                                                                                                                                    +
                                                                                                                                    localAddress?: string
                                                                                                                                    localPort?: number
                                                                                                                                    localThresholdMS?: number

                                                                                                                                    The size (in milliseconds) of the latency window for selecting among multiple suitable MongoDB instances.

                                                                                                                                    +
                                                                                                                                    lookup?: LookupFunction
                                                                                                                                    maxConnecting?: number

                                                                                                                                    The maximum number of connections that may be in the process of being established concurrently by the connection pool.

                                                                                                                                    +
                                                                                                                                    maxIdleTimeMS?: number

                                                                                                                                    The maximum number of milliseconds that a connection can remain idle in the pool before being removed and closed.

                                                                                                                                    +
                                                                                                                                    maxPoolSize?: number

                                                                                                                                    The maximum number of connections in the connection pool.

                                                                                                                                    +
                                                                                                                                    maxStalenessSeconds?: number

                                                                                                                                    Specifies, in seconds, how stale a secondary can be before the client stops using it for read operations.

                                                                                                                                    +
                                                                                                                                    minDHSize?: number
                                                                                                                                    minHeartbeatFrequencyMS?: number

                                                                                                                                    Sets the minimum heartbeat frequency. In the event that the driver has to frequently re-check a server's availability, it will wait at least this long since the previous check to avoid wasted effort.

                                                                                                                                    +
                                                                                                                                    minPoolSize?: number

                                                                                                                                    The minimum number of connections in the connection pool.

                                                                                                                                    +
                                                                                                                                    mongodbLogComponentSeverities?: LogComponentSeveritiesClientOptions

                                                                                                                                    Enable logging level per component or use default to control any unset components.

                                                                                                                                    +
                                                                                                                                    mongodbLogMaxDocumentLength?: number

                                                                                                                                    All BSON documents are stringified to EJSON. This controls the maximum length of those strings. +It is defaulted to 1000.

                                                                                                                                    +
                                                                                                                                    mongodbLogPath?: "stdout" | "stderr" | MongoDBLogWritable

                                                                                                                                    Specifies the destination of the driver's logging. The default is stderr.

                                                                                                                                    +
                                                                                                                                    monitorCommands?: boolean

                                                                                                                                    Enable command monitoring for this client

                                                                                                                                    +
                                                                                                                                    noDelay?: boolean

                                                                                                                                    TCP Connection no delay

                                                                                                                                    +
                                                                                                                                    passphrase?: string

                                                                                                                                    Shared passphrase used for a single private key and/or a PFX.

                                                                                                                                    +
                                                                                                                                    pfx?:
                                                                                                                                        | string
                                                                                                                                        | Buffer<ArrayBufferLike>
                                                                                                                                        | (string | Buffer<ArrayBufferLike> | PxfObject)[]

                                                                                                                                    PFX or PKCS12 encoded private key and certificate chain. pfx is an alternative to providing key and cert individually. PFX is usually encrypted, if it is, passphrase will be used to decrypt it. Multiple PFX can be provided either as an array of unencrypted PFX buffers, @@ -136,107 +207,81 @@ passphrase: ]}. The object form can only occur in an array. object.passphrase is optional. Encrypted PFX will be decrypted with object.passphrase if provided, or options.passphrase if it is not.

                                                                                                                                    -
                                                                                                                                    pkFactory?: PkFactory
                                                                                                                                    -

                                                                                                                                    A primary key factory function for generation of custom _id keys

                                                                                                                                    -
                                                                                                                                    promiseLibrary?: any
                                                                                                                                    -

                                                                                                                                    A Promise library class the application wishes to use such as Bluebird, must be ES6 compatible

                                                                                                                                    -
                                                                                                                                    promoteBuffers?: boolean
                                                                                                                                    -

                                                                                                                                    when deserializing a Binary will return it as a node.js Buffer instance.

                                                                                                                                    -
                                                                                                                                    promoteLongs?: boolean
                                                                                                                                    -

                                                                                                                                    when deserializing a Long will fit it into a Number if it's smaller than 53 bits

                                                                                                                                    -
                                                                                                                                    promoteValues?: boolean
                                                                                                                                    -

                                                                                                                                    when deserializing will promote BSON values to their Node.js closest equivalent types.

                                                                                                                                    -
                                                                                                                                    proxyHost?: string
                                                                                                                                    -

                                                                                                                                    Configures a Socks5 proxy host used for creating TCP connections.

                                                                                                                                    -
                                                                                                                                    proxyPassword?: string
                                                                                                                                    -

                                                                                                                                    Configures a Socks5 proxy password when the proxy in proxyHost requires username/password authentication.

                                                                                                                                    -
                                                                                                                                    proxyPort?: number
                                                                                                                                    -

                                                                                                                                    Configures a Socks5 proxy port used for creating TCP connections.

                                                                                                                                    -
                                                                                                                                    proxyUsername?: string
                                                                                                                                    -

                                                                                                                                    Configures a Socks5 proxy username when the proxy in proxyHost requires username/password authentication.

                                                                                                                                    -
                                                                                                                                    raw?: boolean
                                                                                                                                    -

                                                                                                                                    Return document results as raw BSON buffers

                                                                                                                                    -
                                                                                                                                    readConcern?: ReadConcernLike
                                                                                                                                    -

                                                                                                                                    Specify a read concern for the collection (only MongoDB 3.2 or higher supported)

                                                                                                                                    -
                                                                                                                                    readConcernLevel?: ReadConcernLevel
                                                                                                                                    -

                                                                                                                                    The level of isolation

                                                                                                                                    -
                                                                                                                                    readPreference?: ReadPreferenceMode | ReadPreference
                                                                                                                                    -

                                                                                                                                    Specifies the read preferences for this connection

                                                                                                                                    -
                                                                                                                                    readPreferenceTags?: TagSet[]
                                                                                                                                    -

                                                                                                                                    Specifies the tags document as a comma-separated list of colon-separated key-value pairs.

                                                                                                                                    -
                                                                                                                                    rejectUnauthorized?: boolean
                                                                                                                                    -

                                                                                                                                    If true the server will reject any connection which is not +

                                                                                                                                    pkFactory?: PkFactory

                                                                                                                                    A primary key factory function for generation of custom _id keys

                                                                                                                                    +
                                                                                                                                    promoteBuffers?: boolean

                                                                                                                                    when deserializing a Binary will return it as a node.js Buffer instance.

                                                                                                                                    +

                                                                                                                                    false

                                                                                                                                    +
                                                                                                                                    promoteLongs?: boolean

                                                                                                                                    when deserializing a Long will fit it into a Number if it's smaller than 53 bits.

                                                                                                                                    +

                                                                                                                                    true

                                                                                                                                    +
                                                                                                                                    promoteValues?: boolean

                                                                                                                                    when deserializing will promote BSON values to their Node.js closest equivalent types.

                                                                                                                                    +

                                                                                                                                    true

                                                                                                                                    +
                                                                                                                                    proxyHost?: string

                                                                                                                                    Configures a Socks5 proxy host used for creating TCP connections.

                                                                                                                                    +
                                                                                                                                    proxyPassword?: string

                                                                                                                                    Configures a Socks5 proxy password when the proxy in proxyHost requires username/password authentication.

                                                                                                                                    +
                                                                                                                                    proxyPort?: number

                                                                                                                                    Configures a Socks5 proxy port used for creating TCP connections.

                                                                                                                                    +
                                                                                                                                    proxyUsername?: string

                                                                                                                                    Configures a Socks5 proxy username when the proxy in proxyHost requires username/password authentication.

                                                                                                                                    +
                                                                                                                                    raw?: boolean

                                                                                                                                    Enabling the raw option will return a Node.js Buffer +which is allocated using allocUnsafe API. +See this section from the Node.js Docs here +for more detail about what "unsafe" refers to in this context. +If you need to maintain your own editable clone of the bytes returned for an extended life time of the process, it is recommended you allocate +your own buffer and clone the contents:

                                                                                                                                    +
                                                                                                                                    const raw = await collection.findOne({}, { raw: true });
                                                                                                                                    const myBuffer = Buffer.alloc(raw.byteLength);
                                                                                                                                    myBuffer.set(raw, 0);
                                                                                                                                    // Only save and use `myBuffer` beyond this point +
                                                                                                                                    + +

                                                                                                                                    Please note there is a known limitation where this option cannot be used at the MongoClient level (see NODE-3946). +It does correctly work at Db, Collection, and per operation the same as other BSON options work.

                                                                                                                                    +
                                                                                                                                    readConcern?: ReadConcernLike

                                                                                                                                    Specify a read concern for the collection (only MongoDB 3.2 or higher supported)

                                                                                                                                    +
                                                                                                                                    readConcernLevel?: ReadConcernLevel

                                                                                                                                    The level of isolation

                                                                                                                                    +
                                                                                                                                    readPreference?: ReadPreference | ReadPreferenceMode

                                                                                                                                    Specifies the read preferences for this connection

                                                                                                                                    +
                                                                                                                                    readPreferenceTags?: TagSet[]

                                                                                                                                    Specifies the tags document as a comma-separated list of colon-separated key-value pairs.

                                                                                                                                    +
                                                                                                                                    rejectUnauthorized?: boolean

                                                                                                                                    If true the server will reject any connection which is not authorized with the list of supplied CAs. This option only has an effect if requestCert is true.

                                                                                                                                    -
                                                                                                                                    default

                                                                                                                                    true

                                                                                                                                    -
                                                                                                                                    replicaSet?: string
                                                                                                                                    -

                                                                                                                                    Specifies the name of the replica set, if the mongod is a member of a replica set.

                                                                                                                                    -
                                                                                                                                    retryReads?: boolean
                                                                                                                                    -

                                                                                                                                    Enables retryable reads.

                                                                                                                                    -
                                                                                                                                    retryWrites?: boolean
                                                                                                                                    -

                                                                                                                                    Enable retryable writes.

                                                                                                                                    -
                                                                                                                                    secureContext?: SecureContext
                                                                                                                                    -

                                                                                                                                    An optional TLS context object from tls.createSecureContext()

                                                                                                                                    -
                                                                                                                                    secureProtocol?: string
                                                                                                                                    -

                                                                                                                                    Legacy mechanism to select the TLS protocol version to use, it does +

                                                                                                                                    true
                                                                                                                                    +
                                                                                                                                    + +
                                                                                                                                    replicaSet?: string

                                                                                                                                    Specifies the name of the replica set, if the mongod is a member of a replica set.

                                                                                                                                    +
                                                                                                                                    retryReads?: boolean

                                                                                                                                    Enables retryable reads.

                                                                                                                                    +
                                                                                                                                    retryWrites?: boolean

                                                                                                                                    Enable retryable writes.

                                                                                                                                    +
                                                                                                                                    secureContext?: SecureContext

                                                                                                                                    An optional TLS context object from tls.createSecureContext()

                                                                                                                                    +
                                                                                                                                    secureProtocol?: string

                                                                                                                                    Legacy mechanism to select the TLS protocol version to use, it does not support independent control of the minimum and maximum version, and does not support limiting the protocol to TLSv1.3. Use minVersion and maxVersion instead. The possible values are listed as SSL_METHODS, use the function names as strings. For example, use -'TLSv1_1_method' to force TLS version 1.1, or 'TLS_method' to allow +'TLSv1_1_method' to force TLS version 1.1, or 'TLS_method' to allow any TLS protocol version up to TLSv1.3. It is not recommended to use TLS versions less than 1.2, but it may be required for interoperability. Default: none, see minVersion.

                                                                                                                                    -
                                                                                                                                    serializeFunctions?: boolean
                                                                                                                                    -

                                                                                                                                    serialize the javascript functions (default:false).

                                                                                                                                    -
                                                                                                                                    serverApi?: ServerApi | "1"
                                                                                                                                    -

                                                                                                                                    Server API version

                                                                                                                                    -
                                                                                                                                    serverSelectionTimeoutMS?: number
                                                                                                                                    -

                                                                                                                                    Specifies how long (in milliseconds) to block for server selection before throwing an exception.

                                                                                                                                    -
                                                                                                                                    servername?: string
                                                                                                                                    session?: Buffer
                                                                                                                                    socketTimeoutMS?: number
                                                                                                                                    -

                                                                                                                                    The time in milliseconds to attempt a send or receive on a socket before the attempt times out.

                                                                                                                                    -
                                                                                                                                    srvMaxHosts?: number
                                                                                                                                    -

                                                                                                                                    The maximum number of hosts to connect to when using an srv connection string, a setting of 0 means unlimited hosts

                                                                                                                                    -
                                                                                                                                    srvServiceName?: string
                                                                                                                                    -

                                                                                                                                    Modifies the srv URI to look like:

                                                                                                                                    -

                                                                                                                                    _{srvServiceName}._tcp.{hostname}.{domainname}

                                                                                                                                    +
                                                                                                                                    serializeFunctions?: boolean

                                                                                                                                    serialize the javascript functions

                                                                                                                                    +

                                                                                                                                    false

                                                                                                                                    +
                                                                                                                                    serverApi?: "1" | ServerApi

                                                                                                                                    Server API version

                                                                                                                                    +
                                                                                                                                    serverMonitoringMode?: ServerMonitoringMode

                                                                                                                                    Instructs the driver monitors to use a specific monitoring mode

                                                                                                                                    +
                                                                                                                                    servername?: string
                                                                                                                                    serverSelectionTimeoutMS?: number

                                                                                                                                    Specifies how long (in milliseconds) to block for server selection before throwing an exception.

                                                                                                                                    +
                                                                                                                                    session?: Buffer<ArrayBufferLike>

                                                                                                                                    An optional Buffer instance containing a TLS session.

                                                                                                                                    +
                                                                                                                                    socketTimeoutMS?: number

                                                                                                                                    The time in milliseconds to attempt a send or receive on a socket before the attempt times out.

                                                                                                                                    +
                                                                                                                                    srvMaxHosts?: number

                                                                                                                                    The maximum number of hosts to connect to when using an srv connection string, a setting of 0 means unlimited hosts

                                                                                                                                    +
                                                                                                                                    srvServiceName?: string

                                                                                                                                    Modifies the srv URI to look like:

                                                                                                                                    +

                                                                                                                                    _{srvServiceName}._tcp.{hostname}.{domainname}

                                                                                                                                    Querying this DNS URI is expected to respond with SRV records

                                                                                                                                    -
                                                                                                                                    ssl?: boolean
                                                                                                                                    -

                                                                                                                                    A boolean to enable or disables TLS/SSL for the connection. (The ssl option is equivalent to the tls option.)

                                                                                                                                    -
                                                                                                                                    sslCA?: string
                                                                                                                                    -

                                                                                                                                    SSL Certificate file path.

                                                                                                                                    -
                                                                                                                                    sslCRL?: string
                                                                                                                                    -

                                                                                                                                    SSL Certificate revocation list file path.

                                                                                                                                    -
                                                                                                                                    sslCert?: string
                                                                                                                                    -

                                                                                                                                    SSL Certificate file path.

                                                                                                                                    -
                                                                                                                                    sslKey?: string
                                                                                                                                    -

                                                                                                                                    SSL Key file file path.

                                                                                                                                    -
                                                                                                                                    sslPass?: string
                                                                                                                                    -

                                                                                                                                    SSL Certificate pass phrase.

                                                                                                                                    -
                                                                                                                                    sslValidate?: boolean
                                                                                                                                    -

                                                                                                                                    Validate mongod server certificate against Certificate Authority

                                                                                                                                    -
                                                                                                                                    tls?: boolean
                                                                                                                                    -

                                                                                                                                    Enables or disables TLS/SSL for the connection.

                                                                                                                                    -
                                                                                                                                    tlsAllowInvalidCertificates?: boolean
                                                                                                                                    -

                                                                                                                                    Bypasses validation of the certificates presented by the mongod/mongos instance

                                                                                                                                    -
                                                                                                                                    tlsAllowInvalidHostnames?: boolean
                                                                                                                                    -

                                                                                                                                    Disables hostname validation of the certificate presented by the mongod/mongos instance.

                                                                                                                                    -
                                                                                                                                    tlsCAFile?: string
                                                                                                                                    -

                                                                                                                                    Specifies the location of a local .pem file that contains the root certificate chain from the Certificate Authority. This file is used to validate the certificate presented by the mongod/mongos instance.

                                                                                                                                    -
                                                                                                                                    tlsCertificateFile?: string
                                                                                                                                    -

                                                                                                                                    Specifies the location of a local TLS Certificate

                                                                                                                                    -
                                                                                                                                    tlsCertificateKeyFile?: string
                                                                                                                                    -

                                                                                                                                    Specifies the location of a local .pem file that contains either the client's TLS/SSL certificate and key or only the client's TLS/SSL key when tlsCertificateFile is used to provide the certificate.

                                                                                                                                    -
                                                                                                                                    tlsCertificateKeyFilePassword?: string
                                                                                                                                    -

                                                                                                                                    Specifies the password to de-crypt the tlsCertificateKeyFile.

                                                                                                                                    -
                                                                                                                                    tlsInsecure?: boolean
                                                                                                                                    -

                                                                                                                                    Disables various certificate validations.

                                                                                                                                    -
                                                                                                                                    uri: string
                                                                                                                                    w?: W
                                                                                                                                    -

                                                                                                                                    The write concern w value

                                                                                                                                    -
                                                                                                                                    waitQueueTimeoutMS?: number
                                                                                                                                    -

                                                                                                                                    The maximum time in milliseconds that a thread can wait for a connection to become available.

                                                                                                                                    -
                                                                                                                                    wtimeoutMS?: number
                                                                                                                                    -

                                                                                                                                    The write concern timeout

                                                                                                                                    -
                                                                                                                                    zlibCompressionLevel?: 0 | 5 | 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9
                                                                                                                                    -

                                                                                                                                    An integer that specifies the compression level if using zlib for network compression.

                                                                                                                                    -

                                                                                                                                    Legend

                                                                                                                                    • Constructor
                                                                                                                                    • Property
                                                                                                                                    • Method
                                                                                                                                    • Property
                                                                                                                                    • Method
                                                                                                                                    • Inherited constructor
                                                                                                                                    • Inherited method
                                                                                                                                    • Protected property
                                                                                                                                    • Protected method
                                                                                                                                    • Private property
                                                                                                                                    • Static method

                                                                                                                                    Settings

                                                                                                                                    Theme

                                                                                                                                    \ No newline at end of file +
                                                                                                                                    ssl?: boolean

                                                                                                                                    A boolean to enable or disables TLS/SSL for the connection. (The ssl option is equivalent to the tls option.)

                                                                                                                                    +
                                                                                                                                    timeoutMS?: number

                                                                                                                                    Specifies the time an operation will run until it throws a timeout error

                                                                                                                                    +
                                                                                                                                    tls?: boolean

                                                                                                                                    Enables or disables TLS/SSL for the connection.

                                                                                                                                    +
                                                                                                                                    tlsAllowInvalidCertificates?: boolean

                                                                                                                                    Bypasses validation of the certificates presented by the mongod/mongos instance

                                                                                                                                    +
                                                                                                                                    tlsAllowInvalidHostnames?: boolean

                                                                                                                                    Disables hostname validation of the certificate presented by the mongod/mongos instance.

                                                                                                                                    +
                                                                                                                                    tlsCAFile?: string

                                                                                                                                    Specifies the location of a local .pem file that contains the root certificate chain from the Certificate Authority. This file is used to validate the certificate presented by the mongod/mongos instance.

                                                                                                                                    +
                                                                                                                                    tlsCertificateKeyFile?: string

                                                                                                                                    Specifies the location of a local .pem file that contains either the client's TLS/SSL certificate and key.

                                                                                                                                    +
                                                                                                                                    tlsCertificateKeyFilePassword?: string

                                                                                                                                    Specifies the password to de-crypt the tlsCertificateKeyFile.

                                                                                                                                    +
                                                                                                                                    tlsCRLFile?: string

                                                                                                                                    Specifies the location of a local CRL .pem file that contains the client revokation list.

                                                                                                                                    +
                                                                                                                                    tlsInsecure?: boolean

                                                                                                                                    Disables various certificate validations.

                                                                                                                                    +
                                                                                                                                    uri: string
                                                                                                                                    useBigInt64?: boolean

                                                                                                                                    when deserializing a Long return as a BigInt.

                                                                                                                                    +

                                                                                                                                    false

                                                                                                                                    +
                                                                                                                                    w?: W

                                                                                                                                    The write concern w value

                                                                                                                                    +

                                                                                                                                    Please use the writeConcern option instead

                                                                                                                                    +
                                                                                                                                    waitQueueTimeoutMS?: number

                                                                                                                                    The maximum time in milliseconds that a thread can wait for a connection to become available.

                                                                                                                                    +
                                                                                                                                    writeConcern?: WriteConcern | WriteConcernSettings

                                                                                                                                    A MongoDB WriteConcern, which describes the level of acknowledgement +requested from MongoDB for write operations.

                                                                                                                                    +
                                                                                                                                    wtimeoutMS?: number

                                                                                                                                    The write concern timeout

                                                                                                                                    +

                                                                                                                                    Please use the writeConcern option instead

                                                                                                                                    +
                                                                                                                                    zlibCompressionLevel?: 0 | 2 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9

                                                                                                                                    An integer that specifies the compression level if using zlib for network compression.

                                                                                                                                    +
                                                                                                                                    diff --git a/docs/interfaces/MongoOptionsFactory.html b/docs/interfaces/MongoOptionsFactory.html index 2acea318..51fffb98 100644 --- a/docs/interfaces/MongoOptionsFactory.html +++ b/docs/interfaces/MongoOptionsFactory.html @@ -1 +1,2 @@ -MongoOptionsFactory | NestJS Mongo - v0.13.2
                                                                                                                                    Options
                                                                                                                                    All
                                                                                                                                    • Public
                                                                                                                                    • Public/Protected
                                                                                                                                    • All
                                                                                                                                    Menu

                                                                                                                                    Interface MongoOptionsFactory

                                                                                                                                    Hierarchy

                                                                                                                                    • MongoOptionsFactory

                                                                                                                                    Index

                                                                                                                                    Methods

                                                                                                                                    Legend

                                                                                                                                    • Constructor
                                                                                                                                    • Property
                                                                                                                                    • Method
                                                                                                                                    • Property
                                                                                                                                    • Method
                                                                                                                                    • Inherited constructor
                                                                                                                                    • Inherited method
                                                                                                                                    • Protected property
                                                                                                                                    • Protected method
                                                                                                                                    • Private property
                                                                                                                                    • Static method

                                                                                                                                    Settings

                                                                                                                                    Theme

                                                                                                                                    \ No newline at end of file +MongoOptionsFactory | NestJS Mongo - v0.15.0
                                                                                                                                    NestJS Mongo - v0.15.0
                                                                                                                                      Preparing search index...

                                                                                                                                      Interface MongoOptionsFactory

                                                                                                                                      interface MongoOptionsFactory {
                                                                                                                                          createMongoOptions: () => | MongoModuleOptions
                                                                                                                                          | Promise<MongoModuleOptions>;
                                                                                                                                      }
                                                                                                                                      Index

                                                                                                                                      Properties

                                                                                                                                      Properties

                                                                                                                                      createMongoOptions: () => MongoModuleOptions | Promise<MongoModuleOptions>
                                                                                                                                      diff --git a/docs/interfaces/PossibleTypes.html b/docs/interfaces/PossibleTypes.html index e167cd7f..4f43337c 100644 --- a/docs/interfaces/PossibleTypes.html +++ b/docs/interfaces/PossibleTypes.html @@ -1,3 +1,4 @@ -PossibleTypes | NestJS Mongo - v0.13.2
                                                                                                                                      Options
                                                                                                                                      All
                                                                                                                                      • Public
                                                                                                                                      • Public/Protected
                                                                                                                                      • All
                                                                                                                                      Menu
                                                                                                                                      -

                                                                                                                                      Define a list of possible values (as string) for a property used to defined a dynamic type

                                                                                                                                      -

                                                                                                                                      Hierarchy

                                                                                                                                      • PossibleTypes

                                                                                                                                      Index

                                                                                                                                      Properties

                                                                                                                                      Properties

                                                                                                                                      property: string
                                                                                                                                      values: string[]

                                                                                                                                      Legend

                                                                                                                                      • Constructor
                                                                                                                                      • Property
                                                                                                                                      • Method
                                                                                                                                      • Property
                                                                                                                                      • Method
                                                                                                                                      • Inherited constructor
                                                                                                                                      • Inherited method
                                                                                                                                      • Protected property
                                                                                                                                      • Protected method
                                                                                                                                      • Private property
                                                                                                                                      • Static method

                                                                                                                                      Settings

                                                                                                                                      Theme

                                                                                                                                      \ No newline at end of file +PossibleTypes | NestJS Mongo - v0.15.0
                                                                                                                                      NestJS Mongo - v0.15.0
                                                                                                                                        Preparing search index...

                                                                                                                                        Interface PossibleTypes

                                                                                                                                        Define a list of possible values (as string) for a property used to defined a dynamic type

                                                                                                                                        +
                                                                                                                                        interface PossibleTypes {
                                                                                                                                            property: string;
                                                                                                                                            values: string[];
                                                                                                                                        }
                                                                                                                                        Index

                                                                                                                                        Properties

                                                                                                                                        Properties

                                                                                                                                        property: string
                                                                                                                                        values: string[]
                                                                                                                                        diff --git a/docs/interfaces/RelationshipCascade.html b/docs/interfaces/RelationshipCascade.html index 0ec890a6..6f5f5ba1 100644 --- a/docs/interfaces/RelationshipCascade.html +++ b/docs/interfaces/RelationshipCascade.html @@ -1,5 +1,9 @@ -RelationshipCascade | NestJS Mongo - v0.13.2
                                                                                                                                        Options
                                                                                                                                        All
                                                                                                                                        • Public
                                                                                                                                        • Public/Protected
                                                                                                                                        • All
                                                                                                                                        Menu

                                                                                                                                        Interface RelationshipCascade<Child>

                                                                                                                                        -

                                                                                                                                        Define the items with cascade operation on a class

                                                                                                                                        -
                                                                                                                                        example

                                                                                                                                        A Child class is defining a Relationship with a Parent with a cascade delete. -The Child will have metadata defining the cascade operations to execute.

                                                                                                                                        -

                                                                                                                                        Type parameters

                                                                                                                                        Hierarchy

                                                                                                                                        • RelationshipCascade

                                                                                                                                        Index

                                                                                                                                        Properties

                                                                                                                                        cascade: DELETE[]
                                                                                                                                        isArray?: boolean
                                                                                                                                        model: Child
                                                                                                                                        property: string

                                                                                                                                        Legend

                                                                                                                                        • Constructor
                                                                                                                                        • Property
                                                                                                                                        • Method
                                                                                                                                        • Property
                                                                                                                                        • Method
                                                                                                                                        • Inherited constructor
                                                                                                                                        • Inherited method
                                                                                                                                        • Protected property
                                                                                                                                        • Protected method
                                                                                                                                        • Private property
                                                                                                                                        • Static method

                                                                                                                                        Settings

                                                                                                                                        Theme

                                                                                                                                        \ No newline at end of file +RelationshipCascade | NestJS Mongo - v0.15.0
                                                                                                                                        NestJS Mongo - v0.15.0
                                                                                                                                          Preparing search index...

                                                                                                                                          Interface RelationshipCascade<Child>

                                                                                                                                          Define the items with cascade operation on a class

                                                                                                                                          +
                                                                                                                                          A Child class is defining a Relationship with a Parent with a cascade delete.
                                                                                                                                          The Child will have metadata defining the cascade operations to execute. +
                                                                                                                                          + +
                                                                                                                                          interface RelationshipCascade<Child extends EntityInterface = any> {
                                                                                                                                              cascade: DELETE[];
                                                                                                                                              isArray?: boolean;
                                                                                                                                              model: Child;
                                                                                                                                              property: string;
                                                                                                                                          }

                                                                                                                                          Type Parameters

                                                                                                                                          Index

                                                                                                                                          Properties

                                                                                                                                          cascade: DELETE[]
                                                                                                                                          isArray?: boolean
                                                                                                                                          model: Child
                                                                                                                                          property: string
                                                                                                                                          diff --git a/docs/interfaces/RelationshipMetadata.html b/docs/interfaces/RelationshipMetadata.html index 079c4284..c55b1a0c 100644 --- a/docs/interfaces/RelationshipMetadata.html +++ b/docs/interfaces/RelationshipMetadata.html @@ -1,3 +1,7 @@ -RelationshipMetadata | NestJS Mongo - v0.13.2
                                                                                                                                          Options
                                                                                                                                          All
                                                                                                                                          • Public
                                                                                                                                          • Public/Protected
                                                                                                                                          • All
                                                                                                                                          Menu

                                                                                                                                          Interface RelationshipMetadata<R>

                                                                                                                                          -

                                                                                                                                          The relationship metadata with a type defined as a class constructor (aka the model)

                                                                                                                                          -

                                                                                                                                          Type parameters

                                                                                                                                          Hierarchy

                                                                                                                                          Index

                                                                                                                                          Properties

                                                                                                                                          cascade?: DELETE[]
                                                                                                                                          index?: { description?: IndexDescription & CreateIndexesOptions }

                                                                                                                                          Type declaration

                                                                                                                                          • Optional description?: IndexDescription & CreateIndexesOptions
                                                                                                                                          isArray?: boolean
                                                                                                                                          possibleTypes?: PossibleTypes
                                                                                                                                          type: ClassConstructor<R>

                                                                                                                                          Legend

                                                                                                                                          • Constructor
                                                                                                                                          • Property
                                                                                                                                          • Method
                                                                                                                                          • Property
                                                                                                                                          • Method
                                                                                                                                          • Inherited constructor
                                                                                                                                          • Inherited method
                                                                                                                                          • Protected property
                                                                                                                                          • Protected method
                                                                                                                                          • Private property
                                                                                                                                          • Static method

                                                                                                                                          Settings

                                                                                                                                          Theme

                                                                                                                                          \ No newline at end of file +RelationshipMetadata | NestJS Mongo - v0.15.0
                                                                                                                                          NestJS Mongo - v0.15.0
                                                                                                                                            Preparing search index...

                                                                                                                                            Interface RelationshipMetadata<R>

                                                                                                                                            The relationship metadata with a type defined as a class constructor (aka the model)

                                                                                                                                            +
                                                                                                                                            interface RelationshipMetadata<R extends EntityInterface> {
                                                                                                                                                cascade?: DELETE[];
                                                                                                                                                index?: { description?: IndexDescription & CreateIndexesOptions };
                                                                                                                                                isArray?: boolean;
                                                                                                                                                possibleTypes?: PossibleTypes;
                                                                                                                                                type: Type<R>;
                                                                                                                                            }

                                                                                                                                            Type Parameters

                                                                                                                                            Hierarchy (View Summary)

                                                                                                                                            Index

                                                                                                                                            Properties

                                                                                                                                            cascade?: DELETE[]
                                                                                                                                            index?: { description?: IndexDescription & CreateIndexesOptions }
                                                                                                                                            isArray?: boolean
                                                                                                                                            possibleTypes?: PossibleTypes
                                                                                                                                            type: Type<R>
                                                                                                                                            diff --git a/docs/interfaces/RelationshipMetadataOptions.html b/docs/interfaces/RelationshipMetadataOptions.html index 637a5c93..038e4cba 100644 --- a/docs/interfaces/RelationshipMetadataOptions.html +++ b/docs/interfaces/RelationshipMetadataOptions.html @@ -1,3 +1,7 @@ -RelationshipMetadataOptions | NestJS Mongo - v0.13.2
                                                                                                                                            Options
                                                                                                                                            All
                                                                                                                                            • Public
                                                                                                                                            • Public/Protected
                                                                                                                                            • All
                                                                                                                                            Menu

                                                                                                                                            Interface RelationshipMetadataOptions<R>

                                                                                                                                            -

                                                                                                                                            The relationship metadata with a type defined as a function returning a class constructor (aka the model)

                                                                                                                                            -

                                                                                                                                            Type parameters

                                                                                                                                            Hierarchy

                                                                                                                                            Index

                                                                                                                                            Properties

                                                                                                                                            cascade?: DELETE[]
                                                                                                                                            index?: { description?: IndexDescription & CreateIndexesOptions }

                                                                                                                                            Type declaration

                                                                                                                                            • Optional description?: IndexDescription & CreateIndexesOptions
                                                                                                                                            isArray?: boolean
                                                                                                                                            possibleTypes?: PossibleTypes
                                                                                                                                            type: string | RelationshipTypeDescriptor<R> | ClassConstructor<R>

                                                                                                                                            Legend

                                                                                                                                            • Constructor
                                                                                                                                            • Property
                                                                                                                                            • Method
                                                                                                                                            • Property
                                                                                                                                            • Method
                                                                                                                                            • Inherited constructor
                                                                                                                                            • Inherited method
                                                                                                                                            • Protected property
                                                                                                                                            • Protected method
                                                                                                                                            • Private property
                                                                                                                                            • Static method

                                                                                                                                            Settings

                                                                                                                                            Theme

                                                                                                                                            \ No newline at end of file +RelationshipMetadataOptions | NestJS Mongo - v0.15.0
                                                                                                                                            NestJS Mongo - v0.15.0
                                                                                                                                              Preparing search index...

                                                                                                                                              Interface RelationshipMetadataOptions<R>

                                                                                                                                              The relationship metadata with a type defined as a function returning a class constructor (aka the model)

                                                                                                                                              +
                                                                                                                                              interface RelationshipMetadataOptions<R extends EntityInterface> {
                                                                                                                                                  cascade?: DELETE[];
                                                                                                                                                  index?: { description?: IndexDescription & CreateIndexesOptions };
                                                                                                                                                  isArray?: boolean;
                                                                                                                                                  possibleTypes?: PossibleTypes;
                                                                                                                                                  type: string | RelationshipTypeDescriptor<R> | Type<R>;
                                                                                                                                              }

                                                                                                                                              Type Parameters

                                                                                                                                              Hierarchy (View Summary)

                                                                                                                                              Index

                                                                                                                                              Properties

                                                                                                                                              cascade?: DELETE[]
                                                                                                                                              index?: { description?: IndexDescription & CreateIndexesOptions }
                                                                                                                                              isArray?: boolean
                                                                                                                                              possibleTypes?: PossibleTypes
                                                                                                                                              type: string | RelationshipTypeDescriptor<R> | Type<R>
                                                                                                                                              diff --git a/docs/interfaces/SerializableInterface.html b/docs/interfaces/SerializableInterface.html index 59817d07..a0d9b139 100644 --- a/docs/interfaces/SerializableInterface.html +++ b/docs/interfaces/SerializableInterface.html @@ -1,5 +1,5 @@ -SerializableInterface | NestJS Mongo - v0.13.2
                                                                                                                                              Options
                                                                                                                                              All
                                                                                                                                              • Public
                                                                                                                                              • Public/Protected
                                                                                                                                              • All
                                                                                                                                              Menu

                                                                                                                                              Interface SerializableInterface

                                                                                                                                              Hierarchy

                                                                                                                                              Index

                                                                                                                                              Methods

                                                                                                                                              • serialize(): Record<string, any>
                                                                                                                                              • toJSON(): Record<string, any>

                                                                                                                                              Legend

                                                                                                                                              • Constructor
                                                                                                                                              • Property
                                                                                                                                              • Method
                                                                                                                                              • Property
                                                                                                                                              • Method
                                                                                                                                              • Inherited constructor
                                                                                                                                              • Inherited method
                                                                                                                                              • Protected property
                                                                                                                                              • Protected method
                                                                                                                                              • Private property
                                                                                                                                              • Static method

                                                                                                                                              Settings

                                                                                                                                              Theme

                                                                                                                                              \ No newline at end of file +SerializableInterface | NestJS Mongo - v0.15.0
                                                                                                                                              NestJS Mongo - v0.15.0
                                                                                                                                                Preparing search index...

                                                                                                                                                Interface SerializableInterface

                                                                                                                                                interface SerializableInterface {
                                                                                                                                                    serialize: () => Record<string, any>;
                                                                                                                                                    toJSON: () => Record<string, any>;
                                                                                                                                                }

                                                                                                                                                Hierarchy (View Summary)

                                                                                                                                                Index

                                                                                                                                                Properties

                                                                                                                                                Properties

                                                                                                                                                serialize: () => Record<string, any>

                                                                                                                                                Transform a class instance to plain object (ObjectIds become string)

                                                                                                                                                +
                                                                                                                                                toJSON: () => Record<string, any>

                                                                                                                                                Transform a class instance to json object (ObjectIds are not touched)

                                                                                                                                                +
                                                                                                                                                diff --git a/docs/modules.html b/docs/modules.html index 617b38cb..8f45c58a 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -1,120 +1 @@ -NestJS Mongo - v0.13.2
                                                                                                                                                Options
                                                                                                                                                All
                                                                                                                                                • Public
                                                                                                                                                • Public/Protected
                                                                                                                                                • All
                                                                                                                                                Menu

                                                                                                                                                NestJS Mongo - v0.13.2

                                                                                                                                                Index

                                                                                                                                                Enumerations

                                                                                                                                                Classes

                                                                                                                                                Interfaces

                                                                                                                                                Type aliases

                                                                                                                                                Variables

                                                                                                                                                Functions

                                                                                                                                                Type aliases

                                                                                                                                                EventCallback<Model>: (eventName: string, change: ChangeStreamDocument<Model>) => void

                                                                                                                                                Type parameters

                                                                                                                                                Type declaration

                                                                                                                                                  • (eventName: string, change: ChangeStreamDocument<Model>): void
                                                                                                                                                  • Parameters

                                                                                                                                                    • eventName: string
                                                                                                                                                    • change: ChangeStreamDocument<Model>

                                                                                                                                                    Returns void

                                                                                                                                                ExceptionFactory: (errors: ValidationError[]) => any

                                                                                                                                                Type declaration

                                                                                                                                                  • (errors: ValidationError[]): any
                                                                                                                                                  • Parameters

                                                                                                                                                    • errors: ValidationError[]

                                                                                                                                                    Returns any

                                                                                                                                                IsUniqueOptions: ValidationOptions & { keys?: string[]; noIndex?: boolean; sparse?: boolean }
                                                                                                                                                RelationshipTypeDescriptor<Relationship>: (obj?: any) => ClassConstructor<Relationship> | false

                                                                                                                                                Type parameters

                                                                                                                                                Type declaration

                                                                                                                                                  • (obj?: any): ClassConstructor<Relationship> | false
                                                                                                                                                  • -

                                                                                                                                                    The signature of the function used to determine the type of a relationship target

                                                                                                                                                    -

                                                                                                                                                    Parameters

                                                                                                                                                    • Optional obj: any

                                                                                                                                                    Returns ClassConstructor<Relationship> | false

                                                                                                                                                WithRelationshipTest: (object: any, relationship: any, em: EntityManager, session?: ClientSession) => Promise<string | true>

                                                                                                                                                Type declaration

                                                                                                                                                  • (object: any, relationship: any, em: EntityManager, session?: ClientSession): Promise<string | true>
                                                                                                                                                  • Parameters

                                                                                                                                                    • object: any
                                                                                                                                                    • relationship: any
                                                                                                                                                    • em: EntityManager
                                                                                                                                                    • Optional session: ClientSession

                                                                                                                                                    Returns Promise<string | true>

                                                                                                                                                WithValidRelationship: (object: any, relationship: any, em: EntityManager) => Promise<string | true>

                                                                                                                                                Type declaration

                                                                                                                                                  • (object: any, relationship: any, em: EntityManager): Promise<string | true>
                                                                                                                                                  • Parameters

                                                                                                                                                    Returns Promise<string | true>

                                                                                                                                                Variables

                                                                                                                                                DEBUG: "nestjs-mongo" = 'nestjs-mongo'
                                                                                                                                                DEFAULT_CONNECTION_NAME: "nestjs-mongo:connection:default" = 'nestjs-mongo:connection:default'
                                                                                                                                                EXCLUDED_PREFIXES: string[] = ...
                                                                                                                                                INDEX_METADATA_NAME: "nestjs-mongo:index" = 'nestjs-mongo:index'
                                                                                                                                                MONGO_SESSION_KEY: "ns_sessionloader:mongo_client_session" = 'ns_sessionloader:mongo_client_session'
                                                                                                                                                NAMED_CONNECTION_TOKEN: "nestjs-mongo:connection:name" = 'nestjs-mongo:connection:name'
                                                                                                                                                RELATIONSHIP_LIST_METADATA_NAME: "nestjs-mongo:relationship_list" = 'nestjs-mongo:relationship_list'
                                                                                                                                                RELATIONSHIP_METADATA_NAME: "nestjs-mongo:relationship" = 'nestjs-mongo:relationship'
                                                                                                                                                SESSION_LOADER_NAMESPACE: "nestjs-mongo:ns_sessionloader" = 'nestjs-mongo:ns_sessionloader'

                                                                                                                                                Functions

                                                                                                                                                • Collection(name: string): (target: any) => void
                                                                                                                                                • Parameters

                                                                                                                                                  • name: string

                                                                                                                                                  Returns (target: any) => void

                                                                                                                                                    • (target: any): void
                                                                                                                                                    • Parameters

                                                                                                                                                      • target: any

                                                                                                                                                      Returns void

                                                                                                                                                • Index(metadata?: Partial<IndexDescription> & CreateIndexesOptions): (target: any, property: string) => void
                                                                                                                                                • Parameters

                                                                                                                                                  • Optional metadata: Partial<IndexDescription> & CreateIndexesOptions

                                                                                                                                                  Returns (target: any, property: string) => void

                                                                                                                                                    • (target: any, property: string): void
                                                                                                                                                    • Parameters

                                                                                                                                                      • target: any
                                                                                                                                                      • property: string

                                                                                                                                                      Returns void

                                                                                                                                                • InjectEntityManager(connectionName?: string): (target: object, key: string | symbol, index?: number) => void
                                                                                                                                                • Parameters

                                                                                                                                                  • connectionName: string = DEFAULT_CONNECTION_NAME

                                                                                                                                                  Returns (target: object, key: string | symbol, index?: number) => void

                                                                                                                                                    • (target: object, key: string | symbol, index?: number): void
                                                                                                                                                    • -

                                                                                                                                                      Decorator that marks a constructor parameter as a target for -Dependency Injection (DI).

                                                                                                                                                      -

                                                                                                                                                      Any injected provider must be visible within the module scope (loosely -speaking, the containing module) of the class it is being injected into. This -can be done by:

                                                                                                                                                      -
                                                                                                                                                        -
                                                                                                                                                      • defining the provider in the same module scope
                                                                                                                                                      • -
                                                                                                                                                      • exporting the provider from one module scope and importing that module into the -module scope of the class being injected into
                                                                                                                                                      • -
                                                                                                                                                      • exporting the provider from a module that is marked as global using the -@Global() decorator
                                                                                                                                                      • -
                                                                                                                                                      - - -

                                                                                                                                                      Injection tokens

                                                                                                                                                      -
                                                                                                                                                      -

                                                                                                                                                      Can be types (class names), strings or symbols. This depends on how the -provider with which it is associated was defined. Providers defined with the -@Injectable() decorator use the class name. Custom Providers may use strings -or symbols as the injection token.

                                                                                                                                                      -
                                                                                                                                                      see

                                                                                                                                                      Providers

                                                                                                                                                      -
                                                                                                                                                      see

                                                                                                                                                      Custom Providers

                                                                                                                                                      -
                                                                                                                                                      see

                                                                                                                                                      Injection Scopes

                                                                                                                                                      -
                                                                                                                                                      publicapi

                                                                                                                                                      Parameters

                                                                                                                                                      • target: object
                                                                                                                                                      • key: string | symbol
                                                                                                                                                      • Optional index: number

                                                                                                                                                      Returns void

                                                                                                                                                • InjectEntityRepository(entity: ClassConstructor<any>, connectionName?: string): (target: object, key: string | symbol, index?: number) => void
                                                                                                                                                • Parameters

                                                                                                                                                  • entity: ClassConstructor<any>
                                                                                                                                                  • connectionName: string = DEFAULT_CONNECTION_NAME

                                                                                                                                                  Returns (target: object, key: string | symbol, index?: number) => void

                                                                                                                                                    • (target: object, key: string | symbol, index?: number): void
                                                                                                                                                    • -

                                                                                                                                                      Decorator that marks a constructor parameter as a target for -Dependency Injection (DI).

                                                                                                                                                      -

                                                                                                                                                      Any injected provider must be visible within the module scope (loosely -speaking, the containing module) of the class it is being injected into. This -can be done by:

                                                                                                                                                      -
                                                                                                                                                        -
                                                                                                                                                      • defining the provider in the same module scope
                                                                                                                                                      • -
                                                                                                                                                      • exporting the provider from one module scope and importing that module into the -module scope of the class being injected into
                                                                                                                                                      • -
                                                                                                                                                      • exporting the provider from a module that is marked as global using the -@Global() decorator
                                                                                                                                                      • -
                                                                                                                                                      - - -

                                                                                                                                                      Injection tokens

                                                                                                                                                      -
                                                                                                                                                      -

                                                                                                                                                      Can be types (class names), strings or symbols. This depends on how the -provider with which it is associated was defined. Providers defined with the -@Injectable() decorator use the class name. Custom Providers may use strings -or symbols as the injection token.

                                                                                                                                                      -
                                                                                                                                                      see

                                                                                                                                                      Providers

                                                                                                                                                      -
                                                                                                                                                      see

                                                                                                                                                      Custom Providers

                                                                                                                                                      -
                                                                                                                                                      see

                                                                                                                                                      Injection Scopes

                                                                                                                                                      -
                                                                                                                                                      publicapi

                                                                                                                                                      Parameters

                                                                                                                                                      • target: object
                                                                                                                                                      • key: string | symbol
                                                                                                                                                      • Optional index: number

                                                                                                                                                      Returns void

                                                                                                                                                • InjectMongoClient(connectionName?: string): (target: object, key: string | symbol, index?: number) => void
                                                                                                                                                • Parameters

                                                                                                                                                  • connectionName: string = DEFAULT_CONNECTION_NAME

                                                                                                                                                  Returns (target: object, key: string | symbol, index?: number) => void

                                                                                                                                                    • (target: object, key: string | symbol, index?: number): void
                                                                                                                                                    • -

                                                                                                                                                      Decorator that marks a constructor parameter as a target for -Dependency Injection (DI).

                                                                                                                                                      -

                                                                                                                                                      Any injected provider must be visible within the module scope (loosely -speaking, the containing module) of the class it is being injected into. This -can be done by:

                                                                                                                                                      -
                                                                                                                                                        -
                                                                                                                                                      • defining the provider in the same module scope
                                                                                                                                                      • -
                                                                                                                                                      • exporting the provider from one module scope and importing that module into the -module scope of the class being injected into
                                                                                                                                                      • -
                                                                                                                                                      • exporting the provider from a module that is marked as global using the -@Global() decorator
                                                                                                                                                      • -
                                                                                                                                                      - - -

                                                                                                                                                      Injection tokens

                                                                                                                                                      -
                                                                                                                                                      -

                                                                                                                                                      Can be types (class names), strings or symbols. This depends on how the -provider with which it is associated was defined. Providers defined with the -@Injectable() decorator use the class name. Custom Providers may use strings -or symbols as the injection token.

                                                                                                                                                      -
                                                                                                                                                      see

                                                                                                                                                      Providers

                                                                                                                                                      -
                                                                                                                                                      see

                                                                                                                                                      Custom Providers

                                                                                                                                                      -
                                                                                                                                                      see

                                                                                                                                                      Injection Scopes

                                                                                                                                                      -
                                                                                                                                                      publicapi

                                                                                                                                                      Parameters

                                                                                                                                                      • target: object
                                                                                                                                                      • key: string | symbol
                                                                                                                                                      • Optional index: number

                                                                                                                                                      Returns void

                                                                                                                                                • IsUnique(options?: IsUniqueOptions): (target: any, propertyName: string) => void
                                                                                                                                                • Type parameters

                                                                                                                                                  Parameters

                                                                                                                                                  Returns <TFunction, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void

                                                                                                                                                    • <TFunction, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>): void
                                                                                                                                                    • -

                                                                                                                                                      Function that returns a new decorator that applies all decorators provided by param

                                                                                                                                                      -

                                                                                                                                                      Useful to build new decorators (or a decorator factory) encapsulating multiple decorators related with the same feature

                                                                                                                                                      -
                                                                                                                                                      publicapi

                                                                                                                                                      Type parameters

                                                                                                                                                      • TFunction: Function

                                                                                                                                                      • Y

                                                                                                                                                      Parameters

                                                                                                                                                      • target: object | TFunction
                                                                                                                                                      • Optional propertyKey: string | symbol
                                                                                                                                                      • Optional descriptor: TypedPropertyDescriptor<Y>

                                                                                                                                                      Returns void

                                                                                                                                                • Serializable(): (target: any) => void
                                                                                                                                                • -

                                                                                                                                                  Extend a class to be serializable, add 2 methods serialize() and toJSON()

                                                                                                                                                  -

                                                                                                                                                  Returns (target: any) => void

                                                                                                                                                    • (target: any): void
                                                                                                                                                    • Parameters

                                                                                                                                                      • target: any

                                                                                                                                                      Returns void

                                                                                                                                                • SlugDecorator<T>(target: any, key: string, config: ISlugifyOptions<T>): void
                                                                                                                                                • Slugify<T>(config: ISlugifyOptions<T>): <TFunction, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void
                                                                                                                                                • Type parameters

                                                                                                                                                  • T = any

                                                                                                                                                  Parameters

                                                                                                                                                  • config: ISlugifyOptions<T>

                                                                                                                                                  Returns <TFunction, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void

                                                                                                                                                    • <TFunction, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>): void
                                                                                                                                                    • -

                                                                                                                                                      Function that returns a new decorator that applies all decorators provided by param

                                                                                                                                                      -

                                                                                                                                                      Useful to build new decorators (or a decorator factory) encapsulating multiple decorators related with the same feature

                                                                                                                                                      -
                                                                                                                                                      publicapi

                                                                                                                                                      Type parameters

                                                                                                                                                      • TFunction: Function

                                                                                                                                                      • Y

                                                                                                                                                      Parameters

                                                                                                                                                      • target: object | TFunction
                                                                                                                                                      • Optional propertyKey: string | symbol
                                                                                                                                                      • Optional descriptor: TypedPropertyDescriptor<Y>

                                                                                                                                                      Returns void

                                                                                                                                                • TypeObjectId(isArray?: boolean): <TFunction, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void
                                                                                                                                                • Parameters

                                                                                                                                                  • Optional isArray: boolean

                                                                                                                                                  Returns <TFunction, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void

                                                                                                                                                    • <TFunction, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>): void
                                                                                                                                                    • -

                                                                                                                                                      Function that returns a new decorator that applies all decorators provided by param

                                                                                                                                                      -

                                                                                                                                                      Useful to build new decorators (or a decorator factory) encapsulating multiple decorators related with the same feature

                                                                                                                                                      -
                                                                                                                                                      publicapi

                                                                                                                                                      Type parameters

                                                                                                                                                      • TFunction: Function

                                                                                                                                                      • Y

                                                                                                                                                      Parameters

                                                                                                                                                      • target: object | TFunction
                                                                                                                                                      • Optional propertyKey: string | symbol
                                                                                                                                                      • Optional descriptor: TypedPropertyDescriptor<Y>

                                                                                                                                                      Returns void

                                                                                                                                                • ensureSequentialTransaction<F>(ctx: ClientSessionContext, jobFn: F): Promise<ReturnType<F>>
                                                                                                                                                • Type parameters

                                                                                                                                                  • F: () => Promise<any>

                                                                                                                                                  Parameters

                                                                                                                                                  • ctx: ClientSessionContext
                                                                                                                                                  • jobFn: F

                                                                                                                                                  Returns Promise<ReturnType<F>>

                                                                                                                                                • fromPlain<Model>(classType: ClassConstructor<Model>, data: object, options?: ClassTransformOptions): Model
                                                                                                                                                • getConfigToken(connectionName?: string): string
                                                                                                                                                • getConnectionToken(connectionName?: string): string
                                                                                                                                                • getDataloaderToken(model: string, connectionName?: string): string
                                                                                                                                                • getEntityManagerToken(connectionName?: string): string
                                                                                                                                                • getEntityRepositoryToken(model: string, connectionName?: string): string
                                                                                                                                                • getIndexMetadata(target: any, property: string): IndexMetadata | undefined
                                                                                                                                                • getObjectName(o: Object): string
                                                                                                                                                • getRelationshipCascadesMetadata<Parent, Child>(parent: ClassConstructor<Parent>, relationshipType: ClassConstructor<Child>): RelationshipCascade<Child> | undefined
                                                                                                                                                • -

                                                                                                                                                  Get relationship metadata

                                                                                                                                                  -

                                                                                                                                                  Type parameters

                                                                                                                                                  Parameters

                                                                                                                                                  • target: Function
                                                                                                                                                    -

                                                                                                                                                    A class constructor

                                                                                                                                                    -
                                                                                                                                                  • property: string
                                                                                                                                                    -

                                                                                                                                                    The property that was set as relationship

                                                                                                                                                    -
                                                                                                                                                  • Optional em: EntityManager
                                                                                                                                                    -

                                                                                                                                                    The entity manager (only required if the relationship target type is set as a string)

                                                                                                                                                    -
                                                                                                                                                  • Optional obj: any
                                                                                                                                                    -

                                                                                                                                                    The instance of the entity (only required if the type of the relationship is dynamic)

                                                                                                                                                    -

                                                                                                                                                  Returns RelationshipMetadata<R>

                                                                                                                                                • getRelationshipsCascadesMetadata<Parent>(target: ClassConstructor<Parent>): RelationshipCascade[]
                                                                                                                                                • isClass(fn: any): boolean
                                                                                                                                                • merge<Model>(entity: Model, data: Model, excludePrefixes?: string[]): Model
                                                                                                                                                • Type parameters

                                                                                                                                                  Parameters

                                                                                                                                                  • entity: Model
                                                                                                                                                    -

                                                                                                                                                    The model to hydrate

                                                                                                                                                    -
                                                                                                                                                  • data: Model
                                                                                                                                                    -

                                                                                                                                                    The data to merge into the entity

                                                                                                                                                    -
                                                                                                                                                  • Optional excludePrefixes: string[]
                                                                                                                                                    -

                                                                                                                                                    The prefixes to excludes (if the source contains key ith prefix)

                                                                                                                                                    -

                                                                                                                                                  Returns Model

                                                                                                                                                • serialize(): Record<string, any>
                                                                                                                                                • setRelationshipsCascadesMetadata<Child>(ChildClass: ClassConstructor<Child>, manager: EntityManager): void
                                                                                                                                                • toJSON(): {}
                                                                                                                                                • toPlain<T>(data: T): Record<string, any>
                                                                                                                                                • transformObjectId(type: TransformationType, value: string | ObjectId): undefined | string | ObjectId

                                                                                                                                                Legend

                                                                                                                                                • Constructor
                                                                                                                                                • Property
                                                                                                                                                • Method
                                                                                                                                                • Property
                                                                                                                                                • Method
                                                                                                                                                • Inherited constructor
                                                                                                                                                • Inherited method
                                                                                                                                                • Protected property
                                                                                                                                                • Protected method
                                                                                                                                                • Private property
                                                                                                                                                • Static method

                                                                                                                                                Settings

                                                                                                                                                Theme

                                                                                                                                                \ No newline at end of file +NestJS Mongo - v0.15.0
                                                                                                                                                NestJS Mongo - v0.15.0
                                                                                                                                                  Preparing search index...

                                                                                                                                                    NestJS Mongo - v0.15.0

                                                                                                                                                    Enumerations

                                                                                                                                                    CascadeType

                                                                                                                                                    Classes

                                                                                                                                                    Entity
                                                                                                                                                    EntityManager
                                                                                                                                                    EntityRepository
                                                                                                                                                    EntityService
                                                                                                                                                    Filter
                                                                                                                                                    HistoryAction
                                                                                                                                                    HistoryActions
                                                                                                                                                    IsUniqueConstraint
                                                                                                                                                    IsValidRelationshipConstraint
                                                                                                                                                    MongoModule
                                                                                                                                                    ObjectIdPipe
                                                                                                                                                    PaginatedData
                                                                                                                                                    RelationshipPipe
                                                                                                                                                    RequiredRelationshipPipe
                                                                                                                                                    SessionLoaderMiddleware
                                                                                                                                                    SessionLoaderService

                                                                                                                                                    Interfaces

                                                                                                                                                    BaseEntityInterface
                                                                                                                                                    BaseRelationshipMetadata
                                                                                                                                                    ChildRelationshipMetadata
                                                                                                                                                    EntityInterface
                                                                                                                                                    IndexMetadata
                                                                                                                                                    IsValidRelationshipOptions
                                                                                                                                                    IsValidRelationshipValidationArguments
                                                                                                                                                    MongoFeatureModelOptions
                                                                                                                                                    MongoFeatureOptions
                                                                                                                                                    MongoModuleAsyncOptions
                                                                                                                                                    MongoModuleOptions
                                                                                                                                                    MongoOptionsFactory
                                                                                                                                                    PossibleTypes
                                                                                                                                                    RelationshipCascade
                                                                                                                                                    RelationshipMetadata
                                                                                                                                                    RelationshipMetadataOptions
                                                                                                                                                    SerializableInterface

                                                                                                                                                    Type Aliases

                                                                                                                                                    EventCallback
                                                                                                                                                    ExceptionFactory
                                                                                                                                                    IsUniqueOptions
                                                                                                                                                    RelationshipTypeDescriptor
                                                                                                                                                    WithRelationshipTest
                                                                                                                                                    WithValidRelationship

                                                                                                                                                    Variables

                                                                                                                                                    DEBUG
                                                                                                                                                    DEFAULT_CONNECTION_NAME
                                                                                                                                                    EXCLUDED_PREFIXES
                                                                                                                                                    INDEX_METADATA_NAME
                                                                                                                                                    MONGO_SESSION_KEY
                                                                                                                                                    NAMED_CONNECTION_TOKEN
                                                                                                                                                    RELATIONSHIP_LIST_METADATA_NAME
                                                                                                                                                    RELATIONSHIP_METADATA_NAME
                                                                                                                                                    SESSION_LOADER_NAMESPACE

                                                                                                                                                    Functions

                                                                                                                                                    addRelationshipMetadata
                                                                                                                                                    Collection
                                                                                                                                                    ensureSequentialTransaction
                                                                                                                                                    fromPlain
                                                                                                                                                    getConfigToken
                                                                                                                                                    getConnectionToken
                                                                                                                                                    getDataloaderToken
                                                                                                                                                    getEntityManagerToken
                                                                                                                                                    getEntityRepositoryToken
                                                                                                                                                    getIndexMetadata
                                                                                                                                                    getIndexMetadatas
                                                                                                                                                    getObjectName
                                                                                                                                                    getRelationshipCascadesMetadata
                                                                                                                                                    getRelationshipMetadata
                                                                                                                                                    getRelationshipMetadataList
                                                                                                                                                    getRelationshipsCascadesMetadata
                                                                                                                                                    Index
                                                                                                                                                    InjectEntityManager
                                                                                                                                                    InjectEntityRepository
                                                                                                                                                    InjectMongoClient
                                                                                                                                                    isClass
                                                                                                                                                    IsUnique
                                                                                                                                                    IsValidRelationship
                                                                                                                                                    merge
                                                                                                                                                    Relationship
                                                                                                                                                    Serializable
                                                                                                                                                    serialize
                                                                                                                                                    setIndexMetadata
                                                                                                                                                    setRelationshipMetadata
                                                                                                                                                    setRelationshipsCascadesMetadata
                                                                                                                                                    SlugDecorator
                                                                                                                                                    Slugify
                                                                                                                                                    toJSON
                                                                                                                                                    toPlain
                                                                                                                                                    transformObjectId
                                                                                                                                                    TypeObjectId
                                                                                                                                                    diff --git a/docs/types/EventCallback.html b/docs/types/EventCallback.html new file mode 100644 index 00000000..60cda4d5 --- /dev/null +++ b/docs/types/EventCallback.html @@ -0,0 +1 @@ +EventCallback | NestJS Mongo - v0.15.0
                                                                                                                                                    NestJS Mongo - v0.15.0
                                                                                                                                                      Preparing search index...

                                                                                                                                                      Type Alias EventCallback<Model>

                                                                                                                                                      EventCallback: (eventName: string, change: ChangeStreamDocument<Model>) => void

                                                                                                                                                      Type Parameters

                                                                                                                                                      Type declaration

                                                                                                                                                        • (eventName: string, change: ChangeStreamDocument<Model>): void
                                                                                                                                                        • Parameters

                                                                                                                                                          • eventName: string
                                                                                                                                                          • change: ChangeStreamDocument<Model>

                                                                                                                                                          Returns void

                                                                                                                                                      diff --git a/docs/types/ExceptionFactory.html b/docs/types/ExceptionFactory.html new file mode 100644 index 00000000..032b1d75 --- /dev/null +++ b/docs/types/ExceptionFactory.html @@ -0,0 +1 @@ +ExceptionFactory | NestJS Mongo - v0.15.0
                                                                                                                                                      NestJS Mongo - v0.15.0
                                                                                                                                                        Preparing search index...

                                                                                                                                                        Type Alias ExceptionFactory

                                                                                                                                                        ExceptionFactory: (errors: ValidationError[]) => any

                                                                                                                                                        Type declaration

                                                                                                                                                          • (errors: ValidationError[]): any
                                                                                                                                                          • Parameters

                                                                                                                                                            • errors: ValidationError[]

                                                                                                                                                            Returns any

                                                                                                                                                        diff --git a/docs/types/IsUniqueOptions.html b/docs/types/IsUniqueOptions.html new file mode 100644 index 00000000..2987e203 --- /dev/null +++ b/docs/types/IsUniqueOptions.html @@ -0,0 +1 @@ +IsUniqueOptions | NestJS Mongo - v0.15.0
                                                                                                                                                        NestJS Mongo - v0.15.0
                                                                                                                                                          Preparing search index...

                                                                                                                                                          Type Alias IsUniqueOptions

                                                                                                                                                          IsUniqueOptions: ValidationOptions & {
                                                                                                                                                              keys?: string[];
                                                                                                                                                              noIndex?: boolean;
                                                                                                                                                              sparse?: boolean;
                                                                                                                                                          }
                                                                                                                                                          diff --git a/docs/types/RelationshipTypeDescriptor.html b/docs/types/RelationshipTypeDescriptor.html new file mode 100644 index 00000000..e288a6b4 --- /dev/null +++ b/docs/types/RelationshipTypeDescriptor.html @@ -0,0 +1,2 @@ +RelationshipTypeDescriptor | NestJS Mongo - v0.15.0
                                                                                                                                                          NestJS Mongo - v0.15.0
                                                                                                                                                            Preparing search index...

                                                                                                                                                            Type Alias RelationshipTypeDescriptor<Relationship>

                                                                                                                                                            RelationshipTypeDescriptor: (obj?: any) => Type<Relationship> | false

                                                                                                                                                            The signature of the function used to determine the type of a relationship target

                                                                                                                                                            +

                                                                                                                                                            Type Parameters

                                                                                                                                                            Type declaration

                                                                                                                                                            diff --git a/docs/types/WithRelationshipTest.html b/docs/types/WithRelationshipTest.html new file mode 100644 index 00000000..d1016d28 --- /dev/null +++ b/docs/types/WithRelationshipTest.html @@ -0,0 +1 @@ +WithRelationshipTest | NestJS Mongo - v0.15.0
                                                                                                                                                            NestJS Mongo - v0.15.0
                                                                                                                                                              Preparing search index...

                                                                                                                                                              Type Alias WithRelationshipTest

                                                                                                                                                              WithRelationshipTest: (
                                                                                                                                                                  object: any,
                                                                                                                                                                  relationship: any,
                                                                                                                                                                  em: EntityManager,
                                                                                                                                                                  session?: ClientSession,
                                                                                                                                                              ) => Promise<string | true>

                                                                                                                                                              Type declaration

                                                                                                                                                                • (
                                                                                                                                                                      object: any,
                                                                                                                                                                      relationship: any,
                                                                                                                                                                      em: EntityManager,
                                                                                                                                                                      session?: ClientSession,
                                                                                                                                                                  ): Promise<string | true>
                                                                                                                                                                • Parameters

                                                                                                                                                                  • object: any
                                                                                                                                                                  • relationship: any
                                                                                                                                                                  • em: EntityManager
                                                                                                                                                                  • Optionalsession: ClientSession

                                                                                                                                                                  Returns Promise<string | true>

                                                                                                                                                              diff --git a/docs/types/WithValidRelationship.html b/docs/types/WithValidRelationship.html new file mode 100644 index 00000000..a2421f5f --- /dev/null +++ b/docs/types/WithValidRelationship.html @@ -0,0 +1 @@ +WithValidRelationship | NestJS Mongo - v0.15.0
                                                                                                                                                              NestJS Mongo - v0.15.0
                                                                                                                                                                Preparing search index...

                                                                                                                                                                Type Alias WithValidRelationship

                                                                                                                                                                WithValidRelationship: (
                                                                                                                                                                    object: any,
                                                                                                                                                                    relationship: any,
                                                                                                                                                                    em: EntityManager,
                                                                                                                                                                ) => Promise<string | true>

                                                                                                                                                                Type declaration

                                                                                                                                                                  • (object: any, relationship: any, em: EntityManager): Promise<string | true>
                                                                                                                                                                  • Parameters

                                                                                                                                                                    Returns Promise<string | true>

                                                                                                                                                                diff --git a/docs/variables/DEBUG.html b/docs/variables/DEBUG.html new file mode 100644 index 00000000..b309f9fc --- /dev/null +++ b/docs/variables/DEBUG.html @@ -0,0 +1 @@ +DEBUG | NestJS Mongo - v0.15.0
                                                                                                                                                                NestJS Mongo - v0.15.0
                                                                                                                                                                  Preparing search index...

                                                                                                                                                                  Variable DEBUGConst

                                                                                                                                                                  DEBUG: "nestjs-mongo" = 'nestjs-mongo'
                                                                                                                                                                  diff --git a/docs/variables/DEFAULT_CONNECTION_NAME.html b/docs/variables/DEFAULT_CONNECTION_NAME.html new file mode 100644 index 00000000..33105097 --- /dev/null +++ b/docs/variables/DEFAULT_CONNECTION_NAME.html @@ -0,0 +1 @@ +DEFAULT_CONNECTION_NAME | NestJS Mongo - v0.15.0
                                                                                                                                                                  NestJS Mongo - v0.15.0
                                                                                                                                                                    Preparing search index...

                                                                                                                                                                    Variable DEFAULT_CONNECTION_NAMEConst

                                                                                                                                                                    DEFAULT_CONNECTION_NAME: "nestjs-mongo:connection:default" = 'nestjs-mongo:connection:default'
                                                                                                                                                                    diff --git a/docs/variables/EXCLUDED_PREFIXES.html b/docs/variables/EXCLUDED_PREFIXES.html new file mode 100644 index 00000000..05f53b05 --- /dev/null +++ b/docs/variables/EXCLUDED_PREFIXES.html @@ -0,0 +1 @@ +EXCLUDED_PREFIXES | NestJS Mongo - v0.15.0
                                                                                                                                                                    NestJS Mongo - v0.15.0
                                                                                                                                                                      Preparing search index...

                                                                                                                                                                      Variable EXCLUDED_PREFIXESConst

                                                                                                                                                                      EXCLUDED_PREFIXES: string[] = ...
                                                                                                                                                                      diff --git a/docs/variables/INDEX_METADATA_NAME.html b/docs/variables/INDEX_METADATA_NAME.html new file mode 100644 index 00000000..192438ff --- /dev/null +++ b/docs/variables/INDEX_METADATA_NAME.html @@ -0,0 +1 @@ +INDEX_METADATA_NAME | NestJS Mongo - v0.15.0
                                                                                                                                                                      NestJS Mongo - v0.15.0
                                                                                                                                                                        Preparing search index...

                                                                                                                                                                        Variable INDEX_METADATA_NAMEConst

                                                                                                                                                                        INDEX_METADATA_NAME: "nestjs-mongo:index" = 'nestjs-mongo:index'
                                                                                                                                                                        diff --git a/docs/variables/MONGO_SESSION_KEY.html b/docs/variables/MONGO_SESSION_KEY.html new file mode 100644 index 00000000..490afcd6 --- /dev/null +++ b/docs/variables/MONGO_SESSION_KEY.html @@ -0,0 +1 @@ +MONGO_SESSION_KEY | NestJS Mongo - v0.15.0
                                                                                                                                                                        NestJS Mongo - v0.15.0
                                                                                                                                                                          Preparing search index...

                                                                                                                                                                          Variable MONGO_SESSION_KEYConst

                                                                                                                                                                          MONGO_SESSION_KEY: "ns_sessionloader:mongo_client_session" = 'ns_sessionloader:mongo_client_session'
                                                                                                                                                                          diff --git a/docs/variables/NAMED_CONNECTION_TOKEN.html b/docs/variables/NAMED_CONNECTION_TOKEN.html new file mode 100644 index 00000000..b317f883 --- /dev/null +++ b/docs/variables/NAMED_CONNECTION_TOKEN.html @@ -0,0 +1 @@ +NAMED_CONNECTION_TOKEN | NestJS Mongo - v0.15.0
                                                                                                                                                                          NestJS Mongo - v0.15.0
                                                                                                                                                                            Preparing search index...

                                                                                                                                                                            Variable NAMED_CONNECTION_TOKENConst

                                                                                                                                                                            NAMED_CONNECTION_TOKEN: "nestjs-mongo:connection:name" = 'nestjs-mongo:connection:name'
                                                                                                                                                                            diff --git a/docs/variables/RELATIONSHIP_LIST_METADATA_NAME.html b/docs/variables/RELATIONSHIP_LIST_METADATA_NAME.html new file mode 100644 index 00000000..56aa64ec --- /dev/null +++ b/docs/variables/RELATIONSHIP_LIST_METADATA_NAME.html @@ -0,0 +1 @@ +RELATIONSHIP_LIST_METADATA_NAME | NestJS Mongo - v0.15.0
                                                                                                                                                                            NestJS Mongo - v0.15.0
                                                                                                                                                                              Preparing search index...

                                                                                                                                                                              Variable RELATIONSHIP_LIST_METADATA_NAMEConst

                                                                                                                                                                              RELATIONSHIP_LIST_METADATA_NAME: "nestjs-mongo:relationship_list" = 'nestjs-mongo:relationship_list'
                                                                                                                                                                              diff --git a/docs/variables/RELATIONSHIP_METADATA_NAME.html b/docs/variables/RELATIONSHIP_METADATA_NAME.html new file mode 100644 index 00000000..5b52fac3 --- /dev/null +++ b/docs/variables/RELATIONSHIP_METADATA_NAME.html @@ -0,0 +1 @@ +RELATIONSHIP_METADATA_NAME | NestJS Mongo - v0.15.0
                                                                                                                                                                              NestJS Mongo - v0.15.0
                                                                                                                                                                                Preparing search index...

                                                                                                                                                                                Variable RELATIONSHIP_METADATA_NAMEConst

                                                                                                                                                                                RELATIONSHIP_METADATA_NAME: "nestjs-mongo:relationship" = 'nestjs-mongo:relationship'
                                                                                                                                                                                diff --git a/docs/variables/SESSION_LOADER_NAMESPACE.html b/docs/variables/SESSION_LOADER_NAMESPACE.html new file mode 100644 index 00000000..f5fc27a7 --- /dev/null +++ b/docs/variables/SESSION_LOADER_NAMESPACE.html @@ -0,0 +1 @@ +SESSION_LOADER_NAMESPACE | NestJS Mongo - v0.15.0
                                                                                                                                                                                NestJS Mongo - v0.15.0
                                                                                                                                                                                  Preparing search index...

                                                                                                                                                                                  Variable SESSION_LOADER_NAMESPACEConst

                                                                                                                                                                                  SESSION_LOADER_NAMESPACE: "nestjs-mongo:ns_sessionloader" = 'nestjs-mongo:ns_sessionloader'
                                                                                                                                                                                  diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..f8746986 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,23 @@ +module.exports = { + languageOptions: { + globals: { + node: true + }, + parserOptions: { + project: './tsconfig.json' + } + }, + ignores: ['typedoc.js', '**/docs/**', '**/node_modules/**', '**/dist/**', '**/build/**', '**/lib/**'], + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/eslint-recommended', + 'plugin:@typescript-eslint/recommended', + 'prettier' + ], + root: true, + rules: { + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-empty-interface': 'off' + } +} diff --git a/package.json b/package.json index 26608987..c75296e3 100755 --- a/package.json +++ b/package.json @@ -1,95 +1,89 @@ { - "name": "nestjs-mongo", - "version": "0.14.3", - "description": "A NestJS module that provide a simple mongodb orm like", - "keywords": [ - "nestjs", - "module", - "database", - "mongodb", - "mongo" + "name": "nestjs-mongo", + "version": "0.15.0", + "description": "A NestJS module that provide a simple mongodb orm like", + "keywords": [ + "nestjs", + "module", + "database", + "mongodb", + "mongo" + ], + "main": "./dist/index.js", + "types": "./dist/index.d.ts", + "repository": "git@github.com:Pop-Code/nestjs-mongo.git", + "author": "Rmannn ", + "license": "MIT", + "peerDependencies": { + "@nestjs/common": "^11", + "@nestjs/core": "^11", + "class-validator": "^0.14", + "mongodb": "^6", + "reflect-metadata": "^0.1.13" + }, + "dependencies": { + "class-transformer": "^0.5.1", + "cls-hooked": "^4.2.2", + "debug": "^4.4.1", + "lodash": "^4.17.21", + "slugify": "^1.6.6", + "uuid": "^11.1.0" + }, + "devDependencies": { + "@nestjs/common": "^11.1.3", + "@nestjs/core": "^11.1.3", + "@nestjs/platform-express": "^11.1.3", + "@nestjs/testing": "^11.1.3", + "@types/cls-hooked": "^4.3.9", + "@types/debug": "^4.1.12", + "@types/jest": "^30.0.0", + "@types/lodash": "^4.14.191", + "@types/node": "^24.0.7", + "@types/supertest": "^6.0.3", + "class-validator": "^0.14.2", + "jest": "^30.0.3", + "mongodb": "^6.17.0", + "oxlint": "^1.4.0", + "prettier": "^3.6.2", + "reflect-metadata": "^0.2.2", + "rxjs": "^7.8.2", + "supertest": "^7.1.1", + "ts-jest": "^29.4.0", + "ts-node": "^10.9.2", + "tsconfig-paths": "^4.2.0", + "typedoc": "^0.28.7", + "typescript": "^5.8.3" + }, + "scripts": { + "build": "rm -Rf dist && tsc -b tsconfig.build.json", + "format": "prettier \"**/*.ts\" --ignore-path ./.prettierignore --write && git status", + "lint": "oxlint .", + "doc": "rm -Rf ./docs && typedoc ./src && touch ./docs/.nojekyll", + "test": "jest", + "test:watch": "jest --watch", + "test:cov": "jest --coverage", + "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand" + }, + "jest": { + "moduleFileExtensions": [ + "js", + "json", + "ts" ], - "main": "./dist/index.js", - "types": "./dist/index.d.ts", - "repository": "git@github.com:Pop-Code/nestjs-mongo.git", - "author": "Rmannn ", - "license": "MIT", - "peerDependencies": { - "@nestjs/common": "^8 || ^9", - "@nestjs/core": "^8 || ^9", - "class-validator": "^0.13.1 || ^0.14", - "mongodb": "^4.5.0", - "reflect-metadata": "^0.1.13" + "rootDir": ".", + "testRegex": ".spec.(t|j)s$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" }, - "dependencies": { - "class-transformer": "0.5.1", - "cls-hooked": "4.2.2", - "debug": "4.3.4", - "global": "4.4.0", - "lodash": "4.17.21", - "slugify": "1.6.5", - "uuid": "8.3.2" - }, - "devDependencies": { - "@nestjs/common": "^9.2.1", - "@nestjs/core": "^9.2.1", - "@nestjs/platform-express": "^9.2.1", - "@nestjs/testing": "^9.2.1", - "@types/cls-hooked": "^4.3.3", - "@types/debug": "^4.1.7", - "@types/jest": "^27.4.1", - "@types/lodash": "^4.14.191", - "@types/node": "^18.11.15", - "@types/supertest": "^2.0.12", - "@typescript-eslint/eslint-plugin": "^5.21.0", - "@typescript-eslint/parser": "^5.21.0", - "class-validator": "^0.14.0", - "eslint": "^8.14.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-import": "^2.26.0", - "jest": "^27.5.1", - "mongodb": "^4.12.1", - "prettier": "^2.8.1", - "reflect-metadata": "^0.1.13", - "rxjs": "^7.6.0", - "supertest": "^6.3.3", - "ts-jest": "^27.1.4", - "ts-node": "^10.7.0", - "tsconfig-paths": "^3.14.1", - "typedoc": "^0.23.22", - "typescript": "^4.9.4" - }, - "scripts": { - "build": "rm -Rf dist && tsc -b tsconfig.build.json", - "format": "prettier \"**/*.ts\" --ignore-path ./.prettierignore --write && git status", - "lint": "eslint .", - "doc": "rm -Rf ./docs && typedoc ./src && touch ./docs/.nojekyll", - "test": "jest", - "test:watch": "jest --watch", - "test:cov": "jest --coverage", - "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand" - }, - "jest": { - "moduleFileExtensions": [ - "js", - "json", - "ts" - ], - "rootDir": ".", - "testRegex": ".spec.(t|j)s$", - "transform": { - "^.+\\.(t|j)s$": "ts-jest" - }, - "collectCoverageFrom": [ - "**/*.ts", - "!index.ts", - "!test/**", - "!dist/**" - ], - "coverageDirectory": "../coverage" - }, - "engines": { - "node": ">=0.14" - }, - "packageManager": "yarn@3.2.0" + "collectCoverageFrom": [ + "**/*.ts", + "!index.ts", + "!test/**", + "!dist/**" + ], + "coverageDirectory": "./coverage" + }, + "engines": { + "node": ">=0.14" + } } diff --git a/src/constants.ts b/src/constants.ts index 495ee929..67683910 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,8 +1,8 @@ -export const DEBUG = 'nestjs-mongo'; -export const DEFAULT_CONNECTION_NAME = 'nestjs-mongo:connection:default'; -export const NAMED_CONNECTION_TOKEN = 'nestjs-mongo:connection:name'; -export const RELATIONSHIP_METADATA_NAME = 'nestjs-mongo:relationship'; -export const RELATIONSHIP_LIST_METADATA_NAME = 'nestjs-mongo:relationship_list'; -export const INDEX_METADATA_NAME = 'nestjs-mongo:index'; -export const SESSION_LOADER_NAMESPACE = 'nestjs-mongo:ns_sessionloader'; -export const MONGO_SESSION_KEY = 'ns_sessionloader:mongo_client_session'; +export const DEBUG = 'nestjs-mongo' +export const DEFAULT_CONNECTION_NAME = 'nestjs-mongo:connection:default' +export const NAMED_CONNECTION_TOKEN = 'nestjs-mongo:connection:name' +export const RELATIONSHIP_METADATA_NAME = 'nestjs-mongo:relationship' +export const RELATIONSHIP_LIST_METADATA_NAME = 'nestjs-mongo:relationship_list' +export const INDEX_METADATA_NAME = 'nestjs-mongo:index' +export const SESSION_LOADER_NAMESPACE = 'nestjs-mongo:ns_sessionloader' +export const MONGO_SESSION_KEY = 'ns_sessionloader:mongo_client_session' diff --git a/src/entity/decorators.ts b/src/entity/decorators.ts index 22929198..a1056a3a 100644 --- a/src/entity/decorators.ts +++ b/src/entity/decorators.ts @@ -1,3 +1,3 @@ export function Collection(name: string) { - return (target: any) => Reflect.defineMetadata('mongo:collectionName', name, target); + return (target: any) => Reflect.defineMetadata('mongo:collectionName', name, target) } diff --git a/src/entity/entity.ts b/src/entity/entity.ts index fdc148aa..75f64f13 100644 --- a/src/entity/entity.ts +++ b/src/entity/entity.ts @@ -1,24 +1,24 @@ -import { Type } from 'class-transformer'; -import { IsDate, IsOptional } from 'class-validator'; -import { ObjectId } from 'mongodb'; +import { Type } from 'class-transformer' +import { IsDate, IsOptional } from 'class-validator' +import { ObjectId } from 'mongodb' -import { Serializable, SerializableInterface } from '../serializer'; -import { TypeObjectId } from '../transformer/objectId'; -import { EntityInterface } from './interfaces'; +import { Serializable, SerializableInterface } from '../serializer' +import { TypeObjectId } from '../transformer/objectId' +import { EntityInterface } from './interfaces' export interface Entity extends SerializableInterface {} @Serializable() export abstract class Entity implements EntityInterface { - @TypeObjectId() - _id: ObjectId; + @TypeObjectId() + _id: ObjectId - @Type(() => Date) - @IsDate() - createdAt: Date = new Date(); + @Type(() => Date) + @IsDate() + createdAt: Date = new Date() - @Type(() => Date) - @IsDate() - @IsOptional() - updatedAt?: Date; + @Type(() => Date) + @IsDate() + @IsOptional() + updatedAt?: Date } diff --git a/src/entity/filter.ts b/src/entity/filter.ts index 8bcedc4c..f72a19d3 100644 --- a/src/entity/filter.ts +++ b/src/entity/filter.ts @@ -1,60 +1,60 @@ -import { Transform, Type } from 'class-transformer'; -import { IsArray, IsInt, IsOptional, IsPositive, Matches, Max } from 'class-validator'; +import { Transform, Type } from 'class-transformer' +import { IsArray, IsInt, IsOptional, IsPositive, Matches, Max } from 'class-validator' -import { Serializable, SerializableInterface } from '../serializer'; +import { Serializable, SerializableInterface } from '../serializer' export interface Filter extends SerializableInterface {} @Serializable() export class Filter { - @IsInt() - @IsOptional() - @Type(() => Number) - skip = 0; - - @IsPositive() - @IsOptional() - @IsInt() - @Max(500) - @Type(() => Number) - limit = 50; - - @Transform(({ value }) => (typeof value === 'string' ? value.split(',') : value)) - @IsOptional() - @IsArray() - @Matches(/^(.+):(asc|desc)$/, { each: true }) - orderBy?: string[] = ['_id:asc']; - - getSort(): Array<[string, 1 | -1]> { - if (this.orderBy === undefined) { - return []; - } - return this.orderBy.reduce((sorts: any[], orderString) => { - const order = orderString.split(':'); - const property = order[0]; - const direction = order[1] === 'asc' ? 1 : -1; - sorts.push([property, direction]); - return sorts; - }, []); + @IsInt() + @IsOptional() + @Type(() => Number) + skip = 0 + + @IsPositive() + @IsOptional() + @IsInt() + @Max(500) + @Type(() => Number) + limit = 50 + + @Transform(({ value }) => (typeof value === 'string' ? value.split(',') : value)) + @IsOptional() + @IsArray() + @Matches(/^(.+):(asc|desc)$/, { each: true }) + orderBy?: string[] = ['_id:asc'] + + getSort(): Array<[string, 1 | -1]> { + if (this.orderBy === undefined) { + return [] } - - getSortForAggregation(): { [property: string]: 1 | -1 } { - const sorts = {}; - if (this.orderBy === undefined) { - return sorts; - } - this.orderBy.forEach((sort) => { - const order = sort.split(':'); - const property = order[0]; - const direction = order[1] === 'asc' ? 1 : -1; - sorts[property] = direction; - }, []); - - return sorts; - } - - toQuery() { - const query: any = {}; - return query; + return this.orderBy.reduce((sorts: any[], orderString) => { + const order = orderString.split(':') + const property = order[0] + const direction = order[1] === 'asc' ? 1 : -1 + sorts.push([property, direction]) + return sorts + }, []) + } + + getSortForAggregation(): { [property: string]: 1 | -1 } { + const sorts = {} + if (this.orderBy === undefined) { + return sorts } + this.orderBy.forEach((sort) => { + const order = sort.split(':') + const property = order[0] + const direction = order[1] === 'asc' ? 1 : -1 + sorts[property] = direction + }, []) + + return sorts + } + + toQuery() { + const query: any = {} + return query + } } diff --git a/src/entity/index.ts b/src/entity/index.ts index b50e378f..7faaccb5 100644 --- a/src/entity/index.ts +++ b/src/entity/index.ts @@ -1,8 +1,8 @@ -export * from './interfaces'; -export * from './entity'; -export * from './repository'; -export * from './service'; -export * from './filter'; -export * from './paginated'; -export * from './decorators'; -export * from './manager'; +export * from './interfaces' +export * from './entity' +export * from './repository' +export * from './service' +export * from './filter' +export * from './paginated' +export * from './decorators' +export * from './manager' diff --git a/src/entity/interfaces.ts b/src/entity/interfaces.ts index d01e43da..1b8f048f 100644 --- a/src/entity/interfaces.ts +++ b/src/entity/interfaces.ts @@ -1,11 +1,12 @@ -import { ObjectId } from 'mongodb'; +import { WithId } from 'mongodb' -import { HistoryActions } from '../history'; -import { SerializableInterface } from '../serializer'; +import { HistoryActions } from '../history' +import type { SerializableInterface } from '../serializer' -export interface EntityInterface extends SerializableInterface { - _id?: ObjectId; - createdAt: Date; - updatedAt?: Date; - history?: HistoryActions; +export interface BaseEntityInterface extends SerializableInterface { + createdAt: Date + updatedAt?: Date + history?: HistoryActions } + +export interface EntityInterface extends BaseEntityInterface, WithId {} diff --git a/src/entity/manager.ts b/src/entity/manager.ts index aabc80dc..8a681203 100644 --- a/src/entity/manager.ts +++ b/src/entity/manager.ts @@ -1,512 +1,495 @@ -import { NotFoundException } from '@nestjs/common'; -import { ClassConstructor, ClassTransformOptions } from 'class-transformer'; -import { isEmpty, validate, ValidatorOptions } from 'class-validator'; -import Debug from 'debug'; -import { unset } from 'lodash'; +import { NotFoundException, Type } from '@nestjs/common' +import { ClassTransformOptions } from 'class-transformer' +import { isEmpty, validate, ValidatorOptions } from 'class-validator' +import Debug from 'debug' +import { unset } from 'lodash' import { - ChangeStreamOptions, - ClientSession, - ClientSessionOptions, - CountDocumentsOptions, - DeleteOptions, - Document, - Filter, - FindCursor, - FindOptions, - IndexDescription, - InsertOneOptions, - MongoClient, - ObjectId, - TransactionOptions, - UpdateOptions, - WithId -} from 'mongodb'; - -import { DEBUG } from '../constants'; -import { getObjectName } from '../helpers'; -import { getIndexMetadatas } from '../indexs'; -import { getEntityRepositoryToken, InjectMongoClient } from '../module/injection'; -import { ExceptionFactory } from '../module/interfaces'; -import { CascadeType } from '../relationship/interfaces'; + ChangeStreamOptions, + ClientSession, + ClientSessionOptions, + Condition, + CountDocumentsOptions, + DeleteOptions, + Document, + Filter, + FindCursor, + FindOptions, + IndexDescription, + InsertOneOptions, + MongoClient, + ObjectId, + TransactionOptions, + UpdateOptions +} from 'mongodb' + +import { DEBUG } from '../constants' +import { getObjectName } from '../helpers' +import { getIndexMetadatas } from '../indexs' +import { getEntityRepositoryToken, InjectMongoClient } from '../module/injection' +import type { ExceptionFactory } from '../module/interfaces' +import { CascadeType } from '../relationship/interfaces' import { - getRelationshipMetadata, - getRelationshipsCascadesMetadata, - setRelationshipsCascadesMetadata -} from '../relationship/metadata'; -import { SessionLoaderService } from '../session/service'; -import { fromPlain, merge } from '../transformer/utils'; -import { EntityInterface } from './interfaces'; -import { EntityRepository } from './repository'; + getRelationshipMetadata, + getRelationshipsCascadesMetadata, + setRelationshipsCascadesMetadata +} from '../relationship/metadata' +import { SessionLoaderService } from '../session/service' +import { fromPlain, merge } from '../transformer/utils' +import { EntityInterface } from './interfaces' +import { EntityRepository } from './repository' export class EntityManager { - protected readonly repositories: Map = new Map(); - protected readonly models: Map> = new Map(); - - protected log = Debug(DEBUG + ':EntityManager'); - constructor( - @InjectMongoClient() - protected readonly client: MongoClient, - protected readonly sessionLoaderService: SessionLoaderService, - protected readonly exceptionFactory: ExceptionFactory - ) {} - - async registerModel( - name: string, - model: ClassConstructor - ): Promise { - this.log('Add model %s as %s', model.name, name); - this.models.set(name, model); - - // create collection (this will ensure we can directly use transactions, as mongo@=4.2 can not create collection during tx) - const collectionName = this.getCollectionName(model); - const cursor = this.getDatabase().listCollections({ name: collectionName }); - if ((await cursor.toArray()).length === 0) { - this.log('Creating collection %s for model %s', collectionName, name); - await this.getDatabase().createCollection(collectionName); - } - - setRelationshipsCascadesMetadata(model, this); - await this.createIndexs(model); - - return this; - } - - getModel(id: string): ClassConstructor | undefined { - return this.models.get(id); - } - - getModels(): Map> { - return this.models; - } - - registerRepository = EntityRepository>( - name: string, - repository: R - ): EntityManager { - this.log('Add respoitory %s as %s', repository.constructor.name, name); - this.repositories.set(name, repository); - return this; + protected readonly repositories: Map = new Map() + protected readonly models: Map> = new Map() + + protected log = Debug(DEBUG + ':EntityManager') + constructor( + @InjectMongoClient() + protected readonly client: MongoClient, + protected readonly sessionLoaderService: SessionLoaderService, + protected readonly exceptionFactory: ExceptionFactory + ) {} + + async registerModel(name: string, model: Type): Promise { + this.log('Add model %s as %s', model.name, name) + this.models.set(name, model) + + const collectionName = this.getCollectionName(model) + const cursor = this.getDatabase().listCollections({ name: collectionName }) + if ((await cursor.toArray()).length === 0) { + this.log('Creating collection %s for model %s', collectionName, name) + await this.getDatabase().createCollection(collectionName) } - getRepository = EntityRepository>( - classType: ClassConstructor - ): R { - return this.repositories.get(getEntityRepositoryToken(classType.name)); + setRelationshipsCascadesMetadata(model, this) + await this.createIndexs(model) + + return this + } + + getModel(id: string): Type | undefined { + return this.models.get(id) + } + + getModels(): Map> { + return this.models + } + + registerRepository = EntityRepository>( + name: string, + repository: R + ): EntityManager { + this.log('Add respoitory %s as %s', repository.constructor.name, name) + this.repositories.set(name, repository) + return this + } + + getRepository = EntityRepository>( + classType: Type + ): R { + return this.repositories.get(getEntityRepositoryToken(classType.name)) + } + + getClient(): MongoClient { + return this.client + } + + getDatabase(databaseName?: string) { + return this.client.db(databaseName) + } + + getSessionLoaderService() { + return this.sessionLoaderService + } + + getSessionContext() { + return this.sessionLoaderService.getSessionContext() + } + + setSessionContext(mongoSession: ClientSession): void { + this.sessionLoaderService.setSessionContext(mongoSession) + } + + clearSessionContext(): void { + this.sessionLoaderService.clearSessionContext() + } + + getCollectionName(nameOrInstance: Model | Type): string { + let name: string | undefined + if (typeof nameOrInstance === 'object' || typeof nameOrInstance === 'function') { + name = Reflect.getMetadata( + 'mongo:collectionName', + typeof nameOrInstance === 'object' ? nameOrInstance.constructor : nameOrInstance + ) } - getClient(): MongoClient { - return this.client; + if (name === undefined) { + throw new Error('@Collection decorator is required to use a class as model') } - getDatabase(databaseName?: string) { - return this.client.db(databaseName); + return name + } + + getCollection(nameOrInstance: Model | Type, databaseName?: string) { + return this.getDatabase(databaseName).collection(this.getCollectionName(nameOrInstance)) + } + + async validate( + obj: Model, + validatorOptions: ValidatorOptions = {}, + throwError = false + ) { + const errors = await validate(obj, { + validationError: { target: true, value: true }, + whitelist: true, + ...validatorOptions + }) + + if (errors.length > 0 && throwError) { + throw this.exceptionFactory(errors) } - getSessionLoaderService() { - return this.sessionLoaderService; - } - - getSessionContext() { - return this.sessionLoaderService.getSessionContext(); - } - - setSessionContext(mongoSession: ClientSession): void { - this.sessionLoaderService.setSessionContext(mongoSession); - } - - clearSessionContext(): void { - this.sessionLoaderService.clearSessionContext(); - } - - getCollectionName(nameOrInstance: Model | ClassConstructor): string { - let name: string | undefined; - if (typeof nameOrInstance === 'object' || typeof nameOrInstance === 'function') { - name = Reflect.getMetadata( - 'mongo:collectionName', - typeof nameOrInstance === 'object' ? nameOrInstance.constructor : nameOrInstance - ); + return errors + } + + async save( + entity: Model, + options: (InsertOneOptions | UpdateOptions) & { + skipValidation?: boolean + validatorOptions?: ValidatorOptions + } = {} + ): Promise { + const entityName = entity.constructor.name + const ctx = this.getSessionContext() + try { + this.log('saving %s', entityName) + const collection = this.getCollection(entity) + const Model = this.getModel(entityName) + if (Model === undefined) { + throw new Error(`Can not find model ${entityName}`) + } + const proxy = this.merge(new Model(), entity) + + if (options.skipValidation !== true) { + await this.validate(proxy, options.validatorOptions, true) + } + + const operationOptions = { + ...(ctx !== undefined ? { session: ctx.session } : {}), + ...options + } + + if (!isEmpty(proxy._id)) { + proxy.updatedAt = new Date() + const $unset: any = {} + // must be done in a recursive way to allow to delete props from subobject + for (const p in entity) { + if (Object.prototype.hasOwnProperty.call(proxy, p) === true) { + const v: any = proxy[p] + if (v === undefined) { + $unset[p] = 1 + unset(proxy, p) + } + } } - - if (name === undefined) { - throw new Error('@Collection decorator is required to use a class as model'); + const sets: any = { $set: proxy } + if (Object.keys($unset).length > 0) { + sets.$unset = $unset + } + await collection.updateOne({ _id: proxy._id }, sets, { + upsert: false, + ...operationOptions + }) + } else { + const { insertedId } = await collection.insertOne(proxy, { + ...operationOptions + }) + + if (insertedId instanceof ObjectId) { + proxy._id = insertedId } + } - return name; - } + // merge the proxy changes back to the entity + this.merge(entity, proxy) - getCollection( - nameOrInstance: Model | ClassConstructor, - databaseName?: string - ) { - return this.getDatabase(databaseName).collection(this.getCollectionName(nameOrInstance)); + this.log('%s %s saved', Model.name, entity._id?.toHexString()) + return entity + } catch (e) { + this.log('error saving %s', entityName) + throw e } - - async validate( - obj: Model, - validatorOptions: ValidatorOptions = {}, - throwError = false - ) { - const errors = await validate(obj, { - validationError: { target: true, value: true }, - whitelist: true, - ...validatorOptions - }); - - if (errors.length > 0 && throwError) { - throw this.exceptionFactory(errors); - } - - return errors; + } + + async find( + classType: Type, + query: Filter, + options: FindOptions = {} + ): Promise> { + this.log('find %s %o', classType.name, query) + const ctx = this.getSessionContext() + const cursor = this.getCollection(classType).find(query, { + ...(ctx !== undefined ? { session: ctx.session } : {}), + ...options + }) + return cursor.map((data) => this.fromPlain(classType, data)) + } + + async findOne( + classType: Type, + query: Filter, + options: FindOptions = {} + ): Promise { + this.log('findOne %s %o', classType.name, query, options) + const ctx = this.getSessionContext() + const obj = await this.getCollection(classType).findOne(query, { + ...(ctx !== undefined ? { session: ctx.session } : {}), + ...options + }) + if (obj === null) { + return } - - async save( - entity: Model | WithId, - options: (InsertOneOptions | UpdateOptions) & { - skipValidation?: boolean; - validatorOptions?: ValidatorOptions; - } = {} - ): Promise> { - const entityName = entity.constructor.name; - const ctx = this.getSessionContext(); - try { - this.log('saving %s', entityName); - const collection = this.getCollection(entity); - const Model = this.getModel(entityName); - if (Model === undefined) { - throw new Error(`Can not find model ${entityName}`); - } - const proxy = this.merge(new Model(), entity); - - if (options.skipValidation !== true) { - await this.validate(proxy, options.validatorOptions, true); - } - - const operationOptions = { - ...(ctx !== undefined ? { session: ctx.session } : {}), - ...options - }; - - if (!isEmpty(proxy._id)) { - proxy.updatedAt = new Date(); - const $unset: any = {}; - // must be done in a recursive way to allow to delete props from subobject - for (const p in entity) { - if (Object.prototype.hasOwnProperty.call(proxy, p) === true) { - const v: any = proxy[p]; - if (v === undefined) { - $unset[p] = 1; - unset(proxy, p); - } - } - } - const sets: any = { $set: proxy }; - if (Object.keys($unset).length > 0) { - sets.$unset = $unset; - } - await collection.updateOne({ _id: proxy._id }, sets, { - upsert: false, - ...operationOptions - }); - } else { - const { insertedId } = await collection.insertOne(proxy, { - ...operationOptions - }); - - if (insertedId instanceof ObjectId) { - proxy._id = insertedId; - } - } - - // merge the proxy changes back to the entity - this.merge(entity, proxy); - - this.log('%s %s saved', Model.name, entity._id?.toHexString()); - return entity as WithId; - } catch (e) { - this.log('error saving %s', entityName); - throw e; - } + return this.fromPlain(classType, obj) + } + + async count( + classType: Type, + query: Filter, + options: CountDocumentsOptions = {} + ): Promise { + this.log('count %s %o', classType.name, query) + const ctx = this.getSessionContext() + const collection = this.getCollection(classType) + return await collection.countDocuments(query, { + ...(ctx !== undefined ? { session: ctx.session } : {}), + ...options + }) + } + + isIdQuery(query: any): boolean { + return Object.keys(query).length === 1 && query._id instanceof ObjectId + } + + isIdsQuery(query: any): boolean { + return this.isIdQuery(query) && Array.isArray(query._id.$in) + } + + protected async deleteCascade(classType: Type, entity: Model) { + const relationshipsCascades = getRelationshipsCascadesMetadata(classType) + + if (!Array.isArray(relationshipsCascades)) { + return } - - async find( - classType: ClassConstructor, - query: Filter, - options: FindOptions = {} - ): Promise>> { - this.log('find %s %o', classType.name, query); - const ctx = this.getSessionContext(); - const cursor = this.getCollection(classType).find(query, { - ...(ctx !== undefined ? { session: ctx.session } : {}), - ...options - }); - return cursor.map((data) => this.fromPlain(classType, data) as WithId); + for (const relationshipCascades of relationshipsCascades) { + if (!relationshipCascades.cascade.includes(CascadeType.DELETE)) { + continue + } + if (relationshipCascades.isArray !== undefined && !relationshipCascades.isArray) { + await this.deleteMany(relationshipCascades.model, { + [relationshipCascades.property]: entity._id + }) + } else { + await this.deleteMany(relationshipCascades.model, { + _id: { $in: entity[relationshipCascades.property] } + }) + } } - - async findOne( - classType: ClassConstructor, - query: Filter, - options: FindOptions = {} - ): Promise | undefined> { - this.log('findOne %s %o', classType.name, query, options); - const ctx = this.getSessionContext(); - const obj = await this.getCollection(classType).findOne(query, { - ...(ctx !== undefined ? { session: ctx.session } : {}), - ...options - }); - if (obj !== null) { - return this.fromPlain(classType, obj) as WithId; - } + } + + async deleteOne( + classType: Type, + query: Filter, + options: DeleteOptions = {} + ) { + this.log('deleteOne %s %o', classType.name, query) + const ctx = this.getSessionContext() + const entity = await this.findOne(classType, query) + + if (entity === undefined) { + throw new NotFoundException() } - async count( - classType: ClassConstructor, - query: Filter, - options: CountDocumentsOptions = {} - ): Promise { - this.log('count %s %o', classType.name, query); - const ctx = this.getSessionContext(); - const collection = this.getCollection(classType); - return await collection.countDocuments(query, { - ...(ctx !== undefined ? { session: ctx.session } : {}), - ...options - }); + const result = await this.getCollection(classType).deleteOne( + { _id: entity._id }, + { + ...(ctx !== undefined ? { session: ctx.session } : {}), + ...options + } + ) + + await this.deleteCascade(classType, entity) + + return result + } + + async deleteMany( + classType: Type, + query: Filter, + options: DeleteOptions = {} + ) { + this.log('deleteMany %s %o', classType.name, query) + const ctx = this.getSessionContext() + const items = await this.find(classType, query, options) + + // get a ref of entities that are going to be deleted before to delete them + const entities = await items.toArray() + + const result = await this.getCollection(classType).deleteMany(query, { + ...(ctx !== undefined ? { session: ctx.session } : {}), + ...options + }) + + for (const entity of entities) { + await this.deleteCascade(classType, entity) } - isIdQuery(query: any): boolean { - return Object.keys(query).length === 1 && query._id instanceof ObjectId; + return result + } + + watch(classType: Type, pipes?: Document[], options: ChangeStreamOptions = {}) { + this.log('watch %o', pipes) + const ctx = this.getSessionContext() + return this.getCollection(classType).watch(pipes, { + ...(ctx !== undefined ? { session: ctx.session } : {}), + ...options + }) + } + + async getRelationship( + obj: any, + property: string, + options: FindOptions = {} + ): Promise { + this.log('getRelationship %s on %s', property, obj) + const relationMetadata = getRelationshipMetadata(obj.constructor, property, this, obj) + if (isEmpty(relationMetadata)) { + throw new Error( + `The property ${property} metadata @Relationship must be set to call getRelationship on ${getObjectName(obj)}` + ) } - isIdsQuery(query: any): boolean { - return this.isIdQuery(query) && Array.isArray(query._id.$in); + if (relationMetadata.isArray !== undefined && relationMetadata.isArray) { + throw new Error( + `The property ${property} is defined as an array, please use getRelationships instead of getRelationship` + ) } - protected async deleteCascade( - classType: ClassConstructor, - entity: WithId - ) { - const relationshipsCascades = getRelationshipsCascadesMetadata(classType); - - if (!Array.isArray(relationshipsCascades)) { - return; - } - for (const relationshipCascades of relationshipsCascades) { - if (!relationshipCascades.cascade.includes(CascadeType.DELETE)) { - continue; - } - if (relationshipCascades.isArray !== undefined && !relationshipCascades.isArray) { - await this.deleteMany(relationshipCascades.model, { - [relationshipCascades.property]: entity._id - }); - } else { - await this.deleteMany(relationshipCascades.model, { - _id: { $in: entity[relationshipCascades.property] } - }); - } - } + const _id: ObjectId | undefined | null = obj[property] + if (!(_id instanceof ObjectId)) { + return } - async deleteOne( - classType: ClassConstructor, - query: Filter, - options: DeleteOptions = {} - ) { - this.log('deleteOne %s %o', classType.name, query); - const ctx = this.getSessionContext(); - const entity = await this.findOne(classType, query); - - if (entity === undefined) { - throw new NotFoundException(); - } + const filter: Filter = { _id: _id as Condition['_id'] } + const relationship = await this.findOne(relationMetadata.type, filter, options) - const result = await this.getCollection(classType).deleteOne( - { _id: entity._id }, - { - ...(ctx !== undefined ? { session: ctx.session } : {}), - ...options - } - ); + return relationship + } - await this.deleteCascade(classType, entity); + async getRelationships( + obj: any, + property: string, + options: FindOptions = {} + ): Promise> { + this.log('getRelationships %s on %s', property, obj) - return result; + const relationMetadata = getRelationshipMetadata(obj.constructor, property, this) + if (isEmpty(relationMetadata) || relationMetadata === undefined) { + throw new Error( + `The property ${property} metadata @Relationship must be set to call getRelationships on ${getObjectName(obj)}` + ) } - async deleteMany( - classType: ClassConstructor, - query: Filter, - options: DeleteOptions = {} - ) { - this.log('deleteMany %s %o', classType.name, query); - const ctx = this.getSessionContext(); - const items = await this.find(classType, query, options); - - // get a ref of entities that are going to be deleted before to delete them - const entities = await items.toArray(); - - const result = await this.getCollection(classType).deleteMany(query, { - ...(ctx !== undefined ? { session: ctx.session } : {}), - ...options - }); - - for (const entity of entities) { - await this.deleteCascade(classType, entity); - } - - return result; + if (relationMetadata?.isArray !== undefined && !relationMetadata?.isArray) { + throw new Error( + `The property ${property} is not defined as an array, please use getRelationship instead of getRelationships in ${getObjectName( + obj + )}` + ) } - watch( - classType: ClassConstructor, - pipes?: Document[], - options: ChangeStreamOptions = {} - ) { - this.log('watch %o', pipes); - const ctx = this.getSessionContext(); - return this.getCollection(classType).watch>(pipes, { - ...(ctx !== undefined ? { session: ctx.session } : {}), - ...options - }); + const value = obj[property] + if (!Array.isArray(value)) { + return [] } - - async getRelationship( - obj: any, - property: string, - options: FindOptions = {} - ): Promise | undefined> { - this.log('getRelationship %s on %s', property, obj); - const relationMetadata = getRelationshipMetadata(obj.constructor, property, this, obj); - if (isEmpty(relationMetadata)) { - throw new Error( - `The property ${property} metadata @Relationship must be set to call getRelationship on ${getObjectName( - obj - )}` - ); - } - - if (relationMetadata.isArray !== undefined && relationMetadata.isArray) { - throw new Error( - `The property ${property} is defined as an array, please use getRelationships instead of getRelationship` - ); - } - - const id: ObjectId | undefined | null = obj[property]; - if (!(id instanceof ObjectId)) { - return; - } - const filter: Filter = {}; - filter._id = id; - const relationship = await this.findOne(relationMetadata.type, filter, options); - - return relationship; + const relationshipsCursor = await this.find( + relationMetadata.type, + { + _id: { $in: value } + }, + options + ) + + return await relationshipsCursor.toArray() + } + + /** + * To avoid Transaction Errors, it is important to keep a sequential approach in the way transactions are commited to the session. + * ie: do not to use Promise.all (parallel execution) in your transaction function as it could cause inconsistencies in the order + * in which transactions will be committed to the session. + */ + async startSessionWithTransaction( + transactionFn: (session: ClientSession) => Promise, + options: { + useContext?: boolean + transactionOptions?: TransactionOptions + sessionOptions?: ClientSessionOptions + } = {} + ): Promise { + const session = this.getClient().startSession(options.sessionOptions ?? {}) + const useContext = options.useContext === true + useContext && this.setSessionContext(session) + + try { + await session.withTransaction(async () => await transactionFn(session), options.transactionOptions ?? {}) + } finally { + useContext && this.clearSessionContext() + await session.endSession() } - async getRelationships( - obj: any, - property: string, - options: FindOptions = {} - ): Promise>> { - this.log('getRelationships %s on %s', property, obj); - - const relationMetadata = getRelationshipMetadata(obj.constructor, property, this); - if (isEmpty(relationMetadata) || relationMetadata === undefined) { - throw new Error( - `The property ${property} metadata @Relationship must be set to call getRelationships on ${getObjectName( - obj - )}` - ); + return session + } + + fromPlain( + classType: Type, + data: object, + options?: ClassTransformOptions + ): Model { + this.log('transform fromPlain %s', classType.name) + return fromPlain(classType, data, options) + } + + merge(entity: Model, data: Model, excludePrefixes?: string[]) { + this.log('%s transform merge', getObjectName(entity)) + return merge(entity, data, excludePrefixes) + } + + async createIndexs(model: Type) { + this.log('Creating indexs for model %s', model.name) + const indexesMetadata = getIndexMetadatas(model) + const collection = this.getCollection(model) + + if (indexesMetadata !== undefined) { + const createIndexs: IndexDescription[] = [] + for (const index of indexesMetadata) { + let indexDescription: IndexDescription = { + key: { + [index.property]: 1 + } } - - if (relationMetadata?.isArray !== undefined && !relationMetadata?.isArray) { - throw new Error( - `The property ${property} is not defined as an array, please use getRelationship instead of getRelationships in ${getObjectName( - obj - )}` - ); - } - - const value = obj[property]; - if (!Array.isArray(value)) { - return []; + if (index.description !== undefined) { + indexDescription = { ...indexDescription, ...index.description } } - const relationshipsCursor = await this.find( - relationMetadata.type, - { - _id: { $in: value } - }, - options - ); - - return await relationshipsCursor.toArray(); - } - - /** - * To avoid Transaction Errors, it is important to keep a sequential approach in the way transactions are commited to the session. - * ie: do not to use Promise.all (parallel execution) in your transaction function as it could cause inconsistencies in the order - * in which transactions will be committed to the session. - */ - async startSessionWithTransaction( - transactionFn: (session: ClientSession) => Promise, - options: { - useContext?: boolean; - transactionOptions?: TransactionOptions; - sessionOptions?: ClientSessionOptions; - } = {} - ): Promise { - const session = this.getClient().startSession(options.sessionOptions ?? {}); - const useContext = options.useContext === true; - useContext && this.setSessionContext(session); - + createIndexs.push(indexDescription) + } + if (createIndexs.length > 0) { try { - await session.withTransaction(async () => await transactionFn(session), options.transactionOptions ?? {}); - } finally { - useContext && this.clearSessionContext(); - await session.endSession(); - } - - return session; - } - - fromPlain( - classType: ClassConstructor, - data: object, - options?: ClassTransformOptions - ): Model { - this.log('transform fromPlain %s', classType.name); - return fromPlain(classType, data, options); - } - - merge(entity: Model, data: Model, excludePrefixes?: string[]) { - this.log('%s transform merge', getObjectName(entity)); - return merge(entity, data, excludePrefixes); - } - - async createIndexs(model: ClassConstructor) { - this.log('Creating indexs for model %s', model.name); - const indexesMetadata = getIndexMetadatas(model); - const collection = this.getCollection(model); - - if (indexesMetadata !== undefined) { - const createIndexs: IndexDescription[] = []; - for (const index of indexesMetadata) { - let indexDescription: IndexDescription = { - key: { - [index.property]: 1 - } - }; - if (index.description !== undefined) { - indexDescription = { ...indexDescription, ...index.description }; - } - createIndexs.push(indexDescription); - } - if (createIndexs.length > 0) { - try { - return await collection.createIndexes(createIndexs); - } catch (e) { - console.error( - new Error(`Unable to create index on collection ${collection.namespace} ${e.message as string}`) - ); - } - } + return await collection.createIndexes(createIndexs) + } catch (e) { + console.error( + new Error(`Unable to create index on collection ${collection.namespace} ${e.message as string}`) + ) } + } } + } } diff --git a/src/entity/paginated.ts b/src/entity/paginated.ts index ee5dab47..c51e667e 100644 --- a/src/entity/paginated.ts +++ b/src/entity/paginated.ts @@ -1,13 +1,13 @@ -import { IsNumber } from 'class-validator'; +import { IsNumber } from 'class-validator' -import { Serializable, SerializableInterface } from '../serializer'; +import { Serializable, SerializableInterface } from '../serializer' export interface PaginatedData extends SerializableInterface {} @Serializable() export class PaginatedData { - @IsNumber() - count: number; + @IsNumber() + count: number - data: D[]; + data: D[] } diff --git a/src/entity/repository.ts b/src/entity/repository.ts index d2b6f7f7..e1604d03 100644 --- a/src/entity/repository.ts +++ b/src/entity/repository.ts @@ -1,86 +1,78 @@ -import { ClassConstructor, ClassTransformOptions } from 'class-transformer'; -import { ValidatorOptions } from 'class-validator'; -import { - ChangeStreamOptions, - CountDocumentsOptions, - DeleteOptions, - Document, - Filter, - FindOptions, - WithId -} from 'mongodb'; - -import { EntityInterface } from './interfaces'; -import { EntityManager } from './manager'; +import { ClassConstructor, ClassTransformOptions } from 'class-transformer' +import { ValidatorOptions } from 'class-validator' +import { ChangeStreamOptions, CountDocumentsOptions, DeleteOptions, Document, Filter, FindOptions } from 'mongodb' + +import type { EntityInterface } from './interfaces' +import type { EntityManager } from './manager' export class EntityRepository { - constructor(protected readonly em: EntityManager, protected readonly classType: ClassConstructor) {} - - getClassType() { - return this.classType; - } - - getEm() { - return this.em; - } - - async save(entity: Model | WithId, ...args: any[]): Promise> { - return await this.em.save(entity, ...args); - } - - watch(pipes?: Document[], options: ChangeStreamOptions = {}) { - return this.em.watch(this.classType, pipes, options); - } - - getCollection() { - return this.em.getCollection(this.getClassType()); - } - - async find(query: Filter, options: FindOptions = {}) { - return await this.em.find(this.classType, query, options); - } - - async count(query: Filter, options: CountDocumentsOptions = {}) { - return await this.em.count(this.classType, query, options); - } - - async findOne(query: Filter, options: FindOptions = {}) { - return await this.em.findOne(this.classType, query, options); - } - - async deleteOne(query: Filter, options: DeleteOptions = {}) { - return await this.em.deleteOne(this.classType, query, options); - } - - async deleteMany(query: Filter, ...args: any) { - return await this.em.deleteMany(this.classType, query, ...args); - } - - async getRelationship( - object: Model, - property: string, - options: FindOptions = {} - ): Promise | undefined> { - return await this.em.getRelationship(object, property, options); - } - - async getRelationships( - object: Model, - property: string, - options: FindOptions = {} - ): Promise>> { - return await this.em.getRelationships(object, property, options); - } - - fromPlain(data: object | object[], options?: ClassTransformOptions) { - return this.em.fromPlain(this.classType, data, options); - } - - merge(entity: Model | WithId, data: Model | WithId, excludePrefixes?: string[]) { - return this.em.merge(entity, data, excludePrefixes); - } - - async validate(entity: Model, validatorOptions: ValidatorOptions = {}, throwError = false) { - return await this.em.validate(entity, validatorOptions, throwError); - } + constructor(protected readonly em: EntityManager, protected readonly classType: ClassConstructor) {} + + getClassType() { + return this.classType + } + + getEm() { + return this.em + } + + async save(entity: Model, ...args: any[]): Promise { + return await this.em.save(entity, ...args) + } + + watch(pipes?: Document[], options: ChangeStreamOptions = {}) { + return this.em.watch(this.classType, pipes, options) + } + + getCollection() { + return this.em.getCollection(this.getClassType()) + } + + async find(query: Filter, options: FindOptions = {}) { + return await this.em.find(this.classType, query, options) + } + + async count(query: Filter, options: CountDocumentsOptions = {}) { + return await this.em.count(this.classType, query, options) + } + + async findOne(query: Filter, options: FindOptions = {}) { + return await this.em.findOne(this.classType, query, options) + } + + async deleteOne(query: Filter, options: DeleteOptions = {}) { + return await this.em.deleteOne(this.classType, query, options) + } + + async deleteMany(query: Filter, ...args: any) { + return await this.em.deleteMany(this.classType, query, ...args) + } + + async getRelationship( + object: Model, + property: string, + options: FindOptions = {} + ): Promise { + return await this.em.getRelationship(object, property, options) + } + + async getRelationships( + object: Model, + property: string, + options: FindOptions = {} + ): Promise> { + return await this.em.getRelationships(object, property, options) + } + + fromPlain(data: object | object[], options?: ClassTransformOptions) { + return this.em.fromPlain(this.classType, data, options) + } + + merge(entity: Model, data: Model, excludePrefixes?: string[]) { + return this.em.merge(entity, data, excludePrefixes) + } + + async validate(entity: Model, validatorOptions: ValidatorOptions = {}, throwError = false) { + return await this.em.validate(entity, validatorOptions, throwError) + } } diff --git a/src/entity/service.ts b/src/entity/service.ts index 4c866046..7de1ad0e 100644 --- a/src/entity/service.ts +++ b/src/entity/service.ts @@ -1,118 +1,113 @@ -import { Injectable, NotFoundException } from '@nestjs/common'; -import { isEmpty } from 'class-validator'; -import Debug from 'debug'; -import { camelCase } from 'lodash'; -import { ChangeStreamDocument, Filter as MongoFilter, ObjectId, WithId } from 'mongodb'; +import { Injectable, NotFoundException } from '@nestjs/common' +import { isEmpty } from 'class-validator' +import Debug from 'debug' +import { camelCase } from 'lodash' +import { ChangeStreamDocument, Filter as MongoFilter, ObjectId } from 'mongodb' -import { DEBUG } from '../constants'; -import { EventCallback } from '../event/event'; -import { HistoryAction, HistoryActions } from '../history'; -import { Filter } from './filter'; -import { EntityInterface } from './interfaces'; -import { PaginatedData } from './paginated'; -import { EntityRepository } from './repository'; +import { DEBUG } from '../constants' +import { EventCallback } from '../event/event' +import { HistoryAction, HistoryActions } from '../history' +import { Filter } from './filter' +import { EntityInterface } from './interfaces' +import { PaginatedData } from './paginated' +import { EntityRepository } from './repository' @Injectable() export abstract class EntityService< - Model extends EntityInterface, - Repository extends EntityRepository = EntityRepository + Model extends EntityInterface, + Repository extends EntityRepository = EntityRepository > { - protected repository: Repository; - protected log: Debug.Debugger; + protected repository: Repository + protected log: Debug.Debugger - constructor() { - this.log = Debug(DEBUG + '_' + this.constructor.name); - } + constructor() { + this.log = Debug(DEBUG + '_' + this.constructor.name) + } - addHistory(item: Obj, action: string, date?: Date) { - if (item.history instanceof HistoryActions) { - const historyAction = new HistoryAction(action, date !== undefined ? date : new Date()); - item.history.add(historyAction); - } - return this; + addHistory(item: Obj, action: string, date?: Date) { + if (item.history instanceof HistoryActions) { + const historyAction = new HistoryAction(action, date !== undefined ? date : new Date()) + item.history.add(historyAction) } + return this + } - getRepository(): Repository { - return this.repository; - } + getRepository(): Repository { + return this.repository + } - async create(data: any, save = false, ...rest: any[]): Promise | Model> { - const item = this.repository.fromPlain(data); - if (save) { - return await this.repository.save(item, ...rest); - } - return item; + async create(data: any, save = false, ...rest: any[]): Promise { + const item = this.repository.fromPlain(data) + if (save) { + return await this.repository.save(item, ...rest) } + return item + } - async get(itemId: ObjectId, ...rest: any[]): Promise> { - const filter: MongoFilter = {}; - filter._id = itemId; - const item = await this.repository.findOne(filter, ...rest); - if (item === undefined) { - throw new NotFoundException(); - } - return item; + async get(_id: ObjectId, ...rest: any[]): Promise { + const filter = { _id } as MongoFilter + const item = await this.repository.findOne(filter, ...rest) + if (item === undefined) { + throw new NotFoundException() } + return item + } - async list(filter: Filter, ResponseType: any, ...rest: any[]): Promise> { - const cursor = await this.repository.find(filter.toQuery(), ...rest); - if (!isEmpty(filter.orderBy)) { - cursor.sort(filter.getSort()); - } - const count = await this.repository.getCollection().countDocuments(filter.toQuery()); - cursor.skip(filter.skip).limit(filter.limit); - const data = await cursor.toArray(); - const res = new ResponseType(); - res.count = count; - res.data = data; - return res; + async list(filter: Filter, ResponseType: any, ...rest: any[]): Promise> { + const cursor = await this.repository.find(filter.toQuery(), ...rest) + if (!isEmpty(filter.orderBy)) { + cursor.sort(filter.getSort()) } + const count = await this.repository.getCollection().countDocuments(filter.toQuery()) + cursor.skip(filter.skip).limit(filter.limit) + const data = await cursor.toArray() + const res = new ResponseType() + res.count = count + res.data = data + return res + } - async update(itemId: ObjectId, data: any, save = false, ...rest: any[]): Promise | Model> { - const entity = await this.get(itemId); - const item = this.repository.merge(entity, data); - if (save) { - return await this.repository.save(item, ...rest); - } - return item; + async update(itemId: ObjectId, data: any, save = false, ...rest: any[]): Promise { + const entity = await this.get(itemId) + const item = this.repository.merge(entity, data) + if (save) { + return await this.repository.save(item, ...rest) } + return item + } - async delete(itemId: ObjectId, ...rest: any[]): Promise { - const filter: MongoFilter = {}; - filter._id = itemId; - const { deletedCount } = await this.repository.deleteOne(filter, ...rest); - if (deletedCount !== 1) { - throw new NotFoundException(); - } + async delete(_id: ObjectId, ...rest: any[]): Promise { + const filter = { _id } as MongoFilter + const { deletedCount } = await this.repository.deleteOne(filter, ...rest) + if (deletedCount !== 1) { + throw new NotFoundException() } + } - subscribe(onData: EventCallback>) { - return this.repository - .watch([], { fullDocument: 'updateLookup' }) - .on('change', (change: ChangeStreamDocument>) => { - this.onData(change, onData).catch((e) => { - throw e; - }); - }); - } + subscribe(onData: EventCallback) { + return this.repository + .watch([], { fullDocument: 'updateLookup' }) + .on('change', (change: ChangeStreamDocument) => { + this.onData(change, onData).catch((e) => { + throw e + }) + }) + } - protected readonly onData = async ( - change: ChangeStreamDocument>, - onData: EventCallback> - ) => { - try { - const em = this.repository.getEm(); - const classType = this.repository.getClassType(); - const eventName = camelCase(`on_${change.operationType}_${classType.name}`); - this.log('Event:%s for %s:%s', eventName, classType.name, change['documentKey']); - if (change.operationType !== 'drop') { - if (change['fullDocument'] !== undefined) { - change['fullDocument'] = em.fromPlain(classType, change['fullDocument']) as WithId; - } - } - onData(eventName, change); - } catch (e) { - this.log('Entity listener error: %s', e.message); + protected readonly onData = async (change: ChangeStreamDocument, onData: EventCallback) => { + try { + const em = this.repository.getEm() + const classType = this.repository.getClassType() + const eventName = camelCase(`on_${change.operationType}_${classType.name}`) + this.log('Event:%s for %s:%s', eventName, classType.name, change['documentKey']) + if (change.operationType !== 'drop') { + if (change['fullDocument'] !== undefined) { + change['fullDocument'] = em.fromPlain(classType, change['fullDocument']) as Model } - }; + } + onData(eventName, change) + } catch (e) { + this.log('Entity listener error: %s', e.message) + } + } } diff --git a/src/event/event.ts b/src/event/event.ts index 7908c707..f948f763 100644 --- a/src/event/event.ts +++ b/src/event/event.ts @@ -1,14 +1,14 @@ -import { ChangeStreamDocument } from 'mongodb'; +import { ChangeStreamDocument } from 'mongodb' -import { EntityInterface } from '../entity/interfaces'; +import { EntityInterface } from '../entity/interfaces' // export type EventType = 'create' | 'update' | 'delete'; // export type SupportedChangeEvent = ChangeEventUpdate | ChangeEventDelete | ChangeEventCR; export type EventCallback = ( - eventName: string, - change: ChangeStreamDocument - // entity?: Model | ObjectId - // originalEvent: SupportedChangeEvent -) => void; + eventName: string, + change: ChangeStreamDocument + // entity?: Model | ObjectId + // originalEvent: SupportedChangeEvent +) => void diff --git a/src/event/index.ts b/src/event/index.ts index 0ef93842..c475080b 100644 --- a/src/event/index.ts +++ b/src/event/index.ts @@ -1 +1 @@ -export * from './event'; +export * from './event' diff --git a/src/helpers.ts b/src/helpers.ts index 10b818a8..3ada057d 100644 --- a/src/helpers.ts +++ b/src/helpers.ts @@ -1,5 +1,5 @@ -export const isClass = (fn: any) => /^\s*class/.test(fn.toString()); +export const isClass = (fn: any) => /^\s*class/.test(fn.toString()) export function getObjectName(o: any): string { - return o.constructor.name; + return o.constructor.name } diff --git a/src/history/history.action.ts b/src/history/history.action.ts index 46b24219..a0d7121f 100644 --- a/src/history/history.action.ts +++ b/src/history/history.action.ts @@ -1,14 +1,14 @@ -import { IsDate, IsString } from 'class-validator'; +import { IsDate, IsString } from 'class-validator' export class HistoryAction { - @IsString() - action: string; + @IsString() + action: string - @IsDate() - date: Date; + @IsDate() + date: Date - constructor(action: string, date: Date) { - this.action = action; - this.date = date; - } + constructor(action: string, date: Date) { + this.action = action + this.date = date + } } diff --git a/src/history/history.ts b/src/history/history.ts index ac9f0b13..a89fbf56 100644 --- a/src/history/history.ts +++ b/src/history/history.ts @@ -1,22 +1,22 @@ -import { Type } from 'class-transformer'; -import { IsArray } from 'class-validator'; +import { Type } from 'class-transformer' +import { IsArray } from 'class-validator' -import { HistoryAction } from './history.action'; +import { HistoryAction } from './history.action' export class HistoryActions { - @IsArray() - @Type(() => HistoryAction) - actions: HistoryAction[] = []; + @IsArray() + @Type(() => HistoryAction) + actions: HistoryAction[] = [] - add(historyAction: HistoryAction) { - this.actions.push(historyAction); - } + add(historyAction: HistoryAction) { + this.actions.push(historyAction) + } - clear() { - this.actions = []; - } + clear() { + this.actions = [] + } - getActions() { - return this.actions; - } + getActions() { + return this.actions + } } diff --git a/src/history/index.ts b/src/history/index.ts index 776910df..e6b43621 100644 --- a/src/history/index.ts +++ b/src/history/index.ts @@ -1,2 +1,2 @@ -export * from './history.action'; -export * from './history'; +export * from './history.action' +export * from './history' diff --git a/src/index.ts b/src/index.ts index 818052a9..2cc1eae5 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,14 +1,14 @@ -export * from './constants'; -export * from './session/middleware'; -export * from './session/service'; -export * from './session/utils'; -export * from './helpers'; -export * from './event'; -export * from './module'; -export * from './relationship'; -export * from './entity'; -export * from './serializer'; -export * from './transformer'; -export * from './validation'; -export * from './indexs'; -export * from './history'; +export * from './constants' +export * from './session/middleware' +export * from './session/service' +export * from './session/utils' +export * from './helpers' +export * from './event' +export * from './module' +export * from './relationship' +export * from './entity' +export * from './serializer' +export * from './transformer' +export * from './validation' +export * from './indexs' +export * from './history' diff --git a/src/indexs/decorators.ts b/src/indexs/decorators.ts index 549965b4..3a411c1e 100644 --- a/src/indexs/decorators.ts +++ b/src/indexs/decorators.ts @@ -1,10 +1,10 @@ -import { CreateIndexesOptions, IndexDescription } from 'mongodb'; +import { CreateIndexesOptions, IndexDescription } from 'mongodb' -import { setIndexMetadata } from './metadata'; +import { setIndexMetadata } from './metadata' // TODO next release, change IndexDescription> & CreateIndexesOptions to Partial export function Index(metadata?: Partial & CreateIndexesOptions) { - return function (target: any, property: string) { - setIndexMetadata(target, { property, description: metadata ?? {} }); - }; + return function (target: any, property: string) { + setIndexMetadata(target, { property, description: metadata ?? {} }) + } } diff --git a/src/indexs/index.ts b/src/indexs/index.ts index aa86b460..d4e3fc79 100644 --- a/src/indexs/index.ts +++ b/src/indexs/index.ts @@ -1,2 +1,2 @@ -export * from './metadata'; -export * from './decorators'; +export * from './metadata' +export * from './decorators' diff --git a/src/indexs/metadata.ts b/src/indexs/metadata.ts index b44e1efa..823e28f7 100644 --- a/src/indexs/metadata.ts +++ b/src/indexs/metadata.ts @@ -1,31 +1,31 @@ -import { CreateIndexesOptions, IndexDescription } from 'mongodb'; +import { CreateIndexesOptions, IndexDescription } from 'mongodb' -import { INDEX_METADATA_NAME } from '../constants'; +import { INDEX_METADATA_NAME } from '../constants' export interface IndexMetadata { - property: string; - // TODO in next mongodb release, IndexDescription is extending CreateIndexesOptions - description?: Partial & CreateIndexesOptions; + property: string + // TODO in next mongodb release, IndexDescription is extending CreateIndexesOptions + description?: Partial & CreateIndexesOptions } export function setIndexMetadata(target: any, metadata: IndexMetadata) { - const constructorName: string = target.constructor.name; - const metadataName = `${INDEX_METADATA_NAME}:${constructorName}`; - let targetMetadata: IndexMetadata[] | undefined = Reflect.getMetadata(metadataName, target.constructor); - if (targetMetadata === undefined) { - targetMetadata = []; - } - targetMetadata.push(metadata); - Reflect.defineMetadata(metadataName, targetMetadata, target.constructor); + const constructorName: string = target.constructor.name + const metadataName = `${INDEX_METADATA_NAME}:${constructorName}` + let targetMetadata: IndexMetadata[] | undefined = Reflect.getMetadata(metadataName, target.constructor) + if (targetMetadata === undefined) { + targetMetadata = [] + } + targetMetadata.push(metadata) + Reflect.defineMetadata(metadataName, targetMetadata, target.constructor) } export function getIndexMetadatas(target: any): IndexMetadata[] { - const metadataKeys: string[] = Reflect.getMetadataKeys(target).filter((p) => p.startsWith(INDEX_METADATA_NAME)); - return metadataKeys.reduce((previous, current) => { - return previous.concat(Reflect.getMetadata(current, target)); - }, []); + const metadataKeys: string[] = Reflect.getMetadataKeys(target).filter((p) => p.startsWith(INDEX_METADATA_NAME)) + return metadataKeys.reduce((previous, current) => { + return previous.concat(Reflect.getMetadata(current, target)) + }, []) } export function getIndexMetadata(target: any, property: string): IndexMetadata | undefined { - return getIndexMetadatas(target).find((metadata) => metadata.property === property); + return getIndexMetadatas(target).find((metadata) => metadata.property === property) } diff --git a/src/module/core.ts b/src/module/core.ts index d55ac3e5..3d0c5242 100644 --- a/src/module/core.ts +++ b/src/module/core.ts @@ -1,107 +1,107 @@ -import { DynamicModule, Global, Module, OnModuleDestroy } from '@nestjs/common'; -import { getFromContainer, isEmpty } from 'class-validator'; -import { MongoClient } from 'mongodb'; +import { DynamicModule, Global, Module, OnModuleDestroy } from '@nestjs/common' +import { getFromContainer, isEmpty } from 'class-validator' +import { MongoClient } from 'mongodb' -import { DEFAULT_CONNECTION_NAME, NAMED_CONNECTION_TOKEN } from '../constants'; -import { EntityManager } from '../entity/manager'; -import { IsValidRelationshipConstraint } from '../relationship/constraint'; -import { SessionLoaderService } from '../session/service'; -import { IsUniqueConstraint } from '../validation/unique/constraint'; -import { MongoFeatureModule } from './feature'; -import { getConfigToken, getConnectionToken, getEntityManagerToken, InjectEntityManager } from './injection'; -import { MongoFeatureOptions, MongoModuleAsyncOptions, MongoModuleOptions } from './interfaces'; +import { DEFAULT_CONNECTION_NAME, NAMED_CONNECTION_TOKEN } from '../constants' +import { EntityManager } from '../entity/manager' +import { IsValidRelationshipConstraint } from '../relationship/constraint' +import { SessionLoaderService } from '../session/service' +import { IsUniqueConstraint } from '../validation/unique/constraint' +import { MongoFeatureModule } from './feature' +import { getConfigToken, getConnectionToken, getEntityManagerToken, InjectEntityManager } from './injection' +import { MongoFeatureOptions, MongoModuleAsyncOptions, MongoModuleOptions } from './interfaces' @Global() @Module({}) export class MongoModule implements OnModuleDestroy { - constructor(@InjectEntityManager() private readonly em: EntityManager) {} + constructor(@InjectEntityManager() private readonly em: EntityManager) {} - async onModuleDestroy() { - await this.em.getClient().close(); - } - - static async forRootAsync(options: MongoModuleAsyncOptions): Promise { - // define the connection token name - const connectionName = !isEmpty(options.connectionName) ? options.connectionName : DEFAULT_CONNECTION_NAME; + async onModuleDestroy() { + await this.em.getClient().close() + } - const mongoConnectionToken = getConnectionToken(connectionName); + static async forRootAsync(options: MongoModuleAsyncOptions): Promise { + // define the connection token name + const connectionName = !isEmpty(options.connectionName) ? options.connectionName : DEFAULT_CONNECTION_NAME - // The client name provider to be expose on this dynammic module level - const mongoConnectionNameProvider = { - provide: NAMED_CONNECTION_TOKEN, - useValue: mongoConnectionToken - }; + const mongoConnectionToken = getConnectionToken(connectionName) - // the config provider - const configToken = getConfigToken(connectionName); - const configProvider = { - provide: configToken, - ...options - }; + // The client name provider to be expose on this dynammic module level + const mongoConnectionNameProvider = { + provide: NAMED_CONNECTION_TOKEN, + useValue: mongoConnectionToken + } - // the mongo client provider - const mongoClientProvider = { - provide: mongoConnectionToken, - useFactory: async (config: MongoModuleOptions): Promise => { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const { uri, exceptionFactory, ...mongoOpts } = config; - const client = new MongoClient(uri, mongoOpts); - return await client.connect(); - }, - inject: [configToken] - }; + // the config provider + const configToken = getConfigToken(connectionName) + const configProvider = { + provide: configToken, + ...options + } - const sessionLoaderServiceProvider = { - provide: SessionLoaderService, - useClass: SessionLoaderService - }; + // the mongo client provider + const mongoClientProvider = { + provide: mongoConnectionToken, + useFactory: async (config: MongoModuleOptions): Promise => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { uri, exceptionFactory, ...mongoOpts } = config + const client = new MongoClient(uri, mongoOpts) + return await client.connect() + }, + inject: [configToken] + } - // the mongo manager provider - const managerToken = getEntityManagerToken(connectionName); - const mongoManagerProvider = { - provide: managerToken, - useFactory: ( - client: MongoClient, - config: MongoModuleOptions, - sessionLoaderService: SessionLoaderService - ): EntityManager => { - if (typeof config.exceptionFactory !== 'function') { - config.exceptionFactory = (errors) => errors; - } - const em = new EntityManager(client, sessionLoaderService, config.exceptionFactory); + const sessionLoaderServiceProvider = { + provide: SessionLoaderService, + useClass: SessionLoaderService + } - const isValidRelationship = getFromContainer(IsValidRelationshipConstraint); - isValidRelationship.setEm(em); + // the mongo manager provider + const managerToken = getEntityManagerToken(connectionName) + const mongoManagerProvider = { + provide: managerToken, + useFactory: ( + client: MongoClient, + config: MongoModuleOptions, + sessionLoaderService: SessionLoaderService + ): EntityManager => { + if (typeof config.exceptionFactory !== 'function') { + config.exceptionFactory = (errors) => errors + } + const em = new EntityManager(client, sessionLoaderService, config.exceptionFactory) - const isUnique = getFromContainer(IsUniqueConstraint); - isUnique.setEm(em); + const isValidRelationship = getFromContainer(IsValidRelationshipConstraint) + isValidRelationship.setEm(em) - return em; - }, - inject: [mongoConnectionToken, configToken, SessionLoaderService] - }; + const isUnique = getFromContainer(IsUniqueConstraint) + isUnique.setEm(em) - return { - module: MongoModule, - imports: options.imports, - providers: [ - mongoConnectionNameProvider, - configProvider, - mongoClientProvider, - sessionLoaderServiceProvider, - mongoManagerProvider - ], - exports: [ - mongoConnectionNameProvider, - configProvider, - mongoClientProvider, - sessionLoaderServiceProvider, - mongoManagerProvider - ] - }; + return em + }, + inject: [mongoConnectionToken, configToken, SessionLoaderService] } - static forFeature(options: MongoFeatureOptions): DynamicModule { - return MongoFeatureModule.forFeature(options); + return { + module: MongoModule, + imports: options.imports, + providers: [ + mongoConnectionNameProvider, + configProvider, + mongoClientProvider, + sessionLoaderServiceProvider, + mongoManagerProvider + ], + exports: [ + mongoConnectionNameProvider, + configProvider, + mongoClientProvider, + sessionLoaderServiceProvider, + mongoManagerProvider + ] } + } + + static forFeature(options: MongoFeatureOptions): DynamicModule { + return MongoFeatureModule.forFeature(options) + } } diff --git a/src/module/feature.ts b/src/module/feature.ts index 65a8d3f1..35dacb22 100644 --- a/src/module/feature.ts +++ b/src/module/feature.ts @@ -1,49 +1,49 @@ -import { DynamicModule, Global, Module } from '@nestjs/common'; +import { DynamicModule, Global, Module } from '@nestjs/common' -import { EntityManager } from '../entity/manager'; -import { EntityRepository } from '../entity/repository'; -import { getEntityManagerToken, getEntityRepositoryToken, InjectEntityManager } from './injection'; -import { MongoFeatureOptions } from './interfaces'; +import { EntityManager } from '../entity/manager' +import { EntityRepository } from '../entity/repository' +import { getEntityManagerToken, getEntityRepositoryToken, InjectEntityManager } from './injection' +import { MongoFeatureOptions } from './interfaces' @Global() @Module({}) export class MongoFeatureModule { - constructor(@InjectEntityManager() private readonly em: EntityManager) {} + constructor(@InjectEntityManager() private readonly em: EntityManager) {} - // async onModuleInit() { - // console.log('INIT models', this.em.getModels()); - // for (const [, model] of this.em.getModels()) { - // setRelationshipsCascadesMetadata(model, this.em); - // await this.em.createIndexes(model, this.em); - // } - // } + // async onModuleInit() { + // console.log('INIT models', this.em.getModels()); + // for (const [, model] of this.em.getModels()) { + // setRelationshipsCascadesMetadata(model, this.em); + // await this.em.createIndexes(model, this.em); + // } + // } - static forFeature(options: MongoFeatureOptions): DynamicModule { - const { connectionName, models } = options; - const providers: any = []; - const managerToken = getEntityManagerToken(connectionName); - for (const m of models) { - const model = typeof m === 'object' ? m.model : m; - const repoToken = getEntityRepositoryToken(model.name, connectionName); - const RepoClass = typeof m === 'object' && m.repository !== undefined ? m.repository : EntityRepository; + static forFeature(options: MongoFeatureOptions): DynamicModule { + const { connectionName, models } = options + const providers: any = [] + const managerToken = getEntityManagerToken(connectionName) + for (const m of models) { + const model = typeof m === 'object' ? m.model : m + const repoToken = getEntityRepositoryToken(model.name, connectionName) + const RepoClass = typeof m === 'object' && m.repository !== undefined ? m.repository : EntityRepository - providers.push({ - provide: repoToken, - inject: [managerToken], - useFactory: async (em: EntityManager) => { - // register model on manager - await em.registerModel(model.name, model); - // register repository - const repo = new RepoClass(em, model); - em.registerRepository(repoToken, repo); - return repo; - } - }); + providers.push({ + provide: repoToken, + inject: [managerToken], + useFactory: async (em: EntityManager) => { + // register model on manager + await em.registerModel(model.name, model) + // register repository + const repo = new RepoClass(em, model) + em.registerRepository(repoToken, repo) + return repo } - return { - module: MongoFeatureModule, - providers, - exports: providers - }; + }) } + return { + module: MongoFeatureModule, + providers, + exports: providers + } + } } diff --git a/src/module/index.ts b/src/module/index.ts index b35b0d7e..7263bc13 100644 --- a/src/module/index.ts +++ b/src/module/index.ts @@ -1,3 +1,3 @@ -export * from './interfaces'; -export * from './injection'; -export * from './core'; +export * from './interfaces' +export * from './injection' +export * from './core' diff --git a/src/module/injection.ts b/src/module/injection.ts index 7be202a1..d65f91f3 100644 --- a/src/module/injection.ts +++ b/src/module/injection.ts @@ -1,39 +1,39 @@ -import { Inject } from '@nestjs/common'; -import { ClassConstructor } from 'class-transformer'; +import { Inject } from '@nestjs/common' +import { ClassConstructor } from 'class-transformer' -import { DEFAULT_CONNECTION_NAME } from '../constants'; +import { DEFAULT_CONNECTION_NAME } from '../constants' export function getEntityRepositoryToken(model: string, connectionName: string = DEFAULT_CONNECTION_NAME) { - return `${connectionName}_${model}Repository`; + return `${connectionName}_${model}Repository` } export function getDataloaderToken(model: string, connectionName: string = DEFAULT_CONNECTION_NAME) { - return `${connectionName}_${model}Dataloader`; + return `${connectionName}_${model}Dataloader` } export function getConfigToken(connectionName: string = DEFAULT_CONNECTION_NAME) { - return `${connectionName}_MongoConfig`; + return `${connectionName}_MongoConfig` } export function getConnectionToken(connectionName: string = DEFAULT_CONNECTION_NAME) { - return `${connectionName}_MongoConnection`; + return `${connectionName}_MongoConnection` } export function getEntityManagerToken(connectionName: string = DEFAULT_CONNECTION_NAME) { - return `${connectionName}_EntityManager`; + return `${connectionName}_EntityManager` } export function InjectMongoClient(connectionName: string = DEFAULT_CONNECTION_NAME) { - return Inject(getConnectionToken(connectionName)); + return Inject(getConnectionToken(connectionName)) } export function InjectEntityManager(connectionName: string = DEFAULT_CONNECTION_NAME) { - return Inject(getEntityManagerToken(connectionName)); + return Inject(getEntityManagerToken(connectionName)) } export function InjectEntityRepository( - entity: ClassConstructor, - connectionName: string = DEFAULT_CONNECTION_NAME + entity: ClassConstructor, + connectionName: string = DEFAULT_CONNECTION_NAME ) { - return Inject(getEntityRepositoryToken(entity.name, connectionName)); + return Inject(getEntityRepositoryToken(entity.name, connectionName)) } diff --git a/src/module/interfaces.ts b/src/module/interfaces.ts index 18f397f2..8a955104 100644 --- a/src/module/interfaces.ts +++ b/src/module/interfaces.ts @@ -1,34 +1,34 @@ -import { Type } from '@nestjs/common'; -import { ModuleMetadata } from '@nestjs/common/interfaces'; -import { ValidationError } from 'class-validator'; -import { MongoClientOptions } from 'mongodb'; +import { Type } from '@nestjs/common' +import { ModuleMetadata } from '@nestjs/common/interfaces' +import { ValidationError } from 'class-validator' +import { MongoClientOptions } from 'mongodb' -import { EntityInterface } from '../entity/interfaces'; -import { EntityRepository } from '../entity/repository'; +import type { EntityInterface } from '../entity/interfaces' +import type { EntityRepository } from '../entity/repository' export interface MongoOptionsFactory { - createMongoOptions: () => Promise | MongoModuleOptions; + createMongoOptions: () => Promise | MongoModuleOptions } export interface MongoModuleOptions extends MongoClientOptions { - uri: string; - exceptionFactory?: ExceptionFactory; + uri: string + exceptionFactory?: ExceptionFactory } export interface MongoModuleAsyncOptions extends Pick { - connectionName?: string; - useFactory: (...args: any[]) => Promise | MongoModuleOptions; - inject?: any[]; + connectionName?: string + useFactory: (...args: any[]) => Promise | MongoModuleOptions + inject?: any[] } export interface MongoFeatureModelOptions> { - model: Type; - repository?: Type; + model: Type + repository?: Type } export interface MongoFeatureOptions { - connectionName?: string; - models: Array | Type>; + connectionName?: string + models: Array | Type> } -export type ExceptionFactory = (errors: ValidationError[]) => any; +export type ExceptionFactory = (errors: ValidationError[]) => any diff --git a/src/relationship/constraint.ts b/src/relationship/constraint.ts index cab8aab2..9999659b 100644 --- a/src/relationship/constraint.ts +++ b/src/relationship/constraint.ts @@ -1,96 +1,94 @@ -import { ValidatorConstraint, ValidatorConstraintInterface } from 'class-validator'; -import { first, isEmpty } from 'lodash'; -import { ObjectId } from 'mongodb'; +import { ValidatorConstraint, ValidatorConstraintInterface } from 'class-validator' +import { first, isEmpty } from 'lodash' +import { ObjectId } from 'mongodb' -import { EntityManager } from '../entity/manager'; -import { ensureSequentialTransaction } from '../session/utils'; -import { IsValidRelationshipValidationArguments, WithRelationshipTest } from './decorators'; -import { RelationshipMetadata } from './interfaces'; -import { getRelationshipMetadata } from './metadata'; +import type { EntityManager } from '../entity/manager' +import { ensureSequentialTransaction } from '../session/utils' +import type { IsValidRelationshipValidationArguments, WithRelationshipTest } from './decorators' +import type { RelationshipMetadata } from './interfaces' +import { getRelationshipMetadata } from './metadata' @ValidatorConstraint({ name: 'IsValidRelationship', async: true }) export class IsValidRelationshipConstraint implements ValidatorConstraintInterface { - private em: EntityManager; - private message: string; + private em: EntityManager + private message: string - defaultMessage?(): string { - return this.message; - } + defaultMessage?(): string { + return this.message + } - async validate(value: ObjectId | ObjectId[], args: IsValidRelationshipValidationArguments) { - const entity = args.object as any; - const ctx = this.em.getSessionLoaderService().getSessionContext(); + async validate(value: ObjectId | ObjectId[], args: IsValidRelationshipValidationArguments) { + const entity = args.object as any + const ctx = this.em.getSessionLoaderService().getSessionContext() - try { - const relationMetadata: RelationshipMetadata = getRelationshipMetadata( - entity.constructor, - args.property, - this.em, - entity - ); - let relationship: any; + try { + const relationMetadata: RelationshipMetadata = getRelationshipMetadata( + entity.constructor, + args.property, + this.em, + entity + ) + let relationship: any - if (relationMetadata?.isArray === true) { - if (!Array.isArray(value)) { - throw new Error(`The ${args.property} must be an array`); - } - const errors: Error[] = []; - relationship = []; - for (const [index, _id] of value.entries()) { - const innerR = await ensureSequentialTransaction( - ctx, - async () => - await this.em.findOne(relationMetadata.type, { - _id - }) - ); - if (isEmpty(innerR)) { - errors.push( - new Error( - `The property ${ - args.property - } contains an invalid relationship ${_id.toHexString()} at index ${index}` - ) - ); - relationship.push(null); - continue; - } - relationship.push(innerR); - } - if (errors.length > 0) { - throw new Error(errors.map((e) => e.message).join(', ')); - } - } else { - if (Array.isArray(value)) { - throw new Error(`The ${args.property} must not be an array`); - } - relationship = await ensureSequentialTransaction( - ctx, - async () => await this.em.getRelationship(entity, args.property) - ); + if (relationMetadata?.isArray === true) { + if (!Array.isArray(value)) { + throw new Error(`The ${args.property} must be an array`) + } + const errors: Error[] = [] + relationship = [] + for (const [index, _id] of value.entries()) { + const innerR = await ensureSequentialTransaction( + ctx, + async () => + await this.em.findOne(relationMetadata.type, { + _id + }) + ) + if (isEmpty(innerR)) { + errors.push( + new Error( + `The property ${args.property} contains an invalid relationship ${_id.toHexString()} at index ${index}` + ) + ) + relationship.push(null) + continue + } + relationship.push(innerR) + } + if (errors.length > 0) { + throw new Error(errors.map((e) => e.message).join(', ')) + } + } else { + if (Array.isArray(value)) { + throw new Error(`The ${args.property} must not be an array`) + } + relationship = await ensureSequentialTransaction( + ctx, + async () => await this.em.getRelationship(entity, args.property) + ) - if (isEmpty(relationship)) { - throw new Error(`The property ${args.property} contains an invalid relationship`); - } - } + if (isEmpty(relationship)) { + throw new Error(`The property ${args.property} contains an invalid relationship`) + } + } - const withTestFunction = first(args.constraints); - if (typeof withTestFunction === 'function') { - const withTest: WithRelationshipTest = withTestFunction.bind(args.object); - const message = await withTest(args.object, relationship, this.em, ctx?.session); - if (typeof message === 'string') { - throw new Error(message); - } - } - return true; - } catch (e) { - this.message = e.message; - return false; + const withTestFunction = first(args.constraints) + if (typeof withTestFunction === 'function') { + const withTest: WithRelationshipTest = withTestFunction.bind(args.object) + const message = await withTest(args.object, relationship, this.em, ctx?.session) + if (typeof message === 'string') { + throw new Error(message) } + } + return true + } catch (e) { + this.message = e.message + return false } + } - setEm(em: EntityManager): IsValidRelationshipConstraint { - this.em = em; - return this; - } + setEm(em: EntityManager): IsValidRelationshipConstraint { + this.em = em + return this + } } diff --git a/src/relationship/decorators.ts b/src/relationship/decorators.ts index 611c3707..1f37a806 100644 --- a/src/relationship/decorators.ts +++ b/src/relationship/decorators.ts @@ -1,81 +1,81 @@ -import { applyDecorators } from '@nestjs/common'; -import { registerDecorator, ValidationArguments, ValidationOptions } from 'class-validator'; -import Debug from 'debug'; -import { ClientSession } from 'mongodb'; +import { applyDecorators } from '@nestjs/common' +import { registerDecorator, ValidationArguments, ValidationOptions } from 'class-validator' +import Debug from 'debug' +import { ClientSession } from 'mongodb' -import { DEBUG } from '../constants'; -import { EntityInterface } from '../entity/interfaces'; -import { EntityManager } from '../entity/manager'; -import { IndexMetadata, setIndexMetadata } from '../indexs/metadata'; -import { TypeObjectId } from '../transformer/objectId'; -import { IsValidRelationshipConstraint } from './constraint'; -import { RelationshipMetadataOptions, RelationshipTypeDescriptor } from './interfaces'; -import { setRelationshipMetadata } from './metadata'; +import { DEBUG } from '../constants' +import { EntityInterface } from '../entity/interfaces' +import { EntityManager } from '../entity/manager' +import { IndexMetadata, setIndexMetadata } from '../indexs/metadata' +import { TypeObjectId } from '../transformer/objectId' +import { IsValidRelationshipConstraint } from './constraint' +import { RelationshipMetadataOptions, RelationshipTypeDescriptor } from './interfaces' +import { setRelationshipMetadata } from './metadata' -export type WithValidRelationship = (object: any, relationship: any, em: EntityManager) => Promise; +export type WithValidRelationship = (object: any, relationship: any, em: EntityManager) => Promise export interface IsValidRelationshipOptions extends ValidationOptions { - with?: WithValidRelationship; + with?: WithValidRelationship } export type WithRelationshipTest = ( - object: any, - relationship: any, - em: EntityManager, - session?: ClientSession -) => Promise; + object: any, + relationship: any, + em: EntityManager, + session?: ClientSession +) => Promise export interface IsValidRelationshipValidationArguments extends ValidationArguments { - constraints: [WithRelationshipTest?]; + constraints: [WithRelationshipTest?] } export function IsValidRelationship(validationOptions?: IsValidRelationshipOptions) { - const constraints: WithValidRelationship[] = []; - if (validationOptions !== undefined && typeof validationOptions.with === 'function') { - constraints.push(validationOptions.with); - } + const constraints: WithValidRelationship[] = [] + if (validationOptions !== undefined && typeof validationOptions.with === 'function') { + constraints.push(validationOptions.with) + } - return (object: any, propertyName: string) => { - return registerDecorator({ - target: object.constructor, - propertyName, - options: validationOptions, - constraints, - validator: IsValidRelationshipConstraint - }); - }; + return (object: any, propertyName: string) => { + return registerDecorator({ + target: object.constructor, + propertyName, + options: validationOptions, + constraints, + validator: IsValidRelationshipConstraint + }) + } } export function Relationship( - options: RelationshipMetadataOptions | RelationshipTypeDescriptor | string + options: RelationshipMetadataOptions | RelationshipTypeDescriptor | string ) { - const debug = Debug(DEBUG + ':Relationship'); + const debug = Debug(DEBUG + ':Relationship') - const typeObjectIdDecorator = TypeObjectId(typeof options === 'object' ? options.isArray : false); + const typeObjectIdDecorator = TypeObjectId(typeof options === 'object' ? options.isArray : false) - const relationshipDecorator = (target: any, property: string) => { - debug('Register relationship metadata %o on %s', options, target); - const indexMetadata: IndexMetadata = { - property, - description: { - name: `${target.constructor.name as string}_${property}_relationship`, - key: { [property]: 1 } - } - }; - if (typeof options === 'function' || typeof options === 'string') { - setRelationshipMetadata(target, property, { - type: options - }); - setIndexMetadata(target, indexMetadata); - } else { - setRelationshipMetadata(target, property, options); - if (options.index !== undefined) { - if (options.index.description !== undefined) { - indexMetadata.description = { ...indexMetadata.description, ...options.index.description }; - } - } - setIndexMetadata(target, indexMetadata); + const relationshipDecorator = (target: any, property: string) => { + debug('Register relationship metadata %o on %s', options, target) + const indexMetadata: IndexMetadata = { + property, + description: { + name: `${target.constructor.name as string}_${property}_relationship`, + key: { [property]: 1 } + } + } + if (typeof options === 'function' || typeof options === 'string') { + setRelationshipMetadata(target, property, { + type: options + }) + setIndexMetadata(target, indexMetadata) + } else { + setRelationshipMetadata(target, property, options) + if (options.index !== undefined) { + if (options.index.description !== undefined) { + indexMetadata.description = { ...indexMetadata.description, ...options.index.description } } - }; + } + setIndexMetadata(target, indexMetadata) + } + } - return applyDecorators(typeObjectIdDecorator, relationshipDecorator); + return applyDecorators(typeObjectIdDecorator, relationshipDecorator) } diff --git a/src/relationship/index.ts b/src/relationship/index.ts index 2a082a23..e5bc40c2 100644 --- a/src/relationship/index.ts +++ b/src/relationship/index.ts @@ -1,5 +1,5 @@ -export * from './constraint'; -export * from './decorators'; -export * from './interfaces'; -export * from './metadata'; -export * from './pipes'; +export * from './constraint' +export * from './decorators' +export * from './interfaces' +export * from './metadata' +export * from './pipes' diff --git a/src/relationship/interfaces.ts b/src/relationship/interfaces.ts index 5ca5c4de..157f4bec 100644 --- a/src/relationship/interfaces.ts +++ b/src/relationship/interfaces.ts @@ -1,13 +1,13 @@ -import { ClassConstructor } from 'class-transformer'; -import { CreateIndexesOptions, IndexDescription } from 'mongodb'; +import { CreateIndexesOptions, IndexDescription } from 'mongodb' -import { EntityInterface } from '../entity/interfaces'; +import { Type } from '@nestjs/common' +import { EntityInterface } from '../entity/interfaces' /** * Define the cascade operation of a relationship */ export enum CascadeType { - DELETE = 'DELETE' + DELETE = 'DELETE' } /** @@ -17,54 +17,52 @@ export enum CascadeType { * The Child will have metadata defining the cascade operations to execute. */ export interface RelationshipCascade { - model: Child; - cascade: CascadeType[]; - property: string; - isArray?: boolean; + model: Child + cascade: CascadeType[] + property: string + isArray?: boolean } /** * The signature of the function used to determine the type of a relationship target */ -export type RelationshipTypeDescriptor = ( - obj?: any -) => ClassConstructor | false; +export type RelationshipTypeDescriptor = (obj?: any) => Type | false /** * Define a list of possible values (as string) for a property used to defined a dynamic type */ export interface PossibleTypes { - property: string; - values: string[]; + property: string + values: string[] } /** * Define the PossibleTypes of the relationship linked to a property */ export interface ChildRelationshipMetadata { - property: string; - possibleTypes?: PossibleTypes; + property: string + possibleTypes?: PossibleTypes } /** * The abstract relationship metadata */ export interface BaseRelationshipMetadata { - isArray?: boolean; - cascade?: CascadeType[]; - index?: { description?: IndexDescription & CreateIndexesOptions }; - possibleTypes?: PossibleTypes; + isArray?: boolean + cascade?: CascadeType[] + index?: { description?: IndexDescription & CreateIndexesOptions } + possibleTypes?: PossibleTypes } /** * The relationship metadata with a type defined as a function returning a class constructor (aka the model) */ export interface RelationshipMetadataOptions extends BaseRelationshipMetadata { - type: RelationshipTypeDescriptor | ClassConstructor | string; + type: RelationshipTypeDescriptor | Type | string } /** * The relationship metadata with a type defined as a class constructor (aka the model) */ export interface RelationshipMetadata extends BaseRelationshipMetadata { - type: ClassConstructor; + type: Type } diff --git a/src/relationship/metadata.ts b/src/relationship/metadata.ts index 688d2fb1..ce1734cc 100644 --- a/src/relationship/metadata.ts +++ b/src/relationship/metadata.ts @@ -1,18 +1,18 @@ -import { ClassConstructor } from 'class-transformer'; -import { isEmpty } from 'class-validator'; -import { cloneDeep, find, uniqBy } from 'lodash'; - -import { RELATIONSHIP_LIST_METADATA_NAME, RELATIONSHIP_METADATA_NAME } from '../constants'; -import { EntityInterface } from '../entity/interfaces'; -import { EntityManager } from '../entity/manager'; -import { isClass } from '../helpers'; -import { - ChildRelationshipMetadata, - RelationshipCascade, - RelationshipMetadata, - RelationshipMetadataOptions, - RelationshipTypeDescriptor -} from './interfaces'; +import { isEmpty } from 'class-validator' +import { cloneDeep, find, uniqBy } from 'lodash' + +import type { Type } from '@nestjs/common' +import { RELATIONSHIP_LIST_METADATA_NAME, RELATIONSHIP_METADATA_NAME } from '../constants' +import type { EntityInterface } from '../entity/interfaces' +import type { EntityManager } from '../entity/manager' +import { isClass } from '../helpers' +import type { + ChildRelationshipMetadata, + RelationshipCascade, + RelationshipMetadata, + RelationshipMetadataOptions, + RelationshipTypeDescriptor +} from './interfaces' /** * Set relationship metadata @@ -22,22 +22,22 @@ import { * @param metadata The metadata defining the relationship */ export function setRelationshipMetadata( - target: any, - property: string, - metadata: RelationshipMetadataOptions + target: any, + property: string, + metadata: RelationshipMetadataOptions ) { - const model = target.constructor; - if (isEmpty(metadata.type)) { - throw new Error(`"type" property is required in setRelationshipMetadata for ${model.name as string}`); - } + const model = target.constructor + if (isEmpty(metadata.type)) { + throw new Error(`"type" property is required in setRelationshipMetadata for ${model.name as string}`) + } - if (isEmpty(metadata.isArray)) { - metadata.isArray = false; - } + if (isEmpty(metadata.isArray)) { + metadata.isArray = false + } - addRelationshipMetadata(model, property, metadata); + addRelationshipMetadata(model, property, metadata) - Reflect.defineMetadata(RELATIONSHIP_METADATA_NAME, metadata, model, property); + Reflect.defineMetadata(RELATIONSHIP_METADATA_NAME, metadata, model, property) } /** @@ -49,48 +49,48 @@ export function setRelationshipMetadata( * @param obj The instance of the entity (only required if the type of the relationship is dynamic) */ export function getRelationshipMetadata( - target: any, - property: string, - em?: EntityManager, - obj?: any + target: any, + property: string, + em?: EntityManager, + obj?: any ): RelationshipMetadata { - const metadata: RelationshipMetadataOptions | undefined = Reflect.getMetadata( - RELATIONSHIP_METADATA_NAME, - target, - property - ); - - if (metadata === undefined) { - throw new Error(`Can not get relationship metadata for property "${property.toString()}" on "${target.name}"`); + const metadata: RelationshipMetadataOptions | undefined = Reflect.getMetadata( + RELATIONSHIP_METADATA_NAME, + target, + property + ) + + if (metadata === undefined) { + throw new Error(`Can not get relationship metadata for property "${property.toString()}" on "${target.name}"`) + } + + const metadataDefinition = cloneDeep(metadata) as RelationshipMetadata + + if (!isClass(metadata.type) && typeof metadata.type === 'function') { + const type = metadata.type as RelationshipTypeDescriptor + const dynamicType = type(obj) + if (dynamicType === false) { + throw new Error(`Can not get the dynamic type of ${target.name} ${property} property`) } - - const metadataDefinition = cloneDeep(metadata) as RelationshipMetadata; - - if (!isClass(metadata.type) && typeof metadata.type === 'function') { - const type = metadata.type as RelationshipTypeDescriptor; - const dynamicType = type(obj); - if (dynamicType === false) { - throw new Error(`Can not get the dynamic type of ${target.name} ${property} property`); - } - metadataDefinition.type = dynamicType; + metadataDefinition.type = dynamicType + } + + if (typeof metadata.type === 'string') { + if (em === undefined) { + throw new Error( + `EntityManager parameter is required to get relationship metadata for property ${property.toString()} in object ${ + target.name + }` + ) } - - if (typeof metadata.type === 'string') { - if (em === undefined) { - throw new Error( - `EntityManager parameter is required to get relationship metadata for property ${property.toString()} in object ${ - target.name - }` - ); - } - const model = em.getModel(metadata.type); - if (model === undefined) { - throw new Error(`Can not get model ${metadata.type}`); - } - metadataDefinition.type = model; + const model = em.getModel(metadata.type) + if (model === undefined) { + throw new Error(`Can not get model ${metadata.type}`) } + metadataDefinition.type = model + } - return metadataDefinition; + return metadataDefinition } /** @@ -102,20 +102,20 @@ export function getRelationshipMetadata( * @param metadata */ export function addRelationshipMetadata

                                                                                                                                                                                  ( - target: ClassConstructor

                                                                                                                                                                                  , - property: string, - metadata: RelationshipMetadataOptions + target: Type

                                                                                                                                                                                  , + property: string, + metadata: RelationshipMetadataOptions ) { - const relationsMetadata = getRelationshipMetadataList(target); - relationsMetadata.push({ - property, - possibleTypes: metadata.possibleTypes - }); - Reflect.defineMetadata( - RELATIONSHIP_LIST_METADATA_NAME, - uniqBy(relationsMetadata, (r: any) => r.property), - target - ); + const relationsMetadata = getRelationshipMetadataList(target) + relationsMetadata.push({ + property, + possibleTypes: metadata.possibleTypes + }) + Reflect.defineMetadata( + RELATIONSHIP_LIST_METADATA_NAME, + uniqBy(relationsMetadata, (r: any) => r.property), + target + ) } /** @@ -123,8 +123,8 @@ export function addRelationshipMetadata

                                                                                                                                                                                  ( * @param target The class constructor of an entity * @returns */ -export function getRelationshipMetadataList

                                                                                                                                                                                  (target: ClassConstructor

                                                                                                                                                                                  ): ChildRelationshipMetadata[] { - return (Reflect.getMetadata(RELATIONSHIP_LIST_METADATA_NAME, target) ?? []).slice(); +export function getRelationshipMetadataList

                                                                                                                                                                                  (target: Type

                                                                                                                                                                                  ): ChildRelationshipMetadata[] { + return (Reflect.getMetadata(RELATIONSHIP_LIST_METADATA_NAME, target) ?? []).slice() } /** @@ -133,49 +133,49 @@ export function getRelationshipMetadataList

                                                                                                                                                                                  (target: ClassConstructor

                                                                                                                                                                                  * @param manager */ export function setRelationshipsCascadesMetadata( - ChildClass: ClassConstructor, - manager: EntityManager + ChildClass: Type, + manager: EntityManager ) { - const props = getRelationshipMetadataList(ChildClass); - if (Array.isArray(props)) { - for (const prop of props) { - const _setMetadata = (c: Child) => { - const relationshipMetadata = getRelationshipMetadata(c.constructor, prop.property, manager, c); - if (Array.isArray(relationshipMetadata.cascade)) { - let owner = relationshipMetadata.type; - let target = ChildClass; - if (relationshipMetadata.isArray === true) { - owner = ChildClass; - target = relationshipMetadata.type; - } - const parentMeta = getRelationshipsCascadesMetadata(owner); - const cascadeOP: RelationshipCascade = { - model: target, - cascade: relationshipMetadata.cascade, - property: prop.property, - isArray: relationshipMetadata.isArray - }; - parentMeta.push(cascadeOP); - - Reflect.defineMetadata( - 'CASCADE', - uniqBy(parentMeta, (m: any) => m.property), - owner - ); - } - }; - if (prop.possibleTypes !== undefined) { - for (const typeValue of prop.possibleTypes.values) { - const c = new ChildClass(); - c[prop.possibleTypes.property] = typeValue; - _setMetadata(c); - } - } else { - const c = new ChildClass(); - _setMetadata(c); - } + const props = getRelationshipMetadataList(ChildClass) + if (Array.isArray(props)) { + for (const prop of props) { + const _setMetadata = (c: Child) => { + const relationshipMetadata = getRelationshipMetadata(c.constructor, prop.property, manager, c) + if (Array.isArray(relationshipMetadata.cascade)) { + let owner = relationshipMetadata.type + let target = ChildClass + if (relationshipMetadata.isArray === true) { + owner = ChildClass + target = relationshipMetadata.type + } + const parentMeta = getRelationshipsCascadesMetadata(owner) + const cascadeOP: RelationshipCascade = { + model: target, + cascade: relationshipMetadata.cascade, + property: prop.property, + isArray: relationshipMetadata.isArray + } + parentMeta.push(cascadeOP) + + Reflect.defineMetadata( + 'CASCADE', + uniqBy(parentMeta, (m: any) => m.property), + owner + ) + } + } + if (prop.possibleTypes !== undefined) { + for (const typeValue of prop.possibleTypes.values) { + const c = new ChildClass() + c[prop.possibleTypes.property] = typeValue + _setMetadata(c) } + } else { + const c = new ChildClass() + _setMetadata(c) + } } + } } /** @@ -184,9 +184,9 @@ export function setRelationshipsCascadesMetadata( - target: ClassConstructor + target: Type ): RelationshipCascade[] { - return (Reflect.getMetadata('CASCADE', target) ?? []).slice(); + return (Reflect.getMetadata('CASCADE', target) ?? []).slice() } /** @@ -196,11 +196,11 @@ export function getRelationshipsCascadesMetadata(parent: ClassConstructor, relationshipType: ClassConstructor): RelationshipCascade | undefined { - const relCascades = (getRelationshipsCascadesMetadata(parent) ?? []).slice(); - return find(relCascades, (cs) => { - return cs.model === relationshipType; - }); + Parent extends EntityInterface = any, + Child extends EntityInterface = any +>(parent: Type, relationshipType: Type): RelationshipCascade | undefined { + const relCascades = (getRelationshipsCascadesMetadata(parent) ?? []).slice() + return find(relCascades, (cs) => { + return cs.model === relationshipType + }) } diff --git a/src/relationship/pipes/index.ts b/src/relationship/pipes/index.ts index 4000ef66..a8cc23a1 100644 --- a/src/relationship/pipes/index.ts +++ b/src/relationship/pipes/index.ts @@ -1,2 +1,2 @@ -export * from './relationship'; -export * from './required.relationship'; +export * from './relationship' +export * from './required.relationship' diff --git a/src/relationship/pipes/relationship.ts b/src/relationship/pipes/relationship.ts index b161da21..d0096891 100644 --- a/src/relationship/pipes/relationship.ts +++ b/src/relationship/pipes/relationship.ts @@ -1,20 +1,20 @@ -import { ArgumentMetadata, BadRequestException, Injectable, PipeTransform } from '@nestjs/common'; -import { isMongoId } from 'class-validator'; -import { ObjectId } from 'mongodb'; +import { ArgumentMetadata, BadRequestException, Injectable, PipeTransform } from '@nestjs/common' +import { isMongoId } from 'class-validator' +import { ObjectId } from 'mongodb' -import { EntityManager } from '../../entity/manager'; -import { InjectEntityManager } from '../../module/injection'; +import { EntityManager } from '../../entity/manager' +import { InjectEntityManager } from '../../module/injection' @Injectable() export class RelationshipPipe implements PipeTransform { - constructor(@InjectEntityManager() protected readonly em: EntityManager) {} + constructor(@InjectEntityManager() protected readonly em: EntityManager) {} - async transform(value: any, metadata: ArgumentMetadata) { - if (!isMongoId(value)) { - throw new BadRequestException(`The ${metadata.data ?? 'objectId'} is malformed`); - } - return await this.em.findOne(metadata.metatype as any, { - _id: new ObjectId(value) - }); + async transform(value: any, metadata: ArgumentMetadata) { + if (!isMongoId(value)) { + throw new BadRequestException(`The ${metadata.data ?? 'objectId'} is malformed`) } + return await this.em.findOne(metadata.metatype as any, { + _id: new ObjectId(value) + }) + } } diff --git a/src/relationship/pipes/required.relationship.ts b/src/relationship/pipes/required.relationship.ts index e74b2030..58bc9d92 100644 --- a/src/relationship/pipes/required.relationship.ts +++ b/src/relationship/pipes/required.relationship.ts @@ -1,16 +1,14 @@ -import { ArgumentMetadata, NotFoundException } from '@nestjs/common'; -import { ObjectId } from 'mongodb'; +import { ArgumentMetadata, NotFoundException } from '@nestjs/common' +import { ObjectId } from 'mongodb' -import { RelationshipPipe } from './relationship'; +import { RelationshipPipe } from './relationship' export class RequiredRelationshipPipe extends RelationshipPipe { - async transform(value: ObjectId, metadata: ArgumentMetadata) { - const val = await super.transform(value, metadata); - if (val === undefined) { - throw new NotFoundException( - `${(metadata.metatype as any).name as string}:${value.toHexString()}" not found` - ); - } - return val; + async transform(value: ObjectId, metadata: ArgumentMetadata) { + const val = await super.transform(value, metadata) + if (val === undefined) { + throw new NotFoundException(`${(metadata.metatype as any).name as string}:${value.toHexString()}" not found`) } + return val + } } diff --git a/src/serializer/decorators.ts b/src/serializer/decorators.ts index d97cd6bd..fb8348b0 100644 --- a/src/serializer/decorators.ts +++ b/src/serializer/decorators.ts @@ -1,11 +1,11 @@ -import { serialize, toJSON } from './serializer'; +import { serialize, toJSON } from './serializer' /** * Extend a class to be serializable, add 2 methods serialize() and toJSON() */ export function Serializable() { - return (target: any) => { - target.prototype.serialize = serialize; - target.prototype.toJSON = toJSON; - }; + return (target: any) => { + target.prototype.serialize = serialize + target.prototype.toJSON = toJSON + } } diff --git a/src/serializer/index.ts b/src/serializer/index.ts index a17bf86c..57f93265 100644 --- a/src/serializer/index.ts +++ b/src/serializer/index.ts @@ -1,3 +1,3 @@ -export * from './interfaces'; -export * from './serializer'; -export * from './decorators'; +export * from './interfaces' +export * from './serializer' +export * from './decorators' diff --git a/src/serializer/interfaces.ts b/src/serializer/interfaces.ts index e2d94136..ce74c445 100644 --- a/src/serializer/interfaces.ts +++ b/src/serializer/interfaces.ts @@ -1,11 +1,11 @@ export interface SerializableInterface { - /** - * Transform a class instance to plain object (ObjectIds become string) - */ - serialize: () => Record; + /** + * Transform a class instance to plain object (ObjectIds become string) + */ + serialize: () => Record - /** - * Transform a class instance to json object (ObjectIds are not touched) - */ - toJSON: () => Record; + /** + * Transform a class instance to json object (ObjectIds are not touched) + */ + toJSON: () => Record } diff --git a/src/serializer/serializer.ts b/src/serializer/serializer.ts index 361f446f..8d0d5e34 100644 --- a/src/serializer/serializer.ts +++ b/src/serializer/serializer.ts @@ -1,29 +1,29 @@ -import { EXCLUDED_PREFIXES, toPlain } from '../transformer/utils'; +import { EXCLUDED_PREFIXES, toPlain } from '../transformer/utils' export function serialize() { - return toPlain(this); + return toPlain(this) } export function toJSON() { - const proto = Object.getPrototypeOf(this); + const proto = Object.getPrototypeOf(this) - const json = Object.entries(Object.getOwnPropertyDescriptors(proto)) - .filter(([, { get }]) => typeof get === 'function') - .reduce( - (obj, [key]) => ({ - ...obj, - [key]: this[key] - }), - { ...this } - ); + const json = Object.entries(Object.getOwnPropertyDescriptors(proto)) + .filter(([, { get }]) => typeof get === 'function') + .reduce( + (obj, [key]) => ({ + ...obj, + [key]: this[key] + }), + { ...this } + ) - return Object.keys(json) - .filter((k) => !EXCLUDED_PREFIXES.some((prefix) => k.startsWith(prefix))) - .reduce( - (obj, key) => ({ - ...obj, - [key]: typeof json[key]?.toJSON === 'function' ? json[key]?.toJSON() : json[key] - }), - {} - ); + return Object.keys(json) + .filter((k) => !EXCLUDED_PREFIXES.some((prefix) => k.startsWith(prefix))) + .reduce( + (obj, key) => ({ + ...obj, + [key]: typeof json[key]?.toJSON === 'function' ? json[key]?.toJSON() : json[key] + }), + {} + ) } diff --git a/src/session/middleware.ts b/src/session/middleware.ts index 527d7f6d..e9a1864e 100644 --- a/src/session/middleware.ts +++ b/src/session/middleware.ts @@ -1,19 +1,19 @@ -import { Injectable, NestMiddleware } from '@nestjs/common'; -import { createNamespace } from 'cls-hooked'; -import Debug from 'debug'; -import { Request, Response } from 'express'; +import { Injectable, NestMiddleware } from '@nestjs/common' +import { createNamespace } from 'cls-hooked' +import Debug from 'debug' +import { Request, Response } from 'express' -import { DEBUG, SESSION_LOADER_NAMESPACE } from '../constants'; +import { DEBUG, SESSION_LOADER_NAMESPACE } from '../constants' @Injectable() export class SessionLoaderMiddleware implements NestMiddleware { - protected log = Debug(`${DEBUG}:SessionLoaderMiddleware`); - protected static readonly ns = createNamespace(SESSION_LOADER_NAMESPACE); + protected log = Debug(`${DEBUG}:SessionLoaderMiddleware`) + protected static readonly ns = createNamespace(SESSION_LOADER_NAMESPACE) - use(_: Request, __: Response, next: (error?: Error | any) => void) { - SessionLoaderMiddleware.ns.run(() => { - this.log('Running namespace %s', SESSION_LOADER_NAMESPACE); - next(); - }); - } + use(_: Request, __: Response, next: (error?: Error | any) => void) { + SessionLoaderMiddleware.ns.run(() => { + this.log('Running namespace %s', SESSION_LOADER_NAMESPACE) + next() + }) + } } diff --git a/src/session/orchestrator.ts b/src/session/orchestrator.ts index d69c0cb5..e0e286ca 100644 --- a/src/session/orchestrator.ts +++ b/src/session/orchestrator.ts @@ -1,4 +1,4 @@ -import { Debugger } from 'debug'; +import { Debugger } from 'debug' /** * Transactions in sessions need to be sequential @@ -6,30 +6,30 @@ import { Debugger } from 'debug'; * in a Promise.all context. */ export class TransactionsOrchestrator { - protected readonly jobs: Array> = []; - protected current = 0; + protected readonly jobs: Array> = [] + protected current = 0 - constructor(protected readonly log: Debugger) {} + constructor(protected readonly log: Debugger) {} - async addJob Promise>(jobFunc: F): Promise> { - const current = this.current; - this.log('Registering job %s on orchestrator', current); + async addJob Promise>(jobFunc: F): Promise> { + const current = this.current + this.log('Registering job %s on orchestrator', current) - this.jobs.push( - new Promise((resolve, reject) => { - const prevJob = this.jobs?.[current - 1] ?? Promise.resolve(); - prevJob - .then(() => { - this.log('Executing job %s on orchestrator', current); - return resolve(jobFunc()); - }) - .catch((e) => reject(e)); - }) - ); + this.jobs.push( + new Promise((resolve, reject) => { + const prevJob = this.jobs?.[current - 1] ?? Promise.resolve() + prevJob + .then(() => { + this.log('Executing job %s on orchestrator', current) + return resolve(jobFunc()) + }) + .catch((e) => reject(e)) + }) + ) - const result = this.jobs[current]; - this.current += 1; + const result = this.jobs[current] + this.current += 1 - return await result; - } + return await result + } } diff --git a/src/session/service.ts b/src/session/service.ts index 7f6205e6..62e45279 100644 --- a/src/session/service.ts +++ b/src/session/service.ts @@ -1,38 +1,38 @@ -import { Injectable } from '@nestjs/common'; -import { getNamespace } from 'cls-hooked'; -import Debug from 'debug'; -import { ClientSession } from 'mongodb'; +import { Injectable } from '@nestjs/common' +import { getNamespace } from 'cls-hooked' +import Debug from 'debug' +import { ClientSession } from 'mongodb' -import { DEBUG, MONGO_SESSION_KEY, SESSION_LOADER_NAMESPACE } from '../constants'; -import { TransactionsOrchestrator } from './orchestrator'; -import { ClientSessionContext } from './types'; +import { DEBUG, MONGO_SESSION_KEY, SESSION_LOADER_NAMESPACE } from '../constants' +import { TransactionsOrchestrator } from './orchestrator' +import { ClientSessionContext } from './types' @Injectable() export class SessionLoaderService { - protected log = Debug(`${DEBUG}:SessionLoaderService`); + protected log = Debug(`${DEBUG}:SessionLoaderService`) - getSession() { - return getNamespace(SESSION_LOADER_NAMESPACE); - } + getSession() { + return getNamespace(SESSION_LOADER_NAMESPACE) + } - getSessionContext(): ClientSessionContext { - return this.getSession()?.get?.(MONGO_SESSION_KEY); - } + getSessionContext(): ClientSessionContext { + return this.getSession()?.get?.(MONGO_SESSION_KEY) + } - setSessionContext(mongoClientSession: ClientSession): void { - this.log('Registering mongo session on namespace %s', SESSION_LOADER_NAMESPACE); + setSessionContext(mongoClientSession: ClientSession): void { + this.log('Registering mongo session on namespace %s', SESSION_LOADER_NAMESPACE) - const context = this.getSession(); - const orchestrator = new TransactionsOrchestrator(this.log); + const context = this.getSession() + const orchestrator = new TransactionsOrchestrator(this.log) - context?.set?.(MONGO_SESSION_KEY, { - session: mongoClientSession, - orchestrator - }); - } + context?.set?.(MONGO_SESSION_KEY, { + session: mongoClientSession, + orchestrator + }) + } - clearSessionContext(): void { - this.log('Clearing mongo session on namespace %s', SESSION_LOADER_NAMESPACE); - this.getSession()?.set?.(MONGO_SESSION_KEY, undefined); - } + clearSessionContext(): void { + this.log('Clearing mongo session on namespace %s', SESSION_LOADER_NAMESPACE) + this.getSession()?.set?.(MONGO_SESSION_KEY, undefined) + } } diff --git a/src/session/types.ts b/src/session/types.ts index 974c3974..6294b594 100644 --- a/src/session/types.ts +++ b/src/session/types.ts @@ -1,10 +1,10 @@ -import { ClientSession } from 'mongodb'; +import { ClientSession } from 'mongodb' -import { TransactionsOrchestrator } from './orchestrator'; +import { TransactionsOrchestrator } from './orchestrator' export type ClientSessionContext = - | { - session: ClientSession; - orchestrator: TransactionsOrchestrator; - } - | undefined; + | { + session: ClientSession + orchestrator: TransactionsOrchestrator + } + | undefined diff --git a/src/session/utils.ts b/src/session/utils.ts index cb0aadea..39acec0e 100644 --- a/src/session/utils.ts +++ b/src/session/utils.ts @@ -1,19 +1,19 @@ -import { ClientSessionContext } from './types'; +import { ClientSessionContext } from './types' export const ensureSequentialTransaction = async Promise>( - ctx: ClientSessionContext, - jobFn: F + ctx: ClientSessionContext, + jobFn: F ): Promise> => { - /** - * class-validator internally uses Promise.all to resolve awaiting validation promises - * https://github.com/typestack/class-validator/blob/615931e2903cbd680bd8fe2256e8d37dd20aeb37/src/validation/Validator.ts#L109 - * - * When a session has been set on the current context, we need a way to maintain a sequential approach - * in the order of transactions committed to the session in order to avoid TransactionErrors that could - * occur when parallelizing promises via Promise.all. - * - * Using the ClientSessionContext::orchestrator allows us to force sequential promise application - */ - if (ctx === undefined) return await jobFn(); - return await ctx.orchestrator.addJob(jobFn); -}; + /** + * class-validator internally uses Promise.all to resolve awaiting validation promises + * https://github.com/typestack/class-validator/blob/615931e2903cbd680bd8fe2256e8d37dd20aeb37/src/validation/Validator.ts#L109 + * + * When a session has been set on the current context, we need a way to maintain a sequential approach + * in the order of transactions committed to the session in order to avoid TransactionErrors that could + * occur when parallelizing promises via Promise.all. + * + * Using the ClientSessionContext::orchestrator allows us to force sequential promise application + */ + if (ctx === undefined) return await jobFn() + return await ctx.orchestrator.addJob(jobFn) +} diff --git a/src/transformer/index.ts b/src/transformer/index.ts index 5bd936c5..99195b32 100644 --- a/src/transformer/index.ts +++ b/src/transformer/index.ts @@ -1,3 +1,3 @@ -export * from './objectId'; -export * from './utils'; -export * from './slug'; +export * from './objectId' +export * from './utils' +export * from './slug' diff --git a/src/transformer/objectId/index.ts b/src/transformer/objectId/index.ts index d34d6048..97ccf821 100644 --- a/src/transformer/objectId/index.ts +++ b/src/transformer/objectId/index.ts @@ -1,37 +1,37 @@ -import { applyDecorators } from '@nestjs/common'; -import { Transform, TransformationType, Type } from 'class-transformer'; -import { Allow } from 'class-validator'; -import { ObjectId } from 'mongodb'; +import { applyDecorators } from '@nestjs/common' +import { Transform, TransformationType, Type } from 'class-transformer' +import { Allow } from 'class-validator' +import { ObjectId } from 'mongodb' -export * from './objectid.pipe'; +export * from './objectid.pipe' export const transformObjectId = (type: TransformationType, value: string | ObjectId) => { - if (type === TransformationType.CLASS_TO_CLASS) { - return value; - } else if (type === TransformationType.PLAIN_TO_CLASS) { - return new ObjectId(value); - } else if (type === TransformationType.CLASS_TO_PLAIN) { - if (value instanceof ObjectId) { - return value.toHexString(); - } else { - return value; - } + if (type === TransformationType.CLASS_TO_CLASS) { + return value + } else if (type === TransformationType.PLAIN_TO_CLASS) { + return new ObjectId(value) + } else if (type === TransformationType.CLASS_TO_PLAIN) { + if (value instanceof ObjectId) { + return value.toHexString() + } else { + return value } -}; + } +} export function TypeObjectId(isArray?: boolean) { - const typefn = Type(() => ObjectId); - const trfn = Transform((params) => { - const value = params.obj[params.key]; - if (value === undefined) { - return; - } - if (Array.isArray(value) && isArray === true) { - return value.map((v) => transformObjectId(params.type, v)); - } else { - return transformObjectId(params.type, value); - } - }); - const allowfn = Allow(); - return applyDecorators(typefn, trfn, allowfn); + const typefn = Type(() => ObjectId) + const trfn = Transform((params) => { + const value = params.obj[params.key] + if (value === undefined) { + return + } + if (Array.isArray(value) && isArray === true) { + return value.map((v) => transformObjectId(params.type, v)) + } else { + return transformObjectId(params.type, value) + } + }) + const allowfn = Allow() + return applyDecorators(typefn, trfn, allowfn) } diff --git a/src/transformer/objectId/objectid.pipe.ts b/src/transformer/objectId/objectid.pipe.ts index 56a96dff..bb733dea 100644 --- a/src/transformer/objectId/objectid.pipe.ts +++ b/src/transformer/objectId/objectid.pipe.ts @@ -1,13 +1,13 @@ -import { ArgumentMetadata, BadRequestException, Injectable, PipeTransform } from '@nestjs/common'; -import { isMongoId } from 'class-validator'; -import { ObjectId } from 'mongodb'; +import { ArgumentMetadata, BadRequestException, Injectable, PipeTransform } from '@nestjs/common' +import { isMongoId } from 'class-validator' +import { ObjectId } from 'mongodb' @Injectable() export class ObjectIdPipe implements PipeTransform { - async transform(value: any, metadata: ArgumentMetadata) { - if (!isMongoId(value)) { - throw new BadRequestException(`The ${metadata.data ?? 'objectId'} is malformed`); - } - return new ObjectId(value); + async transform(value: any, metadata: ArgumentMetadata) { + if (!isMongoId(value)) { + throw new BadRequestException(`The ${metadata.data ?? 'objectId'} is malformed`) } + return new ObjectId(value) + } } diff --git a/src/transformer/slug.ts b/src/transformer/slug.ts index b65c3642..d799593a 100644 --- a/src/transformer/slug.ts +++ b/src/transformer/slug.ts @@ -1,43 +1,41 @@ -import { applyDecorators } from '@nestjs/common'; -import { RuntimeException } from '@nestjs/core/errors/exceptions/runtime.exception'; -import { Expose, Transform, Type } from 'class-transformer'; -import slugify from 'slugify'; +import { applyDecorators } from '@nestjs/common' +import { RuntimeException } from '@nestjs/core/errors/exceptions/runtime.exception' +import { Expose, Transform, Type } from 'class-transformer' +import slugify from 'slugify' -type KeysOfType = { [K in keyof T]: T[K] extends V ? K : never }[keyof T]; +type KeysOfType = { [K in keyof T]: T[K] extends V ? K : never }[keyof T] interface ISlugifyOptions { - /* enforce "slugify-able" keys to reference only string values */ - keys?: Array>; - generate?: (obj: T) => string; - expose?: boolean; - options?: - | { - replacement?: string; - remove?: RegExp; - lower?: boolean; - strict?: boolean; - } - | string; + /* enforce "slugify-able" keys to reference only string values */ + keys?: Array> + generate?: (obj: T) => string + expose?: boolean + options?: + | { + replacement?: string + remove?: RegExp + lower?: boolean + strict?: boolean + } + | string } export function SlugDecorator(target: any, key: string, config: ISlugifyOptions) { - const seed = (obj: any) => { - if (typeof config.generate === 'function') return config.generate(obj); + const seed = (obj: any) => { + if (typeof config.generate === 'function') return config.generate(obj) - if (config.keys?.length !== undefined && config.keys?.length > 0) - return config.keys.filter(Boolean).reduce((str, key) => `${str} ${obj[key] as string}`, ''); + if (config.keys?.length !== undefined && config.keys?.length > 0) + return config.keys.filter(Boolean).reduce((str, key) => `${str} ${obj[key] as string}`, '') - throw new RuntimeException('Unable to slugify'); - }; - return Transform(({ value, obj }) => value ?? slugify(seed(obj), config.options))(target, key); + throw new RuntimeException('Unable to slugify') + } + return Transform(({ value, obj }) => value ?? slugify(seed(obj), config.options))(target, key) } export function Slugify(config: ISlugifyOptions) { - return applyDecorators( - ...[ - Type(() => String), - (target: any, key: string) => SlugDecorator(target, key, config), - ...(config.expose !== undefined && config.expose ? [Expose()] : []) - ] - ); + return applyDecorators( + Type(() => String), + (target: any, key: string) => SlugDecorator(target, key, config), + ...(config.expose !== undefined && config.expose ? [Expose()] : []) + ) } diff --git a/src/transformer/utils.ts b/src/transformer/utils.ts index 919d7bd7..d2633007 100644 --- a/src/transformer/utils.ts +++ b/src/transformer/utils.ts @@ -1,21 +1,21 @@ -import { ClassConstructor, classToPlain, ClassTransformOptions, plainToClass } from 'class-transformer'; -import { mergeWith, unset } from 'lodash'; +import { ClassConstructor, classToPlain, ClassTransformOptions, plainToClass } from 'class-transformer' +import { mergeWith, unset } from 'lodash' -import { EntityInterface } from '../entity/interfaces'; +import type { EntityInterface } from '../entity/interfaces' -export const EXCLUDED_PREFIXES = ['__']; +export const EXCLUDED_PREFIXES = ['__'] -export const toPlain = (data: T) => classToPlain(data, { excludePrefixes: EXCLUDED_PREFIXES }); +export const toPlain = (data: T) => classToPlain(data, { excludePrefixes: EXCLUDED_PREFIXES }) export const fromPlain = ( - classType: ClassConstructor, - data: object, - options?: ClassTransformOptions + classType: ClassConstructor, + data: object, + options?: ClassTransformOptions ) => - plainToClass(classType, data, { - excludePrefixes: EXCLUDED_PREFIXES, - ...options - }); + plainToClass(classType, data, { + excludePrefixes: EXCLUDED_PREFIXES, + ...options + }) /** * @param entity The model to hydrate @@ -23,17 +23,17 @@ export const fromPlain = ( * @param excludePrefixes The prefixes to excludes (if the source contains key ith prefix) */ export const merge = (entity: Model, data: Model, excludePrefixes?: string[]) => { - mergeWith(entity, data, (value: any, srcValue: any) => { - return srcValue ?? value; - }); + mergeWith(entity, data, (value: any, srcValue: any) => { + return srcValue ?? value + }) - // clean any excluded property - for (const prop in entity) { - if (excludePrefixes?.some((p) => prop.startsWith(p)) === true) { - unset(entity, prop); - // return undefined; - } + // clean any excluded property + for (const prop in entity) { + if (excludePrefixes?.some((p) => prop.startsWith(p)) === true) { + unset(entity, prop) + // return undefined; } + } - return entity; -}; + return entity +} diff --git a/src/validation/index.ts b/src/validation/index.ts index 4d39d161..925d9912 100644 --- a/src/validation/index.ts +++ b/src/validation/index.ts @@ -1 +1 @@ -export * from './unique'; +export * from './unique' diff --git a/src/validation/unique/constraint.ts b/src/validation/unique/constraint.ts index c0ef2ae3..8ee3ca4b 100644 --- a/src/validation/unique/constraint.ts +++ b/src/validation/unique/constraint.ts @@ -1,68 +1,68 @@ import { - isEmpty, - ValidationArguments, - ValidationOptions, - ValidatorConstraint, - ValidatorConstraintInterface -} from 'class-validator'; + isEmpty, + ValidationArguments, + ValidationOptions, + ValidatorConstraint, + ValidatorConstraintInterface +} from 'class-validator' -import { Entity } from '../../entity/entity'; -import { EntityManager } from '../../entity/manager'; -import { ensureSequentialTransaction } from '../../session/utils'; +import { Entity } from '../../entity/entity' +import { EntityManager } from '../../entity/manager' +import { ensureSequentialTransaction } from '../../session/utils' export type IsUniqueOptions = ValidationOptions & { - keys?: string[]; - sparse?: boolean; - noIndex?: boolean; -}; + keys?: string[] + sparse?: boolean + noIndex?: boolean +} @ValidatorConstraint({ name: 'IsUnique', async: true }) export class IsUniqueConstraint implements ValidatorConstraintInterface { - private em: EntityManager; - private message: string; - - defaultMessage?(): string { - return this.message; - } + private em: EntityManager + private message: string - async validate(value: any, args: ValidationArguments) { - const object = args.object as Entity; - const id = object._id; - const query: any = { - [args.property]: value - }; - const options = args.constraints[0] as IsUniqueOptions; - if (options.keys !== undefined && options.keys.length > 0) { - for (const prop of options.keys) { - if (isEmpty(object[prop])) { - if (options.sparse !== undefined && options.sparse) { - query[prop] = { $exists: false }; - } - continue; - } - query[prop] = object[prop]; - } - } - if (!isEmpty(id)) { - query._id = { $ne: id }; - } - const type: any = object.constructor; - const count = await ensureSequentialTransaction( - this.em.getSessionLoaderService().getSessionContext(), - async () => await this.em.count(type, query) - ); + defaultMessage?(): string { + return this.message + } - if (count > 0) { - this.message = `An item ${args.object.constructor.name} with similar values already exists (${Object.keys( - query - ).join(', ')})`; - return false; + async validate(value: any, args: ValidationArguments) { + const object = args.object as Entity + const id = object._id + const query: any = { + [args.property]: value + } + const options = args.constraints[0] as IsUniqueOptions + if (options.keys !== undefined && options.keys.length > 0) { + for (const prop of options.keys) { + if (isEmpty(object[prop])) { + if (options.sparse !== undefined && options.sparse) { + query[prop] = { $exists: false } + } + continue } - return true; + query[prop] = object[prop] + } } + if (!isEmpty(id)) { + query._id = { $ne: id } + } + const type: any = object.constructor + const count = await ensureSequentialTransaction( + this.em.getSessionLoaderService().getSessionContext(), + async () => await this.em.count(type, query) + ) - setEm(em: EntityManager): IsUniqueConstraint { - this.em = em; - return this; + if (count > 0) { + this.message = `An item ${args.object.constructor.name} with similar values already exists (${Object.keys( + query + ).join(', ')})` + return false } + return true + } + + setEm(em: EntityManager): IsUniqueConstraint { + this.em = em + return this + } } diff --git a/src/validation/unique/decorator.ts b/src/validation/unique/decorator.ts index 2b627ca9..2803d805 100644 --- a/src/validation/unique/decorator.ts +++ b/src/validation/unique/decorator.ts @@ -1,35 +1,35 @@ -import { registerDecorator } from 'class-validator'; -import { get } from 'lodash'; +import { registerDecorator } from 'class-validator' +import { get } from 'lodash' -import { Index } from '../../indexs/decorators'; -import { IsUniqueConstraint, IsUniqueOptions } from './constraint'; +import { Index } from '../../indexs/decorators' +import { IsUniqueConstraint, IsUniqueOptions } from './constraint' export function IsUnique(options?: IsUniqueOptions) { - return (target: any, propertyName: string) => { - if (options?.noIndex !== true) { - const optionsKeys = get(options, 'keys', []); - const keys: { [key: string]: 1 | -1 } = { [propertyName]: 1 }; - for (const optionsKey of optionsKeys) { - keys[optionsKey] = 1; - } - Index({ - key: keys, - unique: true, - sparse: options?.sparse ?? false - })(target, propertyName); - } + return (target: any, propertyName: string) => { + if (options?.noIndex !== true) { + const optionsKeys = get(options, 'keys', []) + const keys: { [key: string]: 1 | -1 } = { [propertyName]: 1 } + for (const optionsKey of optionsKeys) { + keys[optionsKey] = 1 + } + Index({ + key: keys, + unique: true, + sparse: options?.sparse ?? false + })(target, propertyName) + } - return registerDecorator({ - validator: IsUniqueConstraint, - target: target.constructor, - propertyName, - options: options, - constraints: [ - { - keys: get(options, 'keys', []), - sparse: get(options, 'sparse', false) - } - ] - }); - }; + return registerDecorator({ + validator: IsUniqueConstraint, + target: target.constructor, + propertyName, + options: options, + constraints: [ + { + keys: get(options, 'keys', []), + sparse: get(options, 'sparse', false) + } + ] + }) + } } diff --git a/src/validation/unique/index.ts b/src/validation/unique/index.ts index 54a8419c..e2ba1c99 100644 --- a/src/validation/unique/index.ts +++ b/src/validation/unique/index.ts @@ -1,2 +1,2 @@ -export * from './decorator'; -export * from './constraint'; +export * from './decorator' +export * from './constraint' diff --git a/test/constants.ts b/test/constants.ts index 463323d5..1bc5d564 100644 --- a/test/constants.ts +++ b/test/constants.ts @@ -1 +1 @@ -export const DBTEST = 'mongodb://localhost:27017/nestjs-mongo'; +export const DBTEST = 'mongodb://test:test@localhost/nestjs-mongo?authSource=admin&authMechanism=SCRAM-SHA-256' diff --git a/test/entity/entity.spec.ts b/test/entity/entity.spec.ts index e3014254..8824e8d4 100644 --- a/test/entity/entity.spec.ts +++ b/test/entity/entity.spec.ts @@ -1,63 +1,63 @@ -import { NestApplication } from '@nestjs/core'; -import { Test } from '@nestjs/testing'; -import { ObjectId } from 'mongodb'; +import { NestApplication } from '@nestjs/core' +import { Test } from '@nestjs/testing' +import { ObjectId } from 'mongodb' -import { EntityManager, getEntityManagerToken, MongoModule } from '../../src'; -import { DBTEST } from '../constants'; -import { EntityTest } from './entity'; +import { EntityManager, getEntityManagerToken, MongoModule } from '../../src' +import { DBTEST } from '../constants' +import { EntityTest } from './entity' -let app: NestApplication; -let em: EntityManager; -const uri = DBTEST + '-entity'; +let app: NestApplication +let em: EntityManager +const uri = (process.env.DBTEST ?? DBTEST).replace('nestjs-mongo', 'nestjs-mongo-entity') beforeAll(async () => { - const mod = await Test.createTestingModule({ - imports: [ - MongoModule.forRootAsync({ - useFactory: () => ({ - uri, - exceptionFactory: (errors) => errors - }) - }), - MongoModule.forFeature({ - models: [EntityTest] - }) - ] - }).compile(); - app = mod.createNestApplication(); - await app.init(); - em = app.get(getEntityManagerToken()); -}); + const mod = await Test.createTestingModule({ + imports: [ + MongoModule.forRootAsync({ + useFactory: () => ({ + uri, + exceptionFactory: (errors) => errors + }) + }), + MongoModule.forFeature({ + models: [EntityTest] + }) + ] + }).compile() + app = mod.createNestApplication() + await app.init() + em = app.get(getEntityManagerToken()) +}) describe('Entity', () => { - it('should save a new entity', async () => { - const entity = new EntityTest(); - entity.foo = 'bar'; - entity.bar = 'foo'; - const response = await em.save(entity); - expect(response).toBeInstanceOf(EntityTest); - expect(response._id).toBeInstanceOf(ObjectId); - expect(response.foo).toEqual(entity.foo); - expect(response.bar).toEqual(entity.bar); - }); - it('should save and update an existing entity', async () => { - const entity = new EntityTest(); - entity.foo = 'bar'; - entity.bar = 'foo'; + it('should save a new entity', async () => { + const entity = new EntityTest() + entity.foo = 'bar' + entity.bar = 'foo' + const response = await em.save(entity) + expect(response).toBeInstanceOf(EntityTest) + expect(response._id).toBeInstanceOf(ObjectId) + expect(response.foo).toEqual(entity.foo) + expect(response.bar).toEqual(entity.bar) + }) + it('should save and update an existing entity', async () => { + const entity = new EntityTest() + entity.foo = 'bar' + entity.bar = 'foo' - const response = await em.save(entity); - response.foo = 'UPDATED_VALUE'; + const response = await em.save(entity) + response.foo = 'UPDATED_VALUE' - const updated = await em.save(entity); - expect(updated).toBeInstanceOf(EntityTest); - expect(updated._id).toBeInstanceOf(ObjectId); - expect(updated.foo).toEqual(entity.foo); - expect(updated.bar).toEqual(entity.bar); - expect(updated._id).toEqual(response._id); - }); -}); + const updated = await em.save(entity) + expect(updated).toBeInstanceOf(EntityTest) + expect(updated._id).toBeInstanceOf(ObjectId) + expect(updated.foo).toEqual(entity.foo) + expect(updated.bar).toEqual(entity.bar) + expect(updated._id).toEqual(response._id) + }) +}) afterAll(async () => { - await em.getDatabase().dropDatabase(); - await app.close(); -}); + await em.getDatabase().dropDatabase() + await app.close() +}) diff --git a/test/entity/entity.ts b/test/entity/entity.ts index 5aeba1de..a78d1b83 100644 --- a/test/entity/entity.ts +++ b/test/entity/entity.ts @@ -1,12 +1,12 @@ -import { IsString } from 'class-validator'; +import { IsString } from 'class-validator' -import { Collection, Entity } from '../../src'; +import { Collection, Entity } from '../../src' @Collection('entityTest') export class EntityTest extends Entity { - @IsString() - foo: string; + @IsString() + foo: string - @IsString() - bar: string; + @IsString() + bar: string } diff --git a/test/index/entity.index.child.ts b/test/index/entity.index.child.ts index 84ec35ad..07df5729 100644 --- a/test/index/entity.index.child.ts +++ b/test/index/entity.index.child.ts @@ -1,8 +1,8 @@ -import { Collection, Index } from '../../src'; -import { EntityWithIndexTest } from './entity.index'; +import { Collection, Index } from '../../src' +import { EntityWithIndexTest } from './entity.index' @Collection('entityWithIndexChildTest') export class EntityWithIndexChildTest extends EntityWithIndexTest { - @Index() - bar: string; + @Index() + bar: string } diff --git a/test/index/entity.index.child2.ts b/test/index/entity.index.child2.ts index 77a91aad..2a7f8c28 100644 --- a/test/index/entity.index.child2.ts +++ b/test/index/entity.index.child2.ts @@ -1,22 +1,22 @@ -import { Collection, Index, Relationship } from '../../src'; -import { EntityWithIndexTest } from './entity.index'; -import { EntityWithIndexChildTest } from './entity.index.child'; +import { Collection, Index, Relationship } from '../../src' +import { EntityWithIndexTest } from './entity.index' +import { EntityWithIndexChildTest } from './entity.index.child' @Collection('entityWithIndexChild2Test') export class EntityWithIndexChild2Test extends EntityWithIndexTest { - @Index({ - unique: true - }) - bar2: string; + @Index({ + unique: true + }) + bar2: string - @Relationship({ - type: () => EntityWithIndexTest, - index: { - description: { key: { parent: 1 }, unique: true } - } - }) - parent: EntityWithIndexTest; + @Relationship({ + type: () => EntityWithIndexTest, + index: { + description: { key: { parent: 1 }, unique: true } + } + }) + parent: EntityWithIndexTest - @Relationship(() => EntityWithIndexChildTest) - parent2: EntityWithIndexChildTest; + @Relationship(() => EntityWithIndexChildTest) + parent2: EntityWithIndexChildTest } diff --git a/test/index/entity.index.ts b/test/index/entity.index.ts index aa116862..a4f7e14c 100644 --- a/test/index/entity.index.ts +++ b/test/index/entity.index.ts @@ -1,8 +1,8 @@ -import { Collection, Index } from '../../src'; -import { Entity } from '../../src/entity/entity'; +import { Collection, Index } from '../../src' +import { Entity } from '../../src/entity/entity' @Collection('entityWithIndexTest') export class EntityWithIndexTest extends Entity { - @Index({ unique: true }) - foo: string; + @Index({ unique: true }) + foo: string } diff --git a/test/index/index.spec.ts b/test/index/index.spec.ts index 510edd96..0ad14f3c 100644 --- a/test/index/index.spec.ts +++ b/test/index/index.spec.ts @@ -1,171 +1,171 @@ -import 'reflect-metadata'; - -import { NestApplication } from '@nestjs/core'; -import { Test } from '@nestjs/testing'; - -import { EntityManager, getEntityManagerToken, getIndexMetadatas, MongoModule } from '../../src'; -import { DBTEST } from '../constants'; -import { EntityTest } from '../entity/entity'; -import { EntityRelationship } from '../relationship/entity.relationship'; -import { EntityRelationshipBar } from '../relationship/entity.relationship.bar'; -import { EntityRelationshipFoo } from '../relationship/entity.relationship.foo'; -import { EntityWithIndexTest } from './entity.index'; -import { EntityWithIndexChildTest } from './entity.index.child'; -import { EntityWithIndexChild2Test } from './entity.index.child2'; - -let app: NestApplication; -let em: EntityManager; -const uri = DBTEST + '-index'; +import 'reflect-metadata' + +import { NestApplication } from '@nestjs/core' +import { Test } from '@nestjs/testing' + +import { EntityManager, getEntityManagerToken, getIndexMetadatas, MongoModule } from '../../src' +import { DBTEST } from '../constants' +import { EntityTest } from '../entity/entity' +import { EntityRelationship } from '../relationship/entity.relationship' +import { EntityRelationshipBar } from '../relationship/entity.relationship.bar' +import { EntityRelationshipFoo } from '../relationship/entity.relationship.foo' +import { EntityWithIndexTest } from './entity.index' +import { EntityWithIndexChildTest } from './entity.index.child' +import { EntityWithIndexChild2Test } from './entity.index.child2' + +let app: NestApplication +let em: EntityManager +const uri = (process.env.DBTEST ?? DBTEST).replace('nestjs-mongo', 'nestjs-mongo-index') beforeAll(async () => { - const mod = await Test.createTestingModule({ - imports: [ - MongoModule.forRootAsync({ - useFactory: () => ({ - uri, - exceptionFactory: (errors) => errors - }) - }), - MongoModule.forFeature({ - models: [ - EntityTest, - EntityWithIndexTest, - EntityWithIndexChildTest, - EntityWithIndexChild2Test, - EntityRelationship, - EntityRelationshipFoo, - EntityRelationshipBar - ] - }) + const mod = await Test.createTestingModule({ + imports: [ + MongoModule.forRootAsync({ + useFactory: () => ({ + uri, + exceptionFactory: (errors) => errors + }) + }), + MongoModule.forFeature({ + models: [ + EntityTest, + EntityWithIndexTest, + EntityWithIndexChildTest, + EntityWithIndexChild2Test, + EntityRelationship, + EntityRelationshipFoo, + EntityRelationshipBar ] - }).compile(); - app = mod.createNestApplication(); - await app.init(); - em = app.get(getEntityManagerToken()); -}); + }) + ] + }).compile() + app = mod.createNestApplication() + await app.init() + em = app.get(getEntityManagerToken()) +}) describe('Indexes', () => { - describe('Metadata', () => { - it('EntityWithIndexTest should have an unique index defined', () => { - const indexs = getIndexMetadatas(EntityWithIndexTest); - expect(indexs).toHaveLength(1); - expect(indexs[0].property).toBe('foo'); - expect(indexs[0].description).toHaveProperty('unique', true); - }); - describe('Indexes on extended classes', () => { - it('EntityWithIndexChildTest should have an 2 indexs defined', () => { - const indexs = getIndexMetadatas(EntityWithIndexChildTest); - expect(indexs).toHaveLength(2); - expect(indexs[0].property).toBe('bar'); - expect(JSON.stringify(indexs[0].description)).toBe('{}'); - - expect(indexs[1].property).toBe('foo'); - expect(indexs[1].description).toHaveProperty('unique', true); - }); - it('EntityWithIndexChild2Test should have an 2 indexs defined', () => { - const indexs = getIndexMetadatas(EntityWithIndexChild2Test); - expect(indexs).toHaveLength(4); - - expect(indexs[0].property).toBe('bar2'); - expect(indexs[0].description).toHaveProperty('unique', true); - - expect(indexs[1].property).toBe('parent'); - expect(indexs[1].description?.key).toHaveProperty('parent'); - expect(indexs[1].description?.name).toBe('EntityWithIndexChild2Test_parent_relationship'); - expect(indexs[1].description?.unique).toBe(true); - - expect(indexs[2].property).toBe('parent2'); - expect(indexs[2].description?.key).toHaveProperty('parent2'); - expect(indexs[2].description?.name).toBe('EntityWithIndexChild2Test_parent2_relationship'); - - expect(indexs[3].property).toBe('foo'); - expect(indexs[3].description).toHaveProperty('unique', true); - }); - }); - }); - describe('MongoDB', () => { - it('should create indexs on EntityWithIndexTest collection', async () => { - const indexes = await em.getCollection(EntityWithIndexTest).indexes({ full: true }); - expect(indexes).toHaveLength(2); // _id and foo - expect(indexes[0].name).toBe('_id_'); - - expect(indexes[1].name).toBe('foo_1'); - expect(indexes[1].key.foo).toBe(1); - expect(indexes[1].unique).toBe(true); - }); - it('should create indexs on EntityWithIndexChildTest collection', async () => { - const indexes = await em.getCollection(EntityWithIndexChildTest).indexes(); - expect(indexes).toHaveLength(3); // _id and foo - expect(indexes[0].name).toBe('_id_'); - - expect(indexes[1].name).toBe('bar_1'); - expect(indexes[1].key.bar).toBe(1); - - expect(indexes[2].name).toBe('foo_1'); - expect(indexes[2].key.foo).toBe(1); - expect(indexes[2].unique).toBe(true); - }); - it('should create indexs on EntityRelationship collection', async () => { - const indexes = await em.getCollection(EntityRelationship).indexes(); - expect(indexes).toHaveLength(5); - expect(indexes[0].name).toBe('_id_'); - - expect(indexes[1].name).toBe('EntityRelationship_parent_relationship'); - expect(indexes[1].key.parent).toBe(1); - - expect(indexes[2].name).toBe('EntityRelationship_parentAsReference_relationship'); - expect(indexes[2].key.parentAsReference).toBe(1); - - expect(indexes[3].name).toBe('EntityRelationship_children_relationship'); - expect(indexes[3].key.children).toBe(1); - - expect(indexes[4].name).toBe('EntityRelationship_childrenAsReference_relationship'); - expect(indexes[4].key.childrenAsReference).toBe(1); - }); - describe('Indexes on extended classes', () => { - it('should create indexs on extending class EntityRelationshipFoo collection', async () => { - const indexes = await em.getCollection(EntityRelationshipFoo).indexes(); - expect(indexes).toHaveLength(6); - expect(indexes[0].name).toBe('_id_'); - - expect(indexes[1].name).toBe('EntityRelationshipFoo_extendedFoo_relationship'); - expect(indexes[1].key.extendedFoo).toBe(1); - - expect(indexes[2].name).toBe('EntityRelationship_parent_relationship'); - expect(indexes[2].key.parent).toBe(1); - - expect(indexes[3].name).toBe('EntityRelationship_parentAsReference_relationship'); - expect(indexes[3].key.parentAsReference).toBe(1); - - expect(indexes[4].name).toBe('EntityRelationship_children_relationship'); - expect(indexes[4].key.children).toBe(1); - - expect(indexes[5].name).toBe('EntityRelationship_childrenAsReference_relationship'); - expect(indexes[5].key.childrenAsReference).toBe(1); - }); - it('should create indexs on extending class EntityRelationshipBar collection', async () => { - const indexes = await em.getCollection(EntityRelationshipBar).indexes(); - - expect(indexes).toHaveLength(6); - expect(indexes[0].name).toBe('_id_'); - - expect(indexes[1].name).toBe('EntityRelationshipBar_extendedBar_relationship'); - expect(indexes[1].key.extendedBar).toBe(1); - - expect(indexes[2].name).toBe('EntityRelationship_parent_relationship'); - expect(indexes[2].key.parent).toBe(1); - - expect(indexes[3].name).toBe('EntityRelationship_parentAsReference_relationship'); - expect(indexes[3].key.parentAsReference).toBe(1); - - expect(indexes[4].name).toBe('EntityRelationship_children_relationship'); - expect(indexes[4].key.children).toBe(1); - - expect(indexes[5].name).toBe('EntityRelationship_childrenAsReference_relationship'); - expect(indexes[5].key.childrenAsReference).toBe(1); - }); - }); - }); -}); + describe('Metadata', () => { + it('EntityWithIndexTest should have an unique index defined', () => { + const indexs = getIndexMetadatas(EntityWithIndexTest) + expect(indexs).toHaveLength(1) + expect(indexs[0].property).toBe('foo') + expect(indexs[0].description).toHaveProperty('unique', true) + }) + describe('Indexes on extended classes', () => { + it('EntityWithIndexChildTest should have an 2 indexs defined', () => { + const indexs = getIndexMetadatas(EntityWithIndexChildTest) + expect(indexs).toHaveLength(2) + expect(indexs[0].property).toBe('bar') + expect(JSON.stringify(indexs[0].description)).toBe('{}') + + expect(indexs[1].property).toBe('foo') + expect(indexs[1].description).toHaveProperty('unique', true) + }) + it('EntityWithIndexChild2Test should have an 2 indexs defined', () => { + const indexs = getIndexMetadatas(EntityWithIndexChild2Test) + expect(indexs).toHaveLength(4) + + expect(indexs[0].property).toBe('bar2') + expect(indexs[0].description).toHaveProperty('unique', true) + + expect(indexs[1].property).toBe('parent') + expect(indexs[1].description?.key).toHaveProperty('parent') + expect(indexs[1].description?.name).toBe('EntityWithIndexChild2Test_parent_relationship') + expect(indexs[1].description?.unique).toBe(true) + + expect(indexs[2].property).toBe('parent2') + expect(indexs[2].description?.key).toHaveProperty('parent2') + expect(indexs[2].description?.name).toBe('EntityWithIndexChild2Test_parent2_relationship') + + expect(indexs[3].property).toBe('foo') + expect(indexs[3].description).toHaveProperty('unique', true) + }) + }) + }) + describe('MongoDB', () => { + it('should create indexs on EntityWithIndexTest collection', async () => { + const indexes = await em.getCollection(EntityWithIndexTest).indexes({ full: true }) + expect(indexes).toHaveLength(2) // _id and foo + expect(indexes[0].name).toBe('_id_') + + expect(indexes[1].name).toBe('foo_1') + expect(indexes[1].key.foo).toBe(1) + expect(indexes[1].unique).toBe(true) + }) + it('should create indexs on EntityWithIndexChildTest collection', async () => { + const indexes = await em.getCollection(EntityWithIndexChildTest).indexes() + expect(indexes).toHaveLength(3) // _id and foo + expect(indexes[0].name).toBe('_id_') + + expect(indexes[1].name).toBe('bar_1') + expect(indexes[1].key.bar).toBe(1) + + expect(indexes[2].name).toBe('foo_1') + expect(indexes[2].key.foo).toBe(1) + expect(indexes[2].unique).toBe(true) + }) + it('should create indexs on EntityRelationship collection', async () => { + const indexes = await em.getCollection(EntityRelationship).indexes() + expect(indexes).toHaveLength(5) + expect(indexes[0].name).toBe('_id_') + + expect(indexes[1].name).toBe('EntityRelationship_parent_relationship') + expect(indexes[1].key.parent).toBe(1) + + expect(indexes[2].name).toBe('EntityRelationship_parentAsReference_relationship') + expect(indexes[2].key.parentAsReference).toBe(1) + + expect(indexes[3].name).toBe('EntityRelationship_children_relationship') + expect(indexes[3].key.children).toBe(1) + + expect(indexes[4].name).toBe('EntityRelationship_childrenAsReference_relationship') + expect(indexes[4].key.childrenAsReference).toBe(1) + }) + describe('Indexes on extended classes', () => { + it('should create indexs on extending class EntityRelationshipFoo collection', async () => { + const indexes = await em.getCollection(EntityRelationshipFoo).indexes() + expect(indexes).toHaveLength(6) + expect(indexes[0].name).toBe('_id_') + + expect(indexes[1].name).toBe('EntityRelationshipFoo_extendedFoo_relationship') + expect(indexes[1].key.extendedFoo).toBe(1) + + expect(indexes[2].name).toBe('EntityRelationship_parent_relationship') + expect(indexes[2].key.parent).toBe(1) + + expect(indexes[3].name).toBe('EntityRelationship_parentAsReference_relationship') + expect(indexes[3].key.parentAsReference).toBe(1) + + expect(indexes[4].name).toBe('EntityRelationship_children_relationship') + expect(indexes[4].key.children).toBe(1) + + expect(indexes[5].name).toBe('EntityRelationship_childrenAsReference_relationship') + expect(indexes[5].key.childrenAsReference).toBe(1) + }) + it('should create indexs on extending class EntityRelationshipBar collection', async () => { + const indexes = await em.getCollection(EntityRelationshipBar).indexes() + + expect(indexes).toHaveLength(6) + expect(indexes[0].name).toBe('_id_') + + expect(indexes[1].name).toBe('EntityRelationshipBar_extendedBar_relationship') + expect(indexes[1].key.extendedBar).toBe(1) + + expect(indexes[2].name).toBe('EntityRelationship_parent_relationship') + expect(indexes[2].key.parent).toBe(1) + + expect(indexes[3].name).toBe('EntityRelationship_parentAsReference_relationship') + expect(indexes[3].key.parentAsReference).toBe(1) + + expect(indexes[4].name).toBe('EntityRelationship_children_relationship') + expect(indexes[4].key.children).toBe(1) + + expect(indexes[5].name).toBe('EntityRelationship_childrenAsReference_relationship') + expect(indexes[5].key.childrenAsReference).toBe(1) + }) + }) + }) +}) afterAll(async () => { - await em.getDatabase().dropDatabase(); - await app.close(); -}); + await em.getDatabase().dropDatabase() + await app.close() +}) diff --git a/test/module/child.ts b/test/module/child.ts index 4d084389..35576d24 100644 --- a/test/module/child.ts +++ b/test/module/child.ts @@ -1,17 +1,17 @@ -import { IsString } from 'class-validator'; -import { ObjectId } from 'mongodb'; +import { IsString } from 'class-validator' +import { ObjectId } from 'mongodb' -import { Collection, Entity, IsValidRelationship, Relationship } from '../../src'; -import { EntityTest } from '../entity/entity'; +import { Collection, Entity, IsValidRelationship, Relationship } from '../../src' +import { EntityTest } from '../entity/entity' @Collection('testchild') export class EntityChildTest extends Entity { - @IsString() - foo: string; + @IsString() + foo: string - @Relationship({ - type: () => EntityTest - }) - @IsValidRelationship() - parentId: ObjectId; + @Relationship({ + type: () => EntityTest + }) + @IsValidRelationship() + parentId: ObjectId } diff --git a/test/module/module.spec.ts b/test/module/module.spec.ts index 645c132b..fe6088a2 100644 --- a/test/module/module.spec.ts +++ b/test/module/module.spec.ts @@ -1,184 +1,185 @@ -import 'reflect-metadata'; +import 'reflect-metadata' -import { BadRequestException, INestApplication } from '@nestjs/common'; -import { Test, TestingModule } from '@nestjs/testing'; -import { createNamespace } from 'cls-hooked'; -import { MongoClient } from 'mongodb'; +import { BadRequestException, INestApplication } from '@nestjs/common' +import { Test, TestingModule } from '@nestjs/testing' +import { createNamespace } from 'cls-hooked' +import { MongoClient } from 'mongodb' import { - DEFAULT_CONNECTION_NAME, - EntityManager, - EntityRepository, - getConnectionToken, - getEntityManagerToken, - MONGO_SESSION_KEY, - MongoModule, - SESSION_LOADER_NAMESPACE, -} from '../../src'; -import { DBTEST } from '../constants'; -import { EntityTest } from '../entity/entity'; -import { EntityChildTest } from './child'; -import { MongoDbModuleTest } from './module'; - -let mod: TestingModule; -let app: INestApplication; -const uri = DBTEST + '-module'; + DEFAULT_CONNECTION_NAME, + EntityManager, + EntityRepository, + getConnectionToken, + getEntityManagerToken, + MONGO_SESSION_KEY, + MongoModule, + SESSION_LOADER_NAMESPACE +} from '../../src' +import { DBTEST } from '../constants' +import { EntityTest } from '../entity/entity' +import { EntityChildTest } from './child' +import { MongoDbModuleTest } from './module' + +let mod: TestingModule +let app: INestApplication +const uri = (process.env.DBTEST ?? DBTEST).replace('nestjs-mongo', 'nestjs-mongo-module') beforeAll(async () => { - mod = await Test.createTestingModule({ - imports: [ - MongoModule.forRootAsync({ - useFactory: () => ({ - uri, - exceptionFactory: (errors) => { - return new BadRequestException(errors); - } - }) - }), - MongoDbModuleTest - ] - }).compile(); - app = mod.createNestApplication(); - await app.init(); -}); + mod = await Test.createTestingModule({ + imports: [ + MongoModule.forRootAsync({ + useFactory: () => ({ + uri, + exceptionFactory: (errors) => { + return new BadRequestException(errors) + } + }) + }), + MongoDbModuleTest + ] + }).compile() + app = mod.createNestApplication() + await app.init() +}) describe('forRootAsync', () => { - it('should get the mongo client', () => { - const namedConnectionToken = getConnectionToken(DEFAULT_CONNECTION_NAME); - const client = mod.get(namedConnectionToken); - expect(client).toBeDefined(); - expect(client).toBeInstanceOf(MongoClient); - }); -}); + it('should get the mongo client', () => { + const namedConnectionToken = getConnectionToken(DEFAULT_CONNECTION_NAME) + const client = mod.get(namedConnectionToken) + expect(client).toBeDefined() + expect(client).toBeInstanceOf(MongoClient) + }) +}) describe('forFeature', () => { - it('should get the entity manager', () => { - const manager = mod.get(getEntityManagerToken()); - expect(manager).toBeDefined(); - expect(manager).toBeInstanceOf(EntityManager); - }); - it('should get a repository', () => { - const mongoModuleTest = mod.get(MongoDbModuleTest); - expect(mongoModuleTest).toBeDefined(); - expect(mongoModuleTest.repo).toBeDefined(); - expect(mongoModuleTest.repo).toBeInstanceOf(EntityRepository); - }); - it('should get the collection name from the Collection decorator', () => { - const manager = mod.get(getEntityManagerToken()); - const name = manager.getCollectionName(EntityTest); - expect(name).toEqual('entityTest'); - }); - it('should have 3 collections', async () => { - const manager = mod.get(getEntityManagerToken()); - const cursor = manager.getDatabase().listCollections(); - const collections = await cursor.toArray(); - expect(collections).toHaveLength(3); - }); -}); + it('should get the entity manager', () => { + const manager = mod.get(getEntityManagerToken()) + expect(manager).toBeDefined() + expect(manager).toBeInstanceOf(EntityManager) + }) + it('should get a repository', () => { + const mongoModuleTest = mod.get(MongoDbModuleTest) + expect(mongoModuleTest).toBeDefined() + expect(mongoModuleTest.repo).toBeDefined() + expect(mongoModuleTest.repo).toBeInstanceOf(EntityRepository) + }) + it('should get the collection name from the Collection decorator', () => { + const manager = mod.get(getEntityManagerToken()) + const name = manager.getCollectionName(EntityTest) + expect(name).toEqual('entityTest') + }) + it('should have 3 collections', async () => { + const manager = mod.get(getEntityManagerToken()) + const cursor = manager.getDatabase().listCollections() + const collections = await cursor.toArray() + expect(collections).toHaveLength(3) + }) +}) describe('Mongo sessions loader', () => { - it('should set / clear session object on namespace', (done) => { - const manager = mod.get(getEntityManagerToken()); - const sessionLoaderService = manager.getSessionLoaderService(); - - const ns = createNamespace(SESSION_LOADER_NAMESPACE); - - ns.run(() => { - const session = manager.getClient().startSession(); - - sessionLoaderService.setSessionContext(session); - expect(ns.get(MONGO_SESSION_KEY).session).toEqual(session); - - sessionLoaderService.clearSessionContext(); - expect(ns.get(MONGO_SESSION_KEY)?.session).not.toBeDefined(); - - session - .endSession() - .then(() => done()) - .catch((e) => { - console.error(e); - done(); - }); - }); - }); - - it('should throw while attempting to read a relationship created during a session if session is cleared', (done) => { - const manager = mod.get(getEntityManagerToken()); - const session = manager.getClient().startSession(); - - const namespace = createNamespace(SESSION_LOADER_NAMESPACE); - - namespace.run(() => { - session - .withTransaction(async () => { - manager.setSessionContext(session); - const entity = new EntityTest(); - entity.foo = 'bar'; - entity.bar = 'foo'; - await manager.save(entity); - - manager.clearSessionContext(); - - const child = new EntityChildTest(); - child.foo = 'child'; - child.parentId = entity._id; - - await manager.save(child); - }) - .catch((e) => { - expect(e).toBeDefined(); - }) - .finally(() => { - session - .endSession() - .catch((e) => { - console.error(e); - }) - .finally(() => done()); - }); - }); - }); - // it('should resolve a relationship created during a session', (done) => { - // const manager = mod.get(getEntityManagerToken()); - // const namespace = createNamespace(SESSION_LOADER_NAMESPACE); - // namespace.run(() => { - // const session = manager.getClient().startSession(); - // manager.setSessionContext(session); - // session - // .withTransaction(async () => { - // const entity = new EntityTest(); - // entity.foo = 'bar'; - // entity.bar = 'foo'; - // await manager.save(entity, { session }); - - // const child = new EntityChildTest(); - // child.foo = 'child'; - // child.parentId = entity._id; - - // await manager.save(child, { session }); - // }) - // .then(async (value) => { - // expect(value).toBeTruthy(); - // }) - // .finally(() => { - // session - // .endSession() - // .then(() => done()) - // .catch((e) => { - // console.error(e); - // done(); - // }); - // }); - // }); - // }); -}); + it('should set / clear session object on namespace', (done) => { + const manager = mod.get(getEntityManagerToken()) + const sessionLoaderService = manager.getSessionLoaderService() + + const ns = createNamespace(SESSION_LOADER_NAMESPACE) + + ns.run(() => { + const session = manager.getClient().startSession() + + sessionLoaderService.setSessionContext(session) + expect(ns.get(MONGO_SESSION_KEY).session).toEqual(session) + + sessionLoaderService.clearSessionContext() + expect(ns.get(MONGO_SESSION_KEY)?.session).not.toBeDefined() + + session + .endSession() + .then(() => done()) + .catch((e) => { + console.error(e) + done() + }) + }) + }) + + it('should throw while attempting to read a relationship created during a session if session is cleared', (done) => { + const manager = mod.get(getEntityManagerToken()) + const session = manager.getClient().startSession() + + const namespace = createNamespace(SESSION_LOADER_NAMESPACE) + + namespace.run(() => { + session + .withTransaction(async () => { + manager.setSessionContext(session) + const entity = new EntityTest() + entity.foo = 'bar' + entity.bar = 'foo' + await manager.save(entity) + + manager.clearSessionContext() + + const child = new EntityChildTest() + child.foo = 'child' + child.parentId = entity._id + + await manager.save(child) + }) + .catch((e) => { + expect(e).toBeDefined() + }) + .finally(() => { + session + .endSession() + .catch((e) => { + console.error(e) + }) + .finally(() => done()) + }) + }) + }) + + // it('should resolve a relationship created during a session', (done) => { + // const manager = mod.get(getEntityManagerToken()); + // const namespace = createNamespace(SESSION_LOADER_NAMESPACE); + // namespace.run(() => { + // const session = manager.getClient().startSession(); + // manager.setSessionContext(session); + // session + // .withTransaction(async () => { + // const entity = new EntityTest(); + // entity.foo = 'bar'; + // entity.bar = 'foo'; + // await manager.save(entity, { session }); + + // const child = new EntityChildTest(); + // child.foo = 'child'; + // child.parentId = entity._id; + + // await manager.save(child, { session }); + // }) + // .then(async (value) => { + // expect(value).toBeTruthy(); + // }) + // .finally(() => { + // session + // .endSession() + // .then(() => done()) + // .catch((e) => { + // console.error(e); + // done(); + // }); + // }); + // }); + // }); +}) afterAll(async () => { - try { - const em = mod.get(getEntityManagerToken()); - await em.getDatabase().dropDatabase(); - await mod.close(); - } catch (e) { - console.log(e); - } -}); + try { + const em = mod.get(getEntityManagerToken()) + await em.getDatabase().dropDatabase() + await mod.close() + } catch (e) { + console.log(e) + } +}) diff --git a/test/module/module.ts b/test/module/module.ts index bca5d3c5..4231ab46 100644 --- a/test/module/module.ts +++ b/test/module/module.ts @@ -1,17 +1,17 @@ -import { Module } from '@nestjs/common'; +import { Module } from '@nestjs/common' -import { EntityRepository, InjectEntityRepository, MongoModule } from '../../src'; -import { EntityTest } from '../entity/entity'; -import { EntityRelationship } from '../relationship/entity.relationship'; -import { EntityChildTest } from './child'; +import { EntityRepository, InjectEntityRepository, MongoModule } from '../../src' +import { EntityTest } from '../entity/entity' +import { EntityRelationship } from '../relationship/entity.relationship' +import { EntityChildTest } from './child' @Module({ - imports: [ - MongoModule.forFeature({ - models: [EntityTest, EntityChildTest, EntityRelationship] - }) - ] + imports: [ + MongoModule.forFeature({ + models: [EntityTest, EntityChildTest, EntityRelationship] + }) + ] }) export class MongoDbModuleTest { - constructor(@InjectEntityRepository(EntityTest) public repo: EntityRepository) {} + constructor(@InjectEntityRepository(EntityTest) public repo: EntityRepository) {} } diff --git a/test/objectid/objectid.spec.ts b/test/objectid/objectid.spec.ts index 4a259a4c..05669448 100644 --- a/test/objectid/objectid.spec.ts +++ b/test/objectid/objectid.spec.ts @@ -1,32 +1,32 @@ -import { plainToClass } from 'class-transformer'; -import { ObjectId } from 'mongodb'; +import { plainToClass } from 'class-transformer' +import { ObjectId } from 'mongodb' -import { EntityTest } from '../entity/entity'; -import { EntityRelationship } from '../relationship/entity.relationship'; +import { EntityTest } from '../entity/entity' +import { EntityRelationship } from '../relationship/entity.relationship' describe('TypeObjectId decorator', () => { - test('should keep ObjectId on plainToClass', () => { - const target = plainToClass(EntityTest, { - _id: new ObjectId() - }); - expect(target._id).toBeInstanceOf(ObjectId); - }); - test('should transform string to ObjectId on plainToClass', () => { - const target = plainToClass(EntityTest, { - _id: new ObjectId().toHexString() - }); - expect(target._id).toBeInstanceOf(ObjectId); - }); - test('should keep ObjectId on plainToClass with relationship type', () => { - const target = plainToClass(EntityRelationship, { - parentAsReference: new ObjectId() - }); - expect(target.parentAsReference).toBeInstanceOf(ObjectId); - }); - test('should transform string to ObjectId on plainToClass with relationship type', () => { - const target = plainToClass(EntityRelationship, { - parentAsReference: new ObjectId().toHexString() - }); - expect(target.parentAsReference).toBeInstanceOf(ObjectId); - }); -}); + test('should keep ObjectId on plainToClass', () => { + const target = plainToClass(EntityTest, { + _id: new ObjectId() + }) + expect(target._id).toBeInstanceOf(ObjectId) + }) + test('should transform string to ObjectId on plainToClass', () => { + const target = plainToClass(EntityTest, { + _id: new ObjectId().toHexString() + }) + expect(target._id).toBeInstanceOf(ObjectId) + }) + test('should keep ObjectId on plainToClass with relationship type', () => { + const target = plainToClass(EntityRelationship, { + parentAsReference: new ObjectId() + }) + expect(target.parentAsReference).toBeInstanceOf(ObjectId) + }) + test('should transform string to ObjectId on plainToClass with relationship type', () => { + const target = plainToClass(EntityRelationship, { + parentAsReference: new ObjectId().toHexString() + }) + expect(target.parentAsReference).toBeInstanceOf(ObjectId) + }) +}) diff --git a/test/relationship/cascade/entity.dynamic.relationship.ts b/test/relationship/cascade/entity.dynamic.relationship.ts index 1b306df2..19986118 100644 --- a/test/relationship/cascade/entity.dynamic.relationship.ts +++ b/test/relationship/cascade/entity.dynamic.relationship.ts @@ -1,57 +1,57 @@ -import { IsIn, IsString } from 'class-validator'; -import { ObjectId } from 'mongodb'; +import { IsIn, IsString } from 'class-validator' +import { ObjectId } from 'mongodb' -import { CascadeType, Collection, Entity, Relationship } from '../../../src'; +import { CascadeType, Collection, Entity, Relationship } from '../../../src' @Collection('parentDynamicRelationship1') export class ParentDynamicRelationship1 extends Entity { - @IsString() - foo: string; + @IsString() + foo: string } @Collection('parentDynamicRelationship2') export class ParentDynamicRelationship2 extends Entity { - @IsString() - foo: string; + @IsString() + foo: string - @IsString() - bar: string; + @IsString() + bar: string } export enum DynamicRelationshipType { - EntityParentDynamicRelationship1 = 'EntityParentDynamicRelationship1', - EntityParentDynamicRelationship2 = 'EntityParentDynamicRelationship2' + EntityParentDynamicRelationship1 = 'EntityParentDynamicRelationship1', + EntityParentDynamicRelationship2 = 'EntityParentDynamicRelationship2' } const DynamicRelationshipDecorator = () => { - return Relationship({ - cascade: [CascadeType.DELETE], - possibleTypes: { - property: 'parentType', - values: Object.values(DynamicRelationshipType) - }, - type: (obj: ChildDynamicRelationship) => { - if (obj.parentType === DynamicRelationshipType.EntityParentDynamicRelationship1) { - return ParentDynamicRelationship1; - } else if (obj.parentType === DynamicRelationshipType.EntityParentDynamicRelationship2) { - return ParentDynamicRelationship2; - } - return false; - } - }); -}; + return Relationship({ + cascade: [CascadeType.DELETE], + possibleTypes: { + property: 'parentType', + values: Object.values(DynamicRelationshipType) + }, + type: (obj: ChildDynamicRelationship) => { + if (obj.parentType === DynamicRelationshipType.EntityParentDynamicRelationship1) { + return ParentDynamicRelationship1 + } else if (obj.parentType === DynamicRelationshipType.EntityParentDynamicRelationship2) { + return ParentDynamicRelationship2 + } + return false + } + }) +} @Collection('childDynamicRelationship') export class ChildDynamicRelationship extends Entity { - @DynamicRelationshipDecorator() - parentId?: ObjectId; + @DynamicRelationshipDecorator() + parentId?: ObjectId - @IsIn(Object.values(DynamicRelationshipType)) - parentType: DynamicRelationshipType; + @IsIn(Object.values(DynamicRelationshipType)) + parentType: DynamicRelationshipType - static getPossibleValuesForProperty() { - return { - parentType: Object.values(DynamicRelationshipType) - }; + static getPossibleValuesForProperty() { + return { + parentType: Object.values(DynamicRelationshipType) } + } } diff --git a/test/relationship/cascade/level1.ts b/test/relationship/cascade/level1.ts index a6ba2191..56d312e2 100644 --- a/test/relationship/cascade/level1.ts +++ b/test/relationship/cascade/level1.ts @@ -1,4 +1,4 @@ -import { Collection, Entity } from '../../../src'; +import { Collection, Entity } from '../../../src' @Collection('relationshipEntityLevel1Test') export class RelationshipEntityLevel1Test extends Entity {} diff --git a/test/relationship/cascade/level1WithChildren.ts b/test/relationship/cascade/level1WithChildren.ts index b370d92b..f9ff2837 100644 --- a/test/relationship/cascade/level1WithChildren.ts +++ b/test/relationship/cascade/level1WithChildren.ts @@ -1,17 +1,17 @@ -import { IsDefined } from 'class-validator'; -import { ObjectId } from 'mongodb'; +import { IsDefined } from 'class-validator' +import { ObjectId } from 'mongodb' -import { CascadeType, Collection, Entity, IsValidRelationship, Relationship } from '../../../src'; -import { EntityTest } from '../../entity/entity'; +import { CascadeType, Collection, Entity, IsValidRelationship, Relationship } from '../../../src' +import { EntityTest } from '../../entity/entity' @Collection('relationshipEntityLevel1WithChildrenTest') export class RelationshipEntityLevel1WithChildrenTest extends Entity { - @Relationship({ - type: () => EntityTest, - cascade: [CascadeType.DELETE], - isArray: true - }) - @IsValidRelationship() - @IsDefined() - children: ObjectId[]; + @Relationship({ + type: () => EntityTest, + cascade: [CascadeType.DELETE], + isArray: true + }) + @IsValidRelationship() + @IsDefined() + children: ObjectId[] } diff --git a/test/relationship/cascade/level2.ts b/test/relationship/cascade/level2.ts index 3fb1f2e4..13af1fa8 100644 --- a/test/relationship/cascade/level2.ts +++ b/test/relationship/cascade/level2.ts @@ -1,16 +1,16 @@ -import { IsDefined } from 'class-validator'; -import { ObjectId } from 'mongodb'; +import { IsDefined } from 'class-validator' +import { ObjectId } from 'mongodb' -import { CascadeType, Collection, Entity, IsValidRelationship, Relationship } from '../../../src'; -import { RelationshipEntityLevel1Test } from './level1'; +import { CascadeType, Collection, Entity, IsValidRelationship, Relationship } from '../../../src' +import { RelationshipEntityLevel1Test } from './level1' @Collection('relationshipEntityLevel2Test') export class RelationshipEntityLevel2Test extends Entity { - @Relationship({ - type: () => RelationshipEntityLevel1Test, - cascade: [CascadeType.DELETE] - }) - @IsValidRelationship() - @IsDefined() - parentId: ObjectId; + @Relationship({ + type: () => RelationshipEntityLevel1Test, + cascade: [CascadeType.DELETE] + }) + @IsValidRelationship() + @IsDefined() + parentId: ObjectId } diff --git a/test/relationship/cascade/level3.ts b/test/relationship/cascade/level3.ts index b436b7dc..6d5bfe9f 100644 --- a/test/relationship/cascade/level3.ts +++ b/test/relationship/cascade/level3.ts @@ -1,16 +1,16 @@ -import { IsDefined } from 'class-validator'; -import { ObjectId } from 'mongodb'; +import { IsDefined } from 'class-validator' +import { ObjectId } from 'mongodb' -import { CascadeType, Collection, Entity, IsValidRelationship, Relationship } from '../../../src'; -import { RelationshipEntityLevel2Test } from './level2'; +import { CascadeType, Collection, Entity, IsValidRelationship, Relationship } from '../../../src' +import { RelationshipEntityLevel2Test } from './level2' @Collection('relationshipEntityLevel3Test') export class RelationshipEntityLevel3Test extends Entity { - @Relationship({ - type: () => RelationshipEntityLevel2Test, - cascade: [CascadeType.DELETE] - }) - @IsValidRelationship() - @IsDefined() - parentId: ObjectId; + @Relationship({ + type: () => RelationshipEntityLevel2Test, + cascade: [CascadeType.DELETE] + }) + @IsValidRelationship() + @IsDefined() + parentId: ObjectId } diff --git a/test/relationship/entity.relationship.bar.ts b/test/relationship/entity.relationship.bar.ts index 5699dc72..f8e0190c 100644 --- a/test/relationship/entity.relationship.bar.ts +++ b/test/relationship/entity.relationship.bar.ts @@ -1,18 +1,18 @@ -import { IsString } from 'class-validator'; -import { ObjectId } from 'mongodb'; +import { IsString } from 'class-validator' +import { ObjectId } from 'mongodb' -import { Collection, Relationship } from '../../src'; -import { EntityTest } from '../entity/entity'; -import { EntityRelationship } from './entity.relationship'; +import { Collection, Relationship } from '../../src' +import { EntityTest } from '../entity/entity' +import { EntityRelationship } from './entity.relationship' @Collection('entityRelationshipBar') export class EntityRelationshipBar extends EntityRelationship { - @IsString() - bar: string; + @IsString() + bar: string - @Relationship({ - type: () => EntityTest, - isArray: true - }) - extendedBar?: ObjectId[]; + @Relationship({ + type: () => EntityTest, + isArray: true + }) + extendedBar?: ObjectId[] } diff --git a/test/relationship/entity.relationship.foo.ts b/test/relationship/entity.relationship.foo.ts index 684a3000..dcf2ef8d 100644 --- a/test/relationship/entity.relationship.foo.ts +++ b/test/relationship/entity.relationship.foo.ts @@ -1,17 +1,17 @@ -import { IsString } from 'class-validator'; -import { ObjectId } from 'mongodb'; +import { IsString } from 'class-validator' +import { ObjectId } from 'mongodb' -import { Collection, Relationship } from '../../src'; -import { EntityTest } from '../entity/entity'; -import { EntityRelationship } from './entity.relationship'; +import { Collection, Relationship } from '../../src' +import { EntityTest } from '../entity/entity' +import { EntityRelationship } from './entity.relationship' @Collection('entityRelationshipFoo') export class EntityRelationshipFoo extends EntityRelationship { - @IsString() - foo: string; + @IsString() + foo: string - @Relationship({ - type: () => EntityTest - }) - extendedFoo?: ObjectId; + @Relationship({ + type: () => EntityTest + }) + extendedFoo?: ObjectId } diff --git a/test/relationship/entity.relationship.ts b/test/relationship/entity.relationship.ts index 6442d8be..a06bece1 100644 --- a/test/relationship/entity.relationship.ts +++ b/test/relationship/entity.relationship.ts @@ -1,37 +1,37 @@ -import { IsOptional, IsString } from 'class-validator'; -import { ObjectId } from 'mongodb'; +import { IsOptional, IsString } from 'class-validator' +import { ObjectId } from 'mongodb' -import { Collection, Entity, IsValidRelationship, Relationship } from '../../src'; -import { EntityTest } from '../entity/entity'; +import { Collection, Entity, IsValidRelationship, Relationship } from '../../src' +import { EntityTest } from '../entity/entity' @Collection('entityRelationship') export class EntityRelationship extends Entity { - @IsString() - property: string; + @IsString() + property: string - @Relationship({ - type: () => EntityTest - }) - @IsValidRelationship() - @IsOptional() - parent?: ObjectId; + @Relationship({ + type: () => EntityTest + }) + @IsValidRelationship() + @IsOptional() + parent?: ObjectId - @Relationship('EntityTest') - parentAsReference?: ObjectId; + @Relationship('EntityTest') + parentAsReference?: ObjectId - @Relationship({ - type: () => EntityTest, - isArray: true - }) - @IsValidRelationship() - @IsOptional() - children?: ObjectId[]; + @Relationship({ + type: () => EntityTest, + isArray: true + }) + @IsValidRelationship() + @IsOptional() + children?: ObjectId[] - @Relationship({ - type: () => EntityTest, - isArray: true - }) - childrenAsReference?: ObjectId[]; + @Relationship({ + type: () => EntityTest, + isArray: true + }) + childrenAsReference?: ObjectId[] - __shouldBeExcluded?: string; + __shouldBeExcluded?: string } diff --git a/test/relationship/relationship.spec.ts b/test/relationship/relationship.spec.ts index 5b7e6025..75b85868 100644 --- a/test/relationship/relationship.spec.ts +++ b/test/relationship/relationship.spec.ts @@ -1,406 +1,399 @@ -import { NestApplication } from '@nestjs/core'; -import { Test } from '@nestjs/testing'; -import { ClassConstructor } from 'class-transformer'; -import { ValidationError } from 'class-validator'; -import { ObjectId } from 'mongodb'; +import { NestApplication } from '@nestjs/core' +import { Test } from '@nestjs/testing' +import { ClassConstructor } from 'class-transformer' +import { ValidationError } from 'class-validator' +import { ObjectId } from 'mongodb' import { - CascadeType, - EntityInterface, - EntityManager, - getEntityManagerToken, - getRelationshipCascadesMetadata, - getRelationshipMetadata, - getRelationshipMetadataList, - getRelationshipsCascadesMetadata, - MongoModule -} from '../../src'; -import { DBTEST } from '../constants'; -import { EntityTest } from '../entity/entity'; + CascadeType, + EntityInterface, + EntityManager, + getEntityManagerToken, + getRelationshipCascadesMetadata, + getRelationshipMetadata, + getRelationshipMetadataList, + getRelationshipsCascadesMetadata, + MongoModule +} from '../../src' +import { DBTEST } from '../constants' +import { EntityTest } from '../entity/entity' import { - ChildDynamicRelationship, - DynamicRelationshipType, - ParentDynamicRelationship1, - ParentDynamicRelationship2 -} from './cascade/entity.dynamic.relationship'; -import { RelationshipEntityLevel1Test } from './cascade/level1'; -import { RelationshipEntityLevel1WithChildrenTest } from './cascade/level1WithChildren'; -import { RelationshipEntityLevel2Test } from './cascade/level2'; -import { RelationshipEntityLevel3Test } from './cascade/level3'; -import { EntityRelationship } from './entity.relationship'; -import { EntityRelationshipBar } from './entity.relationship.bar'; -import { EntityRelationshipFoo } from './entity.relationship.foo'; - -let app: NestApplication; -let em: EntityManager; -const uri = DBTEST + '-relationship'; + ChildDynamicRelationship, + DynamicRelationshipType, + ParentDynamicRelationship1, + ParentDynamicRelationship2 +} from './cascade/entity.dynamic.relationship' +import { RelationshipEntityLevel1Test } from './cascade/level1' +import { RelationshipEntityLevel1WithChildrenTest } from './cascade/level1WithChildren' +import { RelationshipEntityLevel2Test } from './cascade/level2' +import { RelationshipEntityLevel3Test } from './cascade/level3' +import { EntityRelationship } from './entity.relationship' +import { EntityRelationshipBar } from './entity.relationship.bar' +import { EntityRelationshipFoo } from './entity.relationship.foo' + +let app: NestApplication +let em: EntityManager +const uri = (process.env.DBTEST ?? DBTEST).replace('nestjs-mongo', 'nestjs-mongo-relationship') beforeAll(async () => { - const mod = await Test.createTestingModule({ - imports: [ - MongoModule.forRootAsync({ - useFactory: () => ({ - uri, - exceptionFactory: (errors) => errors - }) - }), - MongoModule.forFeature({ - models: [ - EntityTest, - EntityRelationship, - EntityRelationshipFoo, - EntityRelationshipBar, - RelationshipEntityLevel1Test, - RelationshipEntityLevel1WithChildrenTest, - RelationshipEntityLevel2Test, - RelationshipEntityLevel3Test, - ParentDynamicRelationship1, - ParentDynamicRelationship2, - ChildDynamicRelationship - ] - }) + const mod = await Test.createTestingModule({ + imports: [ + MongoModule.forRootAsync({ + useFactory: () => ({ + uri, + exceptionFactory: (errors) => errors + }) + }), + MongoModule.forFeature({ + models: [ + EntityTest, + EntityRelationship, + EntityRelationshipFoo, + EntityRelationshipBar, + RelationshipEntityLevel1Test, + RelationshipEntityLevel1WithChildrenTest, + RelationshipEntityLevel2Test, + RelationshipEntityLevel3Test, + ParentDynamicRelationship1, + ParentDynamicRelationship2, + ChildDynamicRelationship ] - }).compile(); - app = mod.createNestApplication(); - await app.init(); - em = app.get(getEntityManagerToken()); -}); + }) + ] + }).compile() + app = mod.createNestApplication() + await app.init() + em = app.get(getEntityManagerToken()) +}) function testEntityRelationship(Model: ClassConstructor) { - it(`${Model.name} should have relationship metadata defined (parent)`, () => { - const metadata = getRelationshipMetadata(Model, 'parent'); - expect(metadata.type).toBe(EntityTest); - expect(metadata.isArray).toBe(false); - }); - it(`${Model.name} should have relationship metadata defined using string reference (parentAsReference)`, () => { - const metadata = getRelationshipMetadata(Model, 'parentAsReference', em); - expect(metadata.type).toBe(EntityTest); - expect(metadata.isArray).toBe(false); - }); - it(`${Model.name} should have relationship metadata defined (children)`, () => { - const metadata = getRelationshipMetadata(Model, 'children'); - expect(metadata.type).toBe(EntityTest); - expect(metadata.isArray).toBe(true); - }); - it(`${Model.name} should have relationship metadata defined using string reference (childrenAsReference)`, () => { - const metadata = getRelationshipMetadata(Model, 'childrenAsReference', em); - expect(metadata.type).toBe(EntityTest); - expect(metadata.isArray).toBe(true); - }); + it(`${Model.name} should have relationship metadata defined (parent)`, () => { + const metadata = getRelationshipMetadata(Model, 'parent') + expect(metadata.type).toBe(EntityTest) + expect(metadata.isArray).toBe(false) + }) + it(`${Model.name} should have relationship metadata defined using string reference (parentAsReference)`, () => { + const metadata = getRelationshipMetadata(Model, 'parentAsReference', em) + expect(metadata.type).toBe(EntityTest) + expect(metadata.isArray).toBe(false) + }) + it(`${Model.name} should have relationship metadata defined (children)`, () => { + const metadata = getRelationshipMetadata(Model, 'children') + expect(metadata.type).toBe(EntityTest) + expect(metadata.isArray).toBe(true) + }) + it(`${Model.name} should have relationship metadata defined using string reference (childrenAsReference)`, () => { + const metadata = getRelationshipMetadata(Model, 'childrenAsReference', em) + expect(metadata.type).toBe(EntityTest) + expect(metadata.isArray).toBe(true) + }) } describe('Relationship', () => { - describe('Decorator', () => { - describe('EntityRelationship', () => { - testEntityRelationship(EntityRelationship); - it('EntityRelationship should not have relationship metadata defined by a class that is extending it (EntityRelationshipFoo)', () => { - expect.assertions(1); - try { - getRelationshipMetadata(EntityRelationship, 'extendedFoo'); - } catch (e) { - expect(e.message).toContain( - `Can not get relationship metadata for property "extendedFoo" on "EntityRelationship"` - ); - } - }); - it('EntityRelationship should not have relationship metadata defined by a class that is extending it (EntityRelationshipBar)', () => { - expect.assertions(1); - try { - getRelationshipMetadata(EntityRelationship, 'extendedBar'); - } catch (e) { - expect(e.message).toContain( - `Can not get relationship metadata for property "extendedBar" on "EntityRelationship"` - ); - } - }); - it('EntityRelationship should not have child relationship metadata defined by a class that is extending it (EntityRelationshipFoo)', () => { - const metadata = getRelationshipMetadataList(EntityRelationship).find( - (m) => m.property === 'extendedFoo' - ); - expect(metadata).toBeUndefined(); - }); - }); - describe('EntityRelationshipFoo', () => { - testEntityRelationship(EntityRelationshipFoo); - it('EntityRelationshipFoo should have relationship metadata defined from self definition and from extended class EntityRelationship', () => { - const metadataParentAsReference = getRelationshipMetadata(EntityRelationshipFoo, 'extendedFoo', em); - expect(metadataParentAsReference.type).toBe(EntityTest); - expect(metadataParentAsReference.isArray).toBe(false); - }); - }); - describe('EntityRelationshipBar', () => { - testEntityRelationship(EntityRelationshipBar); - it('EntityRelationshipFoo should have relationship metadata defined from self definition and from extended class EntityRelationship', () => { - const metadataParentAsReference = getRelationshipMetadata(EntityRelationshipBar, 'extendedBar', em); - expect(metadataParentAsReference.type).toBe(EntityTest); - expect(metadataParentAsReference.isArray).toBe(true); - }); - }); - describe('IsValidRelationship', () => { - describe('EntityRelationship', () => { - it('should throw an error if relationship is invalid (parent)', async () => { - const entityRelationShip = new EntityRelationship(); - entityRelationShip.property = 'test'; - entityRelationShip.parent = new ObjectId(); // fake id - expect.assertions(4); - try { - await em.save(entityRelationShip); - } catch (e) { - expect(e).toHaveLength(1); - expect(e[0]).toBeInstanceOf(ValidationError); - expect(e[0].property).toBe('parent'); - expect(e[0].constraints).toHaveProperty('IsValidRelationship'); - } - }); - - it('should test an EntityRelationship with a single relationship save and query (parent)', async () => { - const entityTest = new EntityTest(); - entityTest.foo = 'foo'; - entityTest.bar = 'bar'; - - await em.save(entityTest); - - const entityRelationShip = new EntityRelationship(); - entityRelationShip.property = 'test_with_single_parent'; - entityRelationShip.parent = entityTest._id; - await em.save(entityRelationShip); - - const found = await em.findOne(EntityRelationship, { parent: entityTest._id }); - expect(found?._id.toHexString()).toBe(entityRelationShip._id.toHexString()); - - const relation = await em.getRelationship(found, 'parent'); - expect(relation?._id.toHexString()).toBe(entityTest._id.toHexString()); - }); - - it('should throw an error if relationships are invalid (children)', async () => { - const entityRelationShip = new EntityRelationship(); - entityRelationShip.property = 'test'; - entityRelationShip.children = [new ObjectId()]; - expect.assertions(4); - try { - await em.save(entityRelationShip); - } catch (e) { - expect(e).toHaveLength(1); - expect(e[0]).toBeInstanceOf(ValidationError); - expect(e[0].property).toBe('children'); - expect(e[0].constraints).toHaveProperty('IsValidRelationship'); - } - }); - - it('should test an EntityRelationship with an array relationship save and query (children)', async () => { - const entityTest1 = new EntityTest(); - entityTest1.foo = 'foo'; - entityTest1.bar = 'bar'; - await em.save(entityTest1); - - const entityTest2 = new EntityTest(); - entityTest2.foo = 'foo'; - entityTest2.bar = 'bar'; - await em.save(entityTest2); - - const entityRelationShip = new EntityRelationship(); - entityRelationShip.property = 'test_with_children'; - entityRelationShip.children = [entityTest1._id, entityTest2._id]; - await em.save(entityRelationShip); - - const found = await em.findOne(EntityRelationship, { property: entityRelationShip.property }); - - expect(found?._id.toHexString()).toBe(entityRelationShip._id.toHexString()); - - const relations = await em.getRelationships(found, 'children'); - expect( - relations.filter( - (r) => - r instanceof EntityTest && - (r._id.equals(entityTest1._id) || r._id.equals(entityTest2._id)) - ) - ).toHaveLength(2); - }); - - it('should return undefined for single relationship', async () => { - const entityRelationShip = new EntityRelationship(); - entityRelationShip.property = 'test_with_no_parent'; - - const notFound = await em.getRelationship(entityRelationShip, 'parent'); - expect(notFound).toBeUndefined(); - }); - - it('should return undefined for multiple children relationships', async () => { - const entityRelationShip = new EntityRelationship(); - entityRelationShip.property = 'test_with_no_children'; - - const notFound = await em.getRelationships(entityRelationShip, 'children'); - expect(notFound).toBeInstanceOf(Array); - expect(notFound).toHaveLength(0); - }); - }); - }); - }); - describe('Cascades', () => { - it('should have children relationship defined', () => { - const childrenRelationsLevel2 = getRelationshipMetadataList(RelationshipEntityLevel2Test); - expect(childrenRelationsLevel2).toHaveLength(1); - expect(childrenRelationsLevel2[0].property).toBe('parentId'); - - const childrenRelationsLevel3 = getRelationshipMetadataList(RelationshipEntityLevel3Test); - expect(childrenRelationsLevel3).toHaveLength(1); - expect(childrenRelationsLevel3[0].property).toBe('parentId'); - }); - - it('should have relationships cascades', () => { - const relsCascadesMetadata = getRelationshipsCascadesMetadata(RelationshipEntityLevel1Test); - if (relsCascadesMetadata === undefined) { - throw Error('No cascades defined for RelationshipEntityLevel1Test'); - } - expect(relsCascadesMetadata).toBeInstanceOf(Array); - expect(relsCascadesMetadata).toHaveLength(1); - expect(relsCascadesMetadata[0].model).toBe(RelationshipEntityLevel2Test); - expect(relsCascadesMetadata[0].cascade).toHaveLength(1); - expect(relsCascadesMetadata[0].cascade[0]).toBe(CascadeType.DELETE); - const relCascades = getRelationshipCascadesMetadata( - RelationshipEntityLevel1Test, - RelationshipEntityLevel2Test - ); - expect(relCascades?.model).toBe(RelationshipEntityLevel2Test); - expect(relCascades?.property).toBe('parentId'); - expect(relCascades?.cascade).toHaveLength(1); - expect(relCascades?.cascade[0]).toBe(CascadeType.DELETE); - }); - - it('should execute relationships cascades', async () => { - // create a first level - const level1 = new RelationshipEntityLevel1Test(); - await em.save(level1); - - // create two entity as child - const level2 = new RelationshipEntityLevel2Test(); - level2.parentId = level1._id; - await em.save(level2); - - const level3 = new RelationshipEntityLevel3Test(); - level3.parentId = level2._id; - await em.save(level3); - - // now we delete the parent - await em.deleteOne(RelationshipEntityLevel1Test, level1); - - // level1 and level2 and level3 should be deleted - const searchLevel1 = await em.findOne(RelationshipEntityLevel1Test, { - _id: level1._id - }); - expect(searchLevel1).toBeUndefined(); - - const searchLevel2 = await em.findOne(RelationshipEntityLevel2Test, { - _id: level2._id - }); - expect(searchLevel2).toBeUndefined(); - - const searchLevel3 = await em.findOne(RelationshipEntityLevel3Test, { - _id: level3._id - }); - expect(searchLevel3).toBeUndefined(); - }); - - it('should execute relationships cascades for a array relationship', async () => { - const child1 = new EntityTest(); - child1.foo = 'bar'; - child1.bar = 'foo'; - await em.save(child1); - - const child2 = new EntityTest(); - child2.foo = 'bar'; - child2.bar = 'foo'; - await em.save(child2); - - const childrenIds = [child1._id, child2._id]; - const parent = new RelationshipEntityLevel1WithChildrenTest(); - parent.children = childrenIds; - await em.save(parent); - - await em.deleteOne(RelationshipEntityLevel1WithChildrenTest, parent); - - const searchChildren = await em.find(EntityTest, { - _id: { $in: childrenIds } - }); - const emptyChildren = await searchChildren.toArray(); - expect(emptyChildren).toHaveLength(0); - }); - }); -}); + describe('Decorator', () => { + describe('EntityRelationship', () => { + testEntityRelationship(EntityRelationship) + it('EntityRelationship should not have relationship metadata defined by a class that is extending it (EntityRelationshipFoo)', () => { + expect.assertions(1) + try { + getRelationshipMetadata(EntityRelationship, 'extendedFoo') + } catch (e) { + expect(e.message).toContain( + `Can not get relationship metadata for property "extendedFoo" on "EntityRelationship"` + ) + } + }) + it('EntityRelationship should not have relationship metadata defined by a class that is extending it (EntityRelationshipBar)', () => { + expect.assertions(1) + try { + getRelationshipMetadata(EntityRelationship, 'extendedBar') + } catch (e) { + expect(e.message).toContain( + `Can not get relationship metadata for property "extendedBar" on "EntityRelationship"` + ) + } + }) + it('EntityRelationship should not have child relationship metadata defined by a class that is extending it (EntityRelationshipFoo)', () => { + const metadata = getRelationshipMetadataList(EntityRelationship).find((m) => m.property === 'extendedFoo') + expect(metadata).toBeUndefined() + }) + }) + describe('EntityRelationshipFoo', () => { + testEntityRelationship(EntityRelationshipFoo) + it('EntityRelationshipFoo should have relationship metadata defined from self definition and from extended class EntityRelationship', () => { + const metadataParentAsReference = getRelationshipMetadata(EntityRelationshipFoo, 'extendedFoo', em) + expect(metadataParentAsReference.type).toBe(EntityTest) + expect(metadataParentAsReference.isArray).toBe(false) + }) + }) + describe('EntityRelationshipBar', () => { + testEntityRelationship(EntityRelationshipBar) + it('EntityRelationshipFoo should have relationship metadata defined from self definition and from extended class EntityRelationship', () => { + const metadataParentAsReference = getRelationshipMetadata(EntityRelationshipBar, 'extendedBar', em) + expect(metadataParentAsReference.type).toBe(EntityTest) + expect(metadataParentAsReference.isArray).toBe(true) + }) + }) + describe('IsValidRelationship', () => { + describe('EntityRelationship', () => { + it('should throw an error if relationship is invalid (parent)', async () => { + const entityRelationShip = new EntityRelationship() + entityRelationShip.property = 'test' + entityRelationShip.parent = new ObjectId() // fake id + expect.assertions(4) + try { + await em.save(entityRelationShip) + } catch (e) { + expect(e).toHaveLength(1) + expect(e[0]).toBeInstanceOf(ValidationError) + expect(e[0].property).toBe('parent') + expect(e[0].constraints).toHaveProperty('IsValidRelationship') + } + }) + + it('should test an EntityRelationship with a single relationship save and query (parent)', async () => { + const entityTest = new EntityTest() + entityTest.foo = 'foo' + entityTest.bar = 'bar' + + await em.save(entityTest) + + const entityRelationShip = new EntityRelationship() + entityRelationShip.property = 'test_with_single_parent' + entityRelationShip.parent = entityTest._id + await em.save(entityRelationShip) + + const found = await em.findOne(EntityRelationship, { parent: entityTest._id }) + expect(found?._id.toHexString()).toBe(entityRelationShip._id.toHexString()) + + const relation = await em.getRelationship(found, 'parent') + expect(relation?._id.toHexString()).toBe(entityTest._id.toHexString()) + }) + + it('should throw an error if relationships are invalid (children)', async () => { + const entityRelationShip = new EntityRelationship() + entityRelationShip.property = 'test' + entityRelationShip.children = [new ObjectId()] + expect.assertions(4) + try { + await em.save(entityRelationShip) + } catch (e) { + expect(e).toHaveLength(1) + expect(e[0]).toBeInstanceOf(ValidationError) + expect(e[0].property).toBe('children') + expect(e[0].constraints).toHaveProperty('IsValidRelationship') + } + }) + + it('should test an EntityRelationship with an array relationship save and query (children)', async () => { + const entityTest1 = new EntityTest() + entityTest1.foo = 'foo' + entityTest1.bar = 'bar' + await em.save(entityTest1) + + const entityTest2 = new EntityTest() + entityTest2.foo = 'foo' + entityTest2.bar = 'bar' + await em.save(entityTest2) + + const entityRelationShip = new EntityRelationship() + entityRelationShip.property = 'test_with_children' + entityRelationShip.children = [entityTest1._id, entityTest2._id] + await em.save(entityRelationShip) + + const found = await em.findOne(EntityRelationship, { property: entityRelationShip.property }) + + expect(found?._id.toHexString()).toBe(entityRelationShip._id.toHexString()) + + const relations = await em.getRelationships(found, 'children') + expect( + relations.filter( + (r) => r instanceof EntityTest && (r._id.equals(entityTest1._id) || r._id.equals(entityTest2._id)) + ) + ).toHaveLength(2) + }) + + it('should return undefined for single relationship', async () => { + const entityRelationShip = new EntityRelationship() + entityRelationShip.property = 'test_with_no_parent' + + const notFound = await em.getRelationship(entityRelationShip, 'parent') + expect(notFound).toBeUndefined() + }) + + it('should return undefined for multiple children relationships', async () => { + const entityRelationShip = new EntityRelationship() + entityRelationShip.property = 'test_with_no_children' + + const notFound = await em.getRelationships(entityRelationShip, 'children') + expect(notFound).toBeInstanceOf(Array) + expect(notFound).toHaveLength(0) + }) + }) + }) + }) + describe('Cascades', () => { + it('should have children relationship defined', () => { + const childrenRelationsLevel2 = getRelationshipMetadataList(RelationshipEntityLevel2Test) + expect(childrenRelationsLevel2).toHaveLength(1) + expect(childrenRelationsLevel2[0].property).toBe('parentId') + + const childrenRelationsLevel3 = getRelationshipMetadataList(RelationshipEntityLevel3Test) + expect(childrenRelationsLevel3).toHaveLength(1) + expect(childrenRelationsLevel3[0].property).toBe('parentId') + }) + + it('should have relationships cascades', () => { + const relsCascadesMetadata = getRelationshipsCascadesMetadata(RelationshipEntityLevel1Test) + if (relsCascadesMetadata === undefined) { + throw Error('No cascades defined for RelationshipEntityLevel1Test') + } + expect(relsCascadesMetadata).toBeInstanceOf(Array) + expect(relsCascadesMetadata).toHaveLength(1) + expect(relsCascadesMetadata[0].model).toBe(RelationshipEntityLevel2Test) + expect(relsCascadesMetadata[0].cascade).toHaveLength(1) + expect(relsCascadesMetadata[0].cascade[0]).toBe(CascadeType.DELETE) + const relCascades = getRelationshipCascadesMetadata(RelationshipEntityLevel1Test, RelationshipEntityLevel2Test) + expect(relCascades?.model).toBe(RelationshipEntityLevel2Test) + expect(relCascades?.property).toBe('parentId') + expect(relCascades?.cascade).toHaveLength(1) + expect(relCascades?.cascade[0]).toBe(CascadeType.DELETE) + }) + + it('should execute relationships cascades', async () => { + // create a first level + const level1 = new RelationshipEntityLevel1Test() + await em.save(level1) + + // create two entity as child + const level2 = new RelationshipEntityLevel2Test() + level2.parentId = level1._id + await em.save(level2) + + const level3 = new RelationshipEntityLevel3Test() + level3.parentId = level2._id + await em.save(level3) + + // now we delete the parent + await em.deleteOne(RelationshipEntityLevel1Test, level1) + + // level1 and level2 and level3 should be deleted + const searchLevel1 = await em.findOne(RelationshipEntityLevel1Test, { + _id: level1._id + }) + expect(searchLevel1).toBeUndefined() + + const searchLevel2 = await em.findOne(RelationshipEntityLevel2Test, { + _id: level2._id + }) + expect(searchLevel2).toBeUndefined() + + const searchLevel3 = await em.findOne(RelationshipEntityLevel3Test, { + _id: level3._id + }) + expect(searchLevel3).toBeUndefined() + }) + + it('should execute relationships cascades for a array relationship', async () => { + const child1 = new EntityTest() + child1.foo = 'bar' + child1.bar = 'foo' + await em.save(child1) + + const child2 = new EntityTest() + child2.foo = 'bar' + child2.bar = 'foo' + await em.save(child2) + + const childrenIds = [child1._id, child2._id] + const parent = new RelationshipEntityLevel1WithChildrenTest() + parent.children = childrenIds + await em.save(parent) + + await em.deleteOne(RelationshipEntityLevel1WithChildrenTest, parent) + + const searchChildren = await em.find(EntityTest, { + _id: { $in: childrenIds } + }) + const emptyChildren = await searchChildren.toArray() + expect(emptyChildren).toHaveLength(0) + }) + }) +}) describe('Dynamic Relationship', () => { - describe('Decorator', () => { - it('should create an entity with dynamic relationship metadata', async () => { - const parent1 = new ParentDynamicRelationship1(); - parent1.foo = 'bar'; - await em.save(parent1); - - const child1 = new ChildDynamicRelationship(); - child1.parentId = parent1._id; - child1.parentType = DynamicRelationshipType.EntityParentDynamicRelationship1; - await em.save(child1); - - const rel1 = await em.getRelationship(child1, 'parentId'); - expect(rel1 instanceof ParentDynamicRelationship1).toBe(true); - expect(rel1._id.equals(parent1._id)).toBe(true); - - const parent2 = new ParentDynamicRelationship2(); - parent2.foo = 'bar'; - parent2.bar = 'foo'; - await em.save(parent2); - - const child2 = new ChildDynamicRelationship(); - child2.parentId = parent2._id; - child2.parentType = DynamicRelationshipType.EntityParentDynamicRelationship2; - await em.save(child2); - - const rel2 = await em.getRelationship(child2, 'parentId'); - expect(rel2 instanceof ParentDynamicRelationship2).toBe(true); - expect(rel2._id.equals(parent2._id)).toBe(true); - }); - }); - - describe('Cascades', () => { - it('should create an entity with dynamic relationship metadata', async () => { - const parent1 = new ParentDynamicRelationship1(); - parent1.foo = 'bar'; - await em.save(parent1); - - const child1 = new ChildDynamicRelationship(); - child1.parentId = parent1._id; - child1.parentType = DynamicRelationshipType.EntityParentDynamicRelationship1; - await em.save(child1); - - const rel1 = await em.getRelationship(child1, 'parentId'); - expect(rel1 instanceof ParentDynamicRelationship1).toBe(true); - expect(rel1._id.equals(parent1._id)).toBe(true); - - const parent2 = new ParentDynamicRelationship2(); - parent2.foo = 'bar'; - parent2.bar = 'foo'; - await em.save(parent2); - - const child2 = new ChildDynamicRelationship(); - child2.parentId = parent2._id; - child2.parentType = DynamicRelationshipType.EntityParentDynamicRelationship2; - await em.save(child2); - - const rel2 = await em.getRelationship(child2, 'parentId'); - expect(rel2 instanceof ParentDynamicRelationship2).toBe(true); - expect(rel2._id.equals(parent2._id)).toBe(true); - - await em.deleteOne(ParentDynamicRelationship1, { _id: parent1._id }); - const notFoundChild1 = await em.getRelationship(child1, 'parentId'); - expect(notFoundChild1).toBeUndefined(); - - await em.deleteOne(ParentDynamicRelationship2, { _id: parent2._id }); - const notFoundChild2 = await em.getRelationship(child2, 'parentId'); - expect(notFoundChild2).toBeUndefined(); - }); - }); -}); + describe('Decorator', () => { + it('should create an entity with dynamic relationship metadata', async () => { + const parent1 = new ParentDynamicRelationship1() + parent1.foo = 'bar' + await em.save(parent1) + + const child1 = new ChildDynamicRelationship() + child1.parentId = parent1._id + child1.parentType = DynamicRelationshipType.EntityParentDynamicRelationship1 + await em.save(child1) + + const rel1 = await em.getRelationship(child1, 'parentId') + expect(rel1 instanceof ParentDynamicRelationship1).toBe(true) + expect(rel1?._id.equals(parent1._id)).toBe(true) + + const parent2 = new ParentDynamicRelationship2() + parent2.foo = 'bar' + parent2.bar = 'foo' + await em.save(parent2) + + const child2 = new ChildDynamicRelationship() + child2.parentId = parent2._id + child2.parentType = DynamicRelationshipType.EntityParentDynamicRelationship2 + await em.save(child2) + + const rel2 = await em.getRelationship(child2, 'parentId') + expect(rel2 instanceof ParentDynamicRelationship2).toBe(true) + expect(rel2?._id.equals(parent2._id)).toBe(true) + }) + }) + + describe('Cascades', () => { + it('should create an entity with dynamic relationship metadata', async () => { + const parent1 = new ParentDynamicRelationship1() + parent1.foo = 'bar' + await em.save(parent1) + + const child1 = new ChildDynamicRelationship() + child1.parentId = parent1._id + child1.parentType = DynamicRelationshipType.EntityParentDynamicRelationship1 + await em.save(child1) + + const rel1 = await em.getRelationship(child1, 'parentId') + expect(rel1 instanceof ParentDynamicRelationship1).toBe(true) + expect(rel1?._id.equals(parent1._id)).toBe(true) + + const parent2 = new ParentDynamicRelationship2() + parent2.foo = 'bar' + parent2.bar = 'foo' + await em.save(parent2) + + const child2 = new ChildDynamicRelationship() + child2.parentId = parent2._id + child2.parentType = DynamicRelationshipType.EntityParentDynamicRelationship2 + await em.save(child2) + + const rel2 = await em.getRelationship(child2, 'parentId') + expect(rel2 instanceof ParentDynamicRelationship2).toBe(true) + expect(rel2?._id.equals(parent2._id)).toBe(true) + + await em.deleteOne(ParentDynamicRelationship1, { _id: parent1._id }) + const notFoundChild1 = await em.getRelationship(child1, 'parentId') + expect(notFoundChild1).toBeUndefined() + + await em.deleteOne(ParentDynamicRelationship2, { _id: parent2._id }) + const notFoundChild2 = await em.getRelationship(child2, 'parentId') + expect(notFoundChild2).toBeUndefined() + }) + }) +}) afterAll(async () => { - await em.getDatabase().dropDatabase(); - await app.close(); -}); + await em.getDatabase().dropDatabase() + await app.close() +}) diff --git a/test/serializer/entity.serializer.ts b/test/serializer/entity.serializer.ts index e8ea9d9c..c553fa31 100644 --- a/test/serializer/entity.serializer.ts +++ b/test/serializer/entity.serializer.ts @@ -1,19 +1,19 @@ -import { IsString } from 'class-validator'; -import { ObjectId } from 'mongodb'; +import { IsString } from 'class-validator' +import { ObjectId } from 'mongodb' -import { Collection, Entity, TypeObjectId } from '../../src'; +import { Collection, Entity, TypeObjectId } from '../../src' @Collection('entitySerializerTest') export class EntitySerializerTest extends Entity { - @IsString() - foo: string; + @IsString() + foo: string - @IsString() - bar: string; + @IsString() + bar: string - @TypeObjectId() - parent: ObjectId; + @TypeObjectId() + parent: ObjectId - @TypeObjectId(true) - children: ObjectId[]; + @TypeObjectId(true) + children: ObjectId[] } diff --git a/test/serializer/serializer.spec.ts b/test/serializer/serializer.spec.ts index 8b370ba9..1b0a950c 100644 --- a/test/serializer/serializer.spec.ts +++ b/test/serializer/serializer.spec.ts @@ -1,97 +1,97 @@ -import { NestApplication } from '@nestjs/core'; -import { Test } from '@nestjs/testing'; -import { validate } from 'class-validator'; -import { ObjectId } from 'mongodb'; +import { NestApplication } from '@nestjs/core' +import { Test } from '@nestjs/testing' +import { validate } from 'class-validator' +import { ObjectId } from 'mongodb' -import { EntityManager, getEntityManagerToken, MongoModule } from '../../src'; -import { DBTEST } from '../constants'; -import { EntitySerializerTest } from './entity.serializer'; +import { EntityManager, getEntityManagerToken, MongoModule } from '../../src' +import { DBTEST } from '../constants' +import { EntitySerializerTest } from './entity.serializer' -let app: NestApplication; -let em: EntityManager; -const uri = DBTEST + '-serializer'; +let app: NestApplication +let em: EntityManager +const uri = (process.env.DBTEST ?? DBTEST).replace('nestjs-mongo', 'nestjs-mongo-serializer') beforeAll(async () => { - const mod = await Test.createTestingModule({ - imports: [ - MongoModule.forRootAsync({ - useFactory: () => ({ - uri, - exceptionFactory: (errors) => errors - }) - }), - MongoModule.forFeature({ - models: [EntitySerializerTest] - }) - ] - }).compile(); - app = mod.createNestApplication(); - await app.init(); - em = app.get(getEntityManagerToken()); -}); + const mod = await Test.createTestingModule({ + imports: [ + MongoModule.forRootAsync({ + useFactory: () => ({ + uri, + exceptionFactory: (errors) => errors + }) + }), + MongoModule.forFeature({ + models: [EntitySerializerTest] + }) + ] + }).compile() + app = mod.createNestApplication() + await app.init() + em = app.get(getEntityManagerToken()) +}) describe('Entity', () => { - describe('Serializer', () => { - let entity: EntitySerializerTest; - const parentId = new ObjectId(); - const child1Id = new ObjectId(); - const child2Id = new ObjectId(); + describe('Serializer', () => { + let entity: EntitySerializerTest + const parentId = new ObjectId() + const child1Id = new ObjectId() + const child2Id = new ObjectId() - beforeAll(async () => { - entity = new EntitySerializerTest(); - entity.foo = 'foo'; - entity.bar = 'bar'; - entity.parent = parentId; - entity.children = [child1Id, child2Id]; - await em.save(entity); - }); - it('should transform an entity to plain object (serialize)', async () => { - const obj: any = entity.serialize(); - expect(obj._id).toBeDefined(); - expect(typeof obj._id).toEqual('string'); - expect(obj.foo).toBe('foo'); - expect(obj.bar).toBe('bar'); - expect(obj.parent).toBe(parentId.toHexString()); - expect(obj.children).toHaveLength(2); - expect(obj.children[0]).toBe(child1Id.toHexString()); - expect(obj.children[1]).toBe(child2Id.toHexString()); - }); - it('should transform an entity to plain object (toJSON)', async () => { - const obj: any = entity.toJSON(); + beforeAll(async () => { + entity = new EntitySerializerTest() + entity.foo = 'foo' + entity.bar = 'bar' + entity.parent = parentId + entity.children = [child1Id, child2Id] + await em.save(entity) + }) + it('should transform an entity to plain object (serialize)', async () => { + const obj: any = entity.serialize() + expect(obj._id).toBeDefined() + expect(typeof obj._id).toEqual('string') + expect(obj.foo).toBe('foo') + expect(obj.bar).toBe('bar') + expect(obj.parent).toBe(parentId.toHexString()) + expect(obj.children).toHaveLength(2) + expect(obj.children[0]).toBe(child1Id.toHexString()) + expect(obj.children[1]).toBe(child2Id.toHexString()) + }) + it('should transform an entity to plain object (toJSON)', async () => { + const obj: any = entity.toJSON() - expect(obj._id).toBeDefined(); - expect(typeof obj._id).toEqual('string'); - expect(obj.foo).toBe('foo'); - expect(obj.bar).toBe('bar'); - expect(parentId.equals(obj.parent)).toBe(true); - expect(obj.children).toHaveLength(2); - expect(child1Id.equals(obj.children[0])).toBe(true); - expect(child2Id.equals(obj.children[1])).toBe(true); - }); - it('should transform a plain object to an entity using em', async () => { - const obj: any = entity.serialize(); - const reEntity = em.fromPlain(EntitySerializerTest, obj); - expect(reEntity).toBeInstanceOf(EntitySerializerTest); - expect(reEntity.parent).toBeInstanceOf(ObjectId); - expect(reEntity.children[0]).toBeInstanceOf(ObjectId); - expect(reEntity.children[1]).toBeInstanceOf(ObjectId); - const errors = await validate(reEntity); - expect(errors).toHaveLength(0); - }); - it('should transform a plain object to an entity using repository', async () => { - const obj: any = entity.serialize(); - const reEntity = em.getRepository(EntitySerializerTest).fromPlain(obj); - expect(reEntity).toBeInstanceOf(EntitySerializerTest); - expect(reEntity.parent).toBeInstanceOf(ObjectId); - expect(reEntity.children[0]).toBeInstanceOf(ObjectId); - expect(reEntity.children[1]).toBeInstanceOf(ObjectId); - const errors = await validate(reEntity); - expect(errors).toHaveLength(0); - }); - }); -}); + expect(obj._id).toBeDefined() + expect(typeof obj._id).toEqual('string') + expect(obj.foo).toBe('foo') + expect(obj.bar).toBe('bar') + expect(parentId.equals(obj.parent)).toBe(true) + expect(obj.children).toHaveLength(2) + expect(child1Id.equals(obj.children[0])).toBe(true) + expect(child2Id.equals(obj.children[1])).toBe(true) + }) + it('should transform a plain object to an entity using em', async () => { + const obj: any = entity.serialize() + const reEntity = em.fromPlain(EntitySerializerTest, obj) + expect(reEntity).toBeInstanceOf(EntitySerializerTest) + expect(reEntity.parent).toBeInstanceOf(ObjectId) + expect(reEntity.children[0]).toBeInstanceOf(ObjectId) + expect(reEntity.children[1]).toBeInstanceOf(ObjectId) + const errors = await validate(reEntity) + expect(errors).toHaveLength(0) + }) + it('should transform a plain object to an entity using repository', async () => { + const obj: any = entity.serialize() + const reEntity = em.getRepository(EntitySerializerTest).fromPlain(obj) + expect(reEntity).toBeInstanceOf(EntitySerializerTest) + expect(reEntity.parent).toBeInstanceOf(ObjectId) + expect(reEntity.children[0]).toBeInstanceOf(ObjectId) + expect(reEntity.children[1]).toBeInstanceOf(ObjectId) + const errors = await validate(reEntity) + expect(errors).toHaveLength(0) + }) + }) +}) afterAll(async () => { - await em.getDatabase().dropDatabase(); - await app.close(); -}); + await em.getDatabase().dropDatabase() + await app.close() +}) diff --git a/test/slug/entity.slug.ts b/test/slug/entity.slug.ts index 04087b79..74d14084 100644 --- a/test/slug/entity.slug.ts +++ b/test/slug/entity.slug.ts @@ -1,30 +1,30 @@ -import { Type } from 'class-transformer'; +import { Type } from 'class-transformer' -import { Slugify } from '../../src/transformer/slug'; +import { Slugify } from '../../src/transformer/slug' export class EntitySlugTest { - constructor(firstName: string, lastName: string) { - this.firstName = firstName; - this.lastName = lastName; - } + constructor(firstName: string, lastName: string) { + this.firstName = firstName + this.lastName = lastName + } - @Type(() => String) - public readonly firstName: string; + @Type(() => String) + public readonly firstName: string - @Type(() => String) - public readonly lastName: string; + @Type(() => String) + public readonly lastName: string - @Slugify({ - generate: ({ firstName, lastName }: { [key: string]: string }) => `${firstName} ${lastName}`, - expose: true, - options: { lower: true } - }) - slug: string; + @Slugify({ + generate: ({ firstName, lastName }: { [key: string]: string }) => `${firstName} ${lastName}`, + expose: true, + options: { lower: true } + }) + slug: string - @Slugify({ - keys: ['firstName', 'lastName'], - expose: true, - options: { lower: true } - }) - slug2: string; + @Slugify({ + keys: ['firstName', 'lastName'], + expose: true, + options: { lower: true } + }) + slug2: string } diff --git a/test/slug/slug.spec.ts b/test/slug/slug.spec.ts index 69d16d24..1f68680e 100644 --- a/test/slug/slug.spec.ts +++ b/test/slug/slug.spec.ts @@ -1,14 +1,14 @@ -import { plainToClass } from 'class-transformer'; +import { plainToClass } from 'class-transformer' -import { EntitySlugTest } from './entity.slug'; +import { EntitySlugTest } from './entity.slug' describe('Slug decorator', () => { - test('should handle options.generate and options.keys on plainToClass', () => { - const target = plainToClass(EntitySlugTest, { - firstName: 'John', - lastName: 'Smith' - }); - expect(target.slug).toEqual('john-smith'); - expect(target.slug2).toEqual('john-smith'); - }); -}); + test('should handle options.generate and options.keys on plainToClass', () => { + const target = plainToClass(EntitySlugTest, { + firstName: 'John', + lastName: 'Smith' + }) + expect(target.slug).toEqual('john-smith') + expect(target.slug2).toEqual('john-smith') + }) +}) diff --git a/test/transformers/utils.spec.ts b/test/transformers/utils.spec.ts index 05ff233f..b4bb4383 100644 --- a/test/transformers/utils.spec.ts +++ b/test/transformers/utils.spec.ts @@ -1,87 +1,87 @@ -import { ObjectId } from 'mongodb'; +import { ObjectId } from 'mongodb' -import { fromPlain, merge } from '../../src/transformer/utils'; -import { EntityRelationship } from '../relationship/entity.relationship'; +import { fromPlain, merge } from '../../src/transformer/utils' +import { EntityRelationship } from '../relationship/entity.relationship' describe('fromPlain', () => { - it('should transform a plain object to class', () => { - const id = new ObjectId(); - const id2 = new ObjectId(); - const id3 = new ObjectId(); - const plain = { - _id: id.toHexString(), - property: 'bar', - parent: id2, - parentAsReference: id2, - children: [id2, id3], - childrenAsReference: [id2, id3] - }; + it('should transform a plain object to class', () => { + const id = new ObjectId() + const id2 = new ObjectId() + const id3 = new ObjectId() + const plain = { + _id: id.toHexString(), + property: 'bar', + parent: id2, + parentAsReference: id2, + children: [id2, id3], + childrenAsReference: [id2, id3] + } - const entity = fromPlain(EntityRelationship, plain); + const entity = fromPlain(EntityRelationship, plain) - expect(entity).toBeInstanceOf(EntityRelationship); - expect(entity._id).toBeInstanceOf(ObjectId); - expect(entity._id?.equals(id)).toBe(true); - expect(entity).toHaveProperty('property', plain.property); - expect(entity.parent?.equals(id2)).toBe(true); - expect(entity.parentAsReference?.equals(id2)).toBe(true); + expect(entity).toBeInstanceOf(EntityRelationship) + expect(entity._id).toBeInstanceOf(ObjectId) + expect(entity._id?.equals(id)).toBe(true) + expect(entity).toHaveProperty('property', plain.property) + expect(entity.parent?.equals(id2)).toBe(true) + expect(entity.parentAsReference?.equals(id2)).toBe(true) - expect(entity.children).toHaveLength(2); - if (entity.children === undefined) { - throw new Error('Children are empty !'); - } - expect(entity.children[0]).toBeInstanceOf(ObjectId); - expect(entity.children[0].equals(id2)).toBe(true); - expect(entity.children[1]).toBeInstanceOf(ObjectId); - expect(entity.children[1].equals(id3)).toBe(true); + expect(entity.children).toHaveLength(2) + if (entity.children === undefined) { + throw new Error('Children are empty !') + } + expect(entity.children[0]).toBeInstanceOf(ObjectId) + expect(entity.children[0].equals(id2)).toBe(true) + expect(entity.children[1]).toBeInstanceOf(ObjectId) + expect(entity.children[1].equals(id3)).toBe(true) - expect(entity.childrenAsReference).toHaveLength(2); - if (entity.childrenAsReference === undefined) { - throw new Error('Children are empty !'); - } - expect(entity.childrenAsReference[0]).toBeInstanceOf(ObjectId); - expect(entity.childrenAsReference[0].equals(id2)).toBe(true); - expect(entity.childrenAsReference[1]).toBeInstanceOf(ObjectId); - expect(entity.childrenAsReference[1].equals(id3)).toBe(true); - }); -}); + expect(entity.childrenAsReference).toHaveLength(2) + if (entity.childrenAsReference === undefined) { + throw new Error('Children are empty !') + } + expect(entity.childrenAsReference[0]).toBeInstanceOf(ObjectId) + expect(entity.childrenAsReference[0].equals(id2)).toBe(true) + expect(entity.childrenAsReference[1]).toBeInstanceOf(ObjectId) + expect(entity.childrenAsReference[1].equals(id3)).toBe(true) + }) +}) describe('merge', () => { - it('should merge an object into a class', () => { - const id = new ObjectId(); - const id2 = new ObjectId(); - const id3 = new ObjectId(); + it('should merge an object into a class', () => { + const id = new ObjectId() + const id2 = new ObjectId() + const id3 = new ObjectId() - const entity1 = new EntityRelationship(); - entity1._id = id; - entity1.property = 'test'; - entity1.children = [id2, id3]; - entity1.__shouldBeExcluded = 'shouldbeexcluded'; + const entity1 = new EntityRelationship() + entity1._id = id + entity1.property = 'test' + entity1.children = [id2, id3] + entity1.__shouldBeExcluded = 'shouldbeexcluded' - const entity2 = new EntityRelationship(); - entity2.property = 'bad'; - entity2.__shouldBeExcluded = 'shouldbeexcluded'; + const entity2 = new EntityRelationship() + entity2.property = 'bad' + entity2.__shouldBeExcluded = 'shouldbeexcluded' - merge(entity2, entity1, ['__']); + merge(entity2, entity1, ['__']) - expect(entity1._id.equals(id)).toBe(true); - expect(entity1).toHaveProperty('property', 'test'); - expect(entity1.children).toHaveLength(2); - if (entity1.children === undefined) { - throw new Error('Children are empty !'); - } - expect(entity1.children[0].equals(id2)).toBe(true); - expect(entity1.children[1].equals(id3)).toBe(true); + expect(entity1._id.equals(id)).toBe(true) + expect(entity1).toHaveProperty('property', 'test') + expect(entity1.children).toHaveLength(2) + if (entity1.children === undefined) { + throw new Error('Children are empty !') + } + expect(entity1.children[0].equals(id2)).toBe(true) + expect(entity1.children[1].equals(id3)).toBe(true) - expect(entity2).toHaveProperty('_id'); - expect(entity2._id.equals(id)).toBe(true); - expect(entity2).toHaveProperty('property', entity1.property); - expect(entity2.children).toHaveLength(entity1.children.length); - if (entity2.children === undefined) { - throw new Error('Children are empty !'); - } - expect(entity2.children[0].equals(id2)).toBe(true); - expect(entity2.children[1].equals(id3)).toBe(true); - expect(entity2).toHaveProperty('__shouldBeExcluded', undefined); - }); -}); + expect(entity2).toHaveProperty('_id') + expect(entity2._id.equals(id)).toBe(true) + expect(entity2).toHaveProperty('property', entity1.property) + expect(entity2.children).toHaveLength(entity1.children.length) + if (entity2.children === undefined) { + throw new Error('Children are empty !') + } + expect(entity2.children[0].equals(id2)).toBe(true) + expect(entity2.children[1].equals(id3)).toBe(true) + expect(entity2).not.toHaveProperty('__shouldBeExcluded') + }) +}) diff --git a/test/validation/entity.unique.ts b/test/validation/entity.unique.ts index 2a933d83..34a37ddf 100644 --- a/test/validation/entity.unique.ts +++ b/test/validation/entity.unique.ts @@ -1,9 +1,9 @@ -import { Collection } from '../../src'; -import { Entity } from '../../src/entity/entity'; -import { IsUnique } from '../../src/validation/unique/decorator'; +import { Collection } from '../../src' +import { Entity } from '../../src/entity/entity' +import { IsUnique } from '../../src/validation/unique/decorator' @Collection('entityUniqueTest') export class EntityUniqueTest extends Entity { - @IsUnique() - foo: string; + @IsUnique() + foo: string } diff --git a/test/validation/unique.spec.ts b/test/validation/unique.spec.ts index a3dbb7a2..8fb2a760 100644 --- a/test/validation/unique.spec.ts +++ b/test/validation/unique.spec.ts @@ -1,73 +1,74 @@ -import 'reflect-metadata'; +import 'reflect-metadata' -import { NestApplication } from '@nestjs/core'; -import { Test } from '@nestjs/testing'; -import { ValidationError } from 'class-validator'; +import { NestApplication } from '@nestjs/core' +import { Test } from '@nestjs/testing' +import { ValidationError } from 'class-validator' -import { EntityManager, getEntityManagerToken, getIndexMetadatas, MongoModule } from '../../src'; -import { DBTEST } from '../constants'; -import { EntityUniqueTest } from './entity.unique'; +import { EntityManager, getEntityManagerToken, getIndexMetadatas, MongoModule } from '../../src' +import { DBTEST } from '../constants' +import { EntityUniqueTest } from './entity.unique' + +let app: NestApplication +let em: EntityManager +const uri = (process.env.DBTEST ?? DBTEST).replace('nestjs-mongo', 'nestjs-mongo-unique') -let app: NestApplication; -let em: EntityManager; -const uri = DBTEST + '-unique'; beforeAll(async () => { - const mod = await Test.createTestingModule({ - imports: [ - MongoModule.forRootAsync({ - useFactory: () => ({ - uri, - exceptionFactory: (errors) => errors - }) - }), - MongoModule.forFeature({ - models: [EntityUniqueTest] - }) - ] - }).compile(); - app = mod.createNestApplication(); - await app.init(); - em = app.get(getEntityManagerToken()); -}); + const mod = await Test.createTestingModule({ + imports: [ + MongoModule.forRootAsync({ + useFactory: () => ({ + uri, + exceptionFactory: (errors) => errors + }) + }), + MongoModule.forFeature({ + models: [EntityUniqueTest] + }) + ] + }).compile() + app = mod.createNestApplication() + await app.init() + em = app.get(getEntityManagerToken()) +}) describe('IsUnique', () => { - it('should have an index defined in metadata', () => { - const indexs = getIndexMetadatas(EntityUniqueTest); - expect(indexs).toHaveLength(1); - expect(indexs[0].property).toBe('foo'); - expect(indexs[0].description).toHaveProperty('unique', true); - }); - it('should have an index created on collection', async () => { - const indexes = await em.getCollection(EntityUniqueTest).indexes(); - expect(indexes).toHaveLength(2); // _id and foo - expect(indexes[0].name).toBe('_id_'); + it('should have an index defined in metadata', () => { + const indexs = getIndexMetadatas(EntityUniqueTest) + expect(indexs).toHaveLength(1) + expect(indexs[0].property).toBe('foo') + expect(indexs[0].description).toHaveProperty('unique', true) + }) + it('should have an index created on collection', async () => { + const indexes = await em.getCollection(EntityUniqueTest).indexes() + expect(indexes).toHaveLength(2) // _id and foo + expect(indexes[0].name).toBe('_id_') - expect(indexes[1].name).toBe('foo_1'); - expect(indexes[1].key.foo).toBe(1); - expect(indexes[1].unique).toBe(true); - }); - it('should throw an error if a similar entity is saved', async () => { - const uniqueEntity = new EntityUniqueTest(); - uniqueEntity.foo = 'bar'; - await em.save(uniqueEntity); + expect(indexes[1].name).toBe('foo_1') + expect(indexes[1].key.foo).toBe(1) + expect(indexes[1].unique).toBe(true) + }) + it('should throw an error if a similar entity is saved', async () => { + const uniqueEntity = new EntityUniqueTest() + uniqueEntity.foo = 'bar' + await em.save(uniqueEntity) - const uniqueEntity2 = new EntityUniqueTest(); - uniqueEntity2.foo = 'bar'; - expect.assertions(5); - try { - await em.save(uniqueEntity2); - } catch (e) { - expect(e).toHaveLength(1); - expect(e[0]).toBeInstanceOf(ValidationError); - expect(e[0]).toHaveProperty('property', 'foo'); - expect(e[0]).toHaveProperty('value', uniqueEntity2.foo); - expect(e[0].constraints).toHaveProperty( - 'IsUnique', - 'An item EntityUniqueTest with similar values already exists (foo)' - ); - } - }); -}); + const uniqueEntity2 = new EntityUniqueTest() + uniqueEntity2.foo = 'bar' + expect.assertions(5) + try { + await em.save(uniqueEntity2) + } catch (e) { + expect(e).toHaveLength(1) + expect(e[0]).toBeInstanceOf(ValidationError) + expect(e[0]).toHaveProperty('property', 'foo') + expect(e[0]).toHaveProperty('value', uniqueEntity2.foo) + expect(e[0].constraints).toHaveProperty( + 'IsUnique', + 'An item EntityUniqueTest with similar values already exists (foo)' + ) + } + }) +}) afterAll(async () => { - await em.getDatabase().dropDatabase(); - await app.close(); -}); + await em.getDatabase().dropDatabase() + await app.close() +}) diff --git a/yarn.lock b/yarn.lock index e8741418..ff385888 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,7679 +1,3767 @@ -# This file is generated by running "yarn install" inside your project. -# Manual changes might be lost - proceed with caution! - -__metadata: - version: 6 - cacheKey: 8 - -"@aws-crypto/ie11-detection@npm:^2.0.0": - version: 2.0.2 - resolution: "@aws-crypto/ie11-detection@npm:2.0.2" - dependencies: - tslib: ^1.11.1 - checksum: 713293deea8eefd3ab43dc05e62228571d27754e7293f8ec2fd8a0c693fbbfc55213e6599387776e3cdbc951965dc62e24e92b9c4a853e4a50d00ae6a9f6b2bd - languageName: node - linkType: hard - -"@aws-crypto/sha256-browser@npm:2.0.0": - version: 2.0.0 - resolution: "@aws-crypto/sha256-browser@npm:2.0.0" - dependencies: - "@aws-crypto/ie11-detection": ^2.0.0 - "@aws-crypto/sha256-js": ^2.0.0 - "@aws-crypto/supports-web-crypto": ^2.0.0 - "@aws-crypto/util": ^2.0.0 - "@aws-sdk/types": ^3.1.0 - "@aws-sdk/util-locate-window": ^3.0.0 - "@aws-sdk/util-utf8-browser": ^3.0.0 - tslib: ^1.11.1 - checksum: 7bc1ff042d0c53a46c0fc3824bd97fb3ed1df7dc030b8a995889471052860b8c8ade469c97866fafd8249a3144d0f48b0f1054f357e2b403606009381c4b8f0e - languageName: node - linkType: hard - -"@aws-crypto/sha256-js@npm:2.0.0": - version: 2.0.0 - resolution: "@aws-crypto/sha256-js@npm:2.0.0" - dependencies: - "@aws-crypto/util": ^2.0.0 - "@aws-sdk/types": ^3.1.0 - tslib: ^1.11.1 - checksum: e4abf9baec6bed19d380f92a999a41ac5bdd8890dfd45971d29054c298854c5b7087e7de633413f2e64618ef8238ccf4c0b75797c73063c74bbba3cb5d8b2581 - languageName: node - linkType: hard - -"@aws-crypto/sha256-js@npm:^2.0.0": - version: 2.0.2 - resolution: "@aws-crypto/sha256-js@npm:2.0.2" - dependencies: - "@aws-crypto/util": ^2.0.2 - "@aws-sdk/types": ^3.110.0 - tslib: ^1.11.1 - checksum: 9125ec65a2b05fce908ac2289ba97b995a299f2d717684804211df8e8bcffd8cd9b8861582240655b88f2255c46fcee34026f75c057ffb22f44b6a76cd43f65a - languageName: node - linkType: hard - -"@aws-crypto/supports-web-crypto@npm:^2.0.0": - version: 2.0.2 - resolution: "@aws-crypto/supports-web-crypto@npm:2.0.2" - dependencies: - tslib: ^1.11.1 - checksum: 03d04d29292dc1b76db9bc6becd05f52fa79adee0ec084f971b0767f7e73250dd0422bea57636015f8c27f38aefcd1d9c58800a4749cf35339296c8d670f3ccb - languageName: node - linkType: hard - -"@aws-crypto/util@npm:^2.0.0, @aws-crypto/util@npm:^2.0.2": - version: 2.0.2 - resolution: "@aws-crypto/util@npm:2.0.2" - dependencies: - "@aws-sdk/types": ^3.110.0 - "@aws-sdk/util-utf8-browser": ^3.0.0 - tslib: ^1.11.1 - checksum: 13cb33a39005b09c062398d361043c2224bc8ba42b1432bad52e15bc4bf9ffad4facdddc394b3cc71b3fb8d86a7ec325fd1afa107b5fde0dab84a7e32d311d7f - languageName: node - linkType: hard - -"@aws-sdk/abort-controller@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/abort-controller@npm:3.226.0" - dependencies: - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: 44045b60c7697ed76bcbfbe3f7f4bb019f139d2337e77d8ce79d98bca17c1245e2d33934bba04fe8e2d462b729124ba4414a589ed9275c07f2bfefd3a0850184 - languageName: node - linkType: hard - -"@aws-sdk/client-cognito-identity@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/client-cognito-identity@npm:3.229.0" - dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/client-sts": 3.229.0 - "@aws-sdk/config-resolver": 3.226.0 - "@aws-sdk/credential-provider-node": 3.229.0 - "@aws-sdk/fetch-http-handler": 3.226.0 - "@aws-sdk/hash-node": 3.226.0 - "@aws-sdk/invalid-dependency": 3.226.0 - "@aws-sdk/middleware-content-length": 3.226.0 - "@aws-sdk/middleware-endpoint": 3.226.0 - "@aws-sdk/middleware-host-header": 3.226.0 - "@aws-sdk/middleware-logger": 3.226.0 - "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.229.0 - "@aws-sdk/middleware-serde": 3.226.0 - "@aws-sdk/middleware-signing": 3.226.0 - "@aws-sdk/middleware-stack": 3.226.0 - "@aws-sdk/middleware-user-agent": 3.226.0 - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/node-http-handler": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.226.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/url-parser": 3.226.0 - "@aws-sdk/util-base64": 3.208.0 - "@aws-sdk/util-body-length-browser": 3.188.0 - "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.226.0 - "@aws-sdk/util-defaults-mode-node": 3.226.0 - "@aws-sdk/util-endpoints": 3.226.0 - "@aws-sdk/util-retry": 3.229.0 - "@aws-sdk/util-user-agent-browser": 3.226.0 - "@aws-sdk/util-user-agent-node": 3.226.0 - "@aws-sdk/util-utf8-browser": 3.188.0 - "@aws-sdk/util-utf8-node": 3.208.0 - tslib: ^2.3.1 - checksum: 742e26278a61685b276e4dbaa15e3e3fc5702606ec2be72f59a210eedba99b8b66fabfd2d00927e76f7941dbe63701176f5e8c6cad82224f30dfeca2b125c186 - languageName: node - linkType: hard - -"@aws-sdk/client-sso-oidc@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/client-sso-oidc@npm:3.229.0" - dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.226.0 - "@aws-sdk/fetch-http-handler": 3.226.0 - "@aws-sdk/hash-node": 3.226.0 - "@aws-sdk/invalid-dependency": 3.226.0 - "@aws-sdk/middleware-content-length": 3.226.0 - "@aws-sdk/middleware-endpoint": 3.226.0 - "@aws-sdk/middleware-host-header": 3.226.0 - "@aws-sdk/middleware-logger": 3.226.0 - "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.229.0 - "@aws-sdk/middleware-serde": 3.226.0 - "@aws-sdk/middleware-stack": 3.226.0 - "@aws-sdk/middleware-user-agent": 3.226.0 - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/node-http-handler": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.226.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/url-parser": 3.226.0 - "@aws-sdk/util-base64": 3.208.0 - "@aws-sdk/util-body-length-browser": 3.188.0 - "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.226.0 - "@aws-sdk/util-defaults-mode-node": 3.226.0 - "@aws-sdk/util-endpoints": 3.226.0 - "@aws-sdk/util-retry": 3.229.0 - "@aws-sdk/util-user-agent-browser": 3.226.0 - "@aws-sdk/util-user-agent-node": 3.226.0 - "@aws-sdk/util-utf8-browser": 3.188.0 - "@aws-sdk/util-utf8-node": 3.208.0 - tslib: ^2.3.1 - checksum: 031bedebd213f7f2522321abb55bb50a2271e4d63ad38e3596eab6daeddb39044a4d72f554fc3e716ea4108317b3169ffb681b6e75f45ec83f730619b588eac6 - languageName: node - linkType: hard - -"@aws-sdk/client-sso@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/client-sso@npm:3.229.0" - dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.226.0 - "@aws-sdk/fetch-http-handler": 3.226.0 - "@aws-sdk/hash-node": 3.226.0 - "@aws-sdk/invalid-dependency": 3.226.0 - "@aws-sdk/middleware-content-length": 3.226.0 - "@aws-sdk/middleware-endpoint": 3.226.0 - "@aws-sdk/middleware-host-header": 3.226.0 - "@aws-sdk/middleware-logger": 3.226.0 - "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.229.0 - "@aws-sdk/middleware-serde": 3.226.0 - "@aws-sdk/middleware-stack": 3.226.0 - "@aws-sdk/middleware-user-agent": 3.226.0 - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/node-http-handler": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.226.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/url-parser": 3.226.0 - "@aws-sdk/util-base64": 3.208.0 - "@aws-sdk/util-body-length-browser": 3.188.0 - "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.226.0 - "@aws-sdk/util-defaults-mode-node": 3.226.0 - "@aws-sdk/util-endpoints": 3.226.0 - "@aws-sdk/util-retry": 3.229.0 - "@aws-sdk/util-user-agent-browser": 3.226.0 - "@aws-sdk/util-user-agent-node": 3.226.0 - "@aws-sdk/util-utf8-browser": 3.188.0 - "@aws-sdk/util-utf8-node": 3.208.0 - tslib: ^2.3.1 - checksum: 970e6ea9666a6e976f0b4e7f693e286ade8c090aca1ae780835050623f5d8bd3ecbc0336d1b3f4037e92d50c48b5d18d5ad6d595ddb62db7efe38b90ab928129 - languageName: node - linkType: hard - -"@aws-sdk/client-sts@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/client-sts@npm:3.229.0" - dependencies: - "@aws-crypto/sha256-browser": 2.0.0 - "@aws-crypto/sha256-js": 2.0.0 - "@aws-sdk/config-resolver": 3.226.0 - "@aws-sdk/credential-provider-node": 3.229.0 - "@aws-sdk/fetch-http-handler": 3.226.0 - "@aws-sdk/hash-node": 3.226.0 - "@aws-sdk/invalid-dependency": 3.226.0 - "@aws-sdk/middleware-content-length": 3.226.0 - "@aws-sdk/middleware-endpoint": 3.226.0 - "@aws-sdk/middleware-host-header": 3.226.0 - "@aws-sdk/middleware-logger": 3.226.0 - "@aws-sdk/middleware-recursion-detection": 3.226.0 - "@aws-sdk/middleware-retry": 3.229.0 - "@aws-sdk/middleware-sdk-sts": 3.226.0 - "@aws-sdk/middleware-serde": 3.226.0 - "@aws-sdk/middleware-signing": 3.226.0 - "@aws-sdk/middleware-stack": 3.226.0 - "@aws-sdk/middleware-user-agent": 3.226.0 - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/node-http-handler": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/smithy-client": 3.226.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/url-parser": 3.226.0 - "@aws-sdk/util-base64": 3.208.0 - "@aws-sdk/util-body-length-browser": 3.188.0 - "@aws-sdk/util-body-length-node": 3.208.0 - "@aws-sdk/util-defaults-mode-browser": 3.226.0 - "@aws-sdk/util-defaults-mode-node": 3.226.0 - "@aws-sdk/util-endpoints": 3.226.0 - "@aws-sdk/util-retry": 3.229.0 - "@aws-sdk/util-user-agent-browser": 3.226.0 - "@aws-sdk/util-user-agent-node": 3.226.0 - "@aws-sdk/util-utf8-browser": 3.188.0 - "@aws-sdk/util-utf8-node": 3.208.0 - fast-xml-parser: 4.0.11 - tslib: ^2.3.1 - checksum: 18d357f2433ef832948f867c0e22ba34ac57c096e8b5209e0203d892acab9de60d9114a513f8ec9354ec83a89652a8285a49f89ee3203cededc514a25eea67f5 - languageName: node - linkType: hard - -"@aws-sdk/config-resolver@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/config-resolver@npm:3.226.0" - dependencies: - "@aws-sdk/signature-v4": 3.226.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/util-config-provider": 3.208.0 - "@aws-sdk/util-middleware": 3.226.0 - tslib: ^2.3.1 - checksum: 08bfbc0528da98cba2b46bda05cd9af46f6eced3dbe5e415b11465501fe672d99b869adc9f08cfd2f138c9b61ac119b43eb9a90a490395aec705e1b795022d4d - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-cognito-identity@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.229.0" - dependencies: - "@aws-sdk/client-cognito-identity": 3.229.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: 37cc46249390dc5bc6cb39b014a2c9710fcbe53d22b8cf90452473712f7464dffcf286c3c7cb72ae268988c136710a1dbcb52006d93d2de8973c40953ef79058 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-env@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/credential-provider-env@npm:3.226.0" - dependencies: - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: 4f764d8d07ba1f65503ed2440ebfbccf98c141b11a087a582ea606d06bc764c91641b4ec505ab0d4750025a01128b041d9514a3ec868c385f038b5373b513293 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-imds@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/credential-provider-imds@npm:3.226.0" - dependencies: - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/url-parser": 3.226.0 - tslib: ^2.3.1 - checksum: c0480ca127e6715ebf98ff41a8ea47d139166b8632582782df46fc9e568ff579cfc0768af80082ae6eea3eb6750edb41c4a4c39281b777c578fdb7f8ef8b641c - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-ini@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/credential-provider-ini@npm:3.229.0" - dependencies: - "@aws-sdk/credential-provider-env": 3.226.0 - "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/credential-provider-sso": 3.229.0 - "@aws-sdk/credential-provider-web-identity": 3.226.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: fb573675c0c34c7fa0e207c78190bce73e42fc1713d93a25868b50002352a70f3584e2ab0a0b249103bcf25c3a60c26261ad3dcfc1d6280b4f5dc8ad4e4b3f49 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-node@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/credential-provider-node@npm:3.229.0" - dependencies: - "@aws-sdk/credential-provider-env": 3.226.0 - "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/credential-provider-ini": 3.229.0 - "@aws-sdk/credential-provider-process": 3.226.0 - "@aws-sdk/credential-provider-sso": 3.229.0 - "@aws-sdk/credential-provider-web-identity": 3.226.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: a8ad0f6aeb3c7ee03937e7389dbcabeb81f2a6e23c3bfeb84f518b063fb156a2d2f2e4a7267655c6bdfa178ba51e9e0ea74c98397dd6dd58b9a315d9e5a4a6de - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-process@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/credential-provider-process@npm:3.226.0" - dependencies: - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: 3ad24e2784ae7929f8932a187e0a5a06fc62d31ccb393fd2d9fa86d75c1109809c96b69edb17c3d7bd7d087b97662818d5320742a4cd70add06999a3b2ec3a53 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-sso@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/credential-provider-sso@npm:3.229.0" - dependencies: - "@aws-sdk/client-sso": 3.229.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/token-providers": 3.229.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: 9497a8c5dfddf70a4740e9e485cea757070a6e9c5c94469cc51599918f2689f6ca794fcaba98320b20aa7b81e7e56c3b91f11d3cf8111335e445638825d0ee58 - languageName: node - linkType: hard - -"@aws-sdk/credential-provider-web-identity@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/credential-provider-web-identity@npm:3.226.0" - dependencies: - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: f536d9af3d900eee31b6e7966ff827713fd5f661ae477f0911eebdac3e544eb5a732df0be0c9162058943e0aeb89333c97a1758236e8f9760c5e87280fd926fa - languageName: node - linkType: hard - -"@aws-sdk/credential-providers@npm:^3.186.0": - version: 3.229.0 - resolution: "@aws-sdk/credential-providers@npm:3.229.0" - dependencies: - "@aws-sdk/client-cognito-identity": 3.229.0 - "@aws-sdk/client-sso": 3.229.0 - "@aws-sdk/client-sts": 3.229.0 - "@aws-sdk/credential-provider-cognito-identity": 3.229.0 - "@aws-sdk/credential-provider-env": 3.226.0 - "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/credential-provider-ini": 3.229.0 - "@aws-sdk/credential-provider-node": 3.229.0 - "@aws-sdk/credential-provider-process": 3.226.0 - "@aws-sdk/credential-provider-sso": 3.229.0 - "@aws-sdk/credential-provider-web-identity": 3.226.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: 9acd1bfb97d5c45a3b02ed74540317791eb00a058bbe4ab2852099f59dff62ab6a7f834dcfdb1f75e80956b86d80a3b44c0574361a12473f8a3e493437a1b36a - languageName: node - linkType: hard - -"@aws-sdk/fetch-http-handler@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/fetch-http-handler@npm:3.226.0" - dependencies: - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/querystring-builder": 3.226.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/util-base64": 3.208.0 - tslib: ^2.3.1 - checksum: f12ed12088aee05e4c6a742356017f55f26fec740c12c4d89c4eb283203171d032d99c9fa45fb28cc7798b35410cc55736df1c78d8eea014667e489f1b276f3a - languageName: node - linkType: hard - -"@aws-sdk/hash-node@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/hash-node@npm:3.226.0" - dependencies: - "@aws-sdk/types": 3.226.0 - "@aws-sdk/util-buffer-from": 3.208.0 - tslib: ^2.3.1 - checksum: cbe466e2e3efdbb3aefe7772da734f6d00e0d1572c60e497b09460e055093b155c5e94bd3718135238bc05e58cb49abcdcd0fe5e34458bd3563b89d3d4a42251 - languageName: node - linkType: hard - -"@aws-sdk/invalid-dependency@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/invalid-dependency@npm:3.226.0" - dependencies: - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: 4a6168b50675881442c9bc87e8f27e8317ece9251fbfd3d812d32edcd83f687328e6de518fa9f11b1bc984ad3a3454cd43b59c0362f04c03687ce5250ac5d720 - languageName: node - linkType: hard - -"@aws-sdk/is-array-buffer@npm:3.201.0": - version: 3.201.0 - resolution: "@aws-sdk/is-array-buffer@npm:3.201.0" - dependencies: - tslib: ^2.3.1 - checksum: 295450b417a9ab0b734050afff6c53aaed8a33dccd3ede60bf67fdec21f675d14ab8edc24f4e1d12aa4e99f9ccaf794aaaaff270c296c1ee38f73ea7ba7f59ce - languageName: node - linkType: hard - -"@aws-sdk/middleware-content-length@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-content-length@npm:3.226.0" - dependencies: - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: 538b0222e2c8be61dc3090dfefe4b9ec1f0cbee155125edf5b654dbe36ab0b2d6befe3da6008194dc26bbf94d53b7e01edca683720061c4b43c6beb9dc278002 - languageName: node - linkType: hard - -"@aws-sdk/middleware-endpoint@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-endpoint@npm:3.226.0" - dependencies: - "@aws-sdk/middleware-serde": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/signature-v4": 3.226.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/url-parser": 3.226.0 - "@aws-sdk/util-config-provider": 3.208.0 - "@aws-sdk/util-middleware": 3.226.0 - tslib: ^2.3.1 - checksum: 22df6fd90e3b7d3edd58f427ebfbb229181ef190b2d795e0b400f70f95a573dc59666a08b26613db6bb1b764b13ba7ddec15fced2641e9678fad5500fca289be - languageName: node - linkType: hard - -"@aws-sdk/middleware-host-header@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-host-header@npm:3.226.0" - dependencies: - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: 35eb7d9f5eb2e45c58bb5887a12dc80f22e8fc630d53d356064c62ce3354c9054717697168ab3818f14c7baae3246480aa7251e6fcaf5c7104498df5dca9bbd6 - languageName: node - linkType: hard - -"@aws-sdk/middleware-logger@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-logger@npm:3.226.0" - dependencies: - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: 7b7c2eb336f376f6e8c50ebd0fd9b6e9a749e21d6f5c433683a4e98edb311bb76fafc0bb0abfd75f61001466879be7d68aefb3958a332e540160a93ee9371b44 - languageName: node - linkType: hard - -"@aws-sdk/middleware-recursion-detection@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-recursion-detection@npm:3.226.0" - dependencies: - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: 194161d76a815df623c6699f7a7016268b4a01276baa3527682504001a4e2e948e2dd389d2065f62fe57509f20b9680ea907bfa52b861122335d276c9ab4ed61 - languageName: node - linkType: hard - -"@aws-sdk/middleware-retry@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/middleware-retry@npm:3.229.0" - dependencies: - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/service-error-classification": 3.229.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/util-middleware": 3.226.0 - tslib: ^2.3.1 - uuid: ^8.3.2 - checksum: a146879b0d4d940aed398c4bfd288b28e678bff7cbe04983123caf3bcb73fecc801ec19d13ca82ac1b2977515dc71ebe28efc400c07839004213017f93369b04 - languageName: node - linkType: hard - -"@aws-sdk/middleware-sdk-sts@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-sdk-sts@npm:3.226.0" - dependencies: - "@aws-sdk/middleware-signing": 3.226.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/signature-v4": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: 0b6e11889c9f1b5264eb38288dea5bd2987fa28338651939d005eaa0524f9cd41c570c545b34b08d25d858397b3f14a2b6a21238a8c88fc08719ed50b835cb15 - languageName: node - linkType: hard - -"@aws-sdk/middleware-serde@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-serde@npm:3.226.0" - dependencies: - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: e8315079cc3ed4527d1434eb28becfaf951338d2ced21116753b52d3330eabbfd13f24382b3378bcc2c09ee0653a65e0d8353e9e32f512b69929908272b83fa2 - languageName: node - linkType: hard - -"@aws-sdk/middleware-signing@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-signing@npm:3.226.0" - dependencies: - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/signature-v4": 3.226.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/util-middleware": 3.226.0 - tslib: ^2.3.1 - checksum: 4f66483d359e21d1f7e56a1900f7271a561801e1ee4380deaa006ce750ce73245a5fe554d4c1ab60cf9ca127c41f35c53c0817c375df6f8f068c9ed7f9572444 - languageName: node - linkType: hard - -"@aws-sdk/middleware-stack@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-stack@npm:3.226.0" - dependencies: - tslib: ^2.3.1 - checksum: fd284bc28ee6ee576e3fe9dd3c2c9d64b8c95fa1bb213b5e41e23a57bbc2693652ee51028414eb278918235e591ef729db572b160bff963c6f74e7d6c15d33d0 - languageName: node - linkType: hard - -"@aws-sdk/middleware-user-agent@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/middleware-user-agent@npm:3.226.0" - dependencies: - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: 8d3724aecd7b7f9f1a5b081263cb85864c969144105819f371a9675ee4f680c11e3b5ecbe181f57d2bfdde9c98b90267bd4afe0fc0822863041e0df52671f043 - languageName: node - linkType: hard - -"@aws-sdk/node-config-provider@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/node-config-provider@npm:3.226.0" - dependencies: - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: 0e7c4c7ea20c5361c71f1ab0b99c19964f76c187659714cd6e87e1cc264d0ab29965d33618d9d47d373e3b108558cd6628fb36a00cdac614849e5044c6776213 - languageName: node - linkType: hard - -"@aws-sdk/node-http-handler@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/node-http-handler@npm:3.226.0" - dependencies: - "@aws-sdk/abort-controller": 3.226.0 - "@aws-sdk/protocol-http": 3.226.0 - "@aws-sdk/querystring-builder": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: e4080ec9f859be4b191416084fef8d2687f24d973169b8fef592a867c23c14fad74f4bea20f451b98fedfee6a265f2c89b0bee4fe7aabdb1fd05a7475bf12b91 - languageName: node - linkType: hard - -"@aws-sdk/property-provider@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/property-provider@npm:3.226.0" - dependencies: - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: d63c53313bb2797ab2ecfa2cff827b63417c0cc31abe8c666cd018a1d70da877b61ef1fb21e504d6408e72b20544756089938b44869b003ba3c313b39bca6d45 - languageName: node - linkType: hard - -"@aws-sdk/protocol-http@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/protocol-http@npm:3.226.0" - dependencies: - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: 92cf35e1026a812c6c7ce8309fd685162ab7796237fc063e71dd9b292abf25902d6c0e02e93219101e1f506ef68a98f02eed6a61b18b8acd450ecb4bf8c1b467 - languageName: node - linkType: hard - -"@aws-sdk/querystring-builder@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/querystring-builder@npm:3.226.0" - dependencies: - "@aws-sdk/types": 3.226.0 - "@aws-sdk/util-uri-escape": 3.201.0 - tslib: ^2.3.1 - checksum: 0014b8876d402787c56f606f66e79eb48ff100b01d7a657bb0766a7723ca184da0dd2aed405837e7e6c5781fd868d7a903eef25884b2d1881d30e2454f5c2bfc - languageName: node - linkType: hard - -"@aws-sdk/querystring-parser@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/querystring-parser@npm:3.226.0" - dependencies: - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: 13b23b4dff859d778a05f6874e318d95d6fbd79c62a06bb6f6dff8496ac2eaf86f60b17460c3595af854c2e316482c9fcc098655d475926039f7dff4a6f1ecf1 - languageName: node - linkType: hard - -"@aws-sdk/service-error-classification@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/service-error-classification@npm:3.229.0" - checksum: 7877963d62f4d43ce5116f0ddfd1b27cffab2b0e74a4ceb4006b1f85b17dd50eb9ae2f227cabf935261e42b7615d0a9de190dd684380c30e03dee6e9f7e12587 - languageName: node - linkType: hard - -"@aws-sdk/shared-ini-file-loader@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/shared-ini-file-loader@npm:3.226.0" - dependencies: - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: 7b43e4d70f33b1098c9582a20dd5cf11c0e2efe5e7f4f854ee1fdfe2f804a7171deeb76f167c46ef7365bb584e29c816d58b6d8f6c9ac9debb124cccf59ebf59 - languageName: node - linkType: hard - -"@aws-sdk/signature-v4@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/signature-v4@npm:3.226.0" - dependencies: - "@aws-sdk/is-array-buffer": 3.201.0 - "@aws-sdk/types": 3.226.0 - "@aws-sdk/util-hex-encoding": 3.201.0 - "@aws-sdk/util-middleware": 3.226.0 - "@aws-sdk/util-uri-escape": 3.201.0 - tslib: ^2.3.1 - checksum: 8bc6ea1ad467d59f1ff6c5b814277e16d0d5b2d1455f21969b4575f572fdc013284e356e0f24436c89c8b99a51d0e384b01daa2bace1c3d69e28f35a23ef9802 - languageName: node - linkType: hard - -"@aws-sdk/smithy-client@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/smithy-client@npm:3.226.0" - dependencies: - "@aws-sdk/middleware-stack": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: 7c77d26367b94286fd0eceb5036f3a931314ab24c01ae64f645ea1390b3dc94d443a751be2be504d36aeeef86c5412facdc7df9624a792d9e97e5d53531f850c - languageName: node - linkType: hard - -"@aws-sdk/token-providers@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/token-providers@npm:3.229.0" - dependencies: - "@aws-sdk/client-sso-oidc": 3.229.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/shared-ini-file-loader": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: b099537ba47f3c2520f8081590ef97d22279aea39fcb1f3883f611273c8f15f4190d7b44f3f2debfdb36900f124e5f188193b039ce95c45c6e20d3b48ef9a3da - languageName: node - linkType: hard - -"@aws-sdk/types@npm:3.226.0, @aws-sdk/types@npm:^3.1.0, @aws-sdk/types@npm:^3.110.0": - version: 3.226.0 - resolution: "@aws-sdk/types@npm:3.226.0" - dependencies: - tslib: ^2.3.1 - checksum: 0041a8c0924ec7ba4ff787ae329a80b3edb9ace43e38fe3656a1862ae5324427fb09836275c0962cbc80e3c34a6ee512a108a5c4e7997f29664e3e8930cffd80 - languageName: node - linkType: hard - -"@aws-sdk/url-parser@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/url-parser@npm:3.226.0" - dependencies: - "@aws-sdk/querystring-parser": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: cb8d4b13c0de7336728a7a60a246108c0ecd46e5e493cb1006f5ab58c5dbae0ac36a791536786b1facc90f58a8d6decca9f4fda2cba19667ba5a9f5f4fcadb63 - languageName: node - linkType: hard - -"@aws-sdk/util-base64@npm:3.208.0": - version: 3.208.0 - resolution: "@aws-sdk/util-base64@npm:3.208.0" - dependencies: - "@aws-sdk/util-buffer-from": 3.208.0 - tslib: ^2.3.1 - checksum: 2ccab3453a3a3636f3f1397441574b3adb984e1ba3865030393108327ed7304cf80c9b31d69691e6aba85cfe6a611a881bbb724e544324240763bb4e96630ed9 - languageName: node - linkType: hard - -"@aws-sdk/util-body-length-browser@npm:3.188.0": - version: 3.188.0 - resolution: "@aws-sdk/util-body-length-browser@npm:3.188.0" - dependencies: - tslib: ^2.3.1 - checksum: 1b08bd1e63ec843ee336f51d894c49bf3c4c2f96e50d1711a12f7d0c5b6f7a15b490e366fec55b63e77036002994bac12927b29de2eb9ac91e4f152b1af78e58 - languageName: node - linkType: hard - -"@aws-sdk/util-body-length-node@npm:3.208.0": - version: 3.208.0 - resolution: "@aws-sdk/util-body-length-node@npm:3.208.0" - dependencies: - tslib: ^2.3.1 - checksum: 986b42b358656dec4e75c231213331c4f01785f9ab17c8b87b6e268b6880818a96117f1785cef9786e6c0f7e2c1332c80e8388a43bfd83e8c7224ad059a72733 - languageName: node - linkType: hard - -"@aws-sdk/util-buffer-from@npm:3.208.0": - version: 3.208.0 - resolution: "@aws-sdk/util-buffer-from@npm:3.208.0" - dependencies: - "@aws-sdk/is-array-buffer": 3.201.0 - tslib: ^2.3.1 - checksum: 00bfa4d4494d3a1eb128e19104994d1aca8b3802e9aa218cecafb1ed3ff2ecf5c946485e06aa97ae312458842b0f31a6484dc945232f7cb0e357ba341cb2e53e - languageName: node - linkType: hard - -"@aws-sdk/util-config-provider@npm:3.208.0": - version: 3.208.0 - resolution: "@aws-sdk/util-config-provider@npm:3.208.0" - dependencies: - tslib: ^2.3.1 - checksum: 97b0414b120b4eb53001f3ab2135ee94937e47bd7bd0d0de7c6a7e00a282eaa78cd84be2bfd3e389340f0c0b2f7ba60da9a403f084721970ee55b779ecf7a451 - languageName: node - linkType: hard - -"@aws-sdk/util-defaults-mode-browser@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/util-defaults-mode-browser@npm:3.226.0" - dependencies: - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 - bowser: ^2.11.0 - tslib: ^2.3.1 - checksum: 80a1383ef46c9289b7ef88ed1223e07f06bd3989517157199e325492d3da465d42bd9a975432b6d7c0e7e11f21aea02e5d977ddcc28c9f8b9f13e172fce0e657 - languageName: node - linkType: hard - -"@aws-sdk/util-defaults-mode-node@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/util-defaults-mode-node@npm:3.226.0" - dependencies: - "@aws-sdk/config-resolver": 3.226.0 - "@aws-sdk/credential-provider-imds": 3.226.0 - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/property-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: cb34426f745aa3965fe25d5c8e38eb4d1c3f85f6f071995b15ecad48afcd0ca01a01b7f572c26dacd917134d9c676625492df8f6fb01d702ad6becb65bd34105 - languageName: node - linkType: hard - -"@aws-sdk/util-endpoints@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/util-endpoints@npm:3.226.0" - dependencies: - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - checksum: a05d38c4901801ff8c33d3469b8248ae07a2bb761e8b87f9eb62d7b977bd447fc8a1601c18692a035662818b223be97957d63d389b5393fdd65227cc25aa7903 - languageName: node - linkType: hard - -"@aws-sdk/util-hex-encoding@npm:3.201.0": - version: 3.201.0 - resolution: "@aws-sdk/util-hex-encoding@npm:3.201.0" - dependencies: - tslib: ^2.3.1 - checksum: a27f3365dfb1e6ece79ea34fd6e2c4540eb0084536d7300ff0ff42a7334ddf07f21958c6cfd0bbeb71361ee408e16deae2c82b7c7378b048b8e81a52c75f190a - languageName: node - linkType: hard - -"@aws-sdk/util-locate-window@npm:^3.0.0": - version: 3.208.0 - resolution: "@aws-sdk/util-locate-window@npm:3.208.0" - dependencies: - tslib: ^2.3.1 - checksum: 7518c110c4fa27c5e1d2d173647f1c58fc6ea244d25733c08ac441d3a2650b050ce06cecbe56b80a9997d514c9f7515b3c529c84c1e04b29aa0265d53af23c52 - languageName: node - linkType: hard - -"@aws-sdk/util-middleware@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/util-middleware@npm:3.226.0" - dependencies: - tslib: ^2.3.1 - checksum: 51a4ba9a784943b723a2c57bbb889a4bc743f0f1219000ef73512e259069d63c3baa805aa375277c9d904da23301d0389bc0bd525b0b55274d7658fb62173e55 - languageName: node - linkType: hard - -"@aws-sdk/util-retry@npm:3.229.0": - version: 3.229.0 - resolution: "@aws-sdk/util-retry@npm:3.229.0" - dependencies: - "@aws-sdk/service-error-classification": 3.229.0 - tslib: ^2.3.1 - checksum: e4ab435000abfa1dc21153682ce684302bd6e69d48b7d2c876ff8dfa66793a43223961a3755d05abb1f94f82765eac2b9d48e55c688a957a7f6b5d032bbc46ee - languageName: node - linkType: hard - -"@aws-sdk/util-uri-escape@npm:3.201.0": - version: 3.201.0 - resolution: "@aws-sdk/util-uri-escape@npm:3.201.0" - dependencies: - tslib: ^2.3.1 - checksum: 8bd751459eaab75a9b61801f3484cfa5c4e0133381ace6ec901cb9b92b1fee99beb4ef9c0f87ade59425a882ed3a280255d9b2fd8da6a6286e49efb9af8f0d55 - languageName: node - linkType: hard - -"@aws-sdk/util-user-agent-browser@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/util-user-agent-browser@npm:3.226.0" - dependencies: - "@aws-sdk/types": 3.226.0 - bowser: ^2.11.0 - tslib: ^2.3.1 - checksum: b89b63e03636b98ccb811e713776c8ee5ce92a280edfd429e418dc69bb55b770b47d6118419be76207afe137f293fdb2e87605922714189df8ddbd4573185717 - languageName: node - linkType: hard - -"@aws-sdk/util-user-agent-node@npm:3.226.0": - version: 3.226.0 - resolution: "@aws-sdk/util-user-agent-node@npm:3.226.0" - dependencies: - "@aws-sdk/node-config-provider": 3.226.0 - "@aws-sdk/types": 3.226.0 - tslib: ^2.3.1 - peerDependencies: - aws-crt: ">=1.0.0" - peerDependenciesMeta: - aws-crt: - optional: true - checksum: a3b620fa13e5e61bc874d777d451ec522f659f933b7d7f7642c10fbb12ce13dd068c2b5370fd6132cca5ddcd22243fb04b4e926a4dd8aedeb08270a9bb49ee74 - languageName: node - linkType: hard - -"@aws-sdk/util-utf8-browser@npm:3.188.0, @aws-sdk/util-utf8-browser@npm:^3.0.0": - version: 3.188.0 - resolution: "@aws-sdk/util-utf8-browser@npm:3.188.0" - dependencies: - tslib: ^2.3.1 - checksum: dacd27164aa0835888434e080b67f04510e2281560540ff73496f2d0aa73b0b7f830ec08491b35c3a51bf6214615579182aff8727e151e54a74a97a197a2ac31 - languageName: node - linkType: hard - -"@aws-sdk/util-utf8-node@npm:3.208.0": - version: 3.208.0 - resolution: "@aws-sdk/util-utf8-node@npm:3.208.0" - dependencies: - "@aws-sdk/util-buffer-from": 3.208.0 - tslib: ^2.3.1 - checksum: 0f4c1d0d3f6eb40d92bc7163c6dcf97f90b3a8be05df46ba4f9bb7723a3e6acabf2cb0f2486411b03d22e8fcccae9e757ed02afad384ff5f44a3a659a78c5752 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/code-frame@npm:7.16.7" - dependencies: - "@babel/highlight": ^7.16.7 - checksum: db2f7faa31bc2c9cf63197b481b30ea57147a5fc1a6fab60e5d6c02cdfbf6de8e17b5121f99917b3dabb5eeb572da078312e70697415940383efc140d4e0808b - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.16.4": - version: 7.16.8 - resolution: "@babel/compat-data@npm:7.16.8" - checksum: 10da2dac5ea9589c251412b00920889910e476c1ab24cd7095577635bc3a27c785151c89db4e26285fd39f509510ec29ab9d7e721f4fc16e4aec221cacde784b - languageName: node - linkType: hard - -"@babel/core@npm:^7.1.0, @babel/core@npm:^7.12.3, @babel/core@npm:^7.7.2, @babel/core@npm:^7.8.0": - version: 7.16.12 - resolution: "@babel/core@npm:7.16.12" - dependencies: - "@babel/code-frame": ^7.16.7 - "@babel/generator": ^7.16.8 - "@babel/helper-compilation-targets": ^7.16.7 - "@babel/helper-module-transforms": ^7.16.7 - "@babel/helpers": ^7.16.7 - "@babel/parser": ^7.16.12 - "@babel/template": ^7.16.7 - "@babel/traverse": ^7.16.10 - "@babel/types": ^7.16.8 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.1.2 - semver: ^6.3.0 - source-map: ^0.5.0 - checksum: 29b56f3cb7c329fc038a2efaccf64ac3025835676b3d90f57f2265b6acd477a970114d09021b38d019ac8f20b2bb1596a9e79ce1f820d6b8cf0e4a802891817c - languageName: node - linkType: hard - -"@babel/generator@npm:^7.16.8, @babel/generator@npm:^7.7.2": - version: 7.16.8 - resolution: "@babel/generator@npm:7.16.8" - dependencies: - "@babel/types": ^7.16.8 - jsesc: ^2.5.1 - source-map: ^0.5.0 - checksum: 83af38b34735605c9d5f774c87a46c2cffaf666b28e9eeba883b2d7076412257e5c2264c26d9740ce44da6955fdaf857659391db02c012714a2a6dc19e403105 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-compilation-targets@npm:7.16.7" - dependencies: - "@babel/compat-data": ^7.16.4 - "@babel/helper-validator-option": ^7.16.7 - browserslist: ^4.17.5 - semver: ^6.3.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 7238aaee78c011a42fb5ca92e5eff098752f7b314c2111d7bb9cdd58792fcab1b9c819b59f6a0851dc210dc09dc06b30d130a23982753e70eb3111bc65204842 - languageName: node - linkType: hard - -"@babel/helper-environment-visitor@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-environment-visitor@npm:7.16.7" - dependencies: - "@babel/types": ^7.16.7 - checksum: c03a10105d9ebd1fe632a77356b2e6e2f3c44edba9a93b0dc3591b6a66bd7a2e323dd9502f9ce96fc6401234abff1907aa877b6674f7826b61c953f7c8204bbe - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-function-name@npm:7.16.7" - dependencies: - "@babel/helper-get-function-arity": ^7.16.7 - "@babel/template": ^7.16.7 - "@babel/types": ^7.16.7 - checksum: fc77cbe7b10cfa2a262d7a37dca575c037f20419dfe0c5d9317f589599ca24beb5f5c1057748011159149eaec47fe32338c6c6412376fcded68200df470161e1 - languageName: node - linkType: hard - -"@babel/helper-get-function-arity@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-get-function-arity@npm:7.16.7" - dependencies: - "@babel/types": ^7.16.7 - checksum: 25d969fb207ff2ad5f57a90d118f6c42d56a0171022e200aaa919ba7dc95ae7f92ec71cdea6c63ef3629a0dc962ab4c78e09ca2b437185ab44539193f796e0c3 - languageName: node - linkType: hard - -"@babel/helper-hoist-variables@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-hoist-variables@npm:7.16.7" - dependencies: - "@babel/types": ^7.16.7 - checksum: 6ae1641f4a751cd9045346e3f61c3d9ec1312fd779ab6d6fecfe2a96e59a481ad5d7e40d2a840894c13b3fd6114345b157f9e3062fc5f1580f284636e722de60 - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-module-imports@npm:7.16.7" - dependencies: - "@babel/types": ^7.16.7 - checksum: ddd2c4a600a2e9a4fee192ab92bf35a627c5461dbab4af31b903d9ba4d6b6e59e0ff3499fde4e2e9a0eebe24906f00b636f8b4d9bd72ff24d50e6618215c3212 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-module-transforms@npm:7.16.7" - dependencies: - "@babel/helper-environment-visitor": ^7.16.7 - "@babel/helper-module-imports": ^7.16.7 - "@babel/helper-simple-access": ^7.16.7 - "@babel/helper-split-export-declaration": ^7.16.7 - "@babel/helper-validator-identifier": ^7.16.7 - "@babel/template": ^7.16.7 - "@babel/traverse": ^7.16.7 - "@babel/types": ^7.16.7 - checksum: 6e930ce776c979f299cdbeaf80187f4ab086d75287b96ecc1c6896d392fcb561065f0d6219fc06fa79b4ceb4bbdc1a9847da8099aba9b077d0a9e583500fb673 - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.16.7, @babel/helper-plugin-utils@npm:^7.8.0": - version: 7.16.7 - resolution: "@babel/helper-plugin-utils@npm:7.16.7" - checksum: d08dd86554a186c2538547cd537552e4029f704994a9201d41d82015c10ed7f58f9036e8d1527c3760f042409163269d308b0b3706589039c5f1884619c6d4ce - languageName: node - linkType: hard - -"@babel/helper-simple-access@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-simple-access@npm:7.16.7" - dependencies: - "@babel/types": ^7.16.7 - checksum: 8d22c46c5ec2ead0686c4d5a3d1d12b5190c59be676bfe0d9d89df62b437b51d1a3df2ccfb8a77dded2e585176ebf12986accb6d45a18cff229eef3b10344f4b - languageName: node - linkType: hard - -"@babel/helper-split-export-declaration@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-split-export-declaration@npm:7.16.7" - dependencies: - "@babel/types": ^7.16.7 - checksum: e10aaf135465c55114627951b79115f24bc7af72ecbb58d541d66daf1edaee5dde7cae3ec8c3639afaf74526c03ae3ce723444e3b5b3dc77140c456cd84bcaa1 - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-validator-identifier@npm:7.16.7" - checksum: dbb3db9d184343152520a209b5684f5e0ed416109cde82b428ca9c759c29b10c7450657785a8b5c5256aa74acc6da491c1f0cf6b784939f7931ef82982051b69 - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helper-validator-option@npm:7.16.7" - checksum: c5ccc451911883cc9f12125d47be69434f28094475c1b9d2ada7c3452e6ac98a1ee8ddd364ca9e3f9855fcdee96cdeafa32543ebd9d17fee7a1062c202e80570 - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.16.7": - version: 7.16.7 - resolution: "@babel/helpers@npm:7.16.7" - dependencies: - "@babel/template": ^7.16.7 - "@babel/traverse": ^7.16.7 - "@babel/types": ^7.16.7 - checksum: 75504c76b66a29b91f954fcc0867dfe275a4cfba5b44df6d64405df74ea72f967fccfa63d62c31c423c5502d113290000c581e0e4858a214f0303d7ecf55c29f - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.16.7": - version: 7.16.10 - resolution: "@babel/highlight@npm:7.16.10" - dependencies: - "@babel/helper-validator-identifier": ^7.16.7 - chalk: ^2.0.0 - js-tokens: ^4.0.0 - checksum: 1f1bdd752a90844f4efc22166a46303fb651ba0fd75a06daba3ebae2575ab3edc1da9827c279872a3aaf305f50a18473c5fa1966752726a2b253065fd4c0745e - languageName: node - linkType: hard - -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.10, @babel/parser@npm:^7.16.12, @babel/parser@npm:^7.16.7": - version: 7.16.12 - resolution: "@babel/parser@npm:7.16.12" - bin: - parser: ./bin/babel-parser.js - checksum: af287f0f3dfa564958a7dddfeb62e08c0de9ce9bd8447fcde0997da26ec477bf19f37161b9d970e2c7e0d1f77e441258907d3347beddd0d42cae85ed46947703 - languageName: node - linkType: hard - -"@babel/plugin-syntax-async-generators@npm:^7.8.4": - version: 7.8.4 - resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 - languageName: node - linkType: hard - -"@babel/plugin-syntax-bigint@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-bigint@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648 - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-properties@npm:^7.8.3": - version: 7.12.13 - resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" - dependencies: - "@babel/helper-plugin-utils": ^7.12.13 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-meta@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b - languageName: node - linkType: hard - -"@babel/plugin-syntax-json-strings@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a - languageName: node - linkType: hard - -"@babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 - languageName: node - linkType: hard - -"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-numeric-separator@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": ^7.8.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 - languageName: node - linkType: hard - -"@babel/plugin-syntax-top-level-await@npm:^7.8.3": - version: 7.14.5 - resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e - languageName: node - linkType: hard - -"@babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.16.7 - resolution: "@babel/plugin-syntax-typescript@npm:7.16.7" - dependencies: - "@babel/helper-plugin-utils": ^7.16.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 661e636060609ede9a402e22603b01784c21fabb0a637e65f561c8159351fe0130bbc11fdefe31902107885e3332fc34d95eb652ac61d3f61f2d61f5da20609e - languageName: node - linkType: hard - -"@babel/template@npm:^7.16.7, @babel/template@npm:^7.3.3": - version: 7.16.7 - resolution: "@babel/template@npm:7.16.7" - dependencies: - "@babel/code-frame": ^7.16.7 - "@babel/parser": ^7.16.7 - "@babel/types": ^7.16.7 - checksum: 10cd112e89276e00f8b11b55a51c8b2f1262c318283a980f4d6cdb0286dc05734b9aaeeb9f3ad3311900b09bc913e02343fcaa9d4a4f413964aaab04eb84ac4a - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.16.10, @babel/traverse@npm:^7.16.7, @babel/traverse@npm:^7.7.2": - version: 7.16.10 - resolution: "@babel/traverse@npm:7.16.10" - dependencies: - "@babel/code-frame": ^7.16.7 - "@babel/generator": ^7.16.8 - "@babel/helper-environment-visitor": ^7.16.7 - "@babel/helper-function-name": ^7.16.7 - "@babel/helper-hoist-variables": ^7.16.7 - "@babel/helper-split-export-declaration": ^7.16.7 - "@babel/parser": ^7.16.10 - "@babel/types": ^7.16.8 - debug: ^4.1.0 - globals: ^11.1.0 - checksum: 58f52314f8a02157cd3004712e703e6b22dff57cee4bc1ab1954c511c6f885fd7763ea68d2d5f006891bc7b77b1f2e9c8c7cb0354f580c8343d5559ed971d087 - languageName: node - linkType: hard - -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.7, @babel/types@npm:^7.16.8, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3": - version: 7.16.8 - resolution: "@babel/types@npm:7.16.8" - dependencies: - "@babel/helper-validator-identifier": ^7.16.7 - to-fast-properties: ^2.0.0 - checksum: 4f6a187b2924df70e21d6e6c0822f91b1b936fe060bc92bb477b93bd8a712c88fe41a73f85c0ec53b033353374fe33e773b04ffc340ad36afd8f647dd05c4ee1 - languageName: node - linkType: hard - -"@babel/types@npm:^7.8.3": - version: 7.17.0 - resolution: "@babel/types@npm:7.17.0" - dependencies: - "@babel/helper-validator-identifier": ^7.16.7 - to-fast-properties: ^2.0.0 - checksum: 12e5a287986fe557188e87b2c5202223f1dc83d9239a196ab936fdb9f8c1eb0be717ff19f934b5fad4e29a75586d5798f74bed209bccea1c20376b9952056f0e - languageName: node - linkType: hard - -"@bcoe/v8-coverage@npm:^0.2.3": - version: 0.2.3 - resolution: "@bcoe/v8-coverage@npm:0.2.3" - checksum: 850f9305536d0f2bd13e9e0881cb5f02e4f93fad1189f7b2d4bebf694e3206924eadee1068130d43c11b750efcc9405f88a8e42ef098b6d75239c0f047de1a27 - languageName: node - linkType: hard - -"@cspotcode/source-map-consumer@npm:0.8.0": - version: 0.8.0 - resolution: "@cspotcode/source-map-consumer@npm:0.8.0" - checksum: c0c16ca3d2f58898f1bd74c4f41a189dbcc202e642e60e489cbcc2e52419c4e89bdead02c886a12fb13ea37798ede9e562b2321df997ebc210ae9bd881561b4e - languageName: node - linkType: hard - -"@cspotcode/source-map-support@npm:0.7.0": - version: 0.7.0 - resolution: "@cspotcode/source-map-support@npm:0.7.0" - dependencies: - "@cspotcode/source-map-consumer": 0.8.0 - checksum: 9faddda7757cd778b5fd6812137b2cc265810043680d6399acc20441668fafcdc874053be9dccd0d9110087287bfad27eb3bf342f72bceca9aa9059f5d0c4be8 - languageName: node - linkType: hard - -"@eslint/eslintrc@npm:^1.2.2": - version: 1.2.2 - resolution: "@eslint/eslintrc@npm:1.2.2" - dependencies: - ajv: ^6.12.4 - debug: ^4.3.2 - espree: ^9.3.1 - globals: ^13.9.0 - ignore: ^5.2.0 - import-fresh: ^3.2.1 - js-yaml: ^4.1.0 - minimatch: ^3.0.4 - strip-json-comments: ^3.1.1 - checksum: d891036bbffb0efec1462aa4a603ed6e349d546b1632dde7d474ddd15c2a8b6895671b25293f1d3ba10ff629c24a3649ad049373fe695a0e44b612537088563c - languageName: node - linkType: hard - -"@gar/promisify@npm:^1.1.3": - version: 1.1.3 - resolution: "@gar/promisify@npm:1.1.3" - checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1 - languageName: node - linkType: hard - -"@humanwhocodes/config-array@npm:^0.9.2": - version: 0.9.5 - resolution: "@humanwhocodes/config-array@npm:0.9.5" - dependencies: - "@humanwhocodes/object-schema": ^1.2.1 - debug: ^4.1.1 - minimatch: ^3.0.4 - checksum: 8ba6281bc0590f6c6eadeefc14244b5a3e3f5903445aadd1a32099ed80e753037674026ce1b3c945ab93561bea5eb29e3c5bff67060e230c295595ba517a3492 - languageName: node - linkType: hard - -"@humanwhocodes/object-schema@npm:^1.2.1": - version: 1.2.1 - resolution: "@humanwhocodes/object-schema@npm:1.2.1" - checksum: a824a1ec31591231e4bad5787641f59e9633827d0a2eaae131a288d33c9ef0290bd16fda8da6f7c0fcb014147865d12118df10db57f27f41e20da92369fcb3f1 - languageName: node - linkType: hard - -"@istanbuljs/load-nyc-config@npm:^1.0.0": - version: 1.1.0 - resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" - dependencies: - camelcase: ^5.3.1 - find-up: ^4.1.0 - get-package-type: ^0.1.0 - js-yaml: ^3.13.1 - resolve-from: ^5.0.0 - checksum: d578da5e2e804d5c93228450a1380e1a3c691de4953acc162f387b717258512a3e07b83510a936d9fab03eac90817473917e24f5d16297af3867f59328d58568 - languageName: node - linkType: hard - -"@istanbuljs/schema@npm:^0.1.2": - version: 0.1.3 - resolution: "@istanbuljs/schema@npm:0.1.3" - checksum: 5282759d961d61350f33d9118d16bcaed914ebf8061a52f4fa474b2cb08720c9c81d165e13b82f2e5a8a212cc5af482f0c6fc1ac27b9e067e5394c9a6ed186c9 - languageName: node - linkType: hard - -"@jest/console@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/console@npm:27.5.1" - dependencies: - "@jest/types": ^27.5.1 - "@types/node": "*" - chalk: ^4.0.0 - jest-message-util: ^27.5.1 - jest-util: ^27.5.1 - slash: ^3.0.0 - checksum: 7cb20f06a34b09734c0342685ec53aa4c401fe3757c13a9c58fce76b971a322eb884f6de1068ef96f746e5398e067371b89515a07c268d4440a867c87748a706 - languageName: node - linkType: hard - -"@jest/core@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/core@npm:27.5.1" - dependencies: - "@jest/console": ^27.5.1 - "@jest/reporters": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/transform": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/node": "*" - ansi-escapes: ^4.2.1 - chalk: ^4.0.0 - emittery: ^0.8.1 - exit: ^0.1.2 - graceful-fs: ^4.2.9 - jest-changed-files: ^27.5.1 - jest-config: ^27.5.1 - jest-haste-map: ^27.5.1 - jest-message-util: ^27.5.1 - jest-regex-util: ^27.5.1 - jest-resolve: ^27.5.1 - jest-resolve-dependencies: ^27.5.1 - jest-runner: ^27.5.1 - jest-runtime: ^27.5.1 - jest-snapshot: ^27.5.1 - jest-util: ^27.5.1 - jest-validate: ^27.5.1 - jest-watcher: ^27.5.1 - micromatch: ^4.0.4 - rimraf: ^3.0.0 - slash: ^3.0.0 - strip-ansi: ^6.0.0 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: 904a94ad8f1b43cd6b48de3b0226659bff3696150ff8cf7680fc2faffdc8a115203bb9ab6e817c1f79f9d6a81f67953053cbc64d8a4604f2e0c42a04c28cf126 - languageName: node - linkType: hard - -"@jest/environment@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/environment@npm:27.5.1" - dependencies: - "@jest/fake-timers": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/node": "*" - jest-mock: ^27.5.1 - checksum: 2a9e18c35a015508dbec5b90b21c150230fa6c1c8cb8fabe029d46ee2ca4c40eb832fb636157da14c66590d0a4c8a2c053226b041f54a44507d6f6a89abefd66 - languageName: node - linkType: hard - -"@jest/fake-timers@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/fake-timers@npm:27.5.1" - dependencies: - "@jest/types": ^27.5.1 - "@sinonjs/fake-timers": ^8.0.1 - "@types/node": "*" - jest-message-util: ^27.5.1 - jest-mock: ^27.5.1 - jest-util: ^27.5.1 - checksum: 02a0561ed2f4586093facd4ae500b74694f187ac24d4a00e949a39a1c5325bca8932b4fcb0388a2c5ed0656506fc1cf51fd3e32cdd48cea7497ad9c6e028aba8 - languageName: node - linkType: hard - -"@jest/globals@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/globals@npm:27.5.1" - dependencies: - "@jest/environment": ^27.5.1 - "@jest/types": ^27.5.1 - expect: ^27.5.1 - checksum: 087f97047e9dcf555f76fe2ce54aee681e005eaa837a0c0c2d251df6b6412c892c9df54cb871b180342114389a5ff895a4e52e6e6d3d0015bf83c02a54f64c3c - languageName: node - linkType: hard - -"@jest/reporters@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/reporters@npm:27.5.1" - dependencies: - "@bcoe/v8-coverage": ^0.2.3 - "@jest/console": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/transform": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/node": "*" - chalk: ^4.0.0 - collect-v8-coverage: ^1.0.0 - exit: ^0.1.2 - glob: ^7.1.2 - graceful-fs: ^4.2.9 - istanbul-lib-coverage: ^3.0.0 - istanbul-lib-instrument: ^5.1.0 - istanbul-lib-report: ^3.0.0 - istanbul-lib-source-maps: ^4.0.0 - istanbul-reports: ^3.1.3 - jest-haste-map: ^27.5.1 - jest-resolve: ^27.5.1 - jest-util: ^27.5.1 - jest-worker: ^27.5.1 - slash: ^3.0.0 - source-map: ^0.6.0 - string-length: ^4.0.1 - terminal-link: ^2.0.0 - v8-to-istanbul: ^8.1.0 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: faba5eafb86e62b62e152cafc8812d56308f9d1e8b77f3a7dcae4a8803a20a60a0909cc43ed73363ef649bf558e4fb181c7a336d144c89f7998279d1882bb69e - languageName: node - linkType: hard - -"@jest/source-map@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/source-map@npm:27.5.1" - dependencies: - callsites: ^3.0.0 - graceful-fs: ^4.2.9 - source-map: ^0.6.0 - checksum: 4fb1e743b602841babf7e22bd84eca34676cb05d4eb3b604cae57fc59e406099f5ac759ac1a0d04d901237d143f0f4f234417306e823bde732a1d19982230862 - languageName: node - linkType: hard - -"@jest/test-result@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/test-result@npm:27.5.1" - dependencies: - "@jest/console": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/istanbul-lib-coverage": ^2.0.0 - collect-v8-coverage: ^1.0.0 - checksum: 338f7c509d6a3bc6d7dd7388c8f6f548b87638e171dc1fddfedcacb4e8950583288832223ba688058cbcf874b937d22bdc0fa88f79f5fc666f77957e465c06a5 - languageName: node - linkType: hard - -"@jest/test-sequencer@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/test-sequencer@npm:27.5.1" - dependencies: - "@jest/test-result": ^27.5.1 - graceful-fs: ^4.2.9 - jest-haste-map: ^27.5.1 - jest-runtime: ^27.5.1 - checksum: f21f9c8bb746847f7f89accfd29d6046eec1446f0b54e4694444feaa4df379791f76ef0f5a4360aafcbc73b50bc979f68b8a7620de404019d3de166be6720cb0 - languageName: node - linkType: hard - -"@jest/transform@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/transform@npm:27.5.1" - dependencies: - "@babel/core": ^7.1.0 - "@jest/types": ^27.5.1 - babel-plugin-istanbul: ^6.1.1 - chalk: ^4.0.0 - convert-source-map: ^1.4.0 - fast-json-stable-stringify: ^2.0.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^27.5.1 - jest-regex-util: ^27.5.1 - jest-util: ^27.5.1 - micromatch: ^4.0.4 - pirates: ^4.0.4 - slash: ^3.0.0 - source-map: ^0.6.1 - write-file-atomic: ^3.0.0 - checksum: a22079121aedea0f20a03a9c026be971f7b92adbfb4d5fd1fb67be315741deac4f056936d7c72a53b24aa5a1071bc942c003925fd453bf3f6a0ae5da6384e137 - languageName: node - linkType: hard - -"@jest/types@npm:^27.4.2": - version: 27.4.2 - resolution: "@jest/types@npm:27.4.2" - dependencies: - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^3.0.0 - "@types/node": "*" - "@types/yargs": ^16.0.0 - chalk: ^4.0.0 - checksum: 1191022023e32763063cc1c8b1143fa316fb05db2f9698280a7bdbafcabd989e5fd64f8eb875b8a2e54c53f25dba45ed2eea8ced394d9e484da0fda674cd17a5 - languageName: node - linkType: hard - -"@jest/types@npm:^27.5.1": - version: 27.5.1 - resolution: "@jest/types@npm:27.5.1" - dependencies: - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^3.0.0 - "@types/node": "*" - "@types/yargs": ^16.0.0 - chalk: ^4.0.0 - checksum: d1f43cc946d87543ddd79d49547aab2399481d34025d5c5f2025d3d99c573e1d9832fa83cef25e9d9b07a8583500229d15bbb07b8e233d127d911d133e2f14b1 - languageName: node - linkType: hard - -"@nestjs/common@npm:^9.2.1": - version: 9.2.1 - resolution: "@nestjs/common@npm:9.2.1" - dependencies: - iterare: 1.2.1 - tslib: 2.4.1 - uuid: 9.0.0 - peerDependencies: - cache-manager: <=5 - class-transformer: "*" - class-validator: "*" - reflect-metadata: ^0.1.12 - rxjs: ^7.1.0 - peerDependenciesMeta: - cache-manager: - optional: true - class-transformer: - optional: true - class-validator: - optional: true - checksum: 82acae70df519f1f217f5b11354c29e1f3b9e5ddd5f73385bd76705c235507230bb19c6c0eb696938565ce70c33cecb487d539c829d1c8d39121fcf3468b4d55 - languageName: node - linkType: hard - -"@nestjs/core@npm:^9.2.1": - version: 9.2.1 - resolution: "@nestjs/core@npm:9.2.1" - dependencies: - "@nuxtjs/opencollective": 0.3.2 - fast-safe-stringify: 2.1.1 - iterare: 1.2.1 - object-hash: 3.0.0 - path-to-regexp: 3.2.0 - tslib: 2.4.1 - uuid: 9.0.0 - peerDependencies: - "@nestjs/common": ^9.0.0 - "@nestjs/microservices": ^9.0.0 - "@nestjs/platform-express": ^9.0.0 - "@nestjs/websockets": ^9.0.0 - reflect-metadata: ^0.1.12 - rxjs: ^7.1.0 - peerDependenciesMeta: - "@nestjs/microservices": - optional: true - "@nestjs/platform-express": - optional: true - "@nestjs/websockets": - optional: true - checksum: 006edefb175840f7706e3ae755dfd984e112d40fe3ce26bd75ee019652c38b5225c751617efaf6054b07ddb1f7e044f49015520889f0003aa9aab33111d59172 - languageName: node - linkType: hard - -"@nestjs/platform-express@npm:^9.2.1": - version: 9.2.1 - resolution: "@nestjs/platform-express@npm:9.2.1" - dependencies: - body-parser: 1.20.1 - cors: 2.8.5 - express: 4.18.2 - multer: 1.4.4-lts.1 - tslib: 2.4.1 - peerDependencies: - "@nestjs/common": ^9.0.0 - "@nestjs/core": ^9.0.0 - checksum: a20d5471b1dcc56f056af14593d94ed8e155208338359e72519ed052ffdc741c5b27a75726c46277dc8baadd99615b369c6874353e73c95133b90a05b79810e9 - languageName: node - linkType: hard - -"@nestjs/testing@npm:^9.2.1": - version: 9.2.1 - resolution: "@nestjs/testing@npm:9.2.1" - dependencies: - tslib: 2.4.1 - peerDependencies: - "@nestjs/common": ^9.0.0 - "@nestjs/core": ^9.0.0 - "@nestjs/microservices": ^9.0.0 - "@nestjs/platform-express": ^9.0.0 - peerDependenciesMeta: - "@nestjs/microservices": - optional: true - "@nestjs/platform-express": - optional: true - checksum: 69fbe0535bbc6b8f90f90a02efb33b390d5aa7ce1f309452b1fcedd9304f7466871842f27d042587fce8532892abe58c769465eca13dde80860e002ffa83570b - languageName: node - linkType: hard - -"@nodelib/fs.scandir@npm:2.1.5": - version: 2.1.5 - resolution: "@nodelib/fs.scandir@npm:2.1.5" - dependencies: - "@nodelib/fs.stat": 2.0.5 - run-parallel: ^1.1.9 - checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59 - languageName: node - linkType: hard - -"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": - version: 2.0.5 - resolution: "@nodelib/fs.stat@npm:2.0.5" - checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 - languageName: node - linkType: hard - -"@nodelib/fs.walk@npm:^1.2.3": - version: 1.2.8 - resolution: "@nodelib/fs.walk@npm:1.2.8" - dependencies: - "@nodelib/fs.scandir": 2.1.5 - fastq: ^1.6.0 - checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53 - languageName: node - linkType: hard - -"@npmcli/fs@npm:^2.1.0": - version: 2.1.0 - resolution: "@npmcli/fs@npm:2.1.0" - dependencies: - "@gar/promisify": ^1.1.3 - semver: ^7.3.5 - checksum: 6ec6d678af6da49f9dac50cd882d7f661934dd278972ffbaacde40d9eaa2871292d634000a0cca9510f6fc29855fbd4af433e1adbff90a524ec3eaf140f1219b - languageName: node - linkType: hard - -"@npmcli/move-file@npm:^2.0.0": - version: 2.0.0 - resolution: "@npmcli/move-file@npm:2.0.0" - dependencies: - mkdirp: ^1.0.4 - rimraf: ^3.0.2 - checksum: 1388777b507b0c592d53f41b9d182e1a8de7763bc625fc07999b8edbc22325f074e5b3ec90af79c89d6987fdb2325bc66d59f483258543c14a43661621f841b0 - languageName: node - linkType: hard - -"@nuxtjs/opencollective@npm:0.3.2": - version: 0.3.2 - resolution: "@nuxtjs/opencollective@npm:0.3.2" - dependencies: - chalk: ^4.1.0 - consola: ^2.15.0 - node-fetch: ^2.6.1 - bin: - opencollective: bin/opencollective.js - checksum: fd3737c12edf55b5c2279674664c3ed5e756410ea82e9cd324c3f0e032ed5ccd8df1959ec69ea97f2f1c9c33c884aae3d7a7108a73ea0faa90d74ea47cf364d4 - languageName: node - linkType: hard - -"@sinonjs/commons@npm:^1.7.0": - version: 1.8.3 - resolution: "@sinonjs/commons@npm:1.8.3" - dependencies: - type-detect: 4.0.8 - checksum: 6159726db5ce6bf9f2297f8427f7ca5b3dff45b31e5cee23496f1fa6ef0bb4eab878b23fb2c5e6446381f6a66aba4968ef2fc255c1180d753d4b8c271636a2e5 - languageName: node - linkType: hard - -"@sinonjs/fake-timers@npm:^8.0.1": - version: 8.1.0 - resolution: "@sinonjs/fake-timers@npm:8.1.0" - dependencies: - "@sinonjs/commons": ^1.7.0 - checksum: 09b5a158ce013a6c37613258bad79ca4efeb99b1f59c41c73cca36cac00b258aefcf46eeea970fccf06b989414d86fe9f54c1102272c0c3bdd51a313cea80949 - languageName: node - linkType: hard - -"@tootallnate/once@npm:1": - version: 1.1.2 - resolution: "@tootallnate/once@npm:1.1.2" - checksum: e1fb1bbbc12089a0cb9433dc290f97bddd062deadb6178ce9bcb93bb7c1aecde5e60184bc7065aec42fe1663622a213493c48bbd4972d931aae48315f18e1be9 - languageName: node - linkType: hard - -"@tootallnate/once@npm:2": - version: 2.0.0 - resolution: "@tootallnate/once@npm:2.0.0" - checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 - languageName: node - linkType: hard - -"@tsconfig/node10@npm:^1.0.7": - version: 1.0.8 - resolution: "@tsconfig/node10@npm:1.0.8" - checksum: b8d5fffbc6b17ef64ef74f7fdbccee02a809a063ade785c3648dae59406bc207f70ea2c4296f92749b33019fa36a5ae716e42e49cc7f1bbf0fd147be0d6b970a - languageName: node - linkType: hard - -"@tsconfig/node12@npm:^1.0.7": - version: 1.0.9 - resolution: "@tsconfig/node12@npm:1.0.9" - checksum: a01b2400ab3582b86b589c6d31dcd0c0656f333adecde85d6d7d4086adb059808b82692380bb169546d189bf771ae21d02544a75b57bd6da4a5dd95f8567bec9 - languageName: node - linkType: hard - -"@tsconfig/node14@npm:^1.0.0": - version: 1.0.1 - resolution: "@tsconfig/node14@npm:1.0.1" - checksum: 976345e896c0f059867f94f8d0f6ddb8b1844fb62bf36b727de8a9a68f024857e5db97ed51d3325e23e0616a5e48c034ff51a8d595b3fe7e955f3587540489be - languageName: node - linkType: hard - -"@tsconfig/node16@npm:^1.0.2": - version: 1.0.2 - resolution: "@tsconfig/node16@npm:1.0.2" - checksum: ca94d3639714672bbfd55f03521d3f56bb6a25479bd425da81faf21f13e1e9d15f40f97377dedbbf477a5841c5b0c8f4cd1b391f33553d750b9202c54c2c07aa - languageName: node - linkType: hard - -"@types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.1.14": - version: 7.1.18 - resolution: "@types/babel__core@npm:7.1.18" - dependencies: - "@babel/parser": ^7.1.0 - "@babel/types": ^7.0.0 - "@types/babel__generator": "*" - "@types/babel__template": "*" - "@types/babel__traverse": "*" - checksum: 2e5b5d7c84f347d3789575486e58b0df5c91613abc3d27e716274aba3048518e07e1f068250ba829e2ed58532ccc88da595ce95ba2688e7bbcd7c25a3c6627ed - languageName: node - linkType: hard - -"@types/babel__generator@npm:*": - version: 7.6.4 - resolution: "@types/babel__generator@npm:7.6.4" - dependencies: - "@babel/types": ^7.0.0 - checksum: 20effbbb5f8a3a0211e95959d06ae70c097fb6191011b73b38fe86deebefad8e09ee014605e0fd3cdaedc73d158be555866810e9166e1f09e4cfd880b874dcb0 - languageName: node - linkType: hard - -"@types/babel__template@npm:*": - version: 7.4.1 - resolution: "@types/babel__template@npm:7.4.1" - dependencies: - "@babel/parser": ^7.1.0 - "@babel/types": ^7.0.0 - checksum: 649fe8b42c2876be1fd28c6ed9b276f78152d5904ec290b6c861d9ef324206e0a5c242e8305c421ac52ecf6358fa7e32ab7a692f55370484825c1df29b1596ee - languageName: node - linkType: hard - -"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.4, @types/babel__traverse@npm:^7.0.6": - version: 7.14.2 - resolution: "@types/babel__traverse@npm:7.14.2" - dependencies: - "@babel/types": ^7.3.0 - checksum: a797ea09c72307569e3ee08aa3900ca744ce3091114084f2dc59b67a45ee7d01df7865252790dbfa787a7915ce892cdc820c9b920f3683292765fc656b08dc63 - languageName: node - linkType: hard - -"@types/cls-hooked@npm:^4.3.3": - version: 4.3.3 - resolution: "@types/cls-hooked@npm:4.3.3" - dependencies: - "@types/node": "*" - checksum: 281e7ac237aa0259b73d3f0159dc981b1fa9a040d83aa4248dadeb13c74e663e01b787a6f81223a8d9c386c96d1c0bb2f1e6443cbff740e826d0ebcf6d81a7bd - languageName: node - linkType: hard - -"@types/cookiejar@npm:*": - version: 2.1.2 - resolution: "@types/cookiejar@npm:2.1.2" - checksum: f6e1903454007f86edd6c3520cbb4d553e1d4e17eaf1f77f6f75e3270f48cc828d74397a113a36942f5fe52f9fa71067bcfa738f53ad468fcca0bc52cb1cbd28 - languageName: node - linkType: hard - -"@types/debug@npm:^4.1.7": - version: 4.1.7 - resolution: "@types/debug@npm:4.1.7" - dependencies: - "@types/ms": "*" - checksum: 0a7b89d8ed72526858f0b61c6fd81f477853e8c4415bb97f48b1b5545248d2ae389931680b94b393b993a7cfe893537a200647d93defe6d87159b96812305adc - languageName: node - linkType: hard - -"@types/graceful-fs@npm:^4.1.2": - version: 4.1.5 - resolution: "@types/graceful-fs@npm:4.1.5" - dependencies: - "@types/node": "*" - checksum: d076bb61f45d0fc42dee496ef8b1c2f8742e15d5e47e90e20d0243386e426c04d4efd408a48875ab432f7960b4ce3414db20ed0fbbfc7bcc89d84e574f6e045a - languageName: node - linkType: hard - -"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": - version: 2.0.4 - resolution: "@types/istanbul-lib-coverage@npm:2.0.4" - checksum: a25d7589ee65c94d31464c16b72a9dc81dfa0bea9d3e105ae03882d616e2a0712a9c101a599ec482d297c3591e16336962878cb3eb1a0a62d5b76d277a890ce7 - languageName: node - linkType: hard - -"@types/istanbul-lib-report@npm:*": - version: 3.0.0 - resolution: "@types/istanbul-lib-report@npm:3.0.0" - dependencies: - "@types/istanbul-lib-coverage": "*" - checksum: 656398b62dc288e1b5226f8880af98087233cdb90100655c989a09f3052b5775bf98ba58a16c5ae642fb66c61aba402e07a9f2bff1d1569e3b306026c59f3f36 - languageName: node - linkType: hard - -"@types/istanbul-reports@npm:^3.0.0": - version: 3.0.1 - resolution: "@types/istanbul-reports@npm:3.0.1" - dependencies: - "@types/istanbul-lib-report": "*" - checksum: f1ad54bc68f37f60b30c7915886b92f86b847033e597f9b34f2415acdbe5ed742fa559a0a40050d74cdba3b6a63c342cac1f3a64dba5b68b66a6941f4abd7903 - languageName: node - linkType: hard - -"@types/jest@npm:^27.4.1": - version: 27.4.1 - resolution: "@types/jest@npm:27.4.1" - dependencies: - jest-matcher-utils: ^27.0.0 - pretty-format: ^27.0.0 - checksum: 5184f3eef4832d01ee8f59bed15eec45ccc8e29c724a5e6ce37bf74396b37bdf04f557000f45ba4fc38ae6075cf9cfcce3d7a75abc981023c61ceb27230a93e4 - languageName: node - linkType: hard - -"@types/json-schema@npm:^7.0.9": - version: 7.0.9 - resolution: "@types/json-schema@npm:7.0.9" - checksum: 259d0e25f11a21ba5c708f7ea47196bd396e379fddb79c76f9f4f62c945879dc21657904914313ec2754e443c5018ea8372362f323f30e0792897fdb2098a705 - languageName: node - linkType: hard - -"@types/json5@npm:^0.0.29": - version: 0.0.29 - resolution: "@types/json5@npm:0.0.29" - checksum: e60b153664572116dfea673c5bda7778dbff150498f44f998e34b5886d8afc47f16799280e4b6e241c0472aef1bc36add771c569c68fc5125fc2ae519a3eb9ac - languageName: node - linkType: hard - -"@types/lodash@npm:^4.14.191": - version: 4.14.191 - resolution: "@types/lodash@npm:4.14.191" - checksum: ba0d5434e10690869f32d5ea49095250157cae502f10d57de0a723fd72229ce6c6a4979576f0f13e0aa9fbe3ce2457bfb9fa7d4ec3d6daba56730a51906d1491 - languageName: node - linkType: hard - -"@types/ms@npm:*": - version: 0.7.31 - resolution: "@types/ms@npm:0.7.31" - checksum: daadd354aedde024cce6f5aa873fefe7b71b22cd0e28632a69e8b677aeb48ae8caa1c60e5919bb781df040d116b01cb4316335167a3fc0ef6a63fa3614c0f6da - languageName: node - linkType: hard - -"@types/node@npm:*": - version: 17.0.14 - resolution: "@types/node@npm:17.0.14" - checksum: cc059ce29686bad5890685f45741826a1a7d1d27382464f6d5fa00b72ba239f6f5b8245a7fa5a56c23ce928030dc76b165a4ab0b86dc078f05b44597d8fe1a46 - languageName: node - linkType: hard - -"@types/node@npm:^18.11.15": - version: 18.11.15 - resolution: "@types/node@npm:18.11.15" - checksum: cae8692a5cee0316f93ee0342237eb921f70c51afb37c661c711a925a4642654ae7e404c5a80899d481c0cfaff3a6891ef04bacd330a2e72734192bfc91dc2d8 - languageName: node - linkType: hard - -"@types/prettier@npm:^2.1.5": - version: 2.4.3 - resolution: "@types/prettier@npm:2.4.3" - checksum: b240434daabac54700c862b0bb52a83fec396e0e9c847447119ba41fd8404d79aadfa174e6306fb094b29efadac586344b7606c3a71c286b71755ab2579d54df - languageName: node - linkType: hard - -"@types/stack-utils@npm:^2.0.0": - version: 2.0.1 - resolution: "@types/stack-utils@npm:2.0.1" - checksum: 205fdbe3326b7046d7eaf5e494d8084f2659086a266f3f9cf00bccc549c8e36e407f88168ad4383c8b07099957ad669f75f2532ed4bc70be2b037330f7bae019 - languageName: node - linkType: hard - -"@types/superagent@npm:*": - version: 4.1.15 - resolution: "@types/superagent@npm:4.1.15" - dependencies: - "@types/cookiejar": "*" - "@types/node": "*" - checksum: 347cd74ef0a29e6b9c6d32253c3fb0dd39a31618b50752f84d36b6a9246237bb6b68c9b436c1f94adabc2df89d9f1939e4782f4c850f98b9c2fe431ad4e565a4 - languageName: node - linkType: hard - -"@types/supertest@npm:^2.0.12": - version: 2.0.12 - resolution: "@types/supertest@npm:2.0.12" - dependencies: - "@types/superagent": "*" - checksum: f0e2b44f86bec2f708d6a3d0cb209055b487922040773049b0f8c6b557af52d4b5fa904e17dfaa4ce6e610172206bbec7b62420d158fa57b6ffc2de37b1730d3 - languageName: node - linkType: hard - -"@types/validator@npm:^13.7.10": - version: 13.7.10 - resolution: "@types/validator@npm:13.7.10" - checksum: 7b142c08019f484d62c9f3074231f640c24311558f157dd253a60810dd0cb29e41ec64ca210a192b54f6de51f4fe016bfeb2c30f90fa49c9337ed54a9d8e02aa - languageName: node - linkType: hard - -"@types/webidl-conversions@npm:*": - version: 6.1.1 - resolution: "@types/webidl-conversions@npm:6.1.1" - checksum: bd0faad4dfec232010d96a42fbd7b5ac4df557899050a6676a75d30ced8553f19e5a3c747fd2b4317f2810d4cf5d2d6dd47ad22ecfb9e6b21119aba678b8897f - languageName: node - linkType: hard - -"@types/whatwg-url@npm:^8.2.1": - version: 8.2.1 - resolution: "@types/whatwg-url@npm:8.2.1" - dependencies: - "@types/node": "*" - "@types/webidl-conversions": "*" - checksum: 975987a9ca14a8d5a883523acb4fa0df7760cd8ca8dee56cd57753821e56060bfbead94df84f4504fe0b4270776d81cbb40fcd1f8643dab86da3a9abe926fb5c - languageName: node - linkType: hard - -"@types/yargs-parser@npm:*": - version: 20.2.1 - resolution: "@types/yargs-parser@npm:20.2.1" - checksum: 1d039e64494a7a61ddd278349a3dc60b19f99ff0517425696e796f794e4252452b9d62178e69755ad03f439f9dc0c8c3d7b3a1201b3a24e134bac1a09fa11eaa - languageName: node - linkType: hard - -"@types/yargs@npm:^16.0.0": - version: 16.0.4 - resolution: "@types/yargs@npm:16.0.4" - dependencies: - "@types/yargs-parser": "*" - checksum: caa21d2c957592fe2184a8368c8cbe5a82a6c2e2f2893722e489f842dc5963293d2f3120bc06fe3933d60a3a0d1e2eb269649fd6b1947fe1820f8841ba611dd9 - languageName: node - linkType: hard - -"@typescript-eslint/eslint-plugin@npm:^5.21.0": - version: 5.21.0 - resolution: "@typescript-eslint/eslint-plugin@npm:5.21.0" - dependencies: - "@typescript-eslint/scope-manager": 5.21.0 - "@typescript-eslint/type-utils": 5.21.0 - "@typescript-eslint/utils": 5.21.0 - debug: ^4.3.2 - functional-red-black-tree: ^1.0.1 - ignore: ^5.1.8 - regexpp: ^3.2.0 - semver: ^7.3.5 - tsutils: ^3.21.0 - peerDependencies: - "@typescript-eslint/parser": ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 52068319798775f320564e98b1361bbe7f8a80ece3ded35145b2cefc5530047a12c6482727eb3c4d845dcd4e4a8d8bf5898125775f99c1d197d45c47a7732813 - languageName: node - linkType: hard - -"@typescript-eslint/parser@npm:^5.21.0": - version: 5.21.0 - resolution: "@typescript-eslint/parser@npm:5.21.0" - dependencies: - "@typescript-eslint/scope-manager": 5.21.0 - "@typescript-eslint/types": 5.21.0 - "@typescript-eslint/typescript-estree": 5.21.0 - debug: ^4.3.2 - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: c0a4f03dccfba699c95788bef35312ec2ab7fa0dd7164916bce7762293b00f12f454d44dea2f1553d516d87a5fcc262ea3c5b7efa958cbfda7e4b9b73d67b54f - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:5.21.0": - version: 5.21.0 - resolution: "@typescript-eslint/scope-manager@npm:5.21.0" - dependencies: - "@typescript-eslint/types": 5.21.0 - "@typescript-eslint/visitor-keys": 5.21.0 - checksum: 2bcb5947d7882f08fb8f40eea154c15152957105a3dc80bf8481212a66d35a8d2239437e095a9a7526c6c0043e9bd6bececf4f87d40da85abb2d2b69f774d805 - languageName: node - linkType: hard - -"@typescript-eslint/type-utils@npm:5.21.0": - version: 5.21.0 - resolution: "@typescript-eslint/type-utils@npm:5.21.0" - dependencies: - "@typescript-eslint/utils": 5.21.0 - debug: ^4.3.2 - tsutils: ^3.21.0 - peerDependencies: - eslint: "*" - peerDependenciesMeta: - typescript: - optional: true - checksum: 09a9dbaa26c0c56aa36e0d6e119007dcbe2cc326b844892ce9389409d5a1d43951f67e0ca03fb28d4d96a09ab498f125dd3bc09f82e655c2ca7023566ad2cf5f - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:5.21.0": - version: 5.21.0 - resolution: "@typescript-eslint/types@npm:5.21.0" - checksum: 1581bf79f8c9236844ca8891e26c84503b654359fbfee80d76f9f57fb90c24210687cd30f61592e7d44cacf5417c83aaa5ae8559a4a8b6ce6b6c4a163b8b86c2 - languageName: node - linkType: hard - -"@typescript-eslint/typescript-estree@npm:5.21.0": - version: 5.21.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.21.0" - dependencies: - "@typescript-eslint/types": 5.21.0 - "@typescript-eslint/visitor-keys": 5.21.0 - debug: ^4.3.2 - globby: ^11.0.4 - is-glob: ^4.0.3 - semver: ^7.3.5 - tsutils: ^3.21.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 4f78d61be2f35775d0f2d7fc4e3bb0bfc6b84e608e96a297c948f84a7254c1b9f0062f61a1dce67a8d4eb67476a9b4a9ebd8b6412e97db76f675c03363a5a0ad - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:5.21.0": - version: 5.21.0 - resolution: "@typescript-eslint/utils@npm:5.21.0" - dependencies: - "@types/json-schema": ^7.0.9 - "@typescript-eslint/scope-manager": 5.21.0 - "@typescript-eslint/types": 5.21.0 - "@typescript-eslint/typescript-estree": 5.21.0 - eslint-scope: ^5.1.1 - eslint-utils: ^3.0.0 - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: ed339a4ccb9eeb2a1132c41999d6584c15c4b7e2f0132bce613f502faa1dbbad7e206b642360392a6e2b24e294df90910141c7da0959901efcd600aedc4c4253 - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:5.21.0": - version: 5.21.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.21.0" - dependencies: - "@typescript-eslint/types": 5.21.0 - eslint-visitor-keys: ^3.0.0 - checksum: 328b18faa61872160f3e5faacb5b68022bdabd04b5414f115133245a4a1ecfb5762c67fd645ab3253005480bd25a38598f57fdc2ff2b01d830ac68b37d3d06a5 - languageName: node - linkType: hard - -"abab@npm:^2.0.3, abab@npm:^2.0.5": - version: 2.0.5 - resolution: "abab@npm:2.0.5" - checksum: 0ec951b46d5418c2c2f923021ec193eaebdb4e802ffd5506286781b454be722a13a8430f98085cd3e204918401d9130ec6cc8f5ae19be315b3a0e857d83196e1 - languageName: node - linkType: hard - -"abbrev@npm:1": - version: 1.1.1 - resolution: "abbrev@npm:1.1.1" - checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 - languageName: node - linkType: hard - -"accepts@npm:~1.3.8": - version: 1.3.8 - resolution: "accepts@npm:1.3.8" - dependencies: - mime-types: ~2.1.34 - negotiator: 0.6.3 - checksum: 50c43d32e7b50285ebe84b613ee4a3aa426715a7d131b65b786e2ead0fd76b6b60091b9916d3478a75f11f162628a2139991b6c03ab3f1d9ab7c86075dc8eab4 - languageName: node - linkType: hard - -"acorn-globals@npm:^6.0.0": - version: 6.0.0 - resolution: "acorn-globals@npm:6.0.0" - dependencies: - acorn: ^7.1.1 - acorn-walk: ^7.1.1 - checksum: 72d95e5b5e585f9acd019b993ab8bbba68bb3cbc9d9b5c1ebb3c2f1fe5981f11deababfb4949f48e6262f9c57878837f5958c0cca396f81023814680ca878042 - languageName: node - linkType: hard - -"acorn-jsx@npm:^5.3.1": - version: 5.3.2 - resolution: "acorn-jsx@npm:5.3.2" - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: c3d3b2a89c9a056b205b69530a37b972b404ee46ec8e5b341666f9513d3163e2a4f214a71f4dfc7370f5a9c07472d2fd1c11c91c3f03d093e37637d95da98950 - languageName: node - linkType: hard - -"acorn-walk@npm:^7.1.1": - version: 7.2.0 - resolution: "acorn-walk@npm:7.2.0" - checksum: 9252158a79b9d92f1bc0dd6acc0fcfb87a67339e84bcc301bb33d6078936d27e35d606b4d35626d2962cd43c256d6f27717e70cbe15c04fff999ab0b2260b21f - languageName: node - linkType: hard - -"acorn-walk@npm:^8.1.1": - version: 8.2.0 - resolution: "acorn-walk@npm:8.2.0" - checksum: 1715e76c01dd7b2d4ca472f9c58968516a4899378a63ad5b6c2d668bba8da21a71976c14ec5f5b75f887b6317c4ae0b897ab141c831d741dc76024d8745f1ad1 - languageName: node - linkType: hard - -"acorn@npm:^7.1.1": - version: 7.4.1 - resolution: "acorn@npm:7.4.1" - bin: - acorn: bin/acorn - checksum: 1860f23c2107c910c6177b7b7be71be350db9e1080d814493fae143ae37605189504152d1ba8743ba3178d0b37269ce1ffc42b101547fdc1827078f82671e407 - languageName: node - linkType: hard - -"acorn@npm:^8.2.4, acorn@npm:^8.4.1": - version: 8.7.0 - resolution: "acorn@npm:8.7.0" - bin: - acorn: bin/acorn - checksum: e0f79409d68923fbf1aa6d4166f3eedc47955320d25c89a20cc822e6ba7c48c5963d5bc657bc242d68f7a4ac9faf96eef033e8f73656da6c640d4219935fdfd0 - languageName: node - linkType: hard - -"acorn@npm:^8.7.0": - version: 8.7.1 - resolution: "acorn@npm:8.7.1" - bin: - acorn: bin/acorn - checksum: aca0aabf98826717920ac2583fdcad0a6fbe4e583fdb6e843af2594e907455aeafe30b1e14f1757cd83ce1776773cf8296ffc3a4acf13f0bd3dfebcf1db6ae80 - languageName: node - linkType: hard - -"agent-base@npm:6, agent-base@npm:^6.0.2": - version: 6.0.2 - resolution: "agent-base@npm:6.0.2" - dependencies: - debug: 4 - checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d - languageName: node - linkType: hard - -"agentkeepalive@npm:^4.2.1": - version: 4.2.1 - resolution: "agentkeepalive@npm:4.2.1" - dependencies: - debug: ^4.1.0 - depd: ^1.1.2 - humanize-ms: ^1.2.1 - checksum: 39cb49ed8cf217fd6da058a92828a0a84e0b74c35550f82ee0a10e1ee403c4b78ade7948be2279b188b7a7303f5d396ea2738b134731e464bf28de00a4f72a18 - languageName: node - linkType: hard - -"aggregate-error@npm:^3.0.0": - version: 3.1.0 - resolution: "aggregate-error@npm:3.1.0" - dependencies: - clean-stack: ^2.0.0 - indent-string: ^4.0.0 - checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 - languageName: node - linkType: hard - -"ajv@npm:^6.10.0, ajv@npm:^6.12.4": - version: 6.12.6 - resolution: "ajv@npm:6.12.6" - dependencies: - fast-deep-equal: ^3.1.1 - fast-json-stable-stringify: ^2.0.0 - json-schema-traverse: ^0.4.1 - uri-js: ^4.2.2 - checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4 - languageName: node - linkType: hard - -"ansi-escapes@npm:^4.2.1": - version: 4.3.2 - resolution: "ansi-escapes@npm:4.3.2" - dependencies: - type-fest: ^0.21.3 - checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815 - languageName: node - linkType: hard - -"ansi-regex@npm:^5.0.1": - version: 5.0.1 - resolution: "ansi-regex@npm:5.0.1" - checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b - languageName: node - linkType: hard - -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: ^1.9.0 - checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 - languageName: node - linkType: hard - -"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": - version: 4.3.0 - resolution: "ansi-styles@npm:4.3.0" - dependencies: - color-convert: ^2.0.1 - checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 - languageName: node - linkType: hard - -"ansi-styles@npm:^5.0.0": - version: 5.2.0 - resolution: "ansi-styles@npm:5.2.0" - checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469 - languageName: node - linkType: hard - -"anymatch@npm:^3.0.3": - version: 3.1.2 - resolution: "anymatch@npm:3.1.2" - dependencies: - normalize-path: ^3.0.0 - picomatch: ^2.0.4 - checksum: 985163db2292fac9e5a1e072bf99f1b5baccf196e4de25a0b0b81865ebddeb3b3eb4480734ef0a2ac8c002845396b91aa89121f5b84f93981a4658164a9ec6e9 - languageName: node - linkType: hard - -"append-field@npm:^1.0.0": - version: 1.0.0 - resolution: "append-field@npm:1.0.0" - checksum: 482ba08acc0ecef00fe7da6bf2f8e48359a9905ee1af525f3120c9260c02e91eedf0579b59d898e8d8455b6c199e340bc0a2fd4b9e02adaa29a8a86c722b37f9 - languageName: node - linkType: hard - -"aproba@npm:^1.0.3 || ^2.0.0": - version: 2.0.0 - resolution: "aproba@npm:2.0.0" - checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 - languageName: node - linkType: hard - -"are-we-there-yet@npm:^3.0.0": - version: 3.0.0 - resolution: "are-we-there-yet@npm:3.0.0" - dependencies: - delegates: ^1.0.0 - readable-stream: ^3.6.0 - checksum: 348edfdd931b0b50868b55402c01c3f64df1d4c229ab6f063539a5025fd6c5f5bb8a0cab409bbed8d75d34762d22aa91b7c20b4204eb8177063158d9ba792981 - languageName: node - linkType: hard - -"arg@npm:^4.1.0": - version: 4.1.3 - resolution: "arg@npm:4.1.3" - checksum: 544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43 - languageName: node - linkType: hard - -"argparse@npm:^1.0.7": - version: 1.0.10 - resolution: "argparse@npm:1.0.10" - dependencies: - sprintf-js: ~1.0.2 - checksum: 7ca6e45583a28de7258e39e13d81e925cfa25d7d4aacbf806a382d3c02fcb13403a07fb8aeef949f10a7cfe4a62da0e2e807b348a5980554cc28ee573ef95945 - languageName: node - linkType: hard - -"argparse@npm:^2.0.1": - version: 2.0.1 - resolution: "argparse@npm:2.0.1" - checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced - languageName: node - linkType: hard - -"array-flatten@npm:1.1.1": - version: 1.1.1 - resolution: "array-flatten@npm:1.1.1" - checksum: a9925bf3512d9dce202112965de90c222cd59a4fbfce68a0951d25d965cf44642931f40aac72309c41f12df19afa010ecadceb07cfff9ccc1621e99d89ab5f3b - languageName: node - linkType: hard - -"array-includes@npm:^3.1.4": - version: 3.1.4 - resolution: "array-includes@npm:3.1.4" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.1 - get-intrinsic: ^1.1.1 - is-string: ^1.0.7 - checksum: 69967c38c52698f84b50a7aed5554aadc89c6ac6399b6d92ad061a5952f8423b4bba054c51d40963f791dfa294d7247cdd7988b6b1f2c5861477031c6386e1c0 - languageName: node - linkType: hard - -"array-union@npm:^2.1.0": - version: 2.1.0 - resolution: "array-union@npm:2.1.0" - checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d - languageName: node - linkType: hard - -"array.prototype.flat@npm:^1.2.5": - version: 1.2.5 - resolution: "array.prototype.flat@npm:1.2.5" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.0 - checksum: 9cc6414b111abfc7717e39546e4887b1e5ec74df8f1618d83425deaa95752bf05d475d1d241253b4d88d4a01f8e1bc84845ad5b7cc2047f8db2f614512acd40e - languageName: node - linkType: hard - -"asap@npm:^2.0.0": - version: 2.0.6 - resolution: "asap@npm:2.0.6" - checksum: b296c92c4b969e973260e47523207cd5769abd27c245a68c26dc7a0fe8053c55bb04360237cb51cab1df52be939da77150ace99ad331fb7fb13b3423ed73ff3d - languageName: node - linkType: hard - -"async-hook-jl@npm:^1.7.6": - version: 1.7.6 - resolution: "async-hook-jl@npm:1.7.6" - dependencies: - stack-chain: ^1.3.7 - checksum: f84421c83ad5bc4e54a3a6ad7be4fb911840a17c01e5ee3f8e4e9cd077a42c7bc206dbc6b36d52eaca5fa37f16a15f83d63135976cf3e17d5bdc2824f6002705 - languageName: node - linkType: hard - -"asynckit@npm:^0.4.0": - version: 0.4.0 - resolution: "asynckit@npm:0.4.0" - checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be - languageName: node - linkType: hard - -"babel-jest@npm:^27.5.1": - version: 27.5.1 - resolution: "babel-jest@npm:27.5.1" - dependencies: - "@jest/transform": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/babel__core": ^7.1.14 - babel-plugin-istanbul: ^6.1.1 - babel-preset-jest: ^27.5.1 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - slash: ^3.0.0 - peerDependencies: - "@babel/core": ^7.8.0 - checksum: 4e93e6e9fb996cc5f1505e924eb8e8cc7b25c294ba9629762a2715390f48af6a4c14dbb84cd9730013ac0e03267a5a9aa2fb6318c544489cda7f50f4e506def4 - languageName: node - linkType: hard - -"babel-plugin-istanbul@npm:^6.1.1": - version: 6.1.1 - resolution: "babel-plugin-istanbul@npm:6.1.1" - dependencies: - "@babel/helper-plugin-utils": ^7.0.0 - "@istanbuljs/load-nyc-config": ^1.0.0 - "@istanbuljs/schema": ^0.1.2 - istanbul-lib-instrument: ^5.0.4 - test-exclude: ^6.0.0 - checksum: cb4fd95738219f232f0aece1116628cccff16db891713c4ccb501cddbbf9272951a5df81f2f2658dfdf4b3e7b236a9d5cbcf04d5d8c07dd5077297339598061a - languageName: node - linkType: hard - -"babel-plugin-jest-hoist@npm:^27.5.1": - version: 27.5.1 - resolution: "babel-plugin-jest-hoist@npm:27.5.1" - dependencies: - "@babel/template": ^7.3.3 - "@babel/types": ^7.3.3 - "@types/babel__core": ^7.0.0 - "@types/babel__traverse": ^7.0.6 - checksum: 709c17727aa8fd3be755d256fb514bf945a5c2ea6017f037d80280fc44ae5fe7dfeebf63d8412df53796455c2c216119d628d8cc90b099434fd819005943d058 - languageName: node - linkType: hard - -"babel-preset-current-node-syntax@npm:^1.0.0": - version: 1.0.1 - resolution: "babel-preset-current-node-syntax@npm:1.0.1" - dependencies: - "@babel/plugin-syntax-async-generators": ^7.8.4 - "@babel/plugin-syntax-bigint": ^7.8.3 - "@babel/plugin-syntax-class-properties": ^7.8.3 - "@babel/plugin-syntax-import-meta": ^7.8.3 - "@babel/plugin-syntax-json-strings": ^7.8.3 - "@babel/plugin-syntax-logical-assignment-operators": ^7.8.3 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - "@babel/plugin-syntax-numeric-separator": ^7.8.3 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-syntax-top-level-await": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: d118c2742498c5492c095bc8541f4076b253e705b5f1ad9a2e7d302d81a84866f0070346662355c8e25fc02caa28dc2da8d69bcd67794a0d60c4d6fab6913cc8 - languageName: node - linkType: hard - -"babel-preset-jest@npm:^27.5.1": - version: 27.5.1 - resolution: "babel-preset-jest@npm:27.5.1" - dependencies: - babel-plugin-jest-hoist: ^27.5.1 - babel-preset-current-node-syntax: ^1.0.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 251bcea11c18fd9672fec104eadb45b43f117ceeb326fa7345ced778d4c1feab29343cd7a87a1dcfae4997d6c851a8b386d7f7213792da6e23b74f4443a8976d - languageName: node - linkType: hard - -"balanced-match@npm:^1.0.0": - version: 1.0.2 - resolution: "balanced-match@npm:1.0.2" - checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 - languageName: node - linkType: hard - -"base64-js@npm:^1.3.1": - version: 1.5.1 - resolution: "base64-js@npm:1.5.1" - checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 - languageName: node - linkType: hard - -"body-parser@npm:1.20.1": - version: 1.20.1 - resolution: "body-parser@npm:1.20.1" - dependencies: - bytes: 3.1.2 - content-type: ~1.0.4 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.1 - type-is: ~1.6.18 - unpipe: 1.0.0 - checksum: f1050dbac3bede6a78f0b87947a8d548ce43f91ccc718a50dd774f3c81f2d8b04693e52acf62659fad23101827dd318da1fb1363444ff9a8482b886a3e4a5266 - languageName: node - linkType: hard - -"bowser@npm:^2.11.0": - version: 2.11.0 - resolution: "bowser@npm:2.11.0" - checksum: 29c3f01f22e703fa6644fc3b684307442df4240b6e10f6cfe1b61c6ca5721073189ca97cdeedb376081148c8518e33b1d818a57f781d70b0b70e1f31fb48814f - languageName: node - linkType: hard - -"brace-expansion@npm:^1.1.7": - version: 1.1.11 - resolution: "brace-expansion@npm:1.1.11" - dependencies: - balanced-match: ^1.0.0 - concat-map: 0.0.1 - checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 - languageName: node - linkType: hard - -"brace-expansion@npm:^2.0.1": - version: 2.0.1 - resolution: "brace-expansion@npm:2.0.1" - dependencies: - balanced-match: ^1.0.0 - checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 - languageName: node - linkType: hard - -"braces@npm:^3.0.1": - version: 3.0.2 - resolution: "braces@npm:3.0.2" - dependencies: - fill-range: ^7.0.1 - checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 - languageName: node - linkType: hard - -"browser-process-hrtime@npm:^1.0.0": - version: 1.0.0 - resolution: "browser-process-hrtime@npm:1.0.0" - checksum: e30f868cdb770b1201afb714ad1575dd86366b6e861900884665fb627109b3cc757c40067d3bfee1ff2a29c835257ea30725a8018a9afd02ac1c24b408b1e45f - languageName: node - linkType: hard - -"browserslist@npm:^4.17.5": - version: 4.19.1 - resolution: "browserslist@npm:4.19.1" - dependencies: - caniuse-lite: ^1.0.30001286 - electron-to-chromium: ^1.4.17 - escalade: ^3.1.1 - node-releases: ^2.0.1 - picocolors: ^1.0.0 - bin: - browserslist: cli.js - checksum: c0777fd483691638fd6801e16c9d809e1d65f6d2b06db2e806654be51045cbab1452a89841a2c5caea2cbe19d621b4f1d391cffbb24512aa33280039ab345875 - languageName: node - linkType: hard - -"bs-logger@npm:0.x": - version: 0.2.6 - resolution: "bs-logger@npm:0.2.6" - dependencies: - fast-json-stable-stringify: 2.x - checksum: d34bdaf68c64bd099ab97c3ea608c9ae7d3f5faa1178b3f3f345acd94e852e608b2d4f9103fb2e503f5e69780e98293df41691b84be909b41cf5045374d54606 - languageName: node - linkType: hard - -"bser@npm:2.1.1": - version: 2.1.1 - resolution: "bser@npm:2.1.1" - dependencies: - node-int64: ^0.4.0 - checksum: 9ba4dc58ce86300c862bffc3ae91f00b2a03b01ee07f3564beeeaf82aa243b8b03ba53f123b0b842c190d4399b94697970c8e7cf7b1ea44b61aa28c3526a4449 - languageName: node - linkType: hard - -"bson@npm:^4.7.0": - version: 4.7.0 - resolution: "bson@npm:4.7.0" - dependencies: - buffer: ^5.6.0 - checksum: 83e7b64afdad5a505073a7e6206e7b345f59e7888fbcb1948fba72b6101a1baf58b7499314f8e24b650567665f7973eda048aabbb1ddcfbadfba7d6c6b0f5e83 - languageName: node - linkType: hard - -"buffer-from@npm:^1.0.0": - version: 1.1.2 - resolution: "buffer-from@npm:1.1.2" - checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb - languageName: node - linkType: hard - -"buffer@npm:^5.6.0": - version: 5.7.1 - resolution: "buffer@npm:5.7.1" - dependencies: - base64-js: ^1.3.1 - ieee754: ^1.1.13 - checksum: e2cf8429e1c4c7b8cbd30834ac09bd61da46ce35f5c22a78e6c2f04497d6d25541b16881e30a019c6fd3154150650ccee27a308eff3e26229d788bbdeb08ab84 - languageName: node - linkType: hard - -"busboy@npm:^1.0.0": - version: 1.6.0 - resolution: "busboy@npm:1.6.0" - dependencies: - streamsearch: ^1.1.0 - checksum: 32801e2c0164e12106bf236291a00795c3c4e4b709ae02132883fe8478ba2ae23743b11c5735a0aae8afe65ac4b6ca4568b91f0d9fed1fdbc32ede824a73746e - languageName: node - linkType: hard - -"bytes@npm:3.1.2": - version: 3.1.2 - resolution: "bytes@npm:3.1.2" - checksum: e4bcd3948d289c5127591fbedf10c0b639ccbf00243504e4e127374a15c3bc8eed0d28d4aaab08ff6f1cf2abc0cce6ba3085ed32f4f90e82a5683ce0014e1b6e - languageName: node - linkType: hard - -"cacache@npm:^16.0.2": - version: 16.0.6 - resolution: "cacache@npm:16.0.6" - dependencies: - "@npmcli/fs": ^2.1.0 - "@npmcli/move-file": ^2.0.0 - chownr: ^2.0.0 - fs-minipass: ^2.1.0 - glob: ^8.0.1 - infer-owner: ^1.0.4 - lru-cache: ^7.7.1 - minipass: ^3.1.6 - minipass-collect: ^1.0.2 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - mkdirp: ^1.0.4 - p-map: ^4.0.0 - promise-inflight: ^1.0.1 - rimraf: ^3.0.2 - ssri: ^9.0.0 - tar: ^6.1.11 - unique-filename: ^1.1.1 - checksum: c9813d4aa0452ecfdb7f796d931d0b8068fc921a3575fb858c26ab12ed41634a995135dbd56afd64ec4de141bd78c7021ce5aeabce83453c7342d3ed126815df - languageName: node - linkType: hard - -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": - version: 1.0.2 - resolution: "call-bind@npm:1.0.2" - dependencies: - function-bind: ^1.1.1 - get-intrinsic: ^1.0.2 - checksum: f8e31de9d19988a4b80f3e704788c4a2d6b6f3d17cfec4f57dc29ced450c53a49270dc66bf0fbd693329ee948dd33e6c90a329519aef17474a4d961e8d6426b0 - languageName: node - linkType: hard - -"callsites@npm:^3.0.0": - version: 3.1.0 - resolution: "callsites@npm:3.1.0" - checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 - languageName: node - linkType: hard - -"camelcase@npm:^5.3.1": - version: 5.3.1 - resolution: "camelcase@npm:5.3.1" - checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b - languageName: node - linkType: hard - -"camelcase@npm:^6.2.0": - version: 6.3.0 - resolution: "camelcase@npm:6.3.0" - checksum: 8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30001286": - version: 1.0.30001304 - resolution: "caniuse-lite@npm:1.0.30001304" - checksum: 63092ec6c65346f57026d9c7bee0548b77fd606819ca205ee3d99c948e4701b8820c365c00b79d4a4b96f3f0045bc0be767149b8edb74f7223d16cb30630f81e - languageName: node - linkType: hard - -"chalk@npm:^2.0.0": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" - dependencies: - ansi-styles: ^3.2.1 - escape-string-regexp: ^1.0.5 - supports-color: ^5.3.0 - checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 - languageName: node - linkType: hard - -"chalk@npm:^4.0.0, chalk@npm:^4.1.0": - version: 4.1.2 - resolution: "chalk@npm:4.1.2" - dependencies: - ansi-styles: ^4.1.0 - supports-color: ^7.1.0 - checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc - languageName: node - linkType: hard - -"char-regex@npm:^1.0.2": - version: 1.0.2 - resolution: "char-regex@npm:1.0.2" - checksum: b563e4b6039b15213114626621e7a3d12f31008bdce20f9c741d69987f62aeaace7ec30f6018890ad77b2e9b4d95324c9f5acfca58a9441e3b1dcdd1e2525d17 - languageName: node - linkType: hard - -"chownr@npm:^2.0.0": - version: 2.0.0 - resolution: "chownr@npm:2.0.0" - checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f - languageName: node - linkType: hard - -"ci-info@npm:^3.2.0": - version: 3.3.0 - resolution: "ci-info@npm:3.3.0" - checksum: c3d86fe374938ecda5093b1ba39acb535d8309185ba3f23587747c6a057e63f45419b406d880304dbc0e1d72392c9a33e42fe9a1e299209bc0ded5efaa232b66 - languageName: node - linkType: hard - -"cjs-module-lexer@npm:^1.0.0": - version: 1.2.2 - resolution: "cjs-module-lexer@npm:1.2.2" - checksum: 977f3f042bd4f08e368c890d91eecfbc4f91da0bc009a3c557bc4dfbf32022ad1141244ac1178d44de70fc9f3dea7add7cd9a658a34b9fae98a55d8f92331ce5 - languageName: node - linkType: hard - -"class-transformer@npm:0.5.1": - version: 0.5.1 - resolution: "class-transformer@npm:0.5.1" - checksum: f191c8b4cc4239990f5efdd790cabdd852c243ed66248e39f6616a349c910c6eed2d9fd1fbf7ee6ea89f69b4f1d0b493b27347fe0cd0ae26b47c3745a805b6d3 - languageName: node - linkType: hard - -"class-validator@npm:^0.14.0": - version: 0.14.0 - resolution: "class-validator@npm:0.14.0" - dependencies: - "@types/validator": ^13.7.10 - libphonenumber-js: ^1.10.14 - validator: ^13.7.0 - checksum: f62e4a0ad24cee68f4b2bc70d32b96de90cb598f96bde362b4dbf4234151af8eb6ae225458312a38fc49fa3959844cf61c60e731a8205e9a570454cff8de2710 - languageName: node - linkType: hard - -"clean-stack@npm:^2.0.0": - version: 2.2.0 - resolution: "clean-stack@npm:2.2.0" - checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 - languageName: node - linkType: hard - -"cliui@npm:^7.0.2": - version: 7.0.4 - resolution: "cliui@npm:7.0.4" - dependencies: - string-width: ^4.2.0 - strip-ansi: ^6.0.0 - wrap-ansi: ^7.0.0 - checksum: ce2e8f578a4813806788ac399b9e866297740eecd4ad1823c27fd344d78b22c5f8597d548adbcc46f0573e43e21e751f39446c5a5e804a12aace402b7a315d7f - languageName: node - linkType: hard - -"cls-hooked@npm:4.2.2": - version: 4.2.2 - resolution: "cls-hooked@npm:4.2.2" - dependencies: - async-hook-jl: ^1.7.6 - emitter-listener: ^1.0.1 - semver: ^5.4.1 - checksum: 3a8a4e30b03a81ec275eb9c079c49d4497013e7fa36259e86c9b6aff7990e85eebbc97552ed8a035c19403f0b825000df9bada5c1c0ac7cf1b2506c3a903df60 - languageName: node - linkType: hard - -"co@npm:^4.6.0": - version: 4.6.0 - resolution: "co@npm:4.6.0" - checksum: 5210d9223010eb95b29df06a91116f2cf7c8e0748a9013ed853b53f362ea0e822f1e5bb054fb3cefc645239a4cf966af1f6133a3b43f40d591f3b68ed6cf0510 - languageName: node - linkType: hard - -"collect-v8-coverage@npm:^1.0.0": - version: 1.0.1 - resolution: "collect-v8-coverage@npm:1.0.1" - checksum: 4efe0a1fccd517b65478a2364b33dadd0a43fc92a56f59aaece9b6186fe5177b2de471253587de7c91516f07c7268c2f6770b6cbcffc0e0ece353b766ec87e55 - languageName: node - linkType: hard - -"color-convert@npm:^1.9.0": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: 1.1.3 - checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 - languageName: node - linkType: hard - -"color-convert@npm:^2.0.1": - version: 2.0.1 - resolution: "color-convert@npm:2.0.1" - dependencies: - color-name: ~1.1.4 - checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 - languageName: node - linkType: hard - -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d - languageName: node - linkType: hard - -"color-name@npm:~1.1.4": - version: 1.1.4 - resolution: "color-name@npm:1.1.4" - checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 - languageName: node - linkType: hard - -"color-support@npm:^1.1.3": - version: 1.1.3 - resolution: "color-support@npm:1.1.3" - bin: - color-support: bin.js - checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b - languageName: node - linkType: hard - -"combined-stream@npm:^1.0.8": - version: 1.0.8 - resolution: "combined-stream@npm:1.0.8" - dependencies: - delayed-stream: ~1.0.0 - checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c - languageName: node - linkType: hard - -"component-emitter@npm:^1.3.0": - version: 1.3.0 - resolution: "component-emitter@npm:1.3.0" - checksum: b3c46de38ffd35c57d1c02488355be9f218e582aec72d72d1b8bbec95a3ac1b38c96cd6e03ff015577e68f550fbb361a3bfdbd9bb248be9390b7b3745691be6b - languageName: node - linkType: hard - -"concat-map@npm:0.0.1": - version: 0.0.1 - resolution: "concat-map@npm:0.0.1" - checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af - languageName: node - linkType: hard - -"concat-stream@npm:^1.5.2": - version: 1.6.2 - resolution: "concat-stream@npm:1.6.2" - dependencies: - buffer-from: ^1.0.0 - inherits: ^2.0.3 - readable-stream: ^2.2.2 - typedarray: ^0.0.6 - checksum: 1ef77032cb4459dcd5187bd710d6fc962b067b64ec6a505810de3d2b8cc0605638551b42f8ec91edf6fcd26141b32ef19ad749239b58fae3aba99187adc32285 - languageName: node - linkType: hard - -"consola@npm:^2.15.0": - version: 2.15.3 - resolution: "consola@npm:2.15.3" - checksum: 8ef7a09b703ec67ac5c389a372a33b6dc97eda6c9876443a60d76a3076eea0259e7f67a4e54fd5a52f97df73690822d090cf8b7e102b5761348afef7c6d03e28 - languageName: node - linkType: hard - -"console-control-strings@npm:^1.1.0": - version: 1.1.0 - resolution: "console-control-strings@npm:1.1.0" - checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed - languageName: node - linkType: hard - -"content-disposition@npm:0.5.4": - version: 0.5.4 - resolution: "content-disposition@npm:0.5.4" - dependencies: - safe-buffer: 5.2.1 - checksum: afb9d545e296a5171d7574fcad634b2fdf698875f4006a9dd04a3e1333880c5c0c98d47b560d01216fb6505a54a2ba6a843ee3a02ec86d7e911e8315255f56c3 - languageName: node - linkType: hard - -"content-type@npm:~1.0.4": - version: 1.0.4 - resolution: "content-type@npm:1.0.4" - checksum: 3d93585fda985d1554eca5ebd251994327608d2e200978fdbfba21c0c679914d5faf266d17027de44b34a72c7b0745b18584ecccaa7e1fdfb6a68ac7114f12e0 - languageName: node - linkType: hard - -"convert-source-map@npm:^1.4.0, convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": - version: 1.8.0 - resolution: "convert-source-map@npm:1.8.0" - dependencies: - safe-buffer: ~5.1.1 - checksum: 985d974a2d33e1a2543ada51c93e1ba2f73eaed608dc39f229afc78f71dcc4c8b7d7c684aa647e3c6a3a204027444d69e53e169ce94e8d1fa8d7dee80c9c8fed - languageName: node - linkType: hard - -"cookie-signature@npm:1.0.6": - version: 1.0.6 - resolution: "cookie-signature@npm:1.0.6" - checksum: f4e1b0a98a27a0e6e66fd7ea4e4e9d8e038f624058371bf4499cfcd8f3980be9a121486995202ba3fca74fbed93a407d6d54d43a43f96fd28d0bd7a06761591a - languageName: node - linkType: hard - -"cookie@npm:0.5.0": - version: 0.5.0 - resolution: "cookie@npm:0.5.0" - checksum: 1f4bd2ca5765f8c9689a7e8954183f5332139eb72b6ff783d8947032ec1fdf43109852c178e21a953a30c0dd42257828185be01b49d1eb1a67fd054ca588a180 - languageName: node - linkType: hard - -"cookiejar@npm:^2.1.3": - version: 2.1.3 - resolution: "cookiejar@npm:2.1.3" - checksum: 88259983ebc52ceb23cdacfa48762b6a518a57872eff1c7ed01d214fff5cf492e2660d7d5c04700a28f1787a76811df39e8639f8e17670b3cf94ecd86e161f07 - languageName: node - linkType: hard - -"core-util-is@npm:~1.0.0": - version: 1.0.3 - resolution: "core-util-is@npm:1.0.3" - checksum: 9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99 - languageName: node - linkType: hard - -"cors@npm:2.8.5": - version: 2.8.5 - resolution: "cors@npm:2.8.5" - dependencies: - object-assign: ^4 - vary: ^1 - checksum: ced838404ccd184f61ab4fdc5847035b681c90db7ac17e428f3d81d69e2989d2b680cc254da0e2554f5ed4f8a341820a1ce3d1c16b499f6e2f47a1b9b07b5006 - languageName: node - linkType: hard - -"create-require@npm:^1.1.0": - version: 1.1.1 - resolution: "create-require@npm:1.1.1" - checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff - languageName: node - linkType: hard - -"cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" - dependencies: - path-key: ^3.1.0 - shebang-command: ^2.0.0 - which: ^2.0.1 - checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 - languageName: node - linkType: hard - -"cssom@npm:^0.4.4": - version: 0.4.4 - resolution: "cssom@npm:0.4.4" - checksum: e3bc1076e7ee4213d4fef05e7ae03bfa83dc05f32611d8edc341f4ecc3d9647b89c8245474c7dd2cdcdb797a27c462e99da7ad00a34399694559f763478ff53f - languageName: node - linkType: hard - -"cssom@npm:~0.3.6": - version: 0.3.8 - resolution: "cssom@npm:0.3.8" - checksum: 24beb3087c76c0d52dd458be9ee1fbc80ac771478a9baef35dd258cdeb527c68eb43204dd439692bb2b1ae5272fa5f2946d10946edab0d04f1078f85e06bc7f6 - languageName: node - linkType: hard - -"cssstyle@npm:^2.3.0": - version: 2.3.0 - resolution: "cssstyle@npm:2.3.0" - dependencies: - cssom: ~0.3.6 - checksum: 5f05e6fd2e3df0b44695c2f08b9ef38b011862b274e320665176467c0725e44a53e341bc4959a41176e83b66064ab786262e7380fd1cabeae6efee0d255bb4e3 - languageName: node - linkType: hard - -"data-urls@npm:^2.0.0": - version: 2.0.0 - resolution: "data-urls@npm:2.0.0" - dependencies: - abab: ^2.0.3 - whatwg-mimetype: ^2.3.0 - whatwg-url: ^8.0.0 - checksum: 97caf828aac25e25e04ba6869db0f99c75e6859bb5b424ada28d3e7841941ebf08ddff3c1b1bb4585986bd507a5d54c2a716853ea6cb98af877400e637393e71 - languageName: node - linkType: hard - -"debug@npm:2.6.9, debug@npm:^2.6.9": - version: 2.6.9 - resolution: "debug@npm:2.6.9" - dependencies: - ms: 2.0.0 - checksum: d2f51589ca66df60bf36e1fa6e4386b318c3f1e06772280eea5b1ae9fd3d05e9c2b7fd8a7d862457d00853c75b00451aa2d7459b924629ee385287a650f58fe6 - languageName: node - linkType: hard - -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3": - version: 4.3.3 - resolution: "debug@npm:4.3.3" - dependencies: - ms: 2.1.2 - peerDependenciesMeta: - supports-color: - optional: true - checksum: 14472d56fe4a94dbcfaa6dbed2dd3849f1d72ba78104a1a328047bb564643ca49df0224c3a17fa63533fd11dd3d4c8636cd861191232a2c6735af00cc2d4de16 - languageName: node - linkType: hard - -"debug@npm:4.3.4, debug@npm:^4.3.4": - version: 4.3.4 - resolution: "debug@npm:4.3.4" - dependencies: - ms: 2.1.2 - peerDependenciesMeta: - supports-color: - optional: true - checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 - languageName: node - linkType: hard - -"debug@npm:^3.2.7": - version: 3.2.7 - resolution: "debug@npm:3.2.7" - dependencies: - ms: ^2.1.1 - checksum: b3d8c5940799914d30314b7c3304a43305fd0715581a919dacb8b3176d024a782062368405b47491516d2091d6462d4d11f2f4974a405048094f8bfebfa3071c - languageName: node - linkType: hard - -"decimal.js@npm:^10.2.1": - version: 10.3.1 - resolution: "decimal.js@npm:10.3.1" - checksum: 0351ac9f05fe050f23227aa6a4573bee2d58fa7378fcf28d969a8c789525032effb488a90320fd3fe86a66e17b4bc507d811b15eada5b7f0e7ec5d2af4c24a59 - languageName: node - linkType: hard - -"dedent@npm:^0.7.0": - version: 0.7.0 - resolution: "dedent@npm:0.7.0" - checksum: 87de191050d9a40dd70cad01159a0bcf05ecb59750951242070b6abf9569088684880d00ba92a955b4058804f16eeaf91d604f283929b4f614d181cd7ae633d2 - languageName: node - linkType: hard - -"deep-is@npm:^0.1.3, deep-is@npm:~0.1.3": - version: 0.1.4 - resolution: "deep-is@npm:0.1.4" - checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 - languageName: node - linkType: hard - -"deepmerge@npm:^4.2.2": - version: 4.2.2 - resolution: "deepmerge@npm:4.2.2" - checksum: a8c43a1ed8d6d1ed2b5bf569fa4c8eb9f0924034baf75d5d406e47e157a451075c4db353efea7b6bcc56ec48116a8ce72fccf867b6e078e7c561904b5897530b - languageName: node - linkType: hard - -"define-properties@npm:^1.1.3": - version: 1.1.3 - resolution: "define-properties@npm:1.1.3" - dependencies: - object-keys: ^1.0.12 - checksum: da80dba55d0cd76a5a7ab71ef6ea0ebcb7b941f803793e4e0257b384cb772038faa0c31659d244e82c4342edef841c1a1212580006a05a5068ee48223d787317 - languageName: node - linkType: hard - -"delayed-stream@npm:~1.0.0": - version: 1.0.0 - resolution: "delayed-stream@npm:1.0.0" - checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 - languageName: node - linkType: hard - -"delegates@npm:^1.0.0": - version: 1.0.0 - resolution: "delegates@npm:1.0.0" - checksum: a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd - languageName: node - linkType: hard - -"depd@npm:2.0.0": - version: 2.0.0 - resolution: "depd@npm:2.0.0" - checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a - languageName: node - linkType: hard - -"depd@npm:^1.1.2": - version: 1.1.2 - resolution: "depd@npm:1.1.2" - checksum: 6b406620d269619852885ce15965272b829df6f409724415e0002c8632ab6a8c0a08ec1f0bd2add05dc7bd7507606f7e2cc034fa24224ab829580040b835ecd9 - languageName: node - linkType: hard - -"destroy@npm:1.2.0": - version: 1.2.0 - resolution: "destroy@npm:1.2.0" - checksum: 0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38 - languageName: node - linkType: hard - -"detect-newline@npm:^3.0.0": - version: 3.1.0 - resolution: "detect-newline@npm:3.1.0" - checksum: ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7 - languageName: node - linkType: hard - -"dezalgo@npm:^1.0.4": - version: 1.0.4 - resolution: "dezalgo@npm:1.0.4" - dependencies: - asap: ^2.0.0 - wrappy: 1 - checksum: 895389c6aead740d2ab5da4d3466d20fa30f738010a4d3f4dcccc9fc645ca31c9d10b7e1804ae489b1eb02c7986f9f1f34ba132d409b043082a86d9a4e745624 - languageName: node - linkType: hard - -"diff-sequences@npm:^27.5.1": - version: 27.5.1 - resolution: "diff-sequences@npm:27.5.1" - checksum: a00db5554c9da7da225db2d2638d85f8e41124eccbd56cbaefb3b276dcbb1c1c2ad851c32defe2055a54a4806f030656cbf6638105fd6ce97bb87b90b32a33ca - languageName: node - linkType: hard - -"diff@npm:^4.0.1": - version: 4.0.2 - resolution: "diff@npm:4.0.2" - checksum: f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d - languageName: node - linkType: hard - -"dir-glob@npm:^3.0.1": - version: 3.0.1 - resolution: "dir-glob@npm:3.0.1" - dependencies: - path-type: ^4.0.0 - checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 - languageName: node - linkType: hard - -"doctrine@npm:^2.1.0": - version: 2.1.0 - resolution: "doctrine@npm:2.1.0" - dependencies: - esutils: ^2.0.2 - checksum: a45e277f7feaed309fe658ace1ff286c6e2002ac515af0aaf37145b8baa96e49899638c7cd47dccf84c3d32abfc113246625b3ac8f552d1046072adee13b0dc8 - languageName: node - linkType: hard - -"doctrine@npm:^3.0.0": - version: 3.0.0 - resolution: "doctrine@npm:3.0.0" - dependencies: - esutils: ^2.0.2 - checksum: fd7673ca77fe26cd5cba38d816bc72d641f500f1f9b25b83e8ce28827fe2da7ad583a8da26ab6af85f834138cf8dae9f69b0cd6ab925f52ddab1754db44d99ce - languageName: node - linkType: hard - -"dom-walk@npm:^0.1.0": - version: 0.1.2 - resolution: "dom-walk@npm:0.1.2" - checksum: 19eb0ce9c6de39d5e231530685248545d9cd2bd97b2cb3486e0bfc0f2a393a9addddfd5557463a932b52fdfcf68ad2a619020cd2c74a5fe46fbecaa8e80872f3 - languageName: node - linkType: hard - -"domexception@npm:^2.0.1": - version: 2.0.1 - resolution: "domexception@npm:2.0.1" - dependencies: - webidl-conversions: ^5.0.0 - checksum: d638e9cb05c52999f1b2eb87c374b03311ea5b1d69c2f875bc92da73e17db60c12142b45c950228642ff7f845c536b65305483350d080df59003a653da80b691 - languageName: node - linkType: hard - -"ee-first@npm:1.1.1": - version: 1.1.1 - resolution: "ee-first@npm:1.1.1" - checksum: 1b4cac778d64ce3b582a7e26b218afe07e207a0f9bfe13cc7395a6d307849cfe361e65033c3251e00c27dd060cab43014c2d6b2647676135e18b77d2d05b3f4f - languageName: node - linkType: hard - -"electron-to-chromium@npm:^1.4.17": - version: 1.4.59 - resolution: "electron-to-chromium@npm:1.4.59" - checksum: f058ae0197f2eda65698956467935a3b79470a9264e95a4a549cdfce85c8ad9fc07152ec409e9c51c1ad699558ff50c1b3785966272df0e4e0edd1e51d758768 - languageName: node - linkType: hard - -"emitter-listener@npm:^1.0.1": - version: 1.1.2 - resolution: "emitter-listener@npm:1.1.2" - dependencies: - shimmer: ^1.2.0 - checksum: 05166bad42a27e51a765ebac3b7d26ac111564fc2d36443cd819f95ef88ea1b9ba6f2895becbcea36f8009890a2a8cb7c36eb9e776d4978e370bd33cb0a181e8 - languageName: node - linkType: hard - -"emittery@npm:^0.8.1": - version: 0.8.1 - resolution: "emittery@npm:0.8.1" - checksum: 2457e8c7b0688bb006126f2c025b2655abe682f66b184954122a8a065b5277f9813d49d627896a10b076b81c513ec5f491fd9c14fbd42c04b95ca3c9f3c365ee - languageName: node - linkType: hard - -"emoji-regex@npm:^8.0.0": - version: 8.0.0 - resolution: "emoji-regex@npm:8.0.0" - checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 - languageName: node - linkType: hard - -"encodeurl@npm:~1.0.2": - version: 1.0.2 - resolution: "encodeurl@npm:1.0.2" - checksum: e50e3d508cdd9c4565ba72d2012e65038e5d71bdc9198cb125beb6237b5b1ade6c0d343998da9e170fb2eae52c1bed37d4d6d98a46ea423a0cddbed5ac3f780c - languageName: node - linkType: hard - -"encoding@npm:^0.1.13": - version: 0.1.13 - resolution: "encoding@npm:0.1.13" - dependencies: - iconv-lite: ^0.6.2 - checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f - languageName: node - linkType: hard - -"env-paths@npm:^2.2.0": - version: 2.2.1 - resolution: "env-paths@npm:2.2.1" - checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e - languageName: node - linkType: hard - -"err-code@npm:^2.0.2": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 - languageName: node - linkType: hard - -"error-ex@npm:^1.3.1": - version: 1.3.2 - resolution: "error-ex@npm:1.3.2" - dependencies: - is-arrayish: ^0.2.1 - checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 - languageName: node - linkType: hard - -"es-abstract@npm:^1.19.0, es-abstract@npm:^1.19.1": - version: 1.19.1 - resolution: "es-abstract@npm:1.19.1" - dependencies: - call-bind: ^1.0.2 - es-to-primitive: ^1.2.1 - function-bind: ^1.1.1 - get-intrinsic: ^1.1.1 - get-symbol-description: ^1.0.0 - has: ^1.0.3 - has-symbols: ^1.0.2 - internal-slot: ^1.0.3 - is-callable: ^1.2.4 - is-negative-zero: ^2.0.1 - is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.1 - is-string: ^1.0.7 - is-weakref: ^1.0.1 - object-inspect: ^1.11.0 - object-keys: ^1.1.1 - object.assign: ^4.1.2 - string.prototype.trimend: ^1.0.4 - string.prototype.trimstart: ^1.0.4 - unbox-primitive: ^1.0.1 - checksum: b6be8410672c5364db3fb01eb786e30c7b4bb32b4af63d381c08840f4382c4a168e7855cd338bf59d4f1a1a1138f4d748d1fd40ec65aaa071876f9e9fbfed949 - languageName: node - linkType: hard - -"es-to-primitive@npm:^1.2.1": - version: 1.2.1 - resolution: "es-to-primitive@npm:1.2.1" - dependencies: - is-callable: ^1.1.4 - is-date-object: ^1.0.1 - is-symbol: ^1.0.2 - checksum: 4ead6671a2c1402619bdd77f3503991232ca15e17e46222b0a41a5d81aebc8740a77822f5b3c965008e631153e9ef0580540007744521e72de8e33599fca2eed - languageName: node - linkType: hard - -"escalade@npm:^3.1.1": - version: 3.1.1 - resolution: "escalade@npm:3.1.1" - checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 - languageName: node - linkType: hard - -"escape-html@npm:~1.0.3": - version: 1.0.3 - resolution: "escape-html@npm:1.0.3" - checksum: 6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^1.0.5": - version: 1.0.5 - resolution: "escape-string-regexp@npm:1.0.5" - checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^2.0.0": - version: 2.0.0 - resolution: "escape-string-regexp@npm:2.0.0" - checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^4.0.0": - version: 4.0.0 - resolution: "escape-string-regexp@npm:4.0.0" - checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 - languageName: node - linkType: hard - -"escodegen@npm:^2.0.0": - version: 2.0.0 - resolution: "escodegen@npm:2.0.0" - dependencies: - esprima: ^4.0.1 - estraverse: ^5.2.0 - esutils: ^2.0.2 - optionator: ^0.8.1 - source-map: ~0.6.1 - dependenciesMeta: - source-map: - optional: true - bin: - escodegen: bin/escodegen.js - esgenerate: bin/esgenerate.js - checksum: 5aa6b2966fafe0545e4e77936300cc94ad57cfe4dc4ebff9950492eaba83eef634503f12d7e3cbd644ecc1bab388ad0e92b06fd32222c9281a75d1cf02ec6cef - languageName: node - linkType: hard - -"eslint-config-prettier@npm:^8.5.0": - version: 8.5.0 - resolution: "eslint-config-prettier@npm:8.5.0" - peerDependencies: - eslint: ">=7.0.0" - bin: - eslint-config-prettier: bin/cli.js - checksum: 0d0f5c32e7a0ad91249467ce71ca92394ccd343178277d318baf32063b79ea90216f4c81d1065d60f96366fdc60f151d4d68ae7811a58bd37228b84c2083f893 - languageName: node - linkType: hard - -"eslint-import-resolver-node@npm:^0.3.6": - version: 0.3.6 - resolution: "eslint-import-resolver-node@npm:0.3.6" - dependencies: - debug: ^3.2.7 - resolve: ^1.20.0 - checksum: 6266733af1e112970e855a5bcc2d2058fb5ae16ad2a6d400705a86b29552b36131ffc5581b744c23d550de844206fb55e9193691619ee4dbf225c4bde526b1c8 - languageName: node - linkType: hard - -"eslint-module-utils@npm:^2.7.3": - version: 2.7.3 - resolution: "eslint-module-utils@npm:2.7.3" - dependencies: - debug: ^3.2.7 - find-up: ^2.1.0 - checksum: 77048263f309167a1e6a1e1b896bfb5ddd1d3859b2e2abbd9c32c432aee13d610d46e6820b1ca81b37fba437cf423a404bc6649be64ace9148a3062d1886a678 - languageName: node - linkType: hard - -"eslint-plugin-import@npm:^2.26.0": - version: 2.26.0 - resolution: "eslint-plugin-import@npm:2.26.0" - dependencies: - array-includes: ^3.1.4 - array.prototype.flat: ^1.2.5 - debug: ^2.6.9 - doctrine: ^2.1.0 - eslint-import-resolver-node: ^0.3.6 - eslint-module-utils: ^2.7.3 - has: ^1.0.3 - is-core-module: ^2.8.1 - is-glob: ^4.0.3 - minimatch: ^3.1.2 - object.values: ^1.1.5 - resolve: ^1.22.0 - tsconfig-paths: ^3.14.1 - peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: 0bf77ad80339554481eafa2b1967449e1f816b94c7a6f9614ce33fb4083c4e6c050f10d241dd50b4975d47922880a34de1e42ea9d8e6fd663ebb768baa67e655 - languageName: node - linkType: hard - -"eslint-scope@npm:^5.1.1": - version: 5.1.1 - resolution: "eslint-scope@npm:5.1.1" - dependencies: - esrecurse: ^4.3.0 - estraverse: ^4.1.1 - checksum: 47e4b6a3f0cc29c7feedee6c67b225a2da7e155802c6ea13bbef4ac6b9e10c66cd2dcb987867ef176292bf4e64eccc680a49e35e9e9c669f4a02bac17e86abdb - languageName: node - linkType: hard - -"eslint-scope@npm:^7.1.1": - version: 7.1.1 - resolution: "eslint-scope@npm:7.1.1" - dependencies: - esrecurse: ^4.3.0 - estraverse: ^5.2.0 - checksum: 9f6e974ab2db641ca8ab13508c405b7b859e72afe9f254e8131ff154d2f40c99ad4545ce326fd9fde3212ff29707102562a4834f1c48617b35d98c71a97fbf3e - languageName: node - linkType: hard - -"eslint-utils@npm:^3.0.0": - version: 3.0.0 - resolution: "eslint-utils@npm:3.0.0" - dependencies: - eslint-visitor-keys: ^2.0.0 - peerDependencies: - eslint: ">=5" - checksum: 0668fe02f5adab2e5a367eee5089f4c39033af20499df88fe4e6aba2015c20720404d8c3d6349b6f716b08fdf91b9da4e5d5481f265049278099c4c836ccb619 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^2.0.0": - version: 2.1.0 - resolution: "eslint-visitor-keys@npm:2.1.0" - checksum: e3081d7dd2611a35f0388bbdc2f5da60b3a3c5b8b6e928daffff7391146b434d691577aa95064c8b7faad0b8a680266bcda0a42439c18c717b80e6718d7e267d - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^3.0.0": - version: 3.2.0 - resolution: "eslint-visitor-keys@npm:3.2.0" - checksum: fdadbb26f9e6417d3db7ad4f00bb0d573b6031c32fa72e8cdae32d038223faaeddff2ee443c90cb489bf774e75bff765c00912b8f9106d65e4f202ccd78c1b18 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^3.3.0": - version: 3.3.0 - resolution: "eslint-visitor-keys@npm:3.3.0" - checksum: d59e68a7c5a6d0146526b0eec16ce87fbf97fe46b8281e0d41384224375c4e52f5ffb9e16d48f4ea50785cde93f766b0c898e31ab89978d88b0e1720fbfb7808 - languageName: node - linkType: hard - -"eslint@npm:^8.14.0": - version: 8.14.0 - resolution: "eslint@npm:8.14.0" - dependencies: - "@eslint/eslintrc": ^1.2.2 - "@humanwhocodes/config-array": ^0.9.2 - ajv: ^6.10.0 - chalk: ^4.0.0 - cross-spawn: ^7.0.2 - debug: ^4.3.2 - doctrine: ^3.0.0 - escape-string-regexp: ^4.0.0 - eslint-scope: ^7.1.1 - eslint-utils: ^3.0.0 - eslint-visitor-keys: ^3.3.0 - espree: ^9.3.1 - esquery: ^1.4.0 - esutils: ^2.0.2 - fast-deep-equal: ^3.1.3 - file-entry-cache: ^6.0.1 - functional-red-black-tree: ^1.0.1 - glob-parent: ^6.0.1 - globals: ^13.6.0 - ignore: ^5.2.0 - import-fresh: ^3.0.0 - imurmurhash: ^0.1.4 - is-glob: ^4.0.0 - js-yaml: ^4.1.0 - json-stable-stringify-without-jsonify: ^1.0.1 - levn: ^0.4.1 - lodash.merge: ^4.6.2 - minimatch: ^3.0.4 - natural-compare: ^1.4.0 - optionator: ^0.9.1 - regexpp: ^3.2.0 - strip-ansi: ^6.0.1 - strip-json-comments: ^3.1.0 - text-table: ^0.2.0 - v8-compile-cache: ^2.0.3 - bin: - eslint: bin/eslint.js - checksum: 87d2e3e5eb93216d4ab36006e7b8c0bfad02f40b0a0f193f1d42754512cd3a9d8244152f1c69df5db2e135b3c4f1c10d0ed2f0881fe8a8c01af55465968174c1 - languageName: node - linkType: hard - -"espree@npm:^9.3.1": - version: 9.3.1 - resolution: "espree@npm:9.3.1" - dependencies: - acorn: ^8.7.0 - acorn-jsx: ^5.3.1 - eslint-visitor-keys: ^3.3.0 - checksum: d7161db30b65427e0799383699ac4c441533a38faee005153694b68b933ba7a24666680edfc490fa77e3a84a22dbd955768034a6f811af5049774eead83063a5 - languageName: node - linkType: hard - -"esprima@npm:^4.0.0, esprima@npm:^4.0.1": - version: 4.0.1 - resolution: "esprima@npm:4.0.1" - bin: - esparse: ./bin/esparse.js - esvalidate: ./bin/esvalidate.js - checksum: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628 - languageName: node - linkType: hard - -"esquery@npm:^1.4.0": - version: 1.4.0 - resolution: "esquery@npm:1.4.0" - dependencies: - estraverse: ^5.1.0 - checksum: a0807e17abd7fbe5fbd4fab673038d6d8a50675cdae6b04fbaa520c34581be0c5fa24582990e8acd8854f671dd291c78bb2efb9e0ed5b62f33bac4f9cf820210 - languageName: node - linkType: hard - -"esrecurse@npm:^4.3.0": - version: 4.3.0 - resolution: "esrecurse@npm:4.3.0" - dependencies: - estraverse: ^5.2.0 - checksum: ebc17b1a33c51cef46fdc28b958994b1dc43cd2e86237515cbc3b4e5d2be6a811b2315d0a1a4d9d340b6d2308b15322f5c8291059521cc5f4802f65e7ec32837 - languageName: node - linkType: hard - -"estraverse@npm:^4.1.1": - version: 4.3.0 - resolution: "estraverse@npm:4.3.0" - checksum: a6299491f9940bb246124a8d44b7b7a413a8336f5436f9837aaa9330209bd9ee8af7e91a654a3545aee9c54b3308e78ee360cef1d777d37cfef77d2fa33b5827 - languageName: node - linkType: hard - -"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": - version: 5.3.0 - resolution: "estraverse@npm:5.3.0" - checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b - languageName: node - linkType: hard - -"esutils@npm:^2.0.2": - version: 2.0.3 - resolution: "esutils@npm:2.0.3" - checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87 - languageName: node - linkType: hard - -"etag@npm:~1.8.1": - version: 1.8.1 - resolution: "etag@npm:1.8.1" - checksum: 571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff - languageName: node - linkType: hard - -"execa@npm:^5.0.0": - version: 5.1.1 - resolution: "execa@npm:5.1.1" - dependencies: - cross-spawn: ^7.0.3 - get-stream: ^6.0.0 - human-signals: ^2.1.0 - is-stream: ^2.0.0 - merge-stream: ^2.0.0 - npm-run-path: ^4.0.1 - onetime: ^5.1.2 - signal-exit: ^3.0.3 - strip-final-newline: ^2.0.0 - checksum: fba9022c8c8c15ed862847e94c252b3d946036d7547af310e344a527e59021fd8b6bb0723883ea87044dc4f0201f949046993124a42ccb0855cae5bf8c786343 - languageName: node - linkType: hard - -"exit@npm:^0.1.2": - version: 0.1.2 - resolution: "exit@npm:0.1.2" - checksum: abc407f07a875c3961e4781dfcb743b58d6c93de9ab263f4f8c9d23bb6da5f9b7764fc773f86b43dd88030444d5ab8abcb611cb680fba8ca075362b77114bba3 - languageName: node - linkType: hard - -"expect@npm:^27.5.1": - version: 27.5.1 - resolution: "expect@npm:27.5.1" - dependencies: - "@jest/types": ^27.5.1 - jest-get-type: ^27.5.1 - jest-matcher-utils: ^27.5.1 - jest-message-util: ^27.5.1 - checksum: b2c66beb52de53ef1872165aace40224e722bca3c2274c54cfa74b6d617d55cf0ccdbf36783ccd64dbea501b280098ed33fd0b207d4f15bc03cd3c7a24364a6a - languageName: node - linkType: hard - -"express@npm:4.18.2": - version: 4.18.2 - resolution: "express@npm:4.18.2" - dependencies: - accepts: ~1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.1 - content-disposition: 0.5.4 - content-type: ~1.0.4 - cookie: 0.5.0 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: ~1.0.2 - escape-html: ~1.0.3 - etag: ~1.8.1 - finalhandler: 1.2.0 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.1 - methods: ~1.1.2 - on-finished: 2.4.1 - parseurl: ~1.3.3 - path-to-regexp: 0.1.7 - proxy-addr: ~2.0.7 - qs: 6.11.0 - range-parser: ~1.2.1 - safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: ~1.6.18 - utils-merge: 1.0.1 - vary: ~1.1.2 - checksum: 3c4b9b076879442f6b968fe53d85d9f1eeacbb4f4c41e5f16cc36d77ce39a2b0d81b3f250514982110d815b2f7173f5561367f9110fcc541f9371948e8c8b037 - languageName: node - linkType: hard - -"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": - version: 3.1.3 - resolution: "fast-deep-equal@npm:3.1.3" - checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d - languageName: node - linkType: hard - -"fast-glob@npm:^3.2.9": - version: 3.2.11 - resolution: "fast-glob@npm:3.2.11" - dependencies: - "@nodelib/fs.stat": ^2.0.2 - "@nodelib/fs.walk": ^1.2.3 - glob-parent: ^5.1.2 - merge2: ^1.3.0 - micromatch: ^4.0.4 - checksum: f473105324a7780a20c06de842e15ddbb41d3cb7e71d1e4fe6e8373204f22245d54f5ab9e2061e6a1c613047345954d29b022e0e76f5c28b1df9858179a0e6d7 - languageName: node - linkType: hard - -"fast-json-stable-stringify@npm:2.x, fast-json-stable-stringify@npm:^2.0.0": - version: 2.1.0 - resolution: "fast-json-stable-stringify@npm:2.1.0" - checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb - languageName: node - linkType: hard - -"fast-levenshtein@npm:^2.0.6, fast-levenshtein@npm:~2.0.6": - version: 2.0.6 - resolution: "fast-levenshtein@npm:2.0.6" - checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c - languageName: node - linkType: hard - -"fast-safe-stringify@npm:2.1.1, fast-safe-stringify@npm:^2.1.1": - version: 2.1.1 - resolution: "fast-safe-stringify@npm:2.1.1" - checksum: a851cbddc451745662f8f00ddb622d6766f9bd97642dabfd9a405fb0d646d69fc0b9a1243cbf67f5f18a39f40f6fa821737651ff1bceeba06c9992ca2dc5bd3d - languageName: node - linkType: hard - -"fast-xml-parser@npm:4.0.11": - version: 4.0.11 - resolution: "fast-xml-parser@npm:4.0.11" - dependencies: - strnum: ^1.0.5 - bin: - fxparser: src/cli/cli.js - checksum: d8a08e4d5597e0fc00a86735195872eeb03008913e298830941516f3766e16ee555e2d431acc92e1dda887938edc445252ec5b59494aab60a8389888bd13719c - languageName: node - linkType: hard - -"fastq@npm:^1.6.0": - version: 1.13.0 - resolution: "fastq@npm:1.13.0" - dependencies: - reusify: ^1.0.4 - checksum: 32cf15c29afe622af187d12fc9cd93e160a0cb7c31a3bb6ace86b7dea3b28e7b72acde89c882663f307b2184e14782c6c664fa315973c03626c7d4bff070bb0b - languageName: node - linkType: hard - -"fb-watchman@npm:^2.0.0": - version: 2.0.1 - resolution: "fb-watchman@npm:2.0.1" - dependencies: - bser: 2.1.1 - checksum: 8510230778ab3a51c27dffb1b76ef2c24fab672a42742d3c0a45c2e9d1e5f20210b1fbca33486088da4a9a3958bde96b5aec0a63aac9894b4e9df65c88b2cbd6 - languageName: node - linkType: hard - -"file-entry-cache@npm:^6.0.1": - version: 6.0.1 - resolution: "file-entry-cache@npm:6.0.1" - dependencies: - flat-cache: ^3.0.4 - checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74 - languageName: node - linkType: hard - -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" - dependencies: - to-regex-range: ^5.0.1 - checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 - languageName: node - linkType: hard - -"finalhandler@npm:1.2.0": - version: 1.2.0 - resolution: "finalhandler@npm:1.2.0" - dependencies: - debug: 2.6.9 - encodeurl: ~1.0.2 - escape-html: ~1.0.3 - on-finished: 2.4.1 - parseurl: ~1.3.3 - statuses: 2.0.1 - unpipe: ~1.0.0 - checksum: 92effbfd32e22a7dff2994acedbd9bcc3aa646a3e919ea6a53238090e87097f8ef07cced90aa2cc421abdf993aefbdd5b00104d55c7c5479a8d00ed105b45716 - languageName: node - linkType: hard - -"find-up@npm:^2.1.0": - version: 2.1.0 - resolution: "find-up@npm:2.1.0" - dependencies: - locate-path: ^2.0.0 - checksum: 43284fe4da09f89011f08e3c32cd38401e786b19226ea440b75386c1b12a4cb738c94969808d53a84f564ede22f732c8409e3cfc3f7fb5b5c32378ad0bbf28bd - languageName: node - linkType: hard - -"find-up@npm:^4.0.0, find-up@npm:^4.1.0": - version: 4.1.0 - resolution: "find-up@npm:4.1.0" - dependencies: - locate-path: ^5.0.0 - path-exists: ^4.0.0 - checksum: 4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 - languageName: node - linkType: hard - -"flat-cache@npm:^3.0.4": - version: 3.0.4 - resolution: "flat-cache@npm:3.0.4" - dependencies: - flatted: ^3.1.0 - rimraf: ^3.0.2 - checksum: 4fdd10ecbcbf7d520f9040dd1340eb5dfe951e6f0ecf2252edeec03ee68d989ec8b9a20f4434270e71bcfd57800dc09b3344fca3966b2eb8f613072c7d9a2365 - languageName: node - linkType: hard - -"flatted@npm:^3.1.0": - version: 3.2.5 - resolution: "flatted@npm:3.2.5" - checksum: 3c436e9695ccca29620b4be5671dd72e5dd0a7500e0856611b7ca9bd8169f177f408c3b9abfa78dfe1493ee2d873e2c119080a8a9bee4e1a186a9e60ca6c89f1 - languageName: node - linkType: hard - -"form-data@npm:^3.0.0": - version: 3.0.1 - resolution: "form-data@npm:3.0.1" - dependencies: - asynckit: ^0.4.0 - combined-stream: ^1.0.8 - mime-types: ^2.1.12 - checksum: b019e8d35c8afc14a2bd8a7a92fa4f525a4726b6d5a9740e8d2623c30e308fbb58dc8469f90415a856698933c8479b01646a9dff33c87cc4e76d72aedbbf860d - languageName: node - linkType: hard - -"form-data@npm:^4.0.0": - version: 4.0.0 - resolution: "form-data@npm:4.0.0" - dependencies: - asynckit: ^0.4.0 - combined-stream: ^1.0.8 - mime-types: ^2.1.12 - checksum: 01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c - languageName: node - linkType: hard - -"formidable@npm:^2.1.1": - version: 2.1.2 - resolution: "formidable@npm:2.1.2" - dependencies: - dezalgo: ^1.0.4 - hexoid: ^1.0.0 - once: ^1.4.0 - qs: ^6.11.0 - checksum: 81c8e5d89f5eb873e992893468f0de22c01678ca3d315db62be0560f9de1c77d4faefc9b1f4575098eb2263b3c81ba1024833a9fc3206297ddbac88a4f69b7a8 - languageName: node - linkType: hard - -"forwarded@npm:0.2.0": - version: 0.2.0 - resolution: "forwarded@npm:0.2.0" - checksum: fd27e2394d8887ebd16a66ffc889dc983fbbd797d5d3f01087c020283c0f019a7d05ee85669383d8e0d216b116d720fc0cef2f6e9b7eb9f4c90c6e0bc7fd28e6 - languageName: node - linkType: hard - -"fresh@npm:0.5.2": - version: 0.5.2 - resolution: "fresh@npm:0.5.2" - checksum: 13ea8b08f91e669a64e3ba3a20eb79d7ca5379a81f1ff7f4310d54e2320645503cc0c78daedc93dfb6191287295f6479544a649c64d8e41a1c0fb0c221552346 - languageName: node - linkType: hard - -"fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": - version: 2.1.0 - resolution: "fs-minipass@npm:2.1.0" - dependencies: - minipass: ^3.0.0 - checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 - languageName: node - linkType: hard - -"fs.realpath@npm:^1.0.0": - version: 1.0.0 - resolution: "fs.realpath@npm:1.0.0" - checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 - languageName: node - linkType: hard - -"fsevents@npm:^2.3.2": - version: 2.3.2 - resolution: "fsevents@npm:2.3.2" - dependencies: - node-gyp: latest - checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f - conditions: os=darwin - languageName: node - linkType: hard - -"fsevents@patch:fsevents@^2.3.2#~builtin": - version: 2.3.2 - resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=18f3a7" - dependencies: - node-gyp: latest - conditions: os=darwin - languageName: node - linkType: hard - -"function-bind@npm:^1.1.1": - version: 1.1.1 - resolution: "function-bind@npm:1.1.1" - checksum: b32fbaebb3f8ec4969f033073b43f5c8befbb58f1a79e12f1d7490358150359ebd92f49e72ff0144f65f2c48ea2a605bff2d07965f548f6474fd8efd95bf361a - languageName: node - linkType: hard - -"functional-red-black-tree@npm:^1.0.1": - version: 1.0.1 - resolution: "functional-red-black-tree@npm:1.0.1" - checksum: ca6c170f37640e2d94297da8bb4bf27a1d12bea3e00e6a3e007fd7aa32e37e000f5772acf941b4e4f3cf1c95c3752033d0c509af157ad8f526e7f00723b9eb9f - languageName: node - linkType: hard - -"gauge@npm:^4.0.3": - version: 4.0.4 - resolution: "gauge@npm:4.0.4" - dependencies: - aproba: ^1.0.3 || ^2.0.0 - color-support: ^1.1.3 - console-control-strings: ^1.1.0 - has-unicode: ^2.0.1 - signal-exit: ^3.0.7 - string-width: ^4.2.3 - strip-ansi: ^6.0.1 - wide-align: ^1.1.5 - checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d - languageName: node - linkType: hard - -"gensync@npm:^1.0.0-beta.2": - version: 1.0.0-beta.2 - resolution: "gensync@npm:1.0.0-beta.2" - checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec - languageName: node - linkType: hard - -"get-caller-file@npm:^2.0.5": - version: 2.0.5 - resolution: "get-caller-file@npm:2.0.5" - checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 - languageName: node - linkType: hard - -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.0, get-intrinsic@npm:^1.1.1": - version: 1.1.1 - resolution: "get-intrinsic@npm:1.1.1" - dependencies: - function-bind: ^1.1.1 - has: ^1.0.3 - has-symbols: ^1.0.1 - checksum: a9fe2ca8fa3f07f9b0d30fb202bcd01f3d9b9b6b732452e79c48e79f7d6d8d003af3f9e38514250e3553fdc83c61650851cb6870832ac89deaaceb08e3721a17 - languageName: node - linkType: hard - -"get-package-type@npm:^0.1.0": - version: 0.1.0 - resolution: "get-package-type@npm:0.1.0" - checksum: bba0811116d11e56d702682ddef7c73ba3481f114590e705fc549f4d868972263896af313c57a25c076e3c0d567e11d919a64ba1b30c879be985fc9d44f96148 - languageName: node - linkType: hard - -"get-stream@npm:^6.0.0": - version: 6.0.1 - resolution: "get-stream@npm:6.0.1" - checksum: e04ecece32c92eebf5b8c940f51468cd53554dcbb0ea725b2748be583c9523d00128137966afce410b9b051eb2ef16d657cd2b120ca8edafcf5a65e81af63cad - languageName: node - linkType: hard - -"get-symbol-description@npm:^1.0.0": - version: 1.0.0 - resolution: "get-symbol-description@npm:1.0.0" - dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.1.1 - checksum: 9ceff8fe968f9270a37a1f73bf3f1f7bda69ca80f4f80850670e0e7b9444ff99323f7ac52f96567f8b5f5fbe7ac717a0d81d3407c7313e82810c6199446a5247 - languageName: node - linkType: hard - -"glob-parent@npm:^5.1.2": - version: 5.1.2 - resolution: "glob-parent@npm:5.1.2" - dependencies: - is-glob: ^4.0.1 - checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e - languageName: node - linkType: hard - -"glob-parent@npm:^6.0.1": - version: 6.0.2 - resolution: "glob-parent@npm:6.0.2" - dependencies: - is-glob: ^4.0.3 - checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 - languageName: node - linkType: hard - -"glob@npm:^7.1.1, glob@npm:^7.1.2, glob@npm:^7.1.3, glob@npm:^7.1.4": - version: 7.2.0 - resolution: "glob@npm:7.2.0" - dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^3.0.4 - once: ^1.3.0 - path-is-absolute: ^1.0.0 - checksum: 78a8ea942331f08ed2e055cb5b9e40fe6f46f579d7fd3d694f3412fe5db23223d29b7fee1575440202e9a7ff9a72ab106a39fee39934c7bedafe5e5f8ae20134 - languageName: node - linkType: hard - -"glob@npm:^8.0.1": - version: 8.0.1 - resolution: "glob@npm:8.0.1" - dependencies: - fs.realpath: ^1.0.0 - inflight: ^1.0.4 - inherits: 2 - minimatch: ^5.0.1 - once: ^1.3.0 - path-is-absolute: ^1.0.0 - checksum: 7ac782f3ef1c08005884447479e68ceb0ad56997eb2003e1e9aefae71bad3cb48eb7c49190d3d6736f2ffcd8af4985d53a46831b3d5e0052cc5756822a38b61a - languageName: node - linkType: hard - -"global@npm:4.4.0": - version: 4.4.0 - resolution: "global@npm:4.4.0" - dependencies: - min-document: ^2.19.0 - process: ^0.11.10 - checksum: 9c057557c8f5a5bcfbeb9378ba4fe2255d04679452be504608dd5f13b54edf79f7be1db1031ea06a4ec6edd3b9f5f17d2d172fb47e6c69dae57fd84b7e72b77f - languageName: node - linkType: hard - -"globals@npm:^11.1.0": - version: 11.12.0 - resolution: "globals@npm:11.12.0" - checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e - languageName: node - linkType: hard - -"globals@npm:^13.6.0, globals@npm:^13.9.0": - version: 13.12.0 - resolution: "globals@npm:13.12.0" - dependencies: - type-fest: ^0.20.2 - checksum: 1f959abb11117916468a1afcba527eead152900cad652c8383c4e8976daea7ec55e1ee30c086f48d1b8655719f214e9d92eca083c3a43b5543bc4056e7e5fccf - languageName: node - linkType: hard - -"globby@npm:^11.0.4": - version: 11.1.0 - resolution: "globby@npm:11.1.0" - dependencies: - array-union: ^2.1.0 - dir-glob: ^3.0.1 - fast-glob: ^3.2.9 - ignore: ^5.2.0 - merge2: ^1.4.1 - slash: ^3.0.0 - checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 - languageName: node - linkType: hard - -"graceful-fs@npm:^4.2.4": - version: 4.2.9 - resolution: "graceful-fs@npm:4.2.9" - checksum: 68ea4e07ff2c041ada184f9278b830375f8e0b75154e3f080af6b70f66172fabb4108d19b3863a96b53fc068a310b9b6493d86d1291acc5f3861eb4b79d26ad6 - languageName: node - linkType: hard - -"graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": - version: 4.2.10 - resolution: "graceful-fs@npm:4.2.10" - checksum: 3f109d70ae123951905d85032ebeae3c2a5a7a997430df00ea30df0e3a6c60cf6689b109654d6fdacd28810a053348c4d14642da1d075049e6be1ba5216218da - languageName: node - linkType: hard - -"has-bigints@npm:^1.0.1": - version: 1.0.1 - resolution: "has-bigints@npm:1.0.1" - checksum: 44ab55868174470065d2e0f8f6def1c990d12b82162a8803c679699fa8a39f966e336f2a33c185092fe8aea7e8bf2e85f1c26add5f29d98f2318bd270096b183 - languageName: node - linkType: hard - -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b - languageName: node - linkType: hard - -"has-flag@npm:^4.0.0": - version: 4.0.0 - resolution: "has-flag@npm:4.0.0" - checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad - languageName: node - linkType: hard - -"has-symbols@npm:^1.0.1, has-symbols@npm:^1.0.2": - version: 1.0.2 - resolution: "has-symbols@npm:1.0.2" - checksum: 2309c426071731be792b5be43b3da6fb4ed7cbe8a9a6bcfca1862587709f01b33d575ce8f5c264c1eaad09fca2f9a8208c0a2be156232629daa2dd0c0740976b - languageName: node - linkType: hard - -"has-tostringtag@npm:^1.0.0": - version: 1.0.0 - resolution: "has-tostringtag@npm:1.0.0" - dependencies: - has-symbols: ^1.0.2 - checksum: cc12eb28cb6ae22369ebaad3a8ab0799ed61270991be88f208d508076a1e99abe4198c965935ce85ea90b60c94ddda73693b0920b58e7ead048b4a391b502c1c - languageName: node - linkType: hard - -"has-unicode@npm:^2.0.1": - version: 2.0.1 - resolution: "has-unicode@npm:2.0.1" - checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 - languageName: node - linkType: hard - -"has@npm:^1.0.3": - version: 1.0.3 - resolution: "has@npm:1.0.3" - dependencies: - function-bind: ^1.1.1 - checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 - languageName: node - linkType: hard - -"hexoid@npm:^1.0.0": - version: 1.0.0 - resolution: "hexoid@npm:1.0.0" - checksum: 27a148ca76a2358287f40445870116baaff4a0ed0acc99900bf167f0f708ffd82e044ff55e9949c71963852b580fc024146d3ac6d5d76b508b78d927fa48ae2d - languageName: node - linkType: hard - -"html-encoding-sniffer@npm:^2.0.1": - version: 2.0.1 - resolution: "html-encoding-sniffer@npm:2.0.1" - dependencies: - whatwg-encoding: ^1.0.5 - checksum: bf30cce461015ed7e365736fcd6a3063c7bc016a91f74398ef6158886970a96333938f7c02417ab3c12aa82e3e53b40822145facccb9ddfbcdc15a879ae4d7ba - languageName: node - linkType: hard - -"html-escaper@npm:^2.0.0": - version: 2.0.2 - resolution: "html-escaper@npm:2.0.2" - checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974 - languageName: node - linkType: hard - -"http-cache-semantics@npm:^4.1.0": - version: 4.1.0 - resolution: "http-cache-semantics@npm:4.1.0" - checksum: 974de94a81c5474be07f269f9fd8383e92ebb5a448208223bfb39e172a9dbc26feff250192ecc23b9593b3f92098e010406b0f24bd4d588d631f80214648ed42 - languageName: node - linkType: hard - -"http-errors@npm:2.0.0": - version: 2.0.0 - resolution: "http-errors@npm:2.0.0" - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - checksum: 9b0a3782665c52ce9dc658a0d1560bcb0214ba5699e4ea15aefb2a496e2ca83db03ebc42e1cce4ac1f413e4e0d2d736a3fd755772c556a9a06853ba2a0b7d920 - languageName: node - linkType: hard - -"http-proxy-agent@npm:^4.0.1": - version: 4.0.1 - resolution: "http-proxy-agent@npm:4.0.1" - dependencies: - "@tootallnate/once": 1 - agent-base: 6 - debug: 4 - checksum: c6a5da5a1929416b6bbdf77b1aca13888013fe7eb9d59fc292e25d18e041bb154a8dfada58e223fc7b76b9b2d155a87e92e608235201f77d34aa258707963a82 - languageName: node - linkType: hard - -"http-proxy-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "http-proxy-agent@npm:5.0.0" - dependencies: - "@tootallnate/once": 2 - agent-base: 6 - debug: 4 - checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 - languageName: node - linkType: hard - -"https-proxy-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "https-proxy-agent@npm:5.0.0" - dependencies: - agent-base: 6 - debug: 4 - checksum: 165bfb090bd26d47693597661298006841ab733d0c7383a8cb2f17373387a94c903a3ac687090aa739de05e379ab6f868bae84ab4eac288ad85c328cd1ec9e53 - languageName: node - linkType: hard - -"human-signals@npm:^2.1.0": - version: 2.1.0 - resolution: "human-signals@npm:2.1.0" - checksum: b87fd89fce72391625271454e70f67fe405277415b48bcc0117ca73d31fa23a4241787afdc8d67f5a116cf37258c052f59ea82daffa72364d61351423848e3b8 - languageName: node - linkType: hard - -"humanize-ms@npm:^1.2.1": - version: 1.2.1 - resolution: "humanize-ms@npm:1.2.1" - dependencies: - ms: ^2.0.0 - checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 - languageName: node - linkType: hard - -"iconv-lite@npm:0.4.24": - version: 0.4.24 - resolution: "iconv-lite@npm:0.4.24" - dependencies: - safer-buffer: ">= 2.1.2 < 3" - checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 - languageName: node - linkType: hard - -"iconv-lite@npm:^0.6.2": - version: 0.6.3 - resolution: "iconv-lite@npm:0.6.3" - dependencies: - safer-buffer: ">= 2.1.2 < 3.0.0" - checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf - languageName: node - linkType: hard - -"ieee754@npm:^1.1.13": - version: 1.2.1 - resolution: "ieee754@npm:1.2.1" - checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e - languageName: node - linkType: hard - -"ignore@npm:^5.1.8, ignore@npm:^5.2.0": - version: 5.2.0 - resolution: "ignore@npm:5.2.0" - checksum: 6b1f926792d614f64c6c83da3a1f9c83f6196c2839aa41e1e32dd7b8d174cef2e329d75caabb62cb61ce9dc432f75e67d07d122a037312db7caa73166a1bdb77 - languageName: node - linkType: hard - -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": - version: 3.3.0 - resolution: "import-fresh@npm:3.3.0" - dependencies: - parent-module: ^1.0.0 - resolve-from: ^4.0.0 - checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa - languageName: node - linkType: hard - -"import-local@npm:^3.0.2": - version: 3.1.0 - resolution: "import-local@npm:3.1.0" - dependencies: - pkg-dir: ^4.2.0 - resolve-cwd: ^3.0.0 - bin: - import-local-fixture: fixtures/cli.js - checksum: bfcdb63b5e3c0e245e347f3107564035b128a414c4da1172a20dc67db2504e05ede4ac2eee1252359f78b0bfd7b19ef180aec427c2fce6493ae782d73a04cddd - languageName: node - linkType: hard - -"imurmurhash@npm:^0.1.4": - version: 0.1.4 - resolution: "imurmurhash@npm:0.1.4" - checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 - languageName: node - linkType: hard - -"indent-string@npm:^4.0.0": - version: 4.0.0 - resolution: "indent-string@npm:4.0.0" - checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 - languageName: node - linkType: hard - -"infer-owner@npm:^1.0.4": - version: 1.0.4 - resolution: "infer-owner@npm:1.0.4" - checksum: 181e732764e4a0611576466b4b87dac338972b839920b2a8cde43642e4ed6bd54dc1fb0b40874728f2a2df9a1b097b8ff83b56d5f8f8e3927f837fdcb47d8a89 - languageName: node - linkType: hard - -"inflight@npm:^1.0.4": - version: 1.0.6 - resolution: "inflight@npm:1.0.6" - dependencies: - once: ^1.3.0 - wrappy: 1 - checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd - languageName: node - linkType: hard - -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.3, inherits@npm:~2.0.3": - version: 2.0.4 - resolution: "inherits@npm:2.0.4" - checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 - languageName: node - linkType: hard - -"internal-slot@npm:^1.0.3": - version: 1.0.3 - resolution: "internal-slot@npm:1.0.3" - dependencies: - get-intrinsic: ^1.1.0 - has: ^1.0.3 - side-channel: ^1.0.4 - checksum: 1944f92e981e47aebc98a88ff0db579fd90543d937806104d0b96557b10c1f170c51fb777b97740a8b6ddeec585fca8c39ae99fd08a8e058dfc8ab70937238bf - languageName: node - linkType: hard - -"ip@npm:^1.1.5": - version: 1.1.5 - resolution: "ip@npm:1.1.5" - checksum: 30133981f082a060a32644f6a7746e9ba7ac9e2bc07ecc8bbdda3ee8ca9bec1190724c390e45a1ee7695e7edfd2a8f7dda2c104ec5f7ac5068c00648504c7e5a - languageName: node - linkType: hard - -"ip@npm:^2.0.0": - version: 2.0.0 - resolution: "ip@npm:2.0.0" - checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349 - languageName: node - linkType: hard - -"ipaddr.js@npm:1.9.1": - version: 1.9.1 - resolution: "ipaddr.js@npm:1.9.1" - checksum: f88d3825981486f5a1942414c8d77dd6674dd71c065adcfa46f578d677edcb99fda25af42675cb59db492fdf427b34a5abfcde3982da11a8fd83a500b41cfe77 - languageName: node - linkType: hard - -"is-arrayish@npm:^0.2.1": - version: 0.2.1 - resolution: "is-arrayish@npm:0.2.1" - checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f - languageName: node - linkType: hard - -"is-bigint@npm:^1.0.1": - version: 1.0.4 - resolution: "is-bigint@npm:1.0.4" - dependencies: - has-bigints: ^1.0.1 - checksum: c56edfe09b1154f8668e53ebe8252b6f185ee852a50f9b41e8d921cb2bed425652049fbe438723f6cb48a63ca1aa051e948e7e401e093477c99c84eba244f666 - languageName: node - linkType: hard - -"is-boolean-object@npm:^1.1.0": - version: 1.1.2 - resolution: "is-boolean-object@npm:1.1.2" - dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: c03b23dbaacadc18940defb12c1c0e3aaece7553ef58b162a0f6bba0c2a7e1551b59f365b91e00d2dbac0522392d576ef322628cb1d036a0fe51eb466db67222 - languageName: node - linkType: hard - -"is-callable@npm:^1.1.4, is-callable@npm:^1.2.4": - version: 1.2.4 - resolution: "is-callable@npm:1.2.4" - checksum: 1a28d57dc435797dae04b173b65d6d1e77d4f16276e9eff973f994eadcfdc30a017e6a597f092752a083c1103cceb56c91e3dadc6692fedb9898dfaba701575f - languageName: node - linkType: hard - -"is-core-module@npm:^2.8.1": - version: 2.8.1 - resolution: "is-core-module@npm:2.8.1" - dependencies: - has: ^1.0.3 - checksum: 418b7bc10768a73c41c7ef497e293719604007f88934a6ffc5f7c78702791b8528102fb4c9e56d006d69361549b3d9519440214a74aefc7e0b79e5e4411d377f - languageName: node - linkType: hard - -"is-date-object@npm:^1.0.1": - version: 1.0.5 - resolution: "is-date-object@npm:1.0.5" - dependencies: - has-tostringtag: ^1.0.0 - checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc - languageName: node - linkType: hard - -"is-extglob@npm:^2.1.1": - version: 2.1.1 - resolution: "is-extglob@npm:2.1.1" - checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^3.0.0": - version: 3.0.0 - resolution: "is-fullwidth-code-point@npm:3.0.0" - checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 - languageName: node - linkType: hard - -"is-generator-fn@npm:^2.0.0": - version: 2.1.0 - resolution: "is-generator-fn@npm:2.1.0" - checksum: a6ad5492cf9d1746f73b6744e0c43c0020510b59d56ddcb78a91cbc173f09b5e6beff53d75c9c5a29feb618bfef2bf458e025ecf3a57ad2268e2fb2569f56215 - languageName: node - linkType: hard - -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3": - version: 4.0.3 - resolution: "is-glob@npm:4.0.3" - dependencies: - is-extglob: ^2.1.1 - checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 - languageName: node - linkType: hard - -"is-lambda@npm:^1.0.1": - version: 1.0.1 - resolution: "is-lambda@npm:1.0.1" - checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 - languageName: node - linkType: hard - -"is-negative-zero@npm:^2.0.1": - version: 2.0.2 - resolution: "is-negative-zero@npm:2.0.2" - checksum: f3232194c47a549da60c3d509c9a09be442507616b69454716692e37ae9f37c4dea264fb208ad0c9f3efd15a796a46b79df07c7e53c6227c32170608b809149a - languageName: node - linkType: hard - -"is-number-object@npm:^1.0.4": - version: 1.0.6 - resolution: "is-number-object@npm:1.0.6" - dependencies: - has-tostringtag: ^1.0.0 - checksum: c697704e8fc2027fc41cb81d29805de4e8b6dc9c3efee93741dbf126a8ecc8443fef85adbc581415ae7e55d325e51d0a942324ae35c829131748cce39cba55f3 - languageName: node - linkType: hard - -"is-number@npm:^7.0.0": - version: 7.0.0 - resolution: "is-number@npm:7.0.0" - checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a - languageName: node - linkType: hard - -"is-potential-custom-element-name@npm:^1.0.1": - version: 1.0.1 - resolution: "is-potential-custom-element-name@npm:1.0.1" - checksum: ced7bbbb6433a5b684af581872afe0e1767e2d1146b2207ca0068a648fb5cab9d898495d1ac0583524faaf24ca98176a7d9876363097c2d14fee6dd324f3a1ab - languageName: node - linkType: hard - -"is-regex@npm:^1.1.4": - version: 1.1.4 - resolution: "is-regex@npm:1.1.4" - dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: 362399b33535bc8f386d96c45c9feb04cf7f8b41c182f54174c1a45c9abbbe5e31290bbad09a458583ff6bf3b2048672cdb1881b13289569a7c548370856a652 - languageName: node - linkType: hard - -"is-shared-array-buffer@npm:^1.0.1": - version: 1.0.1 - resolution: "is-shared-array-buffer@npm:1.0.1" - checksum: 2ffb92533e64e2876e6cfe6906871d28400b6f1a53130fe652ec8007bc0e5044d05e7af8e31bdc992fbba520bd92938cfbeedd0f286be92f250c7c76191c4d90 - languageName: node - linkType: hard - -"is-stream@npm:^2.0.0": - version: 2.0.1 - resolution: "is-stream@npm:2.0.1" - checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 - languageName: node - linkType: hard - -"is-string@npm:^1.0.5, is-string@npm:^1.0.7": - version: 1.0.7 - resolution: "is-string@npm:1.0.7" - dependencies: - has-tostringtag: ^1.0.0 - checksum: 323b3d04622f78d45077cf89aab783b2f49d24dc641aa89b5ad1a72114cfeff2585efc8c12ef42466dff32bde93d839ad321b26884cf75e5a7892a938b089989 - languageName: node - linkType: hard - -"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": - version: 1.0.4 - resolution: "is-symbol@npm:1.0.4" - dependencies: - has-symbols: ^1.0.2 - checksum: 92805812ef590738d9de49d677cd17dfd486794773fb6fa0032d16452af46e9b91bb43ffe82c983570f015b37136f4b53b28b8523bfb10b0ece7a66c31a54510 - languageName: node - linkType: hard - -"is-typedarray@npm:^1.0.0": - version: 1.0.0 - resolution: "is-typedarray@npm:1.0.0" - checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7 - languageName: node - linkType: hard - -"is-weakref@npm:^1.0.1": - version: 1.0.2 - resolution: "is-weakref@npm:1.0.2" - dependencies: - call-bind: ^1.0.2 - checksum: 95bd9a57cdcb58c63b1c401c60a474b0f45b94719c30f548c891860f051bc2231575c290a6b420c6bc6e7ed99459d424c652bd5bf9a1d5259505dc35b4bf83de - languageName: node - linkType: hard - -"isarray@npm:~1.0.0": - version: 1.0.0 - resolution: "isarray@npm:1.0.0" - checksum: f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab - languageName: node - linkType: hard - -"isexe@npm:^2.0.0": - version: 2.0.0 - resolution: "isexe@npm:2.0.0" - checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 - languageName: node - linkType: hard - -"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": - version: 3.2.0 - resolution: "istanbul-lib-coverage@npm:3.2.0" - checksum: a2a545033b9d56da04a8571ed05c8120bf10e9bce01cf8633a3a2b0d1d83dff4ac4fe78d6d5673c27fc29b7f21a41d75f83a36be09f82a61c367b56aa73c1ff9 - languageName: node - linkType: hard - -"istanbul-lib-instrument@npm:^5.0.4, istanbul-lib-instrument@npm:^5.1.0": - version: 5.1.0 - resolution: "istanbul-lib-instrument@npm:5.1.0" - dependencies: - "@babel/core": ^7.12.3 - "@babel/parser": ^7.14.7 - "@istanbuljs/schema": ^0.1.2 - istanbul-lib-coverage: ^3.2.0 - semver: ^6.3.0 - checksum: 8b82e733c69fe9f94d2e21f3e5760c9bedb110329aa75df4bd40df95f1cac3bf38767e43f35b125cc547ceca7376b72ce7d95cc5238b7e9088345c7b589233d3 - languageName: node - linkType: hard - -"istanbul-lib-report@npm:^3.0.0": - version: 3.0.0 - resolution: "istanbul-lib-report@npm:3.0.0" - dependencies: - istanbul-lib-coverage: ^3.0.0 - make-dir: ^3.0.0 - supports-color: ^7.1.0 - checksum: 3f29eb3f53c59b987386e07fe772d24c7f58c6897f34c9d7a296f4000de7ae3de9eb95c3de3df91dc65b134c84dee35c54eee572a56243e8907c48064e34ff1b - languageName: node - linkType: hard - -"istanbul-lib-source-maps@npm:^4.0.0": - version: 4.0.1 - resolution: "istanbul-lib-source-maps@npm:4.0.1" - dependencies: - debug: ^4.1.1 - istanbul-lib-coverage: ^3.0.0 - source-map: ^0.6.1 - checksum: 21ad3df45db4b81852b662b8d4161f6446cd250c1ddc70ef96a585e2e85c26ed7cd9c2a396a71533cfb981d1a645508bc9618cae431e55d01a0628e7dec62ef2 - languageName: node - linkType: hard - -"istanbul-reports@npm:^3.1.3": - version: 3.1.3 - resolution: "istanbul-reports@npm:3.1.3" - dependencies: - html-escaper: ^2.0.0 - istanbul-lib-report: ^3.0.0 - checksum: ef6e0d9ed05ecab1974c6eb46cc2a12d8570911934192db4ed40cf1978449240ea80aae32c4dd5555b67407cdf860212d1a9e415443af69641aa57ed1da5ebbb - languageName: node - linkType: hard - -"iterare@npm:1.2.1": - version: 1.2.1 - resolution: "iterare@npm:1.2.1" - checksum: 70bc80038e3718aa9072bc63b3a0135166d7120bde46bfcaf80a88d11005dcef1b2d69cd353849f87a3f58ba8f546a8c6e6983408236ff01fa50b52339ee5223 - languageName: node - linkType: hard - -"jest-changed-files@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-changed-files@npm:27.5.1" - dependencies: - "@jest/types": ^27.5.1 - execa: ^5.0.0 - throat: ^6.0.1 - checksum: 95e9dc74c3ca688ef85cfeab270f43f8902721a6c8ade6ac2459459a77890c85977f537d6fb809056deaa6d9c3f075fa7d2699ff5f3bf7d3fda17c3760b79b15 - languageName: node - linkType: hard - -"jest-circus@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-circus@npm:27.5.1" - dependencies: - "@jest/environment": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/node": "*" - chalk: ^4.0.0 - co: ^4.6.0 - dedent: ^0.7.0 - expect: ^27.5.1 - is-generator-fn: ^2.0.0 - jest-each: ^27.5.1 - jest-matcher-utils: ^27.5.1 - jest-message-util: ^27.5.1 - jest-runtime: ^27.5.1 - jest-snapshot: ^27.5.1 - jest-util: ^27.5.1 - pretty-format: ^27.5.1 - slash: ^3.0.0 - stack-utils: ^2.0.3 - throat: ^6.0.1 - checksum: 6192dccbccb3a6acfa361cbb97bdbabe94864ccf3d885932cfd41f19534329d40698078cf9be1489415e8234255d6ea9f9aff5396b79ad842a6fca6e6fc08fd0 - languageName: node - linkType: hard - -"jest-cli@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-cli@npm:27.5.1" - dependencies: - "@jest/core": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/types": ^27.5.1 - chalk: ^4.0.0 - exit: ^0.1.2 - graceful-fs: ^4.2.9 - import-local: ^3.0.2 - jest-config: ^27.5.1 - jest-util: ^27.5.1 - jest-validate: ^27.5.1 - prompts: ^2.0.1 - yargs: ^16.2.0 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: 6c0a69fb48e500241409e09ff743ed72bc6578d7769e2c994724e7ef1e5587f6c1f85dc429e93b98ae38a365222993ee70f0acc2199358992120900984f349e5 - languageName: node - linkType: hard - -"jest-config@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-config@npm:27.5.1" - dependencies: - "@babel/core": ^7.8.0 - "@jest/test-sequencer": ^27.5.1 - "@jest/types": ^27.5.1 - babel-jest: ^27.5.1 - chalk: ^4.0.0 - ci-info: ^3.2.0 - deepmerge: ^4.2.2 - glob: ^7.1.1 - graceful-fs: ^4.2.9 - jest-circus: ^27.5.1 - jest-environment-jsdom: ^27.5.1 - jest-environment-node: ^27.5.1 - jest-get-type: ^27.5.1 - jest-jasmine2: ^27.5.1 - jest-regex-util: ^27.5.1 - jest-resolve: ^27.5.1 - jest-runner: ^27.5.1 - jest-util: ^27.5.1 - jest-validate: ^27.5.1 - micromatch: ^4.0.4 - parse-json: ^5.2.0 - pretty-format: ^27.5.1 - slash: ^3.0.0 - strip-json-comments: ^3.1.1 - peerDependencies: - ts-node: ">=9.0.0" - peerDependenciesMeta: - ts-node: - optional: true - checksum: 1188fd46c0ed78cbe3175eb9ad6712ccf74a74be33d9f0d748e147c107f0889f8b701fbff1567f31836ae18597dacdc43d6a8fc30dd34ade6c9229cc6c7cb82d - languageName: node - linkType: hard - -"jest-diff@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-diff@npm:27.5.1" - dependencies: - chalk: ^4.0.0 - diff-sequences: ^27.5.1 - jest-get-type: ^27.5.1 - pretty-format: ^27.5.1 - checksum: 8be27c1e1ee57b2bb2bef9c0b233c19621b4c43d53a3c26e2c00a4e805eb4ea11fe1694a06a9fb0e80ffdcfdc0d2b1cb0b85920b3f5c892327ecd1e7bd96b865 - languageName: node - linkType: hard - -"jest-docblock@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-docblock@npm:27.5.1" - dependencies: - detect-newline: ^3.0.0 - checksum: c0fed6d55b229d8bffdd8d03f121dd1a3be77c88f50552d374f9e1ea3bde57bf6bea017a0add04628d98abcb1bfb48b456438eeca8a74ef0053f4dae3b95d29c - languageName: node - linkType: hard - -"jest-each@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-each@npm:27.5.1" - dependencies: - "@jest/types": ^27.5.1 - chalk: ^4.0.0 - jest-get-type: ^27.5.1 - jest-util: ^27.5.1 - pretty-format: ^27.5.1 - checksum: b5a6d8730fd938982569c9e0b42bdf3c242f97b957ed8155a6473b5f7b540970f8685524e7f53963dc1805319f4b6602abfc56605590ca19d55bd7a87e467e63 - languageName: node - linkType: hard - -"jest-environment-jsdom@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-environment-jsdom@npm:27.5.1" - dependencies: - "@jest/environment": ^27.5.1 - "@jest/fake-timers": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/node": "*" - jest-mock: ^27.5.1 - jest-util: ^27.5.1 - jsdom: ^16.6.0 - checksum: bc104aef7d7530d0740402aa84ac812138b6d1e51fe58adecce679f82b99340ddab73e5ec68fa079f33f50c9ddec9728fc9f0ddcca2ad6f0b351eed2762cc555 - languageName: node - linkType: hard - -"jest-environment-node@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-environment-node@npm:27.5.1" - dependencies: - "@jest/environment": ^27.5.1 - "@jest/fake-timers": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/node": "*" - jest-mock: ^27.5.1 - jest-util: ^27.5.1 - checksum: 0f988330c4f3eec092e3fb37ea753b0c6f702e83cd8f4d770af9c2bf964a70bc45fbd34ec6fdb6d71ce98a778d9f54afd673e63f222e4667fff289e8069dba39 - languageName: node - linkType: hard - -"jest-get-type@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-get-type@npm:27.5.1" - checksum: 63064ab70195c21007d897c1157bf88ff94a790824a10f8c890392e7d17eda9c3900513cb291ca1c8d5722cad79169764e9a1279f7c8a9c4cd6e9109ff04bbc0 - languageName: node - linkType: hard - -"jest-haste-map@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-haste-map@npm:27.5.1" - dependencies: - "@jest/types": ^27.5.1 - "@types/graceful-fs": ^4.1.2 - "@types/node": "*" - anymatch: ^3.0.3 - fb-watchman: ^2.0.0 - fsevents: ^2.3.2 - graceful-fs: ^4.2.9 - jest-regex-util: ^27.5.1 - jest-serializer: ^27.5.1 - jest-util: ^27.5.1 - jest-worker: ^27.5.1 - micromatch: ^4.0.4 - walker: ^1.0.7 - dependenciesMeta: - fsevents: - optional: true - checksum: e092a1412829a9254b4725531ee72926de530f77fda7b0d9ea18008fb7623c16f72e772d8e93be71cac9e591b2c6843a669610887dd2c89bd9eb528856e3ab47 - languageName: node - linkType: hard - -"jest-jasmine2@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-jasmine2@npm:27.5.1" - dependencies: - "@jest/environment": ^27.5.1 - "@jest/source-map": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/node": "*" - chalk: ^4.0.0 - co: ^4.6.0 - expect: ^27.5.1 - is-generator-fn: ^2.0.0 - jest-each: ^27.5.1 - jest-matcher-utils: ^27.5.1 - jest-message-util: ^27.5.1 - jest-runtime: ^27.5.1 - jest-snapshot: ^27.5.1 - jest-util: ^27.5.1 - pretty-format: ^27.5.1 - throat: ^6.0.1 - checksum: b716adf253ceb73db661936153394ab90d7f3a8ba56d6189b7cd4df8e4e2a4153b4e63ebb5d36e29ceb0f4c211d5a6f36ab7048c6abbd881c8646567e2ab8e6d - languageName: node - linkType: hard - -"jest-leak-detector@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-leak-detector@npm:27.5.1" - dependencies: - jest-get-type: ^27.5.1 - pretty-format: ^27.5.1 - checksum: 5c9689060960567ddaf16c570d87afa760a461885765d2c71ef4f4857bbc3af1482c34e3cce88e50beefde1bf35e33530b020480752057a7e3dbb1ca0bae359f - languageName: node - linkType: hard - -"jest-matcher-utils@npm:^27.0.0, jest-matcher-utils@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-matcher-utils@npm:27.5.1" - dependencies: - chalk: ^4.0.0 - jest-diff: ^27.5.1 - jest-get-type: ^27.5.1 - pretty-format: ^27.5.1 - checksum: bb2135fc48889ff3fe73888f6cc7168ddab9de28b51b3148f820c89fdfd2effdcad005f18be67d0b9be80eda208ad47290f62f03d0a33f848db2dd0273c8217a - languageName: node - linkType: hard - -"jest-message-util@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-message-util@npm:27.5.1" - dependencies: - "@babel/code-frame": ^7.12.13 - "@jest/types": ^27.5.1 - "@types/stack-utils": ^2.0.0 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - micromatch: ^4.0.4 - pretty-format: ^27.5.1 - slash: ^3.0.0 - stack-utils: ^2.0.3 - checksum: eb6d637d1411c71646de578c49826b6da8e33dd293e501967011de9d1916d53d845afbfb52a5b661ff1c495be7c13f751c48c7f30781fd94fbd64842e8195796 - languageName: node - linkType: hard - -"jest-mock@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-mock@npm:27.5.1" - dependencies: - "@jest/types": ^27.5.1 - "@types/node": "*" - checksum: f5b5904bb1741b4a1687a5f492535b7b1758dc26534c72a5423305f8711292e96a601dec966df81bb313269fb52d47227e29f9c2e08324d79529172f67311be0 - languageName: node - linkType: hard - -"jest-pnp-resolver@npm:^1.2.2": - version: 1.2.2 - resolution: "jest-pnp-resolver@npm:1.2.2" - peerDependencies: - jest-resolve: "*" - peerDependenciesMeta: - jest-resolve: - optional: true - checksum: bd85dcc0e76e0eb0c3d56382ec140f08d25ff4068cda9d0e360bb78fb176cb726d0beab82dc0e8694cafd09f55fee7622b8bcb240afa5fad301f4ed3eebb4f47 - languageName: node - linkType: hard - -"jest-regex-util@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-regex-util@npm:27.5.1" - checksum: d45ca7a9543616a34f7f3079337439cf07566e677a096472baa2810e274b9808b76767c97b0a4029b8a5b82b9d256dee28ef9ad4138b2b9e5933f6fac106c418 - languageName: node - linkType: hard - -"jest-resolve-dependencies@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-resolve-dependencies@npm:27.5.1" - dependencies: - "@jest/types": ^27.5.1 - jest-regex-util: ^27.5.1 - jest-snapshot: ^27.5.1 - checksum: c67af97afad1da88f5530317c732bbd1262d1225f6cd7f4e4740a5db48f90ab0bd8564738ac70d1a43934894f9aef62205c1b8f8ee89e5c7a737e6a121ee4c25 - languageName: node - linkType: hard - -"jest-resolve@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-resolve@npm:27.5.1" - dependencies: - "@jest/types": ^27.5.1 - chalk: ^4.0.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^27.5.1 - jest-pnp-resolver: ^1.2.2 - jest-util: ^27.5.1 - jest-validate: ^27.5.1 - resolve: ^1.20.0 - resolve.exports: ^1.1.0 - slash: ^3.0.0 - checksum: 735830e7265b20a348029738680bb2f6e37f80ecea86cda869a4c318ba3a45d39c7a3a873a22f7f746d86258c50ead6e7f501de043e201c095d7ba628a1c440f - languageName: node - linkType: hard - -"jest-runner@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-runner@npm:27.5.1" - dependencies: - "@jest/console": ^27.5.1 - "@jest/environment": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/transform": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/node": "*" - chalk: ^4.0.0 - emittery: ^0.8.1 - graceful-fs: ^4.2.9 - jest-docblock: ^27.5.1 - jest-environment-jsdom: ^27.5.1 - jest-environment-node: ^27.5.1 - jest-haste-map: ^27.5.1 - jest-leak-detector: ^27.5.1 - jest-message-util: ^27.5.1 - jest-resolve: ^27.5.1 - jest-runtime: ^27.5.1 - jest-util: ^27.5.1 - jest-worker: ^27.5.1 - source-map-support: ^0.5.6 - throat: ^6.0.1 - checksum: 5bbe6cf847dd322b3332ec9d6977b54f91bd5f72ff620bc1a0192f0f129deda8aa7ca74c98922187a7aa87d8e0ce4f6c50e99a7ccb2a310bf4d94be2e0c3ce8e - languageName: node - linkType: hard - -"jest-runtime@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-runtime@npm:27.5.1" - dependencies: - "@jest/environment": ^27.5.1 - "@jest/fake-timers": ^27.5.1 - "@jest/globals": ^27.5.1 - "@jest/source-map": ^27.5.1 - "@jest/test-result": ^27.5.1 - "@jest/transform": ^27.5.1 - "@jest/types": ^27.5.1 - chalk: ^4.0.0 - cjs-module-lexer: ^1.0.0 - collect-v8-coverage: ^1.0.0 - execa: ^5.0.0 - glob: ^7.1.3 - graceful-fs: ^4.2.9 - jest-haste-map: ^27.5.1 - jest-message-util: ^27.5.1 - jest-mock: ^27.5.1 - jest-regex-util: ^27.5.1 - jest-resolve: ^27.5.1 - jest-snapshot: ^27.5.1 - jest-util: ^27.5.1 - slash: ^3.0.0 - strip-bom: ^4.0.0 - checksum: 929e3df0c53dab43f831f2af4e2996b22aa8cb2d6d483919d6b0426cbc100098fd5b777b998c6568b77f8c4d860b2e83127514292ff61416064f5ef926492386 - languageName: node - linkType: hard - -"jest-serializer@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-serializer@npm:27.5.1" - dependencies: - "@types/node": "*" - graceful-fs: ^4.2.9 - checksum: 803e03a552278610edc6753c0dd9fa5bb5cd3ca47414a7b2918106efb62b79fd5e9ae785d0a21f12a299fa599fea8acc1fa6dd41283328cee43962cf7df9bb44 - languageName: node - linkType: hard - -"jest-snapshot@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-snapshot@npm:27.5.1" - dependencies: - "@babel/core": ^7.7.2 - "@babel/generator": ^7.7.2 - "@babel/plugin-syntax-typescript": ^7.7.2 - "@babel/traverse": ^7.7.2 - "@babel/types": ^7.0.0 - "@jest/transform": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/babel__traverse": ^7.0.4 - "@types/prettier": ^2.1.5 - babel-preset-current-node-syntax: ^1.0.0 - chalk: ^4.0.0 - expect: ^27.5.1 - graceful-fs: ^4.2.9 - jest-diff: ^27.5.1 - jest-get-type: ^27.5.1 - jest-haste-map: ^27.5.1 - jest-matcher-utils: ^27.5.1 - jest-message-util: ^27.5.1 - jest-util: ^27.5.1 - natural-compare: ^1.4.0 - pretty-format: ^27.5.1 - semver: ^7.3.2 - checksum: a5cfadf0d21cd76063925d1434bc076443ed6d87847d0e248f0b245f11db3d98ff13e45cc03b15404027dabecd712d925f47b6eae4f64986f688640a7d362514 - languageName: node - linkType: hard - -"jest-util@npm:^27.0.0": - version: 27.4.2 - resolution: "jest-util@npm:27.4.2" - dependencies: - "@jest/types": ^27.4.2 - "@types/node": "*" - chalk: ^4.0.0 - ci-info: ^3.2.0 - graceful-fs: ^4.2.4 - picomatch: ^2.2.3 - checksum: bcf16881aff1421c5f7c2df2ef9492cf8cd92fcd0a2a99bec5ab16f7185ee19aea48eda41d9dfa7b5bf4354bdc21628f5931cd2e7281741e6d2983965efb631e - languageName: node - linkType: hard - -"jest-util@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-util@npm:27.5.1" - dependencies: - "@jest/types": ^27.5.1 - "@types/node": "*" - chalk: ^4.0.0 - ci-info: ^3.2.0 - graceful-fs: ^4.2.9 - picomatch: ^2.2.3 - checksum: ac8d122f6daf7a035dcea156641fd3701aeba245417c40836a77e35b3341b9c02ddc5d904cfcd4ddbaa00ab854da76d3b911870cafdcdbaff90ea471de26c7d7 - languageName: node - linkType: hard - -"jest-validate@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-validate@npm:27.5.1" - dependencies: - "@jest/types": ^27.5.1 - camelcase: ^6.2.0 - chalk: ^4.0.0 - jest-get-type: ^27.5.1 - leven: ^3.1.0 - pretty-format: ^27.5.1 - checksum: 82e870f8ee7e4fb949652711b1567f05ae31c54be346b0899e8353e5c20fad7692b511905b37966945e90af8dc0383eb41a74f3ffefb16140ea4f9164d841412 - languageName: node - linkType: hard - -"jest-watcher@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-watcher@npm:27.5.1" - dependencies: - "@jest/test-result": ^27.5.1 - "@jest/types": ^27.5.1 - "@types/node": "*" - ansi-escapes: ^4.2.1 - chalk: ^4.0.0 - jest-util: ^27.5.1 - string-length: ^4.0.1 - checksum: 191c4e9c278c0902ade1a8a80883ac244963ba3e6e78607a3d5f729ccca9c6e71fb3b316f87883658132641c5d818aa84202585c76752e03c539e6cbecb820bd - languageName: node - linkType: hard - -"jest-worker@npm:^27.5.1": - version: 27.5.1 - resolution: "jest-worker@npm:27.5.1" - dependencies: - "@types/node": "*" - merge-stream: ^2.0.0 - supports-color: ^8.0.0 - checksum: 98cd68b696781caed61c983a3ee30bf880b5bd021c01d98f47b143d4362b85d0737f8523761e2713d45e18b4f9a2b98af1eaee77afade4111bb65c77d6f7c980 - languageName: node - linkType: hard - -"jest@npm:^27.5.1": - version: 27.5.1 - resolution: "jest@npm:27.5.1" - dependencies: - "@jest/core": ^27.5.1 - import-local: ^3.0.2 - jest-cli: ^27.5.1 - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: 96f1d69042b3c6dfc695f2a4e4b0db38af6fb78582ad1a02beaa57cfcd77cbd31567d7d865c1c85709b7c3e176eefa3b2035ffecd646005f15d8ef528eccf205 - languageName: node - linkType: hard - -"js-tokens@npm:^4.0.0": - version: 4.0.0 - resolution: "js-tokens@npm:4.0.0" - checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 - languageName: node - linkType: hard - -"js-yaml@npm:^3.13.1": - version: 3.14.1 - resolution: "js-yaml@npm:3.14.1" - dependencies: - argparse: ^1.0.7 - esprima: ^4.0.0 - bin: - js-yaml: bin/js-yaml.js - checksum: bef146085f472d44dee30ec34e5cf36bf89164f5d585435a3d3da89e52622dff0b188a580e4ad091c3341889e14cb88cac6e4deb16dc5b1e9623bb0601fc255c - languageName: node - linkType: hard - -"js-yaml@npm:^4.1.0": - version: 4.1.0 - resolution: "js-yaml@npm:4.1.0" - dependencies: - argparse: ^2.0.1 - bin: - js-yaml: bin/js-yaml.js - checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a - languageName: node - linkType: hard - -"jsdom@npm:^16.6.0": - version: 16.7.0 - resolution: "jsdom@npm:16.7.0" - dependencies: - abab: ^2.0.5 - acorn: ^8.2.4 - acorn-globals: ^6.0.0 - cssom: ^0.4.4 - cssstyle: ^2.3.0 - data-urls: ^2.0.0 - decimal.js: ^10.2.1 - domexception: ^2.0.1 - escodegen: ^2.0.0 - form-data: ^3.0.0 - html-encoding-sniffer: ^2.0.1 - http-proxy-agent: ^4.0.1 - https-proxy-agent: ^5.0.0 - is-potential-custom-element-name: ^1.0.1 - nwsapi: ^2.2.0 - parse5: 6.0.1 - saxes: ^5.0.1 - symbol-tree: ^3.2.4 - tough-cookie: ^4.0.0 - w3c-hr-time: ^1.0.2 - w3c-xmlserializer: ^2.0.0 - webidl-conversions: ^6.1.0 - whatwg-encoding: ^1.0.5 - whatwg-mimetype: ^2.3.0 - whatwg-url: ^8.5.0 - ws: ^7.4.6 - xml-name-validator: ^3.0.0 - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - checksum: 454b83371857000763ed31130a049acd1b113e3b927e6dcd75c67ddc30cdd242d7ebcac5c2294b7a1a6428155cb1398709c573b3c6d809218692ea68edd93370 - languageName: node - linkType: hard - -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" - bin: - jsesc: bin/jsesc - checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d - languageName: node - linkType: hard - -"json-parse-even-better-errors@npm:^2.3.0": - version: 2.3.1 - resolution: "json-parse-even-better-errors@npm:2.3.1" - checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f - languageName: node - linkType: hard - -"json-schema-traverse@npm:^0.4.1": - version: 0.4.1 - resolution: "json-schema-traverse@npm:0.4.1" - checksum: 7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b - languageName: node - linkType: hard - -"json-stable-stringify-without-jsonify@npm:^1.0.1": - version: 1.0.1 - resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" - checksum: cff44156ddce9c67c44386ad5cddf91925fe06b1d217f2da9c4910d01f358c6e3989c4d5a02683c7a5667f9727ff05831f7aa8ae66c8ff691c556f0884d49215 - languageName: node - linkType: hard - -"json5@npm:2.x, json5@npm:^2.1.2": - version: 2.2.0 - resolution: "json5@npm:2.2.0" - dependencies: - minimist: ^1.2.5 - bin: - json5: lib/cli.js - checksum: e88fc5274bb58fc99547baa777886b069d2dd96d9cfc4490b305fd16d711dabd5979e35a4f90873cefbeb552e216b041a304fe56702bedba76e19bc7845f208d - languageName: node - linkType: hard - -"json5@npm:^1.0.1": - version: 1.0.1 - resolution: "json5@npm:1.0.1" - dependencies: - minimist: ^1.2.0 - bin: - json5: lib/cli.js - checksum: e76ea23dbb8fc1348c143da628134a98adf4c5a4e8ea2adaa74a80c455fc2cdf0e2e13e6398ef819bfe92306b610ebb2002668ed9fc1af386d593691ef346fc3 - languageName: node - linkType: hard - -"jsonc-parser@npm:^3.0.0": - version: 3.0.0 - resolution: "jsonc-parser@npm:3.0.0" - checksum: 1df2326f1f9688de30c70ff19c5b2a83ba3b89a1036160da79821d1361090775e9db502dc57a67c11b56e1186fc1ed70b887f25c5febf9a3ec4f91435836c99d - languageName: node - linkType: hard - -"kleur@npm:^3.0.3": - version: 3.0.3 - resolution: "kleur@npm:3.0.3" - checksum: df82cd1e172f957bae9c536286265a5cdbd5eeca487cb0a3b2a7b41ef959fc61f8e7c0e9aeea9c114ccf2c166b6a8dd45a46fd619c1c569d210ecd2765ad5169 - languageName: node - linkType: hard - -"leven@npm:^3.1.0": - version: 3.1.0 - resolution: "leven@npm:3.1.0" - checksum: 638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55 - languageName: node - linkType: hard - -"levn@npm:^0.4.1": - version: 0.4.1 - resolution: "levn@npm:0.4.1" - dependencies: - prelude-ls: ^1.2.1 - type-check: ~0.4.0 - checksum: 12c5021c859bd0f5248561bf139121f0358285ec545ebf48bb3d346820d5c61a4309535c7f387ed7d84361cf821e124ce346c6b7cef8ee09a67c1473b46d0fc4 - languageName: node - linkType: hard - -"levn@npm:~0.3.0": - version: 0.3.0 - resolution: "levn@npm:0.3.0" - dependencies: - prelude-ls: ~1.1.2 - type-check: ~0.3.2 - checksum: 0d084a524231a8246bb10fec48cdbb35282099f6954838604f3c7fc66f2e16fa66fd9cc2f3f20a541a113c4dafdf181e822c887c8a319c9195444e6c64ac395e - languageName: node - linkType: hard - -"libphonenumber-js@npm:^1.10.14": - version: 1.10.15 - resolution: "libphonenumber-js@npm:1.10.15" - checksum: 94283206159b9eaf07e4af9c002dda2b0b171099a8116baa0b6871f6312475112ec92121cca85916968fa9fb1220641205f6ee2349a1cc33197d811a69572198 - languageName: node - linkType: hard - -"lines-and-columns@npm:^1.1.6": - version: 1.2.4 - resolution: "lines-and-columns@npm:1.2.4" - checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 - languageName: node - linkType: hard - -"locate-path@npm:^2.0.0": - version: 2.0.0 - resolution: "locate-path@npm:2.0.0" - dependencies: - p-locate: ^2.0.0 - path-exists: ^3.0.0 - checksum: 02d581edbbbb0fa292e28d96b7de36b5b62c2fa8b5a7e82638ebb33afa74284acf022d3b1e9ae10e3ffb7658fbc49163fcd5e76e7d1baaa7801c3e05a81da755 - languageName: node - linkType: hard - -"locate-path@npm:^5.0.0": - version: 5.0.0 - resolution: "locate-path@npm:5.0.0" - dependencies: - p-locate: ^4.1.0 - checksum: 83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 - languageName: node - linkType: hard - -"lodash.memoize@npm:4.x": - version: 4.1.2 - resolution: "lodash.memoize@npm:4.1.2" - checksum: 9ff3942feeccffa4f1fafa88d32f0d24fdc62fd15ded5a74a5f950ff5f0c6f61916157246744c620173dddf38d37095a92327d5fd3861e2063e736a5c207d089 - languageName: node - linkType: hard - -"lodash.merge@npm:^4.6.2": - version: 4.6.2 - resolution: "lodash.merge@npm:4.6.2" - checksum: ad580b4bdbb7ca1f7abf7e1bce63a9a0b98e370cf40194b03380a46b4ed799c9573029599caebc1b14e3f24b111aef72b96674a56cfa105e0f5ac70546cdc005 - languageName: node - linkType: hard - -"lodash@npm:4.17.21, lodash@npm:^4.7.0": - version: 4.17.21 - resolution: "lodash@npm:4.17.21" - checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 - languageName: node - linkType: hard - -"lru-cache@npm:^6.0.0": - version: 6.0.0 - resolution: "lru-cache@npm:6.0.0" - dependencies: - yallist: ^4.0.0 - checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 - languageName: node - linkType: hard - -"lru-cache@npm:^7.7.1": - version: 7.8.1 - resolution: "lru-cache@npm:7.8.1" - checksum: 31ea67388c9774300331d70f4affd5a433869bcf0fae5405f967d19d7b447930b713b0566a2e95362c9082034a8b496f3671ccf8f0c061d8e8048412663f9432 - languageName: node - linkType: hard - -"lunr@npm:^2.3.9": - version: 2.3.9 - resolution: "lunr@npm:2.3.9" - checksum: 176719e24fcce7d3cf1baccce9dd5633cd8bdc1f41ebe6a180112e5ee99d80373fe2454f5d4624d437e5a8319698ca6837b9950566e15d2cae5f2a543a3db4b8 - languageName: node - linkType: hard - -"make-dir@npm:^3.0.0": - version: 3.1.0 - resolution: "make-dir@npm:3.1.0" - dependencies: - semver: ^6.0.0 - checksum: 484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78 - languageName: node - linkType: hard - -"make-error@npm:1.x, make-error@npm:^1.1.1": - version: 1.3.6 - resolution: "make-error@npm:1.3.6" - checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 - languageName: node - linkType: hard - -"make-fetch-happen@npm:^10.0.3": - version: 10.1.2 - resolution: "make-fetch-happen@npm:10.1.2" - dependencies: - agentkeepalive: ^4.2.1 - cacache: ^16.0.2 - http-cache-semantics: ^4.1.0 - http-proxy-agent: ^5.0.0 - https-proxy-agent: ^5.0.0 - is-lambda: ^1.0.1 - lru-cache: ^7.7.1 - minipass: ^3.1.6 - minipass-collect: ^1.0.2 - minipass-fetch: ^2.0.3 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - negotiator: ^0.6.3 - promise-retry: ^2.0.1 - socks-proxy-agent: ^6.1.1 - ssri: ^9.0.0 - checksum: 42825d119a7e4f5b1a8e7048a86d328cd36bb1ff875d155ce7079d9a0afdd310c198fb310096af358cfa9ecdf643cecf960380686792457dccb36e17efe89eb0 - languageName: node - linkType: hard - -"makeerror@npm:1.0.12": - version: 1.0.12 - resolution: "makeerror@npm:1.0.12" - dependencies: - tmpl: 1.0.5 - checksum: b38a025a12c8146d6eeea5a7f2bf27d51d8ad6064da8ca9405fcf7bf9b54acd43e3b30ddd7abb9b1bfa4ddb266019133313482570ddb207de568f71ecfcf6060 - languageName: node - linkType: hard - -"marked@npm:^4.0.19": - version: 4.2.4 - resolution: "marked@npm:4.2.4" - bin: - marked: bin/marked.js - checksum: 5eb5bfa6ee4cf85712a3ccbe2a549c397e8886f5d18312a02696c7e3817625a6b91a8ad27a6ed43b06ddbdfb812f471b1270517c4b8fb068a6a9e5b4d555a5aa - languageName: node - linkType: hard - -"media-typer@npm:0.3.0": - version: 0.3.0 - resolution: "media-typer@npm:0.3.0" - checksum: af1b38516c28ec95d6b0826f6c8f276c58aec391f76be42aa07646b4e39d317723e869700933ca6995b056db4b09a78c92d5440dc23657e6764be5d28874bba1 - languageName: node - linkType: hard - -"memory-pager@npm:^1.0.2": - version: 1.5.0 - resolution: "memory-pager@npm:1.5.0" - checksum: d1a2e684583ef55c61cd3a49101da645b11ad57014dfc565e0b43baa9004b743f7e4ab81493d8fff2ab24e9950987cc3209c94bcc4fc8d7e30a475489a1f15e9 - languageName: node - linkType: hard - -"merge-descriptors@npm:1.0.1": - version: 1.0.1 - resolution: "merge-descriptors@npm:1.0.1" - checksum: 5abc259d2ae25bb06d19ce2b94a21632583c74e2a9109ee1ba7fd147aa7362b380d971e0251069f8b3eb7d48c21ac839e21fa177b335e82c76ec172e30c31a26 - languageName: node - linkType: hard - -"merge-stream@npm:^2.0.0": - version: 2.0.0 - resolution: "merge-stream@npm:2.0.0" - checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 - languageName: node - linkType: hard - -"merge2@npm:^1.3.0, merge2@npm:^1.4.1": - version: 1.4.1 - resolution: "merge2@npm:1.4.1" - checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 - languageName: node - linkType: hard - -"methods@npm:^1.1.2, methods@npm:~1.1.2": - version: 1.1.2 - resolution: "methods@npm:1.1.2" - checksum: 0917ff4041fa8e2f2fda5425a955fe16ca411591fbd123c0d722fcf02b73971ed6f764d85f0a6f547ce49ee0221ce2c19a5fa692157931cecb422984f1dcd13a - languageName: node - linkType: hard - -"micromatch@npm:^4.0.4": - version: 4.0.4 - resolution: "micromatch@npm:4.0.4" - dependencies: - braces: ^3.0.1 - picomatch: ^2.2.3 - checksum: ef3d1c88e79e0a68b0e94a03137676f3324ac18a908c245a9e5936f838079fcc108ac7170a5fadc265a9c2596963462e402841406bda1a4bb7b68805601d631c - languageName: node - linkType: hard - -"mime-db@npm:1.51.0": - version: 1.51.0 - resolution: "mime-db@npm:1.51.0" - checksum: 613b1ac9d6e725cc24444600b124a7f1ce6c60b1baa654f39a3e260d0995a6dffc5693190217e271af7e2a5612dae19f2a73f3e316707d797a7391165f7ef423 - languageName: node - linkType: hard - -"mime-db@npm:1.52.0": - version: 1.52.0 - resolution: "mime-db@npm:1.52.0" - checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f - languageName: node - linkType: hard - -"mime-types@npm:^2.1.12, mime-types@npm:~2.1.24": - version: 2.1.34 - resolution: "mime-types@npm:2.1.34" - dependencies: - mime-db: 1.51.0 - checksum: 67013de9e9d6799bde6d669d18785b7e18bcd212e710d3e04a4727f92f67a8ad4e74aee24be28b685adb794944814bde649119b58ee3282ffdbee58f9278d9f3 - languageName: node - linkType: hard - -"mime-types@npm:~2.1.34": - version: 2.1.35 - resolution: "mime-types@npm:2.1.35" - dependencies: - mime-db: 1.52.0 - checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836 - languageName: node - linkType: hard - -"mime@npm:1.6.0": - version: 1.6.0 - resolution: "mime@npm:1.6.0" - bin: - mime: cli.js - checksum: fef25e39263e6d207580bdc629f8872a3f9772c923c7f8c7e793175cee22777bbe8bba95e5d509a40aaa292d8974514ce634ae35769faa45f22d17edda5e8557 - languageName: node - linkType: hard - -"mime@npm:2.6.0": - version: 2.6.0 - resolution: "mime@npm:2.6.0" - bin: - mime: cli.js - checksum: 1497ba7b9f6960694268a557eae24b743fd2923da46ec392b042469f4b901721ba0adcf8b0d3c2677839d0e243b209d76e5edcbd09cfdeffa2dfb6bb4df4b862 - languageName: node - linkType: hard - -"mimic-fn@npm:^2.1.0": - version: 2.1.0 - resolution: "mimic-fn@npm:2.1.0" - checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a - languageName: node - linkType: hard - -"min-document@npm:^2.19.0": - version: 2.19.0 - resolution: "min-document@npm:2.19.0" - dependencies: - dom-walk: ^0.1.0 - checksum: da6437562ea2228041542a2384528e74e22d1daa1a4ec439c165abf0b9d8a63e17e3b8a6dc6e0c731845e85301198730426932a0e813d23f932ca668340c9623 - languageName: node - linkType: hard - -"minimatch@npm:^3.0.4": - version: 3.0.4 - resolution: "minimatch@npm:3.0.4" - dependencies: - brace-expansion: ^1.1.7 - checksum: 66ac295f8a7b59788000ea3749938b0970344c841750abd96694f80269b926ebcafad3deeb3f1da2522978b119e6ae3a5869b63b13a7859a456b3408bd18a078 - languageName: node - linkType: hard - -"minimatch@npm:^3.1.2": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" - dependencies: - brace-expansion: ^1.1.7 - checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a - languageName: node - linkType: hard - -"minimatch@npm:^5.0.1": - version: 5.0.1 - resolution: "minimatch@npm:5.0.1" - dependencies: - brace-expansion: ^2.0.1 - checksum: b34b98463da4754bc526b244d680c69d4d6089451ebe512edaf6dd9eeed0279399cfa3edb19233513b8f830bf4bfcad911dddcdf125e75074100d52f724774f0 - languageName: node - linkType: hard - -"minimatch@npm:^5.1.0": - version: 5.1.1 - resolution: "minimatch@npm:5.1.1" - dependencies: - brace-expansion: ^2.0.1 - checksum: 215edd0978320a3354188f84a537d45841f2449af4df4379f79b9b777e71aa4f5722cc9d1717eabd2a70d38ef76ab7b708d24d83ea6a6c909dfd8833de98b437 - languageName: node - linkType: hard - -"minimist@npm:^1.2.0, minimist@npm:^1.2.5": - version: 1.2.5 - resolution: "minimist@npm:1.2.5" - checksum: 86706ce5b36c16bfc35c5fe3dbb01d5acdc9a22f2b6cc810b6680656a1d2c0e44a0159c9a3ba51fb072bb5c203e49e10b51dcd0eec39c481f4c42086719bae52 - languageName: node - linkType: hard - -"minimist@npm:^1.2.6": - version: 1.2.6 - resolution: "minimist@npm:1.2.6" - checksum: d15428cd1e11eb14e1233bcfb88ae07ed7a147de251441d61158619dfb32c4d7e9061d09cab4825fdee18ecd6fce323228c8c47b5ba7cd20af378ca4048fb3fb - languageName: node - linkType: hard - -"minipass-collect@npm:^1.0.2": - version: 1.0.2 - resolution: "minipass-collect@npm:1.0.2" - dependencies: - minipass: ^3.0.0 - checksum: 14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10 - languageName: node - linkType: hard - -"minipass-fetch@npm:^2.0.3": - version: 2.1.0 - resolution: "minipass-fetch@npm:2.1.0" - dependencies: - encoding: ^0.1.13 - minipass: ^3.1.6 - minipass-sized: ^1.0.3 - minizlib: ^2.1.2 - dependenciesMeta: - encoding: - optional: true - checksum: 1334732859a3f7959ed22589bafd9c40384b885aebb5932328071c33f86b3eb181d54c86919675d1825ab5f1c8e4f328878c863873258d113c29d79a4b0c9c9f - languageName: node - linkType: hard - -"minipass-flush@npm:^1.0.5": - version: 1.0.5 - resolution: "minipass-flush@npm:1.0.5" - dependencies: - minipass: ^3.0.0 - checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf - languageName: node - linkType: hard - -"minipass-pipeline@npm:^1.2.4": - version: 1.2.4 - resolution: "minipass-pipeline@npm:1.2.4" - dependencies: - minipass: ^3.0.0 - checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b - languageName: node - linkType: hard - -"minipass-sized@npm:^1.0.3": - version: 1.0.3 - resolution: "minipass-sized@npm:1.0.3" - dependencies: - minipass: ^3.0.0 - checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 - languageName: node - linkType: hard - -"minipass@npm:^3.0.0, minipass@npm:^3.1.1, minipass@npm:^3.1.6": - version: 3.1.6 - resolution: "minipass@npm:3.1.6" - dependencies: - yallist: ^4.0.0 - checksum: 57a04041413a3531a65062452cb5175f93383ef245d6f4a2961d34386eb9aa8ac11ac7f16f791f5e8bbaf1dfb1ef01596870c88e8822215db57aa591a5bb0a77 - languageName: node - linkType: hard - -"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": - version: 2.1.2 - resolution: "minizlib@npm:2.1.2" - dependencies: - minipass: ^3.0.0 - yallist: ^4.0.0 - checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 - languageName: node - linkType: hard - -"mkdirp@npm:^0.5.4": - version: 0.5.5 - resolution: "mkdirp@npm:0.5.5" - dependencies: - minimist: ^1.2.5 - bin: - mkdirp: bin/cmd.js - checksum: 3bce20ea525f9477befe458ab85284b0b66c8dc3812f94155af07c827175948cdd8114852ac6c6d82009b13c1048c37f6d98743eb019651ee25c39acc8aabe7d - languageName: node - linkType: hard - -"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": - version: 1.0.4 - resolution: "mkdirp@npm:1.0.4" - bin: - mkdirp: bin/cmd.js - checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f - languageName: node - linkType: hard - -"mongodb-connection-string-url@npm:^2.5.4": - version: 2.6.0 - resolution: "mongodb-connection-string-url@npm:2.6.0" - dependencies: - "@types/whatwg-url": ^8.2.1 - whatwg-url: ^11.0.0 - checksum: 1d662f0ecfe96f7a400f625c244b2e52914c98f3562ee7d19941127578b5f8237624433bdcea285a654041b945b518803512989690c74548aec5860c5541c605 - languageName: node - linkType: hard - -"mongodb@npm:^4.12.1": - version: 4.12.1 - resolution: "mongodb@npm:4.12.1" - dependencies: - "@aws-sdk/credential-providers": ^3.186.0 - bson: ^4.7.0 - mongodb-connection-string-url: ^2.5.4 - saslprep: ^1.0.3 - socks: ^2.7.1 - dependenciesMeta: - "@aws-sdk/credential-providers": - optional: true - saslprep: - optional: true - checksum: 84590484b2c93bce849ec1e334b064e983444ed73942061c91e09556348c80db9d4a40544b927cd795bdfbfc51d1b713a7df5ced4ecf13cd00fab5e3c3e32ada - languageName: node - linkType: hard - -"ms@npm:2.0.0": - version: 2.0.0 - resolution: "ms@npm:2.0.0" - checksum: 0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 - languageName: node - linkType: hard - -"ms@npm:2.1.2": - version: 2.1.2 - resolution: "ms@npm:2.1.2" - checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f - languageName: node - linkType: hard - -"ms@npm:2.1.3, ms@npm:^2.0.0, ms@npm:^2.1.1": - version: 2.1.3 - resolution: "ms@npm:2.1.3" - checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d - languageName: node - linkType: hard - -"multer@npm:1.4.4-lts.1": - version: 1.4.4-lts.1 - resolution: "multer@npm:1.4.4-lts.1" - dependencies: - append-field: ^1.0.0 - busboy: ^1.0.0 - concat-stream: ^1.5.2 - mkdirp: ^0.5.4 - object-assign: ^4.1.1 - type-is: ^1.6.4 - xtend: ^4.0.0 - checksum: da04b06efdbff9bd42d9f71297eeb2c0566231a4b9c895f49479c09b163c5e404aa6e58bd1c19f006f82e2114362545e39cbf7e0163ffd8d73d0f88adf4489e2 - languageName: node - linkType: hard - -"natural-compare@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare@npm:1.4.0" - checksum: 23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d - languageName: node - linkType: hard - -"negotiator@npm:0.6.3, negotiator@npm:^0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 - languageName: node - linkType: hard - -"nestjs-mongo@workspace:.": - version: 0.0.0-use.local - resolution: "nestjs-mongo@workspace:." - dependencies: - "@nestjs/common": ^9.2.1 - "@nestjs/core": ^9.2.1 - "@nestjs/platform-express": ^9.2.1 - "@nestjs/testing": ^9.2.1 - "@types/cls-hooked": ^4.3.3 - "@types/debug": ^4.1.7 - "@types/jest": ^27.4.1 - "@types/lodash": ^4.14.191 - "@types/node": ^18.11.15 - "@types/supertest": ^2.0.12 - "@typescript-eslint/eslint-plugin": ^5.21.0 - "@typescript-eslint/parser": ^5.21.0 - class-transformer: 0.5.1 - class-validator: ^0.14.0 - cls-hooked: 4.2.2 - debug: 4.3.4 - eslint: ^8.14.0 - eslint-config-prettier: ^8.5.0 - eslint-plugin-import: ^2.26.0 - global: 4.4.0 - jest: ^27.5.1 - lodash: 4.17.21 - mongodb: ^4.12.1 - prettier: ^2.8.1 - reflect-metadata: ^0.1.13 - rxjs: ^7.6.0 - slugify: 1.6.5 - supertest: ^6.3.3 - ts-jest: ^27.1.4 - ts-node: ^10.7.0 - tsconfig-paths: ^3.14.1 - typedoc: ^0.23.22 - typescript: ^4.9.4 - uuid: 8.3.2 - peerDependencies: - "@nestjs/common": ^8 || ^9 - "@nestjs/core": ^8 || ^9 - class-validator: ^0.13.1 || ^0.14 - mongodb: ^4.5.0 - reflect-metadata: ^0.1.13 - languageName: unknown - linkType: soft - -"node-fetch@npm:^2.6.1": - version: 2.6.7 - resolution: "node-fetch@npm:2.6.7" - dependencies: - whatwg-url: ^5.0.0 - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - checksum: 8d816ffd1ee22cab8301c7756ef04f3437f18dace86a1dae22cf81db8ef29c0bf6655f3215cb0cdb22b420b6fe141e64b26905e7f33f9377a7fa59135ea3e10b - languageName: node - linkType: hard - -"node-gyp@npm:latest": - version: 9.0.0 - resolution: "node-gyp@npm:9.0.0" - dependencies: - env-paths: ^2.2.0 - glob: ^7.1.4 - graceful-fs: ^4.2.6 - make-fetch-happen: ^10.0.3 - nopt: ^5.0.0 - npmlog: ^6.0.0 - rimraf: ^3.0.2 - semver: ^7.3.5 - tar: ^6.1.2 - which: ^2.0.2 - bin: - node-gyp: bin/node-gyp.js - checksum: 4d8ef8860f7e4f4d86c91db3f519d26ed5cc23b48fe54543e2afd86162b4acbd14f21de42a5db344525efb69a991e021b96a68c70c6e2d5f4a5cb770793da6d3 - languageName: node - linkType: hard - -"node-int64@npm:^0.4.0": - version: 0.4.0 - resolution: "node-int64@npm:0.4.0" - checksum: d0b30b1ee6d961851c60d5eaa745d30b5c95d94bc0e74b81e5292f7c42a49e3af87f1eb9e89f59456f80645d679202537de751b7d72e9e40ceea40c5e449057e - languageName: node - linkType: hard - -"node-releases@npm:^2.0.1": - version: 2.0.1 - resolution: "node-releases@npm:2.0.1" - checksum: b20dd8d4bced11f75060f0387e05e76b9dc4a0451f7bb3516eade6f50499ea7768ba95d8a60d520c193402df1e58cb3fe301510cc1c1ad68949c3d57b5149866 - languageName: node - linkType: hard - -"nopt@npm:^5.0.0": - version: 5.0.0 - resolution: "nopt@npm:5.0.0" - dependencies: - abbrev: 1 - bin: - nopt: bin/nopt.js - checksum: d35fdec187269503843924e0114c0c6533fb54bbf1620d0f28b4b60ba01712d6687f62565c55cc20a504eff0fbe5c63e22340c3fad549ad40469ffb611b04f2f - languageName: node - linkType: hard - -"normalize-path@npm:^3.0.0": - version: 3.0.0 - resolution: "normalize-path@npm:3.0.0" - checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 - languageName: node - linkType: hard - -"npm-run-path@npm:^4.0.1": - version: 4.0.1 - resolution: "npm-run-path@npm:4.0.1" - dependencies: - path-key: ^3.0.0 - checksum: 5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 - languageName: node - linkType: hard - -"npmlog@npm:^6.0.0": - version: 6.0.2 - resolution: "npmlog@npm:6.0.2" - dependencies: - are-we-there-yet: ^3.0.0 - console-control-strings: ^1.1.0 - gauge: ^4.0.3 - set-blocking: ^2.0.0 - checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a - languageName: node - linkType: hard - -"nwsapi@npm:^2.2.0": - version: 2.2.0 - resolution: "nwsapi@npm:2.2.0" - checksum: 5ef4a9bc0c1a5b7f2e014aa6a4b359a257503b796618ed1ef0eb852098f77e772305bb0e92856e4bbfa3e6c75da48c0113505c76f144555ff38867229c2400a7 - languageName: node - linkType: hard - -"object-assign@npm:^4, object-assign@npm:^4.1.1": - version: 4.1.1 - resolution: "object-assign@npm:4.1.1" - checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f - languageName: node - linkType: hard - -"object-hash@npm:3.0.0": - version: 3.0.0 - resolution: "object-hash@npm:3.0.0" - checksum: 80b4904bb3857c52cc1bfd0b52c0352532ca12ed3b8a6ff06a90cd209dfda1b95cee059a7625eb9da29537027f68ac4619363491eedb2f5d3dddbba97494fd6c - languageName: node - linkType: hard - -"object-inspect@npm:^1.11.0, object-inspect@npm:^1.9.0": - version: 1.12.0 - resolution: "object-inspect@npm:1.12.0" - checksum: 2b36d4001a9c921c6b342e2965734519c9c58c355822243c3207fbf0aac271f8d44d30d2d570d450b2cc6f0f00b72bcdba515c37827d2560e5f22b1899a31cf4 - languageName: node - linkType: hard - -"object-keys@npm:^1.0.12, object-keys@npm:^1.1.1": - version: 1.1.1 - resolution: "object-keys@npm:1.1.1" - checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a - languageName: node - linkType: hard - -"object.assign@npm:^4.1.2": - version: 4.1.2 - resolution: "object.assign@npm:4.1.2" - dependencies: - call-bind: ^1.0.0 - define-properties: ^1.1.3 - has-symbols: ^1.0.1 - object-keys: ^1.1.1 - checksum: d621d832ed7b16ac74027adb87196804a500d80d9aca536fccb7ba48d33a7e9306a75f94c1d29cbfa324bc091bfc530bc24789568efdaee6a47fcfa298993814 - languageName: node - linkType: hard - -"object.values@npm:^1.1.5": - version: 1.1.5 - resolution: "object.values@npm:1.1.5" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - es-abstract: ^1.19.1 - checksum: 0f17e99741ebfbd0fa55ce942f6184743d3070c61bd39221afc929c8422c4907618c8da694c6915bc04a83ab3224260c779ba37fc07bb668bdc5f33b66a902a4 - languageName: node - linkType: hard - -"on-finished@npm:2.4.1": - version: 2.4.1 - resolution: "on-finished@npm:2.4.1" - dependencies: - ee-first: 1.1.1 - checksum: d20929a25e7f0bb62f937a425b5edeb4e4cde0540d77ba146ec9357f00b0d497cdb3b9b05b9c8e46222407d1548d08166bff69cc56dfa55ba0e4469228920ff0 - languageName: node - linkType: hard - -"once@npm:^1.3.0, once@npm:^1.4.0": - version: 1.4.0 - resolution: "once@npm:1.4.0" - dependencies: - wrappy: 1 - checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 - languageName: node - linkType: hard - -"onetime@npm:^5.1.2": - version: 5.1.2 - resolution: "onetime@npm:5.1.2" - dependencies: - mimic-fn: ^2.1.0 - checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 - languageName: node - linkType: hard - -"optionator@npm:^0.8.1": - version: 0.8.3 - resolution: "optionator@npm:0.8.3" - dependencies: - deep-is: ~0.1.3 - fast-levenshtein: ~2.0.6 - levn: ~0.3.0 - prelude-ls: ~1.1.2 - type-check: ~0.3.2 - word-wrap: ~1.2.3 - checksum: b8695ddf3d593203e25ab0900e265d860038486c943ff8b774f596a310f8ceebdb30c6832407a8198ba3ec9debe1abe1f51d4aad94843612db3b76d690c61d34 - languageName: node - linkType: hard - -"optionator@npm:^0.9.1": - version: 0.9.1 - resolution: "optionator@npm:0.9.1" - dependencies: - deep-is: ^0.1.3 - fast-levenshtein: ^2.0.6 - levn: ^0.4.1 - prelude-ls: ^1.2.1 - type-check: ^0.4.0 - word-wrap: ^1.2.3 - checksum: dbc6fa065604b24ea57d734261914e697bd73b69eff7f18e967e8912aa2a40a19a9f599a507fa805be6c13c24c4eae8c71306c239d517d42d4c041c942f508a0 - languageName: node - linkType: hard - -"p-limit@npm:^1.1.0": - version: 1.3.0 - resolution: "p-limit@npm:1.3.0" - dependencies: - p-try: ^1.0.0 - checksum: 281c1c0b8c82e1ac9f81acd72a2e35d402bf572e09721ce5520164e9de07d8274451378a3470707179ad13240535558f4b277f02405ad752e08c7d5b0d54fbfd - languageName: node - linkType: hard - -"p-limit@npm:^2.2.0": - version: 2.3.0 - resolution: "p-limit@npm:2.3.0" - dependencies: - p-try: ^2.0.0 - checksum: 84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 - languageName: node - linkType: hard - -"p-locate@npm:^2.0.0": - version: 2.0.0 - resolution: "p-locate@npm:2.0.0" - dependencies: - p-limit: ^1.1.0 - checksum: e2dceb9b49b96d5513d90f715780f6f4972f46987dc32a0e18bc6c3fc74a1a5d73ec5f81b1398af5e58b99ea1ad03fd41e9181c01fa81b4af2833958696e3081 - languageName: node - linkType: hard - -"p-locate@npm:^4.1.0": - version: 4.1.0 - resolution: "p-locate@npm:4.1.0" - dependencies: - p-limit: ^2.2.0 - checksum: 513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870 - languageName: node - linkType: hard - -"p-map@npm:^4.0.0": - version: 4.0.0 - resolution: "p-map@npm:4.0.0" - dependencies: - aggregate-error: ^3.0.0 - checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c - languageName: node - linkType: hard - -"p-try@npm:^1.0.0": - version: 1.0.0 - resolution: "p-try@npm:1.0.0" - checksum: 3b5303f77eb7722144154288bfd96f799f8ff3e2b2b39330efe38db5dd359e4fb27012464cd85cb0a76e9b7edd1b443568cb3192c22e7cffc34989df0bafd605 - languageName: node - linkType: hard - -"p-try@npm:^2.0.0": - version: 2.2.0 - resolution: "p-try@npm:2.2.0" - checksum: f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae - languageName: node - linkType: hard - -"parent-module@npm:^1.0.0": - version: 1.0.1 - resolution: "parent-module@npm:1.0.1" - dependencies: - callsites: ^3.0.0 - checksum: 6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff - languageName: node - linkType: hard - -"parse-json@npm:^5.2.0": - version: 5.2.0 - resolution: "parse-json@npm:5.2.0" - dependencies: - "@babel/code-frame": ^7.0.0 - error-ex: ^1.3.1 - json-parse-even-better-errors: ^2.3.0 - lines-and-columns: ^1.1.6 - checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 - languageName: node - linkType: hard - -"parse5@npm:6.0.1": - version: 6.0.1 - resolution: "parse5@npm:6.0.1" - checksum: 7d569a176c5460897f7c8f3377eff640d54132b9be51ae8a8fa4979af940830b2b0c296ce75e5bd8f4041520aadde13170dbdec44889975f906098ea0002f4bd - languageName: node - linkType: hard - -"parseurl@npm:~1.3.3": - version: 1.3.3 - resolution: "parseurl@npm:1.3.3" - checksum: 407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2 - languageName: node - linkType: hard - -"path-exists@npm:^3.0.0": - version: 3.0.0 - resolution: "path-exists@npm:3.0.0" - checksum: 96e92643aa34b4b28d0de1cd2eba52a1c5313a90c6542d03f62750d82480e20bfa62bc865d5cfc6165f5fcd5aeb0851043c40a39be5989646f223300021bae0a - languageName: node - linkType: hard - -"path-exists@npm:^4.0.0": - version: 4.0.0 - resolution: "path-exists@npm:4.0.0" - checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 - languageName: node - linkType: hard - -"path-is-absolute@npm:^1.0.0": - version: 1.0.1 - resolution: "path-is-absolute@npm:1.0.1" - checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 - languageName: node - linkType: hard - -"path-key@npm:^3.0.0, path-key@npm:^3.1.0": - version: 3.1.1 - resolution: "path-key@npm:3.1.1" - checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 - languageName: node - linkType: hard - -"path-parse@npm:^1.0.7": - version: 1.0.7 - resolution: "path-parse@npm:1.0.7" - checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a - languageName: node - linkType: hard - -"path-to-regexp@npm:0.1.7": - version: 0.1.7 - resolution: "path-to-regexp@npm:0.1.7" - checksum: 69a14ea24db543e8b0f4353305c5eac6907917031340e5a8b37df688e52accd09e3cebfe1660b70d76b6bd89152f52183f28c74813dbf454ba1a01c82a38abce - languageName: node - linkType: hard - -"path-to-regexp@npm:3.2.0": - version: 3.2.0 - resolution: "path-to-regexp@npm:3.2.0" - checksum: c3d35cda3b26d9e604d789b9a1764bb9845f53ca8009d5809356b4677a3c064b0f01117a05a5b4b77bafd5ae002a82592e3f3495e885c22961f8b1dab8bd6ae7 - languageName: node - linkType: hard - -"path-type@npm:^4.0.0": - version: 4.0.0 - resolution: "path-type@npm:4.0.0" - checksum: 5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 - languageName: node - linkType: hard - -"picocolors@npm:^1.0.0": - version: 1.0.0 - resolution: "picocolors@npm:1.0.0" - checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 - languageName: node - linkType: hard - -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.3": - version: 2.3.1 - resolution: "picomatch@npm:2.3.1" - checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf - languageName: node - linkType: hard - -"pirates@npm:^4.0.4": - version: 4.0.5 - resolution: "pirates@npm:4.0.5" - checksum: c9994e61b85260bec6c4fc0307016340d9b0c4f4b6550a957afaaff0c9b1ad58fbbea5cfcf083860a25cb27a375442e2b0edf52e2e1e40e69934e08dcc52d227 - languageName: node - linkType: hard - -"pkg-dir@npm:^4.2.0": - version: 4.2.0 - resolution: "pkg-dir@npm:4.2.0" - dependencies: - find-up: ^4.0.0 - checksum: 9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6 - languageName: node - linkType: hard - -"prelude-ls@npm:^1.2.1": - version: 1.2.1 - resolution: "prelude-ls@npm:1.2.1" - checksum: cd192ec0d0a8e4c6da3bb80e4f62afe336df3f76271ac6deb0e6a36187133b6073a19e9727a1ff108cd8b9982e4768850d413baa71214dd80c7979617dca827a - languageName: node - linkType: hard - -"prelude-ls@npm:~1.1.2": - version: 1.1.2 - resolution: "prelude-ls@npm:1.1.2" - checksum: c4867c87488e4a0c233e158e4d0d5565b609b105d75e4c05dc760840475f06b731332eb93cc8c9cecb840aa8ec323ca3c9a56ad7820ad2e63f0261dadcb154e4 - languageName: node - linkType: hard - -"prettier@npm:^2.8.1": - version: 2.8.1 - resolution: "prettier@npm:2.8.1" - bin: - prettier: bin-prettier.js - checksum: 4f21a0f1269f76fb36f54e9a8a1ea4c11e27478958bf860661fb4b6d7ac69aac1581f8724fa98ea3585e56d42a2ea317a17ff6e3324f40cb11ff9e20b73785cc - languageName: node - linkType: hard - -"pretty-format@npm:^27.0.0": - version: 27.4.6 - resolution: "pretty-format@npm:27.4.6" - dependencies: - ansi-regex: ^5.0.1 - ansi-styles: ^5.0.0 - react-is: ^17.0.1 - checksum: 5eda32e4e47ddd1a9e8fe9ebef519b217ba403eb8bcb804ba551dfb37f87e674472013fcf78480ab535844fdddcc706fac94511eba349bfb94a138a02d1a7a59 - languageName: node - linkType: hard - -"pretty-format@npm:^27.5.1": - version: 27.5.1 - resolution: "pretty-format@npm:27.5.1" - dependencies: - ansi-regex: ^5.0.1 - ansi-styles: ^5.0.0 - react-is: ^17.0.1 - checksum: cf610cffcb793885d16f184a62162f2dd0df31642d9a18edf4ca298e909a8fe80bdbf556d5c9573992c102ce8bf948691da91bf9739bee0ffb6e79c8a8a6e088 - languageName: node - linkType: hard - -"process-nextick-args@npm:~2.0.0": - version: 2.0.1 - resolution: "process-nextick-args@npm:2.0.1" - checksum: 1d38588e520dab7cea67cbbe2efdd86a10cc7a074c09657635e34f035277b59fbb57d09d8638346bf7090f8e8ebc070c96fa5fd183b777fff4f5edff5e9466cf - languageName: node - linkType: hard - -"process@npm:^0.11.10": - version: 0.11.10 - resolution: "process@npm:0.11.10" - checksum: bfcce49814f7d172a6e6a14d5fa3ac92cc3d0c3b9feb1279774708a719e19acd673995226351a082a9ae99978254e320ccda4240ddc474ba31a76c79491ca7c3 - languageName: node - linkType: hard - -"promise-inflight@npm:^1.0.1": - version: 1.0.1 - resolution: "promise-inflight@npm:1.0.1" - checksum: 22749483091d2c594261517f4f80e05226d4d5ecc1fc917e1886929da56e22b5718b7f2a75f3807e7a7d471bc3be2907fe92e6e8f373ddf5c64bae35b5af3981 - languageName: node - linkType: hard - -"promise-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "promise-retry@npm:2.0.1" - dependencies: - err-code: ^2.0.2 - retry: ^0.12.0 - checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 - languageName: node - linkType: hard - -"prompts@npm:^2.0.1": - version: 2.4.2 - resolution: "prompts@npm:2.4.2" - dependencies: - kleur: ^3.0.3 - sisteransi: ^1.0.5 - checksum: d8fd1fe63820be2412c13bfc5d0a01909acc1f0367e32396962e737cb2fc52d004f3302475d5ce7d18a1e8a79985f93ff04ee03007d091029c3f9104bffc007d - languageName: node - linkType: hard - -"proxy-addr@npm:~2.0.7": - version: 2.0.7 - resolution: "proxy-addr@npm:2.0.7" - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - checksum: 29c6990ce9364648255454842f06f8c46fcd124d3e6d7c5066df44662de63cdc0bad032e9bf5a3d653ff72141cc7b6019873d685708ac8210c30458ad99f2b74 - languageName: node - linkType: hard - -"psl@npm:^1.1.33": - version: 1.8.0 - resolution: "psl@npm:1.8.0" - checksum: 6150048ed2da3f919478bee8a82f3828303bc0fc730fb015a48f83c9977682c7b28c60ab01425a72d82a2891a1681627aa530a991d50c086b48a3be27744bde7 - languageName: node - linkType: hard - -"punycode@npm:^2.1.0, punycode@npm:^2.1.1": - version: 2.1.1 - resolution: "punycode@npm:2.1.1" - checksum: 823bf443c6dd14f669984dea25757b37993f67e8d94698996064035edd43bed8a5a17a9f12e439c2b35df1078c6bec05a6c86e336209eb1061e8025c481168e8 - languageName: node - linkType: hard - -"qs@npm:6.11.0, qs@npm:^6.11.0": - version: 6.11.0 - resolution: "qs@npm:6.11.0" - dependencies: - side-channel: ^1.0.4 - checksum: 6e1f29dd5385f7488ec74ac7b6c92f4d09a90408882d0c208414a34dd33badc1a621019d4c799a3df15ab9b1d0292f97c1dd71dc7c045e69f81a8064e5af7297 - languageName: node - linkType: hard - -"queue-microtask@npm:^1.2.2": - version: 1.2.3 - resolution: "queue-microtask@npm:1.2.3" - checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 - languageName: node - linkType: hard - -"range-parser@npm:~1.2.1": - version: 1.2.1 - resolution: "range-parser@npm:1.2.1" - checksum: 0a268d4fea508661cf5743dfe3d5f47ce214fd6b7dec1de0da4d669dd4ef3d2144468ebe4179049eff253d9d27e719c88dae55be64f954e80135a0cada804ec9 - languageName: node - linkType: hard - -"raw-body@npm:2.5.1": - version: 2.5.1 - resolution: "raw-body@npm:2.5.1" - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - checksum: 5362adff1575d691bb3f75998803a0ffed8c64eabeaa06e54b4ada25a0cd1b2ae7f4f5ec46565d1bec337e08b5ac90c76eaa0758de6f72a633f025d754dec29e - languageName: node - linkType: hard - -"react-is@npm:^17.0.1": - version: 17.0.2 - resolution: "react-is@npm:17.0.2" - checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8 - languageName: node - linkType: hard - -"readable-stream@npm:^2.2.2": - version: 2.3.7 - resolution: "readable-stream@npm:2.3.7" - dependencies: - core-util-is: ~1.0.0 - inherits: ~2.0.3 - isarray: ~1.0.0 - process-nextick-args: ~2.0.0 - safe-buffer: ~5.1.1 - string_decoder: ~1.1.1 - util-deprecate: ~1.0.1 - checksum: e4920cf7549a60f8aaf694d483a0e61b2a878b969d224f89b3bc788b8d920075132c4b55a7494ee944c7b6a9a0eada28a7f6220d80b0312ece70bbf08eeca755 - languageName: node - linkType: hard - -"readable-stream@npm:^3.6.0": - version: 3.6.0 - resolution: "readable-stream@npm:3.6.0" - dependencies: - inherits: ^2.0.3 - string_decoder: ^1.1.1 - util-deprecate: ^1.0.1 - checksum: d4ea81502d3799439bb955a3a5d1d808592cf3133350ed352aeaa499647858b27b1c4013984900238b0873ec8d0d8defce72469fb7a83e61d53f5ad61cb80dc8 - languageName: node - linkType: hard - -"reflect-metadata@npm:^0.1.13": - version: 0.1.13 - resolution: "reflect-metadata@npm:0.1.13" - checksum: 798d379a7b6f6455501145419505c97dd11cbc23857a386add2b9ef15963ccf15a48d9d15507afe01d4cd74116df8a213247200bac00320bd7c11ddeaa5e8fb4 - languageName: node - linkType: hard - -"regexpp@npm:^3.2.0": - version: 3.2.0 - resolution: "regexpp@npm:3.2.0" - checksum: a78dc5c7158ad9ddcfe01aa9144f46e192ddbfa7b263895a70a5c6c73edd9ce85faf7c0430e59ac38839e1734e275b9c3de5c57ee3ab6edc0e0b1bdebefccef8 - languageName: node - linkType: hard - -"require-directory@npm:^2.1.1": - version: 2.1.1 - resolution: "require-directory@npm:2.1.1" - checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80 - languageName: node - linkType: hard - -"resolve-cwd@npm:^3.0.0": - version: 3.0.0 - resolution: "resolve-cwd@npm:3.0.0" - dependencies: - resolve-from: ^5.0.0 - checksum: 546e0816012d65778e580ad62b29e975a642989108d9a3c5beabfb2304192fa3c9f9146fbdfe213563c6ff51975ae41bac1d3c6e047dd9572c94863a057b4d81 - languageName: node - linkType: hard - -"resolve-from@npm:^4.0.0": - version: 4.0.0 - resolution: "resolve-from@npm:4.0.0" - checksum: f4ba0b8494846a5066328ad33ef8ac173801a51739eb4d63408c847da9a2e1c1de1e6cbbf72699211f3d13f8fc1325648b169bd15eb7da35688e30a5fb0e4a7f - languageName: node - linkType: hard - -"resolve-from@npm:^5.0.0": - version: 5.0.0 - resolution: "resolve-from@npm:5.0.0" - checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf - languageName: node - linkType: hard - -"resolve.exports@npm:^1.1.0": - version: 1.1.0 - resolution: "resolve.exports@npm:1.1.0" - checksum: 52865af8edb088f6c7759a328584a5de6b226754f004b742523adcfe398cfbc4559515104bc2ae87b8e78b1e4de46c9baec400b3fb1f7d517b86d2d48a098a2d - languageName: node - linkType: hard - -"resolve@npm:^1.20.0, resolve@npm:^1.22.0": - version: 1.22.0 - resolution: "resolve@npm:1.22.0" - dependencies: - is-core-module: ^2.8.1 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: a2d14cc437b3a23996f8c7367eee5c7cf8149c586b07ca2ae00e96581ce59455555a1190be9aa92154785cf9f2042646c200d0e00e0bbd2b8a995a93a0ed3e4e - languageName: node - linkType: hard - -"resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.0#~builtin": - version: 1.22.0 - resolution: "resolve@patch:resolve@npm%3A1.22.0#~builtin::version=1.22.0&hash=07638b" - dependencies: - is-core-module: ^2.8.1 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 - bin: - resolve: bin/resolve - checksum: c79ecaea36c872ee4a79e3db0d3d4160b593f2ca16e031d8283735acd01715a203607e9ded3f91f68899c2937fa0d49390cddbe0fb2852629212f3cda283f4a7 - languageName: node - linkType: hard - -"retry@npm:^0.12.0": - version: 0.12.0 - resolution: "retry@npm:0.12.0" - checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c - languageName: node - linkType: hard - -"reusify@npm:^1.0.4": - version: 1.0.4 - resolution: "reusify@npm:1.0.4" - checksum: c3076ebcc22a6bc252cb0b9c77561795256c22b757f40c0d8110b1300723f15ec0fc8685e8d4ea6d7666f36c79ccc793b1939c748bf36f18f542744a4e379fcc - languageName: node - linkType: hard - -"rimraf@npm:^3.0.0, rimraf@npm:^3.0.2": - version: 3.0.2 - resolution: "rimraf@npm:3.0.2" - dependencies: - glob: ^7.1.3 - bin: - rimraf: bin.js - checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 - languageName: node - linkType: hard - -"run-parallel@npm:^1.1.9": - version: 1.2.0 - resolution: "run-parallel@npm:1.2.0" - dependencies: - queue-microtask: ^1.2.2 - checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d - languageName: node - linkType: hard - -"rxjs@npm:^7.6.0": - version: 7.6.0 - resolution: "rxjs@npm:7.6.0" - dependencies: - tslib: ^2.1.0 - checksum: b3abbbfe1ddfd06fca9314b83cbd13bcddc3320429218136f75c79a4802ac430dd13873364aac1ded54fd457f8c77df332d205a92d8a1c61656565bb718c50af - languageName: node - linkType: hard - -"safe-buffer@npm:5.2.1, safe-buffer@npm:~5.2.0": - version: 5.2.1 - resolution: "safe-buffer@npm:5.2.1" - checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 - languageName: node - linkType: hard - -"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": - version: 5.1.2 - resolution: "safe-buffer@npm:5.1.2" - checksum: f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c - languageName: node - linkType: hard - -"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": - version: 2.1.2 - resolution: "safer-buffer@npm:2.1.2" - checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 - languageName: node - linkType: hard - -"saslprep@npm:^1.0.3": - version: 1.0.3 - resolution: "saslprep@npm:1.0.3" - dependencies: - sparse-bitfield: ^3.0.3 - checksum: 4fdc0b70fb5e523f977de405e12cca111f1f10dd68a0cfae0ca52c1a7919a94d1556598ba2d35f447655c3b32879846c77f9274c90806f6673248ae3cea6ee43 - languageName: node - linkType: hard - -"saxes@npm:^5.0.1": - version: 5.0.1 - resolution: "saxes@npm:5.0.1" - dependencies: - xmlchars: ^2.2.0 - checksum: 5636b55cf15f7cf0baa73f2797bf992bdcf75d1b39d82c0aa4608555c774368f6ac321cb641fd5f3d3ceb87805122cd47540da6a7b5960fe0dbdb8f8c263f000 - languageName: node - linkType: hard - -"semver@npm:7.x, semver@npm:^7.3.2, semver@npm:^7.3.5": - version: 7.3.5 - resolution: "semver@npm:7.3.5" - dependencies: - lru-cache: ^6.0.0 - bin: - semver: bin/semver.js - checksum: 5eafe6102bea2a7439897c1856362e31cc348ccf96efd455c8b5bc2c61e6f7e7b8250dc26b8828c1d76a56f818a7ee907a36ae9fb37a599d3d24609207001d60 - languageName: node - linkType: hard - -"semver@npm:^5.4.1": - version: 5.7.1 - resolution: "semver@npm:5.7.1" - bin: - semver: ./bin/semver - checksum: 57fd0acfd0bac382ee87cd52cd0aaa5af086a7dc8d60379dfe65fea491fb2489b6016400813930ecd61fd0952dae75c115287a1b16c234b1550887117744dfaf - languageName: node - linkType: hard - -"semver@npm:^6.0.0, semver@npm:^6.3.0": - version: 6.3.0 - resolution: "semver@npm:6.3.0" - bin: - semver: ./bin/semver.js - checksum: 1b26ecf6db9e8292dd90df4e781d91875c0dcc1b1909e70f5d12959a23c7eebb8f01ea581c00783bbee72ceeaad9505797c381756326073850dc36ed284b21b9 - languageName: node - linkType: hard - -"semver@npm:^7.3.8": - version: 7.3.8 - resolution: "semver@npm:7.3.8" - dependencies: - lru-cache: ^6.0.0 - bin: - semver: bin/semver.js - checksum: ba9c7cbbf2b7884696523450a61fee1a09930d888b7a8d7579025ad93d459b2d1949ee5bbfeb188b2be5f4ac163544c5e98491ad6152df34154feebc2cc337c1 - languageName: node - linkType: hard - -"send@npm:0.18.0": - version: 0.18.0 - resolution: "send@npm:0.18.0" - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: ~1.0.2 - escape-html: ~1.0.3 - etag: ~1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: ~1.2.1 - statuses: 2.0.1 - checksum: 74fc07ebb58566b87b078ec63e5a3e41ecd987e4272ba67b7467e86c6ad51bc6b0b0154133b6d8b08a2ddda360464f71382f7ef864700f34844a76c8027817a8 - languageName: node - linkType: hard - -"serve-static@npm:1.15.0": - version: 1.15.0 - resolution: "serve-static@npm:1.15.0" - dependencies: - encodeurl: ~1.0.2 - escape-html: ~1.0.3 - parseurl: ~1.3.3 - send: 0.18.0 - checksum: af57fc13be40d90a12562e98c0b7855cf6e8bd4c107fe9a45c212bf023058d54a1871b1c89511c3958f70626fff47faeb795f5d83f8cf88514dbaeb2b724464d - languageName: node - linkType: hard - -"set-blocking@npm:^2.0.0": - version: 2.0.0 - resolution: "set-blocking@npm:2.0.0" - checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 - languageName: node - linkType: hard - -"setprototypeof@npm:1.2.0": - version: 1.2.0 - resolution: "setprototypeof@npm:1.2.0" - checksum: be18cbbf70e7d8097c97f713a2e76edf84e87299b40d085c6bf8b65314e994cc15e2e317727342fa6996e38e1f52c59720b53fe621e2eb593a6847bf0356db89 - languageName: node - linkType: hard - -"shebang-command@npm:^2.0.0": - version: 2.0.0 - resolution: "shebang-command@npm:2.0.0" - dependencies: - shebang-regex: ^3.0.0 - checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa - languageName: node - linkType: hard - -"shebang-regex@npm:^3.0.0": - version: 3.0.0 - resolution: "shebang-regex@npm:3.0.0" - checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 - languageName: node - linkType: hard - -"shiki@npm:^0.11.1": - version: 0.11.1 - resolution: "shiki@npm:0.11.1" - dependencies: - jsonc-parser: ^3.0.0 - vscode-oniguruma: ^1.6.1 - vscode-textmate: ^6.0.0 - checksum: 2a4ebc3b466816263fc244ae4f67a4ff96aa74d863b9c5e7e4affc50f37fd6d1a781405de0dbf763b777bc33e49a0d441de7ff3fededb8b01e3b8dbb37e2927d - languageName: node - linkType: hard - -"shimmer@npm:^1.2.0": - version: 1.2.1 - resolution: "shimmer@npm:1.2.1" - checksum: aa0d6252ad1c682a4fdfda69e541be987f7a265ac7b00b1208e5e48cc68dc55f293955346ea4c71a169b7324b82c70f8400b3d3d2d60b2a7519f0a3522423250 - languageName: node - linkType: hard - -"side-channel@npm:^1.0.4": - version: 1.0.4 - resolution: "side-channel@npm:1.0.4" - dependencies: - call-bind: ^1.0.0 - get-intrinsic: ^1.0.2 - object-inspect: ^1.9.0 - checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245 - languageName: node - linkType: hard - -"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3": - version: 3.0.6 - resolution: "signal-exit@npm:3.0.6" - checksum: b819ac81ba757af559dad0804233ae31bf6f054591cd8a671e9cbcf09f21c72ec3076fe87d1e04861f5b33b47d63f0694b568de99c99cd733ee2060515beb6d5 - languageName: node - linkType: hard - -"signal-exit@npm:^3.0.7": - version: 3.0.7 - resolution: "signal-exit@npm:3.0.7" - checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 - languageName: node - linkType: hard - -"sisteransi@npm:^1.0.5": - version: 1.0.5 - resolution: "sisteransi@npm:1.0.5" - checksum: aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4 - languageName: node - linkType: hard - -"slash@npm:^3.0.0": - version: 3.0.0 - resolution: "slash@npm:3.0.0" - checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c - languageName: node - linkType: hard - -"slugify@npm:1.6.5": - version: 1.6.5 - resolution: "slugify@npm:1.6.5" - checksum: a955a1b600201030f4c1daa9bb74a17d4402a0693fc40978bbd17e44e64fd72dad3bac4037422aa8aed55b5170edd57f3f4cd8f59ba331f5cf0f10f1a7795609 - languageName: node - linkType: hard - -"smart-buffer@npm:^4.2.0": - version: 4.2.0 - resolution: "smart-buffer@npm:4.2.0" - checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b - languageName: node - linkType: hard - -"socks-proxy-agent@npm:^6.1.1": - version: 6.2.0 - resolution: "socks-proxy-agent@npm:6.2.0" - dependencies: - agent-base: ^6.0.2 - debug: ^4.3.3 - socks: ^2.6.2 - checksum: 6723fd64fb50334e2b340fd0a80fd8488ffc5bc43d85b7cf1d25612044f814dd7d6ea417fd47602159941236f7f4bd15669fa5d7e1f852598a31288e1a43967b - languageName: node - linkType: hard - -"socks@npm:^2.6.2": - version: 2.6.2 - resolution: "socks@npm:2.6.2" - dependencies: - ip: ^1.1.5 - smart-buffer: ^4.2.0 - checksum: dd9194293059d737759d5c69273850ad4149f448426249325c4bea0e340d1cf3d266c3b022694b0dcf5d31f759de23657244c481fc1e8322add80b7985c36b5e - languageName: node - linkType: hard - -"socks@npm:^2.7.1": - version: 2.7.1 - resolution: "socks@npm:2.7.1" - dependencies: - ip: ^2.0.0 - smart-buffer: ^4.2.0 - checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 - languageName: node - linkType: hard - -"source-map-support@npm:^0.5.6": - version: 0.5.21 - resolution: "source-map-support@npm:0.5.21" - dependencies: - buffer-from: ^1.0.0 - source-map: ^0.6.0 - checksum: 43e98d700d79af1d36f859bdb7318e601dfc918c7ba2e98456118ebc4c4872b327773e5a1df09b0524e9e5063bb18f0934538eace60cca2710d1fa687645d137 - languageName: node - linkType: hard - -"source-map@npm:^0.5.0": - version: 0.5.7 - resolution: "source-map@npm:0.5.7" - checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d - languageName: node - linkType: hard - -"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1": - version: 0.6.1 - resolution: "source-map@npm:0.6.1" - checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 - languageName: node - linkType: hard - -"source-map@npm:^0.7.3": - version: 0.7.3 - resolution: "source-map@npm:0.7.3" - checksum: cd24efb3b8fa69b64bf28e3c1b1a500de77e84260c5b7f2b873f88284df17974157cc88d386ee9b6d081f08fdd8242f3fc05c953685a6ad81aad94c7393dedea - languageName: node - linkType: hard - -"sparse-bitfield@npm:^3.0.3": - version: 3.0.3 - resolution: "sparse-bitfield@npm:3.0.3" - dependencies: - memory-pager: ^1.0.2 - checksum: 174da88dbbcc783d5dbd26921931cc83830280b8055fb05333786ebe6fc015b9601b24972b3d55920dd2d9f5fb120576fbfa2469b08e5222c9cadf3f05210aab - languageName: node - linkType: hard - -"sprintf-js@npm:~1.0.2": - version: 1.0.3 - resolution: "sprintf-js@npm:1.0.3" - checksum: 19d79aec211f09b99ec3099b5b2ae2f6e9cdefe50bc91ac4c69144b6d3928a640bb6ae5b3def70c2e85a2c3d9f5ec2719921e3a59d3ca3ef4b2fd1a4656a0df3 - languageName: node - linkType: hard - -"ssri@npm:^9.0.0": - version: 9.0.0 - resolution: "ssri@npm:9.0.0" - dependencies: - minipass: ^3.1.1 - checksum: bf33174232d07cc64e77ab1c51b55d28352273380c503d35642a19627e88a2c5f160039bb0a28608a353485075dda084dbf0390c7070f9f284559eb71d01b84b - languageName: node - linkType: hard - -"stack-chain@npm:^1.3.7": - version: 1.3.7 - resolution: "stack-chain@npm:1.3.7" - checksum: c2428e794a60e1f8e3b66898657d10b81ea18eefd0842d65f18bad6f53fbca597075079bbda8df5b409aebb82d2055bf9c4a8d439df18c554756ead197fc2260 - languageName: node - linkType: hard - -"stack-utils@npm:^2.0.3": - version: 2.0.5 - resolution: "stack-utils@npm:2.0.5" - dependencies: - escape-string-regexp: ^2.0.0 - checksum: 76b69da0f5b48a34a0f93c98ee2a96544d2c4ca2557f7eef5ddb961d3bdc33870b46f498a84a7c4f4ffb781df639840e7ebf6639164ed4da5e1aeb659615b9c7 - languageName: node - linkType: hard - -"statuses@npm:2.0.1": - version: 2.0.1 - resolution: "statuses@npm:2.0.1" - checksum: 18c7623fdb8f646fb213ca4051be4df7efb3484d4ab662937ca6fbef7ced9b9e12842709872eb3020cc3504b93bde88935c9f6417489627a7786f24f8031cbcb - languageName: node - linkType: hard - -"streamsearch@npm:^1.1.0": - version: 1.1.0 - resolution: "streamsearch@npm:1.1.0" - checksum: 1cce16cea8405d7a233d32ca5e00a00169cc0e19fbc02aa839959985f267335d435c07f96e5e0edd0eadc6d39c98d5435fb5bbbdefc62c41834eadc5622ad942 - languageName: node - linkType: hard - -"string-length@npm:^4.0.1": - version: 4.0.2 - resolution: "string-length@npm:4.0.2" - dependencies: - char-regex: ^1.0.2 - strip-ansi: ^6.0.0 - checksum: ce85533ef5113fcb7e522bcf9e62cb33871aa99b3729cec5595f4447f660b0cefd542ca6df4150c97a677d58b0cb727a3fe09ac1de94071d05526c73579bf505 - languageName: node - linkType: hard - -"string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": - version: 4.2.3 - resolution: "string-width@npm:4.2.3" - dependencies: - emoji-regex: ^8.0.0 - is-fullwidth-code-point: ^3.0.0 - strip-ansi: ^6.0.1 - checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb - languageName: node - linkType: hard - -"string.prototype.trimend@npm:^1.0.4": - version: 1.0.4 - resolution: "string.prototype.trimend@npm:1.0.4" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - checksum: 17e5aa45c3983f582693161f972c1c1fa4bbbdf22e70e582b00c91b6575f01680dc34e83005b98e31abe4d5d29e0b21fcc24690239c106c7b2315aade6a898ac - languageName: node - linkType: hard - -"string.prototype.trimstart@npm:^1.0.4": - version: 1.0.4 - resolution: "string.prototype.trimstart@npm:1.0.4" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.3 - checksum: 3fb06818d3cccac5fa3f5f9873d984794ca0e9f6616fae6fcc745885d9efed4e17fe15f832515d9af5e16c279857fdbffdfc489ca4ed577811b017721b30302f - languageName: node - linkType: hard - -"string_decoder@npm:^1.1.1": - version: 1.3.0 - resolution: "string_decoder@npm:1.3.0" - dependencies: - safe-buffer: ~5.2.0 - checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 - languageName: node - linkType: hard - -"string_decoder@npm:~1.1.1": - version: 1.1.1 - resolution: "string_decoder@npm:1.1.1" - dependencies: - safe-buffer: ~5.1.0 - checksum: 9ab7e56f9d60a28f2be697419917c50cac19f3e8e6c28ef26ed5f4852289fe0de5d6997d29becf59028556f2c62983790c1d9ba1e2a3cc401768ca12d5183a5b - languageName: node - linkType: hard - -"strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": - version: 6.0.1 - resolution: "strip-ansi@npm:6.0.1" - dependencies: - ansi-regex: ^5.0.1 - checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c - languageName: node - linkType: hard - -"strip-bom@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-bom@npm:3.0.0" - checksum: 8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b - languageName: node - linkType: hard - -"strip-bom@npm:^4.0.0": - version: 4.0.0 - resolution: "strip-bom@npm:4.0.0" - checksum: 9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3 - languageName: node - linkType: hard - -"strip-final-newline@npm:^2.0.0": - version: 2.0.0 - resolution: "strip-final-newline@npm:2.0.0" - checksum: 69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 - languageName: node - linkType: hard - -"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": - version: 3.1.1 - resolution: "strip-json-comments@npm:3.1.1" - checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 - languageName: node - linkType: hard - -"strnum@npm:^1.0.5": - version: 1.0.5 - resolution: "strnum@npm:1.0.5" - checksum: 651b2031db5da1bf4a77fdd2f116a8ac8055157c5420f5569f64879133825915ad461513e7202a16d7fec63c54fd822410d0962f8ca12385c4334891b9ae6dd2 - languageName: node - linkType: hard - -"superagent@npm:^8.0.5": - version: 8.0.6 - resolution: "superagent@npm:8.0.6" - dependencies: - component-emitter: ^1.3.0 - cookiejar: ^2.1.3 - debug: ^4.3.4 - fast-safe-stringify: ^2.1.1 - form-data: ^4.0.0 - formidable: ^2.1.1 - methods: ^1.1.2 - mime: 2.6.0 - qs: ^6.11.0 - semver: ^7.3.8 - checksum: 2dfe44b74acd37da34cb44617919927ebf689570f46f89234be3a0b8e89cae5afca8e28adae6b6be77a3cd06661f47cf5c4c872e9d98ba184e8f12fcb041a29d - languageName: node - linkType: hard - -"supertest@npm:^6.3.3": - version: 6.3.3 - resolution: "supertest@npm:6.3.3" - dependencies: - methods: ^1.1.2 - superagent: ^8.0.5 - checksum: 38239e517f7ba62b7a139a79c5c48d55f8d67b5ff4b6e51d5b07732ca8bbc4a28ffa1b10916fbb403dd013a054dbf028edc5850057d9a43aecbff439d494673e - languageName: node - linkType: hard - -"supports-color@npm:^5.3.0": - version: 5.5.0 - resolution: "supports-color@npm:5.5.0" - dependencies: - has-flag: ^3.0.0 - checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac - languageName: node - linkType: hard - -"supports-color@npm:^7.0.0, supports-color@npm:^7.1.0": - version: 7.2.0 - resolution: "supports-color@npm:7.2.0" - dependencies: - has-flag: ^4.0.0 - checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a - languageName: node - linkType: hard - -"supports-color@npm:^8.0.0": - version: 8.1.1 - resolution: "supports-color@npm:8.1.1" - dependencies: - has-flag: ^4.0.0 - checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406 - languageName: node - linkType: hard - -"supports-hyperlinks@npm:^2.0.0": - version: 2.2.0 - resolution: "supports-hyperlinks@npm:2.2.0" - dependencies: - has-flag: ^4.0.0 - supports-color: ^7.0.0 - checksum: aef04fb41f4a67f1bc128f7c3e88a81b6cf2794c800fccf137006efe5bafde281da3e42e72bf9206c2fcf42e6438f37e3a820a389214d0a88613ca1f2d36076a - languageName: node - linkType: hard - -"supports-preserve-symlinks-flag@npm:^1.0.0": - version: 1.0.0 - resolution: "supports-preserve-symlinks-flag@npm:1.0.0" - checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae - languageName: node - linkType: hard - -"symbol-tree@npm:^3.2.4": - version: 3.2.4 - resolution: "symbol-tree@npm:3.2.4" - checksum: 6e8fc7e1486b8b54bea91199d9535bb72f10842e40c79e882fc94fb7b14b89866adf2fd79efa5ebb5b658bc07fb459ccce5ac0e99ef3d72f474e74aaf284029d - languageName: node - linkType: hard - -"tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.1.11 - resolution: "tar@npm:6.1.11" - dependencies: - chownr: ^2.0.0 - fs-minipass: ^2.0.0 - minipass: ^3.0.0 - minizlib: ^2.1.1 - mkdirp: ^1.0.3 - yallist: ^4.0.0 - checksum: a04c07bb9e2d8f46776517d4618f2406fb977a74d914ad98b264fc3db0fe8224da5bec11e5f8902c5b9bcb8ace22d95fbe3c7b36b8593b7dfc8391a25898f32f - languageName: node - linkType: hard - -"terminal-link@npm:^2.0.0": - version: 2.1.1 - resolution: "terminal-link@npm:2.1.1" - dependencies: - ansi-escapes: ^4.2.1 - supports-hyperlinks: ^2.0.0 - checksum: ce3d2cd3a438c4a9453947aa664581519173ea40e77e2534d08c088ee6dda449eabdbe0a76d2a516b8b73c33262fedd10d5270ccf7576ae316e3db170ce6562f - languageName: node - linkType: hard - -"test-exclude@npm:^6.0.0": - version: 6.0.0 - resolution: "test-exclude@npm:6.0.0" - dependencies: - "@istanbuljs/schema": ^0.1.2 - glob: ^7.1.4 - minimatch: ^3.0.4 - checksum: 3b34a3d77165a2cb82b34014b3aba93b1c4637a5011807557dc2f3da826c59975a5ccad765721c4648b39817e3472789f9b0fa98fc854c5c1c7a1e632aacdc28 - languageName: node - linkType: hard - -"text-table@npm:^0.2.0": - version: 0.2.0 - resolution: "text-table@npm:0.2.0" - checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a - languageName: node - linkType: hard - -"throat@npm:^6.0.1": - version: 6.0.1 - resolution: "throat@npm:6.0.1" - checksum: 782d4171ee4e3cf947483ed2ff1af3e17cc4354c693b9d339284f61f99fbc401d171e0b0d2db3295bb7d447630333e9319c174ebd7ef315c6fb791db9675369c - languageName: node - linkType: hard - -"tmpl@npm:1.0.5": - version: 1.0.5 - resolution: "tmpl@npm:1.0.5" - checksum: cd922d9b853c00fe414c5a774817be65b058d54a2d01ebb415840960406c669a0fc632f66df885e24cb022ec812739199ccbdb8d1164c3e513f85bfca5ab2873 - languageName: node - linkType: hard - -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 - languageName: node - linkType: hard - -"to-regex-range@npm:^5.0.1": - version: 5.0.1 - resolution: "to-regex-range@npm:5.0.1" - dependencies: - is-number: ^7.0.0 - checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed - languageName: node - linkType: hard - -"toidentifier@npm:1.0.1": - version: 1.0.1 - resolution: "toidentifier@npm:1.0.1" - checksum: 952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45 - languageName: node - linkType: hard - -"tough-cookie@npm:^4.0.0": - version: 4.0.0 - resolution: "tough-cookie@npm:4.0.0" - dependencies: - psl: ^1.1.33 - punycode: ^2.1.1 - universalify: ^0.1.2 - checksum: 0891b37eb7d17faa3479d47f0dce2e3007f2583094ad272f2670d120fbcc3df3b0b0a631ba96ecad49f9e2297d93ff8995ce0d3292d08dd7eabe162f5b224d69 - languageName: node - linkType: hard - -"tr46@npm:^2.1.0": - version: 2.1.0 - resolution: "tr46@npm:2.1.0" - dependencies: - punycode: ^2.1.1 - checksum: ffe6049b9dca3ae329b059aada7f515b0f0064c611b39b51ff6b53897e954650f6f63d9319c6c008d36ead477c7b55e5f64c9dc60588ddc91ff720d64eb710b3 - languageName: node - linkType: hard - -"tr46@npm:^3.0.0": - version: 3.0.0 - resolution: "tr46@npm:3.0.0" - dependencies: - punycode: ^2.1.1 - checksum: 44c3cc6767fb800490e6e9fd64fd49041aa4e49e1f6a012b34a75de739cc9ed3a6405296072c1df8b6389ae139c5e7c6496f659cfe13a04a4bff3a1422981270 - languageName: node - linkType: hard - -"tr46@npm:~0.0.3": - version: 0.0.3 - resolution: "tr46@npm:0.0.3" - checksum: 726321c5eaf41b5002e17ffbd1fb7245999a073e8979085dacd47c4b4e8068ff5777142fc6726d6ca1fd2ff16921b48788b87225cbc57c72636f6efa8efbffe3 - languageName: node - linkType: hard - -"ts-jest@npm:^27.1.4": - version: 27.1.4 - resolution: "ts-jest@npm:27.1.4" - dependencies: - bs-logger: 0.x - fast-json-stable-stringify: 2.x - jest-util: ^27.0.0 - json5: 2.x - lodash.memoize: 4.x - make-error: 1.x - semver: 7.x - yargs-parser: 20.x - peerDependencies: - "@babel/core": ">=7.0.0-beta.0 <8" - "@types/jest": ^27.0.0 - babel-jest: ">=27.0.0 <28" - jest: ^27.0.0 - typescript: ">=3.8 <5.0" - peerDependenciesMeta: - "@babel/core": - optional: true - "@types/jest": - optional: true - babel-jest: - optional: true - esbuild: - optional: true - bin: - ts-jest: cli.js - checksum: d2cc2719ed2884a880ab50d2c14c311834be9c88bc79d0064fa0189afce5c296d7676314d26cc3f7e82ddd52df272c2d4137a832c89616f30cbe8f43e30f9a29 - languageName: node - linkType: hard - -"ts-node@npm:^10.7.0": - version: 10.7.0 - resolution: "ts-node@npm:10.7.0" - dependencies: - "@cspotcode/source-map-support": 0.7.0 - "@tsconfig/node10": ^1.0.7 - "@tsconfig/node12": ^1.0.7 - "@tsconfig/node14": ^1.0.0 - "@tsconfig/node16": ^1.0.2 - acorn: ^8.4.1 - acorn-walk: ^8.1.1 - arg: ^4.1.0 - create-require: ^1.1.0 - diff: ^4.0.1 - make-error: ^1.1.1 - v8-compile-cache-lib: ^3.0.0 - yn: 3.1.1 - peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" - peerDependenciesMeta: - "@swc/core": - optional: true - "@swc/wasm": - optional: true - bin: - ts-node: dist/bin.js - ts-node-cwd: dist/bin-cwd.js - ts-node-esm: dist/bin-esm.js - ts-node-script: dist/bin-script.js - ts-node-transpile-only: dist/bin-transpile.js - ts-script: dist/bin-script-deprecated.js - checksum: 2a379e43f7478d0b79e1e63af91fe222d83857727957df4bd3bdf3c0a884de5097b12feb9bbf530074526b8874c0338b0e6328cf334f3a5e2c49c71e837273f7 - languageName: node - linkType: hard - -"tsconfig-paths@npm:^3.14.1": - version: 3.14.1 - resolution: "tsconfig-paths@npm:3.14.1" - dependencies: - "@types/json5": ^0.0.29 - json5: ^1.0.1 - minimist: ^1.2.6 - strip-bom: ^3.0.0 - checksum: 8afa01c673ebb4782ba53d3a12df97fa837ce524f8ad38ee4e2b2fd57f5ac79abc21c574e9e9eb014d93efe7fe8214001b96233b5c6ea75bd1ea82afe17a4c6d - languageName: node - linkType: hard - -"tslib@npm:2.4.1, tslib@npm:^2.3.1": - version: 2.4.1 - resolution: "tslib@npm:2.4.1" - checksum: 19480d6e0313292bd6505d4efe096a6b31c70e21cf08b5febf4da62e95c265c8f571f7b36fcc3d1a17e068032f59c269fab3459d6cd3ed6949eafecf64315fca - languageName: node - linkType: hard - -"tslib@npm:^1.11.1, tslib@npm:^1.8.1": - version: 1.14.1 - resolution: "tslib@npm:1.14.1" - checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd - languageName: node - linkType: hard - -"tslib@npm:^2.1.0": - version: 2.3.1 - resolution: "tslib@npm:2.3.1" - checksum: de17a98d4614481f7fcb5cd53ffc1aaf8654313be0291e1bfaee4b4bb31a20494b7d218ff2e15017883e8ea9626599b3b0e0229c18383ba9dce89da2adf15cb9 - languageName: node - linkType: hard - -"tsutils@npm:^3.21.0": - version: 3.21.0 - resolution: "tsutils@npm:3.21.0" - dependencies: - tslib: ^1.8.1 - peerDependencies: - typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - checksum: 1843f4c1b2e0f975e08c4c21caa4af4f7f65a12ac1b81b3b8489366826259323feb3fc7a243123453d2d1a02314205a7634e048d4a8009921da19f99755cdc48 - languageName: node - linkType: hard - -"type-check@npm:^0.4.0, type-check@npm:~0.4.0": - version: 0.4.0 - resolution: "type-check@npm:0.4.0" - dependencies: - prelude-ls: ^1.2.1 - checksum: ec688ebfc9c45d0c30412e41ca9c0cdbd704580eb3a9ccf07b9b576094d7b86a012baebc95681999dd38f4f444afd28504cb3a89f2ef16b31d4ab61a0739025a - languageName: node - linkType: hard - -"type-check@npm:~0.3.2": - version: 0.3.2 - resolution: "type-check@npm:0.3.2" - dependencies: - prelude-ls: ~1.1.2 - checksum: dd3b1495642731bc0e1fc40abe5e977e0263005551ac83342ecb6f4f89551d106b368ec32ad3fb2da19b3bd7b2d1f64330da2ea9176d8ddbfe389fb286eb5124 - languageName: node - linkType: hard - -"type-detect@npm:4.0.8": - version: 4.0.8 - resolution: "type-detect@npm:4.0.8" - checksum: 62b5628bff67c0eb0b66afa371bd73e230399a8d2ad30d852716efcc4656a7516904570cd8631a49a3ce57c10225adf5d0cbdcb47f6b0255fe6557c453925a15 - languageName: node - linkType: hard - -"type-fest@npm:^0.20.2": - version: 0.20.2 - resolution: "type-fest@npm:0.20.2" - checksum: 4fb3272df21ad1c552486f8a2f8e115c09a521ad7a8db3d56d53718d0c907b62c6e9141ba5f584af3f6830d0872c521357e512381f24f7c44acae583ad517d73 - languageName: node - linkType: hard - -"type-fest@npm:^0.21.3": - version: 0.21.3 - resolution: "type-fest@npm:0.21.3" - checksum: e6b32a3b3877f04339bae01c193b273c62ba7bfc9e325b8703c4ee1b32dc8fe4ef5dfa54bf78265e069f7667d058e360ae0f37be5af9f153b22382cd55a9afe0 - languageName: node - linkType: hard - -"type-is@npm:^1.6.4, type-is@npm:~1.6.18": - version: 1.6.18 - resolution: "type-is@npm:1.6.18" - dependencies: - media-typer: 0.3.0 - mime-types: ~2.1.24 - checksum: 2c8e47675d55f8b4e404bcf529abdf5036c537a04c2b20177bcf78c9e3c1da69da3942b1346e6edb09e823228c0ee656ef0e033765ec39a70d496ef601a0c657 - languageName: node - linkType: hard - -"typedarray-to-buffer@npm:^3.1.5": - version: 3.1.5 - resolution: "typedarray-to-buffer@npm:3.1.5" - dependencies: - is-typedarray: ^1.0.0 - checksum: 99c11aaa8f45189fcfba6b8a4825fd684a321caa9bd7a76a27cf0c7732c174d198b99f449c52c3818107430b5f41c0ccbbfb75cb2ee3ca4a9451710986d61a60 - languageName: node - linkType: hard - -"typedarray@npm:^0.0.6": - version: 0.0.6 - resolution: "typedarray@npm:0.0.6" - checksum: 33b39f3d0e8463985eeaeeacc3cb2e28bc3dfaf2a5ed219628c0b629d5d7b810b0eb2165f9f607c34871d5daa92ba1dc69f49051cf7d578b4cbd26c340b9d1b1 - languageName: node - linkType: hard - -"typedoc@npm:^0.23.22": - version: 0.23.22 - resolution: "typedoc@npm:0.23.22" - dependencies: - lunr: ^2.3.9 - marked: ^4.0.19 - minimatch: ^5.1.0 - shiki: ^0.11.1 - peerDependencies: - typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x - bin: - typedoc: bin/typedoc - checksum: ac3a015e72d5e2dc6a3a2cca64572932a6d9d0ea26ee08e87c05e2244795087371a12b103f5f4c4f72d006f8893cd4dccd9addfbbce18577e2fb36c9c1d71be4 - languageName: node - linkType: hard - -"typescript@npm:^4.9.4": - version: 4.9.4 - resolution: "typescript@npm:4.9.4" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: e782fb9e0031cb258a80000f6c13530288c6d63f1177ed43f770533fdc15740d271554cdae86701c1dd2c83b082cea808b07e97fd68b38a172a83dbf9e0d0ef9 - languageName: node - linkType: hard - -"typescript@patch:typescript@^4.9.4#~builtin": - version: 4.9.4 - resolution: "typescript@patch:typescript@npm%3A4.9.4#~builtin::version=4.9.4&hash=bda367" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 37f6e2c3c5e2aa5934b85b0fddbf32eeac8b1bacf3a5b51d01946936d03f5377fe86255d4e5a4ae628fd0cd553386355ad362c57f13b4635064400f3e8e05b9d - languageName: node - linkType: hard - -"unbox-primitive@npm:^1.0.1": - version: 1.0.1 - resolution: "unbox-primitive@npm:1.0.1" - dependencies: - function-bind: ^1.1.1 - has-bigints: ^1.0.1 - has-symbols: ^1.0.2 - which-boxed-primitive: ^1.0.2 - checksum: 89d950e18fb45672bc6b3c961f1e72c07beb9640c7ceed847b571ba6f7d2af570ae1a2584cfee268b9d9ea1e3293f7e33e0bc29eaeb9f8e8a0bab057ff9e6bba - languageName: node - linkType: hard - -"unique-filename@npm:^1.1.1": - version: 1.1.1 - resolution: "unique-filename@npm:1.1.1" - dependencies: - unique-slug: ^2.0.0 - checksum: cf4998c9228cc7647ba7814e255dec51be43673903897b1786eff2ac2d670f54d4d733357eb08dea969aa5e6875d0e1bd391d668fbdb5a179744e7c7551a6f80 - languageName: node - linkType: hard - -"unique-slug@npm:^2.0.0": - version: 2.0.2 - resolution: "unique-slug@npm:2.0.2" - dependencies: - imurmurhash: ^0.1.4 - checksum: 5b6876a645da08d505dedb970d1571f6cebdf87044cb6b740c8dbb24f0d6e1dc8bdbf46825fd09f994d7cf50760e6f6e063cfa197d51c5902c00a861702eb75a - languageName: node - linkType: hard - -"universalify@npm:^0.1.2": - version: 0.1.2 - resolution: "universalify@npm:0.1.2" - checksum: 40cdc60f6e61070fe658ca36016a8f4ec216b29bf04a55dce14e3710cc84c7448538ef4dad3728d0bfe29975ccd7bfb5f414c45e7b78883567fb31b246f02dff - languageName: node - linkType: hard - -"unpipe@npm:1.0.0, unpipe@npm:~1.0.0": - version: 1.0.0 - resolution: "unpipe@npm:1.0.0" - checksum: 4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2 - languageName: node - linkType: hard - -"uri-js@npm:^4.2.2": - version: 4.4.1 - resolution: "uri-js@npm:4.4.1" - dependencies: - punycode: ^2.1.0 - checksum: 7167432de6817fe8e9e0c9684f1d2de2bb688c94388f7569f7dbdb1587c9f4ca2a77962f134ec90be0cc4d004c939ff0d05acc9f34a0db39a3c797dada262633 - languageName: node - linkType: hard - -"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1": - version: 1.0.2 - resolution: "util-deprecate@npm:1.0.2" - checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 - languageName: node - linkType: hard - -"utils-merge@npm:1.0.1": - version: 1.0.1 - resolution: "utils-merge@npm:1.0.1" - checksum: c81095493225ecfc28add49c106ca4f09cdf56bc66731aa8dabc2edbbccb1e1bfe2de6a115e5c6a380d3ea166d1636410b62ef216bb07b3feb1cfde1d95d5080 - languageName: node - linkType: hard - -"uuid@npm:8.3.2, uuid@npm:^8.3.2": - version: 8.3.2 - resolution: "uuid@npm:8.3.2" - bin: - uuid: dist/bin/uuid - checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df - languageName: node - linkType: hard - -"uuid@npm:9.0.0": - version: 9.0.0 - resolution: "uuid@npm:9.0.0" - bin: - uuid: dist/bin/uuid - checksum: 8dd2c83c43ddc7e1c71e36b60aea40030a6505139af6bee0f382ebcd1a56f6cd3028f7f06ffb07f8cf6ced320b76aea275284b224b002b289f89fe89c389b028 - languageName: node - linkType: hard - -"v8-compile-cache-lib@npm:^3.0.0": - version: 3.0.1 - resolution: "v8-compile-cache-lib@npm:3.0.1" - checksum: 78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0 - languageName: node - linkType: hard - -"v8-compile-cache@npm:^2.0.3": - version: 2.3.0 - resolution: "v8-compile-cache@npm:2.3.0" - checksum: adb0a271eaa2297f2f4c536acbfee872d0dd26ec2d76f66921aa7fc437319132773483344207bdbeee169225f4739016d8d2dbf0553913a52bb34da6d0334f8e - languageName: node - linkType: hard - -"v8-to-istanbul@npm:^8.1.0": - version: 8.1.1 - resolution: "v8-to-istanbul@npm:8.1.1" - dependencies: - "@types/istanbul-lib-coverage": ^2.0.1 - convert-source-map: ^1.6.0 - source-map: ^0.7.3 - checksum: 54ce92bec2727879626f623d02c8d193f0c7e919941fa373ec135189a8382265117f5316ea317a1e12a5f9c13d84d8449052a731fe3306fa4beaafbfa4cab229 - languageName: node - linkType: hard - -"validator@npm:^13.7.0": - version: 13.7.0 - resolution: "validator@npm:13.7.0" - checksum: 2b83283de1222ca549a7ef57f46e8d49c6669213348db78b7045bce36a3b5843ff1e9f709ebf74574e06223461ee1f264f8cc9a26a0060a79a27de079d8286ef - languageName: node - linkType: hard - -"vary@npm:^1, vary@npm:~1.1.2": - version: 1.1.2 - resolution: "vary@npm:1.1.2" - checksum: ae0123222c6df65b437669d63dfa8c36cee20a504101b2fcd97b8bf76f91259c17f9f2b4d70a1e3c6bbcee7f51b28392833adb6b2770b23b01abec84e369660b - languageName: node - linkType: hard - -"vscode-oniguruma@npm:^1.6.1": - version: 1.6.1 - resolution: "vscode-oniguruma@npm:1.6.1" - checksum: b019563a0d48b08c26b66c9f8729ed4ca2620b3b09c6957d5e622f0f104574bec48c7ba575bd157da40fb9a03c03495704894e3ed2d799d80a7180e3051b1f10 - languageName: node - linkType: hard - -"vscode-textmate@npm:^6.0.0": - version: 6.0.0 - resolution: "vscode-textmate@npm:6.0.0" - checksum: ff6f17a406c2906586afc14ef01cb122e33acd35312e815abb5c924347a777c6783ce3fe7db8b83f1760ebf843c669843b9390f905b69c433b3395af28e4b483 - languageName: node - linkType: hard - -"w3c-hr-time@npm:^1.0.2": - version: 1.0.2 - resolution: "w3c-hr-time@npm:1.0.2" - dependencies: - browser-process-hrtime: ^1.0.0 - checksum: ec3c2dacbf8050d917bbf89537a101a08c2e333b4c19155f7d3bedde43529d4339db6b3d049d9610789cb915f9515f8be037e0c54c079e9d4735c50b37ed52b9 - languageName: node - linkType: hard - -"w3c-xmlserializer@npm:^2.0.0": - version: 2.0.0 - resolution: "w3c-xmlserializer@npm:2.0.0" - dependencies: - xml-name-validator: ^3.0.0 - checksum: ae25c51cf71f1fb2516df1ab33a481f83461a117565b95e3d0927432522323f93b1b2846cbb60196d337970c421adb604fc2d0d180c6a47a839da01db5b9973b - languageName: node - linkType: hard - -"walker@npm:^1.0.7": - version: 1.0.8 - resolution: "walker@npm:1.0.8" - dependencies: - makeerror: 1.0.12 - checksum: ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c - languageName: node - linkType: hard - -"webidl-conversions@npm:^3.0.0": - version: 3.0.1 - resolution: "webidl-conversions@npm:3.0.1" - checksum: c92a0a6ab95314bde9c32e1d0a6dfac83b578f8fa5f21e675bc2706ed6981bc26b7eb7e6a1fab158e5ce4adf9caa4a0aee49a52505d4d13c7be545f15021b17c - languageName: node - linkType: hard - -"webidl-conversions@npm:^5.0.0": - version: 5.0.0 - resolution: "webidl-conversions@npm:5.0.0" - checksum: ccf1ec2ca7c0b5671e5440ace4a66806ae09c49016ab821481bec0c05b1b82695082dc0a27d1fe9d804d475a408ba0c691e6803fd21be608e710955d4589cd69 - languageName: node - linkType: hard - -"webidl-conversions@npm:^6.1.0": - version: 6.1.0 - resolution: "webidl-conversions@npm:6.1.0" - checksum: 1f526507aa491f972a0c1409d07f8444e1d28778dfa269a9971f2e157182f3d496dc33296e4ed45b157fdb3bf535bb90c90bf10c50dcf1dd6caacb2a34cc84fb - languageName: node - linkType: hard - -"webidl-conversions@npm:^7.0.0": - version: 7.0.0 - resolution: "webidl-conversions@npm:7.0.0" - checksum: f05588567a2a76428515333eff87200fae6c83c3948a7482ebb109562971e77ef6dc49749afa58abb993391227c5697b3ecca52018793e0cb4620a48f10bd21b - languageName: node - linkType: hard - -"whatwg-encoding@npm:^1.0.5": - version: 1.0.5 - resolution: "whatwg-encoding@npm:1.0.5" - dependencies: - iconv-lite: 0.4.24 - checksum: 5be4efe111dce29ddee3448d3915477fcc3b28f991d9cf1300b4e50d6d189010d47bca2f51140a844cf9b726e8f066f4aee72a04d687bfe4f2ee2767b2f5b1e6 - languageName: node - linkType: hard - -"whatwg-mimetype@npm:^2.3.0": - version: 2.3.0 - resolution: "whatwg-mimetype@npm:2.3.0" - checksum: 23eb885940bcbcca4ff841c40a78e9cbb893ec42743993a42bf7aed16085b048b44b06f3402018931687153550f9a32d259dfa524e4f03577ab898b6965e5383 - languageName: node - linkType: hard - -"whatwg-url@npm:^11.0.0": - version: 11.0.0 - resolution: "whatwg-url@npm:11.0.0" - dependencies: - tr46: ^3.0.0 - webidl-conversions: ^7.0.0 - checksum: ed4826aaa57e66bb3488a4b25c9cd476c46ba96052747388b5801f137dd740b73fde91ad207d96baf9f17fbcc80fc1a477ad65181b5eb5fa718d27c69501d7af - languageName: node - linkType: hard - -"whatwg-url@npm:^5.0.0": - version: 5.0.0 - resolution: "whatwg-url@npm:5.0.0" - dependencies: - tr46: ~0.0.3 - webidl-conversions: ^3.0.0 - checksum: b8daed4ad3356cc4899048a15b2c143a9aed0dfae1f611ebd55073310c7b910f522ad75d727346ad64203d7e6c79ef25eafd465f4d12775ca44b90fa82ed9e2c - languageName: node - linkType: hard - -"whatwg-url@npm:^8.0.0, whatwg-url@npm:^8.5.0": - version: 8.7.0 - resolution: "whatwg-url@npm:8.7.0" - dependencies: - lodash: ^4.7.0 - tr46: ^2.1.0 - webidl-conversions: ^6.1.0 - checksum: a87abcc6cefcece5311eb642858c8fdb234e51ec74196bfacf8def2edae1bfbffdf6acb251646ed6301f8cee44262642d8769c707256125a91387e33f405dd1e - languageName: node - linkType: hard - -"which-boxed-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "which-boxed-primitive@npm:1.0.2" - dependencies: - is-bigint: ^1.0.1 - is-boolean-object: ^1.1.0 - is-number-object: ^1.0.4 - is-string: ^1.0.5 - is-symbol: ^1.0.3 - checksum: 53ce774c7379071729533922adcca47220228405e1895f26673bbd71bdf7fb09bee38c1d6399395927c6289476b5ae0629863427fd151491b71c4b6cb04f3a5e - languageName: node - linkType: hard - -"which@npm:^2.0.1, which@npm:^2.0.2": - version: 2.0.2 - resolution: "which@npm:2.0.2" - dependencies: - isexe: ^2.0.0 - bin: - node-which: ./bin/node-which - checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 - languageName: node - linkType: hard - -"wide-align@npm:^1.1.5": - version: 1.1.5 - resolution: "wide-align@npm:1.1.5" - dependencies: - string-width: ^1.0.2 || 2 || 3 || 4 - checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 - languageName: node - linkType: hard - -"word-wrap@npm:^1.2.3, word-wrap@npm:~1.2.3": - version: 1.2.3 - resolution: "word-wrap@npm:1.2.3" - checksum: 30b48f91fcf12106ed3186ae4fa86a6a1842416df425be7b60485de14bec665a54a68e4b5156647dec3a70f25e84d270ca8bc8cd23182ed095f5c7206a938c1f - languageName: node - linkType: hard - -"wrap-ansi@npm:^7.0.0": - version: 7.0.0 - resolution: "wrap-ansi@npm:7.0.0" - dependencies: - ansi-styles: ^4.0.0 - string-width: ^4.1.0 - strip-ansi: ^6.0.0 - checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b - languageName: node - linkType: hard - -"wrappy@npm:1": - version: 1.0.2 - resolution: "wrappy@npm:1.0.2" - checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 - languageName: node - linkType: hard - -"write-file-atomic@npm:^3.0.0": - version: 3.0.3 - resolution: "write-file-atomic@npm:3.0.3" - dependencies: - imurmurhash: ^0.1.4 - is-typedarray: ^1.0.0 - signal-exit: ^3.0.2 - typedarray-to-buffer: ^3.1.5 - checksum: c55b24617cc61c3a4379f425fc62a386cc51916a9b9d993f39734d005a09d5a4bb748bc251f1304e7abd71d0a26d339996c275955f527a131b1dcded67878280 - languageName: node - linkType: hard - -"ws@npm:^7.4.6": - version: 7.5.6 - resolution: "ws@npm:7.5.6" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 0c2ffc9a539dd61dd2b00ff6cc5c98a3371e2521011fe23da4b3578bb7ac26cbdf7ca8a68e8e08023c122ae247013216dde2a20c908de415a6bcc87bdef68c87 - languageName: node - linkType: hard - -"xml-name-validator@npm:^3.0.0": - version: 3.0.0 - resolution: "xml-name-validator@npm:3.0.0" - checksum: b3ac459afed783c285bb98e4960bd1f3ba12754fd4f2320efa0f9181ca28928c53cc75ca660d15d205e81f92304419afe94c531c7cfb3e0649aa6d140d53ecb0 - languageName: node - linkType: hard - -"xmlchars@npm:^2.2.0": - version: 2.2.0 - resolution: "xmlchars@npm:2.2.0" - checksum: 8c70ac94070ccca03f47a81fcce3b271bd1f37a591bf5424e787ae313fcb9c212f5f6786e1fa82076a2c632c0141552babcd85698c437506dfa6ae2d58723062 - languageName: node - linkType: hard - -"xtend@npm:^4.0.0": - version: 4.0.2 - resolution: "xtend@npm:4.0.2" - checksum: ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a - languageName: node - linkType: hard - -"y18n@npm:^5.0.5": - version: 5.0.8 - resolution: "y18n@npm:5.0.8" - checksum: 54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30 - languageName: node - linkType: hard - -"yallist@npm:^4.0.0": - version: 4.0.0 - resolution: "yallist@npm:4.0.0" - checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 - languageName: node - linkType: hard - -"yargs-parser@npm:20.x, yargs-parser@npm:^20.2.2": - version: 20.2.9 - resolution: "yargs-parser@npm:20.2.9" - checksum: 8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3 - languageName: node - linkType: hard - -"yargs@npm:^16.2.0": - version: 16.2.0 - resolution: "yargs@npm:16.2.0" - dependencies: - cliui: ^7.0.2 - escalade: ^3.1.1 - get-caller-file: ^2.0.5 - require-directory: ^2.1.1 - string-width: ^4.2.0 - y18n: ^5.0.5 - yargs-parser: ^20.2.2 - checksum: b14afbb51e3251a204d81937c86a7e9d4bdbf9a2bcee38226c900d00f522969ab675703bee2a6f99f8e20103f608382936034e64d921b74df82b63c07c5e8f59 - languageName: node - linkType: hard - -"yn@npm:3.1.1": - version: 3.1.1 - resolution: "yn@npm:3.1.1" - checksum: 2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6 - languageName: node - linkType: hard +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.2.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" + integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== + dependencies: + "@babel/helper-validator-identifier" "^7.27.1" + js-tokens "^4.0.0" + picocolors "^1.1.1" + +"@babel/compat-data@^7.27.2": + version "7.27.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.27.7.tgz#7fd698e531050cce432b073ab64857b99e0f3804" + integrity sha512-xgu/ySj2mTiUFmdE9yCMfBxLp4DHd5DwmbbD05YAuICfodYT3VvRxbrh81LGQ/8UpSdtMdfKMn3KouYDX59DGQ== + +"@babel/core@^7.23.9", "@babel/core@^7.27.4": + version "7.27.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.27.7.tgz#0ddeab1e7b17317dad8c3c3a887716f66b5c4428" + integrity sha512-BU2f9tlKQ5CAthiMIgpzAh4eDTLWo1mqi9jqE2OxMG0E/OM199VJt2q8BztTxpnSW0i1ymdwLXRJnYzvDM5r2w== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.27.5" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-module-transforms" "^7.27.3" + "@babel/helpers" "^7.27.6" + "@babel/parser" "^7.27.7" + "@babel/template" "^7.27.2" + "@babel/traverse" "^7.27.7" + "@babel/types" "^7.27.7" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.27.5": + version "7.27.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.5.tgz#3eb01866b345ba261b04911020cbe22dd4be8c8c" + integrity sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw== + dependencies: + "@babel/parser" "^7.27.5" + "@babel/types" "^7.27.3" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^3.0.2" + +"@babel/helper-compilation-targets@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d" + integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== + dependencies: + "@babel/compat-data" "^7.27.2" + "@babel/helper-validator-option" "^7.27.1" + browserslist "^4.24.0" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-module-imports@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204" + integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-module-transforms@^7.27.3": + version "7.27.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz#db0bbcfba5802f9ef7870705a7ef8788508ede02" + integrity sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg== + dependencies: + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.27.3" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.27.1", "@babel/helper-plugin-utils@^7.8.0": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c" + integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== + +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + +"@babel/helper-validator-identifier@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" + integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== + +"@babel/helper-validator-option@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" + integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== + +"@babel/helpers@^7.27.6": + version "7.27.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.6.tgz#6456fed15b2cb669d2d1fabe84b66b34991d812c" + integrity sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug== + dependencies: + "@babel/template" "^7.27.2" + "@babel/types" "^7.27.6" + +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.27.2", "@babel/parser@^7.27.5", "@babel/parser@^7.27.7": + version "7.27.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.7.tgz#1687f5294b45039c159730e3b9c1f1b242e425e9" + integrity sha512-qnzXzDXdr/po3bOTbTIQZ7+TxNKxpkN5IifVLXS+r7qwynkZfPyjZfE7hCXbo7IoO9TNcSyibgONsf2HauUd3Q== + dependencies: + "@babel/types" "^7.27.7" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-import-attributes@^7.24.7": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz#34c017d54496f9b11b61474e7ea3dfd5563ffe07" + integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz#2f9beb5eff30fa507c5532d107daac7b888fa34c" + integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz#5147d29066a793450f220c63fa3a9431b7e6dd18" + integrity sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/template@^7.27.2": + version "7.27.2" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d" + integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/parser" "^7.27.2" + "@babel/types" "^7.27.1" + +"@babel/traverse@^7.27.1", "@babel/traverse@^7.27.3", "@babel/traverse@^7.27.7": + version "7.27.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.7.tgz#8355c39be6818362eace058cf7f3e25ac2ec3b55" + integrity sha512-X6ZlfR/O/s5EQ/SnUSLzr+6kGnkg8HXGMzpgsMsrJVcfDtH1vIp6ctCN4eZ1LS5c0+te5Cb6Y514fASjMRJ1nw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.27.5" + "@babel/parser" "^7.27.7" + "@babel/template" "^7.27.2" + "@babel/types" "^7.27.7" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.27.6", "@babel/types@^7.27.7": + version "7.27.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.7.tgz#40eabd562049b2ee1a205fa589e629f945dce20f" + integrity sha512-8OLQgDScAOHXnAz2cV+RfzzNMipuLVBz2biuAJFMV9bfkNf393je3VM8CLkjQodW5+iWsSJdSgSWT6rsZoXHPw== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@emnapi/core@^1.4.3": + version "1.4.3" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.4.3.tgz#9ac52d2d5aea958f67e52c40a065f51de59b77d6" + integrity sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g== + dependencies: + "@emnapi/wasi-threads" "1.0.2" + tslib "^2.4.0" + +"@emnapi/runtime@^1.4.3": + version "1.4.3" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.4.3.tgz#c0564665c80dc81c448adac23f9dfbed6c838f7d" + integrity sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ== + dependencies: + tslib "^2.4.0" + +"@emnapi/wasi-threads@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz#977f44f844eac7d6c138a415a123818c655f874c" + integrity sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA== + dependencies: + tslib "^2.4.0" + +"@gerrit0/mini-shiki@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@gerrit0/mini-shiki/-/mini-shiki-3.7.0.tgz#7ab9c6fabe0b78949ad383b4d0b4db4ad6cb8a68" + integrity sha512-7iY9wg4FWXmeoFJpUL2u+tsmh0d0jcEJHAIzVxl3TG4KL493JNnisdLAILZ77zcD+z3J0keEXZ+lFzUgzQzPDg== + dependencies: + "@shikijs/engine-oniguruma" "^3.7.0" + "@shikijs/langs" "^3.7.0" + "@shikijs/themes" "^3.7.0" + "@shikijs/types" "^3.7.0" + "@shikijs/vscode-textmate" "^10.0.2" + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@30.0.2": + version "30.0.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-30.0.2.tgz#e2bf6c7703d45f9824d77c7332388c3e1685afd7" + integrity sha512-krGElPU0FipAqpVZ/BRZOy0MZh/ARdJ0Nj+PiH1ykFY1+VpBlYNLjdjVA5CFKxnKR6PFqFutO4Z7cdK9BlGiDA== + dependencies: + "@jest/types" "30.0.1" + "@types/node" "*" + chalk "^4.1.2" + jest-message-util "30.0.2" + jest-util "30.0.2" + slash "^3.0.0" + +"@jest/core@30.0.3": + version "30.0.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-30.0.3.tgz#87967dd3ea6bd6bc98e99aa4b47bfbb0b7f2a77e" + integrity sha512-Mgs1N+NSHD3Fusl7bOq1jyxv1JDAUwjy+0DhVR93Q6xcBP9/bAQ+oZhXb5TTnP5sQzAHgb7ROCKQ2SnovtxYtg== + dependencies: + "@jest/console" "30.0.2" + "@jest/pattern" "30.0.1" + "@jest/reporters" "30.0.2" + "@jest/test-result" "30.0.2" + "@jest/transform" "30.0.2" + "@jest/types" "30.0.1" + "@types/node" "*" + ansi-escapes "^4.3.2" + chalk "^4.1.2" + ci-info "^4.2.0" + exit-x "^0.2.2" + graceful-fs "^4.2.11" + jest-changed-files "30.0.2" + jest-config "30.0.3" + jest-haste-map "30.0.2" + jest-message-util "30.0.2" + jest-regex-util "30.0.1" + jest-resolve "30.0.2" + jest-resolve-dependencies "30.0.3" + jest-runner "30.0.3" + jest-runtime "30.0.3" + jest-snapshot "30.0.3" + jest-util "30.0.2" + jest-validate "30.0.2" + jest-watcher "30.0.2" + micromatch "^4.0.8" + pretty-format "30.0.2" + slash "^3.0.0" + +"@jest/diff-sequences@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz#0ededeae4d071f5c8ffe3678d15f3a1be09156be" + integrity sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw== + +"@jest/environment@30.0.2": + version "30.0.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-30.0.2.tgz#1b0d055070e97f697e9edb25059e9435221cbe65" + integrity sha512-hRLhZRJNxBiOhxIKSq2UkrlhMt3/zVFQOAi5lvS8T9I03+kxsbflwHJEF+eXEYXCrRGRhHwECT7CDk6DyngsRA== + dependencies: + "@jest/fake-timers" "30.0.2" + "@jest/types" "30.0.1" + "@types/node" "*" + jest-mock "30.0.2" + +"@jest/expect-utils@30.0.3": + version "30.0.3" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-30.0.3.tgz#2a9fb40110c8a13ae464da41f877df90d2e6bc3b" + integrity sha512-SMtBvf2sfX2agcT0dA9pXwcUrKvOSDqBY4e4iRfT+Hya33XzV35YVg+98YQFErVGA/VR1Gto5Y2+A6G9LSQ3Yg== + dependencies: + "@jest/get-type" "30.0.1" + +"@jest/expect@30.0.3": + version "30.0.3" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-30.0.3.tgz#9653e868ca27dd2194f6c20c81b8a690f9669465" + integrity sha512-73BVLqfCeWjYWPEQoYjiRZ4xuQRhQZU0WdgvbyXGRHItKQqg5e6mt2y1kVhzLSuZpmUnccZHbGynoaL7IcLU3A== + dependencies: + expect "30.0.3" + jest-snapshot "30.0.3" + +"@jest/fake-timers@30.0.2": + version "30.0.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-30.0.2.tgz#ec758b28ae6f63a49eda9e8d6af274d152d37c09" + integrity sha512-jfx0Xg7l0gmphTY9UKm5RtH12BlLYj/2Plj6wXjVW5Era4FZKfXeIvwC67WX+4q8UCFxYS20IgnMcFBcEU0DtA== + dependencies: + "@jest/types" "30.0.1" + "@sinonjs/fake-timers" "^13.0.0" + "@types/node" "*" + jest-message-util "30.0.2" + jest-mock "30.0.2" + jest-util "30.0.2" + +"@jest/get-type@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/get-type/-/get-type-30.0.1.tgz#0d32f1bbfba511948ad247ab01b9007724fc9f52" + integrity sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw== + +"@jest/globals@30.0.3": + version "30.0.3" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-30.0.3.tgz#9c9ef55e6f5e6b7e946244bdbf2af85044b7bb04" + integrity sha512-fIduqNyYpMeeSr5iEAiMn15KxCzvrmxl7X7VwLDRGj7t5CoHtbF+7K3EvKk32mOUIJ4kIvFRlaixClMH2h/Vaw== + dependencies: + "@jest/environment" "30.0.2" + "@jest/expect" "30.0.3" + "@jest/types" "30.0.1" + jest-mock "30.0.2" + +"@jest/pattern@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/pattern/-/pattern-30.0.1.tgz#d5304147f49a052900b4b853dedb111d080e199f" + integrity sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA== + dependencies: + "@types/node" "*" + jest-regex-util "30.0.1" + +"@jest/reporters@30.0.2": + version "30.0.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-30.0.2.tgz#e804435ab77cd05b7e8732b91006cd00bd822399" + integrity sha512-l4QzS/oKf57F8WtPZK+vvF4Io6ukplc6XgNFu4Hd/QxaLEO9f+8dSFzUua62Oe0HKlCUjKHpltKErAgDiMJKsA== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "30.0.2" + "@jest/test-result" "30.0.2" + "@jest/transform" "30.0.2" + "@jest/types" "30.0.1" + "@jridgewell/trace-mapping" "^0.3.25" + "@types/node" "*" + chalk "^4.1.2" + collect-v8-coverage "^1.0.2" + exit-x "^0.2.2" + glob "^10.3.10" + graceful-fs "^4.2.11" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^6.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^5.0.0" + istanbul-reports "^3.1.3" + jest-message-util "30.0.2" + jest-util "30.0.2" + jest-worker "30.0.2" + slash "^3.0.0" + string-length "^4.0.2" + v8-to-istanbul "^9.0.1" + +"@jest/schemas@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-30.0.1.tgz#27c00d707d480ece0c19126af97081a1af3bc46e" + integrity sha512-+g/1TKjFuGrf1Hh0QPCv0gISwBxJ+MQSNXmG9zjHy7BmFhtoJ9fdNhWJp3qUKRi93AOZHXtdxZgJ1vAtz6z65w== + dependencies: + "@sinclair/typebox" "^0.34.0" + +"@jest/snapshot-utils@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/snapshot-utils/-/snapshot-utils-30.0.1.tgz#536108aa6b74858d758ae3b5229518c3d818bd68" + integrity sha512-6Dpv7vdtoRiISEFwYF8/c7LIvqXD7xDXtLPNzC2xqAfBznKip0MQM+rkseKwUPUpv2PJ7KW/YsnwWXrIL2xF+A== + dependencies: + "@jest/types" "30.0.1" + chalk "^4.1.2" + graceful-fs "^4.2.11" + natural-compare "^1.4.0" + +"@jest/source-map@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-30.0.1.tgz#305ebec50468f13e658b3d5c26f85107a5620aaa" + integrity sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.25" + callsites "^3.1.0" + graceful-fs "^4.2.11" + +"@jest/test-result@30.0.2": + version "30.0.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-30.0.2.tgz#786849e33da6060381c508986fa7309ff855a367" + integrity sha512-KKMuBKkkZYP/GfHMhI+cH2/P3+taMZS3qnqqiPC1UXZTJskkCS+YU/ILCtw5anw1+YsTulDHFpDo70mmCedW8w== + dependencies: + "@jest/console" "30.0.2" + "@jest/types" "30.0.1" + "@types/istanbul-lib-coverage" "^2.0.6" + collect-v8-coverage "^1.0.2" + +"@jest/test-sequencer@30.0.2": + version "30.0.2" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-30.0.2.tgz#2693692d285b1c929ed353f7f0b7cbea51c57515" + integrity sha512-fbyU5HPka0rkalZ3MXVvq0hwZY8dx3Y6SCqR64zRmh+xXlDeFl0IdL4l9e7vp4gxEXTYHbwLFA1D+WW5CucaSw== + dependencies: + "@jest/test-result" "30.0.2" + graceful-fs "^4.2.11" + jest-haste-map "30.0.2" + slash "^3.0.0" + +"@jest/transform@30.0.2": + version "30.0.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-30.0.2.tgz#62ba84fcc2389ab751e7ec923958c9b1163d90c3" + integrity sha512-kJIuhLMTxRF7sc0gPzPtCDib/V9KwW3I2U25b+lYCYMVqHHSrcZopS8J8H+znx9yixuFv+Iozl8raLt/4MoxrA== + dependencies: + "@babel/core" "^7.27.4" + "@jest/types" "30.0.1" + "@jridgewell/trace-mapping" "^0.3.25" + babel-plugin-istanbul "^7.0.0" + chalk "^4.1.2" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.11" + jest-haste-map "30.0.2" + jest-regex-util "30.0.1" + jest-util "30.0.2" + micromatch "^4.0.8" + pirates "^4.0.7" + slash "^3.0.0" + write-file-atomic "^5.0.1" + +"@jest/types@30.0.1": + version "30.0.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-30.0.1.tgz#a46df6a99a416fa685740ac4264b9f9cd7da1598" + integrity sha512-HGwoYRVF0QSKJu1ZQX0o5ZrUrrhj0aOOFA8hXrumD7SIzjouevhawbTjmXdwOmURdGluU9DM/XvGm3NyFoiQjw== + dependencies: + "@jest/pattern" "30.0.1" + "@jest/schemas" "30.0.1" + "@types/istanbul-lib-coverage" "^2.0.6" + "@types/istanbul-reports" "^3.0.4" + "@types/node" "*" + "@types/yargs" "^17.0.33" + chalk "^4.1.2" + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.10" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.10.tgz#1cad974c8478e644c5cbce2a4b738137bb64bd4f" + integrity sha512-HM2F4B9N4cA0RH2KQiIZOHAZqtP4xGS4IZ+SFe1SIbO4dyjf9MTY2Bo3vHYnm0hglWfXqBrzUBSa+cJfl3Xvrg== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.2.tgz#4f25c8f17f28ccf70ed16e03f8fbf6d3998cb8fd" + integrity sha512-gKYheCylLIedI+CSZoDtGkFV9YEBxRRVcfCH7OfAqh4TyUyRjEE6WVE/aXDXX0p8BIe/QgLcaAoI0220KRRFgg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.23", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.27" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.27.tgz#3139cfeafce3aa9918454cce8b219eee39fd7df2" + integrity sha512-VO95AxtSFMelbg3ouljAYnfvTEwSWVt/2YLf+U5Ejd8iT5mXE2Sa/1LGyvySMne2CGsepGLI7KpF3EzE3Aq9Mg== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@lukeed/csprng@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@lukeed/csprng/-/csprng-1.1.0.tgz#1e3e4bd05c1cc7a0b2ddbd8a03f39f6e4b5e6cfe" + integrity sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA== + +"@mongodb-js/saslprep@^1.1.9": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@mongodb-js/saslprep/-/saslprep-1.3.0.tgz#75bb770b4b0908047b6c6ac2ec841047660e1c82" + integrity sha512-zlayKCsIjYb7/IdfqxorK5+xUMyi4vOKcFy10wKJYc63NSdKI8mNME+uJqfatkPmOSMMUiojrL58IePKBm3gvQ== + dependencies: + sparse-bitfield "^3.0.3" + +"@napi-rs/wasm-runtime@^0.2.11": + version "0.2.11" + resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.11.tgz#192c1610e1625048089ab4e35bc0649ce478500e" + integrity sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA== + dependencies: + "@emnapi/core" "^1.4.3" + "@emnapi/runtime" "^1.4.3" + "@tybys/wasm-util" "^0.9.0" + +"@nestjs/common@^11.1.3": + version "11.1.3" + resolved "https://registry.yarnpkg.com/@nestjs/common/-/common-11.1.3.tgz#d954644da5f4d1b601e48ee71a0d3e3405d81ea1" + integrity sha512-ogEK+GriWodIwCw6buQ1rpcH4Kx+G7YQ9EwuPySI3rS05pSdtQ++UhucjusSI9apNidv+QURBztJkRecwwJQXg== + dependencies: + uid "2.0.2" + file-type "21.0.0" + iterare "1.2.1" + load-esm "1.0.2" + tslib "2.8.1" + +"@nestjs/core@^11.1.3": + version "11.1.3" + resolved "https://registry.yarnpkg.com/@nestjs/core/-/core-11.1.3.tgz#42a9c6261ff70ef49afa809c526134cae22021e8" + integrity sha512-5lTni0TCh8x7bXETRD57pQFnKnEg1T6M+VLE7wAmyQRIecKQU+2inRGZD+A4v2DC1I04eA0WffP0GKLxjOKlzw== + dependencies: + uid "2.0.2" + "@nuxt/opencollective" "0.4.1" + fast-safe-stringify "2.1.1" + iterare "1.2.1" + path-to-regexp "8.2.0" + tslib "2.8.1" + +"@nestjs/platform-express@^11.1.3": + version "11.1.3" + resolved "https://registry.yarnpkg.com/@nestjs/platform-express/-/platform-express-11.1.3.tgz#bf470f2e270ca9daa930974476dd0d7d62879556" + integrity sha512-hEDNMlaPiBO72fxxX/CuRQL3MEhKRc/sIYGVoXjrnw6hTxZdezvvM6A95UaLsYknfmcZZa/CdG1SMBZOu9agHQ== + dependencies: + cors "2.8.5" + express "5.1.0" + multer "2.0.1" + path-to-regexp "8.2.0" + tslib "2.8.1" + +"@nestjs/testing@^11.1.3": + version "11.1.3" + resolved "https://registry.yarnpkg.com/@nestjs/testing/-/testing-11.1.3.tgz#27b34003f90429fef542b4fe54c5d43f73308b17" + integrity sha512-CeXG6/eEqgFIkPkmU00y18Dd3DLOIDFhPItzJK1SWckKo6IhcnfoRJzGx75bmuvUMjb51j6An96S/+MJ2ty9jA== + dependencies: + tslib "2.8.1" + +"@noble/hashes@^1.1.5": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" + integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== + +"@nuxt/opencollective@0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@nuxt/opencollective/-/opencollective-0.4.1.tgz#57bc41d2b03b2fba20b935c15950ac0f4bd2cea2" + integrity sha512-GXD3wy50qYbxCJ652bDrDzgMr3NFEkIS374+IgFQKkCvk9yiYcLvX2XDYr7UyQxf4wK0e+yqDYRubZ0DtOxnmQ== + dependencies: + consola "^3.2.3" + +"@oxlint/darwin-arm64@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@oxlint/darwin-arm64/-/darwin-arm64-1.4.0.tgz#02b75ce9a3a7b4f428c40d87b3e0cdb461072404" + integrity sha512-G3UsDnZpykvQ5GDzDCAhgBMwM6SzbQyH1If/oH5e/CutUC7sq/QTY8a2l1Hu7liK/euvKiZtM3C/cKdUKy1DNw== + +"@oxlint/darwin-x64@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@oxlint/darwin-x64/-/darwin-x64-1.4.0.tgz#db902b327b3e5d10febae2a39d575fac976b04e4" + integrity sha512-4AgFOkf88iG/nH/bR0i6WV/SKap2ZvBwxvZ9TvrF4Cxag3bVBViy36DgoZXr7AloEybtXZ0IRdrQEJstHkwbtg== + +"@oxlint/linux-arm64-gnu@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@oxlint/linux-arm64-gnu/-/linux-arm64-gnu-1.4.0.tgz#5912068dbe9498e5cc0339cd0a7285e6e219411c" + integrity sha512-9qZarfKyq6v56GhcN0IyejQsmv8GiSi+lJjjXQ/uaa50JrY4/2+i63uRJceUT7SBZbCj1PHvgZuqN+QXov6dWg== + +"@oxlint/linux-arm64-musl@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@oxlint/linux-arm64-musl/-/linux-arm64-musl-1.4.0.tgz#a13e4b752b55c06702f8d3387dd4d9021be45a8e" + integrity sha512-Nfbvqi+o5wU/ZPOYUpM+QMzT6Or8Mog89IUsKRJBBmIPUvcwQhyCKp8B4CZswNJyXisJ3gZ3kdCaaKgnsLln4Q== + +"@oxlint/linux-x64-gnu@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@oxlint/linux-x64-gnu/-/linux-x64-gnu-1.4.0.tgz#694424ed4b4f7f337bbf5a4b4eaf7764bd0ad434" + integrity sha512-z/71xdZpvudjZsaEDk+EJxEzDIcyCaKbvUtGjAfKv60jLuP83bDHD0VD8GI8FSPjhlLpDPmrbcXWbT690Q7NAA== + +"@oxlint/linux-x64-musl@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@oxlint/linux-x64-musl/-/linux-x64-musl-1.4.0.tgz#69ffc7b02f10653a6961ace164ac73c795ac3a6d" + integrity sha512-D6C165X6/hjZ1yi2mNttzeihjL3IoW0s612VNyfW6KrV/lesSaIFTXqII3ThOOQezGTDhpz4xudemcv0g7iFlg== + +"@oxlint/win32-arm64@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@oxlint/win32-arm64/-/win32-arm64-1.4.0.tgz#2b33e4b6829e580d44903e8d165b9d14408f950e" + integrity sha512-wFa7ywGt0jnuukynANm5k/D189YwrQKHIdNgBjBsTvvJZNxGzVy8Q5dwsG0qwWS6RkVh9CMUpOTccPsKBdGHkQ== + +"@oxlint/win32-x64@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@oxlint/win32-x64/-/win32-x64-1.4.0.tgz#4fb344fe6d6bf011cb1d012f9bf81729a290e41f" + integrity sha512-B3ezHSEzQL6Enszl9i9wLwIhWt3lkJ5x2xmgvJ77RrzoaF46QciGvs4TeGU++kPRe5DKpRGlgsruig7GLNUaSg== + +"@paralleldrive/cuid2@^2.2.2": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@paralleldrive/cuid2/-/cuid2-2.2.2.tgz#7f91364d53b89e2c9cb9e02e8dd0f129e834455f" + integrity sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA== + dependencies: + "@noble/hashes" "^1.1.5" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@pkgr/core@^0.2.4": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.7.tgz#eb5014dfd0b03e7f3ba2eeeff506eed89b028058" + integrity sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg== + +"@shikijs/engine-oniguruma@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-3.7.0.tgz#77afe066ed245ae9c3e790ca22344195e974ed54" + integrity sha512-5BxcD6LjVWsGu4xyaBC5bu8LdNgPCVBnAkWTtOCs/CZxcB22L8rcoWfv7Hh/3WooVjBZmFtyxhgvkQFedPGnFw== + dependencies: + "@shikijs/types" "3.7.0" + "@shikijs/vscode-textmate" "^10.0.2" + +"@shikijs/langs@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@shikijs/langs/-/langs-3.7.0.tgz#c201d0218e9f3a74d92bd3f53167f0fb897c5b6e" + integrity sha512-1zYtdfXLr9xDKLTGy5kb7O0zDQsxXiIsw1iIBcNOO8Yi5/Y1qDbJ+0VsFoqTlzdmneO8Ij35g7QKF8kcLyznCQ== + dependencies: + "@shikijs/types" "3.7.0" + +"@shikijs/themes@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@shikijs/themes/-/themes-3.7.0.tgz#e4fb08ca56826dd3b0a48a555140cb090ce0a639" + integrity sha512-VJx8497iZPy5zLiiCTSIaOChIcKQwR0FebwE9S3rcN0+J/GTWwQ1v/bqhTbpbY3zybPKeO8wdammqkpXc4NVjQ== + dependencies: + "@shikijs/types" "3.7.0" + +"@shikijs/types@3.7.0", "@shikijs/types@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-3.7.0.tgz#265641647708663ec8a18a9fab29449076da5a17" + integrity sha512-MGaLeaRlSWpnP0XSAum3kP3a8vtcTsITqoEPYdt3lQG3YCdQH4DnEhodkYcNMcU0uW0RffhoD1O3e0vG5eSBBg== + dependencies: + "@shikijs/vscode-textmate" "^10.0.2" + "@types/hast" "^3.0.4" + +"@shikijs/vscode-textmate@^10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz#a90ab31d0cc1dfb54c66a69e515bf624fa7b2224" + integrity sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg== + +"@sinclair/typebox@^0.34.0": + version "0.34.37" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.34.37.tgz#f331e4db64ff8195e9e3d8449343c85aaa237d6e" + integrity sha512-2TRuQVgQYfy+EzHRTIvkhv2ADEouJ2xNS/Vq+W5EuuewBdOrvATvljZTxHWZSTYr2sTjTHpGvucaGAt67S2akw== + +"@sinonjs/commons@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^13.0.0": + version "13.0.5" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz#36b9dbc21ad5546486ea9173d6bea063eb1717d5" + integrity sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw== + dependencies: + "@sinonjs/commons" "^3.0.1" + +"@tokenizer/inflate@^0.2.7": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@tokenizer/inflate/-/inflate-0.2.7.tgz#32dd9dfc9abe457c89b3d9b760fc0690c85a103b" + integrity sha512-MADQgmZT1eKjp06jpI2yozxaU9uVs4GzzgSL+uEq7bVcJ9V1ZXQkeGNql1fsSI0gMy1vhvNTNbUqrx+pZfJVmg== + dependencies: + debug "^4.4.0" + fflate "^0.8.2" + token-types "^6.0.0" + +"@tokenizer/token@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" + integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== + +"@tsconfig/node10@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" + integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@tybys/wasm-util@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.9.0.tgz#3e75eb00604c8d6db470bf18c37b7d984a0e3355" + integrity sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw== + dependencies: + tslib "^2.4.0" + +"@types/babel__core@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.27.0" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz#b5819294c51179957afaec341442f9341e4108a9" + integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.7.tgz#968cdc2366ec3da159f61166428ee40f370e56c2" + integrity sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng== + dependencies: + "@babel/types" "^7.20.7" + +"@types/cls-hooked@^4.3.9": + version "4.3.9" + resolved "https://registry.yarnpkg.com/@types/cls-hooked/-/cls-hooked-4.3.9.tgz#2cff2f7ca961d53213ef626f96afa986a66d3fad" + integrity sha512-CMtHMz6Q/dkfcHarq9nioXH8BDPP+v5xvd+N90lBQ2bdmu06UvnLDqxTKoOJzz4SzIwb/x9i4UXGAAcnUDuIvg== + dependencies: + "@types/node" "*" + +"@types/cookiejar@^2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.5.tgz#14a3e83fa641beb169a2dd8422d91c3c345a9a78" + integrity sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q== + +"@types/debug@^4.1.12": + version "4.1.12" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== + dependencies: + "@types/ms" "*" + +"@types/hast@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" + integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== + dependencies: + "@types/unist" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.1", "@types/istanbul-lib-coverage@^2.0.6": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^30.0.0": + version "30.0.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-30.0.0.tgz#5e85ae568006712e4ad66f25433e9bdac8801f1d" + integrity sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA== + dependencies: + expect "^30.0.0" + pretty-format "^30.0.0" + +"@types/lodash@^4.14.191": + version "4.17.19" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.19.tgz#de18c90b7891f00fed7c1273495a2f851efd99c4" + integrity sha512-NYqRyg/hIQrYPT9lbOeYc3kIRabJDn/k4qQHIXUpx88CBDww2fD15Sg5kbXlW86zm2XEW4g0QxkTI3/Kfkc7xQ== + +"@types/methods@^1.1.4": + version "1.1.4" + resolved "https://registry.yarnpkg.com/@types/methods/-/methods-1.1.4.tgz#d3b7ac30ac47c91054ea951ce9eed07b1051e547" + integrity sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ== + +"@types/ms@*": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78" + integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== + +"@types/node@*", "@types/node@^24.0.7": + version "24.0.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.0.7.tgz#ee580f7850c7eabaeef61ef96b8d8c04fdf94f53" + integrity sha512-YIEUUr4yf8q8oQoXPpSlnvKNVKDQlPMWrmOcgzoduo7kvA2UF0/BwJ/eMKFTiTtkNL17I0M6Xe2tvwFU7be6iw== + dependencies: + undici-types "~7.8.0" + +"@types/stack-utils@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + +"@types/superagent@^8.1.0": + version "8.1.9" + resolved "https://registry.yarnpkg.com/@types/superagent/-/superagent-8.1.9.tgz#28bfe4658e469838ed0bf66d898354bcab21f49f" + integrity sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ== + dependencies: + "@types/cookiejar" "^2.1.5" + "@types/methods" "^1.1.4" + "@types/node" "*" + form-data "^4.0.0" + +"@types/supertest@^6.0.3": + version "6.0.3" + resolved "https://registry.yarnpkg.com/@types/supertest/-/supertest-6.0.3.tgz#d736f0e994b195b63e1c93e80271a2faf927388c" + integrity sha512-8WzXq62EXFhJ7QsH3Ocb/iKQ/Ty9ZVWnVzoTKc9tyyFRRF3a74Tk2+TLFgaFFw364Ere+npzHKEJ6ga2LzIL7w== + dependencies: + "@types/methods" "^1.1.4" + "@types/superagent" "^8.1.0" + +"@types/unist@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" + integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== + +"@types/validator@^13.11.8": + version "13.15.2" + resolved "https://registry.yarnpkg.com/@types/validator/-/validator-13.15.2.tgz#ee533a20ab977df36917a454754c7e0df4aa6f8f" + integrity sha512-y7pa/oEJJ4iGYBxOpfAKn5b9+xuihvzDVnC/OSvlVnGxVg0pOqmjiMafiJ1KVNQEaPZf9HsEp5icEwGg8uIe5Q== + +"@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.5" + resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-11.0.5.tgz#aaa2546e60f0c99209ca13360c32c78caf2c409f" + integrity sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ== + dependencies: + "@types/webidl-conversions" "*" + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^17.0.33": + version "17.0.33" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d" + integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA== + dependencies: + "@types/yargs-parser" "*" + +"@ungap/structured-clone@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== + +"@unrs/resolver-binding-android-arm-eabi@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.9.2.tgz#6cb01dde20bef06397ffd4924f502596cb458851" + integrity sha512-tS+lqTU3N0kkthU+rYp0spAYq15DU8ld9kXkaKg9sbQqJNF+WPMuNHZQGCgdxrUOEO0j22RKMwRVhF1HTl+X8A== + +"@unrs/resolver-binding-android-arm64@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.9.2.tgz#1672b533f01f98119095860683496def93929a2e" + integrity sha512-MffGiZULa/KmkNjHeuuflLVqfhqLv1vZLm8lWIyeADvlElJ/GLSOkoUX+5jf4/EGtfwrNFcEaB8BRas03KT0/Q== + +"@unrs/resolver-binding-darwin-arm64@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.9.2.tgz#dad66a21553b1ba4088c6eb922332846550bd9b2" + integrity sha512-dzJYK5rohS1sYl1DHdJ3mwfwClJj5BClQnQSyAgEfggbUwA9RlROQSSbKBLqrGfsiC/VyrDPtbO8hh56fnkbsQ== + +"@unrs/resolver-binding-darwin-x64@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.9.2.tgz#bfaedca218078862f3d536d44269fed94a6158e2" + integrity sha512-gaIMWK+CWtXcg9gUyznkdV54LzQ90S3X3dn8zlh+QR5Xy7Y+Efqw4Rs4im61K1juy4YNb67vmJsCDAGOnIeffQ== + +"@unrs/resolver-binding-freebsd-x64@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.9.2.tgz#bdab0e754c45831522b16df0b6fe4b0ffde22628" + integrity sha512-S7QpkMbVoVJb0xwHFwujnwCAEDe/596xqY603rpi/ioTn9VDgBHnCCxh+UFrr5yxuMH+dliHfjwCZJXOPJGPnw== + +"@unrs/resolver-binding-linux-arm-gnueabihf@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.9.2.tgz#2bac9c19599888d4ba4787b437b0273ac7a7a9f2" + integrity sha512-+XPUMCuCCI80I46nCDFbGum0ZODP5NWGiwS3Pj8fOgsG5/ctz+/zzuBlq/WmGa+EjWZdue6CF0aWWNv84sE1uw== + +"@unrs/resolver-binding-linux-arm-musleabihf@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.9.2.tgz#49d27d5d63e5f26cf7b93a0731334b302b9b7fec" + integrity sha512-sqvUyAd1JUpwbz33Ce2tuTLJKM+ucSsYpPGl2vuFwZnEIg0CmdxiZ01MHQ3j6ExuRqEDUCy8yvkDKvjYFPb8Zg== + +"@unrs/resolver-binding-linux-arm64-gnu@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.9.2.tgz#95ba5d1654a04b1049d944871e165d786e8da68f" + integrity sha512-UYA0MA8ajkEDCFRQdng/FVx3F6szBvk3EPnkTTQuuO9lV1kPGuTB+V9TmbDxy5ikaEgyWKxa4CI3ySjklZ9lFA== + +"@unrs/resolver-binding-linux-arm64-musl@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.9.2.tgz#23f90a48b1d343189b1c20c89b694140e2d5a210" + integrity sha512-P/CO3ODU9YJIHFqAkHbquKtFst0COxdphc8TKGL5yCX75GOiVpGqd1d15ahpqu8xXVsqP4MGFP2C3LRZnnL5MA== + +"@unrs/resolver-binding-linux-ppc64-gnu@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.9.2.tgz#076f2c2e95dbcd4824cc9929bc504151b402ac11" + integrity sha512-uKStFlOELBxBum2s1hODPtgJhY4NxYJE9pAeyBgNEzHgTqTiVBPjfTlPFJkfxyTjQEuxZbbJlJnMCrRgD7ubzw== + +"@unrs/resolver-binding-linux-riscv64-gnu@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.9.2.tgz#f7de54d45df430c74bbd12794946a55805bed6dd" + integrity sha512-LkbNnZlhINfY9gK30AHs26IIVEZ9PEl9qOScYdmY2o81imJYI4IMnJiW0vJVtXaDHvBvxeAgEy5CflwJFIl3tQ== + +"@unrs/resolver-binding-linux-riscv64-musl@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.9.2.tgz#ad1fcdcf5f112d7432fcfe38269a084bdccad266" + integrity sha512-vI+e6FzLyZHSLFNomPi+nT+qUWN4YSj8pFtQZSFTtmgFoxqB6NyjxSjAxEC1m93qn6hUXhIsh8WMp+fGgxCoRg== + +"@unrs/resolver-binding-linux-s390x-gnu@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.9.2.tgz#d914a4f12b9048e1a4de0040f64d73274104e301" + integrity sha512-sSO4AlAYhSM2RAzBsRpahcJB1msc6uYLAtP6pesPbZtptF8OU/CbCPhSRW6cnYOGuVmEmWVW5xVboAqCnWTeHQ== + +"@unrs/resolver-binding-linux-x64-gnu@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.9.2.tgz#d8f8cddc42ae267ef45ed4b61ff72b9e22aa3b82" + integrity sha512-jkSkwch0uPFva20Mdu8orbQjv2A3G88NExTN2oPTI1AJ+7mZfYW3cDCTyoH6OnctBKbBVeJCEqh0U02lTkqD5w== + +"@unrs/resolver-binding-linux-x64-musl@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.9.2.tgz#7bfce67acb51b3f4a7cff8383f46600f7b055a96" + integrity sha512-Uk64NoiTpQbkpl+bXsbeyOPRpUoMdcUqa+hDC1KhMW7aN1lfW8PBlBH4mJ3n3Y47dYE8qi0XTxy1mBACruYBaw== + +"@unrs/resolver-binding-wasm32-wasi@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.9.2.tgz#b133c9b6941aba54eea007ca2f27ff6ce917ae55" + integrity sha512-EpBGwkcjDicjR/ybC0g8wO5adPNdVuMrNalVgYcWi+gYtC1XYNuxe3rufcO7dA76OHGeVabcO6cSkPJKVcbCXQ== + dependencies: + "@napi-rs/wasm-runtime" "^0.2.11" + +"@unrs/resolver-binding-win32-arm64-msvc@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.9.2.tgz#5f95f590f06c1e9ba15b24292c956c21a6294b30" + integrity sha512-EdFbGn7o1SxGmN6aZw9wAkehZJetFPao0VGZ9OMBwKx6TkvDuj6cNeLimF/Psi6ts9lMOe+Dt6z19fZQ9Ye2fw== + +"@unrs/resolver-binding-win32-ia32-msvc@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.9.2.tgz#aac6595c6de6b26e5314372ab977b0f6a869c903" + integrity sha512-JY9hi1p7AG+5c/dMU8o2kWemM8I6VZxfGwn1GCtf3c5i+IKcMo2NQ8OjZ4Z3/itvY/Si3K10jOBQn7qsD/whUA== + +"@unrs/resolver-binding-win32-x64-msvc@1.9.2": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.9.2.tgz#f755c5229f1401bbff7307d037c6e38fa169ad1d" + integrity sha512-ryoo+EB19lMxAd80ln9BVf8pdOAxLb97amrQ3SFN9OCRn/5M5wvwDgAe4i8ZjhpbiHoDeP8yavcTEnpKBo7lZg== + +accepts@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-2.0.0.tgz#bbcf4ba5075467f3f2131eab3cffc73c2f5d7895" + integrity sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng== + dependencies: + mime-types "^3.0.0" + negotiator "^1.0.0" + +acorn-walk@^8.1.1: + version "8.3.4" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" + integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== + dependencies: + acorn "^8.11.0" + +acorn@^8.11.0, acorn@^8.4.1: + version "8.15.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== + +ansi-escapes@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" + integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +anymatch@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +append-field@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/append-field/-/append-field-1.0.0.tgz#1e3440e915f0b1203d23748e78edd7b9b5b43e56" + integrity sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +asap@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +async-hook-jl@^1.7.6: + version "1.7.6" + resolved "https://registry.yarnpkg.com/async-hook-jl/-/async-hook-jl-1.7.6.tgz#4fd25c2f864dbaf279c610d73bf97b1b28595e68" + integrity sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg== + dependencies: + stack-chain "^1.3.7" + +async@^3.2.3: + version "3.2.6" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" + integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +babel-jest@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-30.0.2.tgz#f627dc5afc3bd5795fc84735b4f1d74f9d4b8e91" + integrity sha512-A5kqR1/EUTidM2YC2YMEUDP2+19ppgOwK0IAd9Swc3q2KqFb5f9PtRUXVeZcngu0z5mDMyZ9zH2huJZSOMLiTQ== + dependencies: + "@jest/transform" "30.0.2" + "@types/babel__core" "^7.20.5" + babel-plugin-istanbul "^7.0.0" + babel-preset-jest "30.0.1" + chalk "^4.1.2" + graceful-fs "^4.2.11" + slash "^3.0.0" + +babel-plugin-istanbul@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.0.tgz#629a178f63b83dc9ecee46fd20266283b1f11280" + integrity sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-instrument "^6.0.2" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@30.0.1: + version "30.0.1" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.0.1.tgz#f271b2066d2c1fb26a863adb8e13f85b06247125" + integrity sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ== + dependencies: + "@babel/template" "^7.27.2" + "@babel/types" "^7.27.3" + "@types/babel__core" "^7.20.5" + +babel-preset-current-node-syntax@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz#9a929eafece419612ef4ae4f60b1862ebad8ef30" + integrity sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + +babel-preset-jest@30.0.1: + version "30.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-30.0.1.tgz#7d28db9531bce264e846c8483d54236244b8ae88" + integrity sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw== + dependencies: + babel-plugin-jest-hoist "30.0.1" + babel-preset-current-node-syntax "^1.1.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +body-parser@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-2.2.0.tgz#f7a9656de305249a715b549b7b8fd1ab9dfddcfa" + integrity sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg== + dependencies: + bytes "^3.1.2" + content-type "^1.0.5" + debug "^4.4.0" + http-errors "^2.0.0" + iconv-lite "^0.6.3" + on-finished "^2.4.1" + qs "^6.14.0" + raw-body "^3.0.0" + type-is "^2.0.0" + +brace-expansion@^1.1.7: + version "1.1.12" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" + integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" + integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +browserslist@^4.24.0: + version "4.25.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.25.1.tgz#ba9e8e6f298a1d86f829c9b975e07948967bb111" + integrity sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw== + dependencies: + caniuse-lite "^1.0.30001726" + electron-to-chromium "^1.5.173" + node-releases "^2.0.19" + update-browserslist-db "^1.1.3" + +bs-logger@^0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" + integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== + dependencies: + fast-json-stable-stringify "2.x" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +bson@^6.10.4: + version "6.10.4" + resolved "https://registry.yarnpkg.com/bson/-/bson-6.10.4.tgz#d530733bb5bb16fb25c162e01a3344fab332fd2b" + integrity sha512-WIsKqkSC0ABoBJuT1LEX+2HEvNmNKKgnTAyd0fL8qzK4SH2i9NXg+t08YtdZp/V9IZ33cxe3iV4yM0qg8lMQng== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +busboy@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +bytes@3.1.2, bytes@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +call-bound@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" + +callsites@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001726: + version "1.0.30001726" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001726.tgz#a15bd87d5a4bf01f6b6f70ae7c97fdfd28b5ae47" + integrity sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw== + +chalk@^4.0.2, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +ci-info@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.2.0.tgz#cbd21386152ebfe1d56f280a3b5feccbd96764c7" + integrity sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg== + +cjs-module-lexer@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-2.1.0.tgz#586e87d4341cb2661850ece5190232ccdebcff8b" + integrity sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA== + +class-transformer@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/class-transformer/-/class-transformer-0.5.1.tgz#24147d5dffd2a6cea930a3250a677addf96ab336" + integrity sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw== + +class-validator@^0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.14.2.tgz#a3de95edd26b703e89c151a2023d3c115030340d" + integrity sha512-3kMVRF2io8N8pY1IFIXlho9r8IPUUIfHe2hYVtiebvAzU2XeQFXTv+XI4WX+TnXmtwXMDcjngcpkiPM0O9PvLw== + dependencies: + "@types/validator" "^13.11.8" + libphonenumber-js "^1.11.1" + validator "^13.9.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +cls-hooked@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/cls-hooked/-/cls-hooked-4.2.2.tgz#ad2e9a4092680cdaffeb2d3551da0e225eae1908" + integrity sha512-J4Xj5f5wq/4jAvcdgoGsL3G103BtWpZrMo8NEinRltN+xpTZdI+M38pyQqhuFU/P792xkMFvnKSf+Lm81U1bxw== + dependencies: + async-hook-jl "^1.7.6" + emitter-listener "^1.0.1" + semver "^5.4.1" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +collect-v8-coverage@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +component-emitter@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.1.tgz#ef1d5796f7d93f135ee6fb684340b26403c97d17" + integrity sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + +consola@^3.2.3: + version "3.4.2" + resolved "https://registry.yarnpkg.com/consola/-/consola-3.4.2.tgz#5af110145397bb67afdab77013fdc34cae590ea7" + integrity sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA== + +content-disposition@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-1.0.0.tgz#844426cb398f934caefcbb172200126bc7ceace2" + integrity sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg== + dependencies: + safe-buffer "5.2.1" + +content-type@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cookie-signature@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.2.2.tgz#57c7fc3cc293acab9fec54d73e15690ebe4a1793" + integrity sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg== + +cookie@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7" + integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w== + +cookiejar@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.4.tgz#ee669c1fea2cf42dc31585469d193fef0d65771b" + integrity sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw== + +cors@2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-spawn@^7.0.3, cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4, debug@^4.3.5, debug@^4.4.0, debug@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b" + integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== + dependencies: + ms "^2.1.3" + +dedent@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.6.0.tgz#79d52d6389b1ffa67d2bcef59ba51847a9d503b2" + integrity sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA== + +deepmerge@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +depd@2.0.0, depd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +detect-newline@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +dezalgo@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" + integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== + dependencies: + asap "^2.0.0" + wrappy "1" + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +ejs@^3.1.10: + version "3.1.10" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b" + integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== + dependencies: + jake "^10.8.5" + +electron-to-chromium@^1.5.173: + version "1.5.177" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.177.tgz#db730d8254959184e65320a3a0b7edcd29c54f60" + integrity sha512-7EH2G59nLsEMj97fpDuvVcYi6lwTcM1xuWw3PssD8xzboAW7zj7iB3COEEEATUfjLHrs5uKBLQT03V/8URx06g== + +emitter-listener@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/emitter-listener/-/emitter-listener-1.1.2.tgz#56b140e8f6992375b3d7cb2cab1cc7432d9632e8" + integrity sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ== + dependencies: + shimmer "^1.2.0" + +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +encodeurl@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58" + integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg== + +entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== + dependencies: + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +escalade@^3.1.1, escalade@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== + +escape-html@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +etag@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +execa@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit-x@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/exit-x/-/exit-x-0.2.2.tgz#1f9052de3b8d99a696b10dad5bced9bdd5c3aa64" + integrity sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ== + +expect@30.0.3, expect@^30.0.0: + version "30.0.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-30.0.3.tgz#8bf31a67514f78c5e4ac8d67774192ab95d5ec25" + integrity sha512-HXg6NvK35/cSYZCUKAtmlgCFyqKM4frEPbzrav5hRqb0GMz0E0lS5hfzYjSaiaE5ysnp/qI2aeZkeyeIAOeXzQ== + dependencies: + "@jest/expect-utils" "30.0.3" + "@jest/get-type" "30.0.1" + jest-matcher-utils "30.0.3" + jest-message-util "30.0.2" + jest-mock "30.0.2" + jest-util "30.0.2" + +express@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/express/-/express-5.1.0.tgz#d31beaf715a0016f0d53f47d3b4d7acf28c75cc9" + integrity sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA== + dependencies: + accepts "^2.0.0" + body-parser "^2.2.0" + content-disposition "^1.0.0" + content-type "^1.0.5" + cookie "^0.7.1" + cookie-signature "^1.2.1" + debug "^4.4.0" + encodeurl "^2.0.0" + escape-html "^1.0.3" + etag "^1.8.1" + finalhandler "^2.1.0" + fresh "^2.0.0" + http-errors "^2.0.0" + merge-descriptors "^2.0.0" + mime-types "^3.0.0" + on-finished "^2.4.1" + once "^1.4.0" + parseurl "^1.3.3" + proxy-addr "^2.0.7" + qs "^6.14.0" + range-parser "^1.2.1" + router "^2.2.0" + send "^1.1.0" + serve-static "^2.2.0" + statuses "^2.0.1" + type-is "^2.0.1" + vary "^1.1.2" + +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.1.0: + version "2.1.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-safe-stringify@2.1.1, fast-safe-stringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fb-watchman@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +fflate@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.8.2.tgz#fc8631f5347812ad6028bbe4a2308b2792aa1dea" + integrity sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A== + +file-type@21.0.0: + version "21.0.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-21.0.0.tgz#b6c5990064bc4b704f8e5c9b6010c59064d268bc" + integrity sha512-ek5xNX2YBYlXhiUXui3D/BXa3LdqPmoLJ7rqEx2bKJ7EAUEfmXgW0Das7Dc6Nr9MvqaOnIqiPV0mZk/r/UpNAg== + dependencies: + "@tokenizer/inflate" "^0.2.7" + strtok3 "^10.2.2" + token-types "^6.0.0" + uint8array-extras "^1.4.0" + +filelist@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-2.1.0.tgz#72306373aa89d05a8242ed569ed86a1bff7c561f" + integrity sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q== + dependencies: + debug "^4.4.0" + encodeurl "^2.0.0" + escape-html "^1.0.3" + on-finished "^2.4.1" + parseurl "^1.3.3" + statuses "^2.0.1" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +foreground-child@^3.1.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== + dependencies: + cross-spawn "^7.0.6" + signal-exit "^4.0.1" + +form-data@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.3.tgz#608b1b3f3e28be0fccf5901fc85fb3641e5cf0ae" + integrity sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + hasown "^2.0.2" + mime-types "^2.1.12" + +formidable@^3.5.4: + version "3.5.4" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-3.5.4.tgz#ac9a593b951e829b3298f21aa9a2243932f32ed9" + integrity sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug== + dependencies: + "@paralleldrive/cuid2" "^2.2.2" + dezalgo "^1.0.4" + once "^1.4.0" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-2.0.0.tgz#8dd7df6a1b3a1b3a5cf186c05a5dd267622635a4" + integrity sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A== + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + function-bind "^1.1.2" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +glob@^10.3.10: + version "10.4.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" + integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + +glob@^7.1.4: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + +graceful-fs@^4.2.11: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +http-errors@2.0.0, http-errors@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@0.6.3, iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +import-local@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.2.0.tgz#c3d5c745798c02a6f8b897726aba5100186ee260" + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-promise@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" + integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== + +istanbul-lib-instrument@^6.0.0, istanbul-lib-instrument@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765" + integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== + dependencies: + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + +istanbul-lib-report@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^4.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^5.0.0: + version "5.0.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz#acaef948df7747c8eb5fbf1265cb980f6353a441" + integrity sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A== + dependencies: + "@jridgewell/trace-mapping" "^0.3.23" + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + +istanbul-reports@^3.1.3: + version "3.1.7" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" + integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +iterare@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/iterare/-/iterare-1.2.1.tgz#139c400ff7363690e33abffa33cbba8920f00042" + integrity sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q== + +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jake@^10.8.5: + version "10.9.2" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f" + integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.4" + minimatch "^3.1.2" + +jest-changed-files@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-30.0.2.tgz#2c275263037f8f291b71cbb0a4f639c519ab7eb8" + integrity sha512-Ius/iRST9FKfJI+I+kpiDh8JuUlAISnRszF9ixZDIqJF17FckH5sOzKC8a0wd0+D+8em5ADRHA5V5MnfeDk2WA== + dependencies: + execa "^5.1.1" + jest-util "30.0.2" + p-limit "^3.1.0" + +jest-circus@30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-30.0.3.tgz#d2de4adb92cfdbce18668e27176c1b9f79afdf5a" + integrity sha512-rD9qq2V28OASJHJWDRVdhoBdRs6k3u3EmBzDYcyuMby8XCO3Ll1uq9kyqM41ZcC4fMiPulMVh3qMw0cBvDbnyg== + dependencies: + "@jest/environment" "30.0.2" + "@jest/expect" "30.0.3" + "@jest/test-result" "30.0.2" + "@jest/types" "30.0.1" + "@types/node" "*" + chalk "^4.1.2" + co "^4.6.0" + dedent "^1.6.0" + is-generator-fn "^2.1.0" + jest-each "30.0.2" + jest-matcher-utils "30.0.3" + jest-message-util "30.0.2" + jest-runtime "30.0.3" + jest-snapshot "30.0.3" + jest-util "30.0.2" + p-limit "^3.1.0" + pretty-format "30.0.2" + pure-rand "^7.0.0" + slash "^3.0.0" + stack-utils "^2.0.6" + +jest-cli@30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-30.0.3.tgz#2340b69c580c471fd9f4a197f969025a545608dd" + integrity sha512-UWDSj0ayhumEAxpYRlqQLrssEi29kdQ+kddP94AuHhZknrE+mT0cR0J+zMHKFe9XPfX3dKQOc2TfWki3WhFTsA== + dependencies: + "@jest/core" "30.0.3" + "@jest/test-result" "30.0.2" + "@jest/types" "30.0.1" + chalk "^4.1.2" + exit-x "^0.2.2" + import-local "^3.2.0" + jest-config "30.0.3" + jest-util "30.0.2" + jest-validate "30.0.2" + yargs "^17.7.2" + +jest-config@30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-30.0.3.tgz#978853722b9b0f2d0596025ea423cc6c7b603c07" + integrity sha512-j0L4oRCtJwNyZktXIqwzEiDVQXBbQ4dqXuLD/TZdn++hXIcIfZmjHgrViEy5s/+j4HvITmAXbexVZpQ/jnr0bg== + dependencies: + "@babel/core" "^7.27.4" + "@jest/get-type" "30.0.1" + "@jest/pattern" "30.0.1" + "@jest/test-sequencer" "30.0.2" + "@jest/types" "30.0.1" + babel-jest "30.0.2" + chalk "^4.1.2" + ci-info "^4.2.0" + deepmerge "^4.3.1" + glob "^10.3.10" + graceful-fs "^4.2.11" + jest-circus "30.0.3" + jest-docblock "30.0.1" + jest-environment-node "30.0.2" + jest-regex-util "30.0.1" + jest-resolve "30.0.2" + jest-runner "30.0.3" + jest-util "30.0.2" + jest-validate "30.0.2" + micromatch "^4.0.8" + parse-json "^5.2.0" + pretty-format "30.0.2" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-30.0.3.tgz#50ac056b90fe9151d6266b18a27adeb064c30235" + integrity sha512-Q1TAV0cUcBTic57SVnk/mug0/ASyAqtSIOkr7RAlxx97llRYsM74+E8N5WdGJUlwCKwgxPAkVjKh653h1+HA9A== + dependencies: + "@jest/diff-sequences" "30.0.1" + "@jest/get-type" "30.0.1" + chalk "^4.1.2" + pretty-format "30.0.2" + +jest-docblock@30.0.1: + version "30.0.1" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-30.0.1.tgz#545ff59f2fa88996bd470dba7d3798a8421180b1" + integrity sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA== + dependencies: + detect-newline "^3.1.0" + +jest-each@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-30.0.2.tgz#402e189784715f5c76f1bb97c29842e79abe99a1" + integrity sha512-ZFRsTpe5FUWFQ9cWTMguCaiA6kkW5whccPy9JjD1ezxh+mJeqmz8naL8Fl/oSbNJv3rgB0x87WBIkA5CObIUZQ== + dependencies: + "@jest/get-type" "30.0.1" + "@jest/types" "30.0.1" + chalk "^4.1.2" + jest-util "30.0.2" + pretty-format "30.0.2" + +jest-environment-node@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-30.0.2.tgz#3c24d6becb505f344f52cddb15ea506cf3288543" + integrity sha512-XsGtZ0H+a70RsxAQkKuIh0D3ZlASXdZdhpOSBq9WRPq6lhe0IoQHGW0w9ZUaPiZQ/CpkIdprvlfV1QcXcvIQLQ== + dependencies: + "@jest/environment" "30.0.2" + "@jest/fake-timers" "30.0.2" + "@jest/types" "30.0.1" + "@types/node" "*" + jest-mock "30.0.2" + jest-util "30.0.2" + jest-validate "30.0.2" + +jest-haste-map@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-30.0.2.tgz#83826e7e352fa139dc95100337aff4de58c99453" + integrity sha512-telJBKpNLeCb4MaX+I5k496556Y2FiKR/QLZc0+MGBYl4k3OO0472drlV2LUe7c1Glng5HuAu+5GLYp//GpdOQ== + dependencies: + "@jest/types" "30.0.1" + "@types/node" "*" + anymatch "^3.1.3" + fb-watchman "^2.0.2" + graceful-fs "^4.2.11" + jest-regex-util "30.0.1" + jest-util "30.0.2" + jest-worker "30.0.2" + micromatch "^4.0.8" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.3" + +jest-leak-detector@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-30.0.2.tgz#da4df660615d170136d2b468af3bf1c9bff0137e" + integrity sha512-U66sRrAYdALq+2qtKffBLDWsQ/XoNNs2Lcr83sc9lvE/hEpNafJlq2lXCPUBMNqamMECNxSIekLfe69qg4KMIQ== + dependencies: + "@jest/get-type" "30.0.1" + pretty-format "30.0.2" + +jest-matcher-utils@30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-30.0.3.tgz#e07e4776bade71a3a7948a9bf8aeede311c5013a" + integrity sha512-hMpVFGFOhYmIIRGJ0HgM9htC5qUiJ00famcc9sRFchJJiLZbbVKrAztcgE6VnXLRxA3XZ0bvNA7hQWh3oHXo/A== + dependencies: + "@jest/get-type" "30.0.1" + chalk "^4.1.2" + jest-diff "30.0.3" + pretty-format "30.0.2" + +jest-message-util@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-30.0.2.tgz#9dfdc37570d172f0ffdc42a0318036ff4008837f" + integrity sha512-vXywcxmr0SsKXF/bAD7t7nMamRvPuJkras00gqYeB1V0WllxZrbZ0paRr3XqpFU2sYYjD0qAaG2fRyn/CGZ0aw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@jest/types" "30.0.1" + "@types/stack-utils" "^2.0.3" + chalk "^4.1.2" + graceful-fs "^4.2.11" + micromatch "^4.0.8" + pretty-format "30.0.2" + slash "^3.0.0" + stack-utils "^2.0.6" + +jest-mock@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-30.0.2.tgz#5e4245f25f6f9532714906cab10a2b9e39eb2183" + integrity sha512-PnZOHmqup/9cT/y+pXIVbbi8ID6U1XHRmbvR7MvUy4SLqhCbwpkmXhLbsWbGewHrV5x/1bF7YDjs+x24/QSvFA== + dependencies: + "@jest/types" "30.0.1" + "@types/node" "*" + jest-util "30.0.2" + +jest-pnp-resolver@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@30.0.1: + version "30.0.1" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-30.0.1.tgz#f17c1de3958b67dfe485354f5a10093298f2a49b" + integrity sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA== + +jest-resolve-dependencies@30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-30.0.3.tgz#8278f54a84009028b823f5c1f7033fb968405b2f" + integrity sha512-FlL6u7LiHbF0Oe27k7DHYMq2T2aNpPhxnNo75F7lEtu4A6sSw+TKkNNUGNcVckdFoL0RCWREJsC1HsKDwKRZzQ== + dependencies: + jest-regex-util "30.0.1" + jest-snapshot "30.0.3" + +jest-resolve@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-30.0.2.tgz#4b7c826a35e9657189568e4dafc0ba5f05868cf2" + integrity sha512-q/XT0XQvRemykZsvRopbG6FQUT6/ra+XV6rPijyjT6D0msOyCvR2A5PlWZLd+fH0U8XWKZfDiAgrUNDNX2BkCw== + dependencies: + chalk "^4.1.2" + graceful-fs "^4.2.11" + jest-haste-map "30.0.2" + jest-pnp-resolver "^1.2.3" + jest-util "30.0.2" + jest-validate "30.0.2" + slash "^3.0.0" + unrs-resolver "^1.7.11" + +jest-runner@30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-30.0.3.tgz#baa1d5e77655c70cea9aa4138cfb437f6bada607" + integrity sha512-CxYBzu9WStOBBXAKkLXGoUtNOWsiS1RRmUQb6SsdUdTcqVncOau7m8AJ4cW3Mz+YL1O9pOGPSYLyvl8HBdFmkQ== + dependencies: + "@jest/console" "30.0.2" + "@jest/environment" "30.0.2" + "@jest/test-result" "30.0.2" + "@jest/transform" "30.0.2" + "@jest/types" "30.0.1" + "@types/node" "*" + chalk "^4.1.2" + emittery "^0.13.1" + exit-x "^0.2.2" + graceful-fs "^4.2.11" + jest-docblock "30.0.1" + jest-environment-node "30.0.2" + jest-haste-map "30.0.2" + jest-leak-detector "30.0.2" + jest-message-util "30.0.2" + jest-resolve "30.0.2" + jest-runtime "30.0.3" + jest-util "30.0.2" + jest-watcher "30.0.2" + jest-worker "30.0.2" + p-limit "^3.1.0" + source-map-support "0.5.13" + +jest-runtime@30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-30.0.3.tgz#1eb112924426e8b90c37f0ea7da1b51966e252bf" + integrity sha512-Xjosq0C48G9XEQOtmgrjXJwPaUPaq3sPJwHDRaiC+5wi4ZWxO6Lx6jNkizK/0JmTulVNuxP8iYwt77LGnfg3/w== + dependencies: + "@jest/environment" "30.0.2" + "@jest/fake-timers" "30.0.2" + "@jest/globals" "30.0.3" + "@jest/source-map" "30.0.1" + "@jest/test-result" "30.0.2" + "@jest/transform" "30.0.2" + "@jest/types" "30.0.1" + "@types/node" "*" + chalk "^4.1.2" + cjs-module-lexer "^2.1.0" + collect-v8-coverage "^1.0.2" + glob "^10.3.10" + graceful-fs "^4.2.11" + jest-haste-map "30.0.2" + jest-message-util "30.0.2" + jest-mock "30.0.2" + jest-regex-util "30.0.1" + jest-resolve "30.0.2" + jest-snapshot "30.0.3" + jest-util "30.0.2" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-snapshot@30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-30.0.3.tgz#f605254223eee0946d205c6e7ede7238e87be920" + integrity sha512-F05JCohd3OA1N9+5aEPXA6I0qOfZDGIx0zTq5Z4yMBg2i1p5ELfBusjYAWwTkC12c7dHcbyth4QAfQbS7cRjow== + dependencies: + "@babel/core" "^7.27.4" + "@babel/generator" "^7.27.5" + "@babel/plugin-syntax-jsx" "^7.27.1" + "@babel/plugin-syntax-typescript" "^7.27.1" + "@babel/types" "^7.27.3" + "@jest/expect-utils" "30.0.3" + "@jest/get-type" "30.0.1" + "@jest/snapshot-utils" "30.0.1" + "@jest/transform" "30.0.2" + "@jest/types" "30.0.1" + babel-preset-current-node-syntax "^1.1.0" + chalk "^4.1.2" + expect "30.0.3" + graceful-fs "^4.2.11" + jest-diff "30.0.3" + jest-matcher-utils "30.0.3" + jest-message-util "30.0.2" + jest-util "30.0.2" + pretty-format "30.0.2" + semver "^7.7.2" + synckit "^0.11.8" + +jest-util@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-30.0.2.tgz#1bd8411f81e6f5e2ca8b31bb2534ebcd7cbac065" + integrity sha512-8IyqfKS4MqprBuUpZNlFB5l+WFehc8bfCe1HSZFHzft2mOuND8Cvi9r1musli+u6F3TqanCZ/Ik4H4pXUolZIg== + dependencies: + "@jest/types" "30.0.1" + "@types/node" "*" + chalk "^4.1.2" + ci-info "^4.2.0" + graceful-fs "^4.2.11" + picomatch "^4.0.2" + +jest-validate@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-30.0.2.tgz#f62a2f0e014dac94747509ba8c2bcd5d48215b7f" + integrity sha512-noOvul+SFER4RIvNAwGn6nmV2fXqBq67j+hKGHKGFCmK4ks/Iy1FSrqQNBLGKlu4ZZIRL6Kg1U72N1nxuRCrGQ== + dependencies: + "@jest/get-type" "30.0.1" + "@jest/types" "30.0.1" + camelcase "^6.3.0" + chalk "^4.1.2" + leven "^3.1.0" + pretty-format "30.0.2" + +jest-watcher@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-30.0.2.tgz#ec93ed25183679f549a47f6197267d50ec83ea51" + integrity sha512-vYO5+E7jJuF+XmONr6CrbXdlYrgvZqtkn6pdkgjt/dU64UAdc0v1cAVaAeWtAfUUMScxNmnUjKPUMdCpNVASwg== + dependencies: + "@jest/test-result" "30.0.2" + "@jest/types" "30.0.1" + "@types/node" "*" + ansi-escapes "^4.3.2" + chalk "^4.1.2" + emittery "^0.13.1" + jest-util "30.0.2" + string-length "^4.0.2" + +jest-worker@30.0.2: + version "30.0.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-30.0.2.tgz#e67bd7debbc9d8445907a17067a89359acedc8c5" + integrity sha512-RN1eQmx7qSLFA+o9pfJKlqViwL5wt+OL3Vff/A+/cPsmuw7NPwfgl33AP+/agRmHzPOFgXviRycR9kYwlcRQXg== + dependencies: + "@types/node" "*" + "@ungap/structured-clone" "^1.3.0" + jest-util "30.0.2" + merge-stream "^2.0.0" + supports-color "^8.1.1" + +jest@^30.0.3: + version "30.0.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-30.0.3.tgz#fc3b6b370e2820d718ea299d159a7ba4637dbd35" + integrity sha512-Uy8xfeE/WpT2ZLGDXQmaYNzw2v8NUKuYeKGtkS6sDxwsdQihdgYCXaKIYnph1h95DN5H35ubFDm0dfmsQnjn4Q== + dependencies: + "@jest/core" "30.0.3" + "@jest/types" "30.0.1" + import-local "^3.2.0" + jest-cli "30.0.3" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsesc@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json5@^2.2.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +libphonenumber-js@^1.11.1: + version "1.12.9" + resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.12.9.tgz#25626cd825225b326a514a142aaa26717286c4b0" + integrity sha512-VWwAdNeJgN7jFOD+wN4qx83DTPMVPPAUyx9/TUkBXKLiNkuWWk6anV0439tgdtwaJDrEdqkvdN22iA6J4bUCZg== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +linkify-it@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" + integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== + dependencies: + uc.micro "^2.0.0" + +load-esm@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/load-esm/-/load-esm-1.0.2.tgz#35dbac8a1a3abdb802cf236008048fcc8a9289a6" + integrity sha512-nVAvWk/jeyrWyXEAs84mpQCYccxRqgKY4OznLuJhJCa0XsPSfdOIr2zvBZEj3IHEHbX97jjscKRRV539bW0Gpw== + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lru-cache@^10.2.0: + version "10.4.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" + integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lunr@^2.3.9: + version "2.3.9" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" + integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== + +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + +make-error@^1.1.1, make-error@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +markdown-it@^14.1.0: + version "14.1.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45" + integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== + dependencies: + argparse "^2.0.1" + entities "^4.4.0" + linkify-it "^5.0.0" + mdurl "^2.0.0" + punycode.js "^2.3.1" + uc.micro "^2.1.0" + +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + +mdurl@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" + integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +media-typer@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-1.1.0.tgz#6ab74b8f2d3320f2064b2a87a38e7931ff3a5561" + integrity sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw== + +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== + +merge-descriptors@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-2.0.0.tgz#ea922f660635a2249ee565e0449f951e6b603808" + integrity sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +methods@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromatch@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-db@^1.54.0: + version "1.54.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.54.0.tgz#cddb3ee4f9c64530dff640236661d42cb6a314f5" + integrity sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ== + +mime-types@^2.1.12, mime-types@~2.1.24: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime-types@^3.0.0, mime-types@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-3.0.1.tgz#b1d94d6997a9b32fd69ebaed0db73de8acb519ce" + integrity sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA== + dependencies: + mime-db "^1.54.0" + +mime@2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.4, minimatch@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + +mkdirp@^0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mongodb-connection-string-url@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.2.tgz#e223089dfa0a5fa9bf505f8aedcbc67b077b33e7" + integrity sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA== + dependencies: + "@types/whatwg-url" "^11.0.2" + whatwg-url "^14.1.0 || ^13.0.0" + +mongodb@^6.17.0: + version "6.17.0" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-6.17.0.tgz#b52da4e3cdf62299e55c51584cb5657283157594" + integrity sha512-neerUzg/8U26cgruLysKEjJvoNSXhyID3RvzvdcpsIi2COYM3FS3o9nlH7fxFtefTb942dX3W9i37oPfCVj4wA== + dependencies: + "@mongodb-js/saslprep" "^1.1.9" + bson "^6.10.4" + mongodb-connection-string-url "^3.0.0" + +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== + +multer@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/multer/-/multer-2.0.1.tgz#3ed335ed2b96240e3df9e23780c91cfcf5d29202" + integrity sha512-Ug8bXeTIUlxurg8xLTEskKShvcKDZALo1THEX5E41pYCD2sCVub5/kIRIGqWNoqV6szyLyQKV6mD4QUrWE5GCQ== + dependencies: + append-field "^1.0.0" + busboy "^1.6.0" + concat-stream "^2.0.0" + mkdirp "^0.5.6" + object-assign "^4.1.1" + type-is "^1.6.18" + xtend "^4.0.2" + +napi-postinstall@^0.2.4: + version "0.2.5" + resolved "https://registry.yarnpkg.com/napi-postinstall/-/napi-postinstall-0.2.5.tgz#57d8a142f854e5a510c7b71ca101e89c11eddf35" + integrity sha512-kmsgUvCRIJohHjbZ3V8avP0I1Pekw329MVAMDzVxsrkjgdnqiwvMX5XwR+hWV66vsAtZ+iM+fVnq8RTQawUmCQ== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +negotiator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-1.0.0.tgz#b6c91bb47172d69f93cfd7c357bbb529019b5f6a" + integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-releases@^2.0.19: + version "2.0.19" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" + integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +object-assign@^4, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.13.3: + version "1.13.4" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== + +on-finished@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +oxlint@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/oxlint/-/oxlint-1.4.0.tgz#62351d17cb36d8eeea0135186450b7fce18559de" + integrity sha512-whu+lxSL9GCzO+b+X++tk81d5UoCeAq+plU5DWSoLqmwjCV0OyDkRlfGPDhbBHXm2z6GrepvF0d0Sb66z6SG4A== + optionalDependencies: + "@oxlint/darwin-arm64" "1.4.0" + "@oxlint/darwin-x64" "1.4.0" + "@oxlint/linux-arm64-gnu" "1.4.0" + "@oxlint/linux-arm64-musl" "1.4.0" + "@oxlint/linux-x64-gnu" "1.4.0" + "@oxlint/linux-x64-musl" "1.4.0" + "@oxlint/win32-arm64" "1.4.0" + "@oxlint/win32-x64" "1.4.0" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + +parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parseurl@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-to-regexp@8.2.0, path-to-regexp@^8.0.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-8.2.0.tgz#73990cc29e57a3ff2a0d914095156df5db79e8b4" + integrity sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ== + +picocolors@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + +picomatch@^2.0.4, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +picomatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" + integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== + +pirates@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.7.tgz#643b4a18c4257c8a65104b73f3049ce9a0a15e22" + integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +prettier@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393" + integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== + +pretty-format@30.0.2, pretty-format@^30.0.0: + version "30.0.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-30.0.2.tgz#54717b6aa2b4357a2e6d83868e10a2ea8dd647c7" + integrity sha512-yC5/EBSOrTtqhCKfLHqoUIAXVRZnukHPwWBJWR7h84Q3Be1DRQZLncwcfLoPA5RPQ65qfiCMqgYwdUuQ//eVpg== + dependencies: + "@jest/schemas" "30.0.1" + ansi-styles "^5.2.0" + react-is "^18.3.1" + +proxy-addr@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +punycode.js@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7" + integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== + +punycode@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +pure-rand@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-7.0.1.tgz#6f53a5a9e3e4a47445822af96821ca509ed37566" + integrity sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ== + +qs@^6.11.0, qs@^6.14.0: + version "6.14.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930" + integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w== + dependencies: + side-channel "^1.1.0" + +range-parser@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-3.0.0.tgz#25b3476f07a51600619dae3fe82ddc28a36e5e0f" + integrity sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.6.3" + unpipe "1.0.0" + +react-is@^18.3.1: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +readable-stream@^3.0.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +reflect-metadata@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz#400c845b6cba87a21f2c65c4aeb158f4fa4d9c5b" + integrity sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +router@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/router/-/router-2.2.0.tgz#019be620b711c87641167cc79b99090f00b146ef" + integrity sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ== + dependencies: + debug "^4.4.0" + depd "^2.0.0" + is-promise "^4.0.0" + parseurl "^1.3.3" + path-to-regexp "^8.0.0" + +rxjs@^7.8.2: + version "7.8.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b" + integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== + dependencies: + tslib "^2.1.0" + +safe-buffer@5.2.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +semver@^5.4.1: + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.5.3, semver@^7.5.4, semver@^7.7.2: + version "7.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.2.tgz#67d99fdcd35cec21e6f8b87a7fd515a33f982b58" + integrity sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== + +send@^1.1.0, send@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/send/-/send-1.2.0.tgz#32a7554fb777b831dfa828370f773a3808d37212" + integrity sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw== + dependencies: + debug "^4.3.5" + encodeurl "^2.0.0" + escape-html "^1.0.3" + etag "^1.8.1" + fresh "^2.0.0" + http-errors "^2.0.0" + mime-types "^3.0.1" + ms "^2.1.3" + on-finished "^2.4.1" + range-parser "^1.2.1" + statuses "^2.0.1" + +serve-static@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-2.2.0.tgz#9c02564ee259bdd2251b82d659a2e7e1938d66f9" + integrity sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ== + dependencies: + encodeurl "^2.0.0" + escape-html "^1.0.3" + parseurl "^1.3.3" + send "^1.2.0" + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shimmer@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337" + integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw== + +side-channel-list@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" + integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + +side-channel@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" + integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + side-channel-list "^1.0.0" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" + +signal-exit@^3.0.3: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slugify@^1.6.6: + version "1.6.6" + resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.6.tgz#2d4ac0eacb47add6af9e04d3be79319cbcc7924b" + integrity sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw== + +source-map-support@0.5.13: + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "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" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +stack-chain@^1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/stack-chain/-/stack-chain-1.3.7.tgz#d192c9ff4ea6a22c94c4dd459171e3f00cea1285" + integrity sha512-D8cWtWVdIe/jBA7v5p5Hwl5yOSOrmZPWDPe2KxQ5UAGD+nxbxU0lKXA4h85Ta6+qgdKVL3vUxsbIZjc1kBG7ug== + +stack-utils@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +statuses@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.2.tgz#8f75eecef765b5e1cfcdc080da59409ed424e382" + integrity sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw== + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +string-length@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strtok3@^10.2.2: + version "10.3.1" + resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-10.3.1.tgz#80fe431a4ee652de4e33f14e11e15fd5170a627d" + integrity sha512-3JWEZM6mfix/GCJBBUrkA8p2Id2pBkyTkVCJKto55w080QBKZ+8R171fGrbiSp+yMO/u6F8/yUh7K4V9K+YCnw== + dependencies: + "@tokenizer/token" "^0.3.0" + +superagent@^10.2.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/superagent/-/superagent-10.2.1.tgz#3e39038fff125cbd1584fa4b384db2994bbffdcb" + integrity sha512-O+PCv11lgTNJUzy49teNAWLjBZfc+A1enOwTpLlH6/rsvKcTwcdTT8m9azGkVqM7HBl5jpyZ7KTPhHweokBcdg== + dependencies: + component-emitter "^1.3.0" + cookiejar "^2.1.4" + debug "^4.3.4" + fast-safe-stringify "^2.1.1" + form-data "^4.0.0" + formidable "^3.5.4" + methods "^1.1.2" + mime "2.6.0" + qs "^6.11.0" + +supertest@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/supertest/-/supertest-7.1.1.tgz#c5e7e2d047fbbe4403b17b2622dc5323adc39f11" + integrity sha512-aI59HBTlG9e2wTjxGJV+DygfNLgnWbGdZxiA/sgrnNNikIW8lbDvCtF6RnhZoJ82nU7qv7ZLjrvWqCEm52fAmw== + dependencies: + methods "^1.1.2" + superagent "^10.2.1" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +synckit@^0.11.8: + version "0.11.8" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.8.tgz#b2aaae998a4ef47ded60773ad06e7cb821f55457" + integrity sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A== + dependencies: + "@pkgr/core" "^0.2.4" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +token-types@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/token-types/-/token-types-6.0.3.tgz#684f4f40e0750078ec644c826207a2c160b827a8" + integrity sha512-IKJ6EzuPPWtKtEIEPpIdXv9j5j2LGJEYk0CKY2efgKoYKLBiZdh6iQkLVBow/CB3phyWAWCyk+bZeaimJn6uRQ== + dependencies: + "@tokenizer/token" "^0.3.0" + ieee754 "^1.2.1" + +tr46@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-5.1.1.tgz#96ae867cddb8fdb64a49cc3059a8d428bcf238ca" + integrity sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw== + dependencies: + punycode "^2.3.1" + +ts-jest@^29.4.0: + version "29.4.0" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.0.tgz#bef0ee98d94c83670af7462a1617bf2367a83740" + integrity sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q== + dependencies: + bs-logger "^0.2.6" + ejs "^3.1.10" + fast-json-stable-stringify "^2.1.0" + json5 "^2.2.3" + lodash.memoize "^4.1.2" + make-error "^1.3.6" + semver "^7.7.2" + type-fest "^4.41.0" + yargs-parser "^21.1.1" + +ts-node@^10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tsconfig-paths@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c" + integrity sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg== + dependencies: + json5 "^2.2.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@2.8.1, tslib@^2.1.0, tslib@^2.4.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^4.41.0: + version "4.41.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.41.0.tgz#6ae1c8e5731273c2bf1f58ad39cbae2c91a46c58" + integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA== + +type-is@^1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type-is@^2.0.0, type-is@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-2.0.1.tgz#64f6cf03f92fce4015c2b224793f6bdd4b068c97" + integrity sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw== + dependencies: + content-type "^1.0.5" + media-typer "^1.1.0" + mime-types "^3.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + +typedoc@^0.28.7: + version "0.28.7" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.28.7.tgz#30453a9517b49e53f06e08954ef3dd106381447d" + integrity sha512-lpz0Oxl6aidFkmS90VQDQjk/Qf2iw0IUvFqirdONBdj7jPSN9mGXhy66BcGNDxx5ZMyKKiBVAREvPEzT6Uxipw== + dependencies: + "@gerrit0/mini-shiki" "^3.7.0" + lunr "^2.3.9" + markdown-it "^14.1.0" + minimatch "^9.0.5" + yaml "^2.8.0" + +typescript@^5.8.3: + version "5.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e" + integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== + +uc.micro@^2.0.0, uc.micro@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" + integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== + +uid@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/uid/-/uid-2.0.2.tgz#4b5782abf0f2feeefc00fa88006b2b3b7af3e3b9" + integrity sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g== + dependencies: + "@lukeed/csprng" "^1.0.0" + +uint8array-extras@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/uint8array-extras/-/uint8array-extras-1.4.0.tgz#e42a678a6dd335ec2d21661333ed42f44ae7cc74" + integrity sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ== + +undici-types@~7.8.0: + version "7.8.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.8.0.tgz#de00b85b710c54122e44fbfd911f8d70174cd294" + integrity sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw== + +unpipe@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +unrs-resolver@^1.7.11: + version "1.9.2" + resolved "https://registry.yarnpkg.com/unrs-resolver/-/unrs-resolver-1.9.2.tgz#1a7c73335a5e510643664d7bb4bb6f5c28782e36" + integrity sha512-VUyWiTNQD7itdiMuJy+EuLEErLj3uwX/EpHQF8EOf33Dq3Ju6VW1GXm+swk6+1h7a49uv9fKZ+dft9jU7esdLA== + dependencies: + napi-postinstall "^0.2.4" + optionalDependencies: + "@unrs/resolver-binding-android-arm-eabi" "1.9.2" + "@unrs/resolver-binding-android-arm64" "1.9.2" + "@unrs/resolver-binding-darwin-arm64" "1.9.2" + "@unrs/resolver-binding-darwin-x64" "1.9.2" + "@unrs/resolver-binding-freebsd-x64" "1.9.2" + "@unrs/resolver-binding-linux-arm-gnueabihf" "1.9.2" + "@unrs/resolver-binding-linux-arm-musleabihf" "1.9.2" + "@unrs/resolver-binding-linux-arm64-gnu" "1.9.2" + "@unrs/resolver-binding-linux-arm64-musl" "1.9.2" + "@unrs/resolver-binding-linux-ppc64-gnu" "1.9.2" + "@unrs/resolver-binding-linux-riscv64-gnu" "1.9.2" + "@unrs/resolver-binding-linux-riscv64-musl" "1.9.2" + "@unrs/resolver-binding-linux-s390x-gnu" "1.9.2" + "@unrs/resolver-binding-linux-x64-gnu" "1.9.2" + "@unrs/resolver-binding-linux-x64-musl" "1.9.2" + "@unrs/resolver-binding-wasm32-wasi" "1.9.2" + "@unrs/resolver-binding-win32-arm64-msvc" "1.9.2" + "@unrs/resolver-binding-win32-ia32-msvc" "1.9.2" + "@unrs/resolver-binding-win32-x64-msvc" "1.9.2" + +update-browserslist-db@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.0.tgz#9549028be1753bb934fc96e2bca09bb4105ae912" + integrity sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +v8-to-istanbul@^9.0.1: + version "9.3.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175" + integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.12" + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^2.0.0" + +validator@^13.9.0: + version "13.15.15" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.15.15.tgz#246594be5671dc09daa35caec5689fcd18c6e7e4" + integrity sha512-BgWVbCI72aIQy937xbawcs+hrVaN/CZ2UwutgaJ36hGqRrLNM+f5LUT/YPRbo8IV/ASeFzXszezV+y2+rq3l8A== + +vary@^1, vary@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +walker@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +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-url@^14.1.0 || ^13.0.0": + version "14.2.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-14.2.0.tgz#4ee02d5d725155dae004f6ae95c73e7ef5d95663" + integrity sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw== + dependencies: + tr46 "^5.1.0" + webidl-conversions "^7.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" + integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^4.0.1" + +xtend@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yaml@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.0.tgz#15f8c9866211bdc2d3781a0890e44d4fa1a5fff6" + integrity sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==