diff --git a/util/.gitignore b/util/.gitignore
deleted file mode 100644
index 768a0425..00000000
--- a/util/.gitignore
+++ /dev/null
@@ -1,110 +0,0 @@
-# Logs
-logs
-*.log
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-lerna-debug.log*
-
-# Diagnostic reports (https://nodejs.org/api/report.html)
-report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
-
-# Runtime data
-pids
-*.pid
-*.seed
-*.pid.lock
-
-yarn.lock
-
-# Directory for instrumented libs generated by jscoverage/JSCover
-lib-cov
-
-# Coverage directory used by tools like istanbul
-coverage
-*.lcov
-
-# nyc test coverage
-.nyc_output
-
-# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
-.grunt
-
-# Bower dependency directory (https://bower.io/)
-bower_components
-
-# node-waf configuration
-.lock-wscript
-
-# Compiled binary addons (https://nodejs.org/api/addons.html)
-build/Release
-
-# Dependency directories
-node_modules/
-jspm_packages/
-
-# TypeScript v1 declaration files
-typings/
-
-# TypeScript cache
-*.tsbuildinfo
-
-# Optional npm cache directory
-.npm
-
-# Optional eslint cache
-.eslintcache
-
-# Microbundle cache
-.rpt2_cache/
-.rts2_cache_cjs/
-.rts2_cache_es/
-.rts2_cache_umd/
-
-# Optional REPL history
-.node_repl_history
-
-# Output of 'npm pack'
-*.tgz
-
-# Yarn Integrity file
-.yarn-integrity
-
-# dotenv environment variables file
-.env
-.env.test
-
-# parcel-bundler cache (https://parceljs.org/)
-.cache
-
-# Next.js build output
-.next
-
-# Nuxt.js build / generate output
-.nuxt
-
-# Gatsby files
-.cache/
-# Comment in the public line in if your project uses Gatsby and *not* Next.js
-# https://nextjs.org/blog/next-9-1#public-directory-support
-# public
-
-# vuepress build output
-.vuepress/dist
-
-# Serverless directories
-.serverless/
-
-# FuseBox cache
-.fusebox/
-
-# DynamoDB Local files
-.dynamodb/
-
-# TernJS port file
-.tern-port
-.DS_Store
-
-# Compiled TypeScript code
-dist/
-database.db
\ No newline at end of file
diff --git a/util/.npmignore b/util/.npmignore
deleted file mode 100644
index 05a9d0cf..00000000
--- a/util/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-!dist/
\ No newline at end of file
diff --git a/util/.prettierrc b/util/.prettierrc
deleted file mode 100644
index d569c548..00000000
--- a/util/.prettierrc
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "tabWidth": 4,
- "useTabs": true,
- "printWidth": 120
-}
diff --git a/util/.vscode/launch.json b/util/.vscode/launch.json
deleted file mode 100644
index 524622d1..00000000
--- a/util/.vscode/launch.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- // Use IntelliSense to learn about possible attributes.
- // Hover to view descriptions of existing attributes.
- // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
- "version": "0.2.0",
- "configurations": [
- {
- "sourceMaps": true,
- "type": "node",
- "request": "launch",
- "name": "Launch Util",
- "program": "${workspaceFolder}/dist/index.js",
- "preLaunchTask": "tsc: build - tsconfig.json",
- "outFiles": ["${workspaceFolder}/dist/**/*.js"]
- },
- {
- "name": "Debug Jest Tests",
- "type": "node",
- "request": "launch",
- "runtimeArgs": ["--inspect-brk", "${workspaceRoot}/node_modules/jest/bin/jest.js", "--runInBand"],
- "preLaunchTask": "tsc: build - tsconfig.json",
- "console": "integratedTerminal",
- "internalConsoleOptions": "neverOpen",
- "port": 9229
- }
- ]
-}
diff --git a/util/README.md b/util/README.md
deleted file mode 100644
index 1934df2a..00000000
--- a/util/README.md
+++ /dev/null
@@ -1,29 +0,0 @@
-<p align="center">
- <img width="100" src="https://raw.githubusercontent.com/fosscord/fosscord/master/assets-rebrand/svg/Fosscord-Icon-Rounded-Subtract.svg" />
-</p>
-<h1 align="center">Fosscord server util</h1>
-
-<p>
- <a href="https://discord.gg/ZrnGQP6p3d">
- <img src="https://img.shields.io/discord/806142446094385153?color=7489d5&logo=discord&logoColor=ffffff" />
- </a>
- <img src="https://img.shields.io/static/v1?label=Status&message=Development&color=blue">
- <a title="Crowdin" target="_blank" href="https://translate.fosscord.com/"><img src="https://badges.crowdin.net/fosscord/localized.svg"></a>
- <a href="https://opencollective.com/fosscord">
- <img src="https://opencollective.com/fosscord/tiers/badge.svg">
- </a>
-</p>
-
-## [About](https://fosscord.com)
-
-Fosscord is a free open source selfhostable chat, voice and video discord-compatible platform.
-
-Fosscord server util contains all necessary logic that is shared between the [api](https://github.com/fosscord/fosscord-server/tree/master/api), [gateway](https://github.com/fosscord/fosscord-server/tree/master/gateway) and [cdn](https://github.com/fosscord/fosscord-server/tree/master/cdn).
-
-It contains all mongoose database models and utility functions.
-
-## Installation
-
-```bash
-npm install @fosscord/server-util
-```
diff --git a/util/package-lock.json b/util/package-lock.json
deleted file mode 100644
index 04b2857b..00000000
--- a/util/package-lock.json
+++ /dev/null
@@ -1,13189 +0,0 @@
-{
- "name": "@fosscord/util",
- "version": "1.0.0",
- "lockfileVersion": 2,
- "requires": true,
- "packages": {
- "": {
- "name": "@fosscord/util",
- "version": "1.0.0",
- "hasInstallScript": true,
- "license": "AGPL-3.0-only",
- "dependencies": {
- "@types/node-fetch": "^2.6.2",
- "amqplib": "^0.10.0",
- "form-data": "^4.0.0",
- "jsonwebtoken": "^8.5.1",
- "lambert-server": "^1.2.12",
- "missing-native-js-functions": "^1.2.18",
- "multer": "^1.4.5-lts.1",
- "node-fetch": "^2.6.7",
- "picocolors": "^1.0.0",
- "proxy-agent": "^5.0.0",
- "reflect-metadata": "^0.1.13",
- "typeorm": "^0.3.7",
- "typescript": "^4.7.4"
- },
- "devDependencies": {
- "@types/amqplib": "^0.8.1",
- "@types/jsonwebtoken": "^8.5.8",
- "@types/multer": "^1.4.7",
- "@types/node": "^18.0.6",
- "jest": "^28.1.3",
- "ts-node": "^10.2.1"
- }
- },
- "node_modules/@ampproject/remapping": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
- "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
- "dev": true,
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.1.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
- "dev": true,
- "dependencies": {
- "@babel/highlight": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/compat-data": {
- "version": "7.18.8",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz",
- "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/core": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz",
- "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==",
- "dev": true,
- "dependencies": {
- "@ampproject/remapping": "^2.1.0",
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.18.9",
- "@babel/helper-compilation-targets": "^7.18.9",
- "@babel/helper-module-transforms": "^7.18.9",
- "@babel/helpers": "^7.18.9",
- "@babel/parser": "^7.18.9",
- "@babel/template": "^7.18.6",
- "@babel/traverse": "^7.18.9",
- "@babel/types": "^7.18.9",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.1",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
- }
- },
- "node_modules/@babel/core/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@babel/core/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/@babel/generator": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz",
- "integrity": "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.9",
- "@jridgewell/gen-mapping": "^0.3.2",
- "jsesc": "^2.5.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
- "dev": true,
- "dependencies": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz",
- "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==",
- "dev": true,
- "dependencies": {
- "@babel/compat-data": "^7.18.8",
- "@babel/helper-validator-option": "^7.18.6",
- "browserslist": "^4.20.2",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-environment-visitor": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
- "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-function-name": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz",
- "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==",
- "dev": true,
- "dependencies": {
- "@babel/template": "^7.18.6",
- "@babel/types": "^7.18.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
- "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-imports": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
- "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz",
- "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-simple-access": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/helper-validator-identifier": "^7.18.6",
- "@babel/template": "^7.18.6",
- "@babel/traverse": "^7.18.9",
- "@babel/types": "^7.18.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-plugin-utils": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz",
- "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-simple-access": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz",
- "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
- "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
- "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-option": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
- "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helpers": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz",
- "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==",
- "dev": true,
- "dependencies": {
- "@babel/template": "^7.18.6",
- "@babel/traverse": "^7.18.9",
- "@babel/types": "^7.18.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz",
- "integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==",
- "dev": true,
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-bigint": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
- "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-class-properties": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.12.13"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-import-meta": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
- "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-json-strings": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-optional-catch-binding": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-optional-chaining": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-top-level-await": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz",
- "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==",
- "dev": true,
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/template": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz",
- "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.18.6",
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz",
- "integrity": "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.18.9",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.18.9",
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.18.9",
- "@babel/types": "^7.18.9",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/@babel/traverse/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/@babel/types": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz",
- "integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==",
- "dev": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "to-fast-properties": "^2.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@bcoe/v8-coverage": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
- "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
- "dev": true
- },
- "node_modules/@cspotcode/source-map-support": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
- "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
- "devOptional": true,
- "dependencies": {
- "@jridgewell/trace-mapping": "0.3.9"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@gar/promisify": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
- "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
- "optional": true,
- "peer": true
- },
- "node_modules/@istanbuljs/load-nyc-config": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
- "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
- "dev": true,
- "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"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@istanbuljs/schema": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@jest/console": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz",
- "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "jest-message-util": "^28.1.3",
- "jest-util": "^28.1.3",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/@jest/core": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz",
- "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==",
- "dev": true,
- "dependencies": {
- "@jest/console": "^28.1.3",
- "@jest/reporters": "^28.1.3",
- "@jest/test-result": "^28.1.3",
- "@jest/transform": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-changed-files": "^28.1.3",
- "jest-config": "^28.1.3",
- "jest-haste-map": "^28.1.3",
- "jest-message-util": "^28.1.3",
- "jest-regex-util": "^28.0.2",
- "jest-resolve": "^28.1.3",
- "jest-resolve-dependencies": "^28.1.3",
- "jest-runner": "^28.1.3",
- "jest-runtime": "^28.1.3",
- "jest-snapshot": "^28.1.3",
- "jest-util": "^28.1.3",
- "jest-validate": "^28.1.3",
- "jest-watcher": "^28.1.3",
- "micromatch": "^4.0.4",
- "pretty-format": "^28.1.3",
- "rimraf": "^3.0.0",
- "slash": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/@jest/environment": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz",
- "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==",
- "dev": true,
- "dependencies": {
- "@jest/fake-timers": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "jest-mock": "^28.1.3"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/@jest/expect": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz",
- "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==",
- "dev": true,
- "dependencies": {
- "expect": "^28.1.3",
- "jest-snapshot": "^28.1.3"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/@jest/expect-utils": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz",
- "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==",
- "dev": true,
- "dependencies": {
- "jest-get-type": "^28.0.2"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/@jest/fake-timers": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz",
- "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^28.1.3",
- "@sinonjs/fake-timers": "^9.1.2",
- "@types/node": "*",
- "jest-message-util": "^28.1.3",
- "jest-mock": "^28.1.3",
- "jest-util": "^28.1.3"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/@jest/globals": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz",
- "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==",
- "dev": true,
- "dependencies": {
- "@jest/environment": "^28.1.3",
- "@jest/expect": "^28.1.3",
- "@jest/types": "^28.1.3"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/@jest/reporters": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz",
- "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==",
- "dev": true,
- "dependencies": {
- "@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "^28.1.3",
- "@jest/test-result": "^28.1.3",
- "@jest/transform": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@jridgewell/trace-mapping": "^0.3.13",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "collect-v8-coverage": "^1.0.0",
- "exit": "^0.1.2",
- "glob": "^7.1.3",
- "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-message-util": "^28.1.3",
- "jest-util": "^28.1.3",
- "jest-worker": "^28.1.3",
- "slash": "^3.0.0",
- "string-length": "^4.0.1",
- "strip-ansi": "^6.0.0",
- "terminal-link": "^2.0.0",
- "v8-to-istanbul": "^9.0.1"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/@jest/reporters/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
- "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
- "dev": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
- "node_modules/@jest/schemas": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz",
- "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==",
- "dev": true,
- "dependencies": {
- "@sinclair/typebox": "^0.24.1"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/@jest/source-map": {
- "version": "28.1.2",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz",
- "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==",
- "dev": true,
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.13",
- "callsites": "^3.0.0",
- "graceful-fs": "^4.2.9"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/@jest/source-map/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
- "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
- "dev": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
- "node_modules/@jest/test-result": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz",
- "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==",
- "dev": true,
- "dependencies": {
- "@jest/console": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "collect-v8-coverage": "^1.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/@jest/test-sequencer": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz",
- "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==",
- "dev": true,
- "dependencies": {
- "@jest/test-result": "^28.1.3",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^28.1.3",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/@jest/transform": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz",
- "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.11.6",
- "@jest/types": "^28.1.3",
- "@jridgewell/trace-mapping": "^0.3.13",
- "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": "^28.1.3",
- "jest-regex-util": "^28.0.2",
- "jest-util": "^28.1.3",
- "micromatch": "^4.0.4",
- "pirates": "^4.0.4",
- "slash": "^3.0.0",
- "write-file-atomic": "^4.0.1"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/@jest/transform/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
- "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
- "dev": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
- "node_modules/@jest/types": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz",
- "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==",
- "dev": true,
- "dependencies": {
- "@jest/schemas": "^28.1.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
- "@types/node": "*",
- "@types/yargs": "^17.0.8",
- "chalk": "^4.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
- "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
- "dev": true,
- "dependencies": {
- "@jridgewell/set-array": "^1.0.0",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
- "devOptional": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
- "dev": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
- "devOptional": true
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
- "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
- "devOptional": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
- "node_modules/@mapbox/node-pre-gyp": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz",
- "integrity": "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "detect-libc": "^2.0.0",
- "https-proxy-agent": "^5.0.0",
- "make-dir": "^3.1.0",
- "node-fetch": "^2.6.7",
- "nopt": "^5.0.0",
- "npmlog": "^5.0.1",
- "rimraf": "^3.0.2",
- "semver": "^7.3.5",
- "tar": "^6.1.11"
- },
- "bin": {
- "node-pre-gyp": "bin/node-pre-gyp"
- }
- },
- "node_modules/@mapbox/node-pre-gyp/node_modules/are-we-there-yet": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
- "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "delegates": "^1.0.0",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@mapbox/node-pre-gyp/node_modules/detect-libc": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
- "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@mapbox/node-pre-gyp/node_modules/gauge": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
- "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "aproba": "^1.0.3 || ^2.0.0",
- "color-support": "^1.1.2",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.1",
- "object-assign": "^4.1.1",
- "signal-exit": "^3.0.0",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "wide-align": "^1.1.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@mapbox/node-pre-gyp/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@mapbox/node-pre-gyp/node_modules/npmlog": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
- "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "are-we-there-yet": "^2.0.0",
- "console-control-strings": "^1.1.0",
- "gauge": "^3.0.0",
- "set-blocking": "^2.0.0"
- }
- },
- "node_modules/@mapbox/node-pre-gyp/node_modules/readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/@mapbox/node-pre-gyp/node_modules/semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@mapbox/node-pre-gyp/node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/@mapbox/node-pre-gyp/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/@npmcli/fs": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz",
- "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "@gar/promisify": "^1.0.1",
- "semver": "^7.3.5"
- }
- },
- "node_modules/@npmcli/fs/node_modules/semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@npmcli/move-file": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
- "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "mkdirp": "^1.0.4",
- "rimraf": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@npmcli/move-file/node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "optional": true,
- "peer": true,
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/@sinclair/typebox": {
- "version": "0.24.20",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.20.tgz",
- "integrity": "sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ==",
- "dev": true
- },
- "node_modules/@sinonjs/commons": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz",
- "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==",
- "dev": true,
- "dependencies": {
- "type-detect": "4.0.8"
- }
- },
- "node_modules/@sinonjs/fake-timers": {
- "version": "9.1.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz",
- "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==",
- "dev": true,
- "dependencies": {
- "@sinonjs/commons": "^1.7.0"
- }
- },
- "node_modules/@sqltools/formatter": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.3.tgz",
- "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg=="
- },
- "node_modules/@tootallnate/once": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
- "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/@tsconfig/node10": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
- "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==",
- "devOptional": true
- },
- "node_modules/@tsconfig/node12": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz",
- "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==",
- "devOptional": true
- },
- "node_modules/@tsconfig/node14": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz",
- "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==",
- "devOptional": true
- },
- "node_modules/@tsconfig/node16": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
- "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
- "devOptional": true
- },
- "node_modules/@types/amqplib": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.8.2.tgz",
- "integrity": "sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA==",
- "dev": true,
- "dependencies": {
- "@types/bluebird": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/babel__core": {
- "version": "7.1.19",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz",
- "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==",
- "dev": true,
- "dependencies": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0",
- "@types/babel__generator": "*",
- "@types/babel__template": "*",
- "@types/babel__traverse": "*"
- }
- },
- "node_modules/@types/babel__generator": {
- "version": "7.6.4",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz",
- "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.0.0"
- }
- },
- "node_modules/@types/babel__template": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz",
- "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==",
- "dev": true,
- "dependencies": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0"
- }
- },
- "node_modules/@types/babel__traverse": {
- "version": "7.17.1",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz",
- "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.3.0"
- }
- },
- "node_modules/@types/bluebird": {
- "version": "3.5.36",
- "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz",
- "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==",
- "dev": true
- },
- "node_modules/@types/body-parser": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz",
- "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==",
- "dev": true,
- "dependencies": {
- "@types/connect": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/connect": {
- "version": "3.4.35",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
- "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/express": {
- "version": "4.17.13",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz",
- "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==",
- "dev": true,
- "dependencies": {
- "@types/body-parser": "*",
- "@types/express-serve-static-core": "^4.17.18",
- "@types/qs": "*",
- "@types/serve-static": "*"
- }
- },
- "node_modules/@types/express-serve-static-core": {
- "version": "4.17.24",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz",
- "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*"
- }
- },
- "node_modules/@types/graceful-fs": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz",
- "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/istanbul-lib-coverage": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
- "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==",
- "dev": true
- },
- "node_modules/@types/istanbul-lib-report": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
- "dev": true,
- "dependencies": {
- "@types/istanbul-lib-coverage": "*"
- }
- },
- "node_modules/@types/istanbul-reports": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
- "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
- "dev": true,
- "dependencies": {
- "@types/istanbul-lib-report": "*"
- }
- },
- "node_modules/@types/jsonwebtoken": {
- "version": "8.5.8",
- "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz",
- "integrity": "sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==",
- "dev": true,
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/mime": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
- "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==",
- "dev": true
- },
- "node_modules/@types/multer": {
- "version": "1.4.7",
- "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz",
- "integrity": "sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==",
- "dev": true,
- "dependencies": {
- "@types/express": "*"
- }
- },
- "node_modules/@types/node": {
- "version": "18.0.6",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz",
- "integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw=="
- },
- "node_modules/@types/node-fetch": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz",
- "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==",
- "dependencies": {
- "@types/node": "*",
- "form-data": "^3.0.0"
- }
- },
- "node_modules/@types/node-fetch/node_modules/form-data": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
- "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/@types/prettier": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz",
- "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==",
- "dev": true
- },
- "node_modules/@types/qs": {
- "version": "6.9.7",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
- "dev": true
- },
- "node_modules/@types/range-parser": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
- "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==",
- "dev": true
- },
- "node_modules/@types/serve-static": {
- "version": "1.13.10",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz",
- "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==",
- "dev": true,
- "dependencies": {
- "@types/mime": "^1",
- "@types/node": "*"
- }
- },
- "node_modules/@types/stack-utils": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
- "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==",
- "dev": true
- },
- "node_modules/@types/yargs": {
- "version": "17.0.10",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz",
- "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==",
- "dev": true,
- "dependencies": {
- "@types/yargs-parser": "*"
- }
- },
- "node_modules/@types/yargs-parser": {
- "version": "21.0.0",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz",
- "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==",
- "dev": true
- },
- "node_modules/abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
- "optional": true,
- "peer": true
- },
- "node_modules/accepts": {
- "version": "1.3.7",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
- "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
- "dependencies": {
- "mime-types": "~2.1.24",
- "negotiator": "0.6.2"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/acorn": {
- "version": "8.7.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
- "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "dependencies": {
- "debug": "4"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/agent-base/node_modules/debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/agent-base/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/agentkeepalive": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz",
- "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "debug": "^4.1.0",
- "depd": "^1.1.2",
- "humanize-ms": "^1.2.1"
- },
- "engines": {
- "node": ">= 8.0.0"
- }
- },
- "node_modules/agentkeepalive/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/agentkeepalive/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "optional": true,
- "peer": true
- },
- "node_modules/aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/amqplib": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.10.0.tgz",
- "integrity": "sha512-UueEnRGY6upiSvGsSYM22Woa1SeSukqYtqgYW4Gj8gHvbf5BRhhYRqf3kQ8aSUYYffTOZi6SeOVW2eOXt0hpPA==",
- "dependencies": {
- "bitsyntax": "~0.1.0",
- "buffer-more-ints": "~1.0.0",
- "readable-stream": "1.x >=1.1.9",
- "url-parse": "~1.5.10"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/ansi-escapes": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
- "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
- "dev": true,
- "dependencies": {
- "type-fest": "^0.21.3"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/any-promise": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8="
- },
- "node_modules/anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "dev": true,
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/app-root-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz",
- "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==",
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/append-field": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
- "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY="
- },
- "node_modules/aproba": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
- "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
- "optional": true,
- "peer": true
- },
- "node_modules/are-we-there-yet": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
- "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "delegates": "^1.0.0",
- "readable-stream": "^2.0.6"
- }
- },
- "node_modules/are-we-there-yet/node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "optional": true,
- "peer": true
- },
- "node_modules/are-we-there-yet/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "optional": true,
- "peer": true,
- "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"
- }
- },
- "node_modules/are-we-there-yet/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "optional": true,
- "peer": true
- },
- "node_modules/are-we-there-yet/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/arg": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
- "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "devOptional": true
- },
- "node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
- },
- "node_modules/ast-types": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz",
- "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==",
- "dependencies": {
- "tslib": "^2.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
- },
- "node_modules/babel-jest": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz",
- "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==",
- "dev": true,
- "dependencies": {
- "@jest/transform": "^28.1.3",
- "@types/babel__core": "^7.1.14",
- "babel-plugin-istanbul": "^6.1.1",
- "babel-preset-jest": "^28.1.3",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.8.0"
- }
- },
- "node_modules/babel-plugin-istanbul": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
- "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
- "dev": true,
- "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"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/babel-plugin-jest-hoist": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz",
- "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==",
- "dev": true,
- "dependencies": {
- "@babel/template": "^7.3.3",
- "@babel/types": "^7.3.3",
- "@types/babel__core": "^7.1.14",
- "@types/babel__traverse": "^7.0.6"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/babel-preset-current-node-syntax": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
- "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
- "dev": true,
- "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"
- }
- },
- "node_modules/babel-preset-jest": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz",
- "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==",
- "dev": true,
- "dependencies": {
- "babel-plugin-jest-hoist": "^28.1.3",
- "babel-preset-current-node-syntax": "^1.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/better-sqlite3": {
- "version": "7.4.3",
- "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.4.3.tgz",
- "integrity": "sha512-07bKjClZg/f4KMVRkzWtoIvazVPcF1gsvVKVIXlxwleC2DxuIhnra3KCMlUT1rFeRYXXckot2a46UciF2d9KLw==",
- "hasInstallScript": true,
- "optional": true,
- "peer": true,
- "dependencies": {
- "bindings": "^1.5.0",
- "prebuild-install": "^6.0.1",
- "tar": "^6.1.0"
- }
- },
- "node_modules/bindings": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
- "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "file-uri-to-path": "1.0.0"
- }
- },
- "node_modules/bitsyntax": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.1.0.tgz",
- "integrity": "sha512-ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q==",
- "dependencies": {
- "buffer-more-ints": "~1.0.0",
- "debug": "~2.6.9",
- "safe-buffer": "~5.1.2"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/bitsyntax/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "node_modules/bl": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
- "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- }
- },
- "node_modules/bl/node_modules/readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/bl/node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/body-parser": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
- "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
- "dependencies": {
- "bytes": "3.1.0",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "1.7.2",
- "iconv-lite": "0.4.24",
- "on-finished": "~2.3.0",
- "qs": "6.7.0",
- "raw-body": "2.4.0",
- "type-is": "~1.6.17"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browserslist": {
- "version": "4.21.2",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.2.tgz",
- "integrity": "sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- }
- ],
- "dependencies": {
- "caniuse-lite": "^1.0.30001366",
- "electron-to-chromium": "^1.4.188",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.4"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/bser": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
- "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
- "dev": true,
- "dependencies": {
- "node-int64": "^0.4.0"
- }
- },
- "node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "optional": true,
- "peer": true,
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "node_modules/buffer-equal-constant-time": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
- "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
- },
- "node_modules/buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
- },
- "node_modules/buffer-more-ints": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-1.0.0.tgz",
- "integrity": "sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg=="
- },
- "node_modules/buffer-writer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz",
- "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/busboy": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
- "dependencies": {
- "streamsearch": "^1.1.0"
- },
- "engines": {
- "node": ">=10.16.0"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
- "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/cacache": {
- "version": "15.3.0",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
- "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "@npmcli/fs": "^1.0.0",
- "@npmcli/move-file": "^1.0.1",
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "glob": "^7.1.4",
- "infer-owner": "^1.0.4",
- "lru-cache": "^6.0.0",
- "minipass": "^3.1.1",
- "minipass-collect": "^1.0.2",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.2",
- "mkdirp": "^1.0.3",
- "p-map": "^4.0.0",
- "promise-inflight": "^1.0.1",
- "rimraf": "^3.0.2",
- "ssri": "^8.0.1",
- "tar": "^6.0.2",
- "unique-filename": "^1.1.1"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/cacache/node_modules/chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/cacache/node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "optional": true,
- "peer": true,
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001367",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001367.tgz",
- "integrity": "sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- }
- ]
- },
- "node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/char-regex": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
- "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
- "optional": true,
- "peer": true
- },
- "node_modules/ci-info": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz",
- "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==",
- "dev": true
- },
- "node_modules/cjs-module-lexer": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz",
- "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==",
- "dev": true
- },
- "node_modules/clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/cli-highlight": {
- "version": "2.1.11",
- "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz",
- "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==",
- "dependencies": {
- "chalk": "^4.0.0",
- "highlight.js": "^10.7.1",
- "mz": "^2.4.0",
- "parse5": "^5.1.1",
- "parse5-htmlparser2-tree-adapter": "^6.0.0",
- "yargs": "^16.0.0"
- },
- "bin": {
- "highlight": "bin/highlight"
- },
- "engines": {
- "node": ">=8.0.0",
- "npm": ">=5.0.0"
- }
- },
- "node_modules/cli-highlight/node_modules/parse5": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
- "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug=="
- },
- "node_modules/cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "node_modules/cliui/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cliui/node_modules/string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
- "dev": true,
- "engines": {
- "iojs": ">= 1.0.0",
- "node": ">= 0.12.0"
- }
- },
- "node_modules/code-point-at": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/collect-v8-coverage": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
- "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==",
- "dev": true
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/color-support": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
- "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
- "optional": true,
- "peer": true,
- "bin": {
- "color-support": "bin.js"
- }
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "node_modules/concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "engines": [
- "node >= 0.8"
- ],
- "dependencies": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- }
- },
- "node_modules/concat-stream/node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "node_modules/concat-stream/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "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"
- }
- },
- "node_modules/concat-stream/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "node_modules/concat-stream/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/console-control-strings": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
- "optional": true,
- "peer": true
- },
- "node_modules/content-disposition": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
- "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
- "dependencies": {
- "safe-buffer": "5.1.2"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-disposition/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "node_modules/content-type": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
- "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/convert-source-map": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
- "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.1"
- }
- },
- "node_modules/convert-source-map/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- },
- "node_modules/cookie": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
- "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
- },
- "node_modules/core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
- },
- "node_modules/create-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "devOptional": true
- },
- "node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/data-uri-to-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz",
- "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/date-fns": {
- "version": "2.28.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz",
- "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==",
- "engines": {
- "node": ">=0.11"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/date-fns"
- }
- },
- "node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/decompress-response": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
- "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "mimic-response": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/dedent": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
- "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
- "dev": true
- },
- "node_modules/deep-extend": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
- },
- "node_modules/deepmerge": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
- "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/degenerator": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.1.tgz",
- "integrity": "sha512-LFsIFEeLPlKvAKXu7j3ssIG6RT0TbI7/GhsqrI0DnHASEQjXQ0LUSYcjJteGgRGmZbl1TnMSxpNQIAiJ7Du5TQ==",
- "dependencies": {
- "ast-types": "^0.13.2",
- "escodegen": "^1.8.1",
- "esprima": "^4.0.0",
- "vm2": "^3.9.3"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/degenerator/node_modules/escodegen": {
- "version": "1.14.3",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
- "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
- "dependencies": {
- "esprima": "^4.0.1",
- "estraverse": "^4.2.0",
- "esutils": "^2.0.2",
- "optionator": "^0.8.1"
- },
- "bin": {
- "escodegen": "bin/escodegen.js",
- "esgenerate": "bin/esgenerate.js"
- },
- "engines": {
- "node": ">=4.0"
- },
- "optionalDependencies": {
- "source-map": "~0.6.1"
- }
- },
- "node_modules/degenerator/node_modules/estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
- "optional": true,
- "peer": true
- },
- "node_modules/depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/destroy": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
- "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
- },
- "node_modules/detect-libc": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
- "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
- "optional": true,
- "peer": true,
- "bin": {
- "detect-libc": "bin/detect-libc.js"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/detect-newline": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
- "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "devOptional": true,
- "engines": {
- "node": ">=0.3.1"
- }
- },
- "node_modules/diff-sequences": {
- "version": "28.1.1",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz",
- "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==",
- "dev": true,
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/dotenv": {
- "version": "16.0.1",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz",
- "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/ecdsa-sig-formatter": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
- "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
- "dependencies": {
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
- },
- "node_modules/electron-to-chromium": {
- "version": "1.4.192",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.192.tgz",
- "integrity": "sha512-8nCXyIQY9An88NXAp+PuPy5h3/w5ZY7Iu2lag65Q0XREprcat5F8gKhoHsBUnQcFuCRnmevpR8yEBYRU3d2HDw==",
- "dev": true
- },
- "node_modules/emittery": {
- "version": "0.10.2",
- "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz",
- "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==",
- "dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/emittery?sponsor=1"
- }
- },
- "node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/encoding": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
- "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "iconv-lite": "^0.6.2"
- }
- },
- "node_modules/encoding/node_modules/iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "once": "^1.4.0"
- }
- },
- "node_modules/env-paths": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
- "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/err-code": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
- "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
- "optional": true,
- "peer": true
- },
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
- "node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
- },
- "node_modules/escape-string-regexp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
- "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"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/expand-template": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
- "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/expect": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz",
- "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==",
- "dev": true,
- "dependencies": {
- "@jest/expect-utils": "^28.1.3",
- "jest-get-type": "^28.0.2",
- "jest-matcher-utils": "^28.1.3",
- "jest-message-util": "^28.1.3",
- "jest-util": "^28.1.3"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/express": {
- "version": "4.17.1",
- "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
- "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
- "dependencies": {
- "accepts": "~1.3.7",
- "array-flatten": "1.1.1",
- "body-parser": "1.19.0",
- "content-disposition": "0.5.3",
- "content-type": "~1.0.4",
- "cookie": "0.4.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "~1.1.2",
- "fresh": "0.5.2",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.5",
- "qs": "6.7.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.1.2",
- "send": "0.17.1",
- "serve-static": "1.14.1",
- "setprototypeof": "1.1.1",
- "statuses": "~1.5.0",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/express-async-errors": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/express-async-errors/-/express-async-errors-3.1.1.tgz",
- "integrity": "sha512-h6aK1da4tpqWSbyCa3FxB/V6Ehd4EEB15zyQq9qe75OZBp0krinNKuH4rAY+S/U/2I36vdLAUFSjQJ+TFmODng==",
- "peerDependencies": {
- "express": "^4.16.2"
- }
- },
- "node_modules/express/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
- },
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
- },
- "node_modules/fb-watchman": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz",
- "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==",
- "dev": true,
- "dependencies": {
- "bser": "2.1.1"
- }
- },
- "node_modules/file-uri-to-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
- "optional": true,
- "peer": true
- },
- "node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
- "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "statuses": "~1.5.0",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fs-constants": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
- "optional": true,
- "peer": true
- },
- "node_modules/fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/ftp": {
- "version": "0.3.10",
- "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz",
- "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=",
- "dependencies": {
- "readable-stream": "1.1.x",
- "xregexp": "2.0.0"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
- },
- "node_modules/gauge": {
- "version": "2.7.4",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
- "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
- "optional": true,
- "peer": true,
- "dependencies": {
- "aproba": "^1.0.3",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.0",
- "object-assign": "^4.1.0",
- "signal-exit": "^3.0.0",
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wide-align": "^1.1.0"
- }
- },
- "node_modules/gauge/node_modules/ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/gauge/node_modules/strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "optional": true,
- "peer": true,
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-package-type": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
- "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
- "dev": true,
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/get-uri": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz",
- "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==",
- "dependencies": {
- "@tootallnate/once": "1",
- "data-uri-to-buffer": "3",
- "debug": "4",
- "file-uri-to-path": "2",
- "fs-extra": "^8.1.0",
- "ftp": "^0.3.10"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/get-uri/node_modules/debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/get-uri/node_modules/file-uri-to-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz",
- "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/get-uri/node_modules/fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- },
- "engines": {
- "node": ">=6 <7 || >=8"
- }
- },
- "node_modules/get-uri/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/github-from-package": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
- "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=",
- "optional": true,
- "peer": true
- },
- "node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "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"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
- },
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
- "optional": true,
- "peer": true
- },
- "node_modules/helmet": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz",
- "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==",
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/highlight.js": {
- "version": "10.7.3",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
- "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
- },
- "node_modules/http-cache-semantics": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
- "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
- "optional": true,
- "peer": true
- },
- "node_modules/http-errors": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
- "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
- "dependencies": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.1",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/http-errors/node_modules/inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
- },
- "node_modules/http-proxy-agent": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
- "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
- "dependencies": {
- "@tootallnate/once": "1",
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/http-proxy-agent/node_modules/debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/http-proxy-agent/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/https-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
- "dependencies": {
- "agent-base": "6",
- "debug": "4"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/https-proxy-agent/node_modules/debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/https-proxy-agent/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dev": true,
- "engines": {
- "node": ">=10.17.0"
- }
- },
- "node_modules/humanize-ms": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
- "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "ms": "^2.0.0"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/import-local": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
- "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
- "dev": true,
- "dependencies": {
- "pkg-dir": "^4.2.0",
- "resolve-cwd": "^3.0.0"
- },
- "bin": {
- "import-local-fixture": "fixtures/cli.js"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
- "devOptional": true,
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/infer-owner": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
- "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
- "optional": true,
- "peer": true
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "optional": true,
- "peer": true
- },
- "node_modules/ip": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
- "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
- },
- "node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
- },
- "node_modules/is-core-module": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
- "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
- "dev": true,
- "dependencies": {
- "has": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "optional": true,
- "peer": true,
- "dependencies": {
- "number-is-nan": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-generator-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
- "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/is-lambda": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
- "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==",
- "optional": true,
- "peer": true
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
- "devOptional": true
- },
- "node_modules/istanbul-lib-coverage": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
- "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-instrument": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz",
- "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==",
- "dev": true,
- "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"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-report": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
- "dev": true,
- "dependencies": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^3.0.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/istanbul-lib-source-maps": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
- "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
- "dev": true,
- "dependencies": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^3.0.0",
- "source-map": "^0.6.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/istanbul-lib-source-maps/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/istanbul-lib-source-maps/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/istanbul-reports": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
- "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
- "dev": true,
- "dependencies": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz",
- "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==",
- "dev": true,
- "dependencies": {
- "@jest/core": "^28.1.3",
- "@jest/types": "^28.1.3",
- "import-local": "^3.0.2",
- "jest-cli": "^28.1.3"
- },
- "bin": {
- "jest": "bin/jest.js"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/jest-changed-files": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz",
- "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==",
- "dev": true,
- "dependencies": {
- "execa": "^5.0.0",
- "p-limit": "^3.1.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-circus": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz",
- "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==",
- "dev": true,
- "dependencies": {
- "@jest/environment": "^28.1.3",
- "@jest/expect": "^28.1.3",
- "@jest/test-result": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "co": "^4.6.0",
- "dedent": "^0.7.0",
- "is-generator-fn": "^2.0.0",
- "jest-each": "^28.1.3",
- "jest-matcher-utils": "^28.1.3",
- "jest-message-util": "^28.1.3",
- "jest-runtime": "^28.1.3",
- "jest-snapshot": "^28.1.3",
- "jest-util": "^28.1.3",
- "p-limit": "^3.1.0",
- "pretty-format": "^28.1.3",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-cli": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz",
- "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==",
- "dev": true,
- "dependencies": {
- "@jest/core": "^28.1.3",
- "@jest/test-result": "^28.1.3",
- "@jest/types": "^28.1.3",
- "chalk": "^4.0.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "import-local": "^3.0.2",
- "jest-config": "^28.1.3",
- "jest-util": "^28.1.3",
- "jest-validate": "^28.1.3",
- "prompts": "^2.0.1",
- "yargs": "^17.3.1"
- },
- "bin": {
- "jest": "bin/jest.js"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- },
- "peerDependencies": {
- "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
- },
- "peerDependenciesMeta": {
- "node-notifier": {
- "optional": true
- }
- }
- },
- "node_modules/jest-cli/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-cli/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/jest-cli/node_modules/yargs": {
- "version": "17.5.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz",
- "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==",
- "dev": true,
- "dependencies": {
- "cliui": "^7.0.2",
- "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.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/jest-cli/node_modules/yargs-parser": {
- "version": "21.0.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz",
- "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==",
- "dev": true,
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/jest-config": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz",
- "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.11.6",
- "@jest/test-sequencer": "^28.1.3",
- "@jest/types": "^28.1.3",
- "babel-jest": "^28.1.3",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "deepmerge": "^4.2.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-circus": "^28.1.3",
- "jest-environment-node": "^28.1.3",
- "jest-get-type": "^28.0.2",
- "jest-regex-util": "^28.0.2",
- "jest-resolve": "^28.1.3",
- "jest-runner": "^28.1.3",
- "jest-util": "^28.1.3",
- "jest-validate": "^28.1.3",
- "micromatch": "^4.0.4",
- "parse-json": "^5.2.0",
- "pretty-format": "^28.1.3",
- "slash": "^3.0.0",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- },
- "peerDependencies": {
- "@types/node": "*",
- "ts-node": ">=9.0.0"
- },
- "peerDependenciesMeta": {
- "@types/node": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- }
- }
- },
- "node_modules/jest-config/node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-diff": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz",
- "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.0.0",
- "diff-sequences": "^28.1.1",
- "jest-get-type": "^28.0.2",
- "pretty-format": "^28.1.3"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-docblock": {
- "version": "28.1.1",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz",
- "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==",
- "dev": true,
- "dependencies": {
- "detect-newline": "^3.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-each": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz",
- "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^28.1.3",
- "chalk": "^4.0.0",
- "jest-get-type": "^28.0.2",
- "jest-util": "^28.1.3",
- "pretty-format": "^28.1.3"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-environment-node": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz",
- "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==",
- "dev": true,
- "dependencies": {
- "@jest/environment": "^28.1.3",
- "@jest/fake-timers": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "jest-mock": "^28.1.3",
- "jest-util": "^28.1.3"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-get-type": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz",
- "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==",
- "dev": true,
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-haste-map": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz",
- "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^28.1.3",
- "@types/graceful-fs": "^4.1.3",
- "@types/node": "*",
- "anymatch": "^3.0.3",
- "fb-watchman": "^2.0.0",
- "graceful-fs": "^4.2.9",
- "jest-regex-util": "^28.0.2",
- "jest-util": "^28.1.3",
- "jest-worker": "^28.1.3",
- "micromatch": "^4.0.4",
- "walker": "^1.0.8"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- },
- "optionalDependencies": {
- "fsevents": "^2.3.2"
- }
- },
- "node_modules/jest-leak-detector": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz",
- "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==",
- "dev": true,
- "dependencies": {
- "jest-get-type": "^28.0.2",
- "pretty-format": "^28.1.3"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-matcher-utils": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz",
- "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.0.0",
- "jest-diff": "^28.1.3",
- "jest-get-type": "^28.0.2",
- "pretty-format": "^28.1.3"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-message-util": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz",
- "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.12.13",
- "@jest/types": "^28.1.3",
- "@types/stack-utils": "^2.0.0",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "micromatch": "^4.0.4",
- "pretty-format": "^28.1.3",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-mock": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz",
- "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^28.1.3",
- "@types/node": "*"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-pnp-resolver": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz",
- "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==",
- "dev": true,
- "engines": {
- "node": ">=6"
- },
- "peerDependencies": {
- "jest-resolve": "*"
- },
- "peerDependenciesMeta": {
- "jest-resolve": {
- "optional": true
- }
- }
- },
- "node_modules/jest-regex-util": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz",
- "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==",
- "dev": true,
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-resolve": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz",
- "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^28.1.3",
- "jest-pnp-resolver": "^1.2.2",
- "jest-util": "^28.1.3",
- "jest-validate": "^28.1.3",
- "resolve": "^1.20.0",
- "resolve.exports": "^1.1.0",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-resolve-dependencies": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz",
- "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==",
- "dev": true,
- "dependencies": {
- "jest-regex-util": "^28.0.2",
- "jest-snapshot": "^28.1.3"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-runner": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz",
- "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==",
- "dev": true,
- "dependencies": {
- "@jest/console": "^28.1.3",
- "@jest/environment": "^28.1.3",
- "@jest/test-result": "^28.1.3",
- "@jest/transform": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "emittery": "^0.10.2",
- "graceful-fs": "^4.2.9",
- "jest-docblock": "^28.1.1",
- "jest-environment-node": "^28.1.3",
- "jest-haste-map": "^28.1.3",
- "jest-leak-detector": "^28.1.3",
- "jest-message-util": "^28.1.3",
- "jest-resolve": "^28.1.3",
- "jest-runtime": "^28.1.3",
- "jest-util": "^28.1.3",
- "jest-watcher": "^28.1.3",
- "jest-worker": "^28.1.3",
- "p-limit": "^3.1.0",
- "source-map-support": "0.5.13"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-runtime": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz",
- "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==",
- "dev": true,
- "dependencies": {
- "@jest/environment": "^28.1.3",
- "@jest/fake-timers": "^28.1.3",
- "@jest/globals": "^28.1.3",
- "@jest/source-map": "^28.1.2",
- "@jest/test-result": "^28.1.3",
- "@jest/transform": "^28.1.3",
- "@jest/types": "^28.1.3",
- "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": "^28.1.3",
- "jest-message-util": "^28.1.3",
- "jest-mock": "^28.1.3",
- "jest-regex-util": "^28.0.2",
- "jest-resolve": "^28.1.3",
- "jest-snapshot": "^28.1.3",
- "jest-util": "^28.1.3",
- "slash": "^3.0.0",
- "strip-bom": "^4.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-snapshot": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz",
- "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==",
- "dev": true,
- "dependencies": {
- "@babel/core": "^7.11.6",
- "@babel/generator": "^7.7.2",
- "@babel/plugin-syntax-typescript": "^7.7.2",
- "@babel/traverse": "^7.7.2",
- "@babel/types": "^7.3.3",
- "@jest/expect-utils": "^28.1.3",
- "@jest/transform": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/babel__traverse": "^7.0.6",
- "@types/prettier": "^2.1.5",
- "babel-preset-current-node-syntax": "^1.0.0",
- "chalk": "^4.0.0",
- "expect": "^28.1.3",
- "graceful-fs": "^4.2.9",
- "jest-diff": "^28.1.3",
- "jest-get-type": "^28.0.2",
- "jest-haste-map": "^28.1.3",
- "jest-matcher-utils": "^28.1.3",
- "jest-message-util": "^28.1.3",
- "jest-util": "^28.1.3",
- "natural-compare": "^1.4.0",
- "pretty-format": "^28.1.3",
- "semver": "^7.3.5"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-snapshot/node_modules/semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/jest-util": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz",
- "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "graceful-fs": "^4.2.9",
- "picomatch": "^2.2.3"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-validate": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz",
- "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==",
- "dev": true,
- "dependencies": {
- "@jest/types": "^28.1.3",
- "camelcase": "^6.2.0",
- "chalk": "^4.0.0",
- "jest-get-type": "^28.0.2",
- "leven": "^3.1.0",
- "pretty-format": "^28.1.3"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-validate/node_modules/camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/jest-watcher": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz",
- "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==",
- "dev": true,
- "dependencies": {
- "@jest/test-result": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "emittery": "^0.10.2",
- "jest-util": "^28.1.3",
- "string-length": "^4.0.1"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-worker": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz",
- "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==",
- "dev": true,
- "dependencies": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/jest-worker/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dev": true,
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true,
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "node_modules/json5": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
- "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
- "dev": true,
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/jsonwebtoken": {
- "version": "8.5.1",
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
- "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
- "dependencies": {
- "jws": "^3.2.2",
- "lodash.includes": "^4.3.0",
- "lodash.isboolean": "^3.0.3",
- "lodash.isinteger": "^4.0.4",
- "lodash.isnumber": "^3.0.3",
- "lodash.isplainobject": "^4.0.6",
- "lodash.isstring": "^4.0.1",
- "lodash.once": "^4.0.0",
- "ms": "^2.1.1",
- "semver": "^5.6.0"
- },
- "engines": {
- "node": ">=4",
- "npm": ">=1.4.28"
- }
- },
- "node_modules/jsonwebtoken/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "node_modules/jsonwebtoken/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/jwa": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
- "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
- "dependencies": {
- "buffer-equal-constant-time": "1.0.1",
- "ecdsa-sig-formatter": "1.0.11",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/jws": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
- "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
- "dependencies": {
- "jwa": "^1.4.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/kleur": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
- "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/lambert-server": {
- "version": "1.2.12",
- "resolved": "https://registry.npmjs.org/lambert-server/-/lambert-server-1.2.12.tgz",
- "integrity": "sha512-TY6k60KLVfBpPrl9lcrN54RJdTBg9f8JqJPoHg5d/FMLnnwwQtT4budpoQjyLDwBLhS+zpXo0aBCwnnGgTVGaw==",
- "dependencies": {
- "body-parser": "^1.19.0",
- "chalk": "^4.1.1",
- "express": "^4.17.1",
- "express-async-errors": "^3.1.1",
- "helmet": "^4.4.1",
- "missing-native-js-functions": "^1.2.11"
- }
- },
- "node_modules/leven": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/levn": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
- "dependencies": {
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/lodash.includes": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
- "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
- },
- "node_modules/lodash.isboolean": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
- "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
- },
- "node_modules/lodash.isinteger": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
- "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M="
- },
- "node_modules/lodash.isnumber": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
- "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
- },
- "node_modules/lodash.isplainobject": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
- },
- "node_modules/lodash.isstring": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
- "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
- },
- "node_modules/lodash.once": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
- "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
- },
- "node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "devOptional": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
- "devOptional": true,
- "dependencies": {
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/make-error": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
- "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "devOptional": true
- },
- "node_modules/make-fetch-happen": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz",
- "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "agentkeepalive": "^4.1.3",
- "cacache": "^15.2.0",
- "http-cache-semantics": "^4.1.0",
- "http-proxy-agent": "^4.0.1",
- "https-proxy-agent": "^5.0.0",
- "is-lambda": "^1.0.1",
- "lru-cache": "^6.0.0",
- "minipass": "^3.1.3",
- "minipass-collect": "^1.0.2",
- "minipass-fetch": "^1.3.2",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "negotiator": "^0.6.2",
- "promise-retry": "^2.0.1",
- "socks-proxy-agent": "^6.0.0",
- "ssri": "^8.0.0"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/make-fetch-happen/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/make-fetch-happen/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "optional": true,
- "peer": true
- },
- "node_modules/make-fetch-happen/node_modules/socks-proxy-agent": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz",
- "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "agent-base": "^6.0.2",
- "debug": "^4.3.3",
- "socks": "^2.6.2"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/makeerror": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
- "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
- "dev": true,
- "dependencies": {
- "tmpl": "1.0.5"
- }
- },
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
- },
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
- },
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/micromatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
- "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
- "dev": true,
- "dependencies": {
- "braces": "^3.0.1",
- "picomatch": "^2.2.3"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/mime-db": {
- "version": "1.49.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz",
- "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.32",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz",
- "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==",
- "dependencies": {
- "mime-db": "1.49.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/mimic-response": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
- "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
- "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
- },
- "node_modules/minipass": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz",
- "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minipass-collect": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
- "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/minipass-fetch": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz",
- "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "minipass": "^3.1.0",
- "minipass-sized": "^1.0.3",
- "minizlib": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "optionalDependencies": {
- "encoding": "^0.1.12"
- }
- },
- "node_modules/minipass-flush": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
- "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/minipass-pipeline": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
- "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minipass-sized": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
- "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "minipass": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/missing-native-js-functions": {
- "version": "1.2.18",
- "resolved": "https://registry.npmjs.org/missing-native-js-functions/-/missing-native-js-functions-1.2.18.tgz",
- "integrity": "sha512-TZr1muzDE4kfu0LHDzg63O7m2qW3Gpyc875ki8+YlSRj+4ibZRv0ySQ0cSB06GoBL9ejeehLmkQnybLpp9jYcg=="
- },
- "node_modules/mkdirp": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
- "dependencies": {
- "minimist": "^1.2.5"
- },
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
- "node_modules/mkdirp-classic": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
- "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
- "optional": true,
- "peer": true
- },
- "node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- },
- "node_modules/multer": {
- "version": "1.4.5-lts.1",
- "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz",
- "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==",
- "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"
- },
- "engines": {
- "node": ">= 6.0.0"
- }
- },
- "node_modules/mz": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "dependencies": {
- "any-promise": "^1.0.0",
- "object-assign": "^4.0.1",
- "thenify-all": "^1.0.0"
- }
- },
- "node_modules/napi-build-utils": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
- "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==",
- "optional": true,
- "peer": true
- },
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true
- },
- "node_modules/negotiator": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
- "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/netmask": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
- "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/node-abi": {
- "version": "2.30.1",
- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz",
- "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "semver": "^5.4.1"
- }
- },
- "node_modules/node-abi/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "optional": true,
- "peer": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/node-addon-api": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz",
- "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==",
- "optional": true,
- "peer": true
- },
- "node_modules/node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/node-gyp": {
- "version": "8.4.1",
- "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz",
- "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "env-paths": "^2.2.0",
- "glob": "^7.1.4",
- "graceful-fs": "^4.2.6",
- "make-fetch-happen": "^9.1.0",
- "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"
- },
- "engines": {
- "node": ">= 10.12.0"
- }
- },
- "node_modules/node-gyp/node_modules/are-we-there-yet": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz",
- "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "delegates": "^1.0.0",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16"
- }
- },
- "node_modules/node-gyp/node_modules/gauge": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz",
- "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==",
- "optional": true,
- "peer": true,
- "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"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/node-gyp/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/node-gyp/node_modules/npmlog": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz",
- "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "are-we-there-yet": "^3.0.0",
- "console-control-strings": "^1.1.0",
- "gauge": "^4.0.3",
- "set-blocking": "^2.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
- }
- },
- "node_modules/node-gyp/node_modules/readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/node-gyp/node_modules/semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/node-gyp/node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/node-gyp/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/node-int64": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
- "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
- "dev": true
- },
- "node_modules/node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
- "dev": true
- },
- "node_modules/nopt": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
- "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "abbrev": "1"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/npmlog": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
- "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "are-we-there-yet": "~1.1.2",
- "console-control-strings": "~1.1.0",
- "gauge": "~2.7.3",
- "set-blocking": "~2.0.0"
- }
- },
- "node_modules/number-is-nan": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/optionator": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
- "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
- "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"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-locate/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-map": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
- "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "aggregate-error": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pac-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==",
- "dependencies": {
- "@tootallnate/once": "1",
- "agent-base": "6",
- "debug": "4",
- "get-uri": "3",
- "http-proxy-agent": "^4.0.1",
- "https-proxy-agent": "5",
- "pac-resolver": "^5.0.0",
- "raw-body": "^2.2.0",
- "socks-proxy-agent": "5"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/pac-proxy-agent/node_modules/debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/pac-proxy-agent/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/pac-resolver": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.0.tgz",
- "integrity": "sha512-H+/A6KitiHNNW+bxBKREk2MCGSxljfqRX76NjummWEYIat7ldVXRU3dhRIE3iXZ0nvGBk6smv3nntxKkzRL8NA==",
- "dependencies": {
- "degenerator": "^3.0.1",
- "ip": "^1.1.5",
- "netmask": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/packet-reader": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz",
- "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==",
- "optional": true,
- "peer": true
- },
- "node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "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"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
- },
- "node_modules/parse5-htmlparser2-tree-adapter": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
- "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
- "dependencies": {
- "parse5": "^6.0.1"
- }
- },
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "node_modules/path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
- },
- "node_modules/pg": {
- "version": "8.7.3",
- "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz",
- "integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "buffer-writer": "2.0.0",
- "packet-reader": "1.0.0",
- "pg-connection-string": "^2.5.0",
- "pg-pool": "^3.5.1",
- "pg-protocol": "^1.5.0",
- "pg-types": "^2.1.0",
- "pgpass": "1.x"
- },
- "engines": {
- "node": ">= 8.0.0"
- },
- "peerDependencies": {
- "pg-native": ">=2.0.0"
- },
- "peerDependenciesMeta": {
- "pg-native": {
- "optional": true
- }
- }
- },
- "node_modules/pg-connection-string": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz",
- "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==",
- "optional": true,
- "peer": true
- },
- "node_modules/pg-int8": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
- "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/pg-pool": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz",
- "integrity": "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==",
- "optional": true,
- "peer": true,
- "peerDependencies": {
- "pg": ">=8.0"
- }
- },
- "node_modules/pg-protocol": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz",
- "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==",
- "optional": true,
- "peer": true
- },
- "node_modules/pg-types": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
- "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "pg-int8": "1.0.1",
- "postgres-array": "~2.0.0",
- "postgres-bytea": "~1.0.0",
- "postgres-date": "~1.0.4",
- "postgres-interval": "^1.1.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/pgpass": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz",
- "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "split2": "^3.1.1"
- }
- },
- "node_modules/picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
- },
- "node_modules/picomatch": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
- "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pirates": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
- "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
- "dependencies": {
- "find-up": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/postgres-array": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
- "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postgres-bytea": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
- "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/postgres-date": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
- "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/postgres-interval": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
- "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "xtend": "^4.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/prebuild-install": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz",
- "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "detect-libc": "^1.0.3",
- "expand-template": "^2.0.3",
- "github-from-package": "0.0.0",
- "minimist": "^1.2.3",
- "mkdirp-classic": "^0.5.3",
- "napi-build-utils": "^1.0.1",
- "node-abi": "^2.21.0",
- "npmlog": "^4.0.1",
- "pump": "^3.0.0",
- "rc": "^1.2.7",
- "simple-get": "^3.0.3",
- "tar-fs": "^2.0.0",
- "tunnel-agent": "^0.6.0"
- },
- "bin": {
- "prebuild-install": "bin.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/prelude-ls": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/pretty-format": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz",
- "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==",
- "dev": true,
- "dependencies": {
- "@jest/schemas": "^28.1.3",
- "ansi-regex": "^5.0.1",
- "ansi-styles": "^5.0.0",
- "react-is": "^18.0.0"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
- }
- },
- "node_modules/pretty-format/node_modules/ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
- },
- "node_modules/promise-inflight": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
- "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
- "optional": true,
- "peer": true
- },
- "node_modules/promise-retry": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
- "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "err-code": "^2.0.2",
- "retry": "^0.12.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/prompts": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
- "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
- "dev": true,
- "dependencies": {
- "kleur": "^3.0.3",
- "sisteransi": "^1.0.5"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz",
- "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==",
- "dependencies": {
- "agent-base": "^6.0.0",
- "debug": "4",
- "http-proxy-agent": "^4.0.0",
- "https-proxy-agent": "^5.0.0",
- "lru-cache": "^5.1.1",
- "pac-proxy-agent": "^5.0.0",
- "proxy-from-env": "^1.0.0",
- "socks-proxy-agent": "^5.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/proxy-agent/node_modules/debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/proxy-agent/node_modules/lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "dependencies": {
- "yallist": "^3.0.2"
- }
- },
- "node_modules/proxy-agent/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/proxy-agent/node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
- },
- "node_modules/proxy-from-env": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
- },
- "node_modules/pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "node_modules/qs": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
- "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/querystringify": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
- "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
- },
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
- "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
- "dependencies": {
- "bytes": "3.1.0",
- "http-errors": "1.7.2",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/rc": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
- "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "deep-extend": "^0.6.0",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
- },
- "bin": {
- "rc": "cli.js"
- }
- },
- "node_modules/react-is": {
- "version": "18.2.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
- "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
- "dev": true
- },
- "node_modules/readable-stream": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
- "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
- }
- },
- "node_modules/reflect-metadata": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
- "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg=="
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/requires-port": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
- },
- "node_modules/resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
- "dev": true,
- "dependencies": {
- "is-core-module": "^2.9.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-cwd": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
- "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
- "dev": true,
- "dependencies": {
- "resolve-from": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/resolve.exports": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz",
- "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/retry": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
- "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "devOptional": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "node_modules/sax": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
- },
- "node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "devOptional": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/send": {
- "version": "0.17.1",
- "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
- "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "destroy": "~1.0.4",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "~1.7.2",
- "mime": "1.6.0",
- "ms": "2.1.1",
- "on-finished": "~2.3.0",
- "range-parser": "~1.2.1",
- "statuses": "~1.5.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/send/node_modules/ms": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
- },
- "node_modules/serve-static": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
- "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
- "dependencies": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.17.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
- "optional": true,
- "peer": true
- },
- "node_modules/setprototypeof": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
- "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
- },
- "node_modules/sha.js": {
- "version": "2.4.11",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
- "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
- "dependencies": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- },
- "bin": {
- "sha.js": "bin.js"
- }
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "devOptional": true
- },
- "node_modules/simple-concat": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
- "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "optional": true,
- "peer": true
- },
- "node_modules/simple-get": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz",
- "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "decompress-response": "^4.2.0",
- "once": "^1.3.1",
- "simple-concat": "^1.0.0"
- }
- },
- "node_modules/sisteransi": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
- "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
- "dev": true
- },
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/smart-buffer": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
- "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
- "engines": {
- "node": ">= 6.0.0",
- "npm": ">= 3.0.0"
- }
- },
- "node_modules/socks": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz",
- "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==",
- "dependencies": {
- "ip": "^1.1.5",
- "smart-buffer": "^4.2.0"
- },
- "engines": {
- "node": ">= 10.13.0",
- "npm": ">= 3.0.0"
- }
- },
- "node_modules/socks-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==",
- "dependencies": {
- "agent-base": "^6.0.2",
- "debug": "4",
- "socks": "^2.3.3"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/socks-proxy-agent/node_modules/debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/socks-proxy-agent/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "devOptional": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-support": {
- "version": "0.5.13",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
- "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
- "dev": true,
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/split2": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
- "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "readable-stream": "^3.0.0"
- }
- },
- "node_modules/split2/node_modules/readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/split2/node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
- },
- "node_modules/sqlite3": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.8.tgz",
- "integrity": "sha512-f2ACsbSyb2D1qFFcqIXPfFscLtPVOWJr5GmUzYxf4W+0qelu5MWrR+FAQE1d5IUArEltBrzSDxDORG8P/IkqyQ==",
- "hasInstallScript": true,
- "optional": true,
- "peer": true,
- "dependencies": {
- "@mapbox/node-pre-gyp": "^1.0.0",
- "node-addon-api": "^4.2.0",
- "tar": "^6.1.11"
- },
- "optionalDependencies": {
- "node-gyp": "8.x"
- },
- "peerDependencies": {
- "node-gyp": "8.x"
- },
- "peerDependenciesMeta": {
- "node-gyp": {
- "optional": true
- }
- }
- },
- "node_modules/ssri": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
- "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "minipass": "^3.1.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/stack-utils": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz",
- "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==",
- "dev": true,
- "dependencies": {
- "escape-string-regexp": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/streamsearch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
- },
- "node_modules/string-length": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
- "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
- "dev": true,
- "dependencies": {
- "char-regex": "^1.0.2",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "optional": true,
- "peer": true,
- "dependencies": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/string-width/node_modules/ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/string-width/node_modules/strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "optional": true,
- "peer": true,
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-hyperlinks": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz",
- "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0",
- "supports-color": "^7.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/tar": {
- "version": "6.1.11",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
- "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
- "optional": true,
- "peer": true,
- "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"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/tar-fs": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
- "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "chownr": "^1.1.1",
- "mkdirp-classic": "^0.5.2",
- "pump": "^3.0.0",
- "tar-stream": "^2.1.4"
- }
- },
- "node_modules/tar-stream": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
- "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "bl": "^4.0.3",
- "end-of-stream": "^1.4.1",
- "fs-constants": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.1.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tar-stream/node_modules/readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/tar-stream/node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/tar/node_modules/chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
- "optional": true,
- "peer": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/tar/node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "optional": true,
- "peer": true,
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/terminal-link": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz",
- "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==",
- "dev": true,
- "dependencies": {
- "ansi-escapes": "^4.2.1",
- "supports-hyperlinks": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/test-exclude": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
- "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
- "dev": true,
- "dependencies": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^7.1.4",
- "minimatch": "^3.0.4"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/thenify": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "dependencies": {
- "any-promise": "^1.0.0"
- }
- },
- "node_modules/thenify-all": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
- "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=",
- "dependencies": {
- "thenify": ">= 3.1.0 < 4"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/tmpl": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
- "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
- "dev": true
- },
- "node_modules/to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/toidentifier": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
- "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
- },
- "node_modules/ts-node": {
- "version": "10.9.1",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
- "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
- "devOptional": true,
- "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"
- },
- "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"
- },
- "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
- }
- }
- },
- "node_modules/ts-node/node_modules/acorn-walk": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
- "devOptional": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- },
- "node_modules/tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
- "optional": true,
- "peer": true,
- "dependencies": {
- "safe-buffer": "^5.0.1"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/type-check": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
- "dependencies": {
- "prelude-ls": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
- },
- "node_modules/typeorm": {
- "version": "0.3.7",
- "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz",
- "integrity": "sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q==",
- "dependencies": {
- "@sqltools/formatter": "^1.2.2",
- "app-root-path": "^3.0.0",
- "buffer": "^6.0.3",
- "chalk": "^4.1.0",
- "cli-highlight": "^2.1.11",
- "date-fns": "^2.28.0",
- "debug": "^4.3.3",
- "dotenv": "^16.0.0",
- "glob": "^7.2.0",
- "js-yaml": "^4.1.0",
- "mkdirp": "^1.0.4",
- "reflect-metadata": "^0.1.13",
- "sha.js": "^2.4.11",
- "tslib": "^2.3.1",
- "uuid": "^8.3.2",
- "xml2js": "^0.4.23",
- "yargs": "^17.3.1"
- },
- "bin": {
- "typeorm": "cli.js",
- "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js",
- "typeorm-ts-node-esm": "cli-ts-node-esm.js"
- },
- "engines": {
- "node": ">= 12.9.0"
- },
- "funding": {
- "url": "https://opencollective.com/typeorm"
- },
- "peerDependencies": {
- "@google-cloud/spanner": "^5.18.0",
- "@sap/hana-client": "^2.12.25",
- "better-sqlite3": "^7.1.2",
- "hdb-pool": "^0.1.6",
- "ioredis": "^5.0.4",
- "mongodb": "^3.6.0",
- "mssql": "^7.3.0",
- "mysql2": "^2.2.5",
- "oracledb": "^5.1.0",
- "pg": "^8.5.1",
- "pg-native": "^3.0.0",
- "pg-query-stream": "^4.0.0",
- "redis": "^3.1.1 || ^4.0.0",
- "sql.js": "^1.4.0",
- "sqlite3": "^5.0.3",
- "ts-node": "^10.7.0",
- "typeorm-aurora-data-api-driver": "^2.0.0"
- },
- "peerDependenciesMeta": {
- "@google-cloud/spanner": {
- "optional": true
- },
- "@sap/hana-client": {
- "optional": true
- },
- "better-sqlite3": {
- "optional": true
- },
- "hdb-pool": {
- "optional": true
- },
- "ioredis": {
- "optional": true
- },
- "mongodb": {
- "optional": true
- },
- "mssql": {
- "optional": true
- },
- "mysql2": {
- "optional": true
- },
- "oracledb": {
- "optional": true
- },
- "pg": {
- "optional": true
- },
- "pg-native": {
- "optional": true
- },
- "pg-query-stream": {
- "optional": true
- },
- "redis": {
- "optional": true
- },
- "sql.js": {
- "optional": true
- },
- "sqlite3": {
- "optional": true
- },
- "ts-node": {
- "optional": true
- },
- "typeorm-aurora-data-api-driver": {
- "optional": true
- }
- }
- },
- "node_modules/typeorm/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "node_modules/typeorm/node_modules/buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
- }
- },
- "node_modules/typeorm/node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/typeorm/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/typeorm/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/typeorm/node_modules/mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "bin": {
- "mkdirp": "bin/cmd.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/typeorm/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/typeorm/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "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"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/typeorm/node_modules/yargs": {
- "version": "17.5.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz",
- "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==",
- "dependencies": {
- "cliui": "^7.0.2",
- "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.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/typeorm/node_modules/yargs-parser": {
- "version": "21.0.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz",
- "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/typescript": {
- "version": "4.7.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
- "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=4.2.0"
- }
- },
- "node_modules/unique-filename": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
- "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "unique-slug": "^2.0.0"
- }
- },
- "node_modules/unique-slug": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
- "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "imurmurhash": "^0.1.4"
- }
- },
- "node_modules/universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/update-browserslist-db": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz",
- "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- }
- ],
- "dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- },
- "bin": {
- "browserslist-lint": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/url-parse": {
- "version": "1.5.10",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
- "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
- "dependencies": {
- "querystringify": "^2.1.1",
- "requires-port": "^1.0.0"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/v8-compile-cache-lib": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
- "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
- "devOptional": true
- },
- "node_modules/v8-to-istanbul": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz",
- "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==",
- "dev": true,
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.12",
- "@types/istanbul-lib-coverage": "^2.0.1",
- "convert-source-map": "^1.6.0"
- },
- "engines": {
- "node": ">=10.12.0"
- }
- },
- "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
- "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
- "dev": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/vm2": {
- "version": "3.9.7",
- "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.7.tgz",
- "integrity": "sha512-g/GZ7V0Mlmch3eDVOATvAXr1GsJNg6kQ5PjvYy3HbJMCRn5slNbo/u73Uy7r5yUej1cRa3ZjtoVwcWSQuQ/fow==",
- "dependencies": {
- "acorn": "^8.7.0",
- "acorn-walk": "^8.2.0"
- },
- "bin": {
- "vm2": "bin/vm2"
- },
- "engines": {
- "node": ">=6.0"
- }
- },
- "node_modules/vm2/node_modules/acorn-walk": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/walker": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
- "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
- "dev": true,
- "dependencies": {
- "makeerror": "1.0.12"
- }
- },
- "node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
- },
- "node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "devOptional": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/wide-align": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
- "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
- "optional": true,
- "peer": true,
- "dependencies": {
- "string-width": "^1.0.2 || 2 || 3 || 4"
- }
- },
- "node_modules/word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi/node_modules/string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
- },
- "node_modules/write-file-atomic": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz",
- "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==",
- "dev": true,
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16"
- }
- },
- "node_modules/xml2js": {
- "version": "0.4.23",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
- "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
- "dependencies": {
- "sax": ">=0.6.0",
- "xmlbuilder": "~11.0.0"
- },
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/xmlbuilder": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
- "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/xregexp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz",
- "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "engines": {
- "node": ">=0.4"
- }
- },
- "node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "devOptional": true
- },
- "node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "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"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yargs/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yargs/node_modules/string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yn": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
- "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
- "devOptional": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- }
- },
- "dependencies": {
- "@ampproject/remapping": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
- "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
- "dev": true,
- "requires": {
- "@jridgewell/gen-mapping": "^0.1.0",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- },
- "@babel/code-frame": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.18.6"
- }
- },
- "@babel/compat-data": {
- "version": "7.18.8",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz",
- "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==",
- "dev": true
- },
- "@babel/core": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz",
- "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==",
- "dev": true,
- "requires": {
- "@ampproject/remapping": "^2.1.0",
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.18.9",
- "@babel/helper-compilation-targets": "^7.18.9",
- "@babel/helper-module-transforms": "^7.18.9",
- "@babel/helpers": "^7.18.9",
- "@babel/parser": "^7.18.9",
- "@babel/template": "^7.18.6",
- "@babel/traverse": "^7.18.9",
- "@babel/types": "^7.18.9",
- "convert-source-map": "^1.7.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.1",
- "semver": "^6.3.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
- }
- },
- "@babel/generator": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz",
- "integrity": "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.9",
- "@jridgewell/gen-mapping": "^0.3.2",
- "jsesc": "^2.5.1"
- },
- "dependencies": {
- "@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
- "dev": true,
- "requires": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- }
- }
- },
- "@babel/helper-compilation-targets": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz",
- "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==",
- "dev": true,
- "requires": {
- "@babel/compat-data": "^7.18.8",
- "@babel/helper-validator-option": "^7.18.6",
- "browserslist": "^4.20.2",
- "semver": "^6.3.0"
- }
- },
- "@babel/helper-environment-visitor": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
- "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
- "dev": true
- },
- "@babel/helper-function-name": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz",
- "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==",
- "dev": true,
- "requires": {
- "@babel/template": "^7.18.6",
- "@babel/types": "^7.18.9"
- }
- },
- "@babel/helper-hoist-variables": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
- "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-module-imports": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
- "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-module-transforms": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz",
- "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==",
- "dev": true,
- "requires": {
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-simple-access": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/helper-validator-identifier": "^7.18.6",
- "@babel/template": "^7.18.6",
- "@babel/traverse": "^7.18.9",
- "@babel/types": "^7.18.9"
- }
- },
- "@babel/helper-plugin-utils": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz",
- "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==",
- "dev": true
- },
- "@babel/helper-simple-access": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz",
- "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-split-export-declaration": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
- "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-validator-identifier": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
- "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
- "dev": true
- },
- "@babel/helper-validator-option": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
- "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
- "dev": true
- },
- "@babel/helpers": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz",
- "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==",
- "dev": true,
- "requires": {
- "@babel/template": "^7.18.6",
- "@babel/traverse": "^7.18.9",
- "@babel/types": "^7.18.9"
- }
- },
- "@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
- }
- },
- "@babel/parser": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz",
- "integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==",
- "dev": true
- },
- "@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-bigint": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
- "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-class-properties": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.12.13"
- }
- },
- "@babel/plugin-syntax-import-meta": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
- "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "@babel/plugin-syntax-json-strings": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "@babel/plugin-syntax-nullish-coalescing-operator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-optional-catch-binding": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-optional-chaining": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-top-level-await": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-syntax-typescript": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz",
- "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
- }
- },
- "@babel/template": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz",
- "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.18.6",
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/traverse": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz",
- "integrity": "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.18.9",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.18.9",
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.18.9",
- "@babel/types": "^7.18.9",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
- }
- },
- "@babel/types": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz",
- "integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "to-fast-properties": "^2.0.0"
- }
- },
- "@bcoe/v8-coverage": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
- "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
- "dev": true
- },
- "@cspotcode/source-map-support": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
- "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
- "devOptional": true,
- "requires": {
- "@jridgewell/trace-mapping": "0.3.9"
- }
- },
- "@gar/promisify": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
- "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
- "optional": true,
- "peer": true
- },
- "@istanbuljs/load-nyc-config": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
- "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
- "dev": true,
- "requires": {
- "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": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
- "dev": true
- },
- "@jest/console": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz",
- "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==",
- "dev": true,
- "requires": {
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "jest-message-util": "^28.1.3",
- "jest-util": "^28.1.3",
- "slash": "^3.0.0"
- }
- },
- "@jest/core": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz",
- "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==",
- "dev": true,
- "requires": {
- "@jest/console": "^28.1.3",
- "@jest/reporters": "^28.1.3",
- "@jest/test-result": "^28.1.3",
- "@jest/transform": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "jest-changed-files": "^28.1.3",
- "jest-config": "^28.1.3",
- "jest-haste-map": "^28.1.3",
- "jest-message-util": "^28.1.3",
- "jest-regex-util": "^28.0.2",
- "jest-resolve": "^28.1.3",
- "jest-resolve-dependencies": "^28.1.3",
- "jest-runner": "^28.1.3",
- "jest-runtime": "^28.1.3",
- "jest-snapshot": "^28.1.3",
- "jest-util": "^28.1.3",
- "jest-validate": "^28.1.3",
- "jest-watcher": "^28.1.3",
- "micromatch": "^4.0.4",
- "pretty-format": "^28.1.3",
- "rimraf": "^3.0.0",
- "slash": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "@jest/environment": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz",
- "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==",
- "dev": true,
- "requires": {
- "@jest/fake-timers": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "jest-mock": "^28.1.3"
- }
- },
- "@jest/expect": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz",
- "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==",
- "dev": true,
- "requires": {
- "expect": "^28.1.3",
- "jest-snapshot": "^28.1.3"
- }
- },
- "@jest/expect-utils": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz",
- "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==",
- "dev": true,
- "requires": {
- "jest-get-type": "^28.0.2"
- }
- },
- "@jest/fake-timers": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz",
- "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==",
- "dev": true,
- "requires": {
- "@jest/types": "^28.1.3",
- "@sinonjs/fake-timers": "^9.1.2",
- "@types/node": "*",
- "jest-message-util": "^28.1.3",
- "jest-mock": "^28.1.3",
- "jest-util": "^28.1.3"
- }
- },
- "@jest/globals": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz",
- "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==",
- "dev": true,
- "requires": {
- "@jest/environment": "^28.1.3",
- "@jest/expect": "^28.1.3",
- "@jest/types": "^28.1.3"
- }
- },
- "@jest/reporters": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz",
- "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==",
- "dev": true,
- "requires": {
- "@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "^28.1.3",
- "@jest/test-result": "^28.1.3",
- "@jest/transform": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@jridgewell/trace-mapping": "^0.3.13",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "collect-v8-coverage": "^1.0.0",
- "exit": "^0.1.2",
- "glob": "^7.1.3",
- "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-message-util": "^28.1.3",
- "jest-util": "^28.1.3",
- "jest-worker": "^28.1.3",
- "slash": "^3.0.0",
- "string-length": "^4.0.1",
- "strip-ansi": "^6.0.0",
- "terminal-link": "^2.0.0",
- "v8-to-istanbul": "^9.0.1"
- },
- "dependencies": {
- "@jridgewell/trace-mapping": {
- "version": "0.3.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
- "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
- "dev": true,
- "requires": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- }
- }
- },
- "@jest/schemas": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz",
- "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==",
- "dev": true,
- "requires": {
- "@sinclair/typebox": "^0.24.1"
- }
- },
- "@jest/source-map": {
- "version": "28.1.2",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz",
- "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==",
- "dev": true,
- "requires": {
- "@jridgewell/trace-mapping": "^0.3.13",
- "callsites": "^3.0.0",
- "graceful-fs": "^4.2.9"
- },
- "dependencies": {
- "@jridgewell/trace-mapping": {
- "version": "0.3.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
- "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
- "dev": true,
- "requires": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- }
- }
- },
- "@jest/test-result": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz",
- "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==",
- "dev": true,
- "requires": {
- "@jest/console": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "collect-v8-coverage": "^1.0.0"
- }
- },
- "@jest/test-sequencer": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz",
- "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==",
- "dev": true,
- "requires": {
- "@jest/test-result": "^28.1.3",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^28.1.3",
- "slash": "^3.0.0"
- }
- },
- "@jest/transform": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz",
- "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==",
- "dev": true,
- "requires": {
- "@babel/core": "^7.11.6",
- "@jest/types": "^28.1.3",
- "@jridgewell/trace-mapping": "^0.3.13",
- "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": "^28.1.3",
- "jest-regex-util": "^28.0.2",
- "jest-util": "^28.1.3",
- "micromatch": "^4.0.4",
- "pirates": "^4.0.4",
- "slash": "^3.0.0",
- "write-file-atomic": "^4.0.1"
- },
- "dependencies": {
- "@jridgewell/trace-mapping": {
- "version": "0.3.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
- "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
- "dev": true,
- "requires": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- }
- }
- },
- "@jest/types": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz",
- "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==",
- "dev": true,
- "requires": {
- "@jest/schemas": "^28.1.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
- "@types/node": "*",
- "@types/yargs": "^17.0.8",
- "chalk": "^4.0.0"
- }
- },
- "@jridgewell/gen-mapping": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
- "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
- "dev": true,
- "requires": {
- "@jridgewell/set-array": "^1.0.0",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
- "@jridgewell/resolve-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
- "devOptional": true
- },
- "@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
- "dev": true
- },
- "@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
- "devOptional": true
- },
- "@jridgewell/trace-mapping": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
- "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
- "devOptional": true,
- "requires": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
- "@mapbox/node-pre-gyp": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz",
- "integrity": "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==",
- "optional": true,
- "peer": true,
- "requires": {
- "detect-libc": "^2.0.0",
- "https-proxy-agent": "^5.0.0",
- "make-dir": "^3.1.0",
- "node-fetch": "^2.6.7",
- "nopt": "^5.0.0",
- "npmlog": "^5.0.1",
- "rimraf": "^3.0.2",
- "semver": "^7.3.5",
- "tar": "^6.1.11"
- },
- "dependencies": {
- "are-we-there-yet": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
- "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
- "optional": true,
- "peer": true,
- "requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^3.6.0"
- }
- },
- "detect-libc": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz",
- "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==",
- "optional": true,
- "peer": true
- },
- "gauge": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
- "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
- "optional": true,
- "peer": true,
- "requires": {
- "aproba": "^1.0.3 || ^2.0.0",
- "color-support": "^1.1.2",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.1",
- "object-assign": "^4.1.1",
- "signal-exit": "^3.0.0",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "wide-align": "^1.1.2"
- }
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "optional": true,
- "peer": true
- },
- "npmlog": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
- "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
- "optional": true,
- "peer": true,
- "requires": {
- "are-we-there-yet": "^2.0.0",
- "console-control-strings": "^1.1.0",
- "gauge": "^3.0.0",
- "set-blocking": "^2.0.0"
- }
- },
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "optional": true,
- "peer": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- },
- "semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
- "optional": true,
- "peer": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
- "string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "optional": true,
- "peer": true,
- "requires": {
- "safe-buffer": "~5.2.0"
- }
- },
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "optional": true,
- "peer": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- }
- }
- },
- "@npmcli/fs": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz",
- "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
- "optional": true,
- "peer": true,
- "requires": {
- "@gar/promisify": "^1.0.1",
- "semver": "^7.3.5"
- },
- "dependencies": {
- "semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
- "optional": true,
- "peer": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- }
- }
- },
- "@npmcli/move-file": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
- "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
- "optional": true,
- "peer": true,
- "requires": {
- "mkdirp": "^1.0.4",
- "rimraf": "^3.0.2"
- },
- "dependencies": {
- "mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "optional": true,
- "peer": true
- }
- }
- },
- "@sinclair/typebox": {
- "version": "0.24.20",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.20.tgz",
- "integrity": "sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ==",
- "dev": true
- },
- "@sinonjs/commons": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz",
- "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==",
- "dev": true,
- "requires": {
- "type-detect": "4.0.8"
- }
- },
- "@sinonjs/fake-timers": {
- "version": "9.1.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz",
- "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==",
- "dev": true,
- "requires": {
- "@sinonjs/commons": "^1.7.0"
- }
- },
- "@sqltools/formatter": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.3.tgz",
- "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg=="
- },
- "@tootallnate/once": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
- "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw=="
- },
- "@tsconfig/node10": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
- "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==",
- "devOptional": true
- },
- "@tsconfig/node12": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz",
- "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==",
- "devOptional": true
- },
- "@tsconfig/node14": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz",
- "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==",
- "devOptional": true
- },
- "@tsconfig/node16": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
- "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
- "devOptional": true
- },
- "@types/amqplib": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.8.2.tgz",
- "integrity": "sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA==",
- "dev": true,
- "requires": {
- "@types/bluebird": "*",
- "@types/node": "*"
- }
- },
- "@types/babel__core": {
- "version": "7.1.19",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz",
- "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==",
- "dev": true,
- "requires": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0",
- "@types/babel__generator": "*",
- "@types/babel__template": "*",
- "@types/babel__traverse": "*"
- }
- },
- "@types/babel__generator": {
- "version": "7.6.4",
- "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz",
- "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.0.0"
- }
- },
- "@types/babel__template": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz",
- "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==",
- "dev": true,
- "requires": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0"
- }
- },
- "@types/babel__traverse": {
- "version": "7.17.1",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz",
- "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.3.0"
- }
- },
- "@types/bluebird": {
- "version": "3.5.36",
- "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz",
- "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==",
- "dev": true
- },
- "@types/body-parser": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz",
- "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==",
- "dev": true,
- "requires": {
- "@types/connect": "*",
- "@types/node": "*"
- }
- },
- "@types/connect": {
- "version": "3.4.35",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
- "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/express": {
- "version": "4.17.13",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz",
- "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==",
- "dev": true,
- "requires": {
- "@types/body-parser": "*",
- "@types/express-serve-static-core": "^4.17.18",
- "@types/qs": "*",
- "@types/serve-static": "*"
- }
- },
- "@types/express-serve-static-core": {
- "version": "4.17.24",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz",
- "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==",
- "dev": true,
- "requires": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*"
- }
- },
- "@types/graceful-fs": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz",
- "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/istanbul-lib-coverage": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
- "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==",
- "dev": true
- },
- "@types/istanbul-lib-report": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
- "dev": true,
- "requires": {
- "@types/istanbul-lib-coverage": "*"
- }
- },
- "@types/istanbul-reports": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
- "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
- "dev": true,
- "requires": {
- "@types/istanbul-lib-report": "*"
- }
- },
- "@types/jsonwebtoken": {
- "version": "8.5.8",
- "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz",
- "integrity": "sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
- "@types/mime": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz",
- "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==",
- "dev": true
- },
- "@types/multer": {
- "version": "1.4.7",
- "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz",
- "integrity": "sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==",
- "dev": true,
- "requires": {
- "@types/express": "*"
- }
- },
- "@types/node": {
- "version": "18.0.6",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz",
- "integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw=="
- },
- "@types/node-fetch": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz",
- "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==",
- "requires": {
- "@types/node": "*",
- "form-data": "^3.0.0"
- },
- "dependencies": {
- "form-data": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
- "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- }
- }
- }
- },
- "@types/prettier": {
- "version": "2.6.3",
- "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz",
- "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==",
- "dev": true
- },
- "@types/qs": {
- "version": "6.9.7",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
- "dev": true
- },
- "@types/range-parser": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
- "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==",
- "dev": true
- },
- "@types/serve-static": {
- "version": "1.13.10",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz",
- "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==",
- "dev": true,
- "requires": {
- "@types/mime": "^1",
- "@types/node": "*"
- }
- },
- "@types/stack-utils": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
- "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==",
- "dev": true
- },
- "@types/yargs": {
- "version": "17.0.10",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz",
- "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==",
- "dev": true,
- "requires": {
- "@types/yargs-parser": "*"
- }
- },
- "@types/yargs-parser": {
- "version": "21.0.0",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz",
- "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==",
- "dev": true
- },
- "abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
- "optional": true,
- "peer": true
- },
- "accepts": {
- "version": "1.3.7",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
- "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
- "requires": {
- "mime-types": "~2.1.24",
- "negotiator": "0.6.2"
- }
- },
- "acorn": {
- "version": "8.7.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz",
- "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ=="
- },
- "agent-base": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
- "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
- "requires": {
- "debug": "4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
- }
- },
- "agentkeepalive": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz",
- "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==",
- "optional": true,
- "peer": true,
- "requires": {
- "debug": "^4.1.0",
- "depd": "^1.1.2",
- "humanize-ms": "^1.2.1"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "optional": true,
- "peer": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "optional": true,
- "peer": true
- }
- }
- },
- "aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
- "optional": true,
- "peer": true,
- "requires": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
- }
- },
- "amqplib": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.10.0.tgz",
- "integrity": "sha512-UueEnRGY6upiSvGsSYM22Woa1SeSukqYtqgYW4Gj8gHvbf5BRhhYRqf3kQ8aSUYYffTOZi6SeOVW2eOXt0hpPA==",
- "requires": {
- "bitsyntax": "~0.1.0",
- "buffer-more-ints": "~1.0.0",
- "readable-stream": "1.x >=1.1.9",
- "url-parse": "~1.5.10"
- }
- },
- "ansi-escapes": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
- "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
- "dev": true,
- "requires": {
- "type-fest": "^0.21.3"
- }
- },
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "any-promise": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8="
- },
- "anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "dev": true,
- "requires": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- }
- },
- "app-root-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz",
- "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw=="
- },
- "append-field": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
- "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY="
- },
- "aproba": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
- "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
- "optional": true,
- "peer": true
- },
- "are-we-there-yet": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
- "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
- "optional": true,
- "peer": true,
- "requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^2.0.6"
- },
- "dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "optional": true,
- "peer": true
- },
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "optional": true,
- "peer": true,
- "requires": {
- "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"
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "optional": true,
- "peer": true
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "optional": true,
- "peer": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
- "arg": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
- "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "devOptional": true
- },
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "requires": {
- "sprintf-js": "~1.0.2"
- }
- },
- "array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
- },
- "ast-types": {
- "version": "0.13.4",
- "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz",
- "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==",
- "requires": {
- "tslib": "^2.0.1"
- }
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
- },
- "babel-jest": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz",
- "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==",
- "dev": true,
- "requires": {
- "@jest/transform": "^28.1.3",
- "@types/babel__core": "^7.1.14",
- "babel-plugin-istanbul": "^6.1.1",
- "babel-preset-jest": "^28.1.3",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "slash": "^3.0.0"
- }
- },
- "babel-plugin-istanbul": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
- "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
- "dev": true,
- "requires": {
- "@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"
- }
- },
- "babel-plugin-jest-hoist": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz",
- "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==",
- "dev": true,
- "requires": {
- "@babel/template": "^7.3.3",
- "@babel/types": "^7.3.3",
- "@types/babel__core": "^7.1.14",
- "@types/babel__traverse": "^7.0.6"
- }
- },
- "babel-preset-current-node-syntax": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz",
- "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==",
- "dev": true,
- "requires": {
- "@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"
- }
- },
- "babel-preset-jest": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz",
- "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==",
- "dev": true,
- "requires": {
- "babel-plugin-jest-hoist": "^28.1.3",
- "babel-preset-current-node-syntax": "^1.0.0"
- }
- },
- "balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
- },
- "better-sqlite3": {
- "version": "7.4.3",
- "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.4.3.tgz",
- "integrity": "sha512-07bKjClZg/f4KMVRkzWtoIvazVPcF1gsvVKVIXlxwleC2DxuIhnra3KCMlUT1rFeRYXXckot2a46UciF2d9KLw==",
- "optional": true,
- "peer": true,
- "requires": {
- "bindings": "^1.5.0",
- "prebuild-install": "^6.0.1",
- "tar": "^6.1.0"
- }
- },
- "bindings": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
- "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
- "optional": true,
- "peer": true,
- "requires": {
- "file-uri-to-path": "1.0.0"
- }
- },
- "bitsyntax": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.1.0.tgz",
- "integrity": "sha512-ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q==",
- "requires": {
- "buffer-more-ints": "~1.0.0",
- "debug": "~2.6.9",
- "safe-buffer": "~5.1.2"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- }
- }
- },
- "bl": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
- "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
- "optional": true,
- "peer": true,
- "requires": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "optional": true,
- "peer": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- },
- "string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "optional": true,
- "peer": true,
- "requires": {
- "safe-buffer": "~5.2.0"
- }
- }
- }
- },
- "body-parser": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
- "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
- "requires": {
- "bytes": "3.1.0",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "1.7.2",
- "iconv-lite": "0.4.24",
- "on-finished": "~2.3.0",
- "qs": "6.7.0",
- "raw-body": "2.4.0",
- "type-is": "~1.6.17"
- }
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "browserslist": {
- "version": "4.21.2",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.2.tgz",
- "integrity": "sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA==",
- "dev": true,
- "requires": {
- "caniuse-lite": "^1.0.30001366",
- "electron-to-chromium": "^1.4.188",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.4"
- }
- },
- "bser": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
- "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
- "dev": true,
- "requires": {
- "node-int64": "^0.4.0"
- }
- },
- "buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "optional": true,
- "peer": true,
- "requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "buffer-equal-constant-time": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
- "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
- },
- "buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
- },
- "buffer-more-ints": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-1.0.0.tgz",
- "integrity": "sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg=="
- },
- "buffer-writer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz",
- "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==",
- "optional": true,
- "peer": true
- },
- "busboy": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
- "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
- "requires": {
- "streamsearch": "^1.1.0"
- }
- },
- "bytes": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
- "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
- },
- "cacache": {
- "version": "15.3.0",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
- "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
- "optional": true,
- "peer": true,
- "requires": {
- "@npmcli/fs": "^1.0.0",
- "@npmcli/move-file": "^1.0.1",
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "glob": "^7.1.4",
- "infer-owner": "^1.0.4",
- "lru-cache": "^6.0.0",
- "minipass": "^3.1.1",
- "minipass-collect": "^1.0.2",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.2",
- "mkdirp": "^1.0.3",
- "p-map": "^4.0.0",
- "promise-inflight": "^1.0.1",
- "rimraf": "^3.0.2",
- "ssri": "^8.0.1",
- "tar": "^6.0.2",
- "unique-filename": "^1.1.1"
- },
- "dependencies": {
- "chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
- "optional": true,
- "peer": true
- },
- "mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "optional": true,
- "peer": true
- }
- }
- },
- "callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true
- },
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true
- },
- "caniuse-lite": {
- "version": "1.0.30001367",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001367.tgz",
- "integrity": "sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw==",
- "dev": true
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "char-regex": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
- "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
- "dev": true
- },
- "chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
- "optional": true,
- "peer": true
- },
- "ci-info": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz",
- "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==",
- "dev": true
- },
- "cjs-module-lexer": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz",
- "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==",
- "dev": true
- },
- "clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "optional": true,
- "peer": true
- },
- "cli-highlight": {
- "version": "2.1.11",
- "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz",
- "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==",
- "requires": {
- "chalk": "^4.0.0",
- "highlight.js": "^10.7.1",
- "mz": "^2.4.0",
- "parse5": "^5.1.1",
- "parse5-htmlparser2-tree-adapter": "^6.0.0",
- "yargs": "^16.0.0"
- },
- "dependencies": {
- "parse5": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
- "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug=="
- }
- }
- },
- "cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- },
- "dependencies": {
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
- },
- "string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- }
- }
- },
- "co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
- "dev": true
- },
- "code-point-at": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
- "optional": true,
- "peer": true
- },
- "collect-v8-coverage": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz",
- "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==",
- "dev": true
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "color-support": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
- "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
- "optional": true,
- "peer": true
- },
- "combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "requires": {
- "delayed-stream": "~1.0.0"
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
- "requires": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
- },
- "dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "requires": {
- "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"
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
- "console-control-strings": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
- "optional": true,
- "peer": true
- },
- "content-disposition": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
- "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
- "requires": {
- "safe-buffer": "5.1.2"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- }
- }
- },
- "content-type": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
- "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
- },
- "convert-source-map": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
- "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.1"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "dev": true
- }
- }
- },
- "cookie": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
- "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
- },
- "cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
- },
- "core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
- },
- "create-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "devOptional": true
- },
- "cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "data-uri-to-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz",
- "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og=="
- },
- "date-fns": {
- "version": "2.28.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz",
- "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw=="
- },
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "decompress-response": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
- "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
- "optional": true,
- "peer": true,
- "requires": {
- "mimic-response": "^2.0.0"
- }
- },
- "dedent": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
- "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
- "dev": true
- },
- "deep-extend": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
- "optional": true,
- "peer": true
- },
- "deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
- },
- "deepmerge": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
- "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
- "dev": true
- },
- "degenerator": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.1.tgz",
- "integrity": "sha512-LFsIFEeLPlKvAKXu7j3ssIG6RT0TbI7/GhsqrI0DnHASEQjXQ0LUSYcjJteGgRGmZbl1TnMSxpNQIAiJ7Du5TQ==",
- "requires": {
- "ast-types": "^0.13.2",
- "escodegen": "^1.8.1",
- "esprima": "^4.0.0",
- "vm2": "^3.9.3"
- },
- "dependencies": {
- "escodegen": {
- "version": "1.14.3",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
- "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
- "requires": {
- "esprima": "^4.0.1",
- "estraverse": "^4.2.0",
- "esutils": "^2.0.2",
- "optionator": "^0.8.1",
- "source-map": "~0.6.1"
- }
- },
- "estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
- }
- }
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
- },
- "delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
- "optional": true,
- "peer": true
- },
- "depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
- },
- "destroy": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
- "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
- },
- "detect-libc": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
- "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
- "optional": true,
- "peer": true
- },
- "detect-newline": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
- "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
- "dev": true
- },
- "diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "devOptional": true
- },
- "diff-sequences": {
- "version": "28.1.1",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz",
- "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==",
- "dev": true
- },
- "dotenv": {
- "version": "16.0.1",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz",
- "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ=="
- },
- "ecdsa-sig-formatter": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
- "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
- "ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
- },
- "electron-to-chromium": {
- "version": "1.4.192",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.192.tgz",
- "integrity": "sha512-8nCXyIQY9An88NXAp+PuPy5h3/w5ZY7Iu2lag65Q0XREprcat5F8gKhoHsBUnQcFuCRnmevpR8yEBYRU3d2HDw==",
- "dev": true
- },
- "emittery": {
- "version": "0.10.2",
- "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz",
- "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==",
- "dev": true
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
- },
- "encoding": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
- "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
- "optional": true,
- "peer": true,
- "requires": {
- "iconv-lite": "^0.6.2"
- },
- "dependencies": {
- "iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "optional": true,
- "peer": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- }
- }
- }
- },
- "end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "optional": true,
- "peer": true,
- "requires": {
- "once": "^1.4.0"
- }
- },
- "env-paths": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
- "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
- "optional": true,
- "peer": true
- },
- "err-code": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
- "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
- "optional": true,
- "peer": true
- },
- "error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "requires": {
- "is-arrayish": "^0.2.1"
- }
- },
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
- },
- "escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
- },
- "escape-string-regexp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
- "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
- "dev": true
- },
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
- },
- "esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
- },
- "etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
- },
- "execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
- "requires": {
- "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": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
- "dev": true
- },
- "expand-template": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
- "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
- "optional": true,
- "peer": true
- },
- "expect": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz",
- "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==",
- "dev": true,
- "requires": {
- "@jest/expect-utils": "^28.1.3",
- "jest-get-type": "^28.0.2",
- "jest-matcher-utils": "^28.1.3",
- "jest-message-util": "^28.1.3",
- "jest-util": "^28.1.3"
- }
- },
- "express": {
- "version": "4.17.1",
- "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
- "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
- "requires": {
- "accepts": "~1.3.7",
- "array-flatten": "1.1.1",
- "body-parser": "1.19.0",
- "content-disposition": "0.5.3",
- "content-type": "~1.0.4",
- "cookie": "0.4.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "~1.1.2",
- "fresh": "0.5.2",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.5",
- "qs": "6.7.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.1.2",
- "send": "0.17.1",
- "serve-static": "1.14.1",
- "setprototypeof": "1.1.1",
- "statuses": "~1.5.0",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- }
- }
- },
- "express-async-errors": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/express-async-errors/-/express-async-errors-3.1.1.tgz",
- "integrity": "sha512-h6aK1da4tpqWSbyCa3FxB/V6Ehd4EEB15zyQq9qe75OZBp0krinNKuH4rAY+S/U/2I36vdLAUFSjQJ+TFmODng==",
- "requires": {}
- },
- "fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
- },
- "fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
- },
- "fb-watchman": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz",
- "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==",
- "dev": true,
- "requires": {
- "bser": "2.1.1"
- }
- },
- "file-uri-to-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
- "optional": true,
- "peer": true
- },
- "fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
- "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
- "requires": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "statuses": "~1.5.0",
- "unpipe": "~1.0.0"
- }
- },
- "find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- }
- },
- "forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
- },
- "fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
- },
- "fs-constants": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
- "optional": true,
- "peer": true
- },
- "fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "optional": true,
- "peer": true,
- "requires": {
- "minipass": "^3.0.0"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "optional": true
- },
- "ftp": {
- "version": "0.3.10",
- "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz",
- "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=",
- "requires": {
- "readable-stream": "1.1.x",
- "xregexp": "2.0.0"
- }
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
- },
- "gauge": {
- "version": "2.7.4",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
- "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
- "optional": true,
- "peer": true,
- "requires": {
- "aproba": "^1.0.3",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.0",
- "object-assign": "^4.1.0",
- "signal-exit": "^3.0.0",
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wide-align": "^1.1.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "optional": true,
- "peer": true
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "optional": true,
- "peer": true,
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- }
- }
- },
- "gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true
- },
- "get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
- },
- "get-package-type": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
- "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
- "dev": true
- },
- "get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true
- },
- "get-uri": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz",
- "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==",
- "requires": {
- "@tootallnate/once": "1",
- "data-uri-to-buffer": "3",
- "debug": "4",
- "file-uri-to-path": "2",
- "fs-extra": "^8.1.0",
- "ftp": "^0.3.10"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "file-uri-to-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz",
- "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg=="
- },
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
- }
- },
- "github-from-package": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
- "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=",
- "optional": true,
- "peer": true
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "requires": {
- "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": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true
- },
- "graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
- "optional": true,
- "peer": true
- },
- "helmet": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz",
- "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg=="
- },
- "highlight.js": {
- "version": "10.7.3",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
- "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A=="
- },
- "html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
- },
- "http-cache-semantics": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
- "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
- "optional": true,
- "peer": true
- },
- "http-errors": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
- "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
- "requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.1",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.0"
- },
- "dependencies": {
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
- }
- }
- },
- "http-proxy-agent": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
- "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
- "requires": {
- "@tootallnate/once": "1",
- "agent-base": "6",
- "debug": "4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
- }
- },
- "https-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
- "requires": {
- "agent-base": "6",
- "debug": "4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
- }
- },
- "human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dev": true
- },
- "humanize-ms": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
- "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
- "optional": true,
- "peer": true,
- "requires": {
- "ms": "^2.0.0"
- }
- },
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
- "ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
- },
- "import-local": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz",
- "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==",
- "dev": true,
- "requires": {
- "pkg-dir": "^4.2.0",
- "resolve-cwd": "^3.0.0"
- }
- },
- "imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
- "devOptional": true
- },
- "indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "optional": true,
- "peer": true
- },
- "infer-owner": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
- "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
- "optional": true,
- "peer": true
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "optional": true,
- "peer": true
- },
- "ip": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
- "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
- },
- "ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
- },
- "is-core-module": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
- "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "optional": true,
- "peer": true,
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
- "is-generator-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
- "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
- "dev": true
- },
- "is-lambda": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
- "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==",
- "optional": true,
- "peer": true
- },
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true
- },
- "is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "dev": true
- },
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
- "devOptional": true
- },
- "istanbul-lib-coverage": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz",
- "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==",
- "dev": true
- },
- "istanbul-lib-instrument": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz",
- "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==",
- "dev": true,
- "requires": {
- "@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"
- }
- },
- "istanbul-lib-report": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
- "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==",
- "dev": true,
- "requires": {
- "istanbul-lib-coverage": "^3.0.0",
- "make-dir": "^3.0.0",
- "supports-color": "^7.1.0"
- }
- },
- "istanbul-lib-source-maps": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
- "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
- "dev": true,
- "requires": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^3.0.0",
- "source-map": "^0.6.1"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
- }
- },
- "istanbul-reports": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz",
- "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==",
- "dev": true,
- "requires": {
- "html-escaper": "^2.0.0",
- "istanbul-lib-report": "^3.0.0"
- }
- },
- "jest": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz",
- "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==",
- "dev": true,
- "requires": {
- "@jest/core": "^28.1.3",
- "@jest/types": "^28.1.3",
- "import-local": "^3.0.2",
- "jest-cli": "^28.1.3"
- }
- },
- "jest-changed-files": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz",
- "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==",
- "dev": true,
- "requires": {
- "execa": "^5.0.0",
- "p-limit": "^3.1.0"
- }
- },
- "jest-circus": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz",
- "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==",
- "dev": true,
- "requires": {
- "@jest/environment": "^28.1.3",
- "@jest/expect": "^28.1.3",
- "@jest/test-result": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "co": "^4.6.0",
- "dedent": "^0.7.0",
- "is-generator-fn": "^2.0.0",
- "jest-each": "^28.1.3",
- "jest-matcher-utils": "^28.1.3",
- "jest-message-util": "^28.1.3",
- "jest-runtime": "^28.1.3",
- "jest-snapshot": "^28.1.3",
- "jest-util": "^28.1.3",
- "p-limit": "^3.1.0",
- "pretty-format": "^28.1.3",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- }
- },
- "jest-cli": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz",
- "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==",
- "dev": true,
- "requires": {
- "@jest/core": "^28.1.3",
- "@jest/test-result": "^28.1.3",
- "@jest/types": "^28.1.3",
- "chalk": "^4.0.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.9",
- "import-local": "^3.0.2",
- "jest-config": "^28.1.3",
- "jest-util": "^28.1.3",
- "jest-validate": "^28.1.3",
- "prompts": "^2.0.1",
- "yargs": "^17.3.1"
- },
- "dependencies": {
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- },
- "yargs": {
- "version": "17.5.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz",
- "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==",
- "dev": true,
- "requires": {
- "cliui": "^7.0.2",
- "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.0.0"
- }
- },
- "yargs-parser": {
- "version": "21.0.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz",
- "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==",
- "dev": true
- }
- }
- },
- "jest-config": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz",
- "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==",
- "dev": true,
- "requires": {
- "@babel/core": "^7.11.6",
- "@jest/test-sequencer": "^28.1.3",
- "@jest/types": "^28.1.3",
- "babel-jest": "^28.1.3",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "deepmerge": "^4.2.2",
- "glob": "^7.1.3",
- "graceful-fs": "^4.2.9",
- "jest-circus": "^28.1.3",
- "jest-environment-node": "^28.1.3",
- "jest-get-type": "^28.0.2",
- "jest-regex-util": "^28.0.2",
- "jest-resolve": "^28.1.3",
- "jest-runner": "^28.1.3",
- "jest-util": "^28.1.3",
- "jest-validate": "^28.1.3",
- "micromatch": "^4.0.4",
- "parse-json": "^5.2.0",
- "pretty-format": "^28.1.3",
- "slash": "^3.0.0",
- "strip-json-comments": "^3.1.1"
- },
- "dependencies": {
- "strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true
- }
- }
- },
- "jest-diff": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz",
- "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==",
- "dev": true,
- "requires": {
- "chalk": "^4.0.0",
- "diff-sequences": "^28.1.1",
- "jest-get-type": "^28.0.2",
- "pretty-format": "^28.1.3"
- }
- },
- "jest-docblock": {
- "version": "28.1.1",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz",
- "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==",
- "dev": true,
- "requires": {
- "detect-newline": "^3.0.0"
- }
- },
- "jest-each": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz",
- "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==",
- "dev": true,
- "requires": {
- "@jest/types": "^28.1.3",
- "chalk": "^4.0.0",
- "jest-get-type": "^28.0.2",
- "jest-util": "^28.1.3",
- "pretty-format": "^28.1.3"
- }
- },
- "jest-environment-node": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz",
- "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==",
- "dev": true,
- "requires": {
- "@jest/environment": "^28.1.3",
- "@jest/fake-timers": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "jest-mock": "^28.1.3",
- "jest-util": "^28.1.3"
- }
- },
- "jest-get-type": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz",
- "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==",
- "dev": true
- },
- "jest-haste-map": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz",
- "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==",
- "dev": true,
- "requires": {
- "@jest/types": "^28.1.3",
- "@types/graceful-fs": "^4.1.3",
- "@types/node": "*",
- "anymatch": "^3.0.3",
- "fb-watchman": "^2.0.0",
- "fsevents": "^2.3.2",
- "graceful-fs": "^4.2.9",
- "jest-regex-util": "^28.0.2",
- "jest-util": "^28.1.3",
- "jest-worker": "^28.1.3",
- "micromatch": "^4.0.4",
- "walker": "^1.0.8"
- }
- },
- "jest-leak-detector": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz",
- "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==",
- "dev": true,
- "requires": {
- "jest-get-type": "^28.0.2",
- "pretty-format": "^28.1.3"
- }
- },
- "jest-matcher-utils": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz",
- "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==",
- "dev": true,
- "requires": {
- "chalk": "^4.0.0",
- "jest-diff": "^28.1.3",
- "jest-get-type": "^28.0.2",
- "pretty-format": "^28.1.3"
- }
- },
- "jest-message-util": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz",
- "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.12.13",
- "@jest/types": "^28.1.3",
- "@types/stack-utils": "^2.0.0",
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "micromatch": "^4.0.4",
- "pretty-format": "^28.1.3",
- "slash": "^3.0.0",
- "stack-utils": "^2.0.3"
- }
- },
- "jest-mock": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz",
- "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==",
- "dev": true,
- "requires": {
- "@jest/types": "^28.1.3",
- "@types/node": "*"
- }
- },
- "jest-pnp-resolver": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz",
- "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==",
- "dev": true,
- "requires": {}
- },
- "jest-regex-util": {
- "version": "28.0.2",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz",
- "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==",
- "dev": true
- },
- "jest-resolve": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz",
- "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==",
- "dev": true,
- "requires": {
- "chalk": "^4.0.0",
- "graceful-fs": "^4.2.9",
- "jest-haste-map": "^28.1.3",
- "jest-pnp-resolver": "^1.2.2",
- "jest-util": "^28.1.3",
- "jest-validate": "^28.1.3",
- "resolve": "^1.20.0",
- "resolve.exports": "^1.1.0",
- "slash": "^3.0.0"
- }
- },
- "jest-resolve-dependencies": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz",
- "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==",
- "dev": true,
- "requires": {
- "jest-regex-util": "^28.0.2",
- "jest-snapshot": "^28.1.3"
- }
- },
- "jest-runner": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz",
- "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==",
- "dev": true,
- "requires": {
- "@jest/console": "^28.1.3",
- "@jest/environment": "^28.1.3",
- "@jest/test-result": "^28.1.3",
- "@jest/transform": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "emittery": "^0.10.2",
- "graceful-fs": "^4.2.9",
- "jest-docblock": "^28.1.1",
- "jest-environment-node": "^28.1.3",
- "jest-haste-map": "^28.1.3",
- "jest-leak-detector": "^28.1.3",
- "jest-message-util": "^28.1.3",
- "jest-resolve": "^28.1.3",
- "jest-runtime": "^28.1.3",
- "jest-util": "^28.1.3",
- "jest-watcher": "^28.1.3",
- "jest-worker": "^28.1.3",
- "p-limit": "^3.1.0",
- "source-map-support": "0.5.13"
- }
- },
- "jest-runtime": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz",
- "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==",
- "dev": true,
- "requires": {
- "@jest/environment": "^28.1.3",
- "@jest/fake-timers": "^28.1.3",
- "@jest/globals": "^28.1.3",
- "@jest/source-map": "^28.1.2",
- "@jest/test-result": "^28.1.3",
- "@jest/transform": "^28.1.3",
- "@jest/types": "^28.1.3",
- "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": "^28.1.3",
- "jest-message-util": "^28.1.3",
- "jest-mock": "^28.1.3",
- "jest-regex-util": "^28.0.2",
- "jest-resolve": "^28.1.3",
- "jest-snapshot": "^28.1.3",
- "jest-util": "^28.1.3",
- "slash": "^3.0.0",
- "strip-bom": "^4.0.0"
- }
- },
- "jest-snapshot": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz",
- "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==",
- "dev": true,
- "requires": {
- "@babel/core": "^7.11.6",
- "@babel/generator": "^7.7.2",
- "@babel/plugin-syntax-typescript": "^7.7.2",
- "@babel/traverse": "^7.7.2",
- "@babel/types": "^7.3.3",
- "@jest/expect-utils": "^28.1.3",
- "@jest/transform": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/babel__traverse": "^7.0.6",
- "@types/prettier": "^2.1.5",
- "babel-preset-current-node-syntax": "^1.0.0",
- "chalk": "^4.0.0",
- "expect": "^28.1.3",
- "graceful-fs": "^4.2.9",
- "jest-diff": "^28.1.3",
- "jest-get-type": "^28.0.2",
- "jest-haste-map": "^28.1.3",
- "jest-matcher-utils": "^28.1.3",
- "jest-message-util": "^28.1.3",
- "jest-util": "^28.1.3",
- "natural-compare": "^1.4.0",
- "pretty-format": "^28.1.3",
- "semver": "^7.3.5"
- },
- "dependencies": {
- "semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- }
- }
- },
- "jest-util": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz",
- "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==",
- "dev": true,
- "requires": {
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "graceful-fs": "^4.2.9",
- "picomatch": "^2.2.3"
- }
- },
- "jest-validate": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz",
- "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==",
- "dev": true,
- "requires": {
- "@jest/types": "^28.1.3",
- "camelcase": "^6.2.0",
- "chalk": "^4.0.0",
- "jest-get-type": "^28.0.2",
- "leven": "^3.1.0",
- "pretty-format": "^28.1.3"
- },
- "dependencies": {
- "camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true
- }
- }
- },
- "jest-watcher": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz",
- "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==",
- "dev": true,
- "requires": {
- "@jest/test-result": "^28.1.3",
- "@jest/types": "^28.1.3",
- "@types/node": "*",
- "ansi-escapes": "^4.2.1",
- "chalk": "^4.0.0",
- "emittery": "^0.10.2",
- "jest-util": "^28.1.3",
- "string-length": "^4.0.1"
- }
- },
- "jest-worker": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz",
- "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==",
- "dev": true,
- "requires": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "dependencies": {
- "supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dev": true,
- "requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- }
- },
- "jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true
- },
- "json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "json5": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
- "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
- "dev": true
- },
- "jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
- "requires": {
- "graceful-fs": "^4.1.6"
- }
- },
- "jsonwebtoken": {
- "version": "8.5.1",
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
- "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
- "requires": {
- "jws": "^3.2.2",
- "lodash.includes": "^4.3.0",
- "lodash.isboolean": "^3.0.3",
- "lodash.isinteger": "^4.0.4",
- "lodash.isnumber": "^3.0.3",
- "lodash.isplainobject": "^4.0.6",
- "lodash.isstring": "^4.0.1",
- "lodash.once": "^4.0.0",
- "ms": "^2.1.1",
- "semver": "^5.6.0"
- },
- "dependencies": {
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
- }
- }
- },
- "jwa": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
- "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
- "requires": {
- "buffer-equal-constant-time": "1.0.1",
- "ecdsa-sig-formatter": "1.0.11",
- "safe-buffer": "^5.0.1"
- }
- },
- "jws": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
- "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
- "requires": {
- "jwa": "^1.4.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "kleur": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
- "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
- "dev": true
- },
- "lambert-server": {
- "version": "1.2.12",
- "resolved": "https://registry.npmjs.org/lambert-server/-/lambert-server-1.2.12.tgz",
- "integrity": "sha512-TY6k60KLVfBpPrl9lcrN54RJdTBg9f8JqJPoHg5d/FMLnnwwQtT4budpoQjyLDwBLhS+zpXo0aBCwnnGgTVGaw==",
- "requires": {
- "body-parser": "^1.19.0",
- "chalk": "^4.1.1",
- "express": "^4.17.1",
- "express-async-errors": "^3.1.1",
- "helmet": "^4.4.1",
- "missing-native-js-functions": "^1.2.11"
- }
- },
- "leven": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
- "dev": true
- },
- "levn": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
- "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
- "requires": {
- "prelude-ls": "~1.1.2",
- "type-check": "~0.3.2"
- }
- },
- "lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
- "lodash.includes": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
- "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
- },
- "lodash.isboolean": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
- "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
- },
- "lodash.isinteger": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
- "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M="
- },
- "lodash.isnumber": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
- "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
- },
- "lodash.isplainobject": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
- },
- "lodash.isstring": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
- "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
- },
- "lodash.once": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
- "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
- },
- "lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "devOptional": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
- "devOptional": true,
- "requires": {
- "semver": "^6.0.0"
- }
- },
- "make-error": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
- "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "devOptional": true
- },
- "make-fetch-happen": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz",
- "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==",
- "optional": true,
- "peer": true,
- "requires": {
- "agentkeepalive": "^4.1.3",
- "cacache": "^15.2.0",
- "http-cache-semantics": "^4.1.0",
- "http-proxy-agent": "^4.0.1",
- "https-proxy-agent": "^5.0.0",
- "is-lambda": "^1.0.1",
- "lru-cache": "^6.0.0",
- "minipass": "^3.1.3",
- "minipass-collect": "^1.0.2",
- "minipass-fetch": "^1.3.2",
- "minipass-flush": "^1.0.5",
- "minipass-pipeline": "^1.2.4",
- "negotiator": "^0.6.2",
- "promise-retry": "^2.0.1",
- "socks-proxy-agent": "^6.0.0",
- "ssri": "^8.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "optional": true,
- "peer": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "optional": true,
- "peer": true
- },
- "socks-proxy-agent": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz",
- "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==",
- "optional": true,
- "peer": true,
- "requires": {
- "agent-base": "^6.0.2",
- "debug": "^4.3.3",
- "socks": "^2.6.2"
- }
- }
- }
- },
- "makeerror": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
- "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
- "dev": true,
- "requires": {
- "tmpl": "1.0.5"
- }
- },
- "media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
- },
- "merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
- },
- "merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "dev": true
- },
- "methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
- },
- "micromatch": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
- "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
- "dev": true,
- "requires": {
- "braces": "^3.0.1",
- "picomatch": "^2.2.3"
- }
- },
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
- },
- "mime-db": {
- "version": "1.49.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz",
- "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA=="
- },
- "mime-types": {
- "version": "2.1.32",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz",
- "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==",
- "requires": {
- "mime-db": "1.49.0"
- }
- },
- "mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true
- },
- "mimic-response": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
- "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==",
- "optional": true,
- "peer": true
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
- "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
- },
- "minipass": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz",
- "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==",
- "optional": true,
- "peer": true,
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "minipass-collect": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
- "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
- "optional": true,
- "peer": true,
- "requires": {
- "minipass": "^3.0.0"
- }
- },
- "minipass-fetch": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz",
- "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==",
- "optional": true,
- "peer": true,
- "requires": {
- "encoding": "^0.1.12",
- "minipass": "^3.1.0",
- "minipass-sized": "^1.0.3",
- "minizlib": "^2.0.0"
- }
- },
- "minipass-flush": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
- "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
- "optional": true,
- "peer": true,
- "requires": {
- "minipass": "^3.0.0"
- }
- },
- "minipass-pipeline": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
- "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
- "optional": true,
- "peer": true,
- "requires": {
- "minipass": "^3.0.0"
- }
- },
- "minipass-sized": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
- "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
- "optional": true,
- "peer": true,
- "requires": {
- "minipass": "^3.0.0"
- }
- },
- "minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "optional": true,
- "peer": true,
- "requires": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- }
- },
- "missing-native-js-functions": {
- "version": "1.2.18",
- "resolved": "https://registry.npmjs.org/missing-native-js-functions/-/missing-native-js-functions-1.2.18.tgz",
- "integrity": "sha512-TZr1muzDE4kfu0LHDzg63O7m2qW3Gpyc875ki8+YlSRj+4ibZRv0ySQ0cSB06GoBL9ejeehLmkQnybLpp9jYcg=="
- },
- "mkdirp": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
- "requires": {
- "minimist": "^1.2.5"
- }
- },
- "mkdirp-classic": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
- "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
- "optional": true,
- "peer": true
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
- },
- "multer": {
- "version": "1.4.5-lts.1",
- "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz",
- "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==",
- "requires": {
- "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"
- }
- },
- "mz": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "requires": {
- "any-promise": "^1.0.0",
- "object-assign": "^4.0.1",
- "thenify-all": "^1.0.0"
- }
- },
- "napi-build-utils": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
- "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==",
- "optional": true,
- "peer": true
- },
- "natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true
- },
- "negotiator": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
- "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
- },
- "netmask": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
- "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg=="
- },
- "node-abi": {
- "version": "2.30.1",
- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz",
- "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==",
- "optional": true,
- "peer": true,
- "requires": {
- "semver": "^5.4.1"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "optional": true,
- "peer": true
- }
- }
- },
- "node-addon-api": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz",
- "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==",
- "optional": true,
- "peer": true
- },
- "node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
- "requires": {
- "whatwg-url": "^5.0.0"
- }
- },
- "node-gyp": {
- "version": "8.4.1",
- "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz",
- "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==",
- "optional": true,
- "peer": true,
- "requires": {
- "env-paths": "^2.2.0",
- "glob": "^7.1.4",
- "graceful-fs": "^4.2.6",
- "make-fetch-happen": "^9.1.0",
- "nopt": "^5.0.0",
- "npmlog": "^6.0.0",
- "rimraf": "^3.0.2",
- "semver": "^7.3.5",
- "tar": "^6.1.2",
- "which": "^2.0.2"
- },
- "dependencies": {
- "are-we-there-yet": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz",
- "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==",
- "optional": true,
- "peer": true,
- "requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^3.6.0"
- }
- },
- "gauge": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz",
- "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==",
- "optional": true,
- "peer": true,
- "requires": {
- "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"
- }
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "optional": true,
- "peer": true
- },
- "npmlog": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz",
- "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==",
- "optional": true,
- "peer": true,
- "requires": {
- "are-we-there-yet": "^3.0.0",
- "console-control-strings": "^1.1.0",
- "gauge": "^4.0.3",
- "set-blocking": "^2.0.0"
- }
- },
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "optional": true,
- "peer": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- },
- "semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
- "optional": true,
- "peer": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
- "string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "optional": true,
- "peer": true,
- "requires": {
- "safe-buffer": "~5.2.0"
- }
- },
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "optional": true,
- "peer": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- }
- }
- },
- "node-int64": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
- "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
- "dev": true
- },
- "node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
- "dev": true
- },
- "nopt": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
- "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
- "optional": true,
- "peer": true,
- "requires": {
- "abbrev": "1"
- }
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true
- },
- "npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "dev": true,
- "requires": {
- "path-key": "^3.0.0"
- }
- },
- "npmlog": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
- "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
- "optional": true,
- "peer": true,
- "requires": {
- "are-we-there-yet": "~1.1.2",
- "console-control-strings": "~1.1.0",
- "gauge": "~2.7.3",
- "set-blocking": "~2.0.0"
- }
- },
- "number-is-nan": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
- "optional": true,
- "peer": true
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
- },
- "on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
- "requires": {
- "ee-first": "1.1.1"
- }
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "requires": {
- "wrappy": "1"
- }
- },
- "onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
- "requires": {
- "mimic-fn": "^2.1.0"
- }
- },
- "optionator": {
- "version": "0.8.3",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
- "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
- "requires": {
- "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"
- }
- },
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- },
- "dependencies": {
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- }
- }
- },
- "p-map": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
- "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
- "optional": true,
- "peer": true,
- "requires": {
- "aggregate-error": "^3.0.0"
- }
- },
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
- },
- "pac-proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz",
- "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==",
- "requires": {
- "@tootallnate/once": "1",
- "agent-base": "6",
- "debug": "4",
- "get-uri": "3",
- "http-proxy-agent": "^4.0.1",
- "https-proxy-agent": "5",
- "pac-resolver": "^5.0.0",
- "raw-body": "^2.2.0",
- "socks-proxy-agent": "5"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
- }
- },
- "pac-resolver": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.0.tgz",
- "integrity": "sha512-H+/A6KitiHNNW+bxBKREk2MCGSxljfqRX76NjummWEYIat7ldVXRU3dhRIE3iXZ0nvGBk6smv3nntxKkzRL8NA==",
- "requires": {
- "degenerator": "^3.0.1",
- "ip": "^1.1.5",
- "netmask": "^2.0.1"
- }
- },
- "packet-reader": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz",
- "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==",
- "optional": true,
- "peer": true
- },
- "parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "requires": {
- "@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"
- }
- },
- "parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
- },
- "parse5-htmlparser2-tree-adapter": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
- "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
- "requires": {
- "parse5": "^6.0.1"
- }
- },
- "parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
- },
- "path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
- },
- "path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true
- },
- "path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
- },
- "pg": {
- "version": "8.7.3",
- "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz",
- "integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==",
- "optional": true,
- "peer": true,
- "requires": {
- "buffer-writer": "2.0.0",
- "packet-reader": "1.0.0",
- "pg-connection-string": "^2.5.0",
- "pg-pool": "^3.5.1",
- "pg-protocol": "^1.5.0",
- "pg-types": "^2.1.0",
- "pgpass": "1.x"
- }
- },
- "pg-connection-string": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz",
- "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==",
- "optional": true,
- "peer": true
- },
- "pg-int8": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz",
- "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==",
- "optional": true,
- "peer": true
- },
- "pg-pool": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz",
- "integrity": "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==",
- "optional": true,
- "peer": true,
- "requires": {}
- },
- "pg-protocol": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz",
- "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==",
- "optional": true,
- "peer": true
- },
- "pg-types": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz",
- "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
- "optional": true,
- "peer": true,
- "requires": {
- "pg-int8": "1.0.1",
- "postgres-array": "~2.0.0",
- "postgres-bytea": "~1.0.0",
- "postgres-date": "~1.0.4",
- "postgres-interval": "^1.1.0"
- }
- },
- "pgpass": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz",
- "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==",
- "optional": true,
- "peer": true,
- "requires": {
- "split2": "^3.1.1"
- }
- },
- "picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
- },
- "picomatch": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
- "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
- "dev": true
- },
- "pirates": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
- "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
- "dev": true
- },
- "pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
- "requires": {
- "find-up": "^4.0.0"
- }
- },
- "postgres-array": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz",
- "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==",
- "optional": true,
- "peer": true
- },
- "postgres-bytea": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
- "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=",
- "optional": true,
- "peer": true
- },
- "postgres-date": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz",
- "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==",
- "optional": true,
- "peer": true
- },
- "postgres-interval": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz",
- "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
- "optional": true,
- "peer": true,
- "requires": {
- "xtend": "^4.0.0"
- }
- },
- "prebuild-install": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz",
- "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==",
- "optional": true,
- "peer": true,
- "requires": {
- "detect-libc": "^1.0.3",
- "expand-template": "^2.0.3",
- "github-from-package": "0.0.0",
- "minimist": "^1.2.3",
- "mkdirp-classic": "^0.5.3",
- "napi-build-utils": "^1.0.1",
- "node-abi": "^2.21.0",
- "npmlog": "^4.0.1",
- "pump": "^3.0.0",
- "rc": "^1.2.7",
- "simple-get": "^3.0.3",
- "tar-fs": "^2.0.0",
- "tunnel-agent": "^0.6.0"
- }
- },
- "prelude-ls": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
- "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ="
- },
- "pretty-format": {
- "version": "28.1.3",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz",
- "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==",
- "dev": true,
- "requires": {
- "@jest/schemas": "^28.1.3",
- "ansi-regex": "^5.0.1",
- "ansi-styles": "^5.0.0",
- "react-is": "^18.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
- "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
- "dev": true
- }
- }
- },
- "process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
- },
- "promise-inflight": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
- "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
- "optional": true,
- "peer": true
- },
- "promise-retry": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
- "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
- "optional": true,
- "peer": true,
- "requires": {
- "err-code": "^2.0.2",
- "retry": "^0.12.0"
- }
- },
- "prompts": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
- "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
- "dev": true,
- "requires": {
- "kleur": "^3.0.3",
- "sisteransi": "^1.0.5"
- }
- },
- "proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "requires": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- }
- },
- "proxy-agent": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz",
- "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==",
- "requires": {
- "agent-base": "^6.0.0",
- "debug": "4",
- "http-proxy-agent": "^4.0.0",
- "https-proxy-agent": "^5.0.0",
- "lru-cache": "^5.1.1",
- "pac-proxy-agent": "^5.0.0",
- "proxy-from-env": "^1.0.0",
- "socks-proxy-agent": "^5.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "requires": {
- "yallist": "^3.0.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
- }
- }
- },
- "proxy-from-env": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
- },
- "pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
- "optional": true,
- "peer": true,
- "requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "qs": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
- "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
- },
- "querystringify": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
- "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ=="
- },
- "range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
- },
- "raw-body": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
- "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
- "requires": {
- "bytes": "3.1.0",
- "http-errors": "1.7.2",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- }
- },
- "rc": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
- "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
- "optional": true,
- "peer": true,
- "requires": {
- "deep-extend": "^0.6.0",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
- }
- },
- "react-is": {
- "version": "18.2.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
- "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
- "dev": true
- },
- "readable-stream": {
- "version": "1.1.14",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
- "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
- }
- },
- "reflect-metadata": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
- "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg=="
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
- },
- "requires-port": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
- },
- "resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
- "dev": true,
- "requires": {
- "is-core-module": "^2.9.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- }
- },
- "resolve-cwd": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
- "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
- "dev": true,
- "requires": {
- "resolve-from": "^5.0.0"
- }
- },
- "resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true
- },
- "resolve.exports": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz",
- "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==",
- "dev": true
- },
- "retry": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
- "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
- "optional": true,
- "peer": true
- },
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "devOptional": true,
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- },
- "safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "sax": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "devOptional": true
- },
- "send": {
- "version": "0.17.1",
- "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
- "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
- "requires": {
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "destroy": "~1.0.4",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "~1.7.2",
- "mime": "1.6.0",
- "ms": "2.1.1",
- "on-finished": "~2.3.0",
- "range-parser": "~1.2.1",
- "statuses": "~1.5.0"
- },
- "dependencies": {
- "ms": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
- "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
- }
- }
- },
- "serve-static": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
- "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
- "requires": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.17.1"
- }
- },
- "set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
- "optional": true,
- "peer": true
- },
- "setprototypeof": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
- "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
- },
- "sha.js": {
- "version": "2.4.11",
- "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
- "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
- "requires": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true
- },
- "signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "devOptional": true
- },
- "simple-concat": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
- "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
- "optional": true,
- "peer": true
- },
- "simple-get": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz",
- "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==",
- "optional": true,
- "peer": true,
- "requires": {
- "decompress-response": "^4.2.0",
- "once": "^1.3.1",
- "simple-concat": "^1.0.0"
- }
- },
- "sisteransi": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
- "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
- "dev": true
- },
- "slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "dev": true
- },
- "smart-buffer": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
- "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="
- },
- "socks": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz",
- "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==",
- "requires": {
- "ip": "^1.1.5",
- "smart-buffer": "^4.2.0"
- }
- },
- "socks-proxy-agent": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz",
- "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==",
- "requires": {
- "agent-base": "^6.0.2",
- "debug": "4",
- "socks": "^2.3.3"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "devOptional": true
- },
- "source-map-support": {
- "version": "0.5.13",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
- "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
- "dev": true,
- "requires": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "split2": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
- "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
- "optional": true,
- "peer": true,
- "requires": {
- "readable-stream": "^3.0.0"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "optional": true,
- "peer": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- },
- "string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "optional": true,
- "peer": true,
- "requires": {
- "safe-buffer": "~5.2.0"
- }
- }
- }
- },
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true
- },
- "sqlite3": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.8.tgz",
- "integrity": "sha512-f2ACsbSyb2D1qFFcqIXPfFscLtPVOWJr5GmUzYxf4W+0qelu5MWrR+FAQE1d5IUArEltBrzSDxDORG8P/IkqyQ==",
- "optional": true,
- "peer": true,
- "requires": {
- "@mapbox/node-pre-gyp": "^1.0.0",
- "node-addon-api": "^4.2.0",
- "node-gyp": "8.x",
- "tar": "^6.1.11"
- }
- },
- "ssri": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
- "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
- "optional": true,
- "peer": true,
- "requires": {
- "minipass": "^3.1.1"
- }
- },
- "stack-utils": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz",
- "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^2.0.0"
- }
- },
- "statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
- },
- "streamsearch": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
- "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg=="
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
- },
- "string-length": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
- "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
- "dev": true,
- "requires": {
- "char-regex": "^1.0.2",
- "strip-ansi": "^6.0.0"
- }
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "optional": true,
- "peer": true,
- "requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "optional": true,
- "peer": true
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "optional": true,
- "peer": true,
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- }
- }
- },
- "strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
- "strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "dev": true
- },
- "strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "dev": true
- },
- "strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
- "optional": true,
- "peer": true
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "supports-hyperlinks": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz",
- "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0",
- "supports-color": "^7.0.0"
- }
- },
- "supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true
- },
- "tar": {
- "version": "6.1.11",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
- "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
- "optional": true,
- "peer": true,
- "requires": {
- "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"
- },
- "dependencies": {
- "chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
- "optional": true,
- "peer": true
- },
- "mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
- "optional": true,
- "peer": true
- }
- }
- },
- "tar-fs": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
- "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
- "optional": true,
- "peer": true,
- "requires": {
- "chownr": "^1.1.1",
- "mkdirp-classic": "^0.5.2",
- "pump": "^3.0.0",
- "tar-stream": "^2.1.4"
- }
- },
- "tar-stream": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
- "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
- "optional": true,
- "peer": true,
- "requires": {
- "bl": "^4.0.3",
- "end-of-stream": "^1.4.1",
- "fs-constants": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.1.1"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "optional": true,
- "peer": true,
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- },
- "string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "optional": true,
- "peer": true,
- "requires": {
- "safe-buffer": "~5.2.0"
- }
- }
- }
- },
- "terminal-link": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz",
- "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==",
- "dev": true,
- "requires": {
- "ansi-escapes": "^4.2.1",
- "supports-hyperlinks": "^2.0.0"
- }
- },
- "test-exclude": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
- "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
- "dev": true,
- "requires": {
- "@istanbuljs/schema": "^0.1.2",
- "glob": "^7.1.4",
- "minimatch": "^3.0.4"
- }
- },
- "thenify": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "requires": {
- "any-promise": "^1.0.0"
- }
- },
- "thenify-all": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
- "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=",
- "requires": {
- "thenify": ">= 3.1.0 < 4"
- }
- },
- "tmpl": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
- "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
- "dev": true
- },
- "to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "dev": true
- },
- "to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "requires": {
- "is-number": "^7.0.0"
- }
- },
- "toidentifier": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
- "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
- },
- "tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
- },
- "ts-node": {
- "version": "10.9.1",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
- "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
- "devOptional": true,
- "requires": {
- "@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"
- },
- "dependencies": {
- "acorn-walk": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
- "devOptional": true
- }
- }
- },
- "tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
- },
- "tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
- "optional": true,
- "peer": true,
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
- "type-check": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
- "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
- "requires": {
- "prelude-ls": "~1.1.2"
- }
- },
- "type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true
- },
- "type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "dev": true
- },
- "type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "requires": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- }
- },
- "typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
- },
- "typeorm": {
- "version": "0.3.7",
- "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz",
- "integrity": "sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q==",
- "requires": {
- "@sqltools/formatter": "^1.2.2",
- "app-root-path": "^3.0.0",
- "buffer": "^6.0.3",
- "chalk": "^4.1.0",
- "cli-highlight": "^2.1.11",
- "date-fns": "^2.28.0",
- "debug": "^4.3.3",
- "dotenv": "^16.0.0",
- "glob": "^7.2.0",
- "js-yaml": "^4.1.0",
- "mkdirp": "^1.0.4",
- "reflect-metadata": "^0.1.13",
- "sha.js": "^2.4.11",
- "tslib": "^2.3.1",
- "uuid": "^8.3.2",
- "xml2js": "^0.4.23",
- "yargs": "^17.3.1"
- },
- "dependencies": {
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
- }
- },
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
- },
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "requires": {
- "argparse": "^2.0.1"
- }
- },
- "mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- },
- "yargs": {
- "version": "17.5.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz",
- "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==",
- "requires": {
- "cliui": "^7.0.2",
- "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.0.0"
- }
- },
- "yargs-parser": {
- "version": "21.0.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz",
- "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg=="
- }
- }
- },
- "typescript": {
- "version": "4.7.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
- "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ=="
- },
- "unique-filename": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
- "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
- "optional": true,
- "peer": true,
- "requires": {
- "unique-slug": "^2.0.0"
- }
- },
- "unique-slug": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
- "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
- "optional": true,
- "peer": true,
- "requires": {
- "imurmurhash": "^0.1.4"
- }
- },
- "universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
- },
- "unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
- },
- "update-browserslist-db": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz",
- "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==",
- "dev": true,
- "requires": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- }
- },
- "url-parse": {
- "version": "1.5.10",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
- "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
- "requires": {
- "querystringify": "^2.1.1",
- "requires-port": "^1.0.0"
- }
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
- },
- "uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
- },
- "v8-compile-cache-lib": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
- "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
- "devOptional": true
- },
- "v8-to-istanbul": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz",
- "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==",
- "dev": true,
- "requires": {
- "@jridgewell/trace-mapping": "^0.3.12",
- "@types/istanbul-lib-coverage": "^2.0.1",
- "convert-source-map": "^1.6.0"
- },
- "dependencies": {
- "@jridgewell/trace-mapping": {
- "version": "0.3.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz",
- "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==",
- "dev": true,
- "requires": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- }
- }
- },
- "vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
- },
- "vm2": {
- "version": "3.9.7",
- "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.7.tgz",
- "integrity": "sha512-g/GZ7V0Mlmch3eDVOATvAXr1GsJNg6kQ5PjvYy3HbJMCRn5slNbo/u73Uy7r5yUej1cRa3ZjtoVwcWSQuQ/fow==",
- "requires": {
- "acorn": "^8.7.0",
- "acorn-walk": "^8.2.0"
- },
- "dependencies": {
- "acorn-walk": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA=="
- }
- }
- },
- "walker": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
- "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
- "dev": true,
- "requires": {
- "makeerror": "1.0.12"
- }
- },
- "webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
- },
- "whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "requires": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "devOptional": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "wide-align": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
- "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
- "optional": true,
- "peer": true,
- "requires": {
- "string-width": "^1.0.2 || 2 || 3 || 4"
- }
- },
- "word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ=="
- },
- "wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "dependencies": {
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
- },
- "string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- }
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
- },
- "write-file-atomic": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz",
- "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==",
- "dev": true,
- "requires": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
- }
- },
- "xml2js": {
- "version": "0.4.23",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
- "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
- "requires": {
- "sax": ">=0.6.0",
- "xmlbuilder": "~11.0.0"
- }
- },
- "xmlbuilder": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
- "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
- },
- "xregexp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz",
- "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM="
- },
- "xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
- },
- "y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "devOptional": true
- },
- "yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "requires": {
- "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"
- },
- "dependencies": {
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
- },
- "string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- }
- }
- },
- "yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
- },
- "yn": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
- "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
- "devOptional": true
- },
- "yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true
- }
- }
-}
diff --git a/util/package.json b/util/package.json
deleted file mode 100644
index 01c3d9f2..00000000
--- a/util/package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "name": "@fosscord/util",
- "version": "1.0.0",
- "description": "Utility functions for the all server repositories",
- "main": "dist/index.js",
- "types": "src/index.ts",
- "scripts": {
- "start": "npm run build && node dist/",
- "test": "npm run build && npx jest",
- "postinstall": "npm run build",
- "build": "npx tsc -p .",
- "typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/fosscord/fosscord-server.git"
- },
- "keywords": [
- "discord",
- "fosscord",
- "fosscord-server",
- "discord open source",
- "discord-open-source"
- ],
- "author": "Fosscord",
- "license": "AGPL-3.0-only",
- "bugs": {
- "url": "https://github.com/fosscord/fosscord-server/issues"
- },
- "homepage": "https://docs.fosscord.com/",
- "devDependencies": {
- "@types/amqplib": "^0.8.1",
- "@types/jsonwebtoken": "^8.5.8",
- "@types/multer": "^1.4.7",
- "@types/node": "^18.0.6",
- "jest": "^28.1.3",
- "ts-node": "^10.2.1"
- },
- "dependencies": {
- "@types/node-fetch": "^2.6.2",
- "amqplib": "^0.10.0",
- "form-data": "^4.0.0",
- "jsonwebtoken": "^8.5.1",
- "lambert-server": "^1.2.12",
- "missing-native-js-functions": "^1.2.18",
- "multer": "^1.4.5-lts.1",
- "node-fetch": "^2.6.7",
- "picocolors": "^1.0.0",
- "proxy-agent": "^5.0.0",
- "reflect-metadata": "^0.1.13",
- "typeorm": "^0.3.7",
- "typescript": "^4.7.4"
- },
- "jest": {
- "setupFilesAfterEnv": [
- "./tests/setupJest.js"
- ]
- }
-}
diff --git a/util/scripts/benchmark.js b/util/scripts/benchmark.js
deleted file mode 100644
index e7435191..00000000
--- a/util/scripts/benchmark.js
+++ /dev/null
@@ -1,28 +0,0 @@
-const typeorm = require("typeorm");
-const Models = require("../dist/entities");
-const { PrimaryColumn } = require("typeorm");
-
-function shouldIncludeEntity(name) {
- return ![Models.BaseClassWithoutId, PrimaryColumn, Models.BaseClass, Models.PrimaryGeneratedColumn]
- .map((x) => x?.name)
- .includes(name);
-}
-
-async function main() {
- console.log("starting");
- const db = new typeorm.DataSource({
- type: "sqlite",
- database: ":memory:",
- entities: Object.values(Models).filter((x) => x.constructor.name == "Function" && shouldIncludeEntity(x.name)),
- synchronize: true,
- });
- await db.initialize();
- console.log("Initialized database");
-
- for (var i = 0; i < 100; i++) {
- await Models.User.register({ username: "User" + i });
- console.log("registered user " + i);
- }
-}
-
-main();
diff --git a/util/scripts/migrate_db_engine.js b/util/scripts/migrate_db_engine.js
deleted file mode 100644
index 79e9d86f..00000000
--- a/util/scripts/migrate_db_engine.js
+++ /dev/null
@@ -1,109 +0,0 @@
-const { config } = require("dotenv");
-config();
-const { createConnection } = require("typeorm");
-const { initDatabase } = require("../../dist/util/Database");
-require("missing-native-js-functions");
-const {
- Application,
- Attachment,
- Ban,
- Channel,
- ConfigEntity,
- ConnectedAccount,
- Emoji,
- Guild,
- Invite,
- Member,
- Message,
- ReadState,
- Recipient,
- Relationship,
- Role,
- Sticker,
- Team,
- TeamMember,
- Template,
- User,
- VoiceState,
- Webhook,
-} = require("../../dist/entities/index");
-
-async function main() {
- if (!process.env.TO) throw new Error("TO database env connection string not set");
-
- // manually arrange them because of foreign keys
- const entities = [
- ConfigEntity,
- User,
- Guild,
- Channel,
- Invite,
- Role,
- Ban,
- Application,
- Emoji,
- ConnectedAccount,
- Member,
- ReadState,
- Recipient,
- Relationship,
- Sticker,
- Team,
- TeamMember,
- Template,
- VoiceState,
- Webhook,
- Message,
- Attachment,
- ];
-
- const oldDB = await initDatabase();
-
- const type = process.env.TO.includes("://") ? process.env.TO.split(":")[0]?.replace("+srv", "") : "sqlite";
- const isSqlite = type.includes("sqlite");
-
- // @ts-ignore
- const newDB = await createConnection({
- type,
- url: isSqlite ? undefined : process.env.TO,
- database: isSqlite ? process.env.TO : undefined,
- entities,
- name: "new",
- synchronize: true,
- });
- let i = 0;
-
- try {
- for (const entity of entities) {
- const entries = await oldDB.manager.find(entity);
-
- // @ts-ignore
- console.log("migrating " + entries.length + " " + entity.name + " ...");
-
- for (const entry of entries) {
- console.log(i++);
-
- try {
- await newDB.manager.insert(entity, entry);
- } catch (error) {
- try {
- if (!entry.id) throw new Error("object doesn't have a unique id: " + entry);
- await newDB.manager.update(entity, { id: entry.id }, entry);
- } catch (error) {
- console.error("couldn't migrate " + i + " " + entity.name, error);
- }
- }
- }
-
- // @ts-ignore
- console.log("migrated " + entries.length + " " + entity.name);
- }
- } catch (error) {
- console.error(error.message);
- }
-
- console.log("SUCCESS migrated all data");
- await newDB.close();
-}
-
-main().caught();
diff --git a/util/src/dtos/DmChannelDTO.ts b/util/src/dtos/DmChannelDTO.ts
deleted file mode 100644
index 226b2f9d..00000000
--- a/util/src/dtos/DmChannelDTO.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import { MinimalPublicUserDTO } from "./UserDTO";
-import { Channel, PublicUserProjection, User } from "../entities";
-
-export class DmChannelDTO {
- icon: string | null;
- id: string;
- last_message_id: string | null;
- name: string | null;
- origin_channel_id: string | null;
- owner_id?: string;
- recipients: MinimalPublicUserDTO[];
- type: number;
-
- static async from(channel: Channel, excluded_recipients: string[] = [], origin_channel_id?: string) {
- const obj = new DmChannelDTO();
- obj.icon = channel.icon || null;
- obj.id = channel.id;
- obj.last_message_id = channel.last_message_id || null;
- obj.name = channel.name || null;
- obj.origin_channel_id = origin_channel_id || null;
- obj.owner_id = channel.owner_id;
- obj.type = channel.type;
- obj.recipients = (
- await Promise.all(
- channel
- .recipients!.filter((r) => !excluded_recipients.includes(r.user_id))
- .map(async (r) => {
- return await User.findOneOrFail({ where: { id: r.user_id }, select: PublicUserProjection });
- })
- )
- ).map((u) => new MinimalPublicUserDTO(u));
- return obj;
- }
-
- excludedRecipients(excluded_recipients: string[]): DmChannelDTO {
- return {
- ...this,
- recipients: this.recipients.filter((r) => !excluded_recipients.includes(r.id)),
- };
- }
-}
diff --git a/util/src/dtos/UserDTO.ts b/util/src/dtos/UserDTO.ts
deleted file mode 100644
index ee2752a4..00000000
--- a/util/src/dtos/UserDTO.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { User } from "../entities";
-
-export class MinimalPublicUserDTO {
- avatar?: string | null;
- discriminator: string;
- id: string;
- public_flags: number;
- username: string;
-
- constructor(user: User) {
- this.avatar = user.avatar;
- this.discriminator = user.discriminator;
- this.id = user.id;
- this.public_flags = user.public_flags;
- this.username = user.username;
- }
-}
diff --git a/util/src/dtos/index.ts b/util/src/dtos/index.ts
deleted file mode 100644
index 0e8f8459..00000000
--- a/util/src/dtos/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export * from "./DmChannelDTO";
-export * from "./UserDTO";
diff --git a/util/src/entities/Application.ts b/util/src/entities/Application.ts
deleted file mode 100644
index 103f8e84..00000000
--- a/util/src/entities/Application.ts
+++ /dev/null
@@ -1,156 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, OneToOne, RelationId } from "typeorm";
-import { BaseClass } from "./BaseClass";
-import { Guild } from "./Guild";
-import { Team } from "./Team";
-import { User } from "./User";
-
-@Entity("applications")
-export class Application extends BaseClass {
- @Column()
- name: string;
-
- @Column({ nullable: true })
- icon?: string;
-
- @Column({ nullable: true })
- description: string;
-
- @Column({ nullable: true })
- summary: string = "";
-
- @Column({ type: "simple-json", nullable: true })
- type?: any;
-
- @Column()
- hook: boolean = true;
-
- @Column()
- bot_public?: boolean = true;
-
- @Column()
- bot_require_code_grant?: boolean = false;
-
- @Column()
- verify_key: string;
-
- @JoinColumn({ name: "owner_id" })
- @ManyToOne(() => User)
- owner: User;
-
- @Column()
- flags: number = 0;
-
- @Column({ type: "simple-array", nullable: true })
- redirect_uris: string[] = [];
-
- @Column({ nullable: true })
- rpc_application_state: number = 0;
-
- @Column({ nullable: true })
- store_application_state: number = 1;
-
- @Column({ nullable: true })
- verification_state: number = 1;
-
- @Column({ nullable: true })
- interactions_endpoint_url?: string;
-
- @Column({ nullable: true })
- integration_public: boolean = true;
-
- @Column({ nullable: true })
- integration_require_code_grant: boolean = false;
-
- @Column({ nullable: true })
- discoverability_state: number = 1;
-
- @Column({ nullable: true })
- discovery_eligibility_flags: number = 2240;
-
- @JoinColumn({ name: "bot_user_id" })
- @OneToOne(() => User)
- bot?: User;
-
- @Column({ type: "simple-array", nullable: true })
- tags?: string[];
-
- @Column({ nullable: true })
- cover_image?: string; // the application's default rich presence invite cover image hash
-
- @Column({ type: "simple-json", nullable: true })
- install_params?: {scopes: string[], permissions: string};
-
- @Column({ nullable: true })
- terms_of_service_url?: string;
-
- @Column({ nullable: true })
- privacy_policy_url?: string;
-
- //just for us
-
- //@Column({ type: "simple-array", nullable: true })
- //rpc_origins?: string[];
-
- //@JoinColumn({ name: "guild_id" })
- //@ManyToOne(() => Guild)
- //guild?: Guild; // if this application is a game sold, this field will be the guild to which it has been linked
-
- //@Column({ nullable: true })
- //primary_sku_id?: string; // if this application is a game sold, this field will be the id of the "Game SKU" that is created,
-
- //@Column({ nullable: true })
- //slug?: string; // if this application is a game sold, this field will be the URL slug that links to the store page
-
- @JoinColumn({ name: "team_id" })
- @ManyToOne(() => Team, {
- onDelete: "CASCADE",
- nullable: true
- })
- team?: Team;
-
- }
-
-export interface ApplicationCommand {
- id: string;
- application_id: string;
- name: string;
- description: string;
- options?: ApplicationCommandOption[];
-}
-
-export interface ApplicationCommandOption {
- type: ApplicationCommandOptionType;
- name: string;
- description: string;
- required?: boolean;
- choices?: ApplicationCommandOptionChoice[];
- options?: ApplicationCommandOption[];
-}
-
-export interface ApplicationCommandOptionChoice {
- name: string;
- value: string | number;
-}
-
-export enum ApplicationCommandOptionType {
- SUB_COMMAND = 1,
- SUB_COMMAND_GROUP = 2,
- STRING = 3,
- INTEGER = 4,
- BOOLEAN = 5,
- USER = 6,
- CHANNEL = 7,
- ROLE = 8,
-}
-
-export interface ApplicationCommandInteractionData {
- id: string;
- name: string;
- options?: ApplicationCommandInteractionDataOption[];
-}
-
-export interface ApplicationCommandInteractionDataOption {
- name: string;
- value?: any;
- options?: ApplicationCommandInteractionDataOption[];
-}
diff --git a/util/src/entities/Attachment.ts b/util/src/entities/Attachment.ts
deleted file mode 100644
index 7b4b17eb..00000000
--- a/util/src/entities/Attachment.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import { BeforeRemove, Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
-import { URL } from "url";
-import { deleteFile } from "../util/cdn";
-import { BaseClass } from "./BaseClass";
-
-@Entity("attachments")
-export class Attachment extends BaseClass {
- @Column()
- filename: string; // name of file attached
-
- @Column()
- size: number; // size of file in bytes
-
- @Column()
- url: string; // source url of file
-
- @Column()
- proxy_url: string; // a proxied url of file
-
- @Column({ nullable: true })
- height?: number; // height of file (if image)
-
- @Column({ nullable: true })
- width?: number; // width of file (if image)
-
- @Column({ nullable: true })
- content_type?: string;
-
- @Column({ nullable: true })
- @RelationId((attachment: Attachment) => attachment.message)
- message_id: string;
-
- @JoinColumn({ name: "message_id" })
- @ManyToOne(() => require("./Message").Message, (message: import("./Message").Message) => message.attachments, {
- onDelete: "CASCADE",
- })
- message: import("./Message").Message;
-
- @BeforeRemove()
- onDelete() {
- return deleteFile(new URL(this.url).pathname);
- }
-}
diff --git a/util/src/entities/AuditLog.ts b/util/src/entities/AuditLog.ts
deleted file mode 100644
index b003e7ba..00000000
--- a/util/src/entities/AuditLog.ts
+++ /dev/null
@@ -1,194 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
-import { BaseClass } from "./BaseClass";
-import { ChannelPermissionOverwrite } from "./Channel";
-import { User } from "./User";
-
-export enum AuditLogEvents {
- // guild level
- GUILD_UPDATE = 1,
- GUILD_IMPORT = 2,
- GUILD_EXPORTED = 3,
- GUILD_ARCHIVE = 4,
- GUILD_UNARCHIVE = 5,
- // join-leave
- USER_JOIN = 6,
- USER_LEAVE = 7,
- // channels
- CHANNEL_CREATE = 10,
- CHANNEL_UPDATE = 11,
- CHANNEL_DELETE = 12,
- // permission overrides
- CHANNEL_OVERWRITE_CREATE = 13,
- CHANNEL_OVERWRITE_UPDATE = 14,
- CHANNEL_OVERWRITE_DELETE = 15,
- // kick and ban
- MEMBER_KICK = 20,
- MEMBER_PRUNE = 21,
- MEMBER_BAN_ADD = 22,
- MEMBER_BAN_REMOVE = 23,
- // member updates
- MEMBER_UPDATE = 24,
- MEMBER_ROLE_UPDATE = 25,
- MEMBER_MOVE = 26,
- MEMBER_DISCONNECT = 27,
- BOT_ADD = 28,
- // roles
- ROLE_CREATE = 30,
- ROLE_UPDATE = 31,
- ROLE_DELETE = 32,
- ROLE_SWAP = 33,
- // invites
- INVITE_CREATE = 40,
- INVITE_UPDATE = 41,
- INVITE_DELETE = 42,
- // webhooks
- WEBHOOK_CREATE = 50,
- WEBHOOK_UPDATE = 51,
- WEBHOOK_DELETE = 52,
- WEBHOOK_SWAP = 53,
- // custom emojis
- EMOJI_CREATE = 60,
- EMOJI_UPDATE = 61,
- EMOJI_DELETE = 62,
- EMOJI_SWAP = 63,
- // deletion
- MESSAGE_CREATE = 70, // messages sent using non-primary seat of the user only
- MESSAGE_EDIT = 71, // non-self edits only
- MESSAGE_DELETE = 72,
- MESSAGE_BULK_DELETE = 73,
- // pinning
- MESSAGE_PIN = 74,
- MESSAGE_UNPIN = 75,
- // integrations
- INTEGRATION_CREATE = 80,
- INTEGRATION_UPDATE = 81,
- INTEGRATION_DELETE = 82,
- // stage actions
- STAGE_INSTANCE_CREATE = 83,
- STAGE_INSTANCE_UPDATE = 84,
- STAGE_INSTANCE_DELETE = 85,
- // stickers
- STICKER_CREATE = 90,
- STICKER_UPDATE = 91,
- STICKER_DELETE = 92,
- STICKER_SWAP = 93,
- // threads
- THREAD_CREATE = 110,
- THREAD_UPDATE = 111,
- THREAD_DELETE = 112,
- // application commands
- APPLICATION_COMMAND_PERMISSION_UPDATE = 121,
- // automod
- POLICY_CREATE = 140,
- POLICY_UPDATE = 141,
- POLICY_DELETE = 142,
- MESSAGE_BLOCKED_BY_POLICIES = 143, // in fosscord, blocked messages are stealth-dropped
- // instance policies affecting the guild
- GUILD_AFFECTED_BY_POLICIES = 216,
- // message moves
- IN_GUILD_MESSAGE_MOVE = 223,
- CROSS_GUILD_MESSAGE_MOVE = 224,
- // message routing
- ROUTE_CREATE = 225,
- ROUTE_UPDATE = 226,
-}
-
-@Entity("audit_logs")
-export class AuditLog extends BaseClass {
- @JoinColumn({ name: "target_id" })
- @ManyToOne(() => User)
- target?: User;
-
- @Column({ nullable: true })
- @RelationId((auditlog: AuditLog) => auditlog.user)
- user_id: string;
-
- @JoinColumn({ name: "user_id" })
- @ManyToOne(() => User, (user: User) => user.id)
- user: User;
-
- @Column({ type: "int" })
- action_type: AuditLogEvents;
-
- @Column({ type: "simple-json", nullable: true })
- options?: {
- delete_member_days?: string;
- members_removed?: string;
- channel_id?: string;
- messaged_id?: string;
- count?: string;
- id?: string;
- type?: string;
- role_name?: string;
- };
-
- @Column()
- @Column({ type: "simple-json" })
- changes: AuditLogChange[];
-
- @Column({ nullable: true })
- reason?: string;
-}
-
-export interface AuditLogChange {
- new_value?: AuditLogChangeValue;
- old_value?: AuditLogChangeValue;
- key: string;
-}
-
-export interface AuditLogChangeValue {
- name?: string;
- description?: string;
- icon_hash?: string;
- splash_hash?: string;
- discovery_splash_hash?: string;
- banner_hash?: string;
- owner_id?: string;
- region?: string;
- preferred_locale?: string;
- afk_channel_id?: string;
- afk_timeout?: number;
- rules_channel_id?: string;
- public_updates_channel_id?: string;
- mfa_level?: number;
- verification_level?: number;
- explicit_content_filter?: number;
- default_message_notifications?: number;
- vanity_url_code?: string;
- $add?: {}[];
- $remove?: {}[];
- prune_delete_days?: number;
- widget_enabled?: boolean;
- widget_channel_id?: string;
- system_channel_id?: string;
- position?: number;
- topic?: string;
- bitrate?: number;
- permission_overwrites?: ChannelPermissionOverwrite[];
- nsfw?: boolean;
- application_id?: string;
- rate_limit_per_user?: number;
- permissions?: string;
- color?: number;
- hoist?: boolean;
- mentionable?: boolean;
- allow?: string;
- deny?: string;
- code?: string;
- channel_id?: string;
- inviter_id?: string;
- max_uses?: number;
- uses?: number;
- max_age?: number;
- temporary?: boolean;
- deaf?: boolean;
- mute?: boolean;
- nick?: string;
- avatar_hash?: string;
- id?: string;
- type?: number;
- enable_emoticons?: boolean;
- expire_behavior?: number;
- expire_grace_period?: number;
- user_limit?: number;
-}
diff --git a/util/src/entities/BackupCodes.ts b/util/src/entities/BackupCodes.ts
deleted file mode 100644
index 9092c14e..00000000
--- a/util/src/entities/BackupCodes.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
-import { BaseClass } from "./BaseClass";
-import { User } from "./User";
-
-@Entity("backup_codes")
-export class BackupCode extends BaseClass {
- @JoinColumn({ name: "user_id" })
- @ManyToOne(() => User, { onDelete: "CASCADE" })
- user: User;
-
- @Column()
- code: string;
-
- @Column()
- consumed: boolean;
-
- @Column()
- expired: boolean;
-}
\ No newline at end of file
diff --git a/util/src/entities/Ban.ts b/util/src/entities/Ban.ts
deleted file mode 100644
index 9504bd8e..00000000
--- a/util/src/entities/Ban.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
-import { BaseClass } from "./BaseClass";
-import { Guild } from "./Guild";
-import { User } from "./User";
-
-@Entity("bans")
-export class Ban extends BaseClass {
- @Column({ nullable: true })
- @RelationId((ban: Ban) => ban.user)
- user_id: string;
-
- @JoinColumn({ name: "user_id" })
- @ManyToOne(() => User, {
- onDelete: "CASCADE",
- })
- user: User;
-
- @Column({ nullable: true })
- @RelationId((ban: Ban) => ban.guild)
- guild_id: string;
-
- @JoinColumn({ name: "guild_id" })
- @ManyToOne(() => Guild, {
- onDelete: "CASCADE",
- })
- guild: Guild;
-
- @Column({ nullable: true })
- @RelationId((ban: Ban) => ban.executor)
- executor_id: string;
-
- @JoinColumn({ name: "executor_id" })
- @ManyToOne(() => User)
- executor: User;
-
- @Column()
- ip: string;
-
- @Column({ nullable: true })
- reason?: string;
-}
diff --git a/util/src/entities/BaseClass.ts b/util/src/entities/BaseClass.ts
deleted file mode 100644
index c872e7f1..00000000
--- a/util/src/entities/BaseClass.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import "reflect-metadata";
-import { BaseEntity, EntityMetadata, ObjectIdColumn, PrimaryColumn, FindOptionsWhere, Generated, SaveOptions } from "typeorm";
-import { Snowflake } from "../util/Snowflake";
-
-export class BaseClassWithoutId extends BaseEntity {
- constructor() {
- super();
- }
-}
-
-export const PrimaryIdColumn = process.env.DATABASE?.startsWith("mongodb") ? ObjectIdColumn : PrimaryColumn;
-
-export class BaseClass extends BaseClassWithoutId {
- @PrimaryIdColumn()
- id: string;
-
- constructor() {
- super();
- if (!this.id) this.id = Snowflake.generate();
- }
-
- save(options?: SaveOptions | undefined): Promise<this> {
- if (!this.id) this.id = Snowflake.generate();
- return super.save(options);
- }
-}
diff --git a/util/src/entities/Categories.ts b/util/src/entities/Categories.ts
deleted file mode 100644
index 81fbc303..00000000
--- a/util/src/entities/Categories.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { PrimaryColumn, Column, Entity} from "typeorm";
-import { BaseClassWithoutId } from "./BaseClass";
-
-// TODO: categories:
-// [{
-// "id": 16,
-// "default": "Anime & Manga",
-// "localizations": {
-// "de": "Anime & Manga",
-// "fr": "Anim\u00e9s et mangas",
-// "ru": "\u0410\u043d\u0438\u043c\u0435 \u0438 \u043c\u0430\u043d\u0433\u0430"
-// }
-// },
-// "is_primary": false/true
-// }]
-// Also populate discord default categories
-
-@Entity("categories")
-export class Categories extends BaseClassWithoutId { // Not using snowflake
-
- @PrimaryColumn()
- id: number;
-
- @Column({ nullable: true })
- name: string;
-
- @Column({ type: "simple-json" })
- localizations: string;
-
- @Column({ nullable: true })
- is_primary: boolean;
-
-}
\ No newline at end of file
diff --git a/util/src/entities/Channel.ts b/util/src/entities/Channel.ts
deleted file mode 100644
index ade0fb39..00000000
--- a/util/src/entities/Channel.ts
+++ /dev/null
@@ -1,384 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, OneToMany, RelationId } from "typeorm";
-import { OrmUtils } from "../util/imports/OrmUtils";
-import { BaseClass } from "./BaseClass";
-import { Guild } from "./Guild";
-import { PublicUserProjection, User } from "./User";
-import { HTTPError } from "../util/imports/HTTPError";
-import { containsAll, emitEvent, getPermission, Snowflake, trimSpecial, InvisibleCharacters } from "../util";
-import { ChannelCreateEvent, ChannelRecipientRemoveEvent } from "../interfaces";
-import { Recipient } from "./Recipient";
-import { Message } from "./Message";
-import { ReadState } from "./ReadState";
-import { Invite } from "./Invite";
-import { VoiceState } from "./VoiceState";
-import { Webhook } from "./Webhook";
-import { DmChannelDTO } from "../dtos";
-
-export enum ChannelType {
- GUILD_TEXT = 0, // a text channel within a guild
- DM = 1, // a direct message between users
- GUILD_VOICE = 2, // a voice channel within a guild
- GROUP_DM = 3, // a direct message between multiple users
- GUILD_CATEGORY = 4, // an organizational category that contains zero or more channels
- GUILD_NEWS = 5, // a channel that users can follow and crosspost into a guild or route
- GUILD_STORE = 6, // a channel in which game developers can sell their things
- ENCRYPTED = 7, // end-to-end encrypted channel
- ENCRYPTED_THREAD = 8, // end-to-end encrypted thread channel
- TRANSACTIONAL = 9, // event chain style transactional channel
- GUILD_NEWS_THREAD = 10, // a temporary sub-channel within a GUILD_NEWS channel
- GUILD_PUBLIC_THREAD = 11, // a temporary sub-channel within a GUILD_TEXT channel
- GUILD_PRIVATE_THREAD = 12, // a temporary sub-channel within a GUILD_TEXT channel that is only viewable by those invited and those with the MANAGE_THREADS permission
- GUILD_STAGE_VOICE = 13, // a voice channel for hosting events with an audience
- DIRECTORY = 14, // guild directory listing channel
- GUILD_FORUM = 15, // forum composed of IM threads
- TICKET_TRACKER = 33, // ticket tracker, individual ticket items shall have type 12
- KANBAN = 34, // confluence like kanban board
- VOICELESS_WHITEBOARD = 35, // whiteboard but without voice (whiteboard + voice is the same as stage)
- CUSTOM_START = 64, // start custom channel types from here
- UNHANDLED = 255, // unhandled unowned pass-through channel type
-}
-
-@Entity("channels")
-export class Channel extends BaseClass {
- @Column()
- created_at: Date;
-
- @Column({ nullable: true })
- name?: string;
-
- @Column({ type: "text", nullable: true })
- icon?: string | null;
-
- @Column({ type: "int" })
- type: ChannelType;
-
- @OneToMany(() => Recipient, (recipient: Recipient) => recipient.channel, {
- cascade: true,
- orphanedRowAction: "delete",
- })
- recipients?: Recipient[];
-
- @Column({ nullable: true })
- last_message_id: string;
-
- @Column({ nullable: true })
- @RelationId((channel: Channel) => channel.guild)
- guild_id?: string;
-
- @JoinColumn({ name: "guild_id" })
- @ManyToOne(() => Guild, {
- onDelete: "CASCADE",
- })
- guild: Guild;
-
- @Column({ nullable: true })
- @RelationId((channel: Channel) => channel.parent)
- parent_id: string;
-
- @JoinColumn({ name: "parent_id" })
- @ManyToOne(() => Channel)
- parent?: Channel;
-
- // for group DMs and owned custom channel types
- @Column({ nullable: true })
- @RelationId((channel: Channel) => channel.owner)
- owner_id: string;
-
- @JoinColumn({ name: "owner_id" })
- @ManyToOne(() => User)
- owner: User;
-
- @Column({ nullable: true })
- last_pin_timestamp?: number;
-
- @Column({ nullable: true })
- default_auto_archive_duration?: number;
-
- @Column({ nullable: true })
- position?: number;
-
- @Column({ type: "simple-json", nullable: true })
- permission_overwrites?: ChannelPermissionOverwrite[];
-
- @Column({ nullable: true })
- video_quality_mode?: number;
-
- @Column({ nullable: true })
- bitrate?: number;
-
- @Column({ nullable: true })
- user_limit?: number;
-
- @Column({ nullable: true })
- nsfw?: boolean;
-
- @Column({ nullable: true })
- rate_limit_per_user?: number;
-
- @Column({ nullable: true })
- topic?: string;
-
- @OneToMany(() => Invite, (invite: Invite) => invite.channel, {
- cascade: true,
- orphanedRowAction: "delete",
- })
- invites?: Invite[];
-
- @Column({ nullable: true })
- retention_policy_id?: string;
-
- @OneToMany(() => Message, (message: Message) => message.channel, {
- cascade: true,
- orphanedRowAction: "delete",
- })
- messages?: Message[];
-
- @OneToMany(() => VoiceState, (voice_state: VoiceState) => voice_state.channel, {
- cascade: true,
- orphanedRowAction: "delete",
- })
- voice_states?: VoiceState[];
-
- @OneToMany(() => ReadState, (read_state: ReadState) => read_state.channel, {
- cascade: true,
- orphanedRowAction: "delete",
- })
- read_states?: ReadState[];
-
- @OneToMany(() => Webhook, (webhook: Webhook) => webhook.channel, {
- cascade: true,
- orphanedRowAction: "delete",
- })
- webhooks?: Webhook[];
-
- // TODO: DM channel
- static async createChannel(
- channel: Partial<Channel>,
- user_id: string = "0",
- opts?: {
- keepId?: boolean;
- skipExistsCheck?: boolean;
- skipPermissionCheck?: boolean;
- skipEventEmit?: boolean;
- skipNameChecks?: boolean;
- }
- ) {
- if (!opts?.skipPermissionCheck) {
- // Always check if user has permission first
- const permissions = await getPermission(user_id, channel.guild_id);
- permissions.hasThrow("MANAGE_CHANNELS");
- }
-
- if (!opts?.skipNameChecks) {
- const guild = await Guild.findOneOrFail({ where: { id: channel.guild_id } });
- if (!guild.features.includes("ALLOW_INVALID_CHANNEL_NAMES") && channel.name) {
- for (let character of InvisibleCharacters)
- if (channel.name.includes(character))
- throw new HTTPError("Channel name cannot include invalid characters", 403);
-
- if (channel.name.match(/\-\-+/g))
- throw new HTTPError("Channel name cannot include multiple adjacent dashes.", 403);
-
- if (channel.name.charAt(0) === "-" || channel.name.charAt(channel.name.length - 1) === "-")
- throw new HTTPError("Channel name cannot start/end with dash.", 403);
- }
-
- if (!guild.features.includes("ALLOW_UNNAMED_CHANNELS")) {
- if (!channel.name) throw new HTTPError("Channel name cannot be empty.", 403);
- }
- }
-
- switch (channel.type) {
- case ChannelType.GUILD_TEXT:
- case ChannelType.GUILD_NEWS:
- case ChannelType.GUILD_VOICE:
- if (channel.parent_id && !opts?.skipExistsCheck) {
- const exists = await Channel.findOneOrFail({ where: { id: channel.parent_id } });
- if (!exists) throw new HTTPError("Parent id channel doesn't exist", 400);
- if (exists.guild_id !== channel.guild_id)
- throw new HTTPError("The category channel needs to be in the guild");
- }
- break;
- case ChannelType.GUILD_CATEGORY:
- case ChannelType.UNHANDLED:
- break;
- case ChannelType.DM:
- case ChannelType.GROUP_DM:
- throw new HTTPError("You can't create a dm channel in a guild");
- case ChannelType.GUILD_STORE:
- default:
- throw new HTTPError("Not yet supported");
- }
-
- if (!channel.permission_overwrites) channel.permission_overwrites = [];
- // TODO: eagerly auto generate position of all guild channels
-
- channel = {
- ...channel,
- ...(!opts?.keepId && { id: Snowflake.generate() }),
- created_at: new Date(),
- position: (channel.type === ChannelType.UNHANDLED ? 0 : channel.position) || 0,
- };
-
- await Promise.all([
- OrmUtils.mergeDeep(new Channel(), channel).save(),
- !opts?.skipEventEmit
- ? emitEvent({
- event: "CHANNEL_CREATE",
- data: channel,
- guild_id: channel.guild_id,
- } as ChannelCreateEvent)
- : Promise.resolve(),
- ]);
-
- return channel;
- }
-
- static async createDMChannel(recipients: string[], creator_user_id: string, name?: string) {
- recipients = recipients.unique().filter((x) => x !== creator_user_id);
- const otherRecipientsUsers = await User.find({ where: recipients.map((x) => ({ id: x })) });
-
- // TODO: check config for max number of recipients
- /** if you want to disallow note to self channels, uncomment the conditional below
- if (otherRecipientsUsers.length !== recipients.length) {
- throw new HTTPError("Recipient/s not found");
- }
- **/
-
- const type = recipients.length > 1 ? ChannelType.GROUP_DM : ChannelType.DM;
-
- let channel = null;
-
- const channelRecipients = [...recipients, creator_user_id];
-
- const userRecipients = await Recipient.find({
- where: { user_id: creator_user_id },
- relations: ["channel", "channel.recipients"],
- });
-
- for (let ur of userRecipients) {
- let re = ur.channel.recipients!.map((r) => r.user_id);
- if (re.length === channelRecipients.length) {
- if (containsAll(re, channelRecipients)) {
- if (channel == null) {
- channel = ur.channel;
- ur = OrmUtils.mergeDeep(ur, { closed: false });
- await ur.save();
- }
- }
- }
- }
-
- if (channel == null) {
- name = trimSpecial(name);
-
- channel = await (
- OrmUtils.mergeDeep(new Channel(), {
- name,
- type,
- owner_id: type === ChannelType.DM ? undefined : null, // 1:1 DMs are ownerless in fosscord-server
- created_at: new Date(),
- last_message_id: null,
- recipients: channelRecipients.map((x) =>
- OrmUtils.mergeDeep(new Recipient(), {
- user_id: x,
- closed: !(type === ChannelType.GROUP_DM || x === creator_user_id),
- })
- ),
- }) as Channel
- ).save();
- }
-
- const channel_dto = await DmChannelDTO.from(channel);
-
- if (type === ChannelType.GROUP_DM) {
- for (let recipient of channel.recipients!) {
- await emitEvent({
- event: "CHANNEL_CREATE",
- data: channel_dto.excludedRecipients([recipient.user_id]),
- user_id: recipient.user_id,
- });
- }
- } else {
- await emitEvent({ event: "CHANNEL_CREATE", data: channel_dto, user_id: creator_user_id });
- }
-
- if (recipients.length === 1) return channel_dto;
- else return channel_dto.excludedRecipients([creator_user_id]);
- }
-
- static async removeRecipientFromChannel(channel: Channel, user_id: string) {
- await Recipient.delete({ channel_id: channel.id, user_id: user_id });
- channel.recipients = channel.recipients?.filter((r) => r.user_id !== user_id);
-
- if (channel.recipients?.length === 0) {
- await Channel.deleteChannel(channel);
- await emitEvent({
- event: "CHANNEL_DELETE",
- data: await DmChannelDTO.from(channel, [user_id]),
- user_id: user_id,
- });
- return;
- }
-
- await emitEvent({
- event: "CHANNEL_DELETE",
- data: await DmChannelDTO.from(channel, [user_id]),
- user_id: user_id,
- });
-
- //If the owner leave the server user is the new owner
- if (channel.owner_id === user_id) {
- channel.owner_id = "1"; // The channel is now owned by the server user
- await emitEvent({
- event: "CHANNEL_UPDATE",
- data: await DmChannelDTO.from(channel, [user_id]),
- channel_id: channel.id,
- });
- }
-
- await channel.save();
-
- await emitEvent({
- event: "CHANNEL_RECIPIENT_REMOVE",
- data: {
- channel_id: channel.id,
- user: await User.findOneOrFail({ where: { id: user_id }, select: PublicUserProjection }),
- },
- channel_id: channel.id,
- } as ChannelRecipientRemoveEvent);
- }
-
- static async deleteChannel(channel: Channel) {
- await Message.delete({ channel_id: channel.id }); //TODO we should also delete the attachments from the cdn but to do that we need to move cdn.ts in util
- //TODO before deleting the channel we should check and delete other relations
- await Channel.delete({ id: channel.id });
- }
-
- isDm() {
- return this.type === ChannelType.DM || this.type === ChannelType.GROUP_DM;
- }
-
- // Does the channel support sending messages ( eg categories do not )
- isWritable() {
- const disallowedChannelTypes = [
- ChannelType.GUILD_CATEGORY,
- ChannelType.GUILD_STAGE_VOICE,
- ChannelType.VOICELESS_WHITEBOARD,
- ];
- return disallowedChannelTypes.indexOf(this.type) == -1;
- }
-}
-
-export interface ChannelPermissionOverwrite {
- allow: string;
- deny: string;
- id: string;
- type: ChannelPermissionOverwriteType;
-}
-
-export enum ChannelPermissionOverwriteType {
- role = 0,
- member = 1,
- group = 2,
-}
diff --git a/util/src/entities/ClientRelease.ts b/util/src/entities/ClientRelease.ts
deleted file mode 100644
index c5afd307..00000000
--- a/util/src/entities/ClientRelease.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Column, Entity} from "typeorm";
-import { BaseClass } from "./BaseClass";
-
-@Entity("client_release")
-export class Release extends BaseClass {
- @Column()
- name: string;
-
- @Column()
- pub_date: string;
-
- @Column()
- url: string;
-
- @Column()
- deb_url: string;
-
- @Column()
- osx_url: string;
-
- @Column()
- win_url: string;
-
- @Column({ nullable: true })
- notes?: string;
-}
diff --git a/util/src/entities/Config.ts b/util/src/entities/Config.ts
deleted file mode 100644
index 901a5e54..00000000
--- a/util/src/entities/Config.ts
+++ /dev/null
@@ -1,415 +0,0 @@
-import { Column, Entity } from "typeorm";
-import { BaseClassWithoutId, PrimaryIdColumn } from "./BaseClass";
-import crypto from "crypto";
-import { Snowflake } from "../util/Snowflake";
-import { SessionsReplace } from "..";
-import { hostname } from "os";
-
-@Entity("config")
-export class ConfigEntity extends BaseClassWithoutId {
- @PrimaryIdColumn()
- key: string;
-
- @Column({ type: "simple-json", nullable: true })
- value: number | boolean | null | string | undefined;
-}
-
-export interface RateLimitOptions {
- bot?: number;
- count: number;
- window: number;
- onyIp?: boolean;
-}
-
-export interface Region {
- id: string;
- name: string;
- endpoint: string;
- location?: {
- latitude: number;
- longitude: number;
- };
- vip: boolean;
- custom: boolean;
- deprecated: boolean;
-}
-
-export interface KafkaBroker {
- ip: string;
- port: number;
-}
-
-export interface ConfigValue {
- gateway: {
- endpointClient: string | null;
- endpointPrivate: string | null;
- endpointPublic: string | null;
- };
- cdn: {
- endpointClient: string | null;
- endpointPublic: string | null;
- endpointPrivate: string | null;
- };
- api: {
- defaultVersion: string;
- activeVersions: string[];
- useFosscordEnhancements: boolean;
- };
- general: {
- instanceName: string;
- instanceDescription: string | null;
- frontPage: string | null;
- tosPage: string | null;
- correspondenceEmail: string | null;
- correspondenceUserID: string | null;
- image: string | null;
- instanceId: string;
- };
- limits: {
- user: {
- maxGuilds: number;
- maxUsername: number;
- maxFriends: number;
- };
- guild: {
- maxRoles: number;
- maxEmojis: number;
- maxMembers: number;
- maxChannels: number;
- maxChannelsInCategory: number;
- hideOfflineMember: number;
- };
- message: {
- maxCharacters: number;
- maxTTSCharacters: number;
- maxReactions: number;
- maxAttachmentSize: number;
- maxBulkDelete: number;
- maxEmbedDownloadSize: number;
- };
- channel: {
- maxPins: number;
- maxTopic: number;
- maxWebhooks: number;
- };
- rate: {
- disabled: boolean;
- ip: Omit<RateLimitOptions, "bot_count">;
- global: RateLimitOptions;
- error: RateLimitOptions;
- routes: {
- guild: RateLimitOptions;
- webhook: RateLimitOptions;
- channel: RateLimitOptions;
- auth: {
- login: RateLimitOptions;
- register: RateLimitOptions;
- };
- // TODO: rate limit configuration for all routes
- };
- };
- };
- security: {
- autoUpdate: boolean | number;
- requestSignature: string;
- jwtSecret: string;
- forwadedFor: string | null; // header to get the real user ip address
- captcha: {
- enabled: boolean;
- service: "recaptcha" | "hcaptcha" | null; // TODO: hcaptcha, custom
- sitekey: string | null;
- secret: string | null;
- };
- ipdataApiKey: string | null;
- twoFactor: {
- generateBackupCodes: boolean;
- };
- };
- login: {
- requireCaptcha: boolean;
- };
- register: {
- defaultRights: string;
- email: {
- required: boolean;
- allowlist: boolean;
- blocklist: boolean;
- domains: string[];
- };
- dateOfBirth: {
- required: boolean;
- minimum: number; // in years
- };
- disabled: boolean;
- requireCaptcha: boolean;
- requireInvite: boolean;
- guestsRequireInvite: boolean;
- allowNewRegistration: boolean;
- allowMultipleAccounts: boolean;
- blockProxies: boolean;
- password: {
- required: boolean;
- minLength: number;
- minNumbers: number;
- minUpperCase: number;
- minSymbols: number;
- };
- incrementingDiscriminators: boolean; // random otherwise
- };
- regions: {
- default: string;
- useDefaultAsOptimal: boolean;
- available: Region[];
- };
- guild: {
- discovery: {
- showAllGuilds: boolean;
- useRecommendation: boolean; // TODO: Recommendation, privacy concern?
- offset: number;
- limit: number;
- };
- autoJoin: {
- enabled: boolean;
- guilds: string[];
- canLeave: boolean;
- };
- };
- gif: {
- enabled: boolean;
- provider: "tenor"; // more coming soon
- apiKey?: string;
- };
- rabbitmq: {
- host: string | null;
- };
- kafka: {
- brokers: KafkaBroker[] | null;
- };
- templates: {
- enabled: Boolean;
- allowTemplateCreation: Boolean;
- allowDiscordTemplates: Boolean;
- allowRaws: Boolean;
- },
- client: {
- useTestClient: Boolean;
- releases: {
- useLocalRelease: Boolean; //TODO
- upstreamVersion: string;
- }
- },
- metrics: {
- timeout: number;
- },
- sentry: {
- enabled: boolean;
- endpoint: string;
- traceSampleRate: number;
- environment: string;
- }
-}
-
-export const DefaultConfigOptions: ConfigValue = {
- gateway: {
- endpointClient: null,
- endpointPrivate: null,
- endpointPublic: null,
- },
- cdn: {
- endpointClient: null,
- endpointPrivate: null,
- endpointPublic: null,
- },
- api: {
- defaultVersion: "9",
- activeVersions: ["6", "7", "8", "9"],
- useFosscordEnhancements: true,
- },
- general: {
- instanceName: "Fosscord Instance",
- instanceDescription: "This is a Fosscord instance made in pre-release days",
- frontPage: null,
- tosPage: null,
- correspondenceEmail: "noreply@localhost.local",
- correspondenceUserID: null,
- image: null,
- instanceId: Snowflake.generate(),
- },
- limits: {
- user: {
- maxGuilds: 1048576,
- maxUsername: 127,
- maxFriends: 5000,
- },
- guild: {
- maxRoles: 1000,
- maxEmojis: 2000,
- maxMembers: 25000000,
- maxChannels: 65535,
- maxChannelsInCategory: 65535,
- hideOfflineMember: 3,
- },
- message: {
- maxCharacters: 1048576,
- maxTTSCharacters: 160,
- maxReactions: 2048,
- maxAttachmentSize: 1024 * 1024 * 1024,
- maxEmbedDownloadSize: 1024 * 1024 * 5,
- maxBulkDelete: 1000,
- },
- channel: {
- maxPins: 500,
- maxTopic: 1024,
- maxWebhooks: 100,
- },
- rate: {
- disabled: true,
- ip: {
- count: 500,
- window: 5,
- },
- global: {
- count: 250,
- window: 5,
- },
- error: {
- count: 10,
- window: 5,
- },
- routes: {
- guild: {
- count: 5,
- window: 5,
- },
- webhook: {
- count: 10,
- window: 5,
- },
- channel: {
- count: 10,
- window: 5,
- },
- auth: {
- login: {
- count: 5,
- window: 60,
- },
- register: {
- count: 2,
- window: 60 * 60 * 12,
- },
- },
- },
- },
- },
- security: {
- autoUpdate: true,
- requestSignature: crypto.randomBytes(32).toString("base64"),
- jwtSecret: crypto.randomBytes(256).toString("base64"),
- forwadedFor: null,
- // forwadedFor: "X-Forwarded-For" // nginx/reverse proxy
- // forwadedFor: "CF-Connecting-IP" // cloudflare:
- captcha: {
- enabled: false,
- service: null,
- sitekey: null,
- secret: null,
- },
- ipdataApiKey: "eca677b284b3bac29eb72f5e496aa9047f26543605efe99ff2ce35c9",
- twoFactor: {
- generateBackupCodes: true,
- },
- },
- login: {
- requireCaptcha: false,
- },
- register: {
- email: {
- required: false,
- allowlist: false,
- blocklist: true,
- domains: [], // TODO: efficiently save domain blocklist in database
- // domains: fs.readFileSync(__dirname + "/blockedEmailDomains.txt", { encoding: "utf8" }).split("\n"),
- },
- dateOfBirth: {
- required: true,
- minimum: 13,
- },
- disabled: false,
- requireInvite: false,
- guestsRequireInvite: true,
- requireCaptcha: true,
- allowNewRegistration: true,
- allowMultipleAccounts: true,
- blockProxies: true,
- password: {
- required: false,
- minLength: 8,
- minNumbers: 2,
- minUpperCase: 2,
- minSymbols: 0,
- },
- incrementingDiscriminators: false,
- defaultRights: "0"
- },
- regions: {
- default: "fosscord",
- useDefaultAsOptimal: true,
- available: [
- {
- id: "fosscord",
- name: "Fosscord",
- endpoint: "127.0.0.1:3004",
- vip: false,
- custom: false,
- deprecated: false,
- },
- ],
- },
- guild: {
- discovery: {
- showAllGuilds: false,
- useRecommendation: false,
- offset: 0,
- limit: 24,
- },
- autoJoin: {
- enabled: true,
- canLeave: true,
- guilds: [],
- },
- },
- gif: {
- enabled: true,
- provider: "tenor",
- apiKey: "LIVDSRZULELA",
- },
- rabbitmq: {
- host: null,
- },
- kafka: {
- brokers: null,
- },
- templates: {
- enabled: true,
- allowTemplateCreation: true,
- allowDiscordTemplates: true,
- allowRaws: false
- },
- client: {
- useTestClient: true,
- releases: {
- useLocalRelease: true,
- upstreamVersion: "0.0.264"
- }
- },
- metrics: {
- timeout: 30000
- },
- sentry: {
- enabled: false,
- endpoint: "https://05e8e3d005f34b7d97e920ae5870a5e5@sentry.thearcanebrony.net/6",
- traceSampleRate: 1.0,
- environment: hostname()
- }
-};
diff --git a/util/src/entities/ConnectedAccount.ts b/util/src/entities/ConnectedAccount.ts
deleted file mode 100644
index 09ae30ab..00000000
--- a/util/src/entities/ConnectedAccount.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
-import { BaseClass } from "./BaseClass";
-import { User } from "./User";
-
-export interface PublicConnectedAccount extends Pick<ConnectedAccount, "name" | "type" | "verified"> {}
-
-@Entity("connected_accounts")
-export class ConnectedAccount extends BaseClass {
- @Column({ nullable: true })
- @RelationId((account: ConnectedAccount) => account.user)
- user_id: string;
-
- @JoinColumn({ name: "user_id" })
- @ManyToOne(() => User, {
- onDelete: "CASCADE",
- })
- user: User;
-
- @Column({ select: false })
- access_token: string;
-
- @Column({ select: false })
- friend_sync: boolean;
-
- @Column()
- name: string;
-
- @Column({ select: false })
- revoked: boolean;
-
- @Column({ select: false })
- show_activity: boolean;
-
- @Column()
- type: string;
-
- @Column()
- verified: boolean;
-
- @Column({ select: false })
- visibility: number;
-}
diff --git a/util/src/entities/Emoji.ts b/util/src/entities/Emoji.ts
deleted file mode 100644
index a3615b7d..00000000
--- a/util/src/entities/Emoji.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
-import { User } from ".";
-import { BaseClass } from "./BaseClass";
-import { Guild } from "./Guild";
-import { Role } from "./Role";
-
-@Entity("emojis")
-export class Emoji extends BaseClass {
- @Column()
- animated: boolean;
-
- @Column()
- available: boolean; // whether this emoji can be used, may be false due to various reasons
-
- @Column()
- guild_id: string;
-
- @JoinColumn({ name: "guild_id" })
- @ManyToOne(() => Guild, {
- onDelete: "CASCADE",
- })
- guild: Guild;
-
- @Column({ nullable: true })
- @RelationId((emoji: Emoji) => emoji.user)
- user_id: string;
-
- @JoinColumn({ name: "user_id" })
- @ManyToOne(() => User)
- user: User;
-
- @Column()
- managed: boolean;
-
- @Column()
- name: string;
-
- @Column()
- require_colons: boolean;
-
- @Column({ type: "simple-array" })
- roles: string[]; // roles this emoji is whitelisted to (new discord feature?)
-
- @Column({ type: "simple-array", nullable: true })
- groups: string[]; // user groups this emoji is whitelisted to (Fosscord extension)
-}
diff --git a/util/src/entities/Encryption.ts b/util/src/entities/Encryption.ts
deleted file mode 100644
index 6b578d15..00000000
--- a/util/src/entities/Encryption.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, OneToMany, RelationId } from "typeorm";
-import { BaseClass } from "./BaseClass";
-import { Guild } from "./Guild";
-import { PublicUserProjection, User } from "./User";
-import { HTTPError } from "..";
-import { containsAll, emitEvent, getPermission, Snowflake, trimSpecial, InvisibleCharacters } from "../util";
-import { BitField, BitFieldResolvable, BitFlag } from "../util/BitField";
-import { Recipient } from "./Recipient";
-import { Message } from "./Message";
-import { ReadState } from "./ReadState";
-import { Invite } from "./Invite";
-import { DmChannelDTO } from "../dtos";
-
-@Entity("security_settings")
-export class SecuritySettings extends BaseClass {
-
- @Column({nullable: true})
- guild_id: Snowflake;
-
- @Column({nullable: true})
- channel_id: Snowflake;
-
- @Column()
- encryption_permission_mask: BitField;
-
- @Column()
- allowed_algorithms: string[];
-
- @Column()
- current_algorithm: string;
-
- @Column({nullable: true})
- used_since_message: Snowflake;
-
-}
diff --git a/util/src/entities/Group.ts b/util/src/entities/Group.ts
deleted file mode 100644
index b24d38cf..00000000
--- a/util/src/entities/Group.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
-
-import { BaseClass } from "./BaseClass";
-
-@Entity("groups")
-export class UserGroup extends BaseClass {
- @Column({ nullable: true })
- parent?: BigInt;
-
- @Column()
- color: number;
-
- @Column()
- hoist: boolean;
-
- @Column()
- mentionable: boolean;
-
- @Column()
- name: string;
-
- @Column()
- rights: BigInt;
-
- @Column()
- position: number;
-
- @Column({ nullable: true })
- icon: BigInt;
-
- @Column({ nullable: true })
- unicode_emoji: BigInt;
-}
diff --git a/util/src/entities/Guild.ts b/util/src/entities/Guild.ts
deleted file mode 100644
index 77a04350..00000000
--- a/util/src/entities/Guild.ts
+++ /dev/null
@@ -1,366 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToMany, ManyToOne, OneToMany, OneToOne, RelationId } from "typeorm";
-import { OrmUtils } from "../util/imports/OrmUtils";
-import { Config, handleFile, Snowflake } from "..";
-import { Ban } from "./Ban";
-import { BaseClass } from "./BaseClass";
-import { Channel } from "./Channel";
-import { Emoji } from "./Emoji";
-import { Invite } from "./Invite";
-import { Member } from "./Member";
-import { Role } from "./Role";
-import { Sticker } from "./Sticker";
-import { Template } from "./Template";
-import { User } from "./User";
-import { VoiceState } from "./VoiceState";
-import { Webhook } from "./Webhook";
-
-// TODO: application_command_count, application_command_counts: {1: 0, 2: 0, 3: 0}
-// TODO: guild_scheduled_events
-// TODO: stage_instances
-// TODO: threads
-// TODO:
-// "keywords": [
-// "Genshin Impact",
-// "Paimon",
-// "Honkai Impact",
-// "ARPG",
-// "Open-World",
-// "Waifu",
-// "Anime",
-// "Genshin",
-// "miHoYo",
-// "Gacha"
-// ],
-
-export const PublicGuildRelations = [
- "channels",
- "emojis",
- "members",
- "roles",
- "stickers",
- "voice_states",
- "members.user",
-];
-
-@Entity("guilds")
-export class Guild extends BaseClass {
- @Column({ nullable: true })
- @RelationId((guild: Guild) => guild.afk_channel)
- afk_channel_id?: string;
-
- @JoinColumn({ name: "afk_channel_id" })
- @ManyToOne(() => Channel)
- afk_channel?: Channel;
-
- @Column({ nullable: true })
- afk_timeout?: number;
-
- // * commented out -> use owner instead
- // application id of the guild creator if it is bot-created
- // @Column({ nullable: true })
- // application?: string;
-
- @JoinColumn({ name: "ban_ids" })
- @OneToMany(() => Ban, (ban: Ban) => ban.guild, {
- cascade: true,
- orphanedRowAction: "delete",
- })
- bans: Ban[];
-
- @Column({ nullable: true })
- banner?: string;
-
- @Column({ nullable: true })
- default_message_notifications?: number;
-
- @Column({ nullable: true })
- description?: string;
-
- @Column({ nullable: true })
- discovery_splash?: string;
-
- @Column({ nullable: true })
- explicit_content_filter?: number;
-
- @Column({ type: "simple-array" })
- features: string[]; //TODO use enum
- //TODO: https://discord.com/developers/docs/resources/guild#guild-object-guild-features
-
- @Column({ nullable: true })
- primary_category_id: number;
-
- @Column({ nullable: true })
- icon?: string;
-
- @Column({ nullable: true })
- large?: boolean;
-
- @Column({ nullable: true })
- max_members?: number; // e.g. default 100.000
-
- @Column({ nullable: true })
- max_presences?: number;
-
- @Column({ nullable: true })
- max_video_channel_users?: number; // ? default: 25, is this max 25 streaming or watching
-
- @Column({ nullable: true })
- member_count?: number;
-
- @Column({ nullable: true })
- presence_count?: number; // users online
-
- @OneToMany(() => Member, (member: Member) => member.guild, {
- cascade: true,
- orphanedRowAction: "delete",
- onDelete: "CASCADE",
- })
- members: Member[];
-
- @JoinColumn({ name: "role_ids" })
- @OneToMany(() => Role, (role: Role) => role.guild, {
- cascade: true,
- orphanedRowAction: "delete",
- onDelete: "CASCADE",
- })
- roles: Role[];
-
- @JoinColumn({ name: "channel_ids" })
- @OneToMany(() => Channel, (channel: Channel) => channel.guild, {
- cascade: true,
- orphanedRowAction: "delete",
- })
- channels: Channel[];
-
- @Column({ nullable: true })
- @RelationId((guild: Guild) => guild.template)
- template_id?: string;
-
- @JoinColumn({ name: "template_id", referencedColumnName: "id" })
- @ManyToOne(() => Template)
- template: Template;
-
- @JoinColumn({ name: "emoji_ids" })
- @OneToMany(() => Emoji, (emoji: Emoji) => emoji.guild, {
- cascade: true,
- orphanedRowAction: "delete",
- onDelete: "CASCADE",
- })
- emojis: Emoji[];
-
- @JoinColumn({ name: "sticker_ids" })
- @OneToMany(() => Sticker, (sticker: Sticker) => sticker.guild, {
- cascade: true,
- orphanedRowAction: "delete",
- onDelete: "CASCADE",
- })
- stickers: Sticker[];
-
- @JoinColumn({ name: "invite_ids" })
- @OneToMany(() => Invite, (invite: Invite) => invite.guild, {
- cascade: true,
- orphanedRowAction: "delete",
- onDelete: "CASCADE",
- })
- invites: Invite[];
-
- @JoinColumn({ name: "voice_state_ids" })
- @OneToMany(() => VoiceState, (voicestate: VoiceState) => voicestate.guild, {
- cascade: true,
- orphanedRowAction: "delete",
- onDelete: "CASCADE",
- })
- voice_states: VoiceState[];
-
- @JoinColumn({ name: "webhook_ids" })
- @OneToMany(() => Webhook, (webhook: Webhook) => webhook.guild, {
- cascade: true,
- orphanedRowAction: "delete",
- onDelete: "CASCADE",
- })
- webhooks: Webhook[];
-
- @Column({ nullable: true })
- mfa_level?: number;
-
- @Column()
- name: string;
-
- @Column({ nullable: true })
- @RelationId((guild: Guild) => guild.owner)
- owner_id?: string; // optional to allow for ownerless guilds
-
- @JoinColumn({ name: "owner_id", referencedColumnName: "id" })
- @ManyToOne(() => User)
- owner?: User; // optional to allow for ownerless guilds
-
- @Column({ nullable: true })
- preferred_locale?: string;
-
- @Column({ nullable: true })
- premium_subscription_count?: number;
-
- @Column({ nullable: true })
- premium_tier?: number; // crowd premium level
-
- @Column({ nullable: true })
- @RelationId((guild: Guild) => guild.public_updates_channel)
- public_updates_channel_id: string;
-
- @JoinColumn({ name: "public_updates_channel_id" })
- @ManyToOne(() => Channel)
- public_updates_channel?: Channel;
-
- @Column({ nullable: true })
- @RelationId((guild: Guild) => guild.rules_channel)
- rules_channel_id?: string;
-
- @JoinColumn({ name: "rules_channel_id" })
- @ManyToOne(() => Channel)
- rules_channel?: string;
-
- @Column({ nullable: true })
- region?: string;
-
- @Column({ nullable: true })
- splash?: string;
-
- @Column({ nullable: true })
- @RelationId((guild: Guild) => guild.system_channel)
- system_channel_id?: string;
-
- @JoinColumn({ name: "system_channel_id" })
- @ManyToOne(() => Channel)
- system_channel?: Channel;
-
- @Column({ nullable: true })
- system_channel_flags?: number;
-
- @Column({ nullable: true })
- unavailable?: boolean;
-
- @Column({ nullable: true })
- verification_level?: number;
-
- @Column({ type: "simple-json" })
- welcome_screen: {
- enabled: boolean;
- description: string;
- welcome_channels: {
- description: string;
- emoji_id?: string;
- emoji_name: string;
- channel_id: string;
- }[];
- };
-
- @Column({ nullable: true })
- @RelationId((guild: Guild) => guild.widget_channel)
- widget_channel_id?: string;
-
- @JoinColumn({ name: "widget_channel_id" })
- @ManyToOne(() => Channel)
- widget_channel?: Channel;
-
- @Column({ nullable: true })
- widget_enabled?: boolean;
-
- @Column({ nullable: true })
- nsfw_level?: number;
-
- @Column({ nullable: true })
- nsfw?: boolean;
-
- // TODO: nested guilds
- @Column({ nullable: true })
- parent?: string;
-
- // only for developer portal
- permissions?: number;
-
- static async createGuild(body: {
- name?: string;
- icon?: string | null;
- owner_id?: string;
- channels?: Partial<Channel>[];
- }) {
- const guild_id = Snowflake.generate();
-
- const guild: Guild = OrmUtils.mergeDeep(new Guild(), {
- name: body.name || "Fosscord",
- icon: await handleFile(`/icons/${guild_id}`, body.icon as string),
- region: Config.get().regions.default,
- owner_id: body.owner_id, // TODO: need to figure out a way for ownerless guilds and multiply-owned guilds
- afk_timeout: 300,
- default_message_notifications: 1, // defaults effect: setting the push default at mentions-only will save a lot
- explicit_content_filter: 0,
- features: [],
- primary_category_id: null,
- id: guild_id,
- max_members: 250000,
- max_presences: 250000,
- max_video_channel_users: 200,
- presence_count: 0,
- member_count: 0, // will automatically be increased by addMember()
- mfa_level: 0,
- preferred_locale: "en-US",
- premium_subscription_count: 0,
- premium_tier: 0,
- system_channel_flags: 4, // defaults effect: suppress the setup tips to save performance
- unavailable: false,
- nsfw: false,
- nsfw_level: 0,
- verification_level: 0,
- welcome_screen: {
- enabled: false,
- description: "Fill in your description",
- welcome_channels: [],
- },
- widget_enabled: true, // NB: don't set it as false to prevent artificial restrictions
- });
- await guild.save();
-
- // we have to create the role _after_ the guild because else we would get a "SQLITE_CONSTRAINT: FOREIGN KEY constraint failed" error
- // TODO: make the @everyone a pseudorole that is dynamically generated at runtime so we can save storage
- let role: Role = OrmUtils.mergeDeep(new Role(), {
- id: guild_id,
- guild_id: guild_id,
- color: 0,
- hoist: false,
- managed: false,
- // NB: in Fosscord, every role will be non-managed, as we use user-groups instead of roles for managed groups
- mentionable: false,
- name: "@everyone",
- permissions: String("2251804225"),
- position: 0,
- icon: null,
- unicode_emoji: null,
- });
- await role.save();
-
- if (!body.channels || !body.channels.length) body.channels = [{ id: "01", type: 0, name: "general" }];
-
- const ids = new Map();
-
- body.channels.forEach((x) => {
- if (x.id) {
- ids.set(x.id, Snowflake.generate());
- }
- });
-
- for (const channel of body.channels?.sort((a, b) => (a.parent_id ? 1 : -1))) {
- let id = ids.get(channel.id) || Snowflake.generate();
-
- let parent_id = ids.get(channel.parent_id);
-
- await Channel.createChannel({ ...channel, guild_id, id, parent_id }, body.owner_id, {
- keepId: true,
- skipExistsCheck: true,
- skipPermissionCheck: true,
- skipEventEmit: true,
- });
- }
-
- return guild;
- }
-}
diff --git a/util/src/entities/Invite.ts b/util/src/entities/Invite.ts
deleted file mode 100644
index 1e0ebe52..00000000
--- a/util/src/entities/Invite.ts
+++ /dev/null
@@ -1,88 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, RelationId, PrimaryColumn } from "typeorm";
-import { Member } from "./Member";
-import { BaseClassWithoutId } from "./BaseClass";
-import { Channel } from "./Channel";
-import { Guild } from "./Guild";
-import { User } from "./User";
-import { random } from "@fosscord/api";
-
-export const PublicInviteRelation = ["inviter", "guild", "channel"];
-
-@Entity("invites")
-export class Invite extends BaseClassWithoutId {
- @PrimaryColumn()
- code: string = random();
-
- @Column()
- temporary: boolean = true;
-
- @Column()
- uses: number = 0;
-
- @Column()
- max_uses: number;
-
- @Column()
- max_age: number;
-
- @Column()
- created_at: Date = new Date();
-
- @Column()
- expires_at: Date;
-
- @Column({ nullable: true })
- @RelationId((invite: Invite) => invite.guild)
- guild_id: string;
-
- @JoinColumn({ name: "guild_id" })
- @ManyToOne(() => Guild, {
- onDelete: "CASCADE",
- })
- guild: Guild;
-
- @Column({ nullable: true })
- @RelationId((invite: Invite) => invite.channel)
- channel_id: string;
-
- @JoinColumn({ name: "channel_id" })
- @ManyToOne(() => Channel, {
- onDelete: "CASCADE",
- })
- channel: Channel;
-
- @Column({ nullable: true })
- @RelationId((invite: Invite) => invite.inviter)
- inviter_id: string;
-
- @JoinColumn({ name: "inviter_id" })
- @ManyToOne(() => User, {
- onDelete: "CASCADE"
- })
- inviter: User;
-
- @Column({ nullable: true })
- @RelationId((invite: Invite) => invite.target_user)
- target_user_id: string;
-
- @JoinColumn({ name: "target_user_id" })
- @ManyToOne(() => User, {
- onDelete: "CASCADE",
- })
- target_user?: string; // could be used for "User specific invites" https://github.com/fosscord/fosscord/issues/62
-
- @Column({ nullable: true })
- target_user_type?: number;
-
- @Column({ nullable: true })
- vanity_url?: boolean;
-
- static async joinGuild(user_id: string, code: string) {
- const invite = await Invite.findOneOrFail({ where: { code } });
- if (invite.uses++ >= invite.max_uses && invite.max_uses !== 0) await Invite.delete({ code });
- else await invite.save();
-
- await Member.addToGuild(user_id, invite.guild_id);
- return invite;
- }
-}
diff --git a/util/src/entities/Member.ts b/util/src/entities/Member.ts
deleted file mode 100644
index baac58ed..00000000
--- a/util/src/entities/Member.ts
+++ /dev/null
@@ -1,360 +0,0 @@
-import { PublicUser, User } from "./User";
-import { BaseClass } from "./BaseClass";
-import {
- Column,
- Entity,
- Index,
- JoinColumn,
- JoinTable,
- ManyToMany,
- ManyToOne,
- PrimaryGeneratedColumn,
- RelationId,
-} from "typeorm";
-import { Guild } from "./Guild";
-import { Config, emitEvent } from "../util";
-import {
- GuildCreateEvent,
- GuildDeleteEvent,
- GuildMemberAddEvent,
- GuildMemberRemoveEvent,
- GuildMemberUpdateEvent,
-} from "../interfaces";
-import { HTTPError } from "../util/imports/HTTPError";
-import { Role } from "./Role";
-import { BaseClassWithoutId } from "./BaseClass";
-import { Ban, PublicGuildRelations } from ".";
-import { DiscordApiErrors } from "../util/Constants";
-import { OrmUtils } from "../util/imports/OrmUtils";
-
-export const MemberPrivateProjection: (keyof Member)[] = [
- "id",
- "guild",
- "guild_id",
- "deaf",
- "joined_at",
- "last_message_id",
- "mute",
- "nick",
- "pending",
- "premium_since",
- "roles",
- "settings",
- "user",
-];
-
-@Entity("members")
-@Index(["id", "guild_id"], { unique: true })
-export class Member extends BaseClassWithoutId {
- @PrimaryGeneratedColumn()
- index: string;
-
- @Column()
- @RelationId((member: Member) => member.user)
- id: string;
-
- @JoinColumn({ name: "id" })
- @ManyToOne(() => User, {
- onDelete: "CASCADE",
- })
- user: User;
-
- @Column()
- @RelationId((member: Member) => member.guild)
- guild_id: string;
-
- @JoinColumn({ name: "guild_id" })
- @ManyToOne(() => Guild, {
- onDelete: "CASCADE",
- })
- guild: Guild;
-
- @Column({ nullable: true })
- nick?: string;
-
- @JoinTable({
- name: "member_roles",
- joinColumn: { name: "index", referencedColumnName: "index" },
- inverseJoinColumn: {
- name: "role_id",
- referencedColumnName: "id",
- },
- })
- @ManyToMany(() => Role, { cascade: true })
- roles: Role[];
-
- @Column()
- joined_at: Date;
-
- @Column({ nullable: true })
- premium_since?: Date;
-
- @Column()
- deaf: boolean;
-
- @Column()
- mute: boolean;
-
- @Column()
- pending: boolean;
-
- @Column({ type: "simple-json", select: false })
- settings: UserGuildSettings;
-
- @Column({ nullable: true })
- last_message_id?: string;
-
- /**
- @JoinColumn({ name: "id" })
- @ManyToOne(() => User, {
- onDelete: "DO NOTHING",
- // do not auto-kick force-joined members just because their joiners left the server
- }) **/
- @Column({ nullable: true })
- joined_by?: string;
-
- // TODO: add this when we have proper read receipts
- // @Column({ type: "simple-json" })
- // read_state: ReadState;
-
- static async IsInGuildOrFail(user_id: string, guild_id: string) {
- if (await Member.count({ where: { id: user_id, guild: { id: guild_id } } })) return true;
- throw new HTTPError("You are not member of this guild", 403);
- }
-
- static async removeFromGuild(user_id: string, guild_id: string) {
- const guild = await Guild.findOneOrFail({ select: ["owner_id", "member_count"], where: { id: guild_id } });
- if (guild.owner_id === user_id) throw new Error("The owner cannot be removed of the guild");
- const member = await Member.findOneOrFail({ where: { id: user_id, guild_id }, relations: ["user"] });
-
- // use promise all to execute all promises at the same time -> save time
- //TODO: check for bugs
- if (guild.member_count) guild.member_count--;
- return Promise.all([
- Member.delete({
- id: user_id,
- guild_id,
- }),
- //Guild.decrement({ id: guild_id }, "member_count", -1),
-
- emitEvent({
- event: "GUILD_DELETE",
- data: {
- id: guild_id,
- },
- user_id: user_id,
- } as GuildDeleteEvent),
- emitEvent({
- event: "GUILD_MEMBER_REMOVE",
- data: { guild_id, user: member.user },
- guild_id,
- } as GuildMemberRemoveEvent),
- ]);
- }
-
- static async addRole(user_id: string, guild_id: string, role_id: string) {
- const [member, role] = await Promise.all([
- // @ts-ignore
- Member.findOneOrFail({
- where: { id: user_id, guild_id },
- relations: ["user", "roles"], // we don't want to load the role objects just the ids
- select: ["index"],
- }),
- Role.findOneOrFail({ where: { id: role_id, guild_id }, select: ["id"] }),
- ]);
- member.roles.push(OrmUtils.mergeDeep(new Role(), { id: role_id }));
-
- await Promise.all([
- member.save(),
- emitEvent({
- event: "GUILD_MEMBER_UPDATE",
- data: {
- guild_id,
- user: member.user,
- roles: member.roles.map((x) => x.id),
- },
- guild_id,
- } as GuildMemberUpdateEvent),
- ]);
- }
-
- static async removeRole(user_id: string, guild_id: string, role_id: string) {
- const [member] = await Promise.all([
- // @ts-ignore
- Member.findOneOrFail({
- where: { id: user_id, guild_id },
- relations: ["user", "roles"], // we don't want to load the role objects just the ids
- select: ["index"],
- }),
- await Role.findOneOrFail({ where: { id: role_id, guild_id } }),
- ]);
- member.roles = member.roles.filter((x) => x.id == role_id);
-
- await Promise.all([
- member.save(),
- emitEvent({
- event: "GUILD_MEMBER_UPDATE",
- data: {
- guild_id,
- user: member.user,
- roles: member.roles.map((x) => x.id),
- },
- guild_id,
- } as GuildMemberUpdateEvent),
- ]);
- }
-
- static async changeNickname(user_id: string, guild_id: string, nickname: string) {
- const member = await Member.findOneOrFail({
- where: {
- id: user_id,
- guild_id,
- },
- relations: ["user"],
- });
- member.nick = nickname;
-
- await Promise.all([
- member.save(),
-
- emitEvent({
- event: "GUILD_MEMBER_UPDATE",
- data: {
- guild_id,
- user: member.user,
- nick: nickname,
- },
- guild_id,
- } as GuildMemberUpdateEvent),
- ]);
- }
-
- static async addToGuild(user_id: string, guild_id: string) {
- const user = await User.getPublicUser(user_id);
- const isBanned = await Ban.count({ where: { guild_id, user_id } });
- if (isBanned) {
- throw DiscordApiErrors.USER_BANNED;
- }
- const { maxGuilds } = Config.get().limits.user;
- const guild_count = await Member.count({ where: { id: user_id } });
- if (guild_count >= maxGuilds) {
- throw new HTTPError(`You are at the ${maxGuilds} server limit.`, 403);
- }
-
- const guild = await Guild.findOneOrFail({
- where: {
- id: guild_id,
- },
- relations: PublicGuildRelations,
- });
-
- if (await Member.count({ where: { id: user.id, guild: { id: guild_id } } }))
- throw new HTTPError("You are already a member of this guild", 400);
-
- const member = {
- id: user_id,
- guild_id,
- nick: undefined,
- roles: [guild_id], // @everyone role
- joined_at: new Date(),
- premium_since: null,
- deaf: false,
- mute: false,
- pending: false,
- };
- //TODO: check for bugs
- if (guild.member_count) guild.member_count++;
- await Promise.all([
- OrmUtils.mergeDeep(new Member(), {
- ...member,
- roles: [OrmUtils.mergeDeep(new Role(), { id: guild_id })],
- // read_state: {},
- settings: {
- channel_overrides: [],
- message_notifications: 0,
- mobile_push: true,
- muted: false,
- suppress_everyone: false,
- suppress_roles: false,
- version: 0,
- },
- // Member.save is needed because else the roles relations wouldn't be updated
- }).save(),
- //Guild.increment({ id: guild_id }, "member_count", 1),
- emitEvent({
- event: "GUILD_MEMBER_ADD",
- data: {
- ...member,
- user,
- guild_id,
- },
- guild_id,
- } as GuildMemberAddEvent),
- emitEvent({
- event: "GUILD_CREATE",
- data: {
- ...guild,
- members: [...guild.members, { ...member, user }],
- member_count: (guild.member_count || 0) + 1,
- guild_hashes: {},
- guild_scheduled_events: [],
- joined_at: member.joined_at,
- presences: [],
- stage_instances: [],
- threads: [],
- },
- user_id,
- } as GuildCreateEvent),
- ]);
- }
-}
-
-export interface UserGuildSettings {
- channel_overrides: {
- channel_id: string;
- message_notifications: number;
- mute_config: MuteConfig;
- muted: boolean;
- }[];
- message_notifications: number;
- mobile_push: boolean;
- mute_config: MuteConfig;
- muted: boolean;
- suppress_everyone: boolean;
- suppress_roles: boolean;
- version: number;
-}
-
-export interface MuteConfig {
- end_time: number;
- selected_time_window: number;
-}
-
-export type PublicMemberKeys =
- | "id"
- | "guild_id"
- | "nick"
- | "roles"
- | "joined_at"
- | "pending"
- | "deaf"
- | "mute"
- | "premium_since";
-
-export const PublicMemberProjection: PublicMemberKeys[] = [
- "id",
- "guild_id",
- "nick",
- "roles",
- "joined_at",
- "pending",
- "deaf",
- "mute",
- "premium_since",
-];
-
-// @ts-ignore
-export type PublicMember = Pick<Member, Omit<PublicMemberKeys, "roles">> & {
- user: PublicUser;
- roles: string[]; // only role ids not objects
-};
diff --git a/util/src/entities/Message.ts b/util/src/entities/Message.ts
deleted file mode 100644
index ba3d4f2d..00000000
--- a/util/src/entities/Message.ts
+++ /dev/null
@@ -1,284 +0,0 @@
-import { User } from "./User";
-import { Member } from "./Member";
-import { Role } from "./Role";
-import { Channel } from "./Channel";
-import { InteractionType } from "../interfaces/Interaction";
-import { Application } from "./Application";
-import {
- Column,
- CreateDateColumn,
- Entity,
- Index,
- JoinColumn,
- JoinTable,
- ManyToMany,
- ManyToOne,
- OneToMany,
- RelationId,
- RemoveOptions,
- UpdateDateColumn,
-} from "typeorm";
-import { BaseClass } from "./BaseClass";
-import { Guild } from "./Guild";
-import { Webhook } from "./Webhook";
-import { Sticker } from "./Sticker";
-import { Attachment } from "./Attachment";
-
-export enum MessageType {
- DEFAULT = 0,
- RECIPIENT_ADD = 1,
- RECIPIENT_REMOVE = 2,
- CALL = 3,
- CHANNEL_NAME_CHANGE = 4,
- CHANNEL_ICON_CHANGE = 5,
- CHANNEL_PINNED_MESSAGE = 6,
- GUILD_MEMBER_JOIN = 7,
- USER_PREMIUM_GUILD_SUBSCRIPTION = 8,
- USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1 = 9,
- USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2 = 10,
- USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3 = 11,
- CHANNEL_FOLLOW_ADD = 12,
- ACTION = 13, // /me messages
- GUILD_DISCOVERY_DISQUALIFIED = 14,
- GUILD_DISCOVERY_REQUALIFIED = 15,
- ENCRYPTED = 16,
- REPLY = 19,
- APPLICATION_COMMAND = 20, // application command or self command invocation
- ROUTE_ADDED = 41, // custom message routing: new route affecting that channel
- ROUTE_DISABLED = 42, // custom message routing: given route no longer affecting that channel
- SELF_COMMAND_SCRIPT = 43, // self command scripts
- ENCRYPTION = 50,
- CUSTOM_START = 63,
- UNHANDLED = 255
-}
-
-@Entity("messages")
-@Index(["channel_id", "id"], { unique: true })
-export class Message extends BaseClass {
- @Column({ nullable: true })
- @RelationId((message: Message) => message.channel)
- @Index()
- channel_id: string;
-
- @JoinColumn({ name: "channel_id" })
- @ManyToOne(() => Channel, {
- onDelete: "CASCADE",
- })
- channel: Channel;
-
- @Column({ nullable: true })
- @RelationId((message: Message) => message.guild)
- guild_id?: string;
-
- @JoinColumn({ name: "guild_id" })
- @ManyToOne(() => Guild, {
- onDelete: "CASCADE",
- })
- guild?: Guild;
-
- @Column({ nullable: true })
- @RelationId((message: Message) => message.author)
- @Index()
- author_id: string;
-
- @JoinColumn({ name: "author_id", referencedColumnName: "id" })
- @ManyToOne(() => User, {
- onDelete: "CASCADE",
- })
- author?: User;
-
- @Column({ nullable: true })
- @RelationId((message: Message) => message.member)
- member_id: string;
-
- @JoinColumn({ name: "member_id", referencedColumnName: "id" })
- @ManyToOne(() => User, {
- onDelete: "CASCADE",
- })
- member?: Member;
-
- @Column({ nullable: true })
- @RelationId((message: Message) => message.webhook)
- webhook_id: string;
-
- @JoinColumn({ name: "webhook_id" })
- @ManyToOne(() => Webhook)
- webhook?: Webhook;
-
- @Column({ nullable: true })
- @RelationId((message: Message) => message.application)
- application_id: string;
-
- @JoinColumn({ name: "application_id" })
- @ManyToOne(() => Application)
- application?: Application;
-
- @Column({ nullable: true })
- content?: string;
-
- @Column()
- @CreateDateColumn()
- timestamp: Date;
-
- @Column({ nullable: true })
- edited_timestamp?: Date;
-
- @Column({ nullable: true })
- tts?: boolean;
-
- @Column({ nullable: true })
- mention_everyone?: boolean;
-
- @JoinTable({ name: "message_user_mentions" })
- @ManyToMany(() => User)
- mentions: User[];
-
- @JoinTable({ name: "message_role_mentions" })
- @ManyToMany(() => Role)
- mention_roles: Role[];
-
- @JoinTable({ name: "message_channel_mentions" })
- @ManyToMany(() => Channel)
- mention_channels: Channel[];
-
- @JoinTable({ name: "message_stickers" })
- @ManyToMany(() => Sticker, { cascade: true, onDelete: "CASCADE" })
- sticker_items?: Sticker[];
-
- @OneToMany(() => Attachment, (attachment: Attachment) => attachment.message, {
- cascade: true,
- orphanedRowAction: "delete",
- })
- attachments?: Attachment[];
-
- @Column({ type: "simple-json" })
- embeds: Embed[];
-
- @Column({ type: "simple-json" })
- reactions: Reaction[];
-
- @Column({ type: "text", nullable: true })
- nonce?: string;
-
- @Column({ nullable: true })
- pinned?: boolean;
-
- @Column({ type: "int" })
- type: MessageType;
-
- @Column({ type: "simple-json", nullable: true })
- activity?: {
- type: number;
- party_id: string;
- };
-
- @Column({ nullable: true })
- flags?: string;
- @Column({ type: "simple-json", nullable: true })
- message_reference?: {
- message_id: string;
- channel_id?: string;
- guild_id?: string;
- };
-
- @JoinColumn({ name: "message_reference_id" })
- @ManyToOne(() => Message)
- referenced_message?: Message;
-
- @Column({ type: "simple-json", nullable: true })
- interaction?: {
- id: string;
- type: InteractionType;
- name: string;
- user_id: string; // the user who invoked the interaction
- // user: User; // TODO: autopopulate user
- };
-
- @Column({ type: "simple-json", nullable: true })
- components?: MessageComponent[];
-}
-
-export interface MessageComponent {
- type: number;
- style?: number;
- label?: string;
- emoji?: PartialEmoji;
- custom_id?: string;
- url?: string;
- disabled?: boolean;
- components: MessageComponent[];
-}
-
-export enum MessageComponentType {
- Script = 0, // self command script
- ActionRow = 1,
- Button = 2,
-}
-
-export interface Embed {
- title?: string; //title of embed
- type?: EmbedType; // type of embed (always "rich" for webhook embeds)
- description?: string; // description of embed
- url?: string; // url of embed
- timestamp?: Date; // timestamp of embed content
- color?: number; // color code of the embed
- footer?: {
- text: string;
- icon_url?: string;
- proxy_icon_url?: string;
- }; // footer object footer information
- image?: EmbedImage; // image object image information
- thumbnail?: EmbedImage; // thumbnail object thumbnail information
- video?: EmbedImage; // video object video information
- provider?: {
- name?: string;
- url?: string;
- }; // provider object provider information
- author?: {
- name?: string;
- url?: string;
- icon_url?: string;
- proxy_icon_url?: string;
- }; // author object author information
- fields?: {
- name: string;
- value: string;
- inline?: boolean;
- }[];
-}
-
-export enum EmbedType {
- rich = "rich",
- image = "image",
- video = "video",
- gifv = "gifv",
- article = "article",
- link = "link",
-}
-
-export interface EmbedImage {
- url?: string;
- proxy_url?: string;
- height?: number;
- width?: number;
-}
-
-export interface Reaction {
- count: number;
- //// not saved in the database // me: boolean; // whether the current user reacted using this emoji
- emoji: PartialEmoji;
- user_ids: string[];
-}
-
-export interface PartialEmoji {
- id?: string;
- name: string;
- animated?: boolean;
-}
-
-export interface AllowedMentions {
- parse?: ("users" | "roles" | "everyone")[];
- roles?: string[];
- users?: string[];
- replied_user?: boolean;
-}
diff --git a/util/src/entities/Migration.ts b/util/src/entities/Migration.ts
deleted file mode 100644
index 3f39ae72..00000000
--- a/util/src/entities/Migration.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Column, Entity, ObjectIdColumn, PrimaryGeneratedColumn } from "typeorm";
-import { BaseClassWithoutId } from ".";
-
-export const PrimaryIdAutoGenerated = process.env.DATABASE?.startsWith("mongodb")
- ? ObjectIdColumn
- : PrimaryGeneratedColumn;
-
-@Entity("migrations")
-export class Migration extends BaseClassWithoutId {
- @PrimaryIdAutoGenerated()
- id: number;
-
- @Column({ type: "bigint" })
- timestamp: number;
-
- @Column()
- name: string;
-}
diff --git a/util/src/entities/Note.ts b/util/src/entities/Note.ts
deleted file mode 100644
index 36017c5e..00000000
--- a/util/src/entities/Note.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, Unique } from "typeorm";
-import { BaseClass } from "./BaseClass";
-import { User } from "./User";
-
-@Entity("notes")
-@Unique(["owner", "target"])
-export class Note extends BaseClass {
- @JoinColumn({ name: "owner_id" })
- @ManyToOne(() => User, { onDelete: "CASCADE" })
- owner: User;
-
- @JoinColumn({ name: "target_id" })
- @ManyToOne(() => User, { onDelete: "CASCADE" })
- target: User;
-
- @Column()
- content: string;
-}
\ No newline at end of file
diff --git a/util/src/entities/RateLimit.ts b/util/src/entities/RateLimit.ts
deleted file mode 100644
index f5916f6b..00000000
--- a/util/src/entities/RateLimit.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Column, Entity } from "typeorm";
-import { BaseClass } from "./BaseClass";
-
-@Entity("rate_limits")
-export class RateLimit extends BaseClass {
- @Column() // no relation as it also
- executor_id: string;
-
- @Column()
- hits: number;
-
- @Column()
- blocked: boolean;
-
- @Column()
- expires_at: Date;
-}
diff --git a/util/src/entities/ReadState.ts b/util/src/entities/ReadState.ts
deleted file mode 100644
index b915573b..00000000
--- a/util/src/entities/ReadState.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import { Column, Entity, Index, JoinColumn, ManyToOne, RelationId } from "typeorm";
-import { BaseClass } from "./BaseClass";
-import { Channel } from "./Channel";
-import { Message } from "./Message";
-import { User } from "./User";
-
-// for read receipts
-// notification cursor and public read receipt need to be forwards-only (the former to prevent re-pinging when marked as unread, and the latter to be acceptable as a legal acknowledgement in criminal proceedings), and private read marker needs to be advance-rewind capable
-// public read receipt ≥ notification cursor ≥ private fully read marker
-
-@Entity("read_states")
-@Index(["channel_id", "user_id"], { unique: true })
-export class ReadState extends BaseClass {
- @Column()
- @RelationId((read_state: ReadState) => read_state.channel)
- channel_id: string;
-
- @JoinColumn({ name: "channel_id" })
- @ManyToOne(() => Channel, {
- onDelete: "CASCADE",
- })
- channel: Channel;
-
- @Column()
- @RelationId((read_state: ReadState) => read_state.user)
- user_id: string;
-
- @JoinColumn({ name: "user_id" })
- @ManyToOne(() => User, {
- onDelete: "CASCADE",
- })
- user: User;
-
- // fully read marker
- @Column({ nullable: true })
- last_message_id: string;
-
- // public read receipt
- @Column({ nullable: true })
- public_ack: string;
-
- // notification cursor / private read receipt
- @Column({ nullable: true })
- notifications_cursor: string;
-
- @Column({ nullable: true })
- last_pin_timestamp?: Date;
-
- @Column({ nullable: true })
- mention_count: number;
-
- // @Column({ nullable: true })
- // TODO: derive this from (last_message_id=notifications_cursor=public_ack)=true
- manual: boolean;
-}
diff --git a/util/src/entities/Recipient.ts b/util/src/entities/Recipient.ts
deleted file mode 100644
index a945f938..00000000
--- a/util/src/entities/Recipient.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
-import { BaseClass } from "./BaseClass";
-
-@Entity("recipients")
-export class Recipient extends BaseClass {
- @Column()
- @RelationId((recipient: Recipient) => recipient.channel)
- channel_id: string;
-
- @JoinColumn({ name: "channel_id" })
- @ManyToOne(() => require("./Channel").Channel, {
- onDelete: "CASCADE",
- })
- channel: import("./Channel").Channel;
-
- @Column()
- @RelationId((recipient: Recipient) => recipient.user)
- user_id: string;
-
- @JoinColumn({ name: "user_id" })
- @ManyToOne(() => require("./User").User, {
- onDelete: "CASCADE",
- })
- user: import("./User").User;
-
- @Column({ default: false })
- closed: boolean;
-
- // TODO: settings/mute/nick/added at/encryption keys/read_state
-}
diff --git a/util/src/entities/Relationship.ts b/util/src/entities/Relationship.ts
deleted file mode 100644
index c3592c76..00000000
--- a/util/src/entities/Relationship.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import { Column, Entity, Index, JoinColumn, ManyToOne, RelationId } from "typeorm";
-import { BaseClass } from "./BaseClass";
-import { User } from "./User";
-
-export enum RelationshipType {
- outgoing = 4,
- incoming = 3,
- blocked = 2,
- friends = 1,
-}
-
-@Entity("relationships")
-@Index(["from_id", "to_id"], { unique: true })
-export class Relationship extends BaseClass {
- @Column({})
- @RelationId((relationship: Relationship) => relationship.from)
- from_id: string;
-
- @JoinColumn({ name: "from_id" })
- @ManyToOne(() => User, {
- onDelete: "CASCADE",
- })
- from: User;
-
- @Column({})
- @RelationId((relationship: Relationship) => relationship.to)
- to_id: string;
-
- @JoinColumn({ name: "to_id" })
- @ManyToOne(() => User, {
- onDelete: "CASCADE",
- })
- to: User;
-
- @Column({ nullable: true })
- nickname?: string;
-
- @Column({ type: "int" })
- type: RelationshipType;
-
- toPublicRelationship() {
- return {
- id: this.to?.id || this.to_id,
- type: this.type,
- nickname: this.nickname,
- user: this.to?.toPublicUser(),
- };
- }
-}
diff --git a/util/src/entities/Role.ts b/util/src/entities/Role.ts
deleted file mode 100644
index 4b721b5b..00000000
--- a/util/src/entities/Role.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
-
-import { BaseClass } from "./BaseClass";
-import { Guild } from "./Guild";
-
-@Entity("roles")
-export class Role extends BaseClass {
- @Column({ nullable: true })
- @RelationId((role: Role) => role.guild)
- guild_id: string;
-
- @JoinColumn({ name: "guild_id" })
- @ManyToOne(() => Guild, {
- onDelete: "CASCADE",
- })
- guild: Guild;
-
- @Column()
- color: number;
-
- @Column()
- hoist: boolean;
-
- @Column()
- managed: boolean;
-
- @Column()
- mentionable: boolean;
-
- @Column()
- name: string;
-
- @Column()
- permissions: string;
-
- @Column()
- position: number;
-
- @Column({ nullable: true })
- icon: string;
-
- @Column({ nullable: true })
- unicode_emoji: string;
-
- @Column({ type: "simple-json", nullable: true })
- tags?: {
- bot_id?: string;
- integration_id?: string;
- premium_subscriber?: boolean;
- };
-}
diff --git a/util/src/entities/Session.ts b/util/src/entities/Session.ts
deleted file mode 100644
index 969efa89..00000000
--- a/util/src/entities/Session.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-import { User } from "./User";
-import { BaseClass } from "./BaseClass";
-import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
-import { Status } from "../interfaces/Status";
-import { Activity } from "../interfaces/Activity";
-
-//TODO we need to remove all sessions on server start because if the server crashes without closing websockets it won't delete them
-
-@Entity("sessions")
-export class Session extends BaseClass {
- @Column({ nullable: true })
- @RelationId((session: Session) => session.user)
- user_id: string;
-
- @JoinColumn({ name: "user_id" })
- @ManyToOne(() => User, {
- onDelete: "CASCADE",
- })
- user: User;
-
- //TODO check, should be 32 char long hex string
- @Column({ nullable: false, select: false })
- session_id: string;
-
- @Column({ type: "simple-json", nullable: true })
- activities: Activity[];
-
- // TODO client_status
- @Column({ type: "simple-json", select: false })
- client_info: {
- client: string;
- os: string;
- version: number;
- };
-
- @Column({ nullable: false, type: "varchar" })
- status: Status; //TODO enum
-}
-
-export const PrivateSessionProjection: (keyof Session)[] = [
- "user_id",
- "session_id",
- "activities",
- "client_info",
- "status",
-];
diff --git a/util/src/entities/Sticker.ts b/util/src/entities/Sticker.ts
deleted file mode 100644
index 37bc6fbe..00000000
--- a/util/src/entities/Sticker.ts
+++ /dev/null
@@ -1,66 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
-import { User } from "./User";
-import { BaseClass } from "./BaseClass";
-import { Guild } from "./Guild";
-
-export enum StickerType {
- STANDARD = 1,
- GUILD = 2,
-}
-
-export enum StickerFormatType {
- GIF = 0, // gif is a custom format type and not in discord spec
- PNG = 1,
- APNG = 2,
- LOTTIE = 3,
-}
-
-@Entity("stickers")
-export class Sticker extends BaseClass {
- @Column()
- name: string;
-
- @Column({ nullable: true })
- description?: string;
-
- @Column({ nullable: true })
- available?: boolean;
-
- @Column({ nullable: true })
- tags?: string;
-
- @Column({ nullable: true })
- @RelationId((sticker: Sticker) => sticker.pack)
- pack_id?: string;
-
- @JoinColumn({ name: "pack_id" })
- @ManyToOne(() => require("./StickerPack").StickerPack, {
- onDelete: "CASCADE",
- nullable: true,
- })
- pack: import("./StickerPack").StickerPack;
-
- @Column({ nullable: true })
- guild_id?: string;
-
- @JoinColumn({ name: "guild_id" })
- @ManyToOne(() => Guild, {
- onDelete: "CASCADE",
- })
- guild?: Guild;
-
- @Column({ nullable: true })
- user_id?: string;
-
- @JoinColumn({ name: "user_id" })
- @ManyToOne(() => User, {
- onDelete: "CASCADE",
- })
- user?: User;
-
- @Column({ type: "int" })
- type: StickerType;
-
- @Column({ type: "int" })
- format_type: StickerFormatType;
-}
diff --git a/util/src/entities/StickerPack.ts b/util/src/entities/StickerPack.ts
deleted file mode 100644
index ec8c69a2..00000000
--- a/util/src/entities/StickerPack.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, OneToMany, OneToOne, RelationId } from "typeorm";
-import { Sticker } from ".";
-import { BaseClass } from "./BaseClass";
-
-@Entity("sticker_packs")
-export class StickerPack extends BaseClass {
- @Column()
- name: string;
-
- @Column({ nullable: true })
- description?: string;
-
- @Column({ nullable: true })
- banner_asset_id?: string;
-
- @OneToMany(() => Sticker, (sticker: Sticker) => sticker.pack, {
- cascade: true,
- orphanedRowAction: "delete",
- })
- stickers: Sticker[];
-
- // sku_id: string
-
- @Column({ nullable: true })
- @RelationId((pack: StickerPack) => pack.cover_sticker)
- cover_sticker_id?: string;
-
- @ManyToOne(() => Sticker, { nullable: true })
- @JoinColumn()
- cover_sticker?: Sticker;
-}
diff --git a/util/src/entities/Team.ts b/util/src/entities/Team.ts
deleted file mode 100644
index 22140b7f..00000000
--- a/util/src/entities/Team.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToMany, ManyToOne, OneToMany, RelationId } from "typeorm";
-import { BaseClass } from "./BaseClass";
-import { TeamMember } from "./TeamMember";
-import { User } from "./User";
-
-@Entity("teams")
-export class Team extends BaseClass {
- @Column({ nullable: true })
- icon?: string;
-
- @JoinColumn({ name: "member_ids" })
- @OneToMany(() => TeamMember, (member: TeamMember) => member.team, {
- orphanedRowAction: "delete",
- })
- members: TeamMember[];
-
- @Column()
- name: string;
-
- @Column({ nullable: true })
- @RelationId((team: Team) => team.owner_user)
- owner_user_id: string;
-
- @JoinColumn({ name: "owner_user_id" })
- @ManyToOne(() => User)
- owner_user: User;
-}
diff --git a/util/src/entities/TeamMember.ts b/util/src/entities/TeamMember.ts
deleted file mode 100644
index b726e1e8..00000000
--- a/util/src/entities/TeamMember.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
-import { BaseClass } from "./BaseClass";
-import { User } from "./User";
-
-export enum TeamMemberState {
- INVITED = 1,
- ACCEPTED = 2,
-}
-
-@Entity("team_members")
-export class TeamMember extends BaseClass {
- @Column({ type: "int" })
- membership_state: TeamMemberState;
-
- @Column({ type: "simple-array" })
- permissions: string[];
-
- @Column({ nullable: true })
- @RelationId((member: TeamMember) => member.team)
- team_id: string;
-
- @JoinColumn({ name: "team_id" })
- @ManyToOne(() => require("./Team").Team, (team: import("./Team").Team) => team.members, {
- onDelete: "CASCADE",
- })
- team: import("./Team").Team;
-
- @Column({ nullable: true })
- @RelationId((member: TeamMember) => member.user)
- user_id: string;
-
- @JoinColumn({ name: "user_id" })
- @ManyToOne(() => User, {
- onDelete: "CASCADE",
- })
- user: User;
-}
diff --git a/util/src/entities/Template.ts b/util/src/entities/Template.ts
deleted file mode 100644
index 1d952283..00000000
--- a/util/src/entities/Template.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
-import { BaseClass } from "./BaseClass";
-import { Guild } from "./Guild";
-import { User } from "./User";
-
-@Entity("templates")
-export class Template extends BaseClass {
- @Column({ unique: true })
- code: string;
-
- @Column()
- name: string;
-
- @Column({ nullable: true })
- description?: string;
-
- @Column({ nullable: true })
- usage_count?: number;
-
- @Column({ nullable: true })
- @RelationId((template: Template) => template.creator)
- creator_id: string;
-
- @JoinColumn({ name: "creator_id" })
- @ManyToOne(() => User)
- creator: User;
-
- @Column()
- created_at: Date;
-
- @Column()
- updated_at: Date;
-
- @Column({ nullable: true })
- @RelationId((template: Template) => template.source_guild)
- source_guild_id: string;
-
- @JoinColumn({ name: "source_guild_id" })
- @ManyToOne(() => Guild)
- source_guild: Guild;
-
- @Column({ type: "simple-json" })
- serialized_source_guild: Guild;
-}
diff --git a/util/src/entities/User.ts b/util/src/entities/User.ts
deleted file mode 100644
index a9f00b0d..00000000
--- a/util/src/entities/User.ts
+++ /dev/null
@@ -1,410 +0,0 @@
-import { Column, Entity, FindOneOptions, FindOptionsSelectByString, JoinColumn, OneToMany } from "typeorm";
-import { OrmUtils } from "../util/imports/OrmUtils";
-import { BaseClass } from "./BaseClass";
-import { BitField } from "../util/BitField";
-import { Relationship } from "./Relationship";
-import { ConnectedAccount } from "./ConnectedAccount";
-import { Config, FieldErrors, Snowflake, trimSpecial } from "..";
-import { Member, Session } from ".";
-
-export enum PublicUserEnum {
- username,
- discriminator,
- id,
- public_flags,
- avatar,
- accent_color,
- banner,
- bio,
- bot,
- premium_since,
-}
-export type PublicUserKeys = keyof typeof PublicUserEnum;
-
-export enum PrivateUserEnum {
- flags,
- mfa_enabled,
- email,
- phone,
- verified,
- nsfw_allowed,
- premium,
- premium_type,
- disabled,
- settings,
- // locale
-}
-export type PrivateUserKeys = keyof typeof PrivateUserEnum | PublicUserKeys;
-
-export const PublicUserProjection = Object.values(PublicUserEnum).filter(
- (x) => typeof x === "string"
-) as PublicUserKeys[];
-export const PrivateUserProjection = [
- ...PublicUserProjection,
- ...Object.values(PrivateUserEnum).filter((x) => typeof x === "string"),
-] as PrivateUserKeys[];
-
-// Private user data that should never get sent to the client
-export type PublicUser = Pick<User, PublicUserKeys>;
-
-export interface UserPublic extends Pick<User, PublicUserKeys> {}
-
-export interface UserPrivate extends Pick<User, PrivateUserKeys> {
- locale: string;
-}
-
-// TODO: add purchased_flags, premium_usage_flags
-
-@Entity("users")
-export class User extends BaseClass {
- @Column()
- username: string; // username max length 32, min 2 (should be configurable)
-
- @Column()
- discriminator: string; // opaque string: 4 digits on discord.com
-
- setDiscriminator(val: string) {
- const number = Number(val);
- if (isNaN(number)) throw new Error("invalid discriminator");
- if (number <= 0 || number >= 10000) throw new Error("discriminator must be between 1 and 9999");
- this.discriminator = val.toString().padStart(4, "0");
- }
-
- @Column({ nullable: true })
- avatar?: string; // hash of the user avatar
-
- @Column({ nullable: true })
- accent_color?: number; // banner color of user
-
- @Column({ nullable: true })
- banner?: string; // hash of the user banner
-
- @Column({ nullable: true, select: false })
- phone?: string; // phone number of the user
-
- @Column({ select: false })
- desktop: boolean; // if the user has desktop app installed
-
- @Column({ select: false })
- mobile: boolean; // if the user has mobile app installed
-
- @Column()
- premium: boolean; // if user bought individual premium
-
- @Column()
- premium_type: number; // individual premium level
-
- @Column()
- bot: boolean; // if user is bot
-
- @Column()
- bio: string; // short description of the user (max 190 chars -> should be configurable)
-
- @Column()
- system: boolean; // shouldn't be used, the api sends this field type true, if the generated message comes from a system generated author
-
- @Column({ select: false })
- nsfw_allowed: boolean; // if the user can do age-restricted actions (NSFW channels/guilds/commands)
-
- @Column({ select: false })
- mfa_enabled: boolean; // if multi factor authentication is enabled
-
- @Column({ select: false, nullable: true })
- totp_secret?: string;
-
- @Column({ nullable: true, select: false })
- totp_last_ticket?: string;
-
- @Column()
- created_at: Date; // registration date
-
- @Column({ nullable: true })
- premium_since: Date; // premium date
-
- @Column({ select: false })
- verified: boolean; // if the user is offically verified
-
- @Column()
- disabled: boolean; // if the account is disabled
-
- @Column()
- deleted: boolean; // if the user was deleted
-
- @Column({ nullable: true, select: false })
- email?: string; // email of the user
-
- @Column()
- flags: string; // UserFlags
-
- @Column()
- public_flags: number;
-
- @Column({ type: "bigint" })
- rights: string; // Rights
-
- @OneToMany(() => Session, (session: Session) => session.user)
- sessions: Session[];
-
- @JoinColumn({ name: "relationship_ids" })
- @OneToMany(() => Relationship, (relationship: Relationship) => relationship.from, {
- cascade: true,
- orphanedRowAction: "delete",
- })
- relationships: Relationship[];
-
- @JoinColumn({ name: "connected_account_ids" })
- @OneToMany(() => ConnectedAccount, (account: ConnectedAccount) => account.user, {
- cascade: true,
- orphanedRowAction: "delete",
- })
- connected_accounts: ConnectedAccount[];
-
- @Column({ type: "simple-json", select: false })
- data: {
- valid_tokens_since: Date; // all tokens with a previous issue date are invalid
- hash?: string; // hash of the password, salt is saved in password (bcrypt)
- };
-
- @Column({ type: "simple-array", select: false })
- fingerprints: string[]; // array of fingerprints -> used to prevent multiple accounts
-
- @Column({ type: "simple-json", select: false })
- settings: UserSettings;
-
- // workaround to prevent fossord-unaware clients from deleting settings not used by them
- @Column({ type: "simple-json", select: false })
- extended_settings: string;
-
- @Column({ type: "simple-json" })
- notes: { [key: string]: string }; //key is ID of user
-
- toPublicUser() {
- const user: any = {};
- PublicUserProjection.forEach((x) => {
- user[x] = this[x];
- });
- return user as PublicUser;
- }
-
- static async getPublicUser(user_id: string, opts?: FindOneOptions<User>) {
- return await User.findOneOrFail({
- where: { id: user_id },
- select: [...PublicUserProjection, ...((opts?.select as FindOptionsSelectByString<User>) || [])],
- ...opts,
- });
- }
-
- public static async generateDiscriminator(username: string): Promise<string | undefined> {
- if (Config.get().register.incrementingDiscriminators) {
- // discriminator will be incrementally generated
-
- // First we need to figure out the currently highest discrimnator for the given username and then increment it
- const users = await User.find({ where: { username }, select: ["discriminator"] });
- const highestDiscriminator = Math.max(0, ...users.map((u) => Number(u.discriminator)));
-
- const discriminator = highestDiscriminator + 1;
- if (discriminator >= 10000) {
- return undefined;
- }
-
- return discriminator.toString().padStart(4, "0");
- } else {
- // discriminator will be randomly generated
-
- // randomly generates a discriminator between 1 and 9999 and checks max five times if it already exists
- // TODO: is there any better way to generate a random discriminator only once, without checking if it already exists in the database?
- for (let tries = 0; tries < 5; tries++) {
- const discriminator = Math.randomIntBetween(1, 9999).toString().padStart(4, "0");
- const exists = await User.findOne({ where: { discriminator, username: username }, select: ["id"] });
- if (!exists) return discriminator;
- }
-
- return undefined;
- }
- }
-
- static async register({
- email,
- username,
- password,
- date_of_birth,
- req,
- }: {
- username: string;
- password?: string;
- email?: string;
- date_of_birth?: Date; // "2000-04-03"
- req?: any;
- }) {
- // trim special uf8 control characters -> Backspace, Newline, ...
- username = trimSpecial(username);
-
- const discriminator = await User.generateDiscriminator(username);
- if (!discriminator) {
- // We've failed to generate a valid and unused discriminator
- throw FieldErrors({
- username: {
- code: "USERNAME_TOO_MANY_USERS",
- message: req?.t("auth:register.USERNAME_TOO_MANY_USERS"),
- },
- });
- }
-
- // TODO: save date_of_birth
- // appearently discord doesn't save the date of birth and just calculate if nsfw is allowed
- // if nsfw_allowed is null/undefined it'll require date_of_birth to set it to true/false
- const language = req?.language === "en" ? "en-US" : req?.language || "en-US";
-
- const user = OrmUtils.mergeDeep(new User(), {
- created_at: new Date(),
- username: username,
- discriminator,
- id: Snowflake.generate(),
- bot: false,
- system: false,
- premium_since: new Date(),
- desktop: false,
- mobile: false,
- premium: true,
- premium_type: 2,
- bio: "",
- mfa_enabled: false,
- totp_secret: "",
- totp_backup_codes: [],
- verified: true,
- disabled: false,
- deleted: false,
- email: email,
- rights: Config.get().register.defaultRights, // TODO: grant rights correctly, as 0 actually stands for no rights at all
- nsfw_allowed: true, // TODO: depending on age
- public_flags: "0",
- flags: "0", // TODO: generate
- data: {
- hash: password,
- valid_tokens_since: new Date(),
- },
- settings: { ...defaultSettings, locale: language },
- extended_settings: {},
- fingerprints: [],
- notes: {},
- });
-
- await user.save();
-
- setImmediate(async () => {
- if (Config.get().guild.autoJoin.enabled) {
- for (const guild of Config.get().guild.autoJoin.guilds || []) {
- await Member.addToGuild(user.id, guild).catch((e) => {});
- }
- }
- });
-
- return user;
- }
-}
-
-export const defaultSettings: UserSettings = {
- afk_timeout: 3600,
- allow_accessibility_detection: true,
- animate_emoji: true,
- animate_stickers: 0,
- contact_sync_enabled: false,
- convert_emoticons: false,
- custom_status: null,
- default_guilds_restricted: false,
- detect_platform_accounts: false,
- developer_mode: true,
- disable_games_tab: true,
- enable_tts_command: false,
- explicit_content_filter: 0,
- friend_source_flags: { all: true },
- gateway_connected: false,
- gif_auto_play: true,
- guild_folders: [],
- guild_positions: [],
- inline_attachment_media: true,
- inline_embed_media: true,
- locale: "en-US",
- message_display_compact: false,
- native_phone_integration_enabled: true,
- render_embeds: true,
- render_reactions: true,
- restricted_guilds: [],
- show_current_game: true,
- status: "online",
- stream_notifications_enabled: false,
- theme: "dark",
- timezone_offset: 0, // TODO: timezone from request
-};
-
-export interface UserSettings {
- afk_timeout: number;
- allow_accessibility_detection: boolean;
- animate_emoji: boolean;
- animate_stickers: number;
- contact_sync_enabled: boolean;
- convert_emoticons: boolean;
- custom_status: {
- emoji_id?: string;
- emoji_name?: string;
- expires_at?: number;
- text?: string;
- } | null;
- default_guilds_restricted: boolean;
- detect_platform_accounts: boolean;
- developer_mode: boolean;
- disable_games_tab: boolean;
- enable_tts_command: boolean;
- explicit_content_filter: number;
- friend_source_flags: { all: boolean };
- gateway_connected: boolean;
- gif_auto_play: boolean;
- // every top guild is displayed as a "folder"
- guild_folders: {
- color: number;
- guild_ids: string[];
- id: number;
- name: string;
- }[];
- guild_positions: string[]; // guild ids ordered by position
- inline_attachment_media: boolean;
- inline_embed_media: boolean;
- locale: string; // en_US
- message_display_compact: boolean;
- native_phone_integration_enabled: boolean;
- render_embeds: boolean;
- render_reactions: boolean;
- restricted_guilds: string[];
- show_current_game: boolean;
- status: "online" | "offline" | "dnd" | "idle" | "invisible";
- stream_notifications_enabled: boolean;
- theme: "dark" | "white"; // dark
- timezone_offset: number; // e.g -60
-}
-
-export const CUSTOM_USER_FLAG_OFFSET = BigInt(1) << BigInt(32);
-
-export class UserFlags extends BitField {
- static FLAGS = {
- DISCORD_EMPLOYEE: BigInt(1) << BigInt(0),
- PARTNERED_SERVER_OWNER: BigInt(1) << BigInt(1),
- HYPESQUAD_EVENTS: BigInt(1) << BigInt(2),
- BUGHUNTER_LEVEL_1: BigInt(1) << BigInt(3),
- MFA_SMS: BigInt(1) << BigInt(4),
- PREMIUM_PROMO_DISMISSED: BigInt(1) << BigInt(5),
- HOUSE_BRAVERY: BigInt(1) << BigInt(6),
- HOUSE_BRILLIANCE: BigInt(1) << BigInt(7),
- HOUSE_BALANCE: BigInt(1) << BigInt(8),
- EARLY_SUPPORTER: BigInt(1) << BigInt(9),
- TEAM_USER: BigInt(1) << BigInt(10),
- TRUST_AND_SAFETY: BigInt(1) << BigInt(11),
- SYSTEM: BigInt(1) << BigInt(12),
- HAS_UNREAD_URGENT_MESSAGES: BigInt(1) << BigInt(13),
- BUGHUNTER_LEVEL_2: BigInt(1) << BigInt(14),
- UNDERAGE_DELETED: BigInt(1) << BigInt(15),
- VERIFIED_BOT: BigInt(1) << BigInt(16),
- EARLY_VERIFIED_BOT_DEVELOPER: BigInt(1) << BigInt(17),
- CERTIFIED_MODERATOR: BigInt(1) << BigInt(18),
- BOT_HTTP_INTERACTIONS: BigInt(1) << BigInt(19),
- };
-}
diff --git a/util/src/entities/UserGroup.ts b/util/src/entities/UserGroup.ts
deleted file mode 100644
index 709b9d0b..00000000
--- a/util/src/entities/UserGroup.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
-
-import { BaseClass } from "./BaseClass";
-import { Guild } from "./Guild";
-import { User } from "./User";
-
-@Entity("groups")
-export class UserGroup extends BaseClass {
- @Column()
- color: number;
-
- @Column()
- hoist: boolean;
-
- @JoinColumn({ name: "controller", referencedColumnName: "id" })
- @ManyToOne(() => User)
- controller?: User;
-
- @Column()
- mentionable_by?: string;
-
- @Column()
- name: string;
-
- @Column()
- rights: string;
-
- @Column({ nullable: true })
- icon: string;
-
- @Column({ nullable: true })
- parent?: string;
-
- @Column({ type: "simple-array", nullable: true})
- associciations: string[];
-
-}
diff --git a/util/src/entities/VoiceState.ts b/util/src/entities/VoiceState.ts
deleted file mode 100644
index 75748a01..00000000
--- a/util/src/entities/VoiceState.ts
+++ /dev/null
@@ -1,77 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
-import { BaseClass } from "./BaseClass";
-import { Channel } from "./Channel";
-import { Guild } from "./Guild";
-import { User } from "./User";
-import { Member } from "./Member";
-
-//https://gist.github.com/vassjozsef/e482c65df6ee1facaace8b3c9ff66145#file-voice_state-ex
-@Entity("voice_states")
-export class VoiceState extends BaseClass {
- @Column({ nullable: true })
- @RelationId((voice_state: VoiceState) => voice_state.guild)
- guild_id: string;
-
- @JoinColumn({ name: "guild_id" })
- @ManyToOne(() => Guild, {
- onDelete: "CASCADE",
- })
- guild?: Guild;
-
- @Column({ nullable: true })
- @RelationId((voice_state: VoiceState) => voice_state.channel)
- channel_id: string;
-
- @JoinColumn({ name: "channel_id" })
- @ManyToOne(() => Channel, {
- onDelete: "CASCADE",
- })
- channel: Channel;
-
- @Column({ nullable: true })
- @RelationId((voice_state: VoiceState) => voice_state.user)
- user_id: string;
-
- @JoinColumn({ name: "user_id" })
- @ManyToOne(() => User, {
- onDelete: "CASCADE",
- })
- user: User;
-
- // @JoinColumn([{ name: "user_id", referencedColumnName: "id" },{ name: "guild_id", referencedColumnName: "guild_id" }])
- // @ManyToOne(() => Member, {
- // onDelete: "CASCADE",
- // })
- //TODO find a way to make it work without breaking Guild.voice_states
- member: Member;
-
- @Column()
- session_id: string;
-
- @Column({ nullable: true })
- token: string;
-
- @Column()
- deaf: boolean;
-
- @Column()
- mute: boolean;
-
- @Column()
- self_deaf: boolean;
-
- @Column()
- self_mute: boolean;
-
- @Column({ nullable: true })
- self_stream?: boolean;
-
- @Column()
- self_video: boolean;
-
- @Column()
- suppress: boolean; // whether this user is muted by the current user
-
- @Column({ nullable: true, default: null })
- request_to_speak_timestamp?: Date;
-}
diff --git a/util/src/entities/Webhook.ts b/util/src/entities/Webhook.ts
deleted file mode 100644
index 89538417..00000000
--- a/util/src/entities/Webhook.ts
+++ /dev/null
@@ -1,76 +0,0 @@
-import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm";
-import { Application } from "./Application";
-import { BaseClass } from "./BaseClass";
-import { Channel } from "./Channel";
-import { Guild } from "./Guild";
-import { User } from "./User";
-
-export enum WebhookType {
- Incoming = 1,
- ChannelFollower = 2,
-}
-
-@Entity("webhooks")
-export class Webhook extends BaseClass {
- @Column({ type: "int" })
- type: WebhookType;
-
- @Column({ nullable: true })
- name?: string;
-
- @Column({ nullable: true })
- avatar?: string;
-
- @Column({ nullable: true })
- token?: string;
-
- @Column({ nullable: true })
- @RelationId((webhook: Webhook) => webhook.guild)
- guild_id: string;
-
- @JoinColumn({ name: "guild_id" })
- @ManyToOne(() => Guild, {
- onDelete: "CASCADE",
- })
- guild: Guild;
-
- @Column({ nullable: true })
- @RelationId((webhook: Webhook) => webhook.channel)
- channel_id: string;
-
- @JoinColumn({ name: "channel_id" })
- @ManyToOne(() => Channel, {
- onDelete: "CASCADE",
- })
- channel: Channel;
-
- @Column({ nullable: true })
- @RelationId((webhook: Webhook) => webhook.application)
- application_id: string;
-
- @JoinColumn({ name: "application_id" })
- @ManyToOne(() => Application, {
- onDelete: "CASCADE",
- })
- application: Application;
-
- @Column({ nullable: true })
- @RelationId((webhook: Webhook) => webhook.user)
- user_id: string;
-
- @JoinColumn({ name: "user_id" })
- @ManyToOne(() => User, {
- onDelete: "CASCADE",
- })
- user: User;
-
- @Column({ nullable: true })
- @RelationId((webhook: Webhook) => webhook.guild)
- source_guild_id: string;
-
- @JoinColumn({ name: "source_guild_id" })
- @ManyToOne(() => Guild, {
- onDelete: "CASCADE",
- })
- source_guild: Guild;
-}
diff --git a/util/src/entities/index.ts b/util/src/entities/index.ts
deleted file mode 100644
index c439a4b7..00000000
--- a/util/src/entities/index.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-export * from "./Application";
-export * from "./Attachment";
-export * from "./AuditLog";
-export * from "./Ban";
-export * from "./BaseClass";
-export * from "./Categories";
-export * from "./Channel";
-export * from "./Config";
-export * from "./ConnectedAccount";
-export * from "./Emoji";
-export * from "./Guild";
-export * from "./Invite";
-export * from "./Member";
-export * from "./Message";
-export * from "./Migration";
-export * from "./RateLimit";
-export * from "./ReadState";
-export * from "./Recipient";
-export * from "./Relationship";
-export * from "./Role";
-export * from "./Session";
-export * from "./Sticker";
-export * from "./StickerPack";
-export * from "./Team";
-export * from "./TeamMember";
-export * from "./Template";
-export * from "./User";
-export * from "./VoiceState";
-export * from "./Webhook";
-export * from "./ClientRelease";
-export * from "./BackupCodes";
-export * from "./Note";
diff --git a/util/src/index.ts b/util/src/index.ts
deleted file mode 100644
index 259d1c97..00000000
--- a/util/src/index.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import "reflect-metadata";
-
-export * from "./util/index";
-export * from "./interfaces/index";
-export * from "./entities/index";
-export * from "./dtos/index";
-export * from "./util/MFA";
\ No newline at end of file
diff --git a/util/src/interfaces/Activity.ts b/util/src/interfaces/Activity.ts
deleted file mode 100644
index 43984afd..00000000
--- a/util/src/interfaces/Activity.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-export interface Activity {
- name: string; // the activity's name
- type: ActivityType; // activity type // TODO: check if its between range 0-5
- url?: string; // stream url, is validated when type is 1
- created_at?: number; // unix timestamp of when the activity was added to the user's session
- timestamps?: {
- // unix timestamps for start and/or end of the game
- start: number;
- end: number;
- };
- application_id?: string; // application id for the game
- details?: string;
- state?: string;
- emoji?: {
- name: string;
- id?: string;
- animated: boolean;
- };
- party?: {
- id?: string;
- size?: [number]; // used to show the party's current and maximum size // TODO: array length 2
- };
- assets?: {
- large_image?: string; // the id for a large asset of the activity, usually a snowflake
- large_text?: string; // text displayed when hovering over the large image of the activity
- small_image?: string; // the id for a small asset of the activity, usually a snowflake
- small_text?: string; // text displayed when hovering over the small image of the activity
- };
- secrets?: {
- join?: string; // the secret for joining a party
- spectate?: string; // the secret for spectating a game
- match?: string; // the secret for a specific instanced match
- };
- instance?: boolean;
- flags: string; // activity flags OR d together, describes what the payload includes
-}
-
-export enum ActivityType {
- GAME = 0,
- STREAMING = 1,
- LISTENING = 2,
- CUSTOM = 4,
- COMPETING = 5,
-}
diff --git a/util/src/interfaces/Event.ts b/util/src/interfaces/Event.ts
deleted file mode 100644
index f3391c4f..00000000
--- a/util/src/interfaces/Event.ts
+++ /dev/null
@@ -1,640 +0,0 @@
-import { PublicUser, User, UserSettings } from "../entities/User";
-import { Channel } from "../entities/Channel";
-import { Guild } from "../entities/Guild";
-import { Member, PublicMember, UserGuildSettings } from "../entities/Member";
-import { Emoji } from "../entities/Emoji";
-import { Role } from "../entities/Role";
-import { Invite } from "../entities/Invite";
-import { Message, PartialEmoji } from "../entities/Message";
-import { VoiceState } from "../entities/VoiceState";
-import { ApplicationCommand } from "../entities/Application";
-import { Interaction } from "./Interaction";
-import { ConnectedAccount } from "../entities/ConnectedAccount";
-import { Relationship, RelationshipType } from "../entities/Relationship";
-import { Presence } from "./Presence";
-import { Sticker } from "..";
-import { Activity, Status } from ".";
-
-export interface Event {
- guild_id?: string;
- user_id?: string;
- channel_id?: string;
- created_at?: Date;
- event: EVENT;
- data?: any;
-}
-
-// ! Custom Events that shouldn't get sent to the client but processed by the server
-
-export interface InvalidatedEvent extends Event {
- event: "INVALIDATED";
-}
-
-export interface PublicRelationship {
- id: string;
- user: PublicUser;
- type: RelationshipType;
-}
-
-// ! END Custom Events that shouldn't get sent to the client but processed by the server
-
-export interface ReadyEventData {
- v: number;
- user: PublicUser & {
- mobile: boolean;
- desktop: boolean;
- email: string | undefined;
- flags: string;
- mfa_enabled: boolean;
- nsfw_allowed: boolean;
- phone: string | undefined;
- premium: boolean;
- premium_type: number;
- verified: boolean;
- bot: boolean;
- };
- private_channels: Channel[]; // this will be empty for bots
- session_id: string; // resuming
- guilds: Guild[];
- analytics_token?: string;
- connected_accounts?: ConnectedAccount[];
- consents?: {
- personalization?: {
- consented?: boolean;
- };
- };
- country_code?: string; // e.g. DE
- friend_suggestion_count?: number;
- geo_ordered_rtc_regions?: string[]; // ["europe","russie","india","us-east","us-central"]
- experiments?: [number, number, number, number, number][];
- guild_experiments?: [
- // ? what are guild_experiments?
- // this is the structure of it:
- number,
- null,
- number,
- [[number, { e: number; s: number }[]]],
- [number, [[number, [number, number]]]],
- { b: number; k: bigint[] }[]
- ][];
- guild_join_requests?: any[]; // ? what is this? this is new
- shard?: [number, number];
- user_settings?: UserSettings;
- relationships?: PublicRelationship[]; // TODO
- read_state: {
- entries: any[]; // TODO
- partial: boolean;
- version: number;
- };
- user_guild_settings?: {
- entries: UserGuildSettings[];
- version: number;
- partial: boolean;
- };
- application?: {
- id: string;
- flags: number;
- };
- merged_members?: PublicMember[][];
- // probably all users who the user is in contact with
- users?: PublicUser[];
-}
-
-export interface ReadyEvent extends Event {
- event: "READY";
- data: ReadyEventData;
-}
-
-export interface ChannelCreateEvent extends Event {
- event: "CHANNEL_CREATE";
- data: Channel;
-}
-
-export interface ChannelUpdateEvent extends Event {
- event: "CHANNEL_UPDATE";
- data: Channel;
-}
-
-export interface ChannelDeleteEvent extends Event {
- event: "CHANNEL_DELETE";
- data: Channel;
-}
-
-export interface ChannelPinsUpdateEvent extends Event {
- event: "CHANNEL_PINS_UPDATE";
- data: {
- guild_id?: string;
- channel_id: string;
- last_pin_timestamp?: number;
- };
-}
-
-export interface ChannelRecipientAddEvent extends Event {
- event: "CHANNEL_RECIPIENT_ADD";
- data: {
- channel_id: string;
- user: User;
- };
-}
-
-export interface ChannelRecipientRemoveEvent extends Event {
- event: "CHANNEL_RECIPIENT_REMOVE";
- data: {
- channel_id: string;
- user: User;
- };
-}
-
-export interface GuildCreateEvent extends Event {
- event: "GUILD_CREATE";
- data: Guild & {
- joined_at: Date;
- // TODO: add them to guild
- guild_scheduled_events: never[];
- guild_hashes: {};
- presences: never[];
- stage_instances: never[];
- threads: never[];
- };
-}
-
-export interface GuildUpdateEvent extends Event {
- event: "GUILD_UPDATE";
- data: Guild;
-}
-
-export interface GuildDeleteEvent extends Event {
- event: "GUILD_DELETE";
- data: {
- id: string;
- unavailable?: boolean;
- };
-}
-
-export interface GuildBanAddEvent extends Event {
- event: "GUILD_BAN_ADD";
- data: {
- guild_id: string;
- user: User;
- };
-}
-
-export interface GuildBanRemoveEvent extends Event {
- event: "GUILD_BAN_REMOVE";
- data: {
- guild_id: string;
- user: User;
- };
-}
-
-export interface GuildEmojisUpdateEvent extends Event {
- event: "GUILD_EMOJIS_UPDATE";
- data: {
- guild_id: string;
- emojis: Emoji[];
- };
-}
-
-export interface GuildStickersUpdateEvent extends Event {
- event: "GUILD_STICKERS_UPDATE";
- data: {
- guild_id: string;
- stickers: Sticker[];
- };
-}
-
-export interface GuildIntegrationUpdateEvent extends Event {
- event: "GUILD_INTEGRATIONS_UPDATE";
- data: {
- guild_id: string;
- };
-}
-
-export interface GuildMemberAddEvent extends Event {
- event: "GUILD_MEMBER_ADD";
- data: PublicMember & {
- guild_id: string;
- };
-}
-
-export interface GuildMemberRemoveEvent extends Event {
- event: "GUILD_MEMBER_REMOVE";
- data: {
- guild_id: string;
- user: User;
- };
-}
-
-export interface GuildMemberUpdateEvent extends Event {
- event: "GUILD_MEMBER_UPDATE";
- data: {
- guild_id: string;
- roles: string[];
- user: User;
- nick?: string;
- joined_at?: Date;
- premium_since?: number;
- pending?: boolean;
- };
-}
-
-export interface GuildMembersChunkEvent extends Event {
- event: "GUILD_MEMBERS_CHUNK";
- data: {
- guild_id: string;
- members: PublicMember[];
- chunk_index: number;
- chunk_count: number;
- not_found: string[];
- presences: Presence[];
- nonce?: string;
- };
-}
-
-export interface GuildRoleCreateEvent extends Event {
- event: "GUILD_ROLE_CREATE";
- data: {
- guild_id: string;
- role: Role;
- };
-}
-
-export interface GuildRoleUpdateEvent extends Event {
- event: "GUILD_ROLE_UPDATE";
- data: {
- guild_id: string;
- role: Role;
- };
-}
-
-export interface GuildRoleDeleteEvent extends Event {
- event: "GUILD_ROLE_DELETE";
- data: {
- guild_id: string;
- role_id: string;
- };
-}
-
-export interface InviteCreateEvent extends Event {
- event: "INVITE_CREATE";
- data: Omit<Invite, "guild" | "channel"> & {
- channel_id: string;
- guild_id?: string;
- };
-}
-
-export interface InviteDeleteEvent extends Event {
- event: "INVITE_DELETE";
- data: {
- channel_id: string;
- guild_id?: string;
- code: string;
- };
-}
-
-export interface MessageCreateEvent extends Event {
- event: "MESSAGE_CREATE";
- data: Message;
-}
-
-export interface MessageUpdateEvent extends Event {
- event: "MESSAGE_UPDATE";
- data: Message;
-}
-
-export interface MessageDeleteEvent extends Event {
- event: "MESSAGE_DELETE";
- data: {
- id: string;
- channel_id: string;
- guild_id?: string;
- };
-}
-
-export interface MessageDeleteBulkEvent extends Event {
- event: "MESSAGE_DELETE_BULK";
- data: {
- ids: string[];
- channel_id: string;
- guild_id?: string;
- };
-}
-
-export interface MessageReactionAddEvent extends Event {
- event: "MESSAGE_REACTION_ADD";
- data: {
- user_id: string;
- channel_id: string;
- message_id: string;
- guild_id?: string;
- member?: PublicMember;
- emoji: PartialEmoji;
- };
-}
-
-export interface MessageReactionRemoveEvent extends Event {
- event: "MESSAGE_REACTION_REMOVE";
- data: {
- user_id: string;
- channel_id: string;
- message_id: string;
- guild_id?: string;
- emoji: PartialEmoji;
- };
-}
-
-export interface MessageReactionRemoveAllEvent extends Event {
- event: "MESSAGE_REACTION_REMOVE_ALL";
- data: {
- channel_id: string;
- message_id: string;
- guild_id?: string;
- };
-}
-
-export interface MessageReactionRemoveEmojiEvent extends Event {
- event: "MESSAGE_REACTION_REMOVE_EMOJI";
- data: {
- channel_id: string;
- message_id: string;
- guild_id?: string;
- emoji: PartialEmoji;
- };
-}
-
-export interface PresenceUpdateEvent extends Event {
- event: "PRESENCE_UPDATE";
- data: Presence;
-}
-
-export interface TypingStartEvent extends Event {
- event: "TYPING_START";
- data: {
- channel_id: string;
- user_id: string;
- timestamp: number;
- guild_id?: string;
- member?: PublicMember;
- };
-}
-
-export interface UserUpdateEvent extends Event {
- event: "USER_UPDATE";
- data: User;
-}
-
-export interface VoiceStateUpdateEvent extends Event {
- event: "VOICE_STATE_UPDATE";
- data: VoiceState & {
- member: PublicMember;
- };
-}
-
-export interface VoiceServerUpdateEvent extends Event {
- event: "VOICE_SERVER_UPDATE";
- data: {
- token: string;
- guild_id: string;
- endpoint: string;
- };
-}
-
-export interface WebhooksUpdateEvent extends Event {
- event: "WEBHOOKS_UPDATE";
- data: {
- guild_id: string;
- channel_id: string;
- };
-}
-
-export type ApplicationCommandPayload = ApplicationCommand & {
- guild_id: string;
-};
-
-export interface ApplicationCommandCreateEvent extends Event {
- event: "APPLICATION_COMMAND_CREATE";
- data: ApplicationCommandPayload;
-}
-
-export interface ApplicationCommandUpdateEvent extends Event {
- event: "APPLICATION_COMMAND_UPDATE";
- data: ApplicationCommandPayload;
-}
-
-export interface ApplicationCommandDeleteEvent extends Event {
- event: "APPLICATION_COMMAND_DELETE";
- data: ApplicationCommandPayload;
-}
-
-export interface InteractionCreateEvent extends Event {
- event: "INTERACTION_CREATE";
- data: Interaction;
-}
-
-export interface MessageAckEvent extends Event {
- event: "MESSAGE_ACK";
- data: {
- channel_id: string;
- message_id: string;
- version?: number;
- manual?: boolean;
- mention_count?: number;
- };
-}
-
-export interface RelationshipAddEvent extends Event {
- event: "RELATIONSHIP_ADD";
- data: PublicRelationship & {
- should_notify?: boolean;
- user: PublicUser;
- };
-}
-
-export interface RelationshipRemoveEvent extends Event {
- event: "RELATIONSHIP_REMOVE";
- data: Omit<PublicRelationship, "nickname">;
-}
-
-export interface SessionsReplace extends Event {
- event: "SESSIONS_REPLACE";
- data: {
- activities: Activity[];
- client_info: {
- version: number;
- os: string;
- client: string;
- };
- status: Status;
- }[];
-}
-
-export interface GuildMemberListUpdate extends Event {
- event: "GUILD_MEMBER_LIST_UPDATE";
- data: {
- groups: { id: string; count: number }[];
- guild_id: string;
- id: string;
- member_count: number;
- online_count: number;
- ops: {
- index: number;
- item: {
- member?: PublicMember & { presence: Presence };
- group?: { id: string; count: number }[];
- };
- }[];
- };
-}
-
-export type EventData =
- | InvalidatedEvent
- | ReadyEvent
- | ChannelCreateEvent
- | ChannelUpdateEvent
- | ChannelDeleteEvent
- | ChannelPinsUpdateEvent
- | ChannelRecipientAddEvent
- | ChannelRecipientRemoveEvent
- | GuildCreateEvent
- | GuildUpdateEvent
- | GuildDeleteEvent
- | GuildBanAddEvent
- | GuildBanRemoveEvent
- | GuildEmojisUpdateEvent
- | GuildIntegrationUpdateEvent
- | GuildMemberAddEvent
- | GuildMemberRemoveEvent
- | GuildMemberUpdateEvent
- | GuildMembersChunkEvent
- | GuildMemberListUpdate
- | GuildRoleCreateEvent
- | GuildRoleUpdateEvent
- | GuildRoleDeleteEvent
- | InviteCreateEvent
- | InviteDeleteEvent
- | MessageCreateEvent
- | MessageUpdateEvent
- | MessageDeleteEvent
- | MessageDeleteBulkEvent
- | MessageReactionAddEvent
- | MessageReactionRemoveEvent
- | MessageReactionRemoveAllEvent
- | MessageReactionRemoveEmojiEvent
- | PresenceUpdateEvent
- | TypingStartEvent
- | UserUpdateEvent
- | VoiceStateUpdateEvent
- | VoiceServerUpdateEvent
- | WebhooksUpdateEvent
- | ApplicationCommandCreateEvent
- | ApplicationCommandUpdateEvent
- | ApplicationCommandDeleteEvent
- | InteractionCreateEvent
- | MessageAckEvent
- | RelationshipAddEvent
- | RelationshipRemoveEvent;
-
-// located in collection events
-
-export enum EVENTEnum {
- Ready = "READY",
- ChannelCreate = "CHANNEL_CREATE",
- ChannelUpdate = "CHANNEL_UPDATE",
- ChannelDelete = "CHANNEL_DELETE",
- ChannelPinsUpdate = "CHANNEL_PINS_UPDATE",
- ChannelRecipientAdd = "CHANNEL_RECIPIENT_ADD",
- ChannelRecipientRemove = "CHANNEL_RECIPIENT_REMOVE",
- GuildCreate = "GUILD_CREATE",
- GuildUpdate = "GUILD_UPDATE",
- GuildDelete = "GUILD_DELETE",
- GuildBanAdd = "GUILD_BAN_ADD",
- GuildBanRemove = "GUILD_BAN_REMOVE",
- GuildEmojUpdate = "GUILD_EMOJI_UPDATE",
- GuildIntegrationsUpdate = "GUILD_INTEGRATIONS_UPDATE",
- GuildMemberAdd = "GUILD_MEMBER_ADD",
- GuildMemberRempve = "GUILD_MEMBER_REMOVE",
- GuildMemberUpdate = "GUILD_MEMBER_UPDATE",
- GuildMemberSpeaking = "GUILD_MEMBER_SPEAKING",
- GuildMembersChunk = "GUILD_MEMBERS_CHUNK",
- GuildMemberListUpdate = "GUILD_MEMBER_LIST_UPDATE",
- GuildRoleCreate = "GUILD_ROLE_CREATE",
- GuildRoleDelete = "GUILD_ROLE_DELETE",
- GuildRoleUpdate = "GUILD_ROLE_UPDATE",
- InviteCreate = "INVITE_CREATE",
- InviteDelete = "INVITE_DELETE",
- MessageCreate = "MESSAGE_CREATE",
- MessageUpdate = "MESSAGE_UPDATE",
- MessageDelete = "MESSAGE_DELETE",
- MessageDeleteBulk = "MESSAGE_DELETE_BULK",
- MessageReactionAdd = "MESSAGE_REACTION_ADD",
- MessageReactionRemove = "MESSAGE_REACTION_REMOVE",
- MessageReactionRemoveAll = "MESSAGE_REACTION_REMOVE_ALL",
- MessageReactionRemoveEmoji = "MESSAGE_REACTION_REMOVE_EMOJI",
- PresenceUpdate = "PRESENCE_UPDATE",
- TypingStart = "TYPING_START",
- UserUpdate = "USER_UPDATE",
- WebhooksUpdate = "WEBHOOKS_UPDATE",
- InteractionCreate = "INTERACTION_CREATE",
- VoiceStateUpdate = "VOICE_STATE_UPDATE",
- VoiceServerUpdate = "VOICE_SERVER_UPDATE",
- ApplicationCommandCreate = "APPLICATION_COMMAND_CREATE",
- ApplicationCommandUpdate = "APPLICATION_COMMAND_UPDATE",
- ApplicationCommandDelete = "APPLICATION_COMMAND_DELETE",
- SessionsReplace = "SESSIONS_REPLACE",
-}
-
-export type EVENT =
- | "READY"
- | "CHANNEL_CREATE"
- | "CHANNEL_UPDATE"
- | "CHANNEL_DELETE"
- | "CHANNEL_PINS_UPDATE"
- | "CHANNEL_RECIPIENT_ADD"
- | "CHANNEL_RECIPIENT_REMOVE"
- | "GUILD_CREATE"
- | "GUILD_UPDATE"
- | "GUILD_DELETE"
- | "GUILD_BAN_ADD"
- | "GUILD_BAN_REMOVE"
- | "GUILD_EMOJIS_UPDATE"
- | "GUILD_STICKERS_UPDATE"
- | "GUILD_INTEGRATIONS_UPDATE"
- | "GUILD_MEMBER_ADD"
- | "GUILD_MEMBER_REMOVE"
- | "GUILD_MEMBER_UPDATE"
- | "GUILD_MEMBER_SPEAKING"
- | "GUILD_MEMBERS_CHUNK"
- | "GUILD_MEMBER_LIST_UPDATE"
- | "GUILD_ROLE_CREATE"
- | "GUILD_ROLE_DELETE"
- | "GUILD_ROLE_UPDATE"
- | "INVITE_CREATE"
- | "INVITE_DELETE"
- | "MESSAGE_CREATE"
- | "MESSAGE_UPDATE"
- | "MESSAGE_DELETE"
- | "MESSAGE_DELETE_BULK"
- | "MESSAGE_REACTION_ADD"
- // TODO: add a new event: bulk add reaction:
- // | "MESSAGE_REACTION_BULK_ADD"
- | "MESSAGE_REACTION_REMOVE"
- | "MESSAGE_REACTION_REMOVE_ALL"
- | "MESSAGE_REACTION_REMOVE_EMOJI"
- | "PRESENCE_UPDATE"
- | "TYPING_START"
- | "USER_UPDATE"
- | "USER_NOTE_UPDATE"
- | "WEBHOOKS_UPDATE"
- | "INTERACTION_CREATE"
- | "VOICE_STATE_UPDATE"
- | "VOICE_SERVER_UPDATE"
- | "APPLICATION_COMMAND_CREATE"
- | "APPLICATION_COMMAND_UPDATE"
- | "APPLICATION_COMMAND_DELETE"
- | "MESSAGE_ACK"
- | "RELATIONSHIP_ADD"
- | "RELATIONSHIP_REMOVE"
- | "SESSIONS_REPLACE"
- | CUSTOMEVENTS;
-
-export type CUSTOMEVENTS = "INVALIDATED" | "RATELIMIT";
diff --git a/util/src/interfaces/Interaction.ts b/util/src/interfaces/Interaction.ts
deleted file mode 100644
index 5d3aae24..00000000
--- a/util/src/interfaces/Interaction.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import { AllowedMentions, Embed } from "../entities/Message";
-
-export interface Interaction {
- id: string;
- type: InteractionType;
- data?: {};
- guild_id: string;
- channel_id: string;
- member_id: string;
- token: string;
- version: number;
-}
-
-export enum InteractionType {
- SelfCommand = 0,
- Ping = 1,
- ApplicationCommand = 2,
-}
-
-export enum InteractionResponseType {
- SelfCommandResponse = 0,
- Pong = 1,
- Acknowledge = 2,
- ChannelMessage = 3,
- ChannelMessageWithSource = 4,
- AcknowledgeWithSource = 5,
-}
-
-export interface InteractionApplicationCommandCallbackData {
- tts?: boolean;
- content: string;
- embeds?: Embed[];
- allowed_mentions?: AllowedMentions;
-}
diff --git a/util/src/interfaces/Presence.ts b/util/src/interfaces/Presence.ts
deleted file mode 100644
index 7663891a..00000000
--- a/util/src/interfaces/Presence.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { ClientStatus, Status } from "./Status";
-import { Activity } from "./Activity";
-import { PublicUser } from "../entities/User";
-
-export interface Presence {
- user: PublicUser;
- guild_id?: string;
- status: Status;
- activities: Activity[];
- client_status: ClientStatus;
- // TODO: game
-}
diff --git a/util/src/interfaces/Status.ts b/util/src/interfaces/Status.ts
deleted file mode 100644
index 5d2e1bba..00000000
--- a/util/src/interfaces/Status.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-export type Status = "idle" | "dnd" | "online" | "offline" | "invisible";
-
-export interface ClientStatus {
- desktop?: string; // e.g. Windows/Linux/Mac
- mobile?: string; // e.g. iOS/Android
- web?: string; // e.g. browser, bot account
-}
diff --git a/util/src/interfaces/index.ts b/util/src/interfaces/index.ts
deleted file mode 100644
index ab7fa429..00000000
--- a/util/src/interfaces/index.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export * from "./Activity";
-export * from "./Presence";
-export * from "./Interaction";
-export * from "./Event";
-export * from "./Status";
diff --git a/util/src/migrations/mariadb/1659901151025-initial.ts b/util/src/migrations/mariadb/1659901151025-initial.ts
deleted file mode 100644
index d15e0add..00000000
--- a/util/src/migrations/mariadb/1659901151025-initial.ts
+++ /dev/null
@@ -1,1219 +0,0 @@
-import { MigrationInterface, QueryRunner } from "typeorm";
-
-export class initial1659901151025 implements MigrationInterface {
- name = 'initial1659901151025'
-
- public async up(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- CREATE TABLE \`config\` (
- \`key\` varchar(255) NOT NULL,
- \`value\` text NULL,
- PRIMARY KEY (\`key\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`relationships\` (
- \`id\` varchar(255) NOT NULL,
- \`from_id\` varchar(255) NOT NULL,
- \`to_id\` varchar(255) NOT NULL,
- \`nickname\` varchar(255) NULL,
- \`type\` int NOT NULL,
- UNIQUE INDEX \`IDX_a0b2ff0a598df0b0d055934a17\` (\`from_id\`, \`to_id\`),
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`connected_accounts\` (
- \`id\` varchar(255) NOT NULL,
- \`user_id\` varchar(255) NULL,
- \`access_token\` varchar(255) NOT NULL,
- \`friend_sync\` tinyint NOT NULL,
- \`name\` varchar(255) NOT NULL,
- \`revoked\` tinyint NOT NULL,
- \`show_activity\` tinyint NOT NULL,
- \`type\` varchar(255) NOT NULL,
- \`verified\` tinyint NOT NULL,
- \`visibility\` int NOT NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`users\` (
- \`id\` varchar(255) NOT NULL,
- \`username\` varchar(255) NOT NULL,
- \`discriminator\` varchar(255) NOT NULL,
- \`avatar\` varchar(255) NULL,
- \`accent_color\` int NULL,
- \`banner\` varchar(255) NULL,
- \`phone\` varchar(255) NULL,
- \`desktop\` tinyint NOT NULL,
- \`mobile\` tinyint NOT NULL,
- \`premium\` tinyint NOT NULL,
- \`premium_type\` int NOT NULL,
- \`bot\` tinyint NOT NULL,
- \`bio\` varchar(255) NOT NULL,
- \`system\` tinyint NOT NULL,
- \`nsfw_allowed\` tinyint NOT NULL,
- \`mfa_enabled\` tinyint NOT NULL,
- \`totp_secret\` varchar(255) NULL,
- \`totp_last_ticket\` varchar(255) NULL,
- \`created_at\` datetime NOT NULL,
- \`premium_since\` datetime NULL,
- \`verified\` tinyint NOT NULL,
- \`disabled\` tinyint NOT NULL,
- \`deleted\` tinyint NOT NULL,
- \`email\` varchar(255) NULL,
- \`flags\` varchar(255) NOT NULL,
- \`public_flags\` int NOT NULL,
- \`rights\` bigint NOT NULL,
- \`data\` text NOT NULL,
- \`fingerprints\` text NOT NULL,
- \`settings\` text NOT NULL,
- \`extended_settings\` text NOT NULL,
- \`notes\` text NOT NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`backup_codes\` (
- \`id\` varchar(255) NOT NULL,
- \`code\` varchar(255) NOT NULL,
- \`consumed\` tinyint NOT NULL,
- \`expired\` tinyint NOT NULL,
- \`user_id\` varchar(255) NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`bans\` (
- \`id\` varchar(255) NOT NULL,
- \`user_id\` varchar(255) NULL,
- \`guild_id\` varchar(255) NULL,
- \`executor_id\` varchar(255) NULL,
- \`ip\` varchar(255) NOT NULL,
- \`reason\` varchar(255) NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`recipients\` (
- \`id\` varchar(255) NOT NULL,
- \`channel_id\` varchar(255) NOT NULL,
- \`user_id\` varchar(255) NOT NULL,
- \`closed\` tinyint NOT NULL DEFAULT 0,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`roles\` (
- \`id\` varchar(255) NOT NULL,
- \`guild_id\` varchar(255) NULL,
- \`color\` int NOT NULL,
- \`hoist\` tinyint NOT NULL,
- \`managed\` tinyint NOT NULL,
- \`mentionable\` tinyint NOT NULL,
- \`name\` varchar(255) NOT NULL,
- \`permissions\` varchar(255) NOT NULL,
- \`position\` int NOT NULL,
- \`icon\` varchar(255) NULL,
- \`unicode_emoji\` varchar(255) NULL,
- \`tags\` text NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`members\` (
- \`index\` int NOT NULL AUTO_INCREMENT,
- \`id\` varchar(255) NOT NULL,
- \`guild_id\` varchar(255) NOT NULL,
- \`nick\` varchar(255) NULL,
- \`joined_at\` datetime NOT NULL,
- \`premium_since\` bigint NULL,
- \`deaf\` tinyint NOT NULL,
- \`mute\` tinyint NOT NULL,
- \`pending\` tinyint NOT NULL,
- \`settings\` text NOT NULL,
- \`last_message_id\` varchar(255) NULL,
- \`joined_by\` varchar(255) NULL,
- UNIQUE INDEX \`IDX_bb2bf9386ac443afbbbf9f12d3\` (\`id\`, \`guild_id\`),
- PRIMARY KEY (\`index\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`webhooks\` (
- \`id\` varchar(255) NOT NULL,
- \`type\` int NOT NULL,
- \`name\` varchar(255) NULL,
- \`avatar\` varchar(255) NULL,
- \`token\` varchar(255) NULL,
- \`guild_id\` varchar(255) NULL,
- \`channel_id\` varchar(255) NULL,
- \`application_id\` varchar(255) NULL,
- \`user_id\` varchar(255) NULL,
- \`source_guild_id\` varchar(255) NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`stickers\` (
- \`id\` varchar(255) NOT NULL,
- \`name\` varchar(255) NOT NULL,
- \`description\` varchar(255) NULL,
- \`available\` tinyint NULL,
- \`tags\` varchar(255) NULL,
- \`pack_id\` varchar(255) NULL,
- \`guild_id\` varchar(255) NULL,
- \`user_id\` varchar(255) NULL,
- \`type\` int NOT NULL,
- \`format_type\` int NOT NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`attachments\` (
- \`id\` varchar(255) NOT NULL,
- \`filename\` varchar(255) NOT NULL,
- \`size\` int NOT NULL,
- \`url\` varchar(255) NOT NULL,
- \`proxy_url\` varchar(255) NOT NULL,
- \`height\` int NULL,
- \`width\` int NULL,
- \`content_type\` varchar(255) NULL,
- \`message_id\` varchar(255) NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`messages\` (
- \`id\` varchar(255) NOT NULL,
- \`channel_id\` varchar(255) NULL,
- \`guild_id\` varchar(255) NULL,
- \`author_id\` varchar(255) NULL,
- \`member_id\` varchar(255) NULL,
- \`webhook_id\` varchar(255) NULL,
- \`application_id\` varchar(255) NULL,
- \`content\` varchar(255) NULL,
- \`timestamp\` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
- \`edited_timestamp\` datetime NULL,
- \`tts\` tinyint NULL,
- \`mention_everyone\` tinyint NULL,
- \`embeds\` text NOT NULL,
- \`reactions\` text NOT NULL,
- \`nonce\` text NULL,
- \`pinned\` tinyint NULL,
- \`type\` int NOT NULL,
- \`activity\` text NULL,
- \`flags\` varchar(255) NULL,
- \`message_reference\` text NULL,
- \`interaction\` text NULL,
- \`components\` text NULL,
- \`message_reference_id\` varchar(255) NULL,
- INDEX \`IDX_86b9109b155eb70c0a2ca3b4b6\` (\`channel_id\`),
- INDEX \`IDX_05535bc695e9f7ee104616459d\` (\`author_id\`),
- UNIQUE INDEX \`IDX_3ed7a60fb7dbe04e1ba9332a8b\` (\`channel_id\`, \`id\`),
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`read_states\` (
- \`id\` varchar(255) NOT NULL,
- \`channel_id\` varchar(255) NOT NULL,
- \`user_id\` varchar(255) NOT NULL,
- \`last_message_id\` varchar(255) NULL,
- \`public_ack\` varchar(255) NULL,
- \`notifications_cursor\` varchar(255) NULL,
- \`last_pin_timestamp\` datetime NULL,
- \`mention_count\` int NULL,
- UNIQUE INDEX \`IDX_0abf8b443321bd3cf7f81ee17a\` (\`channel_id\`, \`user_id\`),
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`invites\` (
- \`code\` varchar(255) NOT NULL,
- \`temporary\` tinyint NOT NULL,
- \`uses\` int NOT NULL,
- \`max_uses\` int NOT NULL,
- \`max_age\` int NOT NULL,
- \`created_at\` datetime NOT NULL,
- \`expires_at\` datetime NOT NULL,
- \`guild_id\` varchar(255) NULL,
- \`channel_id\` varchar(255) NULL,
- \`inviter_id\` varchar(255) NULL,
- \`target_user_id\` varchar(255) NULL,
- \`target_user_type\` int NULL,
- \`vanity_url\` tinyint NULL,
- PRIMARY KEY (\`code\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`voice_states\` (
- \`id\` varchar(255) NOT NULL,
- \`guild_id\` varchar(255) NULL,
- \`channel_id\` varchar(255) NULL,
- \`user_id\` varchar(255) NULL,
- \`session_id\` varchar(255) NOT NULL,
- \`token\` varchar(255) NULL,
- \`deaf\` tinyint NOT NULL,
- \`mute\` tinyint NOT NULL,
- \`self_deaf\` tinyint NOT NULL,
- \`self_mute\` tinyint NOT NULL,
- \`self_stream\` tinyint NULL,
- \`self_video\` tinyint NOT NULL,
- \`suppress\` tinyint NOT NULL,
- \`request_to_speak_timestamp\` datetime NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`channels\` (
- \`id\` varchar(255) NOT NULL,
- \`created_at\` datetime NOT NULL,
- \`name\` varchar(255) NULL,
- \`icon\` text NULL,
- \`type\` int NOT NULL,
- \`last_message_id\` varchar(255) NULL,
- \`guild_id\` varchar(255) NULL,
- \`parent_id\` varchar(255) NULL,
- \`owner_id\` varchar(255) NULL,
- \`last_pin_timestamp\` int NULL,
- \`default_auto_archive_duration\` int NULL,
- \`position\` int NULL,
- \`permission_overwrites\` text NULL,
- \`video_quality_mode\` int NULL,
- \`bitrate\` int NULL,
- \`user_limit\` int NULL,
- \`nsfw\` tinyint NULL,
- \`rate_limit_per_user\` int NULL,
- \`topic\` varchar(255) NULL,
- \`retention_policy_id\` varchar(255) NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`emojis\` (
- \`id\` varchar(255) NOT NULL,
- \`animated\` tinyint NOT NULL,
- \`available\` tinyint NOT NULL,
- \`guild_id\` varchar(255) NOT NULL,
- \`user_id\` varchar(255) NULL,
- \`managed\` tinyint NOT NULL,
- \`name\` varchar(255) NOT NULL,
- \`require_colons\` tinyint NOT NULL,
- \`roles\` text NOT NULL,
- \`groups\` text NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`templates\` (
- \`id\` varchar(255) NOT NULL,
- \`code\` varchar(255) NOT NULL,
- \`name\` varchar(255) NOT NULL,
- \`description\` varchar(255) NULL,
- \`usage_count\` int NULL,
- \`creator_id\` varchar(255) NULL,
- \`created_at\` datetime NOT NULL,
- \`updated_at\` datetime NOT NULL,
- \`source_guild_id\` varchar(255) NULL,
- \`serialized_source_guild\` text NOT NULL,
- UNIQUE INDEX \`IDX_be38737bf339baf63b1daeffb5\` (\`code\`),
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`guilds\` (
- \`id\` varchar(255) NOT NULL,
- \`afk_channel_id\` varchar(255) NULL,
- \`afk_timeout\` int NULL,
- \`banner\` varchar(255) NULL,
- \`default_message_notifications\` int NULL,
- \`description\` varchar(255) NULL,
- \`discovery_splash\` varchar(255) NULL,
- \`explicit_content_filter\` int NULL,
- \`features\` text NOT NULL,
- \`primary_category_id\` int NULL,
- \`icon\` varchar(255) NULL,
- \`large\` tinyint NULL,
- \`max_members\` int NULL,
- \`max_presences\` int NULL,
- \`max_video_channel_users\` int NULL,
- \`member_count\` int NULL,
- \`presence_count\` int NULL,
- \`template_id\` varchar(255) NULL,
- \`mfa_level\` int NULL,
- \`name\` varchar(255) NOT NULL,
- \`owner_id\` varchar(255) NULL,
- \`preferred_locale\` varchar(255) NULL,
- \`premium_subscription_count\` int NULL,
- \`premium_tier\` int NULL,
- \`public_updates_channel_id\` varchar(255) NULL,
- \`rules_channel_id\` varchar(255) NULL,
- \`region\` varchar(255) NULL,
- \`splash\` varchar(255) NULL,
- \`system_channel_id\` varchar(255) NULL,
- \`system_channel_flags\` int NULL,
- \`unavailable\` tinyint NULL,
- \`verification_level\` int NULL,
- \`welcome_screen\` text NOT NULL,
- \`widget_channel_id\` varchar(255) NULL,
- \`widget_enabled\` tinyint NULL,
- \`nsfw_level\` int NULL,
- \`nsfw\` tinyint NULL,
- \`parent\` varchar(255) NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`team_members\` (
- \`id\` varchar(255) NOT NULL,
- \`membership_state\` int NOT NULL,
- \`permissions\` text NOT NULL,
- \`team_id\` varchar(255) NULL,
- \`user_id\` varchar(255) NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`teams\` (
- \`id\` varchar(255) NOT NULL,
- \`icon\` varchar(255) NULL,
- \`name\` varchar(255) NOT NULL,
- \`owner_user_id\` varchar(255) NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`applications\` (
- \`id\` varchar(255) NOT NULL,
- \`name\` varchar(255) NOT NULL,
- \`icon\` varchar(255) NULL,
- \`description\` varchar(255) NOT NULL,
- \`rpc_origins\` text NULL,
- \`bot_public\` tinyint NOT NULL,
- \`bot_require_code_grant\` tinyint NOT NULL,
- \`terms_of_service_url\` varchar(255) NULL,
- \`privacy_policy_url\` varchar(255) NULL,
- \`summary\` varchar(255) NULL,
- \`verify_key\` varchar(255) NOT NULL,
- \`primary_sku_id\` varchar(255) NULL,
- \`slug\` varchar(255) NULL,
- \`cover_image\` varchar(255) NULL,
- \`flags\` varchar(255) NOT NULL,
- \`owner_id\` varchar(255) NULL,
- \`team_id\` varchar(255) NULL,
- \`guild_id\` varchar(255) NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`audit_logs\` (
- \`id\` varchar(255) NOT NULL,
- \`user_id\` varchar(255) NULL,
- \`action_type\` int NOT NULL,
- \`options\` text NULL,
- \`changes\` text NOT NULL,
- \`reason\` varchar(255) NULL,
- \`target_id\` varchar(255) NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`categories\` (
- \`id\` int NOT NULL,
- \`name\` varchar(255) NULL,
- \`localizations\` text NOT NULL,
- \`is_primary\` tinyint NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`rate_limits\` (
- \`id\` varchar(255) NOT NULL,
- \`executor_id\` varchar(255) NOT NULL,
- \`hits\` int NOT NULL,
- \`blocked\` tinyint NOT NULL,
- \`expires_at\` datetime NOT NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`sessions\` (
- \`id\` varchar(255) NOT NULL,
- \`user_id\` varchar(255) NULL,
- \`session_id\` varchar(255) NOT NULL,
- \`activities\` text NULL,
- \`client_info\` text NOT NULL,
- \`status\` varchar(255) NOT NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`sticker_packs\` (
- \`id\` varchar(255) NOT NULL,
- \`name\` varchar(255) NOT NULL,
- \`description\` varchar(255) NULL,
- \`banner_asset_id\` varchar(255) NULL,
- \`cover_sticker_id\` varchar(255) NULL,
- \`coverStickerId\` varchar(255) NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`client_release\` (
- \`id\` varchar(255) NOT NULL,
- \`name\` varchar(255) NOT NULL,
- \`pub_date\` varchar(255) NOT NULL,
- \`url\` varchar(255) NOT NULL,
- \`deb_url\` varchar(255) NOT NULL,
- \`osx_url\` varchar(255) NOT NULL,
- \`win_url\` varchar(255) NOT NULL,
- \`notes\` varchar(255) NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`notes\` (
- \`id\` varchar(255) NOT NULL,
- \`content\` varchar(255) NOT NULL,
- \`owner_id\` varchar(255) NULL,
- \`target_id\` varchar(255) NULL,
- UNIQUE INDEX \`IDX_74e6689b9568cc965b8bfc9150\` (\`owner_id\`, \`target_id\`),
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`member_roles\` (
- \`index\` int NOT NULL,
- \`role_id\` varchar(255) NOT NULL,
- INDEX \`IDX_5d7ddc8a5f9c167f548625e772\` (\`index\`),
- INDEX \`IDX_e9080e7a7997a0170026d5139c\` (\`role_id\`),
- PRIMARY KEY (\`index\`, \`role_id\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`message_user_mentions\` (
- \`messagesId\` varchar(255) NOT NULL,
- \`usersId\` varchar(255) NOT NULL,
- INDEX \`IDX_a343387fc560ef378760681c23\` (\`messagesId\`),
- INDEX \`IDX_b831eb18ceebd28976239b1e2f\` (\`usersId\`),
- PRIMARY KEY (\`messagesId\`, \`usersId\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`message_role_mentions\` (
- \`messagesId\` varchar(255) NOT NULL,
- \`rolesId\` varchar(255) NOT NULL,
- INDEX \`IDX_a8242cf535337a490b0feaea0b\` (\`messagesId\`),
- INDEX \`IDX_29d63eb1a458200851bc37d074\` (\`rolesId\`),
- PRIMARY KEY (\`messagesId\`, \`rolesId\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`message_channel_mentions\` (
- \`messagesId\` varchar(255) NOT NULL,
- \`channelsId\` varchar(255) NOT NULL,
- INDEX \`IDX_2a27102ecd1d81b4582a436092\` (\`messagesId\`),
- INDEX \`IDX_bdb8c09e1464cabf62105bf4b9\` (\`channelsId\`),
- PRIMARY KEY (\`messagesId\`, \`channelsId\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- CREATE TABLE \`message_stickers\` (
- \`messagesId\` varchar(255) NOT NULL,
- \`stickersId\` varchar(255) NOT NULL,
- INDEX \`IDX_40bb6f23e7cc133292e92829d2\` (\`messagesId\`),
- INDEX \`IDX_e22a70819d07659c7a71c112a1\` (\`stickersId\`),
- PRIMARY KEY (\`messagesId\`, \`stickersId\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- ALTER TABLE \`relationships\`
- ADD CONSTRAINT \`FK_9af4194bab1250b1c584ae4f1d7\` FOREIGN KEY (\`from_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`relationships\`
- ADD CONSTRAINT \`FK_9c7f6b98a9843b76dce1b0c878b\` FOREIGN KEY (\`to_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`connected_accounts\`
- ADD CONSTRAINT \`FK_f47244225a6a1eac04a3463dd90\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`backup_codes\`
- ADD CONSTRAINT \`FK_70066ea80d2f4b871beda32633b\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`bans\`
- ADD CONSTRAINT \`FK_5999e8e449f80a236ff72023559\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`bans\`
- ADD CONSTRAINT \`FK_9d3ab7dd180ebdd245cdb66ecad\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`bans\`
- ADD CONSTRAINT \`FK_07ad88c86d1f290d46748410d58\` FOREIGN KEY (\`executor_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`recipients\`
- ADD CONSTRAINT \`FK_2f18ee1ba667f233ae86c0ea60e\` FOREIGN KEY (\`channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`recipients\`
- ADD CONSTRAINT \`FK_6157e8b6ba4e6e3089616481fe2\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`roles\`
- ADD CONSTRAINT \`FK_c32c1ab1c4dc7dcb0278c4b1b8b\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`members\`
- ADD CONSTRAINT \`FK_28b53062261b996d9c99fa12404\` FOREIGN KEY (\`id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`members\`
- ADD CONSTRAINT \`FK_16aceddd5b89825b8ed6029ad1c\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`webhooks\`
- ADD CONSTRAINT \`FK_487a7af59d189f744fe394368fc\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`webhooks\`
- ADD CONSTRAINT \`FK_df528cf77e82f8032230e7e37d8\` FOREIGN KEY (\`channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`webhooks\`
- ADD CONSTRAINT \`FK_c3e5305461931763b56aa905f1c\` FOREIGN KEY (\`application_id\`) REFERENCES \`applications\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`webhooks\`
- ADD CONSTRAINT \`FK_0d523f6f997c86e052c49b1455f\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`webhooks\`
- ADD CONSTRAINT \`FK_3a285f4f49c40e0706d3018bc9f\` FOREIGN KEY (\`source_guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`stickers\`
- ADD CONSTRAINT \`FK_e7cfa5cefa6661b3fb8fda8ce69\` FOREIGN KEY (\`pack_id\`) REFERENCES \`sticker_packs\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`stickers\`
- ADD CONSTRAINT \`FK_193d551d852aca5347ef5c9f205\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`stickers\`
- ADD CONSTRAINT \`FK_8f4ee73f2bb2325ff980502e158\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`attachments\`
- ADD CONSTRAINT \`FK_623e10eec51ada466c5038979e3\` FOREIGN KEY (\`message_id\`) REFERENCES \`messages\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`messages\`
- ADD CONSTRAINT \`FK_86b9109b155eb70c0a2ca3b4b6d\` FOREIGN KEY (\`channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`messages\`
- ADD CONSTRAINT \`FK_b193588441b085352a4c0109423\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`messages\`
- ADD CONSTRAINT \`FK_05535bc695e9f7ee104616459d3\` FOREIGN KEY (\`author_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`messages\`
- ADD CONSTRAINT \`FK_b0525304f2262b7014245351c76\` FOREIGN KEY (\`member_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`messages\`
- ADD CONSTRAINT \`FK_f83c04bcf1df4e5c0e7a52ed348\` FOREIGN KEY (\`webhook_id\`) REFERENCES \`webhooks\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`messages\`
- ADD CONSTRAINT \`FK_5d3ec1cb962de6488637fd779d6\` FOREIGN KEY (\`application_id\`) REFERENCES \`applications\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`messages\`
- ADD CONSTRAINT \`FK_61a92bb65b302a76d9c1fcd3174\` FOREIGN KEY (\`message_reference_id\`) REFERENCES \`messages\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`read_states\`
- ADD CONSTRAINT \`FK_40da2fca4e0eaf7a23b5bfc5d34\` FOREIGN KEY (\`channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`read_states\`
- ADD CONSTRAINT \`FK_195f92e4dd1254a4e348c043763\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`invites\`
- ADD CONSTRAINT \`FK_3f4939aa1461e8af57fea3fb05d\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`invites\`
- ADD CONSTRAINT \`FK_6a15b051fe5050aa00a4b9ff0f6\` FOREIGN KEY (\`channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`invites\`
- ADD CONSTRAINT \`FK_15c35422032e0b22b4ada95f48f\` FOREIGN KEY (\`inviter_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`invites\`
- ADD CONSTRAINT \`FK_11a0d394f8fc649c19ce5f16b59\` FOREIGN KEY (\`target_user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`voice_states\`
- ADD CONSTRAINT \`FK_03779ef216d4b0358470d9cb748\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`voice_states\`
- ADD CONSTRAINT \`FK_9f8d389866b40b6657edd026dd4\` FOREIGN KEY (\`channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`voice_states\`
- ADD CONSTRAINT \`FK_5fe1d5f931a67e85039c640001b\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`channels\`
- ADD CONSTRAINT \`FK_c253dafe5f3a03ec00cd8fb4581\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`channels\`
- ADD CONSTRAINT \`FK_3274522d14af40540b1a883fc80\` FOREIGN KEY (\`parent_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`channels\`
- ADD CONSTRAINT \`FK_3873ed438575cce703ecff4fc7b\` FOREIGN KEY (\`owner_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`emojis\`
- ADD CONSTRAINT \`FK_4b988e0db89d94cebcf07f598cc\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`emojis\`
- ADD CONSTRAINT \`FK_fa7ddd5f9a214e28ce596548421\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`templates\`
- ADD CONSTRAINT \`FK_d7374b7f8f5fbfdececa4fb62e1\` FOREIGN KEY (\`creator_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`templates\`
- ADD CONSTRAINT \`FK_445d00eaaea0e60a017a5ed0c11\` FOREIGN KEY (\`source_guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`guilds\`
- ADD CONSTRAINT \`FK_f591a66b8019d87b0fe6c12dad6\` FOREIGN KEY (\`afk_channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`guilds\`
- ADD CONSTRAINT \`FK_e2a2f873a64a5cf62526de42325\` FOREIGN KEY (\`template_id\`) REFERENCES \`templates\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`guilds\`
- ADD CONSTRAINT \`FK_fc1a451727e3643ca572a3bb394\` FOREIGN KEY (\`owner_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`guilds\`
- ADD CONSTRAINT \`FK_8d450b016dc8bec35f36729e4b0\` FOREIGN KEY (\`public_updates_channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`guilds\`
- ADD CONSTRAINT \`FK_95828668aa333460582e0ca6396\` FOREIGN KEY (\`rules_channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`guilds\`
- ADD CONSTRAINT \`FK_cfc3d3ad260f8121c95b31a1fce\` FOREIGN KEY (\`system_channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`guilds\`
- ADD CONSTRAINT \`FK_9d1d665379eefde7876a17afa99\` FOREIGN KEY (\`widget_channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`team_members\`
- ADD CONSTRAINT \`FK_fdad7d5768277e60c40e01cdcea\` FOREIGN KEY (\`team_id\`) REFERENCES \`teams\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`team_members\`
- ADD CONSTRAINT \`FK_c2bf4967c8c2a6b845dadfbf3d4\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`teams\`
- ADD CONSTRAINT \`FK_13f00abf7cb6096c43ecaf8c108\` FOREIGN KEY (\`owner_user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD CONSTRAINT \`FK_e57508958bf92b9d9d25231b5e8\` FOREIGN KEY (\`owner_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD CONSTRAINT \`FK_a36ed02953077f408d0f3ebc424\` FOREIGN KEY (\`team_id\`) REFERENCES \`teams\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD CONSTRAINT \`FK_e5bf78cdbbe9ba91062d74c5aba\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`audit_logs\`
- ADD CONSTRAINT \`FK_3cd01cd3ae7aab010310d96ac8e\` FOREIGN KEY (\`target_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`audit_logs\`
- ADD CONSTRAINT \`FK_bd2726fd31b35443f2245b93ba0\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`sessions\`
- ADD CONSTRAINT \`FK_085d540d9f418cfbdc7bd55bb19\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`sticker_packs\`
- ADD CONSTRAINT \`FK_448fafba4355ee1c837bbc865f1\` FOREIGN KEY (\`coverStickerId\`) REFERENCES \`stickers\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`notes\`
- ADD CONSTRAINT \`FK_f9e103f8ae67cb1787063597925\` FOREIGN KEY (\`owner_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`notes\`
- ADD CONSTRAINT \`FK_23e08e5b4481711d573e1abecdc\` FOREIGN KEY (\`target_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE \`member_roles\`
- ADD CONSTRAINT \`FK_5d7ddc8a5f9c167f548625e772e\` FOREIGN KEY (\`index\`) REFERENCES \`members\`(\`index\`) ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- ALTER TABLE \`member_roles\`
- ADD CONSTRAINT \`FK_e9080e7a7997a0170026d5139c1\` FOREIGN KEY (\`role_id\`) REFERENCES \`roles\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- ALTER TABLE \`message_user_mentions\`
- ADD CONSTRAINT \`FK_a343387fc560ef378760681c236\` FOREIGN KEY (\`messagesId\`) REFERENCES \`messages\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- ALTER TABLE \`message_user_mentions\`
- ADD CONSTRAINT \`FK_b831eb18ceebd28976239b1e2f8\` FOREIGN KEY (\`usersId\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- ALTER TABLE \`message_role_mentions\`
- ADD CONSTRAINT \`FK_a8242cf535337a490b0feaea0b4\` FOREIGN KEY (\`messagesId\`) REFERENCES \`messages\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- ALTER TABLE \`message_role_mentions\`
- ADD CONSTRAINT \`FK_29d63eb1a458200851bc37d074b\` FOREIGN KEY (\`rolesId\`) REFERENCES \`roles\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- ALTER TABLE \`message_channel_mentions\`
- ADD CONSTRAINT \`FK_2a27102ecd1d81b4582a4360921\` FOREIGN KEY (\`messagesId\`) REFERENCES \`messages\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- ALTER TABLE \`message_channel_mentions\`
- ADD CONSTRAINT \`FK_bdb8c09e1464cabf62105bf4b9d\` FOREIGN KEY (\`channelsId\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- ALTER TABLE \`message_stickers\`
- ADD CONSTRAINT \`FK_40bb6f23e7cc133292e92829d28\` FOREIGN KEY (\`messagesId\`) REFERENCES \`messages\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- ALTER TABLE \`message_stickers\`
- ADD CONSTRAINT \`FK_e22a70819d07659c7a71c112a1f\` FOREIGN KEY (\`stickersId\`) REFERENCES \`stickers\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- CREATE TABLE \`query-result-cache\` (
- \`id\` int NOT NULL AUTO_INCREMENT,
- \`identifier\` varchar(255) NULL,
- \`time\` bigint NOT NULL,
- \`duration\` int NOT NULL,
- \`query\` text NOT NULL,
- \`result\` text NOT NULL,
- PRIMARY KEY (\`id\`)
- ) ENGINE = InnoDB
- `);
- }
-
- public async down(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- DROP TABLE \`query-result-cache\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`message_stickers\` DROP FOREIGN KEY \`FK_e22a70819d07659c7a71c112a1f\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`message_stickers\` DROP FOREIGN KEY \`FK_40bb6f23e7cc133292e92829d28\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`message_channel_mentions\` DROP FOREIGN KEY \`FK_bdb8c09e1464cabf62105bf4b9d\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`message_channel_mentions\` DROP FOREIGN KEY \`FK_2a27102ecd1d81b4582a4360921\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`message_role_mentions\` DROP FOREIGN KEY \`FK_29d63eb1a458200851bc37d074b\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`message_role_mentions\` DROP FOREIGN KEY \`FK_a8242cf535337a490b0feaea0b4\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`message_user_mentions\` DROP FOREIGN KEY \`FK_b831eb18ceebd28976239b1e2f8\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`message_user_mentions\` DROP FOREIGN KEY \`FK_a343387fc560ef378760681c236\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`member_roles\` DROP FOREIGN KEY \`FK_e9080e7a7997a0170026d5139c1\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`member_roles\` DROP FOREIGN KEY \`FK_5d7ddc8a5f9c167f548625e772e\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`notes\` DROP FOREIGN KEY \`FK_23e08e5b4481711d573e1abecdc\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`notes\` DROP FOREIGN KEY \`FK_f9e103f8ae67cb1787063597925\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`sticker_packs\` DROP FOREIGN KEY \`FK_448fafba4355ee1c837bbc865f1\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`sessions\` DROP FOREIGN KEY \`FK_085d540d9f418cfbdc7bd55bb19\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`audit_logs\` DROP FOREIGN KEY \`FK_bd2726fd31b35443f2245b93ba0\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`audit_logs\` DROP FOREIGN KEY \`FK_3cd01cd3ae7aab010310d96ac8e\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_e5bf78cdbbe9ba91062d74c5aba\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_a36ed02953077f408d0f3ebc424\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_e57508958bf92b9d9d25231b5e8\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`teams\` DROP FOREIGN KEY \`FK_13f00abf7cb6096c43ecaf8c108\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`team_members\` DROP FOREIGN KEY \`FK_c2bf4967c8c2a6b845dadfbf3d4\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`team_members\` DROP FOREIGN KEY \`FK_fdad7d5768277e60c40e01cdcea\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_9d1d665379eefde7876a17afa99\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_cfc3d3ad260f8121c95b31a1fce\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_95828668aa333460582e0ca6396\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_8d450b016dc8bec35f36729e4b0\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_fc1a451727e3643ca572a3bb394\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_e2a2f873a64a5cf62526de42325\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_f591a66b8019d87b0fe6c12dad6\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`templates\` DROP FOREIGN KEY \`FK_445d00eaaea0e60a017a5ed0c11\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`templates\` DROP FOREIGN KEY \`FK_d7374b7f8f5fbfdececa4fb62e1\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`emojis\` DROP FOREIGN KEY \`FK_fa7ddd5f9a214e28ce596548421\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`emojis\` DROP FOREIGN KEY \`FK_4b988e0db89d94cebcf07f598cc\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`channels\` DROP FOREIGN KEY \`FK_3873ed438575cce703ecff4fc7b\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`channels\` DROP FOREIGN KEY \`FK_3274522d14af40540b1a883fc80\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`channels\` DROP FOREIGN KEY \`FK_c253dafe5f3a03ec00cd8fb4581\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`voice_states\` DROP FOREIGN KEY \`FK_5fe1d5f931a67e85039c640001b\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`voice_states\` DROP FOREIGN KEY \`FK_9f8d389866b40b6657edd026dd4\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`voice_states\` DROP FOREIGN KEY \`FK_03779ef216d4b0358470d9cb748\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_11a0d394f8fc649c19ce5f16b59\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_15c35422032e0b22b4ada95f48f\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_6a15b051fe5050aa00a4b9ff0f6\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_3f4939aa1461e8af57fea3fb05d\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`read_states\` DROP FOREIGN KEY \`FK_195f92e4dd1254a4e348c043763\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`read_states\` DROP FOREIGN KEY \`FK_40da2fca4e0eaf7a23b5bfc5d34\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_61a92bb65b302a76d9c1fcd3174\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_5d3ec1cb962de6488637fd779d6\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_f83c04bcf1df4e5c0e7a52ed348\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_b0525304f2262b7014245351c76\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_05535bc695e9f7ee104616459d3\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_b193588441b085352a4c0109423\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_86b9109b155eb70c0a2ca3b4b6d\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`attachments\` DROP FOREIGN KEY \`FK_623e10eec51ada466c5038979e3\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`stickers\` DROP FOREIGN KEY \`FK_8f4ee73f2bb2325ff980502e158\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`stickers\` DROP FOREIGN KEY \`FK_193d551d852aca5347ef5c9f205\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`stickers\` DROP FOREIGN KEY \`FK_e7cfa5cefa6661b3fb8fda8ce69\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`webhooks\` DROP FOREIGN KEY \`FK_3a285f4f49c40e0706d3018bc9f\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`webhooks\` DROP FOREIGN KEY \`FK_0d523f6f997c86e052c49b1455f\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`webhooks\` DROP FOREIGN KEY \`FK_c3e5305461931763b56aa905f1c\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`webhooks\` DROP FOREIGN KEY \`FK_df528cf77e82f8032230e7e37d8\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`webhooks\` DROP FOREIGN KEY \`FK_487a7af59d189f744fe394368fc\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`members\` DROP FOREIGN KEY \`FK_16aceddd5b89825b8ed6029ad1c\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`members\` DROP FOREIGN KEY \`FK_28b53062261b996d9c99fa12404\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`roles\` DROP FOREIGN KEY \`FK_c32c1ab1c4dc7dcb0278c4b1b8b\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`recipients\` DROP FOREIGN KEY \`FK_6157e8b6ba4e6e3089616481fe2\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`recipients\` DROP FOREIGN KEY \`FK_2f18ee1ba667f233ae86c0ea60e\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`bans\` DROP FOREIGN KEY \`FK_07ad88c86d1f290d46748410d58\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`bans\` DROP FOREIGN KEY \`FK_9d3ab7dd180ebdd245cdb66ecad\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`bans\` DROP FOREIGN KEY \`FK_5999e8e449f80a236ff72023559\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`backup_codes\` DROP FOREIGN KEY \`FK_70066ea80d2f4b871beda32633b\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`connected_accounts\` DROP FOREIGN KEY \`FK_f47244225a6a1eac04a3463dd90\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`relationships\` DROP FOREIGN KEY \`FK_9c7f6b98a9843b76dce1b0c878b\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`relationships\` DROP FOREIGN KEY \`FK_9af4194bab1250b1c584ae4f1d7\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_e22a70819d07659c7a71c112a1\` ON \`message_stickers\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_40bb6f23e7cc133292e92829d2\` ON \`message_stickers\`
- `);
- await queryRunner.query(`
- DROP TABLE \`message_stickers\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_bdb8c09e1464cabf62105bf4b9\` ON \`message_channel_mentions\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_2a27102ecd1d81b4582a436092\` ON \`message_channel_mentions\`
- `);
- await queryRunner.query(`
- DROP TABLE \`message_channel_mentions\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_29d63eb1a458200851bc37d074\` ON \`message_role_mentions\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_a8242cf535337a490b0feaea0b\` ON \`message_role_mentions\`
- `);
- await queryRunner.query(`
- DROP TABLE \`message_role_mentions\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_b831eb18ceebd28976239b1e2f\` ON \`message_user_mentions\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_a343387fc560ef378760681c23\` ON \`message_user_mentions\`
- `);
- await queryRunner.query(`
- DROP TABLE \`message_user_mentions\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_e9080e7a7997a0170026d5139c\` ON \`member_roles\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_5d7ddc8a5f9c167f548625e772\` ON \`member_roles\`
- `);
- await queryRunner.query(`
- DROP TABLE \`member_roles\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_74e6689b9568cc965b8bfc9150\` ON \`notes\`
- `);
- await queryRunner.query(`
- DROP TABLE \`notes\`
- `);
- await queryRunner.query(`
- DROP TABLE \`client_release\`
- `);
- await queryRunner.query(`
- DROP TABLE \`sticker_packs\`
- `);
- await queryRunner.query(`
- DROP TABLE \`sessions\`
- `);
- await queryRunner.query(`
- DROP TABLE \`rate_limits\`
- `);
- await queryRunner.query(`
- DROP TABLE \`categories\`
- `);
- await queryRunner.query(`
- DROP TABLE \`audit_logs\`
- `);
- await queryRunner.query(`
- DROP TABLE \`applications\`
- `);
- await queryRunner.query(`
- DROP TABLE \`teams\`
- `);
- await queryRunner.query(`
- DROP TABLE \`team_members\`
- `);
- await queryRunner.query(`
- DROP TABLE \`guilds\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_be38737bf339baf63b1daeffb5\` ON \`templates\`
- `);
- await queryRunner.query(`
- DROP TABLE \`templates\`
- `);
- await queryRunner.query(`
- DROP TABLE \`emojis\`
- `);
- await queryRunner.query(`
- DROP TABLE \`channels\`
- `);
- await queryRunner.query(`
- DROP TABLE \`voice_states\`
- `);
- await queryRunner.query(`
- DROP TABLE \`invites\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_0abf8b443321bd3cf7f81ee17a\` ON \`read_states\`
- `);
- await queryRunner.query(`
- DROP TABLE \`read_states\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_3ed7a60fb7dbe04e1ba9332a8b\` ON \`messages\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_05535bc695e9f7ee104616459d\` ON \`messages\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_86b9109b155eb70c0a2ca3b4b6\` ON \`messages\`
- `);
- await queryRunner.query(`
- DROP TABLE \`messages\`
- `);
- await queryRunner.query(`
- DROP TABLE \`attachments\`
- `);
- await queryRunner.query(`
- DROP TABLE \`stickers\`
- `);
- await queryRunner.query(`
- DROP TABLE \`webhooks\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_bb2bf9386ac443afbbbf9f12d3\` ON \`members\`
- `);
- await queryRunner.query(`
- DROP TABLE \`members\`
- `);
- await queryRunner.query(`
- DROP TABLE \`roles\`
- `);
- await queryRunner.query(`
- DROP TABLE \`recipients\`
- `);
- await queryRunner.query(`
- DROP TABLE \`bans\`
- `);
- await queryRunner.query(`
- DROP TABLE \`backup_codes\`
- `);
- await queryRunner.query(`
- DROP TABLE \`users\`
- `);
- await queryRunner.query(`
- DROP TABLE \`connected_accounts\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_a0b2ff0a598df0b0d055934a17\` ON \`relationships\`
- `);
- await queryRunner.query(`
- DROP TABLE \`relationships\`
- `);
- await queryRunner.query(`
- DROP TABLE \`config\`
- `);
- }
-
-}
diff --git a/util/src/migrations/mariadb/1659921859145-premium_since_as_date.ts b/util/src/migrations/mariadb/1659921859145-premium_since_as_date.ts
deleted file mode 100644
index de173cfe..00000000
--- a/util/src/migrations/mariadb/1659921859145-premium_since_as_date.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { MigrationInterface, QueryRunner } from "typeorm";
-
-export class premiumSinceAsDate1659921859145 implements MigrationInterface {
- name = 'premiumSinceAsDate1659921859145'
-
- public async up(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- ALTER TABLE \`members\` DROP COLUMN \`premium_since\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`members\`
- ADD \`premium_since\` datetime NULL
- `);
- }
-
- public async down(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- ALTER TABLE \`members\` DROP COLUMN \`premium_since\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`members\`
- ADD \`premium_since\` bigint NULL
- `);
- }
-
-}
diff --git a/util/src/migrations/mariadb/1660130586602-updated-applications.ts b/util/src/migrations/mariadb/1660130586602-updated-applications.ts
deleted file mode 100644
index ec574416..00000000
--- a/util/src/migrations/mariadb/1660130586602-updated-applications.ts
+++ /dev/null
@@ -1,185 +0,0 @@
-import { MigrationInterface, QueryRunner } from "typeorm";
-
-export class updatedApplications1660130586602 implements MigrationInterface {
- name = 'updatedApplications1660130586602'
-
- public async up(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_e5bf78cdbbe9ba91062d74c5aba\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`rpc_origins\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`primary_sku_id\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`slug\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`guild_id\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`type\` text NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`hook\` tinyint NOT NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`redirect_uris\` text NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`rpc_application_state\` int NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`store_application_state\` int NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`verification_state\` int NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`interactions_endpoint_url\` varchar(255) NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`integration_public\` tinyint NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`integration_require_code_grant\` tinyint NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`discoverability_state\` int NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`discovery_eligibility_flags\` int NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`tags\` text NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`install_params\` text NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`bot_user_id\` varchar(255) NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD UNIQUE INDEX \`IDX_2ce5a55796fe4c2f77ece57a64\` (\`bot_user_id\`)
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` CHANGE \`description\` \`description\` varchar(255) NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`flags\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`flags\` int NOT NULL
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX \`REL_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` (\`bot_user_id\`)
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD CONSTRAINT \`FK_2ce5a55796fe4c2f77ece57a647\` FOREIGN KEY (\`bot_user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- }
-
- public async down(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_2ce5a55796fe4c2f77ece57a647\`
- `);
- await queryRunner.query(`
- DROP INDEX \`REL_2ce5a55796fe4c2f77ece57a64\` ON \`applications\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`flags\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`flags\` varchar(255) NOT NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` CHANGE \`description\` \`description\` varchar(255) NOT NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP INDEX \`IDX_2ce5a55796fe4c2f77ece57a64\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`bot_user_id\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`install_params\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`tags\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`discovery_eligibility_flags\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`discoverability_state\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`integration_require_code_grant\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`integration_public\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`interactions_endpoint_url\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`verification_state\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`store_application_state\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`rpc_application_state\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`redirect_uris\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`hook\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\` DROP COLUMN \`type\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`guild_id\` varchar(255) NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`slug\` varchar(255) NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`primary_sku_id\` varchar(255) NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD \`rpc_origins\` text NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`applications\`
- ADD CONSTRAINT \`FK_e5bf78cdbbe9ba91062d74c5aba\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- }
-
-}
diff --git a/util/src/migrations/mariadb/1660131942703-apps_nullable_team.ts b/util/src/migrations/mariadb/1660131942703-apps_nullable_team.ts
deleted file mode 100644
index ac445772..00000000
--- a/util/src/migrations/mariadb/1660131942703-apps_nullable_team.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { MigrationInterface, QueryRunner } from "typeorm";
-
-export class appsNullableTeam1660131942703 implements MigrationInterface {
- name = 'appsNullableTeam1660131942703'
-
- public async up(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- DROP INDEX \`IDX_2ce5a55796fe4c2f77ece57a64\` ON \`applications\`
- `);
- }
-
- public async down(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- CREATE UNIQUE INDEX \`IDX_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` (\`bot_user_id\`)
- `);
- }
-
-}
diff --git a/util/src/migrations/mariadb/1660416072362-InvitersAreDeletable.ts b/util/src/migrations/mariadb/1660416072362-InvitersAreDeletable.ts
deleted file mode 100644
index 8374eafb..00000000
--- a/util/src/migrations/mariadb/1660416072362-InvitersAreDeletable.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-import { MigrationInterface, QueryRunner } from "typeorm";
-
-export class InvitersAreDeletable1660416072362 implements MigrationInterface {
- name = 'InvitersAreDeletable1660416072362'
-
- public async up(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_15c35422032e0b22b4ada95f48f\`
- `);
- await queryRunner.query(`
- DROP INDEX \`IDX_76ba283779c8441fd5ff819c8c\` ON \`users\`
- `);
- await queryRunner.query(`
- CREATE TABLE \`plugin_config\` (
- \`key\` varchar(255) NOT NULL,
- \`value\` text NULL,
- PRIMARY KEY (\`key\`)
- ) ENGINE = InnoDB
- `);
- await queryRunner.query(`
- ALTER TABLE \`channels\`
- ADD \`flags\` int NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`channels\`
- ADD \`default_thread_rate_limit_per_user\` int NULL
- `);
- await queryRunner.query(`
- ALTER TABLE \`invites\`
- ADD CONSTRAINT \`FK_15c35422032e0b22b4ada95f48f\` FOREIGN KEY (\`inviter_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- }
-
- public async down(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_15c35422032e0b22b4ada95f48f\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`channels\` DROP COLUMN \`default_thread_rate_limit_per_user\`
- `);
- await queryRunner.query(`
- ALTER TABLE \`channels\` DROP COLUMN \`flags\`
- `);
- await queryRunner.query(`
- DROP TABLE \`plugin_config\`
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX \`IDX_76ba283779c8441fd5ff819c8c\` ON \`users\` (\`settingsId\`)
- `);
- await queryRunner.query(`
- ALTER TABLE \`invites\`
- ADD CONSTRAINT \`FK_15c35422032e0b22b4ada95f48f\` FOREIGN KEY (\`inviter_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- }
-
-}
diff --git a/util/src/migrations/postgres/1659899687168-initial.ts b/util/src/migrations/postgres/1659899687168-initial.ts
deleted file mode 100644
index 4ffb897d..00000000
--- a/util/src/migrations/postgres/1659899687168-initial.ts
+++ /dev/null
@@ -1,1245 +0,0 @@
-import { MigrationInterface, QueryRunner } from "typeorm";
-
-export class initial1659899687168 implements MigrationInterface {
- name = 'initial1659899687168'
-
- public async up(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- CREATE TABLE "config" (
- "key" character varying NOT NULL,
- "value" text,
- CONSTRAINT "PK_26489c99ddbb4c91631ef5cc791" PRIMARY KEY ("key")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "relationships" (
- "id" character varying NOT NULL,
- "from_id" character varying NOT NULL,
- "to_id" character varying NOT NULL,
- "nickname" character varying,
- "type" integer NOT NULL,
- CONSTRAINT "PK_ba20e2f5cf487408e08e4dcecaf" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_a0b2ff0a598df0b0d055934a17" ON "relationships" ("from_id", "to_id")
- `);
- await queryRunner.query(`
- CREATE TABLE "connected_accounts" (
- "id" character varying NOT NULL,
- "user_id" character varying,
- "access_token" character varying NOT NULL,
- "friend_sync" boolean NOT NULL,
- "name" character varying NOT NULL,
- "revoked" boolean NOT NULL,
- "show_activity" boolean NOT NULL,
- "type" character varying NOT NULL,
- "verified" boolean NOT NULL,
- "visibility" integer NOT NULL,
- CONSTRAINT "PK_70416f1da0be645bb31da01c774" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "users" (
- "id" character varying NOT NULL,
- "username" character varying NOT NULL,
- "discriminator" character varying NOT NULL,
- "avatar" character varying,
- "accent_color" integer,
- "banner" character varying,
- "phone" character varying,
- "desktop" boolean NOT NULL,
- "mobile" boolean NOT NULL,
- "premium" boolean NOT NULL,
- "premium_type" integer NOT NULL,
- "bot" boolean NOT NULL,
- "bio" character varying NOT NULL,
- "system" boolean NOT NULL,
- "nsfw_allowed" boolean NOT NULL,
- "mfa_enabled" boolean NOT NULL,
- "totp_secret" character varying,
- "totp_last_ticket" character varying,
- "created_at" TIMESTAMP NOT NULL,
- "premium_since" TIMESTAMP,
- "verified" boolean NOT NULL,
- "disabled" boolean NOT NULL,
- "deleted" boolean NOT NULL,
- "email" character varying,
- "flags" character varying NOT NULL,
- "public_flags" integer NOT NULL,
- "rights" bigint NOT NULL,
- "data" text NOT NULL,
- "fingerprints" text NOT NULL,
- "settings" text NOT NULL,
- "extended_settings" text NOT NULL,
- "notes" text NOT NULL,
- CONSTRAINT "PK_a3ffb1c0c8416b9fc6f907b7433" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "backup_codes" (
- "id" character varying NOT NULL,
- "code" character varying NOT NULL,
- "consumed" boolean NOT NULL,
- "expired" boolean NOT NULL,
- "user_id" character varying,
- CONSTRAINT "PK_34ab957382dbc57e8fb53f1638f" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "bans" (
- "id" character varying NOT NULL,
- "user_id" character varying,
- "guild_id" character varying,
- "executor_id" character varying,
- "ip" character varying NOT NULL,
- "reason" character varying,
- CONSTRAINT "PK_a4d6f261bffa4615c62d756566a" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "recipients" (
- "id" character varying NOT NULL,
- "channel_id" character varying NOT NULL,
- "user_id" character varying NOT NULL,
- "closed" boolean NOT NULL DEFAULT false,
- CONSTRAINT "PK_de8fc5a9c364568f294798fe1e9" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "roles" (
- "id" character varying NOT NULL,
- "guild_id" character varying,
- "color" integer NOT NULL,
- "hoist" boolean NOT NULL,
- "managed" boolean NOT NULL,
- "mentionable" boolean NOT NULL,
- "name" character varying NOT NULL,
- "permissions" character varying NOT NULL,
- "position" integer NOT NULL,
- "icon" character varying,
- "unicode_emoji" character varying,
- "tags" text,
- CONSTRAINT "PK_c1433d71a4838793a49dcad46ab" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "members" (
- "index" SERIAL NOT NULL,
- "id" character varying NOT NULL,
- "guild_id" character varying NOT NULL,
- "nick" character varying,
- "joined_at" TIMESTAMP NOT NULL,
- "premium_since" bigint,
- "deaf" boolean NOT NULL,
- "mute" boolean NOT NULL,
- "pending" boolean NOT NULL,
- "settings" text NOT NULL,
- "last_message_id" character varying,
- "joined_by" character varying,
- CONSTRAINT "PK_b4a6b8c2478e5df990909c6cf6a" PRIMARY KEY ("index")
- )
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id")
- `);
- await queryRunner.query(`
- CREATE TABLE "webhooks" (
- "id" character varying NOT NULL,
- "type" integer NOT NULL,
- "name" character varying,
- "avatar" character varying,
- "token" character varying,
- "guild_id" character varying,
- "channel_id" character varying,
- "application_id" character varying,
- "user_id" character varying,
- "source_guild_id" character varying,
- CONSTRAINT "PK_9e8795cfc899ab7bdaa831e8527" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "stickers" (
- "id" character varying NOT NULL,
- "name" character varying NOT NULL,
- "description" character varying,
- "available" boolean,
- "tags" character varying,
- "pack_id" character varying,
- "guild_id" character varying,
- "user_id" character varying,
- "type" integer NOT NULL,
- "format_type" integer NOT NULL,
- CONSTRAINT "PK_e1dafa4063a5532645cc2810374" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "attachments" (
- "id" character varying NOT NULL,
- "filename" character varying NOT NULL,
- "size" integer NOT NULL,
- "url" character varying NOT NULL,
- "proxy_url" character varying NOT NULL,
- "height" integer,
- "width" integer,
- "content_type" character varying,
- "message_id" character varying,
- CONSTRAINT "PK_5e1f050bcff31e3084a1d662412" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "messages" (
- "id" character varying NOT NULL,
- "channel_id" character varying,
- "guild_id" character varying,
- "author_id" character varying,
- "member_id" character varying,
- "webhook_id" character varying,
- "application_id" character varying,
- "content" character varying,
- "timestamp" TIMESTAMP NOT NULL DEFAULT now(),
- "edited_timestamp" TIMESTAMP,
- "tts" boolean,
- "mention_everyone" boolean,
- "embeds" text NOT NULL,
- "reactions" text NOT NULL,
- "nonce" text,
- "pinned" boolean,
- "type" integer NOT NULL,
- "activity" text,
- "flags" character varying,
- "message_reference" text,
- "interaction" text,
- "components" text,
- "message_reference_id" character varying,
- CONSTRAINT "PK_18325f38ae6de43878487eff986" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_86b9109b155eb70c0a2ca3b4b6" ON "messages" ("channel_id")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_05535bc695e9f7ee104616459d" ON "messages" ("author_id")
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b" ON "messages" ("channel_id", "id")
- `);
- await queryRunner.query(`
- CREATE TABLE "read_states" (
- "id" character varying NOT NULL,
- "channel_id" character varying NOT NULL,
- "user_id" character varying NOT NULL,
- "last_message_id" character varying,
- "public_ack" character varying,
- "notifications_cursor" character varying,
- "last_pin_timestamp" TIMESTAMP,
- "mention_count" integer,
- CONSTRAINT "PK_e6956a804978f01b713b1ed58e2" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_0abf8b443321bd3cf7f81ee17a" ON "read_states" ("channel_id", "user_id")
- `);
- await queryRunner.query(`
- CREATE TABLE "invites" (
- "code" character varying NOT NULL,
- "temporary" boolean NOT NULL,
- "uses" integer NOT NULL,
- "max_uses" integer NOT NULL,
- "max_age" integer NOT NULL,
- "created_at" TIMESTAMP NOT NULL,
- "expires_at" TIMESTAMP NOT NULL,
- "guild_id" character varying,
- "channel_id" character varying,
- "inviter_id" character varying,
- "target_user_id" character varying,
- "target_user_type" integer,
- "vanity_url" boolean,
- CONSTRAINT "PK_33fd8a248db1cd832baa8aa25bf" PRIMARY KEY ("code")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "voice_states" (
- "id" character varying NOT NULL,
- "guild_id" character varying,
- "channel_id" character varying,
- "user_id" character varying,
- "session_id" character varying NOT NULL,
- "token" character varying,
- "deaf" boolean NOT NULL,
- "mute" boolean NOT NULL,
- "self_deaf" boolean NOT NULL,
- "self_mute" boolean NOT NULL,
- "self_stream" boolean,
- "self_video" boolean NOT NULL,
- "suppress" boolean NOT NULL,
- "request_to_speak_timestamp" TIMESTAMP,
- CONSTRAINT "PK_ada09a50c134fad1369b510e3ce" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "channels" (
- "id" character varying NOT NULL,
- "created_at" TIMESTAMP NOT NULL,
- "name" character varying,
- "icon" text,
- "type" integer NOT NULL,
- "last_message_id" character varying,
- "guild_id" character varying,
- "parent_id" character varying,
- "owner_id" character varying,
- "last_pin_timestamp" integer,
- "default_auto_archive_duration" integer,
- "position" integer,
- "permission_overwrites" text,
- "video_quality_mode" integer,
- "bitrate" integer,
- "user_limit" integer,
- "nsfw" boolean,
- "rate_limit_per_user" integer,
- "topic" character varying,
- "retention_policy_id" character varying,
- CONSTRAINT "PK_bc603823f3f741359c2339389f9" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "emojis" (
- "id" character varying NOT NULL,
- "animated" boolean NOT NULL,
- "available" boolean NOT NULL,
- "guild_id" character varying NOT NULL,
- "user_id" character varying,
- "managed" boolean NOT NULL,
- "name" character varying NOT NULL,
- "require_colons" boolean NOT NULL,
- "roles" text NOT NULL,
- "groups" text,
- CONSTRAINT "PK_9adb96a675f555c6169bad7ba62" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "templates" (
- "id" character varying NOT NULL,
- "code" character varying NOT NULL,
- "name" character varying NOT NULL,
- "description" character varying,
- "usage_count" integer,
- "creator_id" character varying,
- "created_at" TIMESTAMP NOT NULL,
- "updated_at" TIMESTAMP NOT NULL,
- "source_guild_id" character varying,
- "serialized_source_guild" text NOT NULL,
- CONSTRAINT "UQ_be38737bf339baf63b1daeffb55" UNIQUE ("code"),
- CONSTRAINT "PK_515948649ce0bbbe391de702ae5" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "guilds" (
- "id" character varying NOT NULL,
- "afk_channel_id" character varying,
- "afk_timeout" integer,
- "banner" character varying,
- "default_message_notifications" integer,
- "description" character varying,
- "discovery_splash" character varying,
- "explicit_content_filter" integer,
- "features" text NOT NULL,
- "primary_category_id" integer,
- "icon" character varying,
- "large" boolean,
- "max_members" integer,
- "max_presences" integer,
- "max_video_channel_users" integer,
- "member_count" integer,
- "presence_count" integer,
- "template_id" character varying,
- "mfa_level" integer,
- "name" character varying NOT NULL,
- "owner_id" character varying,
- "preferred_locale" character varying,
- "premium_subscription_count" integer,
- "premium_tier" integer,
- "public_updates_channel_id" character varying,
- "rules_channel_id" character varying,
- "region" character varying,
- "splash" character varying,
- "system_channel_id" character varying,
- "system_channel_flags" integer,
- "unavailable" boolean,
- "verification_level" integer,
- "welcome_screen" text NOT NULL,
- "widget_channel_id" character varying,
- "widget_enabled" boolean,
- "nsfw_level" integer,
- "nsfw" boolean,
- "parent" character varying,
- CONSTRAINT "PK_e7e7f2a51bd6d96a9ac2aa560f9" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "team_members" (
- "id" character varying NOT NULL,
- "membership_state" integer NOT NULL,
- "permissions" text NOT NULL,
- "team_id" character varying,
- "user_id" character varying,
- CONSTRAINT "PK_ca3eae89dcf20c9fd95bf7460aa" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "teams" (
- "id" character varying NOT NULL,
- "icon" character varying,
- "name" character varying NOT NULL,
- "owner_user_id" character varying,
- CONSTRAINT "PK_7e5523774a38b08a6236d322403" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "applications" (
- "id" character varying NOT NULL,
- "name" character varying NOT NULL,
- "icon" character varying,
- "description" character varying NOT NULL,
- "rpc_origins" text,
- "bot_public" boolean NOT NULL,
- "bot_require_code_grant" boolean NOT NULL,
- "terms_of_service_url" character varying,
- "privacy_policy_url" character varying,
- "summary" character varying,
- "verify_key" character varying NOT NULL,
- "primary_sku_id" character varying,
- "slug" character varying,
- "cover_image" character varying,
- "flags" character varying NOT NULL,
- "owner_id" character varying,
- "team_id" character varying,
- "guild_id" character varying,
- CONSTRAINT "PK_938c0a27255637bde919591888f" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "audit_logs" (
- "id" character varying NOT NULL,
- "user_id" character varying,
- "action_type" integer NOT NULL,
- "options" text,
- "changes" text NOT NULL,
- "reason" character varying,
- "target_id" character varying,
- CONSTRAINT "PK_1bb179d048bbc581caa3b013439" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "categories" (
- "id" integer NOT NULL,
- "name" character varying,
- "localizations" text NOT NULL,
- "is_primary" boolean,
- CONSTRAINT "PK_24dbc6126a28ff948da33e97d3b" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "rate_limits" (
- "id" character varying NOT NULL,
- "executor_id" character varying NOT NULL,
- "hits" integer NOT NULL,
- "blocked" boolean NOT NULL,
- "expires_at" TIMESTAMP NOT NULL,
- CONSTRAINT "PK_3b4449f1f5fc167d921ee619f65" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "sessions" (
- "id" character varying NOT NULL,
- "user_id" character varying,
- "session_id" character varying NOT NULL,
- "activities" text,
- "client_info" text NOT NULL,
- "status" character varying NOT NULL,
- CONSTRAINT "PK_3238ef96f18b355b671619111bc" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "sticker_packs" (
- "id" character varying NOT NULL,
- "name" character varying NOT NULL,
- "description" character varying,
- "banner_asset_id" character varying,
- "cover_sticker_id" character varying,
- "coverStickerId" character varying,
- CONSTRAINT "PK_a27381efea0f876f5d3233af655" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "client_release" (
- "id" character varying NOT NULL,
- "name" character varying NOT NULL,
- "pub_date" character varying NOT NULL,
- "url" character varying NOT NULL,
- "deb_url" character varying NOT NULL,
- "osx_url" character varying NOT NULL,
- "win_url" character varying NOT NULL,
- "notes" character varying,
- CONSTRAINT "PK_4c4ea258342d2d6ba1be0a71a43" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "notes" (
- "id" character varying NOT NULL,
- "content" character varying NOT NULL,
- "owner_id" character varying,
- "target_id" character varying,
- CONSTRAINT "UQ_74e6689b9568cc965b8bfc9150b" UNIQUE ("owner_id", "target_id"),
- CONSTRAINT "PK_af6206538ea96c4e77e9f400c3d" PRIMARY KEY ("id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "member_roles" (
- "index" integer NOT NULL,
- "role_id" character varying NOT NULL,
- CONSTRAINT "PK_951c1d72a0fd1da8760b4a1fd66" PRIMARY KEY ("index", "role_id")
- )
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_5d7ddc8a5f9c167f548625e772" ON "member_roles" ("index")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_e9080e7a7997a0170026d5139c" ON "member_roles" ("role_id")
- `);
- await queryRunner.query(`
- CREATE TABLE "message_user_mentions" (
- "messagesId" character varying NOT NULL,
- "usersId" character varying NOT NULL,
- CONSTRAINT "PK_9b9b6e245ad47a48dbd7605d4fb" PRIMARY KEY ("messagesId", "usersId")
- )
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_a343387fc560ef378760681c23" ON "message_user_mentions" ("messagesId")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_b831eb18ceebd28976239b1e2f" ON "message_user_mentions" ("usersId")
- `);
- await queryRunner.query(`
- CREATE TABLE "message_role_mentions" (
- "messagesId" character varying NOT NULL,
- "rolesId" character varying NOT NULL,
- CONSTRAINT "PK_74dba92cc300452a6e14b83ed44" PRIMARY KEY ("messagesId", "rolesId")
- )
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_a8242cf535337a490b0feaea0b" ON "message_role_mentions" ("messagesId")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_29d63eb1a458200851bc37d074" ON "message_role_mentions" ("rolesId")
- `);
- await queryRunner.query(`
- CREATE TABLE "message_channel_mentions" (
- "messagesId" character varying NOT NULL,
- "channelsId" character varying NOT NULL,
- CONSTRAINT "PK_85cb45351497cd9d06a79ced65e" PRIMARY KEY ("messagesId", "channelsId")
- )
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_2a27102ecd1d81b4582a436092" ON "message_channel_mentions" ("messagesId")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_bdb8c09e1464cabf62105bf4b9" ON "message_channel_mentions" ("channelsId")
- `);
- await queryRunner.query(`
- CREATE TABLE "message_stickers" (
- "messagesId" character varying NOT NULL,
- "stickersId" character varying NOT NULL,
- CONSTRAINT "PK_ed820c4093d0b8cd1d2bcf66087" PRIMARY KEY ("messagesId", "stickersId")
- )
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_40bb6f23e7cc133292e92829d2" ON "message_stickers" ("messagesId")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_e22a70819d07659c7a71c112a1" ON "message_stickers" ("stickersId")
- `);
- await queryRunner.query(`
- ALTER TABLE "relationships"
- ADD CONSTRAINT "FK_9af4194bab1250b1c584ae4f1d7" FOREIGN KEY ("from_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "relationships"
- ADD CONSTRAINT "FK_9c7f6b98a9843b76dce1b0c878b" FOREIGN KEY ("to_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "connected_accounts"
- ADD CONSTRAINT "FK_f47244225a6a1eac04a3463dd90" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "backup_codes"
- ADD CONSTRAINT "FK_70066ea80d2f4b871beda32633b" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "bans"
- ADD CONSTRAINT "FK_5999e8e449f80a236ff72023559" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "bans"
- ADD CONSTRAINT "FK_9d3ab7dd180ebdd245cdb66ecad" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "bans"
- ADD CONSTRAINT "FK_07ad88c86d1f290d46748410d58" FOREIGN KEY ("executor_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "recipients"
- ADD CONSTRAINT "FK_2f18ee1ba667f233ae86c0ea60e" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "recipients"
- ADD CONSTRAINT "FK_6157e8b6ba4e6e3089616481fe2" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "roles"
- ADD CONSTRAINT "FK_c32c1ab1c4dc7dcb0278c4b1b8b" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "members"
- ADD CONSTRAINT "FK_28b53062261b996d9c99fa12404" FOREIGN KEY ("id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "members"
- ADD CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "webhooks"
- ADD CONSTRAINT "FK_487a7af59d189f744fe394368fc" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "webhooks"
- ADD CONSTRAINT "FK_df528cf77e82f8032230e7e37d8" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "webhooks"
- ADD CONSTRAINT "FK_c3e5305461931763b56aa905f1c" FOREIGN KEY ("application_id") REFERENCES "applications"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "webhooks"
- ADD CONSTRAINT "FK_0d523f6f997c86e052c49b1455f" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "webhooks"
- ADD CONSTRAINT "FK_3a285f4f49c40e0706d3018bc9f" FOREIGN KEY ("source_guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "stickers"
- ADD CONSTRAINT "FK_e7cfa5cefa6661b3fb8fda8ce69" FOREIGN KEY ("pack_id") REFERENCES "sticker_packs"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "stickers"
- ADD CONSTRAINT "FK_193d551d852aca5347ef5c9f205" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "stickers"
- ADD CONSTRAINT "FK_8f4ee73f2bb2325ff980502e158" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "attachments"
- ADD CONSTRAINT "FK_623e10eec51ada466c5038979e3" FOREIGN KEY ("message_id") REFERENCES "messages"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "messages"
- ADD CONSTRAINT "FK_86b9109b155eb70c0a2ca3b4b6d" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "messages"
- ADD CONSTRAINT "FK_b193588441b085352a4c0109423" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "messages"
- ADD CONSTRAINT "FK_05535bc695e9f7ee104616459d3" FOREIGN KEY ("author_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "messages"
- ADD CONSTRAINT "FK_b0525304f2262b7014245351c76" FOREIGN KEY ("member_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "messages"
- ADD CONSTRAINT "FK_f83c04bcf1df4e5c0e7a52ed348" FOREIGN KEY ("webhook_id") REFERENCES "webhooks"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "messages"
- ADD CONSTRAINT "FK_5d3ec1cb962de6488637fd779d6" FOREIGN KEY ("application_id") REFERENCES "applications"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "messages"
- ADD CONSTRAINT "FK_61a92bb65b302a76d9c1fcd3174" FOREIGN KEY ("message_reference_id") REFERENCES "messages"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "read_states"
- ADD CONSTRAINT "FK_40da2fca4e0eaf7a23b5bfc5d34" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "read_states"
- ADD CONSTRAINT "FK_195f92e4dd1254a4e348c043763" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "invites"
- ADD CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "invites"
- ADD CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "invites"
- ADD CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" FOREIGN KEY ("inviter_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "invites"
- ADD CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" FOREIGN KEY ("target_user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "voice_states"
- ADD CONSTRAINT "FK_03779ef216d4b0358470d9cb748" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "voice_states"
- ADD CONSTRAINT "FK_9f8d389866b40b6657edd026dd4" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "voice_states"
- ADD CONSTRAINT "FK_5fe1d5f931a67e85039c640001b" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "channels"
- ADD CONSTRAINT "FK_c253dafe5f3a03ec00cd8fb4581" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "channels"
- ADD CONSTRAINT "FK_3274522d14af40540b1a883fc80" FOREIGN KEY ("parent_id") REFERENCES "channels"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "channels"
- ADD CONSTRAINT "FK_3873ed438575cce703ecff4fc7b" FOREIGN KEY ("owner_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "emojis"
- ADD CONSTRAINT "FK_4b988e0db89d94cebcf07f598cc" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "emojis"
- ADD CONSTRAINT "FK_fa7ddd5f9a214e28ce596548421" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "templates"
- ADD CONSTRAINT "FK_d7374b7f8f5fbfdececa4fb62e1" FOREIGN KEY ("creator_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "templates"
- ADD CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11" FOREIGN KEY ("source_guild_id") REFERENCES "guilds"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "guilds"
- ADD CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "guilds"
- ADD CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "guilds"
- ADD CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "guilds"
- ADD CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "guilds"
- ADD CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "guilds"
- ADD CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "guilds"
- ADD CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "team_members"
- ADD CONSTRAINT "FK_fdad7d5768277e60c40e01cdcea" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "team_members"
- ADD CONSTRAINT "FK_c2bf4967c8c2a6b845dadfbf3d4" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "teams"
- ADD CONSTRAINT "FK_13f00abf7cb6096c43ecaf8c108" FOREIGN KEY ("owner_user_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "audit_logs"
- ADD CONSTRAINT "FK_3cd01cd3ae7aab010310d96ac8e" FOREIGN KEY ("target_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "audit_logs"
- ADD CONSTRAINT "FK_bd2726fd31b35443f2245b93ba0" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "sessions"
- ADD CONSTRAINT "FK_085d540d9f418cfbdc7bd55bb19" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "sticker_packs"
- ADD CONSTRAINT "FK_448fafba4355ee1c837bbc865f1" FOREIGN KEY ("coverStickerId") REFERENCES "stickers"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "notes"
- ADD CONSTRAINT "FK_f9e103f8ae67cb1787063597925" FOREIGN KEY ("owner_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "notes"
- ADD CONSTRAINT "FK_23e08e5b4481711d573e1abecdc" FOREIGN KEY ("target_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- await queryRunner.query(`
- ALTER TABLE "member_roles"
- ADD CONSTRAINT "FK_5d7ddc8a5f9c167f548625e772e" FOREIGN KEY ("index") REFERENCES "members"("index") ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- ALTER TABLE "member_roles"
- ADD CONSTRAINT "FK_e9080e7a7997a0170026d5139c1" FOREIGN KEY ("role_id") REFERENCES "roles"("id") ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- ALTER TABLE "message_user_mentions"
- ADD CONSTRAINT "FK_a343387fc560ef378760681c236" FOREIGN KEY ("messagesId") REFERENCES "messages"("id") ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- ALTER TABLE "message_user_mentions"
- ADD CONSTRAINT "FK_b831eb18ceebd28976239b1e2f8" FOREIGN KEY ("usersId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- ALTER TABLE "message_role_mentions"
- ADD CONSTRAINT "FK_a8242cf535337a490b0feaea0b4" FOREIGN KEY ("messagesId") REFERENCES "messages"("id") ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- ALTER TABLE "message_role_mentions"
- ADD CONSTRAINT "FK_29d63eb1a458200851bc37d074b" FOREIGN KEY ("rolesId") REFERENCES "roles"("id") ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- ALTER TABLE "message_channel_mentions"
- ADD CONSTRAINT "FK_2a27102ecd1d81b4582a4360921" FOREIGN KEY ("messagesId") REFERENCES "messages"("id") ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- ALTER TABLE "message_channel_mentions"
- ADD CONSTRAINT "FK_bdb8c09e1464cabf62105bf4b9d" FOREIGN KEY ("channelsId") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- ALTER TABLE "message_stickers"
- ADD CONSTRAINT "FK_40bb6f23e7cc133292e92829d28" FOREIGN KEY ("messagesId") REFERENCES "messages"("id") ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- ALTER TABLE "message_stickers"
- ADD CONSTRAINT "FK_e22a70819d07659c7a71c112a1f" FOREIGN KEY ("stickersId") REFERENCES "stickers"("id") ON DELETE CASCADE ON UPDATE CASCADE
- `);
- await queryRunner.query(`
- CREATE TABLE "query-result-cache" (
- "id" SERIAL NOT NULL,
- "identifier" character varying,
- "time" bigint NOT NULL,
- "duration" integer NOT NULL,
- "query" text NOT NULL,
- "result" text NOT NULL,
- CONSTRAINT "PK_6a98f758d8bfd010e7e10ffd3d3" PRIMARY KEY ("id")
- )
- `);
- }
-
- public async down(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- DROP TABLE "query-result-cache"
- `);
- await queryRunner.query(`
- ALTER TABLE "message_stickers" DROP CONSTRAINT "FK_e22a70819d07659c7a71c112a1f"
- `);
- await queryRunner.query(`
- ALTER TABLE "message_stickers" DROP CONSTRAINT "FK_40bb6f23e7cc133292e92829d28"
- `);
- await queryRunner.query(`
- ALTER TABLE "message_channel_mentions" DROP CONSTRAINT "FK_bdb8c09e1464cabf62105bf4b9d"
- `);
- await queryRunner.query(`
- ALTER TABLE "message_channel_mentions" DROP CONSTRAINT "FK_2a27102ecd1d81b4582a4360921"
- `);
- await queryRunner.query(`
- ALTER TABLE "message_role_mentions" DROP CONSTRAINT "FK_29d63eb1a458200851bc37d074b"
- `);
- await queryRunner.query(`
- ALTER TABLE "message_role_mentions" DROP CONSTRAINT "FK_a8242cf535337a490b0feaea0b4"
- `);
- await queryRunner.query(`
- ALTER TABLE "message_user_mentions" DROP CONSTRAINT "FK_b831eb18ceebd28976239b1e2f8"
- `);
- await queryRunner.query(`
- ALTER TABLE "message_user_mentions" DROP CONSTRAINT "FK_a343387fc560ef378760681c236"
- `);
- await queryRunner.query(`
- ALTER TABLE "member_roles" DROP CONSTRAINT "FK_e9080e7a7997a0170026d5139c1"
- `);
- await queryRunner.query(`
- ALTER TABLE "member_roles" DROP CONSTRAINT "FK_5d7ddc8a5f9c167f548625e772e"
- `);
- await queryRunner.query(`
- ALTER TABLE "notes" DROP CONSTRAINT "FK_23e08e5b4481711d573e1abecdc"
- `);
- await queryRunner.query(`
- ALTER TABLE "notes" DROP CONSTRAINT "FK_f9e103f8ae67cb1787063597925"
- `);
- await queryRunner.query(`
- ALTER TABLE "sticker_packs" DROP CONSTRAINT "FK_448fafba4355ee1c837bbc865f1"
- `);
- await queryRunner.query(`
- ALTER TABLE "sessions" DROP CONSTRAINT "FK_085d540d9f418cfbdc7bd55bb19"
- `);
- await queryRunner.query(`
- ALTER TABLE "audit_logs" DROP CONSTRAINT "FK_bd2726fd31b35443f2245b93ba0"
- `);
- await queryRunner.query(`
- ALTER TABLE "audit_logs" DROP CONSTRAINT "FK_3cd01cd3ae7aab010310d96ac8e"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP CONSTRAINT "FK_a36ed02953077f408d0f3ebc424"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8"
- `);
- await queryRunner.query(`
- ALTER TABLE "teams" DROP CONSTRAINT "FK_13f00abf7cb6096c43ecaf8c108"
- `);
- await queryRunner.query(`
- ALTER TABLE "team_members" DROP CONSTRAINT "FK_c2bf4967c8c2a6b845dadfbf3d4"
- `);
- await queryRunner.query(`
- ALTER TABLE "team_members" DROP CONSTRAINT "FK_fdad7d5768277e60c40e01cdcea"
- `);
- await queryRunner.query(`
- ALTER TABLE "guilds" DROP CONSTRAINT "FK_9d1d665379eefde7876a17afa99"
- `);
- await queryRunner.query(`
- ALTER TABLE "guilds" DROP CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce"
- `);
- await queryRunner.query(`
- ALTER TABLE "guilds" DROP CONSTRAINT "FK_95828668aa333460582e0ca6396"
- `);
- await queryRunner.query(`
- ALTER TABLE "guilds" DROP CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0"
- `);
- await queryRunner.query(`
- ALTER TABLE "guilds" DROP CONSTRAINT "FK_fc1a451727e3643ca572a3bb394"
- `);
- await queryRunner.query(`
- ALTER TABLE "guilds" DROP CONSTRAINT "FK_e2a2f873a64a5cf62526de42325"
- `);
- await queryRunner.query(`
- ALTER TABLE "guilds" DROP CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6"
- `);
- await queryRunner.query(`
- ALTER TABLE "templates" DROP CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11"
- `);
- await queryRunner.query(`
- ALTER TABLE "templates" DROP CONSTRAINT "FK_d7374b7f8f5fbfdececa4fb62e1"
- `);
- await queryRunner.query(`
- ALTER TABLE "emojis" DROP CONSTRAINT "FK_fa7ddd5f9a214e28ce596548421"
- `);
- await queryRunner.query(`
- ALTER TABLE "emojis" DROP CONSTRAINT "FK_4b988e0db89d94cebcf07f598cc"
- `);
- await queryRunner.query(`
- ALTER TABLE "channels" DROP CONSTRAINT "FK_3873ed438575cce703ecff4fc7b"
- `);
- await queryRunner.query(`
- ALTER TABLE "channels" DROP CONSTRAINT "FK_3274522d14af40540b1a883fc80"
- `);
- await queryRunner.query(`
- ALTER TABLE "channels" DROP CONSTRAINT "FK_c253dafe5f3a03ec00cd8fb4581"
- `);
- await queryRunner.query(`
- ALTER TABLE "voice_states" DROP CONSTRAINT "FK_5fe1d5f931a67e85039c640001b"
- `);
- await queryRunner.query(`
- ALTER TABLE "voice_states" DROP CONSTRAINT "FK_9f8d389866b40b6657edd026dd4"
- `);
- await queryRunner.query(`
- ALTER TABLE "voice_states" DROP CONSTRAINT "FK_03779ef216d4b0358470d9cb748"
- `);
- await queryRunner.query(`
- ALTER TABLE "invites" DROP CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59"
- `);
- await queryRunner.query(`
- ALTER TABLE "invites" DROP CONSTRAINT "FK_15c35422032e0b22b4ada95f48f"
- `);
- await queryRunner.query(`
- ALTER TABLE "invites" DROP CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6"
- `);
- await queryRunner.query(`
- ALTER TABLE "invites" DROP CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d"
- `);
- await queryRunner.query(`
- ALTER TABLE "read_states" DROP CONSTRAINT "FK_195f92e4dd1254a4e348c043763"
- `);
- await queryRunner.query(`
- ALTER TABLE "read_states" DROP CONSTRAINT "FK_40da2fca4e0eaf7a23b5bfc5d34"
- `);
- await queryRunner.query(`
- ALTER TABLE "messages" DROP CONSTRAINT "FK_61a92bb65b302a76d9c1fcd3174"
- `);
- await queryRunner.query(`
- ALTER TABLE "messages" DROP CONSTRAINT "FK_5d3ec1cb962de6488637fd779d6"
- `);
- await queryRunner.query(`
- ALTER TABLE "messages" DROP CONSTRAINT "FK_f83c04bcf1df4e5c0e7a52ed348"
- `);
- await queryRunner.query(`
- ALTER TABLE "messages" DROP CONSTRAINT "FK_b0525304f2262b7014245351c76"
- `);
- await queryRunner.query(`
- ALTER TABLE "messages" DROP CONSTRAINT "FK_05535bc695e9f7ee104616459d3"
- `);
- await queryRunner.query(`
- ALTER TABLE "messages" DROP CONSTRAINT "FK_b193588441b085352a4c0109423"
- `);
- await queryRunner.query(`
- ALTER TABLE "messages" DROP CONSTRAINT "FK_86b9109b155eb70c0a2ca3b4b6d"
- `);
- await queryRunner.query(`
- ALTER TABLE "attachments" DROP CONSTRAINT "FK_623e10eec51ada466c5038979e3"
- `);
- await queryRunner.query(`
- ALTER TABLE "stickers" DROP CONSTRAINT "FK_8f4ee73f2bb2325ff980502e158"
- `);
- await queryRunner.query(`
- ALTER TABLE "stickers" DROP CONSTRAINT "FK_193d551d852aca5347ef5c9f205"
- `);
- await queryRunner.query(`
- ALTER TABLE "stickers" DROP CONSTRAINT "FK_e7cfa5cefa6661b3fb8fda8ce69"
- `);
- await queryRunner.query(`
- ALTER TABLE "webhooks" DROP CONSTRAINT "FK_3a285f4f49c40e0706d3018bc9f"
- `);
- await queryRunner.query(`
- ALTER TABLE "webhooks" DROP CONSTRAINT "FK_0d523f6f997c86e052c49b1455f"
- `);
- await queryRunner.query(`
- ALTER TABLE "webhooks" DROP CONSTRAINT "FK_c3e5305461931763b56aa905f1c"
- `);
- await queryRunner.query(`
- ALTER TABLE "webhooks" DROP CONSTRAINT "FK_df528cf77e82f8032230e7e37d8"
- `);
- await queryRunner.query(`
- ALTER TABLE "webhooks" DROP CONSTRAINT "FK_487a7af59d189f744fe394368fc"
- `);
- await queryRunner.query(`
- ALTER TABLE "members" DROP CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c"
- `);
- await queryRunner.query(`
- ALTER TABLE "members" DROP CONSTRAINT "FK_28b53062261b996d9c99fa12404"
- `);
- await queryRunner.query(`
- ALTER TABLE "roles" DROP CONSTRAINT "FK_c32c1ab1c4dc7dcb0278c4b1b8b"
- `);
- await queryRunner.query(`
- ALTER TABLE "recipients" DROP CONSTRAINT "FK_6157e8b6ba4e6e3089616481fe2"
- `);
- await queryRunner.query(`
- ALTER TABLE "recipients" DROP CONSTRAINT "FK_2f18ee1ba667f233ae86c0ea60e"
- `);
- await queryRunner.query(`
- ALTER TABLE "bans" DROP CONSTRAINT "FK_07ad88c86d1f290d46748410d58"
- `);
- await queryRunner.query(`
- ALTER TABLE "bans" DROP CONSTRAINT "FK_9d3ab7dd180ebdd245cdb66ecad"
- `);
- await queryRunner.query(`
- ALTER TABLE "bans" DROP CONSTRAINT "FK_5999e8e449f80a236ff72023559"
- `);
- await queryRunner.query(`
- ALTER TABLE "backup_codes" DROP CONSTRAINT "FK_70066ea80d2f4b871beda32633b"
- `);
- await queryRunner.query(`
- ALTER TABLE "connected_accounts" DROP CONSTRAINT "FK_f47244225a6a1eac04a3463dd90"
- `);
- await queryRunner.query(`
- ALTER TABLE "relationships" DROP CONSTRAINT "FK_9c7f6b98a9843b76dce1b0c878b"
- `);
- await queryRunner.query(`
- ALTER TABLE "relationships" DROP CONSTRAINT "FK_9af4194bab1250b1c584ae4f1d7"
- `);
- await queryRunner.query(`
- DROP INDEX "public"."IDX_e22a70819d07659c7a71c112a1"
- `);
- await queryRunner.query(`
- DROP INDEX "public"."IDX_40bb6f23e7cc133292e92829d2"
- `);
- await queryRunner.query(`
- DROP TABLE "message_stickers"
- `);
- await queryRunner.query(`
- DROP INDEX "public"."IDX_bdb8c09e1464cabf62105bf4b9"
- `);
- await queryRunner.query(`
- DROP INDEX "public"."IDX_2a27102ecd1d81b4582a436092"
- `);
- await queryRunner.query(`
- DROP TABLE "message_channel_mentions"
- `);
- await queryRunner.query(`
- DROP INDEX "public"."IDX_29d63eb1a458200851bc37d074"
- `);
- await queryRunner.query(`
- DROP INDEX "public"."IDX_a8242cf535337a490b0feaea0b"
- `);
- await queryRunner.query(`
- DROP TABLE "message_role_mentions"
- `);
- await queryRunner.query(`
- DROP INDEX "public"."IDX_b831eb18ceebd28976239b1e2f"
- `);
- await queryRunner.query(`
- DROP INDEX "public"."IDX_a343387fc560ef378760681c23"
- `);
- await queryRunner.query(`
- DROP TABLE "message_user_mentions"
- `);
- await queryRunner.query(`
- DROP INDEX "public"."IDX_e9080e7a7997a0170026d5139c"
- `);
- await queryRunner.query(`
- DROP INDEX "public"."IDX_5d7ddc8a5f9c167f548625e772"
- `);
- await queryRunner.query(`
- DROP TABLE "member_roles"
- `);
- await queryRunner.query(`
- DROP TABLE "notes"
- `);
- await queryRunner.query(`
- DROP TABLE "client_release"
- `);
- await queryRunner.query(`
- DROP TABLE "sticker_packs"
- `);
- await queryRunner.query(`
- DROP TABLE "sessions"
- `);
- await queryRunner.query(`
- DROP TABLE "rate_limits"
- `);
- await queryRunner.query(`
- DROP TABLE "categories"
- `);
- await queryRunner.query(`
- DROP TABLE "audit_logs"
- `);
- await queryRunner.query(`
- DROP TABLE "applications"
- `);
- await queryRunner.query(`
- DROP TABLE "teams"
- `);
- await queryRunner.query(`
- DROP TABLE "team_members"
- `);
- await queryRunner.query(`
- DROP TABLE "guilds"
- `);
- await queryRunner.query(`
- DROP TABLE "templates"
- `);
- await queryRunner.query(`
- DROP TABLE "emojis"
- `);
- await queryRunner.query(`
- DROP TABLE "channels"
- `);
- await queryRunner.query(`
- DROP TABLE "voice_states"
- `);
- await queryRunner.query(`
- DROP TABLE "invites"
- `);
- await queryRunner.query(`
- DROP INDEX "public"."IDX_0abf8b443321bd3cf7f81ee17a"
- `);
- await queryRunner.query(`
- DROP TABLE "read_states"
- `);
- await queryRunner.query(`
- DROP INDEX "public"."IDX_3ed7a60fb7dbe04e1ba9332a8b"
- `);
- await queryRunner.query(`
- DROP INDEX "public"."IDX_05535bc695e9f7ee104616459d"
- `);
- await queryRunner.query(`
- DROP INDEX "public"."IDX_86b9109b155eb70c0a2ca3b4b6"
- `);
- await queryRunner.query(`
- DROP TABLE "messages"
- `);
- await queryRunner.query(`
- DROP TABLE "attachments"
- `);
- await queryRunner.query(`
- DROP TABLE "stickers"
- `);
- await queryRunner.query(`
- DROP TABLE "webhooks"
- `);
- await queryRunner.query(`
- DROP INDEX "public"."IDX_bb2bf9386ac443afbbbf9f12d3"
- `);
- await queryRunner.query(`
- DROP TABLE "members"
- `);
- await queryRunner.query(`
- DROP TABLE "roles"
- `);
- await queryRunner.query(`
- DROP TABLE "recipients"
- `);
- await queryRunner.query(`
- DROP TABLE "bans"
- `);
- await queryRunner.query(`
- DROP TABLE "backup_codes"
- `);
- await queryRunner.query(`
- DROP TABLE "users"
- `);
- await queryRunner.query(`
- DROP TABLE "connected_accounts"
- `);
- await queryRunner.query(`
- DROP INDEX "public"."IDX_a0b2ff0a598df0b0d055934a17"
- `);
- await queryRunner.query(`
- DROP TABLE "relationships"
- `);
- await queryRunner.query(`
- DROP TABLE "config"
- `);
- }
-
-}
diff --git a/util/src/migrations/postgres/1659921826567-premium_since_as_date.ts b/util/src/migrations/postgres/1659921826567-premium_since_as_date.ts
deleted file mode 100644
index ac1e2edb..00000000
--- a/util/src/migrations/postgres/1659921826567-premium_since_as_date.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { MigrationInterface, QueryRunner } from "typeorm";
-
-export class premiumSinceAsDate1659921826567 implements MigrationInterface {
- name = 'premiumSinceAsDate1659921826567'
-
- public async up(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- ALTER TABLE "members" DROP COLUMN "premium_since"
- `);
- await queryRunner.query(`
- ALTER TABLE "members"
- ADD "premium_since" TIMESTAMP
- `);
- }
-
- public async down(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- ALTER TABLE "members" DROP COLUMN "premium_since"
- `);
- await queryRunner.query(`
- ALTER TABLE "members"
- ADD "premium_since" bigint
- `);
- }
-
-}
diff --git a/util/src/migrations/postgres/1660130561959-updated-applications.ts b/util/src/migrations/postgres/1660130561959-updated-applications.ts
deleted file mode 100644
index 8fab54c7..00000000
--- a/util/src/migrations/postgres/1660130561959-updated-applications.ts
+++ /dev/null
@@ -1,182 +0,0 @@
-import { MigrationInterface, QueryRunner } from "typeorm";
-
-export class updatedApplications1660130561959 implements MigrationInterface {
- name = 'updatedApplications1660130561959'
-
- public async up(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- ALTER TABLE "applications" DROP CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "rpc_origins"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "primary_sku_id"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "slug"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "guild_id"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "type" text
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "hook" boolean NOT NULL
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "redirect_uris" text
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "rpc_application_state" integer
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "store_application_state" integer
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "verification_state" integer
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "interactions_endpoint_url" character varying
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "integration_public" boolean
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "integration_require_code_grant" boolean
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "discoverability_state" integer
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "discovery_eligibility_flags" integer
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "tags" text
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "install_params" text
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "bot_user_id" character varying
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD CONSTRAINT "UQ_2ce5a55796fe4c2f77ece57a647" UNIQUE ("bot_user_id")
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ALTER COLUMN "description" DROP NOT NULL
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "flags"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "flags" integer NOT NULL
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD CONSTRAINT "FK_2ce5a55796fe4c2f77ece57a647" FOREIGN KEY ("bot_user_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- }
-
- public async down(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- ALTER TABLE "applications" DROP CONSTRAINT "FK_2ce5a55796fe4c2f77ece57a647"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "flags"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "flags" character varying NOT NULL
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ALTER COLUMN "description"
- SET NOT NULL
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP CONSTRAINT "UQ_2ce5a55796fe4c2f77ece57a647"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "bot_user_id"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "install_params"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "tags"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "discovery_eligibility_flags"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "discoverability_state"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "integration_require_code_grant"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "integration_public"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "interactions_endpoint_url"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "verification_state"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "store_application_state"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "rpc_application_state"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "redirect_uris"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "hook"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications" DROP COLUMN "type"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "guild_id" character varying
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "slug" character varying
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "primary_sku_id" character varying
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD "rpc_origins" text
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- ADD CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- }
-
-}
diff --git a/util/src/migrations/postgres/1660416055566-InvitersAreDeletable.ts b/util/src/migrations/postgres/1660416055566-InvitersAreDeletable.ts
deleted file mode 100644
index e6101318..00000000
--- a/util/src/migrations/postgres/1660416055566-InvitersAreDeletable.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { MigrationInterface, QueryRunner } from "typeorm";
-
-export class InvitersAreDeletable1660416055566 implements MigrationInterface {
- name = 'InvitersAreDeletable1660416055566'
-
- public async up(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- ALTER TABLE "invites" DROP CONSTRAINT "FK_15c35422032e0b22b4ada95f48f"
- `);
- await queryRunner.query(`
- ALTER TABLE "invites"
- ADD CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" FOREIGN KEY ("inviter_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION
- `);
- }
-
- public async down(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- ALTER TABLE "invites" DROP CONSTRAINT "FK_15c35422032e0b22b4ada95f48f"
- `);
- await queryRunner.query(`
- ALTER TABLE "invites"
- ADD CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" FOREIGN KEY ("inviter_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- `);
- }
-
-}
diff --git a/util/src/migrations/sqlite/1659899662635-initial.ts b/util/src/migrations/sqlite/1659899662635-initial.ts
deleted file mode 100644
index f82e7b0d..00000000
--- a/util/src/migrations/sqlite/1659899662635-initial.ts
+++ /dev/null
@@ -1,3529 +0,0 @@
-import { MigrationInterface, QueryRunner } from "typeorm";
-
-export class initial1659899662635 implements MigrationInterface {
- name = 'initial1659899662635'
-
- public async up(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- CREATE TABLE "config" ("key" varchar PRIMARY KEY NOT NULL, "value" text)
- `);
- await queryRunner.query(`
- CREATE TABLE "relationships" (
- "id" varchar PRIMARY KEY NOT NULL,
- "from_id" varchar NOT NULL,
- "to_id" varchar NOT NULL,
- "nickname" varchar,
- "type" integer NOT NULL
- )
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_a0b2ff0a598df0b0d055934a17" ON "relationships" ("from_id", "to_id")
- `);
- await queryRunner.query(`
- CREATE TABLE "connected_accounts" (
- "id" varchar PRIMARY KEY NOT NULL,
- "user_id" varchar,
- "access_token" varchar NOT NULL,
- "friend_sync" boolean NOT NULL,
- "name" varchar NOT NULL,
- "revoked" boolean NOT NULL,
- "show_activity" boolean NOT NULL,
- "type" varchar NOT NULL,
- "verified" boolean NOT NULL,
- "visibility" integer NOT NULL
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "users" (
- "id" varchar PRIMARY KEY NOT NULL,
- "username" varchar NOT NULL,
- "discriminator" varchar NOT NULL,
- "avatar" varchar,
- "accent_color" integer,
- "banner" varchar,
- "phone" varchar,
- "desktop" boolean NOT NULL,
- "mobile" boolean NOT NULL,
- "premium" boolean NOT NULL,
- "premium_type" integer NOT NULL,
- "bot" boolean NOT NULL,
- "bio" varchar NOT NULL,
- "system" boolean NOT NULL,
- "nsfw_allowed" boolean NOT NULL,
- "mfa_enabled" boolean NOT NULL,
- "totp_secret" varchar,
- "totp_last_ticket" varchar,
- "created_at" datetime NOT NULL,
- "premium_since" datetime,
- "verified" boolean NOT NULL,
- "disabled" boolean NOT NULL,
- "deleted" boolean NOT NULL,
- "email" varchar,
- "flags" varchar NOT NULL,
- "public_flags" integer NOT NULL,
- "rights" bigint NOT NULL,
- "data" text NOT NULL,
- "fingerprints" text NOT NULL,
- "settings" text NOT NULL,
- "extended_settings" text NOT NULL,
- "notes" text NOT NULL
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "backup_codes" (
- "id" varchar PRIMARY KEY NOT NULL,
- "code" varchar NOT NULL,
- "consumed" boolean NOT NULL,
- "expired" boolean NOT NULL,
- "user_id" varchar
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "bans" (
- "id" varchar PRIMARY KEY NOT NULL,
- "user_id" varchar,
- "guild_id" varchar,
- "executor_id" varchar,
- "ip" varchar NOT NULL,
- "reason" varchar
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "recipients" (
- "id" varchar PRIMARY KEY NOT NULL,
- "channel_id" varchar NOT NULL,
- "user_id" varchar NOT NULL,
- "closed" boolean NOT NULL DEFAULT (0)
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "roles" (
- "id" varchar PRIMARY KEY NOT NULL,
- "guild_id" varchar,
- "color" integer NOT NULL,
- "hoist" boolean NOT NULL,
- "managed" boolean NOT NULL,
- "mentionable" boolean NOT NULL,
- "name" varchar NOT NULL,
- "permissions" varchar NOT NULL,
- "position" integer NOT NULL,
- "icon" varchar,
- "unicode_emoji" varchar,
- "tags" text
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "members" (
- "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
- "id" varchar NOT NULL,
- "guild_id" varchar NOT NULL,
- "nick" varchar,
- "joined_at" datetime NOT NULL,
- "premium_since" bigint,
- "deaf" boolean NOT NULL,
- "mute" boolean NOT NULL,
- "pending" boolean NOT NULL,
- "settings" text NOT NULL,
- "last_message_id" varchar,
- "joined_by" varchar
- )
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id")
- `);
- await queryRunner.query(`
- CREATE TABLE "webhooks" (
- "id" varchar PRIMARY KEY NOT NULL,
- "type" integer NOT NULL,
- "name" varchar,
- "avatar" varchar,
- "token" varchar,
- "guild_id" varchar,
- "channel_id" varchar,
- "application_id" varchar,
- "user_id" varchar,
- "source_guild_id" varchar
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "stickers" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "description" varchar,
- "available" boolean,
- "tags" varchar,
- "pack_id" varchar,
- "guild_id" varchar,
- "user_id" varchar,
- "type" integer NOT NULL,
- "format_type" integer NOT NULL
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "attachments" (
- "id" varchar PRIMARY KEY NOT NULL,
- "filename" varchar NOT NULL,
- "size" integer NOT NULL,
- "url" varchar NOT NULL,
- "proxy_url" varchar NOT NULL,
- "height" integer,
- "width" integer,
- "content_type" varchar,
- "message_id" varchar
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "messages" (
- "id" varchar PRIMARY KEY NOT NULL,
- "channel_id" varchar,
- "guild_id" varchar,
- "author_id" varchar,
- "member_id" varchar,
- "webhook_id" varchar,
- "application_id" varchar,
- "content" varchar,
- "timestamp" datetime NOT NULL DEFAULT (datetime('now')),
- "edited_timestamp" datetime,
- "tts" boolean,
- "mention_everyone" boolean,
- "embeds" text NOT NULL,
- "reactions" text NOT NULL,
- "nonce" text,
- "pinned" boolean,
- "type" integer NOT NULL,
- "activity" text,
- "flags" varchar,
- "message_reference" text,
- "interaction" text,
- "components" text,
- "message_reference_id" varchar
- )
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_86b9109b155eb70c0a2ca3b4b6" ON "messages" ("channel_id")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_05535bc695e9f7ee104616459d" ON "messages" ("author_id")
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b" ON "messages" ("channel_id", "id")
- `);
- await queryRunner.query(`
- CREATE TABLE "read_states" (
- "id" varchar PRIMARY KEY NOT NULL,
- "channel_id" varchar NOT NULL,
- "user_id" varchar NOT NULL,
- "last_message_id" varchar,
- "public_ack" varchar,
- "notifications_cursor" varchar,
- "last_pin_timestamp" datetime,
- "mention_count" integer
- )
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_0abf8b443321bd3cf7f81ee17a" ON "read_states" ("channel_id", "user_id")
- `);
- await queryRunner.query(`
- CREATE TABLE "invites" (
- "code" varchar PRIMARY KEY NOT NULL,
- "temporary" boolean NOT NULL,
- "uses" integer NOT NULL,
- "max_uses" integer NOT NULL,
- "max_age" integer NOT NULL,
- "created_at" datetime NOT NULL,
- "expires_at" datetime NOT NULL,
- "guild_id" varchar,
- "channel_id" varchar,
- "inviter_id" varchar,
- "target_user_id" varchar,
- "target_user_type" integer,
- "vanity_url" boolean
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "voice_states" (
- "id" varchar PRIMARY KEY NOT NULL,
- "guild_id" varchar,
- "channel_id" varchar,
- "user_id" varchar,
- "session_id" varchar NOT NULL,
- "token" varchar,
- "deaf" boolean NOT NULL,
- "mute" boolean NOT NULL,
- "self_deaf" boolean NOT NULL,
- "self_mute" boolean NOT NULL,
- "self_stream" boolean,
- "self_video" boolean NOT NULL,
- "suppress" boolean NOT NULL,
- "request_to_speak_timestamp" datetime
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "channels" (
- "id" varchar PRIMARY KEY NOT NULL,
- "created_at" datetime NOT NULL,
- "name" varchar,
- "icon" text,
- "type" integer NOT NULL,
- "last_message_id" varchar,
- "guild_id" varchar,
- "parent_id" varchar,
- "owner_id" varchar,
- "last_pin_timestamp" integer,
- "default_auto_archive_duration" integer,
- "position" integer,
- "permission_overwrites" text,
- "video_quality_mode" integer,
- "bitrate" integer,
- "user_limit" integer,
- "nsfw" boolean,
- "rate_limit_per_user" integer,
- "topic" varchar,
- "retention_policy_id" varchar
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "emojis" (
- "id" varchar PRIMARY KEY NOT NULL,
- "animated" boolean NOT NULL,
- "available" boolean NOT NULL,
- "guild_id" varchar NOT NULL,
- "user_id" varchar,
- "managed" boolean NOT NULL,
- "name" varchar NOT NULL,
- "require_colons" boolean NOT NULL,
- "roles" text NOT NULL,
- "groups" text
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "templates" (
- "id" varchar PRIMARY KEY NOT NULL,
- "code" varchar NOT NULL,
- "name" varchar NOT NULL,
- "description" varchar,
- "usage_count" integer,
- "creator_id" varchar,
- "created_at" datetime NOT NULL,
- "updated_at" datetime NOT NULL,
- "source_guild_id" varchar,
- "serialized_source_guild" text NOT NULL,
- CONSTRAINT "UQ_be38737bf339baf63b1daeffb55" UNIQUE ("code")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "guilds" (
- "id" varchar PRIMARY KEY NOT NULL,
- "afk_channel_id" varchar,
- "afk_timeout" integer,
- "banner" varchar,
- "default_message_notifications" integer,
- "description" varchar,
- "discovery_splash" varchar,
- "explicit_content_filter" integer,
- "features" text NOT NULL,
- "primary_category_id" integer,
- "icon" varchar,
- "large" boolean,
- "max_members" integer,
- "max_presences" integer,
- "max_video_channel_users" integer,
- "member_count" integer,
- "presence_count" integer,
- "template_id" varchar,
- "mfa_level" integer,
- "name" varchar NOT NULL,
- "owner_id" varchar,
- "preferred_locale" varchar,
- "premium_subscription_count" integer,
- "premium_tier" integer,
- "public_updates_channel_id" varchar,
- "rules_channel_id" varchar,
- "region" varchar,
- "splash" varchar,
- "system_channel_id" varchar,
- "system_channel_flags" integer,
- "unavailable" boolean,
- "verification_level" integer,
- "welcome_screen" text NOT NULL,
- "widget_channel_id" varchar,
- "widget_enabled" boolean,
- "nsfw_level" integer,
- "nsfw" boolean,
- "parent" varchar
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "team_members" (
- "id" varchar PRIMARY KEY NOT NULL,
- "membership_state" integer NOT NULL,
- "permissions" text NOT NULL,
- "team_id" varchar,
- "user_id" varchar
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "teams" (
- "id" varchar PRIMARY KEY NOT NULL,
- "icon" varchar,
- "name" varchar NOT NULL,
- "owner_user_id" varchar
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "applications" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "icon" varchar,
- "description" varchar NOT NULL,
- "rpc_origins" text,
- "bot_public" boolean NOT NULL,
- "bot_require_code_grant" boolean NOT NULL,
- "terms_of_service_url" varchar,
- "privacy_policy_url" varchar,
- "summary" varchar,
- "verify_key" varchar NOT NULL,
- "primary_sku_id" varchar,
- "slug" varchar,
- "cover_image" varchar,
- "flags" varchar NOT NULL,
- "owner_id" varchar,
- "team_id" varchar,
- "guild_id" varchar
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "audit_logs" (
- "id" varchar PRIMARY KEY NOT NULL,
- "user_id" varchar,
- "action_type" integer NOT NULL,
- "options" text,
- "changes" text NOT NULL,
- "reason" varchar,
- "target_id" varchar
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "categories" (
- "id" integer PRIMARY KEY NOT NULL,
- "name" varchar,
- "localizations" text NOT NULL,
- "is_primary" boolean
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "rate_limits" (
- "id" varchar PRIMARY KEY NOT NULL,
- "executor_id" varchar NOT NULL,
- "hits" integer NOT NULL,
- "blocked" boolean NOT NULL,
- "expires_at" datetime NOT NULL
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "sessions" (
- "id" varchar PRIMARY KEY NOT NULL,
- "user_id" varchar,
- "session_id" varchar NOT NULL,
- "activities" text,
- "client_info" text NOT NULL,
- "status" varchar NOT NULL
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "sticker_packs" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "description" varchar,
- "banner_asset_id" varchar,
- "cover_sticker_id" varchar,
- "coverStickerId" varchar
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "client_release" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "pub_date" varchar NOT NULL,
- "url" varchar NOT NULL,
- "deb_url" varchar NOT NULL,
- "osx_url" varchar NOT NULL,
- "win_url" varchar NOT NULL,
- "notes" varchar
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "notes" (
- "id" varchar PRIMARY KEY NOT NULL,
- "content" varchar NOT NULL,
- "owner_id" varchar,
- "target_id" varchar,
- CONSTRAINT "UQ_74e6689b9568cc965b8bfc9150b" UNIQUE ("owner_id", "target_id")
- )
- `);
- await queryRunner.query(`
- CREATE TABLE "member_roles" (
- "index" integer NOT NULL,
- "role_id" varchar NOT NULL,
- PRIMARY KEY ("index", "role_id")
- )
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_5d7ddc8a5f9c167f548625e772" ON "member_roles" ("index")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_e9080e7a7997a0170026d5139c" ON "member_roles" ("role_id")
- `);
- await queryRunner.query(`
- CREATE TABLE "message_user_mentions" (
- "messagesId" varchar NOT NULL,
- "usersId" varchar NOT NULL,
- PRIMARY KEY ("messagesId", "usersId")
- )
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_a343387fc560ef378760681c23" ON "message_user_mentions" ("messagesId")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_b831eb18ceebd28976239b1e2f" ON "message_user_mentions" ("usersId")
- `);
- await queryRunner.query(`
- CREATE TABLE "message_role_mentions" (
- "messagesId" varchar NOT NULL,
- "rolesId" varchar NOT NULL,
- PRIMARY KEY ("messagesId", "rolesId")
- )
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_a8242cf535337a490b0feaea0b" ON "message_role_mentions" ("messagesId")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_29d63eb1a458200851bc37d074" ON "message_role_mentions" ("rolesId")
- `);
- await queryRunner.query(`
- CREATE TABLE "message_channel_mentions" (
- "messagesId" varchar NOT NULL,
- "channelsId" varchar NOT NULL,
- PRIMARY KEY ("messagesId", "channelsId")
- )
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_2a27102ecd1d81b4582a436092" ON "message_channel_mentions" ("messagesId")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_bdb8c09e1464cabf62105bf4b9" ON "message_channel_mentions" ("channelsId")
- `);
- await queryRunner.query(`
- CREATE TABLE "message_stickers" (
- "messagesId" varchar NOT NULL,
- "stickersId" varchar NOT NULL,
- PRIMARY KEY ("messagesId", "stickersId")
- )
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_40bb6f23e7cc133292e92829d2" ON "message_stickers" ("messagesId")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_e22a70819d07659c7a71c112a1" ON "message_stickers" ("stickersId")
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_a0b2ff0a598df0b0d055934a17"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_relationships" (
- "id" varchar PRIMARY KEY NOT NULL,
- "from_id" varchar NOT NULL,
- "to_id" varchar NOT NULL,
- "nickname" varchar,
- "type" integer NOT NULL,
- CONSTRAINT "FK_9af4194bab1250b1c584ae4f1d7" FOREIGN KEY ("from_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_9c7f6b98a9843b76dce1b0c878b" FOREIGN KEY ("to_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_relationships"("id", "from_id", "to_id", "nickname", "type")
- SELECT "id",
- "from_id",
- "to_id",
- "nickname",
- "type"
- FROM "relationships"
- `);
- await queryRunner.query(`
- DROP TABLE "relationships"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_relationships"
- RENAME TO "relationships"
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_a0b2ff0a598df0b0d055934a17" ON "relationships" ("from_id", "to_id")
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_connected_accounts" (
- "id" varchar PRIMARY KEY NOT NULL,
- "user_id" varchar,
- "access_token" varchar NOT NULL,
- "friend_sync" boolean NOT NULL,
- "name" varchar NOT NULL,
- "revoked" boolean NOT NULL,
- "show_activity" boolean NOT NULL,
- "type" varchar NOT NULL,
- "verified" boolean NOT NULL,
- "visibility" integer NOT NULL,
- CONSTRAINT "FK_f47244225a6a1eac04a3463dd90" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_connected_accounts"(
- "id",
- "user_id",
- "access_token",
- "friend_sync",
- "name",
- "revoked",
- "show_activity",
- "type",
- "verified",
- "visibility"
- )
- SELECT "id",
- "user_id",
- "access_token",
- "friend_sync",
- "name",
- "revoked",
- "show_activity",
- "type",
- "verified",
- "visibility"
- FROM "connected_accounts"
- `);
- await queryRunner.query(`
- DROP TABLE "connected_accounts"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_connected_accounts"
- RENAME TO "connected_accounts"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_backup_codes" (
- "id" varchar PRIMARY KEY NOT NULL,
- "code" varchar NOT NULL,
- "consumed" boolean NOT NULL,
- "expired" boolean NOT NULL,
- "user_id" varchar,
- CONSTRAINT "FK_70066ea80d2f4b871beda32633b" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_backup_codes"("id", "code", "consumed", "expired", "user_id")
- SELECT "id",
- "code",
- "consumed",
- "expired",
- "user_id"
- FROM "backup_codes"
- `);
- await queryRunner.query(`
- DROP TABLE "backup_codes"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_backup_codes"
- RENAME TO "backup_codes"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_bans" (
- "id" varchar PRIMARY KEY NOT NULL,
- "user_id" varchar,
- "guild_id" varchar,
- "executor_id" varchar,
- "ip" varchar NOT NULL,
- "reason" varchar,
- CONSTRAINT "FK_5999e8e449f80a236ff72023559" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_9d3ab7dd180ebdd245cdb66ecad" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_07ad88c86d1f290d46748410d58" FOREIGN KEY ("executor_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_bans"(
- "id",
- "user_id",
- "guild_id",
- "executor_id",
- "ip",
- "reason"
- )
- SELECT "id",
- "user_id",
- "guild_id",
- "executor_id",
- "ip",
- "reason"
- FROM "bans"
- `);
- await queryRunner.query(`
- DROP TABLE "bans"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_bans"
- RENAME TO "bans"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_recipients" (
- "id" varchar PRIMARY KEY NOT NULL,
- "channel_id" varchar NOT NULL,
- "user_id" varchar NOT NULL,
- "closed" boolean NOT NULL DEFAULT (0),
- CONSTRAINT "FK_2f18ee1ba667f233ae86c0ea60e" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_6157e8b6ba4e6e3089616481fe2" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_recipients"("id", "channel_id", "user_id", "closed")
- SELECT "id",
- "channel_id",
- "user_id",
- "closed"
- FROM "recipients"
- `);
- await queryRunner.query(`
- DROP TABLE "recipients"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_recipients"
- RENAME TO "recipients"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_roles" (
- "id" varchar PRIMARY KEY NOT NULL,
- "guild_id" varchar,
- "color" integer NOT NULL,
- "hoist" boolean NOT NULL,
- "managed" boolean NOT NULL,
- "mentionable" boolean NOT NULL,
- "name" varchar NOT NULL,
- "permissions" varchar NOT NULL,
- "position" integer NOT NULL,
- "icon" varchar,
- "unicode_emoji" varchar,
- "tags" text,
- CONSTRAINT "FK_c32c1ab1c4dc7dcb0278c4b1b8b" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_roles"(
- "id",
- "guild_id",
- "color",
- "hoist",
- "managed",
- "mentionable",
- "name",
- "permissions",
- "position",
- "icon",
- "unicode_emoji",
- "tags"
- )
- SELECT "id",
- "guild_id",
- "color",
- "hoist",
- "managed",
- "mentionable",
- "name",
- "permissions",
- "position",
- "icon",
- "unicode_emoji",
- "tags"
- FROM "roles"
- `);
- await queryRunner.query(`
- DROP TABLE "roles"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_roles"
- RENAME TO "roles"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_members" (
- "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
- "id" varchar NOT NULL,
- "guild_id" varchar NOT NULL,
- "nick" varchar,
- "joined_at" datetime NOT NULL,
- "premium_since" bigint,
- "deaf" boolean NOT NULL,
- "mute" boolean NOT NULL,
- "pending" boolean NOT NULL,
- "settings" text NOT NULL,
- "last_message_id" varchar,
- "joined_by" varchar,
- CONSTRAINT "FK_28b53062261b996d9c99fa12404" FOREIGN KEY ("id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_members"(
- "index",
- "id",
- "guild_id",
- "nick",
- "joined_at",
- "premium_since",
- "deaf",
- "mute",
- "pending",
- "settings",
- "last_message_id",
- "joined_by"
- )
- SELECT "index",
- "id",
- "guild_id",
- "nick",
- "joined_at",
- "premium_since",
- "deaf",
- "mute",
- "pending",
- "settings",
- "last_message_id",
- "joined_by"
- FROM "members"
- `);
- await queryRunner.query(`
- DROP TABLE "members"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_members"
- RENAME TO "members"
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id")
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_webhooks" (
- "id" varchar PRIMARY KEY NOT NULL,
- "type" integer NOT NULL,
- "name" varchar,
- "avatar" varchar,
- "token" varchar,
- "guild_id" varchar,
- "channel_id" varchar,
- "application_id" varchar,
- "user_id" varchar,
- "source_guild_id" varchar,
- CONSTRAINT "FK_487a7af59d189f744fe394368fc" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_df528cf77e82f8032230e7e37d8" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_c3e5305461931763b56aa905f1c" FOREIGN KEY ("application_id") REFERENCES "applications" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_0d523f6f997c86e052c49b1455f" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_3a285f4f49c40e0706d3018bc9f" FOREIGN KEY ("source_guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_webhooks"(
- "id",
- "type",
- "name",
- "avatar",
- "token",
- "guild_id",
- "channel_id",
- "application_id",
- "user_id",
- "source_guild_id"
- )
- SELECT "id",
- "type",
- "name",
- "avatar",
- "token",
- "guild_id",
- "channel_id",
- "application_id",
- "user_id",
- "source_guild_id"
- FROM "webhooks"
- `);
- await queryRunner.query(`
- DROP TABLE "webhooks"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_webhooks"
- RENAME TO "webhooks"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_stickers" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "description" varchar,
- "available" boolean,
- "tags" varchar,
- "pack_id" varchar,
- "guild_id" varchar,
- "user_id" varchar,
- "type" integer NOT NULL,
- "format_type" integer NOT NULL,
- CONSTRAINT "FK_e7cfa5cefa6661b3fb8fda8ce69" FOREIGN KEY ("pack_id") REFERENCES "sticker_packs" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_193d551d852aca5347ef5c9f205" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_8f4ee73f2bb2325ff980502e158" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_stickers"(
- "id",
- "name",
- "description",
- "available",
- "tags",
- "pack_id",
- "guild_id",
- "user_id",
- "type",
- "format_type"
- )
- SELECT "id",
- "name",
- "description",
- "available",
- "tags",
- "pack_id",
- "guild_id",
- "user_id",
- "type",
- "format_type"
- FROM "stickers"
- `);
- await queryRunner.query(`
- DROP TABLE "stickers"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_stickers"
- RENAME TO "stickers"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_attachments" (
- "id" varchar PRIMARY KEY NOT NULL,
- "filename" varchar NOT NULL,
- "size" integer NOT NULL,
- "url" varchar NOT NULL,
- "proxy_url" varchar NOT NULL,
- "height" integer,
- "width" integer,
- "content_type" varchar,
- "message_id" varchar,
- CONSTRAINT "FK_623e10eec51ada466c5038979e3" FOREIGN KEY ("message_id") REFERENCES "messages" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_attachments"(
- "id",
- "filename",
- "size",
- "url",
- "proxy_url",
- "height",
- "width",
- "content_type",
- "message_id"
- )
- SELECT "id",
- "filename",
- "size",
- "url",
- "proxy_url",
- "height",
- "width",
- "content_type",
- "message_id"
- FROM "attachments"
- `);
- await queryRunner.query(`
- DROP TABLE "attachments"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_attachments"
- RENAME TO "attachments"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_86b9109b155eb70c0a2ca3b4b6"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_05535bc695e9f7ee104616459d"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_messages" (
- "id" varchar PRIMARY KEY NOT NULL,
- "channel_id" varchar,
- "guild_id" varchar,
- "author_id" varchar,
- "member_id" varchar,
- "webhook_id" varchar,
- "application_id" varchar,
- "content" varchar,
- "timestamp" datetime NOT NULL DEFAULT (datetime('now')),
- "edited_timestamp" datetime,
- "tts" boolean,
- "mention_everyone" boolean,
- "embeds" text NOT NULL,
- "reactions" text NOT NULL,
- "nonce" text,
- "pinned" boolean,
- "type" integer NOT NULL,
- "activity" text,
- "flags" varchar,
- "message_reference" text,
- "interaction" text,
- "components" text,
- "message_reference_id" varchar,
- CONSTRAINT "FK_86b9109b155eb70c0a2ca3b4b6d" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_b193588441b085352a4c0109423" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_05535bc695e9f7ee104616459d3" FOREIGN KEY ("author_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_b0525304f2262b7014245351c76" FOREIGN KEY ("member_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_f83c04bcf1df4e5c0e7a52ed348" FOREIGN KEY ("webhook_id") REFERENCES "webhooks" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
- CONSTRAINT "FK_5d3ec1cb962de6488637fd779d6" FOREIGN KEY ("application_id") REFERENCES "applications" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
- CONSTRAINT "FK_61a92bb65b302a76d9c1fcd3174" FOREIGN KEY ("message_reference_id") REFERENCES "messages" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_messages"(
- "id",
- "channel_id",
- "guild_id",
- "author_id",
- "member_id",
- "webhook_id",
- "application_id",
- "content",
- "timestamp",
- "edited_timestamp",
- "tts",
- "mention_everyone",
- "embeds",
- "reactions",
- "nonce",
- "pinned",
- "type",
- "activity",
- "flags",
- "message_reference",
- "interaction",
- "components",
- "message_reference_id"
- )
- SELECT "id",
- "channel_id",
- "guild_id",
- "author_id",
- "member_id",
- "webhook_id",
- "application_id",
- "content",
- "timestamp",
- "edited_timestamp",
- "tts",
- "mention_everyone",
- "embeds",
- "reactions",
- "nonce",
- "pinned",
- "type",
- "activity",
- "flags",
- "message_reference",
- "interaction",
- "components",
- "message_reference_id"
- FROM "messages"
- `);
- await queryRunner.query(`
- DROP TABLE "messages"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_messages"
- RENAME TO "messages"
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_86b9109b155eb70c0a2ca3b4b6" ON "messages" ("channel_id")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_05535bc695e9f7ee104616459d" ON "messages" ("author_id")
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b" ON "messages" ("channel_id", "id")
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_0abf8b443321bd3cf7f81ee17a"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_read_states" (
- "id" varchar PRIMARY KEY NOT NULL,
- "channel_id" varchar NOT NULL,
- "user_id" varchar NOT NULL,
- "last_message_id" varchar,
- "public_ack" varchar,
- "notifications_cursor" varchar,
- "last_pin_timestamp" datetime,
- "mention_count" integer,
- CONSTRAINT "FK_40da2fca4e0eaf7a23b5bfc5d34" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_195f92e4dd1254a4e348c043763" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_read_states"(
- "id",
- "channel_id",
- "user_id",
- "last_message_id",
- "public_ack",
- "notifications_cursor",
- "last_pin_timestamp",
- "mention_count"
- )
- SELECT "id",
- "channel_id",
- "user_id",
- "last_message_id",
- "public_ack",
- "notifications_cursor",
- "last_pin_timestamp",
- "mention_count"
- FROM "read_states"
- `);
- await queryRunner.query(`
- DROP TABLE "read_states"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_read_states"
- RENAME TO "read_states"
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_0abf8b443321bd3cf7f81ee17a" ON "read_states" ("channel_id", "user_id")
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_invites" (
- "code" varchar PRIMARY KEY NOT NULL,
- "temporary" boolean NOT NULL,
- "uses" integer NOT NULL,
- "max_uses" integer NOT NULL,
- "max_age" integer NOT NULL,
- "created_at" datetime NOT NULL,
- "expires_at" datetime NOT NULL,
- "guild_id" varchar,
- "channel_id" varchar,
- "inviter_id" varchar,
- "target_user_id" varchar,
- "target_user_type" integer,
- "vanity_url" boolean,
- CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" FOREIGN KEY ("inviter_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
- CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" FOREIGN KEY ("target_user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_invites"(
- "code",
- "temporary",
- "uses",
- "max_uses",
- "max_age",
- "created_at",
- "expires_at",
- "guild_id",
- "channel_id",
- "inviter_id",
- "target_user_id",
- "target_user_type",
- "vanity_url"
- )
- SELECT "code",
- "temporary",
- "uses",
- "max_uses",
- "max_age",
- "created_at",
- "expires_at",
- "guild_id",
- "channel_id",
- "inviter_id",
- "target_user_id",
- "target_user_type",
- "vanity_url"
- FROM "invites"
- `);
- await queryRunner.query(`
- DROP TABLE "invites"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_invites"
- RENAME TO "invites"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_voice_states" (
- "id" varchar PRIMARY KEY NOT NULL,
- "guild_id" varchar,
- "channel_id" varchar,
- "user_id" varchar,
- "session_id" varchar NOT NULL,
- "token" varchar,
- "deaf" boolean NOT NULL,
- "mute" boolean NOT NULL,
- "self_deaf" boolean NOT NULL,
- "self_mute" boolean NOT NULL,
- "self_stream" boolean,
- "self_video" boolean NOT NULL,
- "suppress" boolean NOT NULL,
- "request_to_speak_timestamp" datetime,
- CONSTRAINT "FK_03779ef216d4b0358470d9cb748" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_9f8d389866b40b6657edd026dd4" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_5fe1d5f931a67e85039c640001b" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_voice_states"(
- "id",
- "guild_id",
- "channel_id",
- "user_id",
- "session_id",
- "token",
- "deaf",
- "mute",
- "self_deaf",
- "self_mute",
- "self_stream",
- "self_video",
- "suppress",
- "request_to_speak_timestamp"
- )
- SELECT "id",
- "guild_id",
- "channel_id",
- "user_id",
- "session_id",
- "token",
- "deaf",
- "mute",
- "self_deaf",
- "self_mute",
- "self_stream",
- "self_video",
- "suppress",
- "request_to_speak_timestamp"
- FROM "voice_states"
- `);
- await queryRunner.query(`
- DROP TABLE "voice_states"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_voice_states"
- RENAME TO "voice_states"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_channels" (
- "id" varchar PRIMARY KEY NOT NULL,
- "created_at" datetime NOT NULL,
- "name" varchar,
- "icon" text,
- "type" integer NOT NULL,
- "last_message_id" varchar,
- "guild_id" varchar,
- "parent_id" varchar,
- "owner_id" varchar,
- "last_pin_timestamp" integer,
- "default_auto_archive_duration" integer,
- "position" integer,
- "permission_overwrites" text,
- "video_quality_mode" integer,
- "bitrate" integer,
- "user_limit" integer,
- "nsfw" boolean,
- "rate_limit_per_user" integer,
- "topic" varchar,
- "retention_policy_id" varchar,
- CONSTRAINT "FK_c253dafe5f3a03ec00cd8fb4581" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_3274522d14af40540b1a883fc80" FOREIGN KEY ("parent_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
- CONSTRAINT "FK_3873ed438575cce703ecff4fc7b" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_channels"(
- "id",
- "created_at",
- "name",
- "icon",
- "type",
- "last_message_id",
- "guild_id",
- "parent_id",
- "owner_id",
- "last_pin_timestamp",
- "default_auto_archive_duration",
- "position",
- "permission_overwrites",
- "video_quality_mode",
- "bitrate",
- "user_limit",
- "nsfw",
- "rate_limit_per_user",
- "topic",
- "retention_policy_id"
- )
- SELECT "id",
- "created_at",
- "name",
- "icon",
- "type",
- "last_message_id",
- "guild_id",
- "parent_id",
- "owner_id",
- "last_pin_timestamp",
- "default_auto_archive_duration",
- "position",
- "permission_overwrites",
- "video_quality_mode",
- "bitrate",
- "user_limit",
- "nsfw",
- "rate_limit_per_user",
- "topic",
- "retention_policy_id"
- FROM "channels"
- `);
- await queryRunner.query(`
- DROP TABLE "channels"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_channels"
- RENAME TO "channels"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_emojis" (
- "id" varchar PRIMARY KEY NOT NULL,
- "animated" boolean NOT NULL,
- "available" boolean NOT NULL,
- "guild_id" varchar NOT NULL,
- "user_id" varchar,
- "managed" boolean NOT NULL,
- "name" varchar NOT NULL,
- "require_colons" boolean NOT NULL,
- "roles" text NOT NULL,
- "groups" text,
- CONSTRAINT "FK_4b988e0db89d94cebcf07f598cc" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_fa7ddd5f9a214e28ce596548421" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_emojis"(
- "id",
- "animated",
- "available",
- "guild_id",
- "user_id",
- "managed",
- "name",
- "require_colons",
- "roles",
- "groups"
- )
- SELECT "id",
- "animated",
- "available",
- "guild_id",
- "user_id",
- "managed",
- "name",
- "require_colons",
- "roles",
- "groups"
- FROM "emojis"
- `);
- await queryRunner.query(`
- DROP TABLE "emojis"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_emojis"
- RENAME TO "emojis"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_templates" (
- "id" varchar PRIMARY KEY NOT NULL,
- "code" varchar NOT NULL,
- "name" varchar NOT NULL,
- "description" varchar,
- "usage_count" integer,
- "creator_id" varchar,
- "created_at" datetime NOT NULL,
- "updated_at" datetime NOT NULL,
- "source_guild_id" varchar,
- "serialized_source_guild" text NOT NULL,
- CONSTRAINT "UQ_be38737bf339baf63b1daeffb55" UNIQUE ("code"),
- CONSTRAINT "FK_d7374b7f8f5fbfdececa4fb62e1" FOREIGN KEY ("creator_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
- CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11" FOREIGN KEY ("source_guild_id") REFERENCES "guilds" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_templates"(
- "id",
- "code",
- "name",
- "description",
- "usage_count",
- "creator_id",
- "created_at",
- "updated_at",
- "source_guild_id",
- "serialized_source_guild"
- )
- SELECT "id",
- "code",
- "name",
- "description",
- "usage_count",
- "creator_id",
- "created_at",
- "updated_at",
- "source_guild_id",
- "serialized_source_guild"
- FROM "templates"
- `);
- await queryRunner.query(`
- DROP TABLE "templates"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_templates"
- RENAME TO "templates"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_guilds" (
- "id" varchar PRIMARY KEY NOT NULL,
- "afk_channel_id" varchar,
- "afk_timeout" integer,
- "banner" varchar,
- "default_message_notifications" integer,
- "description" varchar,
- "discovery_splash" varchar,
- "explicit_content_filter" integer,
- "features" text NOT NULL,
- "primary_category_id" integer,
- "icon" varchar,
- "large" boolean,
- "max_members" integer,
- "max_presences" integer,
- "max_video_channel_users" integer,
- "member_count" integer,
- "presence_count" integer,
- "template_id" varchar,
- "mfa_level" integer,
- "name" varchar NOT NULL,
- "owner_id" varchar,
- "preferred_locale" varchar,
- "premium_subscription_count" integer,
- "premium_tier" integer,
- "public_updates_channel_id" varchar,
- "rules_channel_id" varchar,
- "region" varchar,
- "splash" varchar,
- "system_channel_id" varchar,
- "system_channel_flags" integer,
- "unavailable" boolean,
- "verification_level" integer,
- "welcome_screen" text NOT NULL,
- "widget_channel_id" varchar,
- "widget_enabled" boolean,
- "nsfw_level" integer,
- "nsfw" boolean,
- "parent" varchar,
- CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
- CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
- CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
- CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
- CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
- CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
- CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_guilds"(
- "id",
- "afk_channel_id",
- "afk_timeout",
- "banner",
- "default_message_notifications",
- "description",
- "discovery_splash",
- "explicit_content_filter",
- "features",
- "primary_category_id",
- "icon",
- "large",
- "max_members",
- "max_presences",
- "max_video_channel_users",
- "member_count",
- "presence_count",
- "template_id",
- "mfa_level",
- "name",
- "owner_id",
- "preferred_locale",
- "premium_subscription_count",
- "premium_tier",
- "public_updates_channel_id",
- "rules_channel_id",
- "region",
- "splash",
- "system_channel_id",
- "system_channel_flags",
- "unavailable",
- "verification_level",
- "welcome_screen",
- "widget_channel_id",
- "widget_enabled",
- "nsfw_level",
- "nsfw",
- "parent"
- )
- SELECT "id",
- "afk_channel_id",
- "afk_timeout",
- "banner",
- "default_message_notifications",
- "description",
- "discovery_splash",
- "explicit_content_filter",
- "features",
- "primary_category_id",
- "icon",
- "large",
- "max_members",
- "max_presences",
- "max_video_channel_users",
- "member_count",
- "presence_count",
- "template_id",
- "mfa_level",
- "name",
- "owner_id",
- "preferred_locale",
- "premium_subscription_count",
- "premium_tier",
- "public_updates_channel_id",
- "rules_channel_id",
- "region",
- "splash",
- "system_channel_id",
- "system_channel_flags",
- "unavailable",
- "verification_level",
- "welcome_screen",
- "widget_channel_id",
- "widget_enabled",
- "nsfw_level",
- "nsfw",
- "parent"
- FROM "guilds"
- `);
- await queryRunner.query(`
- DROP TABLE "guilds"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_guilds"
- RENAME TO "guilds"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_team_members" (
- "id" varchar PRIMARY KEY NOT NULL,
- "membership_state" integer NOT NULL,
- "permissions" text NOT NULL,
- "team_id" varchar,
- "user_id" varchar,
- CONSTRAINT "FK_fdad7d5768277e60c40e01cdcea" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_c2bf4967c8c2a6b845dadfbf3d4" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_team_members"(
- "id",
- "membership_state",
- "permissions",
- "team_id",
- "user_id"
- )
- SELECT "id",
- "membership_state",
- "permissions",
- "team_id",
- "user_id"
- FROM "team_members"
- `);
- await queryRunner.query(`
- DROP TABLE "team_members"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_team_members"
- RENAME TO "team_members"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_teams" (
- "id" varchar PRIMARY KEY NOT NULL,
- "icon" varchar,
- "name" varchar NOT NULL,
- "owner_user_id" varchar,
- CONSTRAINT "FK_13f00abf7cb6096c43ecaf8c108" FOREIGN KEY ("owner_user_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_teams"("id", "icon", "name", "owner_user_id")
- SELECT "id",
- "icon",
- "name",
- "owner_user_id"
- FROM "teams"
- `);
- await queryRunner.query(`
- DROP TABLE "teams"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_teams"
- RENAME TO "teams"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_applications" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "icon" varchar,
- "description" varchar NOT NULL,
- "rpc_origins" text,
- "bot_public" boolean NOT NULL,
- "bot_require_code_grant" boolean NOT NULL,
- "terms_of_service_url" varchar,
- "privacy_policy_url" varchar,
- "summary" varchar,
- "verify_key" varchar NOT NULL,
- "primary_sku_id" varchar,
- "slug" varchar,
- "cover_image" varchar,
- "flags" varchar NOT NULL,
- "owner_id" varchar,
- "team_id" varchar,
- "guild_id" varchar,
- CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
- CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_applications"(
- "id",
- "name",
- "icon",
- "description",
- "rpc_origins",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "primary_sku_id",
- "slug",
- "cover_image",
- "flags",
- "owner_id",
- "team_id",
- "guild_id"
- )
- SELECT "id",
- "name",
- "icon",
- "description",
- "rpc_origins",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "primary_sku_id",
- "slug",
- "cover_image",
- "flags",
- "owner_id",
- "team_id",
- "guild_id"
- FROM "applications"
- `);
- await queryRunner.query(`
- DROP TABLE "applications"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_applications"
- RENAME TO "applications"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_audit_logs" (
- "id" varchar PRIMARY KEY NOT NULL,
- "user_id" varchar,
- "action_type" integer NOT NULL,
- "options" text,
- "changes" text NOT NULL,
- "reason" varchar,
- "target_id" varchar,
- CONSTRAINT "FK_3cd01cd3ae7aab010310d96ac8e" FOREIGN KEY ("target_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
- CONSTRAINT "FK_bd2726fd31b35443f2245b93ba0" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_audit_logs"(
- "id",
- "user_id",
- "action_type",
- "options",
- "changes",
- "reason",
- "target_id"
- )
- SELECT "id",
- "user_id",
- "action_type",
- "options",
- "changes",
- "reason",
- "target_id"
- FROM "audit_logs"
- `);
- await queryRunner.query(`
- DROP TABLE "audit_logs"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_audit_logs"
- RENAME TO "audit_logs"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_sessions" (
- "id" varchar PRIMARY KEY NOT NULL,
- "user_id" varchar,
- "session_id" varchar NOT NULL,
- "activities" text,
- "client_info" text NOT NULL,
- "status" varchar NOT NULL,
- CONSTRAINT "FK_085d540d9f418cfbdc7bd55bb19" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_sessions"(
- "id",
- "user_id",
- "session_id",
- "activities",
- "client_info",
- "status"
- )
- SELECT "id",
- "user_id",
- "session_id",
- "activities",
- "client_info",
- "status"
- FROM "sessions"
- `);
- await queryRunner.query(`
- DROP TABLE "sessions"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_sessions"
- RENAME TO "sessions"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_sticker_packs" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "description" varchar,
- "banner_asset_id" varchar,
- "cover_sticker_id" varchar,
- "coverStickerId" varchar,
- CONSTRAINT "FK_448fafba4355ee1c837bbc865f1" FOREIGN KEY ("coverStickerId") REFERENCES "stickers" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_sticker_packs"(
- "id",
- "name",
- "description",
- "banner_asset_id",
- "cover_sticker_id",
- "coverStickerId"
- )
- SELECT "id",
- "name",
- "description",
- "banner_asset_id",
- "cover_sticker_id",
- "coverStickerId"
- FROM "sticker_packs"
- `);
- await queryRunner.query(`
- DROP TABLE "sticker_packs"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_sticker_packs"
- RENAME TO "sticker_packs"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_notes" (
- "id" varchar PRIMARY KEY NOT NULL,
- "content" varchar NOT NULL,
- "owner_id" varchar,
- "target_id" varchar,
- CONSTRAINT "UQ_74e6689b9568cc965b8bfc9150b" UNIQUE ("owner_id", "target_id"),
- CONSTRAINT "FK_f9e103f8ae67cb1787063597925" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_23e08e5b4481711d573e1abecdc" FOREIGN KEY ("target_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_notes"("id", "content", "owner_id", "target_id")
- SELECT "id",
- "content",
- "owner_id",
- "target_id"
- FROM "notes"
- `);
- await queryRunner.query(`
- DROP TABLE "notes"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_notes"
- RENAME TO "notes"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_5d7ddc8a5f9c167f548625e772"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_e9080e7a7997a0170026d5139c"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_member_roles" (
- "index" integer NOT NULL,
- "role_id" varchar NOT NULL,
- CONSTRAINT "FK_5d7ddc8a5f9c167f548625e772e" FOREIGN KEY ("index") REFERENCES "members" ("index") ON DELETE CASCADE ON UPDATE CASCADE,
- CONSTRAINT "FK_e9080e7a7997a0170026d5139c1" FOREIGN KEY ("role_id") REFERENCES "roles" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
- PRIMARY KEY ("index", "role_id")
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_member_roles"("index", "role_id")
- SELECT "index",
- "role_id"
- FROM "member_roles"
- `);
- await queryRunner.query(`
- DROP TABLE "member_roles"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_member_roles"
- RENAME TO "member_roles"
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_5d7ddc8a5f9c167f548625e772" ON "member_roles" ("index")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_e9080e7a7997a0170026d5139c" ON "member_roles" ("role_id")
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_a343387fc560ef378760681c23"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_b831eb18ceebd28976239b1e2f"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_message_user_mentions" (
- "messagesId" varchar NOT NULL,
- "usersId" varchar NOT NULL,
- CONSTRAINT "FK_a343387fc560ef378760681c236" FOREIGN KEY ("messagesId") REFERENCES "messages" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
- CONSTRAINT "FK_b831eb18ceebd28976239b1e2f8" FOREIGN KEY ("usersId") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
- PRIMARY KEY ("messagesId", "usersId")
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_message_user_mentions"("messagesId", "usersId")
- SELECT "messagesId",
- "usersId"
- FROM "message_user_mentions"
- `);
- await queryRunner.query(`
- DROP TABLE "message_user_mentions"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_message_user_mentions"
- RENAME TO "message_user_mentions"
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_a343387fc560ef378760681c23" ON "message_user_mentions" ("messagesId")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_b831eb18ceebd28976239b1e2f" ON "message_user_mentions" ("usersId")
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_a8242cf535337a490b0feaea0b"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_29d63eb1a458200851bc37d074"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_message_role_mentions" (
- "messagesId" varchar NOT NULL,
- "rolesId" varchar NOT NULL,
- CONSTRAINT "FK_a8242cf535337a490b0feaea0b4" FOREIGN KEY ("messagesId") REFERENCES "messages" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
- CONSTRAINT "FK_29d63eb1a458200851bc37d074b" FOREIGN KEY ("rolesId") REFERENCES "roles" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
- PRIMARY KEY ("messagesId", "rolesId")
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_message_role_mentions"("messagesId", "rolesId")
- SELECT "messagesId",
- "rolesId"
- FROM "message_role_mentions"
- `);
- await queryRunner.query(`
- DROP TABLE "message_role_mentions"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_message_role_mentions"
- RENAME TO "message_role_mentions"
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_a8242cf535337a490b0feaea0b" ON "message_role_mentions" ("messagesId")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_29d63eb1a458200851bc37d074" ON "message_role_mentions" ("rolesId")
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_2a27102ecd1d81b4582a436092"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_bdb8c09e1464cabf62105bf4b9"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_message_channel_mentions" (
- "messagesId" varchar NOT NULL,
- "channelsId" varchar NOT NULL,
- CONSTRAINT "FK_2a27102ecd1d81b4582a4360921" FOREIGN KEY ("messagesId") REFERENCES "messages" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
- CONSTRAINT "FK_bdb8c09e1464cabf62105bf4b9d" FOREIGN KEY ("channelsId") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
- PRIMARY KEY ("messagesId", "channelsId")
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_message_channel_mentions"("messagesId", "channelsId")
- SELECT "messagesId",
- "channelsId"
- FROM "message_channel_mentions"
- `);
- await queryRunner.query(`
- DROP TABLE "message_channel_mentions"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_message_channel_mentions"
- RENAME TO "message_channel_mentions"
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_2a27102ecd1d81b4582a436092" ON "message_channel_mentions" ("messagesId")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_bdb8c09e1464cabf62105bf4b9" ON "message_channel_mentions" ("channelsId")
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_40bb6f23e7cc133292e92829d2"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_e22a70819d07659c7a71c112a1"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_message_stickers" (
- "messagesId" varchar NOT NULL,
- "stickersId" varchar NOT NULL,
- CONSTRAINT "FK_40bb6f23e7cc133292e92829d28" FOREIGN KEY ("messagesId") REFERENCES "messages" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
- CONSTRAINT "FK_e22a70819d07659c7a71c112a1f" FOREIGN KEY ("stickersId") REFERENCES "stickers" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
- PRIMARY KEY ("messagesId", "stickersId")
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_message_stickers"("messagesId", "stickersId")
- SELECT "messagesId",
- "stickersId"
- FROM "message_stickers"
- `);
- await queryRunner.query(`
- DROP TABLE "message_stickers"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_message_stickers"
- RENAME TO "message_stickers"
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_40bb6f23e7cc133292e92829d2" ON "message_stickers" ("messagesId")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_e22a70819d07659c7a71c112a1" ON "message_stickers" ("stickersId")
- `);
- await queryRunner.query(`
- CREATE TABLE "query-result-cache" (
- "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
- "identifier" varchar,
- "time" bigint NOT NULL,
- "duration" integer NOT NULL,
- "query" text NOT NULL,
- "result" text NOT NULL
- )
- `);
- }
-
- public async down(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- DROP TABLE "query-result-cache"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_e22a70819d07659c7a71c112a1"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_40bb6f23e7cc133292e92829d2"
- `);
- await queryRunner.query(`
- ALTER TABLE "message_stickers"
- RENAME TO "temporary_message_stickers"
- `);
- await queryRunner.query(`
- CREATE TABLE "message_stickers" (
- "messagesId" varchar NOT NULL,
- "stickersId" varchar NOT NULL,
- PRIMARY KEY ("messagesId", "stickersId")
- )
- `);
- await queryRunner.query(`
- INSERT INTO "message_stickers"("messagesId", "stickersId")
- SELECT "messagesId",
- "stickersId"
- FROM "temporary_message_stickers"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_message_stickers"
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_e22a70819d07659c7a71c112a1" ON "message_stickers" ("stickersId")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_40bb6f23e7cc133292e92829d2" ON "message_stickers" ("messagesId")
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_bdb8c09e1464cabf62105bf4b9"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_2a27102ecd1d81b4582a436092"
- `);
- await queryRunner.query(`
- ALTER TABLE "message_channel_mentions"
- RENAME TO "temporary_message_channel_mentions"
- `);
- await queryRunner.query(`
- CREATE TABLE "message_channel_mentions" (
- "messagesId" varchar NOT NULL,
- "channelsId" varchar NOT NULL,
- PRIMARY KEY ("messagesId", "channelsId")
- )
- `);
- await queryRunner.query(`
- INSERT INTO "message_channel_mentions"("messagesId", "channelsId")
- SELECT "messagesId",
- "channelsId"
- FROM "temporary_message_channel_mentions"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_message_channel_mentions"
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_bdb8c09e1464cabf62105bf4b9" ON "message_channel_mentions" ("channelsId")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_2a27102ecd1d81b4582a436092" ON "message_channel_mentions" ("messagesId")
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_29d63eb1a458200851bc37d074"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_a8242cf535337a490b0feaea0b"
- `);
- await queryRunner.query(`
- ALTER TABLE "message_role_mentions"
- RENAME TO "temporary_message_role_mentions"
- `);
- await queryRunner.query(`
- CREATE TABLE "message_role_mentions" (
- "messagesId" varchar NOT NULL,
- "rolesId" varchar NOT NULL,
- PRIMARY KEY ("messagesId", "rolesId")
- )
- `);
- await queryRunner.query(`
- INSERT INTO "message_role_mentions"("messagesId", "rolesId")
- SELECT "messagesId",
- "rolesId"
- FROM "temporary_message_role_mentions"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_message_role_mentions"
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_29d63eb1a458200851bc37d074" ON "message_role_mentions" ("rolesId")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_a8242cf535337a490b0feaea0b" ON "message_role_mentions" ("messagesId")
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_b831eb18ceebd28976239b1e2f"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_a343387fc560ef378760681c23"
- `);
- await queryRunner.query(`
- ALTER TABLE "message_user_mentions"
- RENAME TO "temporary_message_user_mentions"
- `);
- await queryRunner.query(`
- CREATE TABLE "message_user_mentions" (
- "messagesId" varchar NOT NULL,
- "usersId" varchar NOT NULL,
- PRIMARY KEY ("messagesId", "usersId")
- )
- `);
- await queryRunner.query(`
- INSERT INTO "message_user_mentions"("messagesId", "usersId")
- SELECT "messagesId",
- "usersId"
- FROM "temporary_message_user_mentions"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_message_user_mentions"
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_b831eb18ceebd28976239b1e2f" ON "message_user_mentions" ("usersId")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_a343387fc560ef378760681c23" ON "message_user_mentions" ("messagesId")
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_e9080e7a7997a0170026d5139c"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_5d7ddc8a5f9c167f548625e772"
- `);
- await queryRunner.query(`
- ALTER TABLE "member_roles"
- RENAME TO "temporary_member_roles"
- `);
- await queryRunner.query(`
- CREATE TABLE "member_roles" (
- "index" integer NOT NULL,
- "role_id" varchar NOT NULL,
- PRIMARY KEY ("index", "role_id")
- )
- `);
- await queryRunner.query(`
- INSERT INTO "member_roles"("index", "role_id")
- SELECT "index",
- "role_id"
- FROM "temporary_member_roles"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_member_roles"
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_e9080e7a7997a0170026d5139c" ON "member_roles" ("role_id")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_5d7ddc8a5f9c167f548625e772" ON "member_roles" ("index")
- `);
- await queryRunner.query(`
- ALTER TABLE "notes"
- RENAME TO "temporary_notes"
- `);
- await queryRunner.query(`
- CREATE TABLE "notes" (
- "id" varchar PRIMARY KEY NOT NULL,
- "content" varchar NOT NULL,
- "owner_id" varchar,
- "target_id" varchar,
- CONSTRAINT "UQ_74e6689b9568cc965b8bfc9150b" UNIQUE ("owner_id", "target_id")
- )
- `);
- await queryRunner.query(`
- INSERT INTO "notes"("id", "content", "owner_id", "target_id")
- SELECT "id",
- "content",
- "owner_id",
- "target_id"
- FROM "temporary_notes"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_notes"
- `);
- await queryRunner.query(`
- ALTER TABLE "sticker_packs"
- RENAME TO "temporary_sticker_packs"
- `);
- await queryRunner.query(`
- CREATE TABLE "sticker_packs" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "description" varchar,
- "banner_asset_id" varchar,
- "cover_sticker_id" varchar,
- "coverStickerId" varchar
- )
- `);
- await queryRunner.query(`
- INSERT INTO "sticker_packs"(
- "id",
- "name",
- "description",
- "banner_asset_id",
- "cover_sticker_id",
- "coverStickerId"
- )
- SELECT "id",
- "name",
- "description",
- "banner_asset_id",
- "cover_sticker_id",
- "coverStickerId"
- FROM "temporary_sticker_packs"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_sticker_packs"
- `);
- await queryRunner.query(`
- ALTER TABLE "sessions"
- RENAME TO "temporary_sessions"
- `);
- await queryRunner.query(`
- CREATE TABLE "sessions" (
- "id" varchar PRIMARY KEY NOT NULL,
- "user_id" varchar,
- "session_id" varchar NOT NULL,
- "activities" text,
- "client_info" text NOT NULL,
- "status" varchar NOT NULL
- )
- `);
- await queryRunner.query(`
- INSERT INTO "sessions"(
- "id",
- "user_id",
- "session_id",
- "activities",
- "client_info",
- "status"
- )
- SELECT "id",
- "user_id",
- "session_id",
- "activities",
- "client_info",
- "status"
- FROM "temporary_sessions"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_sessions"
- `);
- await queryRunner.query(`
- ALTER TABLE "audit_logs"
- RENAME TO "temporary_audit_logs"
- `);
- await queryRunner.query(`
- CREATE TABLE "audit_logs" (
- "id" varchar PRIMARY KEY NOT NULL,
- "user_id" varchar,
- "action_type" integer NOT NULL,
- "options" text,
- "changes" text NOT NULL,
- "reason" varchar,
- "target_id" varchar
- )
- `);
- await queryRunner.query(`
- INSERT INTO "audit_logs"(
- "id",
- "user_id",
- "action_type",
- "options",
- "changes",
- "reason",
- "target_id"
- )
- SELECT "id",
- "user_id",
- "action_type",
- "options",
- "changes",
- "reason",
- "target_id"
- FROM "temporary_audit_logs"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_audit_logs"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- RENAME TO "temporary_applications"
- `);
- await queryRunner.query(`
- CREATE TABLE "applications" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "icon" varchar,
- "description" varchar NOT NULL,
- "rpc_origins" text,
- "bot_public" boolean NOT NULL,
- "bot_require_code_grant" boolean NOT NULL,
- "terms_of_service_url" varchar,
- "privacy_policy_url" varchar,
- "summary" varchar,
- "verify_key" varchar NOT NULL,
- "primary_sku_id" varchar,
- "slug" varchar,
- "cover_image" varchar,
- "flags" varchar NOT NULL,
- "owner_id" varchar,
- "team_id" varchar,
- "guild_id" varchar
- )
- `);
- await queryRunner.query(`
- INSERT INTO "applications"(
- "id",
- "name",
- "icon",
- "description",
- "rpc_origins",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "primary_sku_id",
- "slug",
- "cover_image",
- "flags",
- "owner_id",
- "team_id",
- "guild_id"
- )
- SELECT "id",
- "name",
- "icon",
- "description",
- "rpc_origins",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "primary_sku_id",
- "slug",
- "cover_image",
- "flags",
- "owner_id",
- "team_id",
- "guild_id"
- FROM "temporary_applications"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_applications"
- `);
- await queryRunner.query(`
- ALTER TABLE "teams"
- RENAME TO "temporary_teams"
- `);
- await queryRunner.query(`
- CREATE TABLE "teams" (
- "id" varchar PRIMARY KEY NOT NULL,
- "icon" varchar,
- "name" varchar NOT NULL,
- "owner_user_id" varchar
- )
- `);
- await queryRunner.query(`
- INSERT INTO "teams"("id", "icon", "name", "owner_user_id")
- SELECT "id",
- "icon",
- "name",
- "owner_user_id"
- FROM "temporary_teams"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_teams"
- `);
- await queryRunner.query(`
- ALTER TABLE "team_members"
- RENAME TO "temporary_team_members"
- `);
- await queryRunner.query(`
- CREATE TABLE "team_members" (
- "id" varchar PRIMARY KEY NOT NULL,
- "membership_state" integer NOT NULL,
- "permissions" text NOT NULL,
- "team_id" varchar,
- "user_id" varchar
- )
- `);
- await queryRunner.query(`
- INSERT INTO "team_members"(
- "id",
- "membership_state",
- "permissions",
- "team_id",
- "user_id"
- )
- SELECT "id",
- "membership_state",
- "permissions",
- "team_id",
- "user_id"
- FROM "temporary_team_members"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_team_members"
- `);
- await queryRunner.query(`
- ALTER TABLE "guilds"
- RENAME TO "temporary_guilds"
- `);
- await queryRunner.query(`
- CREATE TABLE "guilds" (
- "id" varchar PRIMARY KEY NOT NULL,
- "afk_channel_id" varchar,
- "afk_timeout" integer,
- "banner" varchar,
- "default_message_notifications" integer,
- "description" varchar,
- "discovery_splash" varchar,
- "explicit_content_filter" integer,
- "features" text NOT NULL,
- "primary_category_id" integer,
- "icon" varchar,
- "large" boolean,
- "max_members" integer,
- "max_presences" integer,
- "max_video_channel_users" integer,
- "member_count" integer,
- "presence_count" integer,
- "template_id" varchar,
- "mfa_level" integer,
- "name" varchar NOT NULL,
- "owner_id" varchar,
- "preferred_locale" varchar,
- "premium_subscription_count" integer,
- "premium_tier" integer,
- "public_updates_channel_id" varchar,
- "rules_channel_id" varchar,
- "region" varchar,
- "splash" varchar,
- "system_channel_id" varchar,
- "system_channel_flags" integer,
- "unavailable" boolean,
- "verification_level" integer,
- "welcome_screen" text NOT NULL,
- "widget_channel_id" varchar,
- "widget_enabled" boolean,
- "nsfw_level" integer,
- "nsfw" boolean,
- "parent" varchar
- )
- `);
- await queryRunner.query(`
- INSERT INTO "guilds"(
- "id",
- "afk_channel_id",
- "afk_timeout",
- "banner",
- "default_message_notifications",
- "description",
- "discovery_splash",
- "explicit_content_filter",
- "features",
- "primary_category_id",
- "icon",
- "large",
- "max_members",
- "max_presences",
- "max_video_channel_users",
- "member_count",
- "presence_count",
- "template_id",
- "mfa_level",
- "name",
- "owner_id",
- "preferred_locale",
- "premium_subscription_count",
- "premium_tier",
- "public_updates_channel_id",
- "rules_channel_id",
- "region",
- "splash",
- "system_channel_id",
- "system_channel_flags",
- "unavailable",
- "verification_level",
- "welcome_screen",
- "widget_channel_id",
- "widget_enabled",
- "nsfw_level",
- "nsfw",
- "parent"
- )
- SELECT "id",
- "afk_channel_id",
- "afk_timeout",
- "banner",
- "default_message_notifications",
- "description",
- "discovery_splash",
- "explicit_content_filter",
- "features",
- "primary_category_id",
- "icon",
- "large",
- "max_members",
- "max_presences",
- "max_video_channel_users",
- "member_count",
- "presence_count",
- "template_id",
- "mfa_level",
- "name",
- "owner_id",
- "preferred_locale",
- "premium_subscription_count",
- "premium_tier",
- "public_updates_channel_id",
- "rules_channel_id",
- "region",
- "splash",
- "system_channel_id",
- "system_channel_flags",
- "unavailable",
- "verification_level",
- "welcome_screen",
- "widget_channel_id",
- "widget_enabled",
- "nsfw_level",
- "nsfw",
- "parent"
- FROM "temporary_guilds"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_guilds"
- `);
- await queryRunner.query(`
- ALTER TABLE "templates"
- RENAME TO "temporary_templates"
- `);
- await queryRunner.query(`
- CREATE TABLE "templates" (
- "id" varchar PRIMARY KEY NOT NULL,
- "code" varchar NOT NULL,
- "name" varchar NOT NULL,
- "description" varchar,
- "usage_count" integer,
- "creator_id" varchar,
- "created_at" datetime NOT NULL,
- "updated_at" datetime NOT NULL,
- "source_guild_id" varchar,
- "serialized_source_guild" text NOT NULL,
- CONSTRAINT "UQ_be38737bf339baf63b1daeffb55" UNIQUE ("code")
- )
- `);
- await queryRunner.query(`
- INSERT INTO "templates"(
- "id",
- "code",
- "name",
- "description",
- "usage_count",
- "creator_id",
- "created_at",
- "updated_at",
- "source_guild_id",
- "serialized_source_guild"
- )
- SELECT "id",
- "code",
- "name",
- "description",
- "usage_count",
- "creator_id",
- "created_at",
- "updated_at",
- "source_guild_id",
- "serialized_source_guild"
- FROM "temporary_templates"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_templates"
- `);
- await queryRunner.query(`
- ALTER TABLE "emojis"
- RENAME TO "temporary_emojis"
- `);
- await queryRunner.query(`
- CREATE TABLE "emojis" (
- "id" varchar PRIMARY KEY NOT NULL,
- "animated" boolean NOT NULL,
- "available" boolean NOT NULL,
- "guild_id" varchar NOT NULL,
- "user_id" varchar,
- "managed" boolean NOT NULL,
- "name" varchar NOT NULL,
- "require_colons" boolean NOT NULL,
- "roles" text NOT NULL,
- "groups" text
- )
- `);
- await queryRunner.query(`
- INSERT INTO "emojis"(
- "id",
- "animated",
- "available",
- "guild_id",
- "user_id",
- "managed",
- "name",
- "require_colons",
- "roles",
- "groups"
- )
- SELECT "id",
- "animated",
- "available",
- "guild_id",
- "user_id",
- "managed",
- "name",
- "require_colons",
- "roles",
- "groups"
- FROM "temporary_emojis"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_emojis"
- `);
- await queryRunner.query(`
- ALTER TABLE "channels"
- RENAME TO "temporary_channels"
- `);
- await queryRunner.query(`
- CREATE TABLE "channels" (
- "id" varchar PRIMARY KEY NOT NULL,
- "created_at" datetime NOT NULL,
- "name" varchar,
- "icon" text,
- "type" integer NOT NULL,
- "last_message_id" varchar,
- "guild_id" varchar,
- "parent_id" varchar,
- "owner_id" varchar,
- "last_pin_timestamp" integer,
- "default_auto_archive_duration" integer,
- "position" integer,
- "permission_overwrites" text,
- "video_quality_mode" integer,
- "bitrate" integer,
- "user_limit" integer,
- "nsfw" boolean,
- "rate_limit_per_user" integer,
- "topic" varchar,
- "retention_policy_id" varchar
- )
- `);
- await queryRunner.query(`
- INSERT INTO "channels"(
- "id",
- "created_at",
- "name",
- "icon",
- "type",
- "last_message_id",
- "guild_id",
- "parent_id",
- "owner_id",
- "last_pin_timestamp",
- "default_auto_archive_duration",
- "position",
- "permission_overwrites",
- "video_quality_mode",
- "bitrate",
- "user_limit",
- "nsfw",
- "rate_limit_per_user",
- "topic",
- "retention_policy_id"
- )
- SELECT "id",
- "created_at",
- "name",
- "icon",
- "type",
- "last_message_id",
- "guild_id",
- "parent_id",
- "owner_id",
- "last_pin_timestamp",
- "default_auto_archive_duration",
- "position",
- "permission_overwrites",
- "video_quality_mode",
- "bitrate",
- "user_limit",
- "nsfw",
- "rate_limit_per_user",
- "topic",
- "retention_policy_id"
- FROM "temporary_channels"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_channels"
- `);
- await queryRunner.query(`
- ALTER TABLE "voice_states"
- RENAME TO "temporary_voice_states"
- `);
- await queryRunner.query(`
- CREATE TABLE "voice_states" (
- "id" varchar PRIMARY KEY NOT NULL,
- "guild_id" varchar,
- "channel_id" varchar,
- "user_id" varchar,
- "session_id" varchar NOT NULL,
- "token" varchar,
- "deaf" boolean NOT NULL,
- "mute" boolean NOT NULL,
- "self_deaf" boolean NOT NULL,
- "self_mute" boolean NOT NULL,
- "self_stream" boolean,
- "self_video" boolean NOT NULL,
- "suppress" boolean NOT NULL,
- "request_to_speak_timestamp" datetime
- )
- `);
- await queryRunner.query(`
- INSERT INTO "voice_states"(
- "id",
- "guild_id",
- "channel_id",
- "user_id",
- "session_id",
- "token",
- "deaf",
- "mute",
- "self_deaf",
- "self_mute",
- "self_stream",
- "self_video",
- "suppress",
- "request_to_speak_timestamp"
- )
- SELECT "id",
- "guild_id",
- "channel_id",
- "user_id",
- "session_id",
- "token",
- "deaf",
- "mute",
- "self_deaf",
- "self_mute",
- "self_stream",
- "self_video",
- "suppress",
- "request_to_speak_timestamp"
- FROM "temporary_voice_states"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_voice_states"
- `);
- await queryRunner.query(`
- ALTER TABLE "invites"
- RENAME TO "temporary_invites"
- `);
- await queryRunner.query(`
- CREATE TABLE "invites" (
- "code" varchar PRIMARY KEY NOT NULL,
- "temporary" boolean NOT NULL,
- "uses" integer NOT NULL,
- "max_uses" integer NOT NULL,
- "max_age" integer NOT NULL,
- "created_at" datetime NOT NULL,
- "expires_at" datetime NOT NULL,
- "guild_id" varchar,
- "channel_id" varchar,
- "inviter_id" varchar,
- "target_user_id" varchar,
- "target_user_type" integer,
- "vanity_url" boolean
- )
- `);
- await queryRunner.query(`
- INSERT INTO "invites"(
- "code",
- "temporary",
- "uses",
- "max_uses",
- "max_age",
- "created_at",
- "expires_at",
- "guild_id",
- "channel_id",
- "inviter_id",
- "target_user_id",
- "target_user_type",
- "vanity_url"
- )
- SELECT "code",
- "temporary",
- "uses",
- "max_uses",
- "max_age",
- "created_at",
- "expires_at",
- "guild_id",
- "channel_id",
- "inviter_id",
- "target_user_id",
- "target_user_type",
- "vanity_url"
- FROM "temporary_invites"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_invites"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_0abf8b443321bd3cf7f81ee17a"
- `);
- await queryRunner.query(`
- ALTER TABLE "read_states"
- RENAME TO "temporary_read_states"
- `);
- await queryRunner.query(`
- CREATE TABLE "read_states" (
- "id" varchar PRIMARY KEY NOT NULL,
- "channel_id" varchar NOT NULL,
- "user_id" varchar NOT NULL,
- "last_message_id" varchar,
- "public_ack" varchar,
- "notifications_cursor" varchar,
- "last_pin_timestamp" datetime,
- "mention_count" integer
- )
- `);
- await queryRunner.query(`
- INSERT INTO "read_states"(
- "id",
- "channel_id",
- "user_id",
- "last_message_id",
- "public_ack",
- "notifications_cursor",
- "last_pin_timestamp",
- "mention_count"
- )
- SELECT "id",
- "channel_id",
- "user_id",
- "last_message_id",
- "public_ack",
- "notifications_cursor",
- "last_pin_timestamp",
- "mention_count"
- FROM "temporary_read_states"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_read_states"
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_0abf8b443321bd3cf7f81ee17a" ON "read_states" ("channel_id", "user_id")
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_05535bc695e9f7ee104616459d"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_86b9109b155eb70c0a2ca3b4b6"
- `);
- await queryRunner.query(`
- ALTER TABLE "messages"
- RENAME TO "temporary_messages"
- `);
- await queryRunner.query(`
- CREATE TABLE "messages" (
- "id" varchar PRIMARY KEY NOT NULL,
- "channel_id" varchar,
- "guild_id" varchar,
- "author_id" varchar,
- "member_id" varchar,
- "webhook_id" varchar,
- "application_id" varchar,
- "content" varchar,
- "timestamp" datetime NOT NULL DEFAULT (datetime('now')),
- "edited_timestamp" datetime,
- "tts" boolean,
- "mention_everyone" boolean,
- "embeds" text NOT NULL,
- "reactions" text NOT NULL,
- "nonce" text,
- "pinned" boolean,
- "type" integer NOT NULL,
- "activity" text,
- "flags" varchar,
- "message_reference" text,
- "interaction" text,
- "components" text,
- "message_reference_id" varchar
- )
- `);
- await queryRunner.query(`
- INSERT INTO "messages"(
- "id",
- "channel_id",
- "guild_id",
- "author_id",
- "member_id",
- "webhook_id",
- "application_id",
- "content",
- "timestamp",
- "edited_timestamp",
- "tts",
- "mention_everyone",
- "embeds",
- "reactions",
- "nonce",
- "pinned",
- "type",
- "activity",
- "flags",
- "message_reference",
- "interaction",
- "components",
- "message_reference_id"
- )
- SELECT "id",
- "channel_id",
- "guild_id",
- "author_id",
- "member_id",
- "webhook_id",
- "application_id",
- "content",
- "timestamp",
- "edited_timestamp",
- "tts",
- "mention_everyone",
- "embeds",
- "reactions",
- "nonce",
- "pinned",
- "type",
- "activity",
- "flags",
- "message_reference",
- "interaction",
- "components",
- "message_reference_id"
- FROM "temporary_messages"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_messages"
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b" ON "messages" ("channel_id", "id")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_05535bc695e9f7ee104616459d" ON "messages" ("author_id")
- `);
- await queryRunner.query(`
- CREATE INDEX "IDX_86b9109b155eb70c0a2ca3b4b6" ON "messages" ("channel_id")
- `);
- await queryRunner.query(`
- ALTER TABLE "attachments"
- RENAME TO "temporary_attachments"
- `);
- await queryRunner.query(`
- CREATE TABLE "attachments" (
- "id" varchar PRIMARY KEY NOT NULL,
- "filename" varchar NOT NULL,
- "size" integer NOT NULL,
- "url" varchar NOT NULL,
- "proxy_url" varchar NOT NULL,
- "height" integer,
- "width" integer,
- "content_type" varchar,
- "message_id" varchar
- )
- `);
- await queryRunner.query(`
- INSERT INTO "attachments"(
- "id",
- "filename",
- "size",
- "url",
- "proxy_url",
- "height",
- "width",
- "content_type",
- "message_id"
- )
- SELECT "id",
- "filename",
- "size",
- "url",
- "proxy_url",
- "height",
- "width",
- "content_type",
- "message_id"
- FROM "temporary_attachments"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_attachments"
- `);
- await queryRunner.query(`
- ALTER TABLE "stickers"
- RENAME TO "temporary_stickers"
- `);
- await queryRunner.query(`
- CREATE TABLE "stickers" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "description" varchar,
- "available" boolean,
- "tags" varchar,
- "pack_id" varchar,
- "guild_id" varchar,
- "user_id" varchar,
- "type" integer NOT NULL,
- "format_type" integer NOT NULL
- )
- `);
- await queryRunner.query(`
- INSERT INTO "stickers"(
- "id",
- "name",
- "description",
- "available",
- "tags",
- "pack_id",
- "guild_id",
- "user_id",
- "type",
- "format_type"
- )
- SELECT "id",
- "name",
- "description",
- "available",
- "tags",
- "pack_id",
- "guild_id",
- "user_id",
- "type",
- "format_type"
- FROM "temporary_stickers"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_stickers"
- `);
- await queryRunner.query(`
- ALTER TABLE "webhooks"
- RENAME TO "temporary_webhooks"
- `);
- await queryRunner.query(`
- CREATE TABLE "webhooks" (
- "id" varchar PRIMARY KEY NOT NULL,
- "type" integer NOT NULL,
- "name" varchar,
- "avatar" varchar,
- "token" varchar,
- "guild_id" varchar,
- "channel_id" varchar,
- "application_id" varchar,
- "user_id" varchar,
- "source_guild_id" varchar
- )
- `);
- await queryRunner.query(`
- INSERT INTO "webhooks"(
- "id",
- "type",
- "name",
- "avatar",
- "token",
- "guild_id",
- "channel_id",
- "application_id",
- "user_id",
- "source_guild_id"
- )
- SELECT "id",
- "type",
- "name",
- "avatar",
- "token",
- "guild_id",
- "channel_id",
- "application_id",
- "user_id",
- "source_guild_id"
- FROM "temporary_webhooks"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_webhooks"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3"
- `);
- await queryRunner.query(`
- ALTER TABLE "members"
- RENAME TO "temporary_members"
- `);
- await queryRunner.query(`
- CREATE TABLE "members" (
- "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
- "id" varchar NOT NULL,
- "guild_id" varchar NOT NULL,
- "nick" varchar,
- "joined_at" datetime NOT NULL,
- "premium_since" bigint,
- "deaf" boolean NOT NULL,
- "mute" boolean NOT NULL,
- "pending" boolean NOT NULL,
- "settings" text NOT NULL,
- "last_message_id" varchar,
- "joined_by" varchar
- )
- `);
- await queryRunner.query(`
- INSERT INTO "members"(
- "index",
- "id",
- "guild_id",
- "nick",
- "joined_at",
- "premium_since",
- "deaf",
- "mute",
- "pending",
- "settings",
- "last_message_id",
- "joined_by"
- )
- SELECT "index",
- "id",
- "guild_id",
- "nick",
- "joined_at",
- "premium_since",
- "deaf",
- "mute",
- "pending",
- "settings",
- "last_message_id",
- "joined_by"
- FROM "temporary_members"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_members"
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id")
- `);
- await queryRunner.query(`
- ALTER TABLE "roles"
- RENAME TO "temporary_roles"
- `);
- await queryRunner.query(`
- CREATE TABLE "roles" (
- "id" varchar PRIMARY KEY NOT NULL,
- "guild_id" varchar,
- "color" integer NOT NULL,
- "hoist" boolean NOT NULL,
- "managed" boolean NOT NULL,
- "mentionable" boolean NOT NULL,
- "name" varchar NOT NULL,
- "permissions" varchar NOT NULL,
- "position" integer NOT NULL,
- "icon" varchar,
- "unicode_emoji" varchar,
- "tags" text
- )
- `);
- await queryRunner.query(`
- INSERT INTO "roles"(
- "id",
- "guild_id",
- "color",
- "hoist",
- "managed",
- "mentionable",
- "name",
- "permissions",
- "position",
- "icon",
- "unicode_emoji",
- "tags"
- )
- SELECT "id",
- "guild_id",
- "color",
- "hoist",
- "managed",
- "mentionable",
- "name",
- "permissions",
- "position",
- "icon",
- "unicode_emoji",
- "tags"
- FROM "temporary_roles"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_roles"
- `);
- await queryRunner.query(`
- ALTER TABLE "recipients"
- RENAME TO "temporary_recipients"
- `);
- await queryRunner.query(`
- CREATE TABLE "recipients" (
- "id" varchar PRIMARY KEY NOT NULL,
- "channel_id" varchar NOT NULL,
- "user_id" varchar NOT NULL,
- "closed" boolean NOT NULL DEFAULT (0)
- )
- `);
- await queryRunner.query(`
- INSERT INTO "recipients"("id", "channel_id", "user_id", "closed")
- SELECT "id",
- "channel_id",
- "user_id",
- "closed"
- FROM "temporary_recipients"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_recipients"
- `);
- await queryRunner.query(`
- ALTER TABLE "bans"
- RENAME TO "temporary_bans"
- `);
- await queryRunner.query(`
- CREATE TABLE "bans" (
- "id" varchar PRIMARY KEY NOT NULL,
- "user_id" varchar,
- "guild_id" varchar,
- "executor_id" varchar,
- "ip" varchar NOT NULL,
- "reason" varchar
- )
- `);
- await queryRunner.query(`
- INSERT INTO "bans"(
- "id",
- "user_id",
- "guild_id",
- "executor_id",
- "ip",
- "reason"
- )
- SELECT "id",
- "user_id",
- "guild_id",
- "executor_id",
- "ip",
- "reason"
- FROM "temporary_bans"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_bans"
- `);
- await queryRunner.query(`
- ALTER TABLE "backup_codes"
- RENAME TO "temporary_backup_codes"
- `);
- await queryRunner.query(`
- CREATE TABLE "backup_codes" (
- "id" varchar PRIMARY KEY NOT NULL,
- "code" varchar NOT NULL,
- "consumed" boolean NOT NULL,
- "expired" boolean NOT NULL,
- "user_id" varchar
- )
- `);
- await queryRunner.query(`
- INSERT INTO "backup_codes"("id", "code", "consumed", "expired", "user_id")
- SELECT "id",
- "code",
- "consumed",
- "expired",
- "user_id"
- FROM "temporary_backup_codes"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_backup_codes"
- `);
- await queryRunner.query(`
- ALTER TABLE "connected_accounts"
- RENAME TO "temporary_connected_accounts"
- `);
- await queryRunner.query(`
- CREATE TABLE "connected_accounts" (
- "id" varchar PRIMARY KEY NOT NULL,
- "user_id" varchar,
- "access_token" varchar NOT NULL,
- "friend_sync" boolean NOT NULL,
- "name" varchar NOT NULL,
- "revoked" boolean NOT NULL,
- "show_activity" boolean NOT NULL,
- "type" varchar NOT NULL,
- "verified" boolean NOT NULL,
- "visibility" integer NOT NULL
- )
- `);
- await queryRunner.query(`
- INSERT INTO "connected_accounts"(
- "id",
- "user_id",
- "access_token",
- "friend_sync",
- "name",
- "revoked",
- "show_activity",
- "type",
- "verified",
- "visibility"
- )
- SELECT "id",
- "user_id",
- "access_token",
- "friend_sync",
- "name",
- "revoked",
- "show_activity",
- "type",
- "verified",
- "visibility"
- FROM "temporary_connected_accounts"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_connected_accounts"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_a0b2ff0a598df0b0d055934a17"
- `);
- await queryRunner.query(`
- ALTER TABLE "relationships"
- RENAME TO "temporary_relationships"
- `);
- await queryRunner.query(`
- CREATE TABLE "relationships" (
- "id" varchar PRIMARY KEY NOT NULL,
- "from_id" varchar NOT NULL,
- "to_id" varchar NOT NULL,
- "nickname" varchar,
- "type" integer NOT NULL
- )
- `);
- await queryRunner.query(`
- INSERT INTO "relationships"("id", "from_id", "to_id", "nickname", "type")
- SELECT "id",
- "from_id",
- "to_id",
- "nickname",
- "type"
- FROM "temporary_relationships"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_relationships"
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_a0b2ff0a598df0b0d055934a17" ON "relationships" ("from_id", "to_id")
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_e22a70819d07659c7a71c112a1"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_40bb6f23e7cc133292e92829d2"
- `);
- await queryRunner.query(`
- DROP TABLE "message_stickers"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_bdb8c09e1464cabf62105bf4b9"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_2a27102ecd1d81b4582a436092"
- `);
- await queryRunner.query(`
- DROP TABLE "message_channel_mentions"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_29d63eb1a458200851bc37d074"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_a8242cf535337a490b0feaea0b"
- `);
- await queryRunner.query(`
- DROP TABLE "message_role_mentions"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_b831eb18ceebd28976239b1e2f"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_a343387fc560ef378760681c23"
- `);
- await queryRunner.query(`
- DROP TABLE "message_user_mentions"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_e9080e7a7997a0170026d5139c"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_5d7ddc8a5f9c167f548625e772"
- `);
- await queryRunner.query(`
- DROP TABLE "member_roles"
- `);
- await queryRunner.query(`
- DROP TABLE "notes"
- `);
- await queryRunner.query(`
- DROP TABLE "client_release"
- `);
- await queryRunner.query(`
- DROP TABLE "sticker_packs"
- `);
- await queryRunner.query(`
- DROP TABLE "sessions"
- `);
- await queryRunner.query(`
- DROP TABLE "rate_limits"
- `);
- await queryRunner.query(`
- DROP TABLE "categories"
- `);
- await queryRunner.query(`
- DROP TABLE "audit_logs"
- `);
- await queryRunner.query(`
- DROP TABLE "applications"
- `);
- await queryRunner.query(`
- DROP TABLE "teams"
- `);
- await queryRunner.query(`
- DROP TABLE "team_members"
- `);
- await queryRunner.query(`
- DROP TABLE "guilds"
- `);
- await queryRunner.query(`
- DROP TABLE "templates"
- `);
- await queryRunner.query(`
- DROP TABLE "emojis"
- `);
- await queryRunner.query(`
- DROP TABLE "channels"
- `);
- await queryRunner.query(`
- DROP TABLE "voice_states"
- `);
- await queryRunner.query(`
- DROP TABLE "invites"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_0abf8b443321bd3cf7f81ee17a"
- `);
- await queryRunner.query(`
- DROP TABLE "read_states"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_05535bc695e9f7ee104616459d"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_86b9109b155eb70c0a2ca3b4b6"
- `);
- await queryRunner.query(`
- DROP TABLE "messages"
- `);
- await queryRunner.query(`
- DROP TABLE "attachments"
- `);
- await queryRunner.query(`
- DROP TABLE "stickers"
- `);
- await queryRunner.query(`
- DROP TABLE "webhooks"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3"
- `);
- await queryRunner.query(`
- DROP TABLE "members"
- `);
- await queryRunner.query(`
- DROP TABLE "roles"
- `);
- await queryRunner.query(`
- DROP TABLE "recipients"
- `);
- await queryRunner.query(`
- DROP TABLE "bans"
- `);
- await queryRunner.query(`
- DROP TABLE "backup_codes"
- `);
- await queryRunner.query(`
- DROP TABLE "users"
- `);
- await queryRunner.query(`
- DROP TABLE "connected_accounts"
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_a0b2ff0a598df0b0d055934a17"
- `);
- await queryRunner.query(`
- DROP TABLE "relationships"
- `);
- await queryRunner.query(`
- DROP TABLE "config"
- `);
- }
-
-}
diff --git a/util/src/migrations/sqlite/1659921722863-premium_since_as_date.ts b/util/src/migrations/sqlite/1659921722863-premium_since_as_date.ts
deleted file mode 100644
index 788be625..00000000
--- a/util/src/migrations/sqlite/1659921722863-premium_since_as_date.ts
+++ /dev/null
@@ -1,252 +0,0 @@
-import { MigrationInterface, QueryRunner } from "typeorm";
-
-export class premiumSinceAsDate1659921722863 implements MigrationInterface {
- name = 'premiumSinceAsDate1659921722863'
-
- public async up(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_members" (
- "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
- "id" varchar NOT NULL,
- "guild_id" varchar NOT NULL,
- "nick" varchar,
- "joined_at" datetime NOT NULL,
- "premium_since" bigint,
- "deaf" boolean NOT NULL,
- "mute" boolean NOT NULL,
- "pending" boolean NOT NULL,
- "settings" text NOT NULL,
- "last_message_id" varchar,
- "joined_by" varchar,
- CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_28b53062261b996d9c99fa12404" FOREIGN KEY ("id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_members"(
- "index",
- "id",
- "guild_id",
- "nick",
- "joined_at",
- "premium_since",
- "deaf",
- "mute",
- "pending",
- "settings",
- "last_message_id",
- "joined_by"
- )
- SELECT "index",
- "id",
- "guild_id",
- "nick",
- "joined_at",
- "premium_since",
- "deaf",
- "mute",
- "pending",
- "settings",
- "last_message_id",
- "joined_by"
- FROM "members"
- `);
- await queryRunner.query(`
- DROP TABLE "members"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_members"
- RENAME TO "members"
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id")
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_members" (
- "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
- "id" varchar NOT NULL,
- "guild_id" varchar NOT NULL,
- "nick" varchar,
- "joined_at" datetime NOT NULL,
- "premium_since" datetime,
- "deaf" boolean NOT NULL,
- "mute" boolean NOT NULL,
- "pending" boolean NOT NULL,
- "settings" text NOT NULL,
- "last_message_id" varchar,
- "joined_by" varchar,
- CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_28b53062261b996d9c99fa12404" FOREIGN KEY ("id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_members"(
- "index",
- "id",
- "guild_id",
- "nick",
- "joined_at",
- "premium_since",
- "deaf",
- "mute",
- "pending",
- "settings",
- "last_message_id",
- "joined_by"
- )
- SELECT "index",
- "id",
- "guild_id",
- "nick",
- "joined_at",
- "premium_since",
- "deaf",
- "mute",
- "pending",
- "settings",
- "last_message_id",
- "joined_by"
- FROM "members"
- `);
- await queryRunner.query(`
- DROP TABLE "members"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_members"
- RENAME TO "members"
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id")
- `);
- }
-
- public async down(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3"
- `);
- await queryRunner.query(`
- ALTER TABLE "members"
- RENAME TO "temporary_members"
- `);
- await queryRunner.query(`
- CREATE TABLE "members" (
- "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
- "id" varchar NOT NULL,
- "guild_id" varchar NOT NULL,
- "nick" varchar,
- "joined_at" datetime NOT NULL,
- "premium_since" bigint,
- "deaf" boolean NOT NULL,
- "mute" boolean NOT NULL,
- "pending" boolean NOT NULL,
- "settings" text NOT NULL,
- "last_message_id" varchar,
- "joined_by" varchar,
- CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_28b53062261b996d9c99fa12404" FOREIGN KEY ("id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "members"(
- "index",
- "id",
- "guild_id",
- "nick",
- "joined_at",
- "premium_since",
- "deaf",
- "mute",
- "pending",
- "settings",
- "last_message_id",
- "joined_by"
- )
- SELECT "index",
- "id",
- "guild_id",
- "nick",
- "joined_at",
- "premium_since",
- "deaf",
- "mute",
- "pending",
- "settings",
- "last_message_id",
- "joined_by"
- FROM "temporary_members"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_members"
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id")
- `);
- await queryRunner.query(`
- DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3"
- `);
- await queryRunner.query(`
- ALTER TABLE "members"
- RENAME TO "temporary_members"
- `);
- await queryRunner.query(`
- CREATE TABLE "members" (
- "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
- "id" varchar NOT NULL,
- "guild_id" varchar NOT NULL,
- "nick" varchar,
- "joined_at" datetime NOT NULL,
- "premium_since" bigint,
- "deaf" boolean NOT NULL,
- "mute" boolean NOT NULL,
- "pending" boolean NOT NULL,
- "settings" text NOT NULL,
- "last_message_id" varchar,
- "joined_by" varchar,
- CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_28b53062261b996d9c99fa12404" FOREIGN KEY ("id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "members"(
- "index",
- "id",
- "guild_id",
- "nick",
- "joined_at",
- "premium_since",
- "deaf",
- "mute",
- "pending",
- "settings",
- "last_message_id",
- "joined_by"
- )
- SELECT "index",
- "id",
- "guild_id",
- "nick",
- "joined_at",
- "premium_since",
- "deaf",
- "mute",
- "pending",
- "settings",
- "last_message_id",
- "joined_by"
- FROM "temporary_members"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_members"
- `);
- await queryRunner.query(`
- CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id")
- `);
- }
-
-}
diff --git a/util/src/migrations/sqlite/1660130536131-updated-applications.ts b/util/src/migrations/sqlite/1660130536131-updated-applications.ts
deleted file mode 100644
index b8cbcc33..00000000
--- a/util/src/migrations/sqlite/1660130536131-updated-applications.ts
+++ /dev/null
@@ -1,829 +0,0 @@
-import { MigrationInterface, QueryRunner } from "typeorm";
-
-export class updatedApplications1660130536131 implements MigrationInterface {
- name = 'updatedApplications1660130536131'
-
- public async up(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- CREATE TABLE "temporary_applications" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "icon" varchar,
- "description" varchar NOT NULL,
- "rpc_origins" text,
- "bot_public" boolean NOT NULL,
- "bot_require_code_grant" boolean NOT NULL,
- "terms_of_service_url" varchar,
- "privacy_policy_url" varchar,
- "summary" varchar,
- "verify_key" varchar NOT NULL,
- "primary_sku_id" varchar,
- "slug" varchar,
- "cover_image" varchar,
- "flags" varchar NOT NULL,
- "owner_id" varchar,
- "team_id" varchar,
- "guild_id" varchar,
- CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_applications"(
- "id",
- "name",
- "icon",
- "description",
- "rpc_origins",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "primary_sku_id",
- "slug",
- "cover_image",
- "flags",
- "owner_id",
- "team_id",
- "guild_id"
- )
- SELECT "id",
- "name",
- "icon",
- "description",
- "rpc_origins",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "primary_sku_id",
- "slug",
- "cover_image",
- "flags",
- "owner_id",
- "team_id",
- "guild_id"
- FROM "applications"
- `);
- await queryRunner.query(`
- DROP TABLE "applications"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_applications"
- RENAME TO "applications"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_applications" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "icon" varchar,
- "description" varchar NOT NULL,
- "bot_public" boolean NOT NULL,
- "bot_require_code_grant" boolean NOT NULL,
- "terms_of_service_url" varchar,
- "privacy_policy_url" varchar,
- "summary" varchar,
- "verify_key" varchar NOT NULL,
- "cover_image" varchar,
- "flags" varchar NOT NULL,
- "owner_id" varchar,
- "team_id" varchar,
- CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_applications"(
- "id",
- "name",
- "icon",
- "description",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "cover_image",
- "flags",
- "owner_id",
- "team_id"
- )
- SELECT "id",
- "name",
- "icon",
- "description",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "cover_image",
- "flags",
- "owner_id",
- "team_id"
- FROM "applications"
- `);
- await queryRunner.query(`
- DROP TABLE "applications"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_applications"
- RENAME TO "applications"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_applications" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "icon" varchar,
- "description" varchar NOT NULL,
- "bot_public" boolean NOT NULL,
- "bot_require_code_grant" boolean NOT NULL,
- "terms_of_service_url" varchar,
- "privacy_policy_url" varchar,
- "summary" varchar,
- "verify_key" varchar NOT NULL,
- "cover_image" varchar,
- "flags" varchar NOT NULL,
- "owner_id" varchar,
- "team_id" varchar,
- "type" text,
- "hook" boolean NOT NULL,
- "redirect_uris" text,
- "rpc_application_state" integer,
- "store_application_state" integer,
- "verification_state" integer,
- "interactions_endpoint_url" varchar,
- "integration_public" boolean,
- "integration_require_code_grant" boolean,
- "discoverability_state" integer,
- "discovery_eligibility_flags" integer,
- "tags" text,
- "install_params" text,
- "bot_user_id" varchar,
- CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"),
- CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_applications"(
- "id",
- "name",
- "icon",
- "description",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "cover_image",
- "flags",
- "owner_id",
- "team_id"
- )
- SELECT "id",
- "name",
- "icon",
- "description",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "cover_image",
- "flags",
- "owner_id",
- "team_id"
- FROM "applications"
- `);
- await queryRunner.query(`
- DROP TABLE "applications"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_applications"
- RENAME TO "applications"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_applications" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "icon" varchar,
- "description" varchar,
- "bot_public" boolean NOT NULL,
- "bot_require_code_grant" boolean NOT NULL,
- "terms_of_service_url" varchar,
- "privacy_policy_url" varchar,
- "summary" varchar,
- "verify_key" varchar NOT NULL,
- "cover_image" varchar,
- "flags" integer NOT NULL,
- "owner_id" varchar,
- "team_id" varchar,
- "type" text,
- "hook" boolean NOT NULL,
- "redirect_uris" text,
- "rpc_application_state" integer,
- "store_application_state" integer,
- "verification_state" integer,
- "interactions_endpoint_url" varchar,
- "integration_public" boolean,
- "integration_require_code_grant" boolean,
- "discoverability_state" integer,
- "discovery_eligibility_flags" integer,
- "tags" text,
- "install_params" text,
- "bot_user_id" varchar,
- CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"),
- CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_applications"(
- "id",
- "name",
- "icon",
- "description",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "cover_image",
- "flags",
- "owner_id",
- "team_id",
- "type",
- "hook",
- "redirect_uris",
- "rpc_application_state",
- "store_application_state",
- "verification_state",
- "interactions_endpoint_url",
- "integration_public",
- "integration_require_code_grant",
- "discoverability_state",
- "discovery_eligibility_flags",
- "tags",
- "install_params",
- "bot_user_id"
- )
- SELECT "id",
- "name",
- "icon",
- "description",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "cover_image",
- "flags",
- "owner_id",
- "team_id",
- "type",
- "hook",
- "redirect_uris",
- "rpc_application_state",
- "store_application_state",
- "verification_state",
- "interactions_endpoint_url",
- "integration_public",
- "integration_require_code_grant",
- "discoverability_state",
- "discovery_eligibility_flags",
- "tags",
- "install_params",
- "bot_user_id"
- FROM "applications"
- `);
- await queryRunner.query(`
- DROP TABLE "applications"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_applications"
- RENAME TO "applications"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_applications" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "icon" varchar,
- "description" varchar,
- "bot_public" boolean NOT NULL,
- "bot_require_code_grant" boolean NOT NULL,
- "terms_of_service_url" varchar,
- "privacy_policy_url" varchar,
- "summary" varchar,
- "verify_key" varchar NOT NULL,
- "cover_image" varchar,
- "flags" integer NOT NULL,
- "owner_id" varchar,
- "team_id" varchar,
- "type" text,
- "hook" boolean NOT NULL,
- "redirect_uris" text,
- "rpc_application_state" integer,
- "store_application_state" integer,
- "verification_state" integer,
- "interactions_endpoint_url" varchar,
- "integration_public" boolean,
- "integration_require_code_grant" boolean,
- "discoverability_state" integer,
- "discovery_eligibility_flags" integer,
- "tags" text,
- "install_params" text,
- "bot_user_id" varchar,
- CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"),
- CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
- CONSTRAINT "FK_2ce5a55796fe4c2f77ece57a647" FOREIGN KEY ("bot_user_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_applications"(
- "id",
- "name",
- "icon",
- "description",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "cover_image",
- "flags",
- "owner_id",
- "team_id",
- "type",
- "hook",
- "redirect_uris",
- "rpc_application_state",
- "store_application_state",
- "verification_state",
- "interactions_endpoint_url",
- "integration_public",
- "integration_require_code_grant",
- "discoverability_state",
- "discovery_eligibility_flags",
- "tags",
- "install_params",
- "bot_user_id"
- )
- SELECT "id",
- "name",
- "icon",
- "description",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "cover_image",
- "flags",
- "owner_id",
- "team_id",
- "type",
- "hook",
- "redirect_uris",
- "rpc_application_state",
- "store_application_state",
- "verification_state",
- "interactions_endpoint_url",
- "integration_public",
- "integration_require_code_grant",
- "discoverability_state",
- "discovery_eligibility_flags",
- "tags",
- "install_params",
- "bot_user_id"
- FROM "applications"
- `);
- await queryRunner.query(`
- DROP TABLE "applications"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_applications"
- RENAME TO "applications"
- `);
- }
-
- public async down(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- ALTER TABLE "applications"
- RENAME TO "temporary_applications"
- `);
- await queryRunner.query(`
- CREATE TABLE "applications" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "icon" varchar,
- "description" varchar,
- "bot_public" boolean NOT NULL,
- "bot_require_code_grant" boolean NOT NULL,
- "terms_of_service_url" varchar,
- "privacy_policy_url" varchar,
- "summary" varchar,
- "verify_key" varchar NOT NULL,
- "cover_image" varchar,
- "flags" integer NOT NULL,
- "owner_id" varchar,
- "team_id" varchar,
- "type" text,
- "hook" boolean NOT NULL,
- "redirect_uris" text,
- "rpc_application_state" integer,
- "store_application_state" integer,
- "verification_state" integer,
- "interactions_endpoint_url" varchar,
- "integration_public" boolean,
- "integration_require_code_grant" boolean,
- "discoverability_state" integer,
- "discovery_eligibility_flags" integer,
- "tags" text,
- "install_params" text,
- "bot_user_id" varchar,
- CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"),
- CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "applications"(
- "id",
- "name",
- "icon",
- "description",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "cover_image",
- "flags",
- "owner_id",
- "team_id",
- "type",
- "hook",
- "redirect_uris",
- "rpc_application_state",
- "store_application_state",
- "verification_state",
- "interactions_endpoint_url",
- "integration_public",
- "integration_require_code_grant",
- "discoverability_state",
- "discovery_eligibility_flags",
- "tags",
- "install_params",
- "bot_user_id"
- )
- SELECT "id",
- "name",
- "icon",
- "description",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "cover_image",
- "flags",
- "owner_id",
- "team_id",
- "type",
- "hook",
- "redirect_uris",
- "rpc_application_state",
- "store_application_state",
- "verification_state",
- "interactions_endpoint_url",
- "integration_public",
- "integration_require_code_grant",
- "discoverability_state",
- "discovery_eligibility_flags",
- "tags",
- "install_params",
- "bot_user_id"
- FROM "temporary_applications"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_applications"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- RENAME TO "temporary_applications"
- `);
- await queryRunner.query(`
- CREATE TABLE "applications" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "icon" varchar,
- "description" varchar NOT NULL,
- "bot_public" boolean NOT NULL,
- "bot_require_code_grant" boolean NOT NULL,
- "terms_of_service_url" varchar,
- "privacy_policy_url" varchar,
- "summary" varchar,
- "verify_key" varchar NOT NULL,
- "cover_image" varchar,
- "flags" varchar NOT NULL,
- "owner_id" varchar,
- "team_id" varchar,
- "type" text,
- "hook" boolean NOT NULL,
- "redirect_uris" text,
- "rpc_application_state" integer,
- "store_application_state" integer,
- "verification_state" integer,
- "interactions_endpoint_url" varchar,
- "integration_public" boolean,
- "integration_require_code_grant" boolean,
- "discoverability_state" integer,
- "discovery_eligibility_flags" integer,
- "tags" text,
- "install_params" text,
- "bot_user_id" varchar,
- CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"),
- CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "applications"(
- "id",
- "name",
- "icon",
- "description",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "cover_image",
- "flags",
- "owner_id",
- "team_id",
- "type",
- "hook",
- "redirect_uris",
- "rpc_application_state",
- "store_application_state",
- "verification_state",
- "interactions_endpoint_url",
- "integration_public",
- "integration_require_code_grant",
- "discoverability_state",
- "discovery_eligibility_flags",
- "tags",
- "install_params",
- "bot_user_id"
- )
- SELECT "id",
- "name",
- "icon",
- "description",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "cover_image",
- "flags",
- "owner_id",
- "team_id",
- "type",
- "hook",
- "redirect_uris",
- "rpc_application_state",
- "store_application_state",
- "verification_state",
- "interactions_endpoint_url",
- "integration_public",
- "integration_require_code_grant",
- "discoverability_state",
- "discovery_eligibility_flags",
- "tags",
- "install_params",
- "bot_user_id"
- FROM "temporary_applications"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_applications"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- RENAME TO "temporary_applications"
- `);
- await queryRunner.query(`
- CREATE TABLE "applications" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "icon" varchar,
- "description" varchar NOT NULL,
- "bot_public" boolean NOT NULL,
- "bot_require_code_grant" boolean NOT NULL,
- "terms_of_service_url" varchar,
- "privacy_policy_url" varchar,
- "summary" varchar,
- "verify_key" varchar NOT NULL,
- "cover_image" varchar,
- "flags" varchar NOT NULL,
- "owner_id" varchar,
- "team_id" varchar,
- CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "applications"(
- "id",
- "name",
- "icon",
- "description",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "cover_image",
- "flags",
- "owner_id",
- "team_id"
- )
- SELECT "id",
- "name",
- "icon",
- "description",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "cover_image",
- "flags",
- "owner_id",
- "team_id"
- FROM "temporary_applications"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_applications"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- RENAME TO "temporary_applications"
- `);
- await queryRunner.query(`
- CREATE TABLE "applications" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "icon" varchar,
- "description" varchar NOT NULL,
- "rpc_origins" text,
- "bot_public" boolean NOT NULL,
- "bot_require_code_grant" boolean NOT NULL,
- "terms_of_service_url" varchar,
- "privacy_policy_url" varchar,
- "summary" varchar,
- "verify_key" varchar NOT NULL,
- "primary_sku_id" varchar,
- "slug" varchar,
- "cover_image" varchar,
- "flags" varchar NOT NULL,
- "owner_id" varchar,
- "team_id" varchar,
- "guild_id" varchar,
- CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "applications"(
- "id",
- "name",
- "icon",
- "description",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "cover_image",
- "flags",
- "owner_id",
- "team_id"
- )
- SELECT "id",
- "name",
- "icon",
- "description",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "cover_image",
- "flags",
- "owner_id",
- "team_id"
- FROM "temporary_applications"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_applications"
- `);
- await queryRunner.query(`
- ALTER TABLE "applications"
- RENAME TO "temporary_applications"
- `);
- await queryRunner.query(`
- CREATE TABLE "applications" (
- "id" varchar PRIMARY KEY NOT NULL,
- "name" varchar NOT NULL,
- "icon" varchar,
- "description" varchar NOT NULL,
- "rpc_origins" text,
- "bot_public" boolean NOT NULL,
- "bot_require_code_grant" boolean NOT NULL,
- "terms_of_service_url" varchar,
- "privacy_policy_url" varchar,
- "summary" varchar,
- "verify_key" varchar NOT NULL,
- "primary_sku_id" varchar,
- "slug" varchar,
- "cover_image" varchar,
- "flags" varchar NOT NULL,
- "owner_id" varchar,
- "team_id" varchar,
- "guild_id" varchar,
- CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
- CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "applications"(
- "id",
- "name",
- "icon",
- "description",
- "rpc_origins",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "primary_sku_id",
- "slug",
- "cover_image",
- "flags",
- "owner_id",
- "team_id",
- "guild_id"
- )
- SELECT "id",
- "name",
- "icon",
- "description",
- "rpc_origins",
- "bot_public",
- "bot_require_code_grant",
- "terms_of_service_url",
- "privacy_policy_url",
- "summary",
- "verify_key",
- "primary_sku_id",
- "slug",
- "cover_image",
- "flags",
- "owner_id",
- "team_id",
- "guild_id"
- FROM "temporary_applications"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_applications"
- `);
- }
-
-}
diff --git a/util/src/migrations/sqlite/1660416010862-InvitersAreDeletable.ts b/util/src/migrations/sqlite/1660416010862-InvitersAreDeletable.ts
deleted file mode 100644
index 9b29e119..00000000
--- a/util/src/migrations/sqlite/1660416010862-InvitersAreDeletable.ts
+++ /dev/null
@@ -1,246 +0,0 @@
-import { MigrationInterface, QueryRunner } from "typeorm";
-
-export class InvitersAreDeletable1660416010862 implements MigrationInterface {
- name = 'InvitersAreDeletable1660416010862'
-
- public async up(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- CREATE TABLE "temporary_invites" (
- "code" varchar PRIMARY KEY NOT NULL,
- "temporary" boolean NOT NULL,
- "uses" integer NOT NULL,
- "max_uses" integer NOT NULL,
- "max_age" integer NOT NULL,
- "created_at" datetime NOT NULL,
- "expires_at" datetime NOT NULL,
- "guild_id" varchar,
- "channel_id" varchar,
- "inviter_id" varchar,
- "target_user_id" varchar,
- "target_user_type" integer,
- "vanity_url" boolean,
- CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" FOREIGN KEY ("target_user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_invites"(
- "code",
- "temporary",
- "uses",
- "max_uses",
- "max_age",
- "created_at",
- "expires_at",
- "guild_id",
- "channel_id",
- "inviter_id",
- "target_user_id",
- "target_user_type",
- "vanity_url"
- )
- SELECT "code",
- "temporary",
- "uses",
- "max_uses",
- "max_age",
- "created_at",
- "expires_at",
- "guild_id",
- "channel_id",
- "inviter_id",
- "target_user_id",
- "target_user_type",
- "vanity_url"
- FROM "invites"
- `);
- await queryRunner.query(`
- DROP TABLE "invites"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_invites"
- RENAME TO "invites"
- `);
- await queryRunner.query(`
- CREATE TABLE "temporary_invites" (
- "code" varchar PRIMARY KEY NOT NULL,
- "temporary" boolean NOT NULL,
- "uses" integer NOT NULL,
- "max_uses" integer NOT NULL,
- "max_age" integer NOT NULL,
- "created_at" datetime NOT NULL,
- "expires_at" datetime NOT NULL,
- "guild_id" varchar,
- "channel_id" varchar,
- "inviter_id" varchar,
- "target_user_id" varchar,
- "target_user_type" integer,
- "vanity_url" boolean,
- CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" FOREIGN KEY ("target_user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" FOREIGN KEY ("inviter_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "temporary_invites"(
- "code",
- "temporary",
- "uses",
- "max_uses",
- "max_age",
- "created_at",
- "expires_at",
- "guild_id",
- "channel_id",
- "inviter_id",
- "target_user_id",
- "target_user_type",
- "vanity_url"
- )
- SELECT "code",
- "temporary",
- "uses",
- "max_uses",
- "max_age",
- "created_at",
- "expires_at",
- "guild_id",
- "channel_id",
- "inviter_id",
- "target_user_id",
- "target_user_type",
- "vanity_url"
- FROM "invites"
- `);
- await queryRunner.query(`
- DROP TABLE "invites"
- `);
- await queryRunner.query(`
- ALTER TABLE "temporary_invites"
- RENAME TO "invites"
- `);
- }
-
- public async down(queryRunner: QueryRunner): Promise<void> {
- await queryRunner.query(`
- ALTER TABLE "invites"
- RENAME TO "temporary_invites"
- `);
- await queryRunner.query(`
- CREATE TABLE "invites" (
- "code" varchar PRIMARY KEY NOT NULL,
- "temporary" boolean NOT NULL,
- "uses" integer NOT NULL,
- "max_uses" integer NOT NULL,
- "max_age" integer NOT NULL,
- "created_at" datetime NOT NULL,
- "expires_at" datetime NOT NULL,
- "guild_id" varchar,
- "channel_id" varchar,
- "inviter_id" varchar,
- "target_user_id" varchar,
- "target_user_type" integer,
- "vanity_url" boolean,
- CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" FOREIGN KEY ("target_user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "invites"(
- "code",
- "temporary",
- "uses",
- "max_uses",
- "max_age",
- "created_at",
- "expires_at",
- "guild_id",
- "channel_id",
- "inviter_id",
- "target_user_id",
- "target_user_type",
- "vanity_url"
- )
- SELECT "code",
- "temporary",
- "uses",
- "max_uses",
- "max_age",
- "created_at",
- "expires_at",
- "guild_id",
- "channel_id",
- "inviter_id",
- "target_user_id",
- "target_user_type",
- "vanity_url"
- FROM "temporary_invites"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_invites"
- `);
- await queryRunner.query(`
- ALTER TABLE "invites"
- RENAME TO "temporary_invites"
- `);
- await queryRunner.query(`
- CREATE TABLE "invites" (
- "code" varchar PRIMARY KEY NOT NULL,
- "temporary" boolean NOT NULL,
- "uses" integer NOT NULL,
- "max_uses" integer NOT NULL,
- "max_age" integer NOT NULL,
- "created_at" datetime NOT NULL,
- "expires_at" datetime NOT NULL,
- "guild_id" varchar,
- "channel_id" varchar,
- "inviter_id" varchar,
- "target_user_id" varchar,
- "target_user_type" integer,
- "vanity_url" boolean,
- CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" FOREIGN KEY ("target_user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" FOREIGN KEY ("inviter_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION,
- CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION,
- CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION
- )
- `);
- await queryRunner.query(`
- INSERT INTO "invites"(
- "code",
- "temporary",
- "uses",
- "max_uses",
- "max_age",
- "created_at",
- "expires_at",
- "guild_id",
- "channel_id",
- "inviter_id",
- "target_user_id",
- "target_user_type",
- "vanity_url"
- )
- SELECT "code",
- "temporary",
- "uses",
- "max_uses",
- "max_age",
- "created_at",
- "expires_at",
- "guild_id",
- "channel_id",
- "inviter_id",
- "target_user_id",
- "target_user_type",
- "vanity_url"
- FROM "temporary_invites"
- `);
- await queryRunner.query(`
- DROP TABLE "temporary_invites"
- `);
- }
-
-}
diff --git a/util/src/util/ApiError.ts b/util/src/util/ApiError.ts
deleted file mode 100644
index f1a9b4f6..00000000
--- a/util/src/util/ApiError.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-export class ApiError extends Error {
- constructor(
- readonly message: string,
- public readonly code: number,
- public readonly httpStatus: number = 400,
- public readonly defaultParams?: string[]
- ) {
- super(message);
- }
-
- withDefaultParams(): ApiError {
- if (this.defaultParams)
- return new ApiError(applyParamsToString(this.message, this.defaultParams), this.code, this.httpStatus);
- return this;
- }
-
- withParams(...params: (string | number)[]): ApiError {
- return new ApiError(applyParamsToString(this.message, params), this.code, this.httpStatus);
- }
-}
-
-export function applyParamsToString(s: string, params: (string | number)[]): string {
- let newString = s;
- params.forEach((a) => {
- newString = newString.replace("{}", "" + a);
- });
- return newString;
-}
diff --git a/util/src/util/Array.ts b/util/src/util/Array.ts
deleted file mode 100644
index 5a45d1b5..00000000
--- a/util/src/util/Array.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export function containsAll(arr: any[], target: any[]) {
- return target.every((v) => arr.includes(v));
-}
diff --git a/util/src/util/AutoUpdate.ts b/util/src/util/AutoUpdate.ts
deleted file mode 100644
index 7d020106..00000000
--- a/util/src/util/AutoUpdate.ts
+++ /dev/null
@@ -1,83 +0,0 @@
-import fetch from "node-fetch";
-import ProxyAgent from 'proxy-agent';
-import readline from "readline";
-import fs from "fs/promises";
-import path from "path";
-
-const rl = readline.createInterface({
- input: process.stdin,
- output: process.stdout,
-});
-
-export function enableAutoUpdate(opts: {
- checkInterval: number | boolean;
- packageJsonLink: string;
- path: string;
- downloadUrl: string;
- downloadType?: "zip";
-}) {
- if (!opts.checkInterval) return;
- let interval = 1000 * 60 * 60 * 24;
- if (typeof opts.checkInterval === "number") opts.checkInterval = 1000 * interval;
-
- const i = setInterval(async () => {
- const currentVersion = await getCurrentVersion(opts.path);
- const latestVersion = await getLatestVersion(opts.packageJsonLink);
- if (currentVersion !== latestVersion) {
- clearInterval(i);
- console.log(`[Auto Update] Current version (${currentVersion}) is out of date, updating ...`);
- await download(opts.downloadUrl, opts.path);
- }
- }, interval);
- setImmediate(async () => {
- const currentVersion = await getCurrentVersion(opts.path);
- const latestVersion = await getLatestVersion(opts.packageJsonLink);
- if (currentVersion !== latestVersion) {
- rl.question(
- `[Auto Update] Current version (${currentVersion}) is out of date, would you like to update? (yes/no)`,
- (answer) => {
- if (answer.toBoolean()) {
- console.log(`[Auto update] updating ...`);
- download(opts.downloadUrl, opts.path);
- } else {
- console.log(`[Auto update] aborted`);
- }
- }
- );
- }
- });
-}
-
-async function download(url: string, dir: string) {
- try {
- // TODO: use file stream instead of buffer (to prevent crash because of high memory usage for big files)
- // TODO check file hash
- const agent = new ProxyAgent();
- const response = await fetch(url, { agent });
- const buffer = await response.buffer();
- const tempDir = await fs.mkdtemp("fosscord");
- fs.writeFile(path.join(tempDir, "Fosscord.zip"), buffer);
- } catch (error) {
- console.error(`[Auto Update] download failed`, error);
- }
-}
-
-async function getCurrentVersion(dir: string) {
- try {
- const content = await fs.readFile(path.join(dir, "package.json"), { encoding: "utf8" });
- return JSON.parse(content).version;
- } catch (error) {
- throw new Error("[Auto update] couldn't get current version in " + dir);
- }
-}
-
-async function getLatestVersion(url: string) {
- try {
- const agent = new ProxyAgent();
- const response = await fetch(url, { agent });
- const content: any = await response.json();
- return content.version;
- } catch (error) {
- throw new Error("[Auto update] check failed for " + url);
- }
-}
diff --git a/util/src/util/BitField.ts b/util/src/util/BitField.ts
deleted file mode 100644
index 9bdbf6d7..00000000
--- a/util/src/util/BitField.ts
+++ /dev/null
@@ -1,150 +0,0 @@
-"use strict";
-
-// https://github.com/discordjs/discord.js/blob/master/src/util/BitField.js
-// Apache License Version 2.0 Copyright 2015 - 2021 Amish Shah
-
-export type BitFieldResolvable = number | BigInt | BitField | string | BitFieldResolvable[];
-
-/**
- * Data structure that makes it easy to interact with a bitfield.
- */
-export class BitField {
- public bitfield: bigint = BigInt(0);
-
- public static FLAGS: Record<string, bigint> = {};
-
- constructor(bits: BitFieldResolvable = 0) {
- this.bitfield = BitField.resolve.call(this, bits);
- }
-
- /**
- * Checks whether the bitfield has a bit, or any of multiple bits.
- */
- any(bit: BitFieldResolvable): boolean {
- return (this.bitfield & BitField.resolve.call(this, bit)) !== BigInt(0);
- }
-
- /**
- * Checks if this bitfield equals another
- */
- equals(bit: BitFieldResolvable): boolean {
- return this.bitfield === BitField.resolve.call(this, bit);
- }
-
- /**
- * Checks whether the bitfield has a bit, or multiple bits.
- */
- has(bit: BitFieldResolvable): boolean {
- if (Array.isArray(bit)) return bit.every((p) => this.has(p));
- const BIT = BitField.resolve.call(this, bit);
- return (this.bitfield & BIT) === BIT;
- }
-
- /**
- * Gets all given bits that are missing from the bitfield.
- */
- missing(bits: BitFieldResolvable) {
- if (!Array.isArray(bits)) bits = new BitField(bits).toArray();
- return bits.filter((p) => !this.has(p));
- }
-
- /**
- * Freezes these bits, making them immutable.
- */
- freeze(): Readonly<BitField> {
- return Object.freeze(this);
- }
-
- /**
- * Adds bits to these ones.
- * @param {...BitFieldResolvable} [bits] Bits to add
- * @returns {BitField} These bits or new BitField if the instance is frozen.
- */
- add(...bits: BitFieldResolvable[]): BitField {
- let total = BigInt(0);
- for (const bit of bits) {
- total |= BitField.resolve.call(this, bit);
- }
- if (Object.isFrozen(this)) return new BitField(this.bitfield | total);
- this.bitfield |= total;
- return this;
- }
-
- /**
- * Removes bits from these.
- * @param {...BitFieldResolvable} [bits] Bits to remove
- */
- remove(...bits: BitFieldResolvable[]) {
- let total = BigInt(0);
- for (const bit of bits) {
- total |= BitField.resolve.call(this, bit);
- }
- if (Object.isFrozen(this)) return new BitField(this.bitfield & ~total);
- this.bitfield &= ~total;
- return this;
- }
-
- /**
- * Gets an object mapping field names to a {@link boolean} indicating whether the
- * bit is available.
- * @param {...*} hasParams Additional parameters for the has method, if any
- */
- serialize() {
- const serialized: Record<string, boolean> = {};
- for (const [flag, bit] of Object.entries(BitField.FLAGS)) serialized[flag] = this.has(bit);
- return serialized;
- }
-
- /**
- * Gets an {@link Array} of bitfield names based on the bits available.
- */
- toArray(): string[] {
- return Object.keys(BitField.FLAGS).filter((bit) => this.has(bit));
- }
-
- toJSON() {
- return this.bitfield;
- }
-
- valueOf() {
- return this.bitfield;
- }
-
- *[Symbol.iterator]() {
- yield* this.toArray();
- }
-
- /**
- * Data that can be resolved to give a bitfield. This can be:
- * * A bit number (this can be a number literal or a value taken from {@link BitField.FLAGS})
- * * An instance of BitField
- * * An Array of BitFieldResolvable
- * @typedef {number|BitField|BitFieldResolvable[]} BitFieldResolvable
- */
-
- /**
- * Resolves bitfields to their numeric form.
- * @param {BitFieldResolvable} [bit=0] - bit(s) to resolve
- * @returns {number}
- */
- static resolve(bit: BitFieldResolvable = BigInt(0)): bigint {
- // @ts-ignore
- const FLAGS = this.FLAGS || this.constructor?.FLAGS;
- if ((typeof bit === "number" || typeof bit === "bigint") && bit >= BigInt(0)) return BigInt(bit);
- if (bit instanceof BitField) return bit.bitfield;
- if (Array.isArray(bit)) {
- // @ts-ignore
- const resolve = this.constructor?.resolve || this.resolve;
- return bit.map((p) => resolve.call(this, p)).reduce((prev, p) => BigInt(prev) | BigInt(p), BigInt(0));
- }
- if (typeof bit === "string" && typeof FLAGS[bit] !== "undefined") return FLAGS[bit];
- if (bit === "0") return BigInt(0); //special case: 0
- if (typeof bit === "string") return BigInt(bit); //last ditch effort...
- if(/--debug|--inspect/.test(process.execArgv.join(' '))) debugger; //if you're here, we have an invalid bitfield... if bit is 0, thats fine, I guess...
- throw new RangeError("BITFIELD_INVALID: " + bit);
- }
-}
-
-export function BitFlag(x: bigint | number) {
- return BigInt(1) << BigInt(x);
-}
diff --git a/util/src/util/Categories.ts b/util/src/util/Categories.ts
deleted file mode 100644
index a3c69da7..00000000
--- a/util/src/util/Categories.ts
+++ /dev/null
@@ -1 +0,0 @@
-//TODO: populate default discord categories + init, get and set methods
\ No newline at end of file
diff --git a/util/src/util/Config.ts b/util/src/util/Config.ts
deleted file mode 100644
index 97a73858..00000000
--- a/util/src/util/Config.ts
+++ /dev/null
@@ -1,80 +0,0 @@
-import { ConfigValue, ConfigEntity, DefaultConfigOptions } from "../entities/Config";
-import path from "path";
-import fs from "fs";
-
-// TODO: yaml instead of json
-// const overridePath = path.join(process.cwd(), "config.json");
-
-let config: ConfigValue;
-let pairs: ConfigEntity[];
-
-// TODO: use events to inform about config updates
-// Config keys are separated with _
-
-export const Config = {
- init: async function init() {
- if (config) return config;
- pairs = await ConfigEntity.find();
- config = pairsToConfig(pairs);
- config = (config || {}).merge(DefaultConfigOptions);
-
- // try {
- // const overrideConfig = JSON.parse(fs.readFileSync(overridePath, { encoding: "utf8" }));
- // config = overrideConfig.merge(config);
- // } catch (error) {
- // fs.writeFileSync(overridePath, JSON.stringify(config, null, 4));
- // }
-
- return this.set(config);
- },
- get: function get() {
- return config;
- },
- set: function set(val: Partial<ConfigValue>) {
- if (!config || !val) return;
- config = val.merge(config);
-
- return applyConfig(config);
- },
-};
-
-function applyConfig(val: ConfigValue) {
- async function apply(obj: any, key = ""): Promise<any> {
- if (typeof obj === "object" && obj !== null)
- return Promise.all(Object.keys(obj).map((k) => apply(obj[k], key ? `${key}_${k}` : k)));
-
- let pair = pairs.find((x) => x.key === key);
- if (!pair) pair = new ConfigEntity();
-
- pair.key = key;
- pair.value = obj;
- return pair.save();
- }
- // fs.writeFileSync(overridePath, JSON.stringify(val, null, 4));
-
- return apply(val);
-}
-
-function pairsToConfig(pairs: ConfigEntity[]) {
- let value: any = {};
-
- pairs.forEach((p) => {
- const keys = p.key.split("_");
- let obj = value;
- let prev = "";
- let prevObj = obj;
- let i = 0;
-
- for (const key of keys) {
- if (!isNaN(Number(key)) && !prevObj[prev]?.length) prevObj[prev] = obj = [];
- if (i++ === keys.length - 1) obj[key] = p.value;
- else if (!obj[key]) obj[key] = {};
-
- prev = key;
- prevObj = obj;
- obj = obj[key];
- }
- });
-
- return value as ConfigValue;
-}
diff --git a/util/src/util/Constants.ts b/util/src/util/Constants.ts
deleted file mode 100644
index a5d3fcd2..00000000
--- a/util/src/util/Constants.ts
+++ /dev/null
@@ -1,792 +0,0 @@
-import { ApiError } from "./ApiError";
-
-export const WSCodes = {
- 1000: "WS_CLOSE_REQUESTED",
- 4004: "TOKEN_INVALID",
- 4010: "SHARDING_INVALID",
- 4011: "SHARDING_REQUIRED",
- 4013: "INVALID_INTENTS",
- 4014: "DISALLOWED_INTENTS",
-};
-
-/**
- * The current status of the client. Here are the available statuses:
- * * READY: 0
- * * CONNECTING: 1
- * * RECONNECTING: 2
- * * IDLE: 3
- * * NEARLY: 4
- * * DISCONNECTED: 5
- * * WAITING_FOR_GUILDS: 6
- * * IDENTIFYING: 7
- * * RESUMING: 8
- * @typedef {number} Status
- */
-export const WsStatus = {
- READY: 0,
- CONNECTING: 1,
- RECONNECTING: 2,
- IDLE: 3,
- NEARLY: 4,
- DISCONNECTED: 5,
- WAITING_FOR_GUILDS: 6,
- IDENTIFYING: 7,
- RESUMING: 8,
-};
-
-/**
- * The current status of a voice connection. Here are the available statuses:
- * * CONNECTED: 0
- * * CONNECTING: 1
- * * AUTHENTICATING: 2
- * * RECONNECTING: 3
- * * DISCONNECTED: 4
- * @typedef {number} VoiceStatus
- */
-export const VoiceStatus = {
- CONNECTED: 0,
- CONNECTING: 1,
- AUTHENTICATING: 2,
- RECONNECTING: 3,
- DISCONNECTED: 4,
-};
-
-export const OPCodes = {
- DISPATCH: 0,
- HEARTBEAT: 1,
- IDENTIFY: 2,
- STATUS_UPDATE: 3,
- VOICE_STATE_UPDATE: 4,
- VOICE_GUILD_PING: 5,
- RESUME: 6,
- RECONNECT: 7,
- REQUEST_GUILD_MEMBERS: 8,
- INVALID_SESSION: 9,
- HELLO: 10,
- HEARTBEAT_ACK: 11,
-};
-
-export const VoiceOPCodes = {
- IDENTIFY: 0,
- SELECT_PROTOCOL: 1,
- READY: 2,
- HEARTBEAT: 3,
- SESSION_DESCRIPTION: 4,
- SPEAKING: 5,
- HELLO: 8,
- CLIENT_CONNECT: 12,
- CLIENT_DISCONNECT: 13,
-};
-
-export const Events = {
- RATE_LIMIT: "rateLimit",
- CLIENT_READY: "ready",
- GUILD_CREATE: "guildCreate",
- GUILD_DELETE: "guildDelete",
- GUILD_UPDATE: "guildUpdate",
- GUILD_UNAVAILABLE: "guildUnavailable",
- GUILD_AVAILABLE: "guildAvailable",
- GUILD_MEMBER_ADD: "guildMemberAdd",
- GUILD_MEMBER_REMOVE: "guildMemberRemove",
- GUILD_MEMBER_UPDATE: "guildMemberUpdate",
- GUILD_MEMBER_AVAILABLE: "guildMemberAvailable",
- GUILD_MEMBER_SPEAKING: "guildMemberSpeaking",
- GUILD_MEMBERS_CHUNK: "guildMembersChunk",
- GUILD_INTEGRATIONS_UPDATE: "guildIntegrationsUpdate",
- GUILD_ROLE_CREATE: "roleCreate",
- GUILD_ROLE_DELETE: "roleDelete",
- INVITE_CREATE: "inviteCreate",
- INVITE_DELETE: "inviteDelete",
- GUILD_ROLE_UPDATE: "roleUpdate",
- GUILD_EMOJI_CREATE: "emojiCreate",
- GUILD_EMOJI_DELETE: "emojiDelete",
- GUILD_EMOJI_UPDATE: "emojiUpdate",
- GUILD_BAN_ADD: "guildBanAdd",
- GUILD_BAN_REMOVE: "guildBanRemove",
- CHANNEL_CREATE: "channelCreate",
- CHANNEL_DELETE: "channelDelete",
- CHANNEL_UPDATE: "channelUpdate",
- CHANNEL_PINS_UPDATE: "channelPinsUpdate",
- MESSAGE_CREATE: "message",
- MESSAGE_DELETE: "messageDelete",
- MESSAGE_UPDATE: "messageUpdate",
- MESSAGE_BULK_DELETE: "messageDeleteBulk",
- MESSAGE_REACTION_ADD: "messageReactionAdd",
- MESSAGE_REACTION_REMOVE: "messageReactionRemove",
- MESSAGE_REACTION_REMOVE_ALL: "messageReactionRemoveAll",
- MESSAGE_REACTION_REMOVE_EMOJI: "messageReactionRemoveEmoji",
- USER_UPDATE: "userUpdate",
- PRESENCE_UPDATE: "presenceUpdate",
- VOICE_SERVER_UPDATE: "voiceServerUpdate",
- VOICE_STATE_UPDATE: "voiceStateUpdate",
- VOICE_BROADCAST_SUBSCRIBE: "subscribe",
- VOICE_BROADCAST_UNSUBSCRIBE: "unsubscribe",
- TYPING_START: "typingStart",
- TYPING_STOP: "typingStop",
- WEBHOOKS_UPDATE: "webhookUpdate",
- ERROR: "error",
- WARN: "warn",
- DEBUG: "debug",
- SHARD_DISCONNECT: "shardDisconnect",
- SHARD_ERROR: "shardError",
- SHARD_RECONNECTING: "shardReconnecting",
- SHARD_READY: "shardReady",
- SHARD_RESUME: "shardResume",
- INVALIDATED: "invalidated",
- RAW: "raw",
-};
-
-export const ShardEvents = {
- CLOSE: "close",
- DESTROYED: "destroyed",
- INVALID_SESSION: "invalidSession",
- READY: "ready",
- RESUMED: "resumed",
- ALL_READY: "allReady",
-};
-
-/**
- * The type of Structure allowed to be a partial:
- * * USER
- * * CHANNEL (only affects DMChannels)
- * * GUILD_MEMBER
- * * MESSAGE
- * * REACTION
- * <warn>Partials require you to put checks in place when handling data, read the Partials topic listed in the
- * sidebar for more information.</warn>
- * @typedef {string} PartialType
- */
-export const PartialTypes = keyMirror(["USER", "CHANNEL", "GUILD_MEMBER", "MESSAGE", "REACTION"]);
-
-/**
- * The type of a websocket message event, e.g. `MESSAGE_CREATE`. Here are the available events:
- * * READY
- * * RESUMED
- * * GUILD_CREATE
- * * GUILD_DELETE
- * * GUILD_UPDATE
- * * INVITE_CREATE
- * * INVITE_DELETE
- * * GUILD_MEMBER_ADD
- * * GUILD_MEMBER_REMOVE
- * * GUILD_MEMBER_UPDATE
- * * GUILD_MEMBERS_CHUNK
- * * GUILD_INTEGRATIONS_UPDATE
- * * GUILD_ROLE_CREATE
- * * GUILD_ROLE_DELETE
- * * GUILD_ROLE_UPDATE
- * * GUILD_BAN_ADD
- * * GUILD_BAN_REMOVE
- * * GUILD_EMOJIS_UPDATE
- * * CHANNEL_CREATE
- * * CHANNEL_DELETE
- * * CHANNEL_UPDATE
- * * CHANNEL_PINS_UPDATE
- * * MESSAGE_CREATE
- * * MESSAGE_DELETE
- * * MESSAGE_UPDATE
- * * MESSAGE_DELETE_BULK
- * * MESSAGE_REACTION_ADD
- * * MESSAGE_REACTION_REMOVE
- * * MESSAGE_REACTION_REMOVE_ALL
- * * MESSAGE_REACTION_REMOVE_EMOJI
- * * USER_UPDATE
- * * PRESENCE_UPDATE
- * * TYPING_START
- * * VOICE_STATE_UPDATE
- * * VOICE_SERVER_UPDATE
- * * WEBHOOKS_UPDATE
- * @typedef {string} WSEventType
- */
-export const WSEvents = keyMirror([
- "READY",
- "RESUMED",
- "GUILD_CREATE",
- "GUILD_DELETE",
- "GUILD_UPDATE",
- "INVITE_CREATE",
- "INVITE_DELETE",
- "GUILD_MEMBER_ADD",
- "GUILD_MEMBER_REMOVE",
- "GUILD_MEMBER_UPDATE",
- "GUILD_MEMBERS_CHUNK",
- "GUILD_INTEGRATIONS_UPDATE",
- "GUILD_ROLE_CREATE",
- "GUILD_ROLE_DELETE",
- "GUILD_ROLE_UPDATE",
- "GUILD_BAN_ADD",
- "GUILD_BAN_REMOVE",
- "GUILD_EMOJIS_UPDATE",
- "CHANNEL_CREATE",
- "CHANNEL_DELETE",
- "CHANNEL_UPDATE",
- "CHANNEL_PINS_UPDATE",
- "MESSAGE_CREATE",
- "MESSAGE_DELETE",
- "MESSAGE_UPDATE",
- "MESSAGE_DELETE_BULK",
- "MESSAGE_REACTION_ADD",
- "MESSAGE_REACTION_REMOVE",
- "MESSAGE_REACTION_REMOVE_ALL",
- "MESSAGE_REACTION_REMOVE_EMOJI",
- "USER_UPDATE",
- "PRESENCE_UPDATE",
- "TYPING_START",
- "VOICE_STATE_UPDATE",
- "VOICE_SERVER_UPDATE",
- "WEBHOOKS_UPDATE",
-]);
-
-/**
- * The type of a message, e.g. `DEFAULT`. Here are the available types:
- * * DEFAULT
- * * RECIPIENT_ADD
- * * RECIPIENT_REMOVE
- * * CALL
- * * CHANNEL_NAME_CHANGE
- * * CHANNEL_ICON_CHANGE
- * * PINS_ADD
- * * GUILD_MEMBER_JOIN
- * * USER_PREMIUM_GUILD_SUBSCRIPTION
- * * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1
- * * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2
- * * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3
- * * CHANNEL_FOLLOW_ADD
- * * GUILD_DISCOVERY_DISQUALIFIED
- * * GUILD_DISCOVERY_REQUALIFIED
- * * REPLY
- * @typedef {string} MessageType
- */
-export const MessageTypes = [
- "DEFAULT",
- "RECIPIENT_ADD",
- "RECIPIENT_REMOVE",
- "CALL",
- "CHANNEL_NAME_CHANGE",
- "CHANNEL_ICON_CHANGE",
- "PINS_ADD",
- "GUILD_MEMBER_JOIN",
- "USER_PREMIUM_GUILD_SUBSCRIPTION",
- "USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1",
- "USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2",
- "USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3",
- "CHANNEL_FOLLOW_ADD",
- null,
- "GUILD_DISCOVERY_DISQUALIFIED",
- "GUILD_DISCOVERY_REQUALIFIED",
- null,
- null,
- null,
- "REPLY",
-];
-
-/**
- * The types of messages that are `System`. The available types are `MessageTypes` excluding:
- * * DEFAULT
- * * REPLY
- * @typedef {string} SystemMessageType
- */
-export const SystemMessageTypes = MessageTypes.filter(
- (type: string | null) => type && type !== "DEFAULT" && type !== "REPLY"
-);
-
-/**
- * <info>Bots cannot set a `CUSTOM_STATUS`, it is only for custom statuses received from users</info>
- * The type of an activity of a users presence, e.g. `PLAYING`. Here are the available types:
- * * PLAYING
- * * STREAMING
- * * LISTENING
- * * WATCHING
- * * CUSTOM_STATUS
- * * COMPETING
- * @typedef {string} ActivityType
- */
-export const ActivityTypes = ["PLAYING", "STREAMING", "LISTENING", "WATCHING", "CUSTOM_STATUS", "COMPETING"];
-
-export const ChannelTypes = {
- TEXT: 0,
- DM: 1,
- VOICE: 2,
- GROUP: 3,
- CATEGORY: 4,
- NEWS: 5,
- STORE: 6,
-};
-
-export const ClientApplicationAssetTypes = {
- SMALL: 1,
- BIG: 2,
-};
-
-export const Colors = {
- DEFAULT: 0x000000,
- WHITE: 0xffffff,
- AQUA: 0x1abc9c,
- GREEN: 0x2ecc71,
- BLUE: 0x3498db,
- YELLOW: 0xffff00,
- PURPLE: 0x9b59b6,
- LUMINOUS_VIVID_PINK: 0xe91e63,
- GOLD: 0xf1c40f,
- ORANGE: 0xe67e22,
- RED: 0xe74c3c,
- GREY: 0x95a5a6,
- NAVY: 0x34495e,
- DARK_AQUA: 0x11806a,
- DARK_GREEN: 0x1f8b4c,
- DARK_BLUE: 0x206694,
- DARK_PURPLE: 0x71368a,
- DARK_VIVID_PINK: 0xad1457,
- DARK_GOLD: 0xc27c0e,
- DARK_ORANGE: 0xa84300,
- DARK_RED: 0x992d22,
- DARK_GREY: 0x979c9f,
- DARKER_GREY: 0x7f8c8d,
- LIGHT_GREY: 0xbcc0c0,
- DARK_NAVY: 0x2c3e50,
- BLURPLE: 0x7289da,
- GREYPLE: 0x99aab5,
- DARK_BUT_NOT_BLACK: 0x2c2f33,
- NOT_QUITE_BLACK: 0x23272a,
-};
-
-/**
- * The value set for the explicit content filter levels for a guild:
- * * DISABLED
- * * MEMBERS_WITHOUT_ROLES
- * * ALL_MEMBERS
- * @typedef {string} ExplicitContentFilterLevel
- */
-export const ExplicitContentFilterLevels = ["DISABLED", "MEMBERS_WITHOUT_ROLES", "ALL_MEMBERS"];
-
-/**
- * The value set for the verification levels for a guild:
- * * NONE
- * * LOW
- * * MEDIUM
- * * HIGH
- * * VERY_HIGH
- * @typedef {string} VerificationLevel
- */
-export const VerificationLevels = ["NONE", "LOW", "MEDIUM", "HIGH", "VERY_HIGH"];
-
-/**
- * An error encountered while performing an API request. Here are the potential errors:
- * * GENERAL_ERROR
- * * UNKNOWN_ACCOUNT
- * * UNKNOWN_APPLICATION
- * * UNKNOWN_CHANNEL
- * * UNKNOWN_GUILD
- * * UNKNOWN_INTEGRATION
- * * UNKNOWN_INVITE
- * * UNKNOWN_MEMBER
- * * UNKNOWN_MESSAGE
- * * UNKNOWN_OVERWRITE
- * * UNKNOWN_PROVIDER
- * * UNKNOWN_ROLE
- * * UNKNOWN_TOKEN
- * * UNKNOWN_USER
- * * UNKNOWN_EMOJI
- * * UNKNOWN_WEBHOOK
- * * UNKNOWN_WEBHOOK_SERVICE
- * * UNKNOWN_SESSION
- * * UNKNOWN_BAN
- * * UNKNOWN_SKU
- * * UNKNOWN_STORE_LISTING
- * * UNKNOWN_ENTITLEMENT
- * * UNKNOWN_BUILD
- * * UNKNOWN_LOBBY
- * * UNKNOWN_BRANCH
- * * UNKNOWN_STORE_DIRECTORY_LAYOUT
- * * UNKNOWN_REDISTRIBUTABLE
- * * UNKNOWN_GIFT_CODE
- * * UNKNOWN_STREAM
- * * UNKNOWN_PREMIUM_SERVER_SUBSCRIBE_COOLDOWN
- * * UNKNOWN_GUILD_TEMPLATE
- * * UNKNOWN_DISCOVERABLE_SERVER_CATEGORY
- * * UNKNOWN_STICKER
- * * UNKNOWN_INTERACTION
- * * UNKNOWN_APPLICATION_COMMAND
- * * UNKNOWN_APPLICATION_COMMAND_PERMISSIONS
- * * UNKNOWN_STAGE_INSTANCE
- * * UNKNOWN_GUILD_MEMBER_VERIFICATION_FORM
- * * UNKNOWN_GUILD_WELCOME_SCREEN
- * * UNKNOWN_GUILD_SCHEDULED_EVENT
- * * UNKNOWN_GUILD_SCHEDULED_EVENT_USER
- * * BOT_PROHIBITED_ENDPOINT
- * * BOT_ONLY_ENDPOINT
- * * EXPLICIT_CONTENT_CANNOT_BE_SENT_TO_RECIPIENT
- * * ACTION_NOT_AUTHORIZED_ON_APPLICATION
- * * SLOWMODE_RATE_LIMIT
- * * ONLY_OWNER
- * * ANNOUNCEMENT_RATE_LIMITS
- * * CHANNEL_WRITE_RATELIMIT
- * * WORDS_NOT_ALLOWED
- * * GUILD_PREMIUM_LEVEL_TOO_LOW
- * * MAXIMUM_GUILDS
- * * MAXIMUM_FRIENDS
- * * MAXIMUM_PINS
- * * MAXIMUM_NUMBER_OF_RECIPIENTS_REACHED
- * * MAXIMUM_ROLES
- * * MAXIMUM_WEBHOOKS
- * * MAXIMUM_NUMBER_OF_EMOJIS_REACHED
- * * MAXIMUM_REACTIONS
- * * MAXIMUM_CHANNELS
- * * MAXIMUM_ATTACHMENTS
- * * MAXIMUM_INVITES
- * * MAXIMUM_ANIMATED_EMOJIS
- * * MAXIMUM_SERVER_MEMBERS
- * * MAXIMUM_SERVER_CATEGORIES
- * * GUILD_ALREADY_HAS_TEMPLATE
- * * MAXIMUM_THREAD_PARTICIPANTS
- * * MAXIMUM_BANS_FOR_NON_GUILD_MEMBERS
- * * MAXIMUM_BANS_FETCHES
- * * MAXIMUM_STICKERS
- * * MAXIMUM_PRUNE_REQUESTS
- * * UNAUTHORIZED
- * * ACCOUNT_VERIFICATION_REQUIRED
- * * OPENING_DIRECT_MESSAGES_TOO_FAST
- * * REQUEST_ENTITY_TOO_LARGE
- * * FEATURE_TEMPORARILY_DISABLED
- * * USER_BANNED
- * * TARGET_USER_IS_NOT_CONNECTED_TO_VOICE
- * * ALREADY_CROSSPOSTED
- * * APPLICATION_COMMAND_ALREADY_EXISTS
- * * MISSING_ACCESS
- * * INVALID_ACCOUNT_TYPE
- * * CANNOT_EXECUTE_ON_DM
- * * EMBED_DISABLED
- * * CANNOT_EDIT_MESSAGE_BY_OTHER
- * * CANNOT_SEND_EMPTY_MESSAGE
- * * CANNOT_MESSAGE_USER
- * * CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL
- * * CHANNEL_VERIFICATION_LEVEL_TOO_HIGH
- * * OAUTH2_APPLICATION_BOT_ABSENT
- * * MAXIMUM_OAUTH2_APPLICATIONS
- * * INVALID_OAUTH_STATE
- * * MISSING_PERMISSIONS
- * * INVALID_AUTHENTICATION_TOKEN
- * * NOTE_TOO_LONG
- * * INVALID_BULK_DELETE_QUANTITY
- * * CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL
- * * INVALID_OR_TAKEN_INVITE_CODE
- * * CANNOT_EXECUTE_ON_SYSTEM_MESSAGE
- * * CANNOT_EXECUTE_ON_THIS_CHANNEL_TYPE
- * * INVALID_OAUTH_TOKEN
- * * MISSING_REQUIRED_OAUTH2_SCOPE
- * * INVALID_WEBHOOK_TOKEN_PROVIDED
- * * INVALID_ROLE
- * * INVALID_RECIPIENT
- * * BULK_DELETE_MESSAGE_TOO_OLD
- * * INVALID_FORM_BODY
- * * INVITE_ACCEPTED_TO_GUILD_NOT_CONTAINING_BOT
- * * INVALID_API_VERSION
- * * FILE_EXCEEDS_MAXIMUM_SIZE
- * * INVALID_FILE_UPLOADED
- * * CANNOT_SELF_REDEEM_GIFT
- * * PAYMENT_SOURCE_REQUIRED
- * * CANNOT_DELETE_COMMUNITY_REQUIRED_CHANNEL
- * * INVALID_STICKER_SENT
- * * CANNOT_EDIT_ARCHIVED_THREAD
- * * INVALID_THREAD_NOTIFICATION_SETTINGS
- * * BEFORE_EARLIER_THAN_THREAD_CREATION_DATE
- * * SERVER_NOT_AVAILABLE_IN_YOUR_LOCATION
- * * SERVER_NEEDS_MONETIZATION_ENABLED
- * * TWO_FACTOR_REQUIRED
- * * NO_USERS_WITH_DISCORDTAG_EXIST
- * * REACTION_BLOCKED
- * * RESOURCE_OVERLOADED
- * * STAGE_ALREADY_OPEN
- * * THREAD_ALREADY_CREATED_FOR_THIS_MESSAGE
- * * THREAD_IS_LOCKED
- * * MAXIMUM_NUMBER_OF_ACTIVE_THREADS
- * * MAXIMUM_NUMBER_OF_ACTIVE_ANNOUNCEMENT_THREADS
- * * INVALID_JSON_FOR_UPLOADED_LOTTIE_FILE
- * * LOTTIES_CANNOT_CONTAIN_RASTERIZED_IMAGES
- * * STICKER_MAXIMUM_FRAMERATE
- * * STICKER_MAXIMUM_FRAME_COUNT
- * * LOTTIE_ANIMATION_MAXIMUM_DIMENSIONS
- * * STICKER_FRAME_RATE_TOO_SMALL_OR_TOO_LARGE
- * * STICKER_ANIMATION_DURATION_MAXIMUM
- * * UNKNOWN_VOICE_STATE
- * @typedef {string} APIError
- */
-export const DiscordApiErrors = {
- //https://discord.com/developers/docs/topics/opcodes-and-status-codes#json-json-error-codes
- GENERAL_ERROR: new ApiError("General error (such as a malformed request body, amongst other things)", 0),
- UNKNOWN_ACCOUNT: new ApiError("Unknown account", 10001),
- UNKNOWN_APPLICATION: new ApiError("Unknown application", 10002),
- UNKNOWN_CHANNEL: new ApiError("Unknown channel", 10003),
- UNKNOWN_GUILD: new ApiError("Unknown guild", 10004),
- UNKNOWN_INTEGRATION: new ApiError("Unknown integration", 10005),
- UNKNOWN_INVITE: new ApiError("Unknown invite", 10006),
- UNKNOWN_MEMBER: new ApiError("Unknown member", 10007),
- UNKNOWN_MESSAGE: new ApiError("Unknown message", 10008),
- UNKNOWN_OVERWRITE: new ApiError("Unknown permission overwrite", 10009),
- UNKNOWN_PROVIDER: new ApiError("Unknown provider", 10010),
- UNKNOWN_ROLE: new ApiError("Unknown role", 10011),
- UNKNOWN_TOKEN: new ApiError("Unknown token", 10012),
- UNKNOWN_USER: new ApiError("Unknown user", 10013),
- UNKNOWN_EMOJI: new ApiError("Unknown emoji", 10014),
- UNKNOWN_WEBHOOK: new ApiError("Unknown webhook", 10015),
- UNKNOWN_WEBHOOK_SERVICE: new ApiError("Unknown webhook service", 10016),
- UNKNOWN_SESSION: new ApiError("Unknown session", 10020),
- UNKNOWN_BAN: new ApiError("Unknown ban", 10026),
- UNKNOWN_SKU: new ApiError("Unknown SKU", 10027),
- UNKNOWN_STORE_LISTING: new ApiError("Unknown Store Listing", 10028),
- UNKNOWN_ENTITLEMENT: new ApiError("Unknown entitlement", 10029),
- UNKNOWN_BUILD: new ApiError("Unknown build", 10030),
- UNKNOWN_LOBBY: new ApiError("Unknown lobby", 10031),
- UNKNOWN_BRANCH: new ApiError("Unknown branch", 10032),
- UNKNOWN_STORE_DIRECTORY_LAYOUT: new ApiError("Unknown store directory layout", 10033),
- UNKNOWN_REDISTRIBUTABLE: new ApiError("Unknown redistributable", 10036),
- UNKNOWN_GIFT_CODE: new ApiError("Unknown gift code", 10038),
- UNKNOWN_STREAM: new ApiError("Unknown stream", 10049),
- UNKNOWN_PREMIUM_SERVER_SUBSCRIBE_COOLDOWN: new ApiError("Unknown premium server subscribe cooldown", 10050),
- UNKNOWN_GUILD_TEMPLATE: new ApiError("Unknown guild template", 10057),
- UNKNOWN_DISCOVERABLE_SERVER_CATEGORY: new ApiError("Unknown discoverable server category", 10059),
- UNKNOWN_STICKER: new ApiError("Unknown sticker", 10060),
- UNKNOWN_INTERACTION: new ApiError("Unknown interaction", 10062),
- UNKNOWN_APPLICATION_COMMAND: new ApiError("Unknown application command", 10063),
- UNKNOWN_APPLICATION_COMMAND_PERMISSIONS: new ApiError("Unknown application command permissions", 10066),
- UNKNOWN_STAGE_INSTANCE: new ApiError("Unknown Stage Instance", 10067),
- UNKNOWN_GUILD_MEMBER_VERIFICATION_FORM: new ApiError("Unknown Guild Member Verification Form", 10068),
- UNKNOWN_GUILD_WELCOME_SCREEN: new ApiError("Unknown Guild Welcome Screen", 10069),
- UNKNOWN_GUILD_SCHEDULED_EVENT: new ApiError("Unknown Guild Scheduled Event", 10070),
- UNKNOWN_GUILD_SCHEDULED_EVENT_USER: new ApiError("Unknown Guild Scheduled Event User", 10071),
- BOT_PROHIBITED_ENDPOINT: new ApiError("Bots cannot use this endpoint", 20001),
- BOT_ONLY_ENDPOINT: new ApiError("Only bots can use this endpoint", 20002),
- EXPLICIT_CONTENT_CANNOT_BE_SENT_TO_RECIPIENT: new ApiError(
- "Explicit content cannot be sent to the desired recipient(s)",
- 20009
- ),
- ACTION_NOT_AUTHORIZED_ON_APPLICATION: new ApiError(
- "You are not authorized to perform this action on this application",
- 20012
- ),
- SLOWMODE_RATE_LIMIT: new ApiError("This action cannot be performed due to slowmode rate limit", 20016),
- ONLY_OWNER: new ApiError("Only the owner of this account can perform this action", 20018),
- ANNOUNCEMENT_RATE_LIMITS: new ApiError("This message cannot be edited due to announcement rate limits", 20022),
- CHANNEL_WRITE_RATELIMIT: new ApiError("The channel you are writing has hit the write rate limit", 20028),
- WORDS_NOT_ALLOWED: new ApiError(
- "Your Stage topic, server name, server description, or channel names contain words that are not allowed",
- 20031
- ),
- GUILD_PREMIUM_LEVEL_TOO_LOW: new ApiError("Guild premium subscription level too low", 20035),
- MAXIMUM_GUILDS: new ApiError("Maximum number of guilds reached ({})", 30001, undefined, ["100"]),
- MAXIMUM_FRIENDS: new ApiError("Maximum number of friends reached ({})", 30002, undefined, ["1000"]),
- MAXIMUM_PINS: new ApiError("Maximum number of pins reached for the channel ({})", 30003, undefined, ["50"]),
- MAXIMUM_NUMBER_OF_RECIPIENTS_REACHED: new ApiError("Maximum number of recipients reached ({})", 30004, undefined, [
- "10",
- ]),
- MAXIMUM_ROLES: new ApiError("Maximum number of guild roles reached ({})", 30005, undefined, ["250"]),
- MAXIMUM_WEBHOOKS: new ApiError("Maximum number of webhooks reached ({})", 30007, undefined, ["10"]),
- MAXIMUM_NUMBER_OF_EMOJIS_REACHED: new ApiError("Maximum number of emojis reached", 30008),
- MAXIMUM_REACTIONS: new ApiError("Maximum number of reactions reached ({})", 30010, undefined, ["20"]),
- MAXIMUM_CHANNELS: new ApiError("Maximum number of guild channels reached ({})", 30013, undefined, ["500"]),
- MAXIMUM_ATTACHMENTS: new ApiError("Maximum number of attachments in a message reached ({})", 30015, undefined, [
- "10",
- ]),
- MAXIMUM_INVITES: new ApiError("Maximum number of invites reached ({})", 30016, undefined, ["1000"]),
- MAXIMUM_ANIMATED_EMOJIS: new ApiError("Maximum number of animated emojis reached", 30018),
- MAXIMUM_SERVER_MEMBERS: new ApiError("Maximum number of server members reached", 30019),
- MAXIMUM_SERVER_CATEGORIES: new ApiError(
- "Maximum number of server categories has been reached ({})",
- 30030,
- undefined,
- ["5"]
- ),
- GUILD_ALREADY_HAS_TEMPLATE: new ApiError("Guild already has a template", 30031),
- MAXIMUM_THREAD_PARTICIPANTS: new ApiError("Max number of thread participants has been reached", 30033),
- MAXIMUM_BANS_FOR_NON_GUILD_MEMBERS: new ApiError(
- "Maximum number of bans for non-guild members have been exceeded",
- 30035
- ),
- MAXIMUM_BANS_FETCHES: new ApiError("Maximum number of bans fetches has been reached", 30037),
- MAXIMUM_STICKERS: new ApiError("Maximum number of stickers reached", 30039),
- MAXIMUM_PRUNE_REQUESTS: new ApiError("Maximum number of prune requests has been reached. Try again later", 30040),
- UNAUTHORIZED: new ApiError("Unauthorized. Provide a valid token and try again", 40001),
- ACCOUNT_VERIFICATION_REQUIRED: new ApiError(
- "You need to verify your account in order to perform this action",
- 40002
- ),
- OPENING_DIRECT_MESSAGES_TOO_FAST: new ApiError("You are opening direct messages too fast", 40003),
- REQUEST_ENTITY_TOO_LARGE: new ApiError("Request entity too large. Try sending something smaller in size", 40005),
- FEATURE_TEMPORARILY_DISABLED: new ApiError("This feature has been temporarily disabled server-side", 40006),
- USER_BANNED: new ApiError("The user is banned from this guild", 40007),
- TARGET_USER_IS_NOT_CONNECTED_TO_VOICE: new ApiError("Target user is not connected to voice", 40032),
- ALREADY_CROSSPOSTED: new ApiError("This message has already been crossposted", 40033),
- APPLICATION_COMMAND_ALREADY_EXISTS: new ApiError("An application command with that name already exists", 40041),
- MISSING_ACCESS: new ApiError("Missing access", 50001),
- INVALID_ACCOUNT_TYPE: new ApiError("Invalid account type", 50002),
- CANNOT_EXECUTE_ON_DM: new ApiError("Cannot execute action on a DM channel", 50003),
- EMBED_DISABLED: new ApiError("Guild widget disabled", 50004),
- CANNOT_EDIT_MESSAGE_BY_OTHER: new ApiError("Cannot edit a message authored by another user", 50005),
- CANNOT_SEND_EMPTY_MESSAGE: new ApiError("Cannot send an empty message", 50006),
- CANNOT_MESSAGE_USER: new ApiError("Cannot send messages to this user", 50007),
- CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL: new ApiError("Cannot send messages in a voice channel", 50008),
- CHANNEL_VERIFICATION_LEVEL_TOO_HIGH: new ApiError(
- "Channel verification level is too high for you to gain access",
- 50009
- ),
- OAUTH2_APPLICATION_BOT_ABSENT: new ApiError("OAuth2 application does not have a bot", 50010),
- MAXIMUM_OAUTH2_APPLICATIONS: new ApiError("OAuth2 application limit reached", 50011),
- INVALID_OAUTH_STATE: new ApiError("Invalid OAuth2 state", 50012),
- MISSING_PERMISSIONS: new ApiError("You lack permissions to perform that action ({})", 50013, undefined, [""]),
- INVALID_AUTHENTICATION_TOKEN: new ApiError("Invalid authentication token provided", 50014),
- NOTE_TOO_LONG: new ApiError("Note was too long", 50015),
- INVALID_BULK_DELETE_QUANTITY: new ApiError(
- "Provided too few or too many messages to delete. Must provide at least {} and fewer than {} messages to delete",
- 50016,
- undefined,
- ["2", "100"]
- ),
- CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL: new ApiError(
- "A message can only be pinned to the channel it was sent in",
- 50019
- ),
- INVALID_OR_TAKEN_INVITE_CODE: new ApiError("Invite code was either invalid or taken", 50020),
- CANNOT_EXECUTE_ON_SYSTEM_MESSAGE: new ApiError("Cannot execute action on a system message", 50021),
- CANNOT_EXECUTE_ON_THIS_CHANNEL_TYPE: new ApiError("Cannot execute action on this channel type", 50024),
- INVALID_OAUTH_TOKEN: new ApiError("Invalid OAuth2 access token provided", 50025),
- MISSING_REQUIRED_OAUTH2_SCOPE: new ApiError("Missing required OAuth2 scope", 50026),
- INVALID_WEBHOOK_TOKEN_PROVIDED: new ApiError("Invalid webhook token provided", 50027),
- INVALID_ROLE: new ApiError("Invalid role", 50028),
- INVALID_RECIPIENT: new ApiError("Invalid Recipient(s)", 50033),
- BULK_DELETE_MESSAGE_TOO_OLD: new ApiError("A message provided was too old to bulk delete", 50034),
- INVALID_FORM_BODY: new ApiError(
- "Invalid form body (returned for both application/json and multipart/form-data bodies), or invalid Content-Type provided",
- 50035
- ),
- INVITE_ACCEPTED_TO_GUILD_NOT_CONTAINING_BOT: new ApiError(
- "An invite was accepted to a guild the application's bot is not in",
- 50036
- ),
- INVALID_API_VERSION: new ApiError("Invalid API version provided", 50041),
- FILE_EXCEEDS_MAXIMUM_SIZE: new ApiError("File uploaded exceeds the maximum size", 50045),
- INVALID_FILE_UPLOADED: new ApiError("Invalid file uploaded", 50046),
- CANNOT_SELF_REDEEM_GIFT: new ApiError("Cannot self-redeem this gift", 50054),
- PAYMENT_SOURCE_REQUIRED: new ApiError("Payment source required to redeem gift", 50070),
- CANNOT_DELETE_COMMUNITY_REQUIRED_CHANNEL: new ApiError(
- "Cannot delete a channel required for Community guilds",
- 50074
- ),
- INVALID_STICKER_SENT: new ApiError("Invalid sticker sent", 50081),
- CANNOT_EDIT_ARCHIVED_THREAD: new ApiError(
- "Tried to perform an operation on an archived thread, such as editing a message or adding a user to the thread",
- 50083
- ),
- INVALID_THREAD_NOTIFICATION_SETTINGS: new ApiError("Invalid thread notification settings", 50084),
- BEFORE_EARLIER_THAN_THREAD_CREATION_DATE: new ApiError(
- "before value is earlier than the thread creation date",
- 50085
- ),
- SERVER_NOT_AVAILABLE_IN_YOUR_LOCATION: new ApiError("This server is not available in your location", 50095),
- SERVER_NEEDS_MONETIZATION_ENABLED: new ApiError(
- "This server needs monetization enabled in order to perform this action",
- 50097
- ),
- TWO_FACTOR_REQUIRED: new ApiError("Two factor is required for this operation", 60003),
- NO_USERS_WITH_DISCORDTAG_EXIST: new ApiError("No users with DiscordTag exist", 80004),
- REACTION_BLOCKED: new ApiError("Reaction was blocked", 90001),
- RESOURCE_OVERLOADED: new ApiError("API resource is currently overloaded. Try again a little later", 130000),
- STAGE_ALREADY_OPEN: new ApiError("The Stage is already open", 150006),
- THREAD_ALREADY_CREATED_FOR_THIS_MESSAGE: new ApiError("A thread has already been created for this message", 160004),
- THREAD_IS_LOCKED: new ApiError("Thread is locked", 160005),
- MAXIMUM_NUMBER_OF_ACTIVE_THREADS: new ApiError("Maximum number of active threads reached", 160006),
- MAXIMUM_NUMBER_OF_ACTIVE_ANNOUNCEMENT_THREADS: new ApiError(
- "Maximum number of active announcement threads reached",
- 160007
- ),
- INVALID_JSON_FOR_UPLOADED_LOTTIE_FILE: new ApiError("Invalid JSON for uploaded Lottie file", 170001),
- LOTTIES_CANNOT_CONTAIN_RASTERIZED_IMAGES: new ApiError(
- "Uploaded Lotties cannot contain rasterized images such as PNG or JPEG",
- 170002
- ),
- STICKER_MAXIMUM_FRAMERATE: new ApiError("Sticker maximum framerate exceeded", 170003),
- STICKER_MAXIMUM_FRAME_COUNT: new ApiError("Sticker frame count exceeds maximum of {} frames", 170004, undefined, [
- "1000",
- ]),
- LOTTIE_ANIMATION_MAXIMUM_DIMENSIONS: new ApiError("Lottie animation maximum dimensions exceeded", 170005),
- STICKER_FRAME_RATE_TOO_SMALL_OR_TOO_LARGE: new ApiError(
- "Sticker frame rate is either too small or too large",
- 170006
- ),
- STICKER_ANIMATION_DURATION_MAXIMUM: new ApiError(
- "Sticker animation duration exceeds maximum of {} seconds",
- 170007,
- undefined,
- ["5"]
- ),
-
- //Other errors
- UNKNOWN_VOICE_STATE: new ApiError("Unknown Voice State", 10065, 404),
-};
-
-/**
- * An error encountered while performing an API request (Fosscord only). Here are the potential errors:
- */
-export const FosscordApiErrors = {
- MANUALLY_TRIGGERED_ERROR: new ApiError("This is an artificial error", 1, 500),
- PREMIUM_DISABLED_FOR_GUILD: new ApiError("This guild cannot be boosted", 25001),
- NO_FURTHER_PREMIUM: new ApiError("This guild does not receive further boosts", 25002),
- GUILD_PREMIUM_DISABLED_FOR_YOU: new ApiError("This guild cannot be boosted by you", 25003, 403),
- CANNOT_FRIEND_SELF: new ApiError("Cannot friend oneself", 25009),
- USER_SPECIFIC_INVITE_WRONG_RECIPIENT: new ApiError("This invite is not meant for you", 25010),
- USER_SPECIFIC_INVITE_FAILED: new ApiError("Failed to invite user", 25011),
- CANNOT_MODIFY_USER_GROUP: new ApiError("This user cannot manipulate this group", 25050, 403),
- CANNOT_REMOVE_SELF_FROM_GROUP: new ApiError("This user cannot remove oneself from user group", 25051),
- CANNOT_BAN_OPERATOR: new ApiError("Non-OPERATOR cannot ban OPERATOR from instance", 25052),
- CANNOT_LEAVE_GUILD: new ApiError("You are not allowed to leave guilds that you joined by yourself", 25059, 403),
- EDITS_DISABLED: new ApiError("You are not allowed to edit your own messages", 25060, 403),
- DELETE_MESSAGE_DISABLED: new ApiError("You are not allowed to delete your own messages", 25061, 403),
- FEATURE_PERMANENTLY_DISABLED: new ApiError("This feature has been disabled server-side", 45006, 501),
- MISSING_RIGHTS: new ApiError("You lack rights to perform that action ({})", 50013, undefined, [""]),
- CANNOT_REPLACE_BY_BACKFILL: new ApiError("Cannot backfill to message ID that already exists", 55002, 409),
- CANNOT_BACKFILL_TO_THE_FUTURE: new ApiError("You cannot backfill messages in the future", 55003),
- CANNOT_GRANT_PERMISSIONS_EXCEEDING_RIGHTS: new ApiError("You cannot grant permissions exceeding your own rights", 50050),
- ROUTES_LOOPING: new ApiError("Loops in the route definition ({})", 50060, undefined, [""]),
- CANNOT_REMOVE_ROUTE: new ApiError("Cannot remove message route while it is in effect and being used", 50061),
-};
-
-/**
- * The value set for a guild's default message notifications, e.g. `ALL`. Here are the available types:
- * * ALL
- * * MENTIONS
- * * MUTED (Fosscord extension)
- * @typedef {string} DefaultMessageNotifications
- */
-export const DefaultMessageNotifications = ["ALL", "MENTIONS", "MUTED"];
-
-/**
- * The value set for a team members's membership state:
- * * INVITED
- * * ACCEPTED
- * * INSERTED (Fosscord extension)
- * @typedef {string} MembershipStates
- */
-export const MembershipStates = [
- "INSERTED",
- "INVITED",
- "ACCEPTED",
-];
-
-/**
- * The value set for a webhook's type:
- * * Incoming
- * * Channel Follower
- * * Custom (Fosscord extension)
- * @typedef {string} WebhookTypes
- */
-export const WebhookTypes = [
- "Custom",
- "Incoming",
- "Channel Follower",
-];
-
-function keyMirror(arr: string[]) {
- let tmp = Object.create(null);
- for (const value of arr) tmp[value] = value;
- return tmp;
-}
-
diff --git a/util/src/util/Database.ts b/util/src/util/Database.ts
deleted file mode 100644
index 84ce473d..00000000
--- a/util/src/util/Database.ts
+++ /dev/null
@@ -1,103 +0,0 @@
-import path from "path";
-import "reflect-metadata";
-import { DataSource, createConnection, DataSourceOptions, PrimaryColumn, PrimaryGeneratedColumn } from "typeorm";
-import * as Models from "../entities";
-import { Migration } from "../entities/Migration";
-import { yellow, green, red } from "picocolors";
-import fs from "fs";
-import { exit } from "process";
-import { BaseClass, BaseClassWithoutId } from "../entities";
-import { config } from "dotenv";
-
-// UUID extension option is only supported with postgres
-// We want to generate all id's with Snowflakes that's why we have our own BaseEntity class
-
-let promise: Promise<any>;
-let dataSource: DataSource;
-
-export async function getOrInitialiseDatabase(): Promise<DataSource> {
- //if (dataSource) return dataSource; // prevent initalizing multiple times
-
- if(dataSource.isInitialized) return dataSource;
-
- await dataSource.initialize();
- console.log(`[Database] ${green("Connected!")}`);
- await dataSource.runMigrations();
- console.log(`[Database] ${green("Up to date!")}`);
-
- if("DB_MIGRATE" in process.env) {
- console.log("DB_MIGRATE specified, exiting!")
- exit(0);
- }
- return dataSource;
-}
-
-export function closeDatabase() {
- dataSource?.destroy();
-}
-
-function getDataSourceOptions(): DataSourceOptions {
- config();
- //get connection string and check for migrations
- const dbConnectionString = process.env.DATABASE || path.join(process.cwd(), "database.db");
- const type = dbConnectionString.includes("://") ? dbConnectionString.split(":")[0]?.replace("+srv", "") : "sqlite" as any;
- const isSqlite = type.includes("sqlite");
- const migrationsExist = fs.existsSync(path.join(__dirname, "..", "migrations", type));
- //read env vars
- const synchronizeInsteadOfMigrations = "DB_UNSAFE" in process.env;
- const verboseDb = "DB_VERBOSE" in process.env;
-
- if(isSqlite)
- console.log(`[Database] ${red(`You are running sqlite! Please keep in mind that we recommend setting up a dedicated database!`)}`);
- if(verboseDb)
- console.log(`[Database] ${red(`Verbose database logging is enabled, this might impact performance! Unset DB_VERBOSE to disable.`)}`);
-
- if(synchronizeInsteadOfMigrations){
- console.log(`[Database] ${red(`Unsafe database upgrades are enabled! We are not responsible for broken databases! Unset DB_UNSAFE to disable.`)}`);
- }
- else if(!migrationsExist) {
- console.log(`[Database] ${red(`Database engine not supported! Set UNSAFE_DB to bypass.`)}`);
- console.log(`[Database] ${red(`Please mention this to Fosscord developers, and provide this info:`)}`);
- console.log(`[Database]\n${red(JSON.stringify({
- db_type: type,
- migrations_exist: migrationsExist
- }, null, 4))}`);
-
- if(!("DB_MIGRATE" in process.env)) exit(1);
- }
- console.log(`[Database] ${yellow(`Configuring data source to use ${type} database...`)}`);
- return {
- type,
- charset: 'utf8mb4',
- url: isSqlite ? undefined : dbConnectionString,
- database: isSqlite ? dbConnectionString : undefined,
- // @ts-ignore
- //entities: Object.values(Models).filter((x) => x.constructor.name !== "Object" && x.constructor.name !== "Array" && x.constructor.name !== "BigInt" && x).map(x=>x.name),
- entities: Object.values(Models).filter((x) => x.constructor.name == "Function" && shouldIncludeEntity(x.name)),
- synchronize: synchronizeInsteadOfMigrations,
- logging: verboseDb,
- cache: {
- duration: 1000 * 3, // cache all find queries for 3 seconds
- },
- bigNumberStrings: false,
- supportBigNumbers: true,
- name: "default",
- migrations: synchronizeInsteadOfMigrations ? [] : [path.join(__dirname, "..", "migrations", type, "*.js")],
- migrationsRun: !synchronizeInsteadOfMigrations,
- //migrationsRun: false,
- cli: {
- migrationsDir: `src/migrations/${type}`
- },
- } as DataSourceOptions;
-}
-
-function shouldIncludeEntity(name: string): boolean {
- return ![
- BaseClassWithoutId,
- PrimaryColumn,
- BaseClass,
- PrimaryGeneratedColumn
- ].map(x=>x.name).includes(name);
-}
-
-export default dataSource = new DataSource(getDataSourceOptions());
diff --git a/util/src/util/Email.ts b/util/src/util/Email.ts
deleted file mode 100644
index 6885da33..00000000
--- a/util/src/util/Email.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-export const EMAIL_REGEX =
- /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
-
-export function adjustEmail(email?: string): string | undefined {
- if (!email) return email;
- // body parser already checked if it is a valid email
- const parts = <RegExpMatchArray>email.match(EMAIL_REGEX);
- // @ts-ignore
- if (!parts || parts.length < 5) return undefined;
- const domain = parts[5];
- const user = parts[1];
-
- // TODO: check accounts with uncommon email domains
- if (domain === "gmail.com" || domain === "googlemail.com") {
- // replace .dots and +alternatives -> Gmail Dot Trick https://support.google.com/mail/answer/7436150 and https://generator.email/blog/gmail-generator
- let v = user.replace(/[.]|(\+.*)/g, "") + "@gmail.com";
- }
-
- if (domain === "google.com") {
- // replace .dots and +alternatives -> Google Staff GMail Dot Trick
- let v = user.replace(/[.]|(\+.*)/g, "") + "@google.com";
- }
-
- return email;
-}
diff --git a/util/src/util/Event.ts b/util/src/util/Event.ts
deleted file mode 100644
index 90c24347..00000000
--- a/util/src/util/Event.ts
+++ /dev/null
@@ -1,122 +0,0 @@
-import { Channel } from "amqplib";
-import { RabbitMQ } from "./RabbitMQ";
-import EventEmitter from "events";
-import { EVENT, Event } from "../interfaces";
-export const events = new EventEmitter();
-
-export async function emitEvent(payload: Omit<Event, "created_at">) {
- const id = (payload.channel_id || payload.user_id || payload.guild_id) as string;
- if (!id) return console.error("event doesn't contain any id", payload);
-
- if (RabbitMQ.connection) {
- const data = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.data; // use rabbitmq for event transmission
- await RabbitMQ.channel?.assertExchange(id, "fanout", { durable: false });
-
- // assertQueue isn't needed, because a queue will automatically created if it doesn't exist
- const successful = RabbitMQ.channel?.publish(id, "", Buffer.from(`${data}`), { type: payload.event });
- if (!successful) throw new Error("failed to send event");
- } else if (process.env.EVENT_TRANSMISSION === "process") {
- process.send?.({ type: "event", event: payload, id } as ProcessEvent);
- } else {
- events.emit(id, payload);
- }
-}
-
-export async function initEvent() {
- await RabbitMQ.init(); // does nothing if rabbitmq is not setup
- if (RabbitMQ.connection) {
- } else {
- // use event emitter
- // use process messages
- }
-}
-
-export interface EventOpts extends Event {
- acknowledge?: Function;
- channel?: Channel;
- cancel: Function;
-}
-
-export interface ListenEventOpts {
- channel?: Channel;
- acknowledge?: boolean;
-}
-
-export interface ProcessEvent {
- type: "event";
- event: Event;
- id: string;
-}
-
-export async function listenEvent(event: string, callback: (event: EventOpts) => any, opts?: ListenEventOpts) {
- if (RabbitMQ.connection) {
- // @ts-ignore
- return rabbitListen(opts?.channel || RabbitMQ.channel, event, callback, { acknowledge: opts?.acknowledge });
- } else if (process.env.EVENT_TRANSMISSION === "process") {
- const cancel = () => {
- process.removeListener("message", listener);
- process.setMaxListeners(process.getMaxListeners() - 1);
- };
-
- const listener = (message: any) => {
- message.type === "event" && message.id === event && callback({ ...message.event, cancel });
- };
-
- process.addListener("message", listener);
- process.setMaxListeners(process.getMaxListeners() + 1);
-
- return cancel;
- } else {
- const listener = (opts: any) => callback({ ...opts, cancel });
- const cancel = () => {
- events.removeListener(event, listener);
- events.setMaxListeners(events.getMaxListeners() - 1);
- };
- events.setMaxListeners(events.getMaxListeners() + 1);
- events.addListener(event, listener);
-
- return cancel;
- }
-}
-
-async function rabbitListen(
- channel: Channel,
- id: string,
- callback: (event: EventOpts) => any,
- opts?: { acknowledge?: boolean }
-) {
- await channel.assertExchange(id, "fanout", { durable: false });
- const q = await channel.assertQueue("", { exclusive: true, autoDelete: true });
-
- const cancel = () => {
- channel.cancel(q.queue);
- channel.unbindQueue(q.queue, id, "");
- };
-
- channel.bindQueue(q.queue, id, "");
- channel.consume(
- q.queue,
- (opts) => {
- if (!opts) return;
-
- const data = JSON.parse(opts.content.toString());
- const event = opts.properties.type as EVENT;
-
- callback({
- event,
- data,
- acknowledge() {
- channel.ack(opts);
- },
- channel,
- cancel,
- });
- // rabbitCh.ack(opts);
- },
- {
- noAck: !opts?.acknowledge,
- }
- );
-
- return cancel;
-}
diff --git a/util/src/util/FieldError.ts b/util/src/util/FieldError.ts
deleted file mode 100644
index 49968e1a..00000000
--- a/util/src/util/FieldError.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-export function FieldErrors(fields: Record<string, { code?: string; message: string }>) {
- return new FieldError(
- 50035,
- "Invalid Form Body",
- fields.map(({ message, code }) => ({
- _errors: [
- {
- message,
- code: code || "BASE_TYPE_INVALID",
- },
- ],
- }))
- );
-}
-
-// TODO: implement Image data type: Data URI scheme that supports JPG, GIF, and PNG formats. An example Data URI format is: data:image/jpeg;base64,BASE64_ENCODED_JPEG_IMAGE_DATA
-// Ensure you use the proper content type (image/jpeg, image/png, image/gif) that matches the image data being provided.
-
-export class FieldError extends Error {
- constructor(public code: string | number, public message: string, public errors?: any) {
- super(message);
- }
-}
diff --git a/util/src/util/Intents.ts b/util/src/util/Intents.ts
deleted file mode 100644
index 1e840b76..00000000
--- a/util/src/util/Intents.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import { BitField } from "./BitField";
-
-export class Intents extends BitField {
- static FLAGS = {
- GUILDS: BigInt(1) << BigInt(0), // guilds and guild merge-split events affecting the user
- GUILD_MEMBERS: BigInt(1) << BigInt(1), // memberships
- GUILD_BANS: BigInt(1) << BigInt(2), // bans and ban lists
- GUILD_EMOJIS: BigInt(1) << BigInt(3), // custom emojis
- GUILD_INTEGRATIONS: BigInt(1) << BigInt(4), // applications
- GUILD_WEBHOOKS: BigInt(1) << BigInt(5), // webhooks
- GUILD_INVITES: BigInt(1) << BigInt(6), // mass invites (no user can receive user specific invites of another user)
- GUILD_VOICE_STATES: BigInt(1) << BigInt(7), // voice updates
- GUILD_PRESENCES: BigInt(1) << BigInt(8), // presence updates
- GUILD_MESSAGES_METADATA: BigInt(1) << BigInt(9), // guild message metadata
- GUILD_MESSAGE_REACTIONS: BigInt(1) << BigInt(10), // guild message reactions
- GUILD_MESSAGE_TYPING: BigInt(1) << BigInt(11), // guild channel typing notifications
- DIRECT_MESSAGES: BigInt(1) << BigInt(12), // DM or orphan channels
- DIRECT_MESSAGE_REACTIONS: BigInt(1) << BigInt(13), // DM or orphan channel message reactions
- DIRECT_MESSAGE_TYPING: BigInt(1) << BigInt(14), // DM typing notifications
- GUILD_MESSAGES_CONTENT: BigInt(1) << BigInt(15), // guild message content
- GUILD_POLICIES: BigInt(1) << BigInt(20), // guild policies
- GUILD_POLICY_EXECUTION: BigInt(1) << BigInt(21), // guild policy execution
- LIVE_MESSAGE_COMPOSITION: BigInt(1) << BigInt(32), // allow composing messages using the gateway
- GUILD_ROUTES: BigInt(1) << BigInt(41), // message routes affecting the guild
- DIRECT_MESSAGES_THREADS: BigInt(1) << BigInt(42), // direct message threads
- JUMBO_EVENTS: BigInt(1) << BigInt(43), // jumbo events (size limits to be defined later)
- LOBBIES: BigInt(1) << BigInt(44), // lobbies
- INSTANCE_ROUTES: BigInt(1) << BigInt(60), // all message route changes
- INSTANCE_GUILD_CHANGES: BigInt(1) << BigInt(61), // all guild create, guild object patch, split, merge and delete events
- INSTANCE_POLICY_UPDATES: BigInt(1) << BigInt(62), // all instance policy updates
- INSTANCE_USER_UPDATES: BigInt(1) << BigInt(63) // all instance user updates
- };
-}
-
diff --git a/util/src/util/InvisibleCharacters.ts b/util/src/util/InvisibleCharacters.ts
deleted file mode 100644
index 2b014e14..00000000
--- a/util/src/util/InvisibleCharacters.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-// List from https://invisible-characters.com/
-export const InvisibleCharacters = [
- '\u{9}', //Tab
- '\u{20}', //Space
- '\u{ad}', //Soft hyphen
- '\u{34f}', //Combining grapheme joiner
- '\u{61c}', //Arabic letter mark
- '\u{115f}', //Hangul choseong filler
- '\u{1160}', //Hangul jungseong filler
- '\u{17b4}', //Khmer vowel inherent AQ
- '\u{17b5}', //Khmer vowel inherent AA
- '\u{180e}', //Mongolian vowel separator
- '\u{2000}', //En quad
- '\u{2001}', //Em quad
- '\u{2002}', //En space
- '\u{2003}', //Em space
- '\u{2004}', //Three-per-em space
- '\u{2005}', //Four-per-em space
- '\u{2006}', //Six-per-em space
- '\u{2007}', //Figure space
- '\u{2008}', //Punctuation space
- '\u{2009}', //Thin space
- '\u{200a}', //Hair space
- '\u{200b}', //Zero width space
- '\u{200c}', //Zero width non-joiner
- '\u{200d}', //Zero width joiner
- '\u{200e}', //Left-to-right mark
- '\u{200f}', //Right-to-left mark
- '\u{202f}', //Narrow no-break space
- '\u{205f}', //Medium mathematical space
- '\u{2060}', //Word joiner
- '\u{2061}', //Function application
- '\u{2062}', //Invisible times
- '\u{2063}', //Invisible separator
- '\u{2064}', //Invisible plus
- '\u{206a}', //Inhibit symmetric swapping
- '\u{206b}', //Activate symmetric swapping
- '\u{206c}', //Inhibit arabic form shaping
- '\u{206d}', //Activate arabic form shaping
- '\u{206e}', //National digit shapes
- '\u{206f}', //Nominal digit shapes
- '\u{3000}', //Ideographic space
- '\u{2800}', //Braille pattern blank
- '\u{3164}', //Hangul filler
- '\u{feff}', //Zero width no-break space
- '\u{ffa0}', //Haldwidth hangul filler
- '\u{1d159}', //Musical symbol null notehead
- '\u{1d173}', //Musical symbol begin beam
- '\u{1d174}', //Musical symbol end beam
- '\u{1d175}', //Musical symbol begin tie
- '\u{1d176}', //Musical symbol end tie
- '\u{1d177}', //Musical symbol begin slur
- '\u{1d178}', //Musical symbol end slur
- '\u{1d179}', //Musical symbol begin phrase
- '\u{1d17a}' //Musical symbol end phrase
-];
\ No newline at end of file
diff --git a/util/src/util/MFA.ts b/util/src/util/MFA.ts
deleted file mode 100644
index 2e47b2fc..00000000
--- a/util/src/util/MFA.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import crypto from "crypto";
-import { BackupCode } from "../entities/BackupCodes";
-
-export function generateMfaBackupCodes(user_id: string) {
- let backup_codes: BackupCode[] = [];
- for (let i = 0; i < 10; i++) {
- const code = BackupCode.create({
- user: { id: user_id },
- code: crypto.randomBytes(4).toString("hex"), // 8 characters
- consumed: false,
- expired: false,
- });
- backup_codes.push(code);
- }
-
- return backup_codes;
-}
\ No newline at end of file
diff --git a/util/src/util/MessageFlags.ts b/util/src/util/MessageFlags.ts
deleted file mode 100644
index b59295c4..00000000
--- a/util/src/util/MessageFlags.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-// based on https://github.com/discordjs/discord.js/blob/master/src/util/MessageFlags.js
-// Apache License Version 2.0 Copyright 2015 - 2021 Amish Shah, 2022 Erkin Alp Güney
-
-import { BitField } from "./BitField";
-
-export class MessageFlags extends BitField {
- static FLAGS = {
- CROSSPOSTED: BigInt(1) << BigInt(0),
- IS_CROSSPOST: BigInt(1) << BigInt(1),
- SUPPRESS_EMBEDS: BigInt(1) << BigInt(2),
- // SOURCE_MESSAGE_DELETED: BigInt(1) << BigInt(3), // fosscord will delete them from destination too, making this redundant
- URGENT: BigInt(1) << BigInt(4),
- // HAS_THREAD: BigInt(1) << BigInt(5) // does not apply to fosscord due to infrastructural differences
- PRIVATE_ROUTE: BigInt(1) << BigInt(6), // it that has been routed to only some of the users that can see the channel
- INTERACTION_WAIT: BigInt(1) << BigInt(7), // discord.com calls this LOADING
- // FAILED_TO_MENTION_SOME_ROLES_IN_THREAD: BigInt(1) << BigInt(8)
- SCRIPT_WAIT: BigInt(1) << BigInt(24), // waiting for the self command to complete
- IMPORT_WAIT: BigInt(1) << BigInt(25), // latest message of a bulk import, waiting for the rest of the channel to be backfilled
- };
-}
diff --git a/util/src/util/Permissions.ts b/util/src/util/Permissions.ts
deleted file mode 100644
index c7400303..00000000
--- a/util/src/util/Permissions.ts
+++ /dev/null
@@ -1,273 +0,0 @@
-// https://github.com/discordjs/discord.js/blob/master/src/util/Permissions.js
-// Apache License Version 2.0 Copyright 2015 - 2021 Amish Shah
-import { Channel, ChannelPermissionOverwrite, Guild, Member, Role } from "../entities";
-import { BitField, BitFieldResolvable, BitFlag } from "./BitField";
-import { HTTPError } from "..";
-
-export type PermissionResolvable = bigint | number | Permissions | PermissionResolvable[] | PermissionString;
-
-type PermissionString = keyof typeof Permissions.FLAGS;
-
-// BigInt doesn't have a bit limit (https://stackoverflow.com/questions/53335545/whats-the-biggest-bigint-value-in-js-as-per-spec)
-const CUSTOM_PERMISSION_OFFSET = BigInt(1) << BigInt(64); // 27 permission bits left for discord to add new ones
-
-export class Permissions extends BitField {
- cache: PermissionCache = {};
-
- constructor(bits: BitFieldResolvable = 0) {
- super(bits);
- if (this.bitfield & Permissions.FLAGS.ADMINISTRATOR) {
- this.bitfield = ALL_PERMISSIONS;
- }
- }
-
- static FLAGS = {
- CREATE_INSTANT_INVITE: BitFlag(0),
- KICK_MEMBERS: BitFlag(1),
- BAN_MEMBERS: BitFlag(2),
- ADMINISTRATOR: BitFlag(3),
- MANAGE_CHANNELS: BitFlag(4),
- MANAGE_GUILD: BitFlag(5),
- ADD_REACTIONS: BitFlag(6),
- VIEW_AUDIT_LOG: BitFlag(7),
- PRIORITY_SPEAKER: BitFlag(8),
- STREAM: BitFlag(9),
- VIEW_CHANNEL: BitFlag(10),
- SEND_MESSAGES: BitFlag(11),
- SEND_TTS_MESSAGES: BitFlag(12),
- MANAGE_MESSAGES: BitFlag(13),
- EMBED_LINKS: BitFlag(14),
- ATTACH_FILES: BitFlag(15),
- READ_MESSAGE_HISTORY: BitFlag(16),
- MENTION_EVERYONE: BitFlag(17),
- USE_EXTERNAL_EMOJIS: BitFlag(18),
- VIEW_GUILD_INSIGHTS: BitFlag(19),
- CONNECT: BitFlag(20),
- SPEAK: BitFlag(21),
- MUTE_MEMBERS: BitFlag(22),
- DEAFEN_MEMBERS: BitFlag(23),
- MOVE_MEMBERS: BitFlag(24),
- USE_VAD: BitFlag(25),
- CHANGE_NICKNAME: BitFlag(26),
- MANAGE_NICKNAMES: BitFlag(27),
- MANAGE_ROLES: BitFlag(28),
- MANAGE_WEBHOOKS: BitFlag(29),
- MANAGE_EMOJIS_AND_STICKERS: BitFlag(30),
- USE_APPLICATION_COMMANDS: BitFlag(31),
- REQUEST_TO_SPEAK: BitFlag(32),
- // TODO: what is permission 33?
- MANAGE_THREADS: BitFlag(34),
- USE_PUBLIC_THREADS: BitFlag(35),
- USE_PRIVATE_THREADS: BitFlag(36),
- USE_EXTERNAL_STICKERS: BitFlag(37),
-
- /**
- * CUSTOM PERMISSIONS ideas:
- * - allow user to dm members
- * - allow user to pin messages (without MANAGE_MESSAGES)
- * - allow user to publish messages (without MANAGE_MESSAGES)
- */
- // CUSTOM_PERMISSION: BigInt(1) << BigInt(0) + CUSTOM_PERMISSION_OFFSET
- };
-
- any(permission: PermissionResolvable, checkAdmin = true) {
- return (checkAdmin && super.any(Permissions.FLAGS.ADMINISTRATOR)) || super.any(permission);
- }
-
- /**
- * Checks whether the bitfield has a permission, or multiple permissions.
- */
- has(permission: PermissionResolvable, checkAdmin = true) {
- return (checkAdmin && super.has(Permissions.FLAGS.ADMINISTRATOR)) || super.has(permission);
- }
-
- /**
- * Checks whether the bitfield has a permission, or multiple permissions, but throws an Error if user fails to match auth criteria.
- */
- hasThrow(permission: PermissionResolvable) {
- if (this.has(permission) && this.has("VIEW_CHANNEL")) return true;
- // @ts-ignore
- throw new HTTPError(`You are missing the following permissions ${permission}`, 403);
- }
-
- overwriteChannel(overwrites: ChannelPermissionOverwrite[]) {
- if (!overwrites) return this;
- if (!this.cache) throw new Error("permission chache not available");
- overwrites = overwrites.filter((x) => {
- if (x.type === 0 && this.cache.roles?.some((r) => r.id === x.id)) return true;
- if (x.type === 1 && x.id == this.cache.user_id) return true;
- return false;
- });
- return new Permissions(Permissions.channelPermission(overwrites, this.bitfield));
- }
-
- static channelPermission(overwrites: ChannelPermissionOverwrite[], init?: bigint) {
- // TODO: do not deny any permissions if admin
- return overwrites.reduce((permission, overwrite) => {
- // apply disallowed permission
- // * permission: current calculated permission (e.g. 010)
- // * deny contains all denied permissions (e.g. 011)
- // * allow contains all explicitly allowed permisions (e.g. 100)
- return (permission & ~BigInt(overwrite.deny)) | BigInt(overwrite.allow);
- // ~ operator inverts deny (e.g. 011 -> 100)
- // & operator only allows 1 for both ~deny and permission (e.g. 010 & 100 -> 000)
- // | operators adds both together (e.g. 000 + 100 -> 100)
- }, init || BigInt(0));
- }
-
- static rolePermission(roles: Role[]) {
- // adds all permissions of all roles together (Bit OR)
- return roles.reduce((permission, role) => permission | BigInt(role.permissions), BigInt(0));
- }
-
- static finalPermission({
- user,
- guild,
- channel,
- }: {
- user: { id: string; roles: string[] };
- guild: { roles: Role[] };
- channel?: {
- overwrites?: ChannelPermissionOverwrite[];
- recipient_ids?: string[] | null;
- owner_id?: string;
- };
- }) {
- if (user.id === "0") return new Permissions("ADMINISTRATOR"); // system user id
-
- let roles = guild.roles.filter((x) => user.roles.includes(x.id));
- let permission = Permissions.rolePermission(roles);
-
- if (channel?.overwrites) {
- let overwrites = channel.overwrites.filter((x) => {
- if (x.type === 0 && user.roles.includes(x.id)) return true;
- if (x.type === 1 && x.id == user.id) return true;
- return false;
- });
- permission = Permissions.channelPermission(overwrites, permission);
- }
-
- if (channel?.recipient_ids) {
- if (channel?.owner_id === user.id) return new Permissions("ADMINISTRATOR");
- if (channel.recipient_ids.includes(user.id)) {
- // Default dm permissions
- return new Permissions([
- "VIEW_CHANNEL",
- "SEND_MESSAGES",
- "STREAM",
- "ADD_REACTIONS",
- "EMBED_LINKS",
- "ATTACH_FILES",
- "READ_MESSAGE_HISTORY",
- "MENTION_EVERYONE",
- "USE_EXTERNAL_EMOJIS",
- "CONNECT",
- "SPEAK",
- "MANAGE_CHANNELS",
- ]);
- }
-
- return new Permissions();
- }
-
- return new Permissions(permission);
- }
-}
-
-const ALL_PERMISSIONS = Object.values(Permissions.FLAGS).reduce((total, val) => total | val, BigInt(0));
-
-export type PermissionCache = {
- channel?: Channel | undefined;
- member?: Member | undefined;
- guild?: Guild | undefined;
- roles?: Role[] | undefined;
- user_id?: string;
-};
-
-export async function getPermission(
- user_id?: string,
- guild_id?: string,
- channel_id?: string,
- opts: {
- guild_select?: (keyof Guild)[];
- guild_relations?: string[];
- channel_select?: (keyof Channel)[];
- channel_relations?: string[];
- member_select?: (keyof Member)[];
- member_relations?: string[];
- } = {}
-) {
- if (!user_id) throw new HTTPError("User not found");
- let channel: Channel | undefined;
- let member: Member | undefined;
- let guild: Guild | undefined;
-
- if (channel_id) {
- channel = await Channel.findOneOrFail({
- where: { id: channel_id },
- relations: ["recipients", ...(opts.channel_relations || [])],
- select: [
- "id",
- "recipients",
- "permission_overwrites",
- "owner_id",
- "guild_id",
- // @ts-ignore
- ...(opts.channel_select || []),
- ],
- });
- if (channel.guild_id) guild_id = channel.guild_id; // derive guild_id from the channel
- }
-
- if (guild_id) {
- guild = await Guild.findOneOrFail({
- where: { id: guild_id },
- select: [
- "id",
- "owner_id",
- // @ts-ignore
- ...(opts.guild_select || []),
- ],
- relations: opts.guild_relations,
- });
- if (guild.owner_id === user_id) return new Permissions(Permissions.FLAGS.ADMINISTRATOR);
-
- member = await Member.findOneOrFail({
- where: { guild_id, id: user_id },
- relations: ["roles", ...(opts.member_relations || [])],
- select: [
- "id",
- "roles",
- "index",
- // @ts-ignore
- ...(opts.member_select || []),
- ],
- });
- }
-
- let recipient_ids: any = channel?.recipients?.map((x) => x.user_id);
- if (!recipient_ids?.length) recipient_ids = null;
-
- // TODO: remove guild.roles and convert recipient_ids to recipients
- let permission = Permissions.finalPermission({
- user: {
- id: user_id,
- roles: member?.roles.map((x) => x.id) || [],
- },
- guild: {
- roles: member?.roles || [],
- },
- channel: {
- overwrites: channel?.permission_overwrites,
- owner_id: channel?.owner_id,
- recipient_ids,
- },
- });
-
- const obj = new Permissions(permission);
-
- // pass cache to permission for possible future getPermission calls
- obj.cache = { guild, member, channel, roles: member?.roles, user_id };
-
- return obj;
-}
diff --git a/util/src/util/RabbitMQ.ts b/util/src/util/RabbitMQ.ts
deleted file mode 100644
index 0f5eb6aa..00000000
--- a/util/src/util/RabbitMQ.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import amqp, { Connection, Channel } from "amqplib";
-// import Config from "./Config";
-
-export const RabbitMQ: { connection: Connection | null; channel: Channel | null; init: () => Promise<void> } = {
- connection: null,
- channel: null,
- init: async function () {
- return;
- // const host = Config.get().rabbitmq.host;
- // if (!host) return;
- // console.log(`[RabbitMQ] connect: ${host}`);
- // this.connection = await amqp.connect(host, {
- // timeout: 1000 * 60,
- // });
- // console.log(`[RabbitMQ] connected`);
- // this.channel = await this.connection.createChannel();
- // console.log(`[RabbitMQ] channel created`);
- },
-};
diff --git a/util/src/util/Regex.ts b/util/src/util/Regex.ts
deleted file mode 100644
index 83fc9fe8..00000000
--- a/util/src/util/Regex.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-export const DOUBLE_WHITE_SPACE = /\s\s+/g;
-export const SPECIAL_CHAR = /[@#`:\r\n\t\f\v\p{C}]/gu;
-export const CHANNEL_MENTION = /<#(\d+)>/g;
-export const USER_MENTION = /<@!?(\d+)>/g;
-export const ROLE_MENTION = /<@&(\d+)>/g;
-export const EVERYONE_MENTION = /@everyone/g;
-export const HERE_MENTION = /@here/g;
diff --git a/util/src/util/Rights.ts b/util/src/util/Rights.ts
deleted file mode 100644
index 1c3906fb..00000000
--- a/util/src/util/Rights.ts
+++ /dev/null
@@ -1,93 +0,0 @@
-import { BitField, BitFieldResolvable, BitFlag } from "./BitField";
-import { User } from "../entities";
-import { HTTPError } from "..";
-
-export type RightResolvable = bigint | number | Rights | RightResolvable[] | RightString;
-
-type RightString = keyof typeof Rights.FLAGS;
-// TODO: just like roles for members, users should have privilidges which combine multiple rights into one and make it easy to assign
-
-export class Rights extends BitField {
- constructor(bits: BitFieldResolvable = 0) {
- super(bits);
- if (this.bitfield & Rights.FLAGS.OPERATOR) {
- this.bitfield = ALL_RIGHTS;
- }
- }
-
- static FLAGS = {
- OPERATOR: BitFlag(0), // has all rights
- MANAGE_APPLICATIONS: BitFlag(1),
- MANAGE_GUILDS: BitFlag(2),
- MANAGE_MESSAGES: BitFlag(3), // Can't see other messages but delete/edit them in channels that they can see
- MANAGE_RATE_LIMITS: BitFlag(4),
- MANAGE_ROUTING: BitFlag(5), // can create custom message routes to any channel/guild
- MANAGE_TICKETS: BitFlag(6), // can respond to and resolve support tickets
- MANAGE_USERS: BitFlag(7),
- ADD_MEMBERS: BitFlag(8), // can manually add any members in their guilds
- BYPASS_RATE_LIMITS: BitFlag(9),
- CREATE_APPLICATIONS: BitFlag(10),
- CREATE_CHANNELS: BitFlag(11), // can create guild channels or threads in the guilds that they have permission
- CREATE_DMS: BitFlag(12),
- CREATE_DM_GROUPS: BitFlag(13), // can create group DMs or custom orphan channels
- CREATE_GUILDS: BitFlag(14),
- CREATE_INVITES: BitFlag(15), // can create mass invites in the guilds that they have CREATE_INSTANT_INVITE
- CREATE_ROLES: BitFlag(16),
- CREATE_TEMPLATES: BitFlag(17),
- CREATE_WEBHOOKS: BitFlag(18),
- JOIN_GUILDS: BitFlag(19),
- PIN_MESSAGES: BitFlag(20),
- SELF_ADD_REACTIONS: BitFlag(21),
- SELF_DELETE_MESSAGES: BitFlag(22),
- SELF_EDIT_MESSAGES: BitFlag(23),
- SELF_EDIT_NAME: BitFlag(24),
- SEND_MESSAGES: BitFlag(25),
- USE_ACTIVITIES: BitFlag(26), // use (game) activities in voice channels (e.g. Watch together)
- USE_VIDEO: BitFlag(27),
- USE_VOICE: BitFlag(28),
- INVITE_USERS: BitFlag(29), // can create user-specific invites in the guilds that they have INVITE_USERS
- SELF_DELETE_DISABLE: BitFlag(30), // can disable/delete own account
- DEBTABLE: BitFlag(31), // can use pay-to-use features
- CREDITABLE: BitFlag(32), // can receive money from monetisation related features
- KICK_BAN_MEMBERS: BitFlag(33),
- // can kick or ban guild or group DM members in the guilds/groups that they have KICK_MEMBERS, or BAN_MEMBERS
- SELF_LEAVE_GROUPS: BitFlag(34),
- // can leave the guilds or group DMs that they joined on their own (one can always leave a guild or group DMs they have been force-added)
- PRESENCE: BitFlag(35),
- // inverts the presence confidentiality default (OPERATOR's presence is not routed by default, others' are) for a given user
- SELF_ADD_DISCOVERABLE: BitFlag(36), // can mark discoverable guilds that they have permissions to mark as discoverable
- MANAGE_GUILD_DIRECTORY: BitFlag(37), // can change anything in the primary guild directory
- POGGERS: BitFlag(38), // can send confetti, screenshake, random user mention (@someone)
- USE_ACHIEVEMENTS: BitFlag(39), // can use achievements and cheers
- INITIATE_INTERACTIONS: BitFlag(40), // can initiate interactions
- RESPOND_TO_INTERACTIONS: BitFlag(41), // can respond to interactions
- SEND_BACKDATED_EVENTS: BitFlag(42), // can send backdated events
- USE_MASS_INVITES: BitFlag(43), // added per @xnacly's request — can accept mass invites
- ACCEPT_INVITES: BitFlag(44) // added per @xnacly's request — can accept user-specific invites and DM requests
- };
-
- any(permission: RightResolvable, checkOperator = true) {
- return (checkOperator && super.any(Rights.FLAGS.OPERATOR)) || super.any(permission);
- }
-
- has(permission: RightResolvable, checkOperator = true) {
- return (checkOperator && super.has(Rights.FLAGS.OPERATOR)) || super.has(permission);
- }
-
- hasThrow(permission: RightResolvable) {
- if (this.has(permission)) return true;
- // @ts-ignore
- throw new HTTPError(`You are missing the following rights ${permission}`, 403);
- }
-
-}
-
-const ALL_RIGHTS = Object.values(Rights.FLAGS).reduce((total, val) => total | val, BigInt(0));
-
-export async function getRights( user_id: string
- /**, opts: {
- in_behalf?: (keyof User)[];
- } = {} **/) {
- let user = await User.findOneOrFail({ where: { id: user_id } });
- return new Rights(user.rights);
-}
diff --git a/util/src/util/Snowflake.ts b/util/src/util/Snowflake.ts
deleted file mode 100644
index 0ef178fe..00000000
--- a/util/src/util/Snowflake.ts
+++ /dev/null
@@ -1,130 +0,0 @@
-// @ts-nocheck
-import * as cluster from "cluster";
-
-// https://github.com/discordjs/discord.js/blob/master/src/util/Snowflake.js
-// Apache License Version 2.0 Copyright 2015 - 2021 Amish Shah
-("use strict");
-
-// Discord epoch (2015-01-01T00:00:00.000Z)
-
-/**
- * A container for useful snowflake-related methods.
- */
-export class Snowflake {
- static readonly EPOCH = 1420070400000;
- static INCREMENT = 0n; // max 4095
- static processId = BigInt(process.pid % 31); // max 31
- static workerId = BigInt((cluster.worker?.id || 0) % 31); // max 31
-
- constructor() {
- throw new Error(`The ${this.constructor.name} class may not be instantiated.`);
- }
-
- /**
- * A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z
- * ```
- * If we have a snowflake '266241948824764416' we can represent it as binary:
- *
- * 64 22 17 12 0
- * 000000111011000111100001101001000101000000 00001 00000 000000000000
- * number of ms since Discord epoch worker pid increment
- * ```
- * @typedef {string} Snowflake
- */
-
- /**
- * Transforms a snowflake from a decimal string to a bit string.
- * @param {Snowflake} num Snowflake to be transformed
- * @returns {string}
- * @private
- */
- static idToBinary(num) {
- let bin = "";
- let high = parseInt(num.slice(0, -10)) || 0;
- let low = parseInt(num.slice(-10));
- while (low > 0 || high > 0) {
- bin = String(low & 1) + bin;
- low = Math.floor(low / 2);
- if (high > 0) {
- low += 5000000000 * (high % 2);
- high = Math.floor(high / 2);
- }
- }
- return bin;
- }
-
- /**
- * Transforms a snowflake from a bit string to a decimal string.
- * @param {string} num Bit string to be transformed
- * @returns {Snowflake}
- * @private
- */
- static binaryToID(num) {
- let dec = "";
-
- while (num.length > 50) {
- const high = parseInt(num.slice(0, -32), 2);
- const low = parseInt((high % 10).toString(2) + num.slice(-32), 2);
-
- dec = (low % 10).toString() + dec;
- num =
- Math.floor(high / 10).toString(2) +
- Math.floor(low / 10)
- .toString(2)
- .padStart(32, "0");
- }
-
- num = parseInt(num, 2);
- while (num > 0) {
- dec = (num % 10).toString() + dec;
- num = Math.floor(num / 10);
- }
-
- return dec;
- }
-
- static generateWorkerProcess() { // worker process - returns a number
- let time = BigInt(Date.now() - Snowflake.EPOCH) << BigInt(22);
- let worker = Snowflake.workerId << 17n;
- let process = Snowflake.processId << 12n;
- let increment = Snowflake.INCREMENT++;
- return BigInt(time | worker | process | increment);
- }
-
- static generate() {
- return Snowflake.generateWorkerProcess().toString();
- }
- /**
- * A deconstructed snowflake.
- * @typedef {Object} DeconstructedSnowflake
- * @property {number} timestamp Timestamp the snowflake was created
- * @property {Date} date Date the snowflake was created
- * @property {number} workerID Worker ID in the snowflake
- * @property {number} processID Process ID in the snowflake
- * @property {number} increment Increment in the snowflake
- * @property {string} binary Binary representation of the snowflake
- */
-
- /**
- * Deconstructs a Discord snowflake.
- * @param {Snowflake} snowflake Snowflake to deconstruct
- * @returns {DeconstructedSnowflake} Deconstructed snowflake
- */
- static deconstruct(snowflake) {
- const BINARY = Snowflake.idToBinary(snowflake).toString(2).padStart(64, "0");
- const res = {
- timestamp: parseInt(BINARY.substring(0, 42), 2) + Snowflake.EPOCH,
- workerID: parseInt(BINARY.substring(42, 47), 2),
- processID: parseInt(BINARY.substring(47, 52), 2),
- increment: parseInt(BINARY.substring(52, 64), 2),
- binary: BINARY,
- };
- Object.defineProperty(res, "date", {
- get: function get() {
- return new Date(this.timestamp);
- },
- enumerable: true,
- });
- return res;
- }
-}
diff --git a/util/src/util/String.ts b/util/src/util/String.ts
deleted file mode 100644
index 55f11e8d..00000000
--- a/util/src/util/String.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { SPECIAL_CHAR } from "./Regex";
-
-export function trimSpecial(str?: string): string {
- // @ts-ignore
- if (!str) return;
- return str.replace(SPECIAL_CHAR, "").trim();
-}
diff --git a/util/src/util/Token.ts b/util/src/util/Token.ts
deleted file mode 100644
index 5a3922d1..00000000
--- a/util/src/util/Token.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import jwt, { VerifyOptions } from "jsonwebtoken";
-import { Config } from "./Config";
-import { User } from "../entities";
-
-export const JWTOptions: VerifyOptions = { algorithms: ["HS256"] };
-
-export function checkToken(token: string, jwtSecret: string): Promise<any> {
- return new Promise((res, rej) => {
- token = token.replace("Bot ", "");
- /**
- in fosscord, even with instances that have bot distinction; we won't enforce "Bot" prefix,
- as we don't really have separate pathways for bots
- **/
-
- jwt.verify(token, jwtSecret, JWTOptions, async (err, decoded: any) => {
- if (err || !decoded) return rej("Invalid Token");
-
- const user = await User.findOne({
- where: { id: decoded.id },
- select: ["data", "bot", "disabled", "deleted", "rights"]
- });
- if (!user) return rej("Invalid Token");
- // we need to round it to seconds as it saved as seconds in jwt iat and valid_tokens_since is stored in milliseconds
- if (decoded.iat * 1000 < new Date(user.data.valid_tokens_since).setSeconds(0, 0))
- return rej("Invalid Token");
- if (user.disabled) return rej("User disabled");
- if (user.deleted) return rej("User not found");
-
- return res({ decoded, user });
- });
- });
-}
-
-export async function generateToken(id: string) {
- const iat = Math.floor(Date.now() / 1000);
- const algorithm = "HS256";
-
- return new Promise((res, rej) => {
- jwt.sign(
- { id: id, iat },
- Config.get().security.jwtSecret,
- {
- algorithm,
- },
- (err, token) => {
- if (err) return rej(err);
- return res(token);
- }
- );
- });
-}
diff --git a/util/src/util/TraverseDirectory.ts b/util/src/util/TraverseDirectory.ts
deleted file mode 100644
index 3d0d6279..00000000
--- a/util/src/util/TraverseDirectory.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { Server, traverseDirectory } from "lambert-server";
-
-//if we're using ts-node, use ts files instead of js
-const extension = Symbol.for("ts-node.register.instance") in process ? "ts" : "js"
-
-const DEFAULT_FILTER = new RegExp("^([^\.].*)(?<!\.d)\.(" + extension + ")$");
-
-export function registerRoutes(server: Server, root: string) {
- return traverseDirectory(
- { dirname: root, recursive: true, filter: DEFAULT_FILTER },
- server.registerRoute.bind(server, root)
- );
-}
diff --git a/util/src/util/cdn.ts b/util/src/util/cdn.ts
deleted file mode 100644
index 9cfe4896..00000000
--- a/util/src/util/cdn.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-import FormData from "form-data";
-import { HTTPError } from "..";
-import { Config } from "./Config";
-import multer from "multer";
-import fetch from "node-fetch"
-import { nodeModuleNameResolver } from "typescript";
-
-export async function uploadFile(path: string, file?: Express.Multer.File) {
- if (!file?.buffer) throw new HTTPError("Missing file in body");
-
- const form = new FormData();
- form.append("file", file.buffer, {
- contentType: file.mimetype,
- filename: file.originalname,
- });
-
- const response = await fetch(`${Config.get().cdn.endpointPrivate || "http://localhost:3003"}${path}`, {
- headers: {
- signature: Config.get().security.requestSignature,
- ...form.getHeaders(),
- },
- method: "POST",
- body: form,
- });
- const result = await response.json();
-
- if (response.status !== 200) throw result;
- return result;
-}
-
-export async function handleFile(path: string, body?: string): Promise<string | undefined> {
- if (!body || !body.startsWith("data:")) return undefined;
- try {
- const mimetype = body.split(":")[1].split(";")[0];
- const buffer = Buffer.from(body.split(",")[1], "base64");
-
- // @ts-ignore
- const { id } = await uploadFile(path, { buffer, mimetype, originalname: "banner" });
- return id;
- } catch (error) {
- console.error(error);
- throw new HTTPError("Invalid " + path);
- }
-}
-
-export async function deleteFile(path: string) {
- const response = await fetch(`${Config.get().cdn.endpointPrivate || "http://localhost:3003"}${path}`, {
- headers: {
- signature: Config.get().security.requestSignature,
- },
- method: "DELETE",
- });
- const result = await response.json();
-
- if (response.status !== 200) throw result;
- return result;
-}
diff --git a/util/src/util/imports/Checks.ts b/util/src/util/imports/Checks.ts
deleted file mode 100644
index 19a84171..00000000
--- a/util/src/util/imports/Checks.ts
+++ /dev/null
@@ -1,125 +0,0 @@
-//source: https://github.com/Flam3rboy/-server/blob/master/src/check.ts
-import { NextFunction, Request, Response } from "express";
-import { HTTPError } from ".";
-
-const OPTIONAL_PREFIX = "$";
-const EMAIL_REGEX =
- /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
-
-export function check(schema: any) {
- return (req: Request, res: Response, next: NextFunction) => {
- try {
- const result = instanceOf(schema, req.body, { path: "body" });
- if (result === true) return next();
- throw result;
- } catch (error) {
- next(new HTTPError((error as any).toString(), 400));
- }
- };
-}
-export class Tuple {
- public types: any[];
- constructor(...types: any[]) {
- this.types = types;
- }
-}
-
-export class Email {
- constructor(public email: string) {}
- check() {
- return !!this.email.match(EMAIL_REGEX);
- }
-}
-export function instanceOf(
- type: any,
- value: any,
- { path = "", optional = false }: { path?: string; optional?: boolean } = {}
-): boolean {
- if (!type) return true; // no type was specified
-
- if (value == null) {
- if (optional) return true;
- throw `${path} is required`;
- }
-
- switch (type) {
- case String:
- if (typeof value === "string") return true;
- throw `${path} must be a string`;
- case Number:
- value = Number(value);
- if (typeof value === "number" && !isNaN(value)) return true;
- throw `${path} must be a number`;
- case BigInt:
- try {
- value = BigInt(value);
- if (typeof value === "bigint") return true;
- } catch (error) {}
- throw `${path} must be a bigint`;
- case Boolean:
- if (value == "true") value = true;
- if (value == "false") value = false;
- if (typeof value === "boolean") return true;
- throw `${path} must be a boolean`;
- case Object:
- if (typeof value === "object" && value !== null) return true;
- throw `${path} must be a object`;
- }
-
- if (typeof type === "object") {
- if (Array.isArray(type)) {
- if (!Array.isArray(value)) throw `${path} must be an array`;
- if (!type.length) return true; // type array didn't specify any type
-
- return value.every((val, i) => instanceOf(type[0], val, { path: `${path}[${i}]`, optional }));
- }
- if (type?.constructor?.name != "Object") {
- if (type instanceof Tuple) {
- if (
- (<Tuple>type).types.some((x) => {
- try {
- return instanceOf(x, value, { path, optional });
- } catch (error) {
- return false;
- }
- })
- ) {
- return true;
- }
- throw `${path} must be one of ${type.types}`;
- }
- if (type instanceof Email) {
- if ((<Email>type).check()) return true;
- throw `${path} is not a valid E-Mail`;
- }
- if (value instanceof type) return true;
- throw `${path} must be an instance of ${type}`;
- }
- if (typeof value !== "object") throw `${path} must be a object`;
-
- const diff = Object.keys(value).missing(
- Object.keys(type).map((x) => (x.startsWith(OPTIONAL_PREFIX) ? x.slice(OPTIONAL_PREFIX.length) : x))
- );
-
- if (diff.length) throw `Unkown key ${diff}`;
-
- return Object.keys(type).every((key) => {
- let newKey = key;
- const OPTIONAL = key.startsWith(OPTIONAL_PREFIX);
- if (OPTIONAL) newKey = newKey.slice(OPTIONAL_PREFIX.length);
-
- return instanceOf(type[key], value[newKey], {
- path: `${path}.${newKey}`,
- optional: OPTIONAL,
- });
- });
- } else if (typeof type === "number" || typeof type === "string" || typeof type === "boolean") {
- if (value === type) return true;
- throw `${path} must be ${value}`;
- } else if (typeof type === "bigint") {
- if (BigInt(value) === type) return true;
- throw `${path} must be ${value}`;
- }
-
- return type == value;
-}
diff --git a/util/src/util/imports/HTTPError.ts b/util/src/util/imports/HTTPError.ts
deleted file mode 100644
index 56a7dd55..00000000
--- a/util/src/util/imports/HTTPError.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export class HTTPError extends Error {
- constructor(message: string, public code: number = 400) {
- super(message);
- }
-}
\ No newline at end of file
diff --git a/util/src/util/imports/OrmUtils.ts b/util/src/util/imports/OrmUtils.ts
deleted file mode 100644
index 91d88172..00000000
--- a/util/src/util/imports/OrmUtils.ts
+++ /dev/null
@@ -1,113 +0,0 @@
-//source: https://github.com/typeorm/typeorm/blob/master/src/util/OrmUtils.ts
-export class OrmUtils {
- // Checks if it's an object made by Object.create(null), {} or new Object()
- private static isPlainObject(item: any) {
- if (item === null || item === undefined) {
- return false
- }
-
- return !item.constructor || item.constructor === Object
- }
-
- private static mergeArrayKey(
- target: any,
- key: number,
- value: any,
- memo: Map<any, any>,
- ) {
- // Have we seen this before? Prevent infinite recursion.
- if (memo.has(value)) {
- target[key] = memo.get(value)
- return
- }
-
- if (value instanceof Promise) {
- // Skip promises entirely.
- // This is a hold-over from the old code & is because we don't want to pull in
- // the lazy fields. Ideally we'd remove these promises via another function first
- // but for now we have to do it here.
- return
- }
-
- if (!this.isPlainObject(value) && !Array.isArray(value)) {
- target[key] = value
- return
- }
-
- if (!target[key]) {
- target[key] = Array.isArray(value) ? [] : {}
- }
-
- memo.set(value, target[key])
- this.merge(target[key], value, memo)
- memo.delete(value)
- }
-
- private static mergeObjectKey(
- target: any,
- key: string,
- value: any,
- memo: Map<any, any>,
- ) {
- // Have we seen this before? Prevent infinite recursion.
- if (memo.has(value)) {
- Object.assign(target, { [key]: memo.get(value) })
- return
- }
-
- if (value instanceof Promise) {
- // Skip promises entirely.
- // This is a hold-over from the old code & is because we don't want to pull in
- // the lazy fields. Ideally we'd remove these promises via another function first
- // but for now we have to do it here.
- return
- }
-
- if (!this.isPlainObject(value) && !Array.isArray(value)) {
- Object.assign(target, { [key]: value })
- return
- }
-
- if (!target[key]) {
- Object.assign(target, { [key]: value })
- }
-
- memo.set(value, target[key])
- this.merge(target[key], value, memo)
- memo.delete(value)
- }
-
- private static merge(
- target: any,
- source: any,
- memo: Map<any, any> = new Map(),
- ): any {
- if (Array.isArray(target) && Array.isArray(source)) {
- for (let key = 0; key < source.length; key++) {
- this.mergeArrayKey(target, key, source[key], memo)
- }
- }
- else {
- for (const key of Object.keys(source)) {
- this.mergeObjectKey(target, key, source[key], memo)
- }
- }
-
-
- }
-
- /**
- * Deep Object.assign.
- */
- static mergeDeep(target: any, ...sources: any[]): any {
- if (!sources.length) {
- return target
- }
-
- for (const source of sources) {
- OrmUtils.merge(target, source)
- }
-
- return target
- }
-}
\ No newline at end of file
diff --git a/util/src/util/imports/index.ts b/util/src/util/imports/index.ts
deleted file mode 100644
index 18c47a3b..00000000
--- a/util/src/util/imports/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export * from './Checks';
-export * from './HTTPError';
-export * from './OrmUtils';
\ No newline at end of file
diff --git a/util/src/util/index.ts b/util/src/util/index.ts
deleted file mode 100644
index 9e6059fa..00000000
--- a/util/src/util/index.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-export * from "./ApiError";
-export * from "./BitField";
-export * from "./Token";
-export * from "./imports/HTTPError";
-export * from "./imports/OrmUtils";
-//export * from "./Categories";
-export * from "./cdn";
-export * from "./Config";
-export * from "./Constants";
-export * from "./Database";
-export * from "./Email";
-export * from "./Event";
-export * from "./FieldError";
-export * from "./Intents";
-export * from "./MessageFlags";
-export * from "./Permissions";
-export * from "./RabbitMQ";
-export * from "./Regex";
-export * from "./Rights";
-export * from "./Snowflake";
-export * from "./String";
-export * from "./Array";
-export * from "./TraverseDirectory";
-export * from "./InvisibleCharacters";
-
-export * from "./imports/index";
diff --git a/util/tests/User.test.js b/util/tests/User.test.js
deleted file mode 100644
index c0852ebc..00000000
--- a/util/tests/User.test.js
+++ /dev/null
@@ -1,43 +0,0 @@
-const { initDatabase, closeDatabase } = require("../dist/util/Database");
-const { User } = require("../dist/entities/User");
-jest.setTimeout(20000);
-
-beforeAll((done) => {
- initDatabase().then(() => {
- done();
- });
-});
-
-afterAll(() => {
- closeDatabase();
-});
-
-describe("User", () => {
- test("valid discriminator: 1", async () => {
- new User({ discriminator: "1" }).validate();
- });
- test("invalid discriminator: test", async () => {
- expect(() => {
- new User({ discriminator: "test" }).validate();
- }).toThrow();
- });
-
- test("invalid discriminator: 0", async () => {
- expect(() => {
- new User({ discriminator: "0" }).validate();
- }).toThrow();
- });
-
- test("add guild", async () => {
- try {
- await new User({ guilds: [], discriminator: "1" }, { id: "0" }).save();
- const user = await User.find("0");
-
- user.guilds.push(new Guild({ name: "test" }));
-
- user.save();
- } catch (error) {
- console.error(error);
- }
- });
-});
diff --git a/util/tests/setupJest.js b/util/tests/setupJest.js
deleted file mode 100644
index 378d72d5..00000000
--- a/util/tests/setupJest.js
+++ /dev/null
@@ -1,23 +0,0 @@
-const { performance } = require("perf_hooks");
-const fs = require("fs");
-const path = require("path");
-
-// fs.unlinkSync(path.join(__dirname, "..", "database.db"));
-
-global.expect.extend({
- toBeFasterThan: async (func, target) => {
- const start = performance.now();
- let error;
- try {
- await func();
- } catch (e) {
- error = e.toString();
- }
- const time = performance.now() - start;
-
- return {
- pass: time < target && !error,
- message: () => error || `${func.name} took ${time}ms of maximum ${target}`,
- };
- },
-});
diff --git a/util/tsconfig.json b/util/tsconfig.json
deleted file mode 100644
index a5d5ae05..00000000
--- a/util/tsconfig.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "include": ["src/**/*.ts"],
- "compilerOptions": {
- /* Visit https://aka.ms/tsconfig.json to read more about this file */
-
- /* Basic Options */
- "incremental": false /* Enable incremental compilation */,
- "target": "ES6" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */,
- "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */,
- "lib": ["ES2021"] /* Specify library files to be included in the compilation. */,
- "allowJs": true /* Allow javascript files to be compiled. */,
- "checkJs": true /* Report errors in .js files. */,
- // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
- "declaration": true /* Generates corresponding '.d.ts' file. */,
- "declarationMap": false /* Generates a sourcemap for each corresponding '.d.ts' file. */,
- "sourceMap": true /* Generates corresponding '.map' file. */,
- // "outFile": "./", /* Concatenate and emit output to single file. */
- "outDir": "./dist/" /* Redirect output structure to the directory. */,
- "rootDir": "./src/" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */,
- // "composite": true, /* Enable project compilation */
- // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */
- // "removeComments": true, /* Do not emit comments to output. */
- // "noEmit": true, /* Do not emit outputs. */
- // "importHelpers": true, /* Import emit helpers from 'tslib'. */
- // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
- // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
-
- /* Strict Type-Checking Options */
- "strict": true /* Enable all strict type-checking options. */,
- "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */,
- "strictNullChecks": true /* Enable strict null checks. */,
- // "strictFunctionTypes": true, /* Enable strict checking of function types. */
- // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
- "strictPropertyInitialization": false /* Enable strict checking of property initialization in classes. */,
- // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */
- "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */,
-
- /* Additional Checks */
- // "noUnusedLocals": true, /* Report errors on unused locals. */
- // "noUnusedParameters": true, /* Report errors on unused parameters. */
- // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
- // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
-
- /* Module Resolution Options */
- // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
- // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */
- // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
- // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
- // "typeRoots": [], /* List of folders to include type definitions from. */
- "types": ["node"] /* Type declaration files to be included in compilation. */,
- // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
- "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */,
- // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
- // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
-
- /* Source Map Options */
- // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
- // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
- // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
- // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
-
- /* Experimental Options */
- // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
- // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
-
- /* Advanced Options */
- "skipLibCheck": true /* Skip type checking of declaration files. */,
- "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */,
- "emitDecoratorMetadata": true,
- "experimentalDecorators": true,
- "resolveJsonModule": true
- }
-}
|