diff --git a/.vscode/settings.json b/.vscode/settings.json index 9634ae8a9..157764f52 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,17 @@ { "git.ignoreLimitWarning": true, + "[javascript]": { + "editor.defaultFormatter": "biomejs.biome", + "editor.codeActionsOnSave": { + "source.organizeImports.biome": "explicit" + } + }, + "[typescript]": { + "editor.defaultFormatter": "biomejs.biome", + "editor.codeActionsOnSave": { + "source.organizeImports.biome": "explicit" + } + }, "sqltools.connections": [ { "mysqlOptions": { diff --git a/backend/.eslintignore b/backend/.eslintignore deleted file mode 100644 index 1ae86fe5e..000000000 --- a/backend/.eslintignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -**/*.min.js -build -coverage \ No newline at end of file diff --git a/backend/.eslintrc.js b/backend/.eslintrc.js deleted file mode 100644 index 00ae08b1b..000000000 --- a/backend/.eslintrc.js +++ /dev/null @@ -1,213 +0,0 @@ -// eslint-disable-next-line import/no-commonjs, import/unambiguous -module.exports = { - root: true, - env: { - node: true, - }, - parser: '@typescript-eslint/parser', - plugins: ['prettier', '@typescript-eslint', 'type-graphql', 'import', 'n', 'promise'], - extends: [ - 'standard', - 'eslint:recommended', - 'plugin:prettier/recommended', - 'plugin:import/recommended', - 'plugin:import/typescript', - 'plugin:security/recommended', - 'plugin:@eslint-community/eslint-comments/recommended', - ], - settings: { - 'import/parsers': { - '@typescript-eslint/parser': ['.ts', '.tsx'], - }, - 'import/resolver': { - typescript: { - project: ['./tsconfig.json', '**/tsconfig.json'], - }, - node: true, - }, - // the parser cannot handle the split sodium import - 'import/ignore': ['sodium-native'], - }, - rules: { - 'no-console': 'error', - camelcase: ['error', { allow: ['FederationClient_*', 'crypto_*', 'randombytes_random'] }], - 'no-debugger': 'error', - 'prettier/prettier': [ - 'error', - { - htmlWhitespaceSensitivity: 'ignore', - }, - ], - // import - 'import/export': 'error', - // 'import/no-deprecated': 'error', - 'import/no-empty-named-blocks': 'error', - 'import/no-extraneous-dependencies': 'error', - 'import/no-mutable-exports': 'error', - 'import/no-unused-modules': 'error', - 'import/no-named-as-default': 'error', - 'import/no-named-as-default-member': 'error', - 'import/no-amd': 'error', - 'import/no-commonjs': 'error', - 'import/no-import-module-exports': 'error', - 'import/no-nodejs-modules': 'off', - 'import/unambiguous': 'error', - 'import/default': 'error', - 'import/namespace': 'error', - 'import/no-absolute-path': 'error', - 'import/no-cycle': 'error', - 'import/no-dynamic-require': 'error', - 'import/no-internal-modules': 'off', - 'import/no-relative-packages': 'error', - 'import/no-relative-parent-imports': [ - 'error', - { ignore: ['@/*', 'random-bigint', 'sodium-native'] }, - ], - 'import/no-self-import': 'error', - 'import/no-unresolved': 'error', - 'import/no-useless-path-segments': 'error', - 'import/no-webpack-loader-syntax': 'error', - 'import/consistent-type-specifier-style': 'error', - 'import/exports-last': 'off', - 'import/extensions': 'error', - 'import/first': 'error', - 'import/group-exports': 'off', - 'import/newline-after-import': 'error', - 'import/no-anonymous-default-export': 'error', - 'import/no-default-export': 'error', - 'import/no-duplicates': 'error', - 'import/no-named-default': 'error', - 'import/no-namespace': 'error', - 'import/no-unassigned-import': 'error', - 'import/order': [ - 'error', - { - groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type'], - 'newlines-between': 'always', - pathGroups: [ - { - pattern: '@?*/**', - group: 'external', - position: 'after', - }, - { - pattern: '@/**', - group: 'external', - position: 'after', - }, - ], - alphabetize: { - order: 'asc' /* sort in ascending order. Options: ['ignore', 'asc', 'desc'] */, - caseInsensitive: true /* ignore case. Options: [true, false] */, - }, - distinctGroup: true, - }, - ], - 'import/prefer-default-export': 'off', - // n - 'n/handle-callback-err': 'error', - 'n/no-callback-literal': 'error', - 'n/no-exports-assign': 'error', - 'n/no-extraneous-import': 'error', - 'n/no-extraneous-require': 'error', - 'n/no-hide-core-modules': 'error', - 'n/no-missing-import': 'off', // not compatible with typescript - 'n/no-missing-require': 'error', - 'n/no-new-require': 'error', - 'n/no-path-concat': 'error', - 'n/no-process-exit': 'error', - 'n/no-unpublished-bin': 'error', - 'n/no-unpublished-import': 'off', // TODO need to exclude seeds - 'n/no-unpublished-require': 'error', - 'n/no-unsupported-features': ['error', { ignores: ['modules'] }], - 'n/no-unsupported-features/es-builtins': 'error', - 'n/no-unsupported-features/es-syntax': 'error', - 'n/no-unsupported-features/node-builtins': 'error', - 'n/process-exit-as-throw': 'error', - 'n/shebang': 'error', - 'n/callback-return': 'error', - 'n/exports-style': 'error', - 'n/file-extension-in-import': 'off', - 'n/global-require': 'error', - 'n/no-mixed-requires': 'error', - 'n/no-process-env': 'error', - 'n/no-restricted-import': 'error', - 'n/no-restricted-require': 'error', - 'n/no-sync': 'error', - 'n/prefer-global/buffer': 'error', - 'n/prefer-global/console': 'error', - 'n/prefer-global/process': 'error', - 'n/prefer-global/text-decoder': 'error', - 'n/prefer-global/text-encoder': 'error', - 'n/prefer-global/url': 'error', - 'n/prefer-global/url-search-params': 'error', - 'n/prefer-promises/dns': 'error', - 'n/prefer-promises/fs': 'error', - // promise - 'promise/catch-or-return': 'error', - 'promise/no-return-wrap': 'error', - 'promise/param-names': 'error', - 'promise/always-return': 'error', - 'promise/no-native': 'off', - 'promise/no-nesting': 'warn', - 'promise/no-promise-in-callback': 'warn', - 'promise/no-callback-in-promise': 'warn', - 'promise/avoid-new': 'warn', - 'promise/no-new-statics': 'error', - 'promise/no-return-in-finally': 'warn', - 'promise/valid-params': 'warn', - 'promise/prefer-await-to-callbacks': 'error', - 'promise/no-multiple-resolved': 'error', - // eslint comments - '@eslint-community/eslint-comments/disable-enable-pair': ['error', { allowWholeFile: true }], - '@eslint-community/eslint-comments/no-restricted-disable': 'error', - '@eslint-community/eslint-comments/no-use': 'off', - '@eslint-community/eslint-comments/require-description': 'off', - }, - overrides: [ - // only for ts files - { - files: ['*.ts', '*.tsx'], - extends: [ - 'plugin:@typescript-eslint/recommended', - 'plugin:@typescript-eslint/recommended-requiring-type-checking', - 'plugin:@typescript-eslint/strict', - 'plugin:type-graphql/recommended', - ], - rules: { - // allow explicitly defined dangling promises - '@typescript-eslint/no-floating-promises': ['error', { ignoreVoid: true }], - 'no-void': ['error', { allowAsStatement: true }], - // ignore prefer-regexp-exec rule to allow string.match(regex) - '@typescript-eslint/prefer-regexp-exec': 'off', - // this should not run on ts files: https://github.com/import-js/eslint-plugin-import/issues/2215#issuecomment-911245486 - 'import/unambiguous': 'off', - // this is not compatible with typeorm, due to joined tables can be null, but are not defined as nullable - '@typescript-eslint/no-unnecessary-condition': 'off', - }, - parserOptions: { - tsconfigRootDir: __dirname, - project: ['./tsconfig.json', '**/tsconfig.json'], - // this is to properly reference the referenced project database without requirement of compiling it - // eslint-disable-next-line camelcase - EXPERIMENTAL_useSourceOfProjectReferenceRedirect: true, - }, - }, - { - files: ['*.test.ts'], - plugins: ['jest'], - env: { - jest: true, - }, - rules: { - 'jest/no-disabled-tests': 'error', - 'jest/no-focused-tests': 'error', - 'jest/no-identical-title': 'error', - 'jest/prefer-to-have-length': 'error', - 'jest/valid-expect': 'error', - '@typescript-eslint/unbound-method': 'off', - 'jest/unbound-method': 'error', - }, - }, - ], -} diff --git a/backend/.prettierrc.js b/backend/.prettierrc.js deleted file mode 100644 index 8d38f2aac..000000000 --- a/backend/.prettierrc.js +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = { - printWidth: 100, - tabWidth: 2, - useTabs: false, - semi: false, - singleQuote: true, - quoteProps: "as-needed", - jsxSingleQuote: true, - trailingComma: "all", - bracketSpacing: true, - bracketSameLine: false, - arrowParens: "always", - endOfLine: "auto", -}; diff --git a/backend/log4js-config.json b/backend/log4js-config.json index 1cbd4519c..0807e6a12 100644 --- a/backend/log4js-config.json +++ b/backend/log4js-config.json @@ -57,6 +57,20 @@ "fileNameSep" : "_", "numBackups" : 30 }, + "gms": + { + "type": "dateFile", + "filename": "../logs/backend/gms.log", + "pattern": "yyyy-MM-dd", + "layout": + { + "type": "pattern", "pattern": "%d{ISO8601} %p %c [%X{user}] [%f : %l] - %m" + }, + "compress": true, + "keepFileExt" : true, + "fileNameSep" : "_", + "numBackups" : 30 + }, "errorFile": { "type": "dateFile", @@ -137,6 +151,16 @@ "level": "debug", "enableCallStack": true }, + "gms": + { + "appenders": + [ + "gms", + "errors" + ], + "level": "debug", + "enableCallStack": true + }, "http": { "appenders": diff --git a/backend/package.json b/backend/package.json index c0d1ad430..bc3924082 100644 --- a/backend/package.json +++ b/backend/package.json @@ -12,7 +12,8 @@ "clean": "tsc --build --clean", "start": "cross-env TZ=UTC TS_NODE_BASEURL=./build node -r tsconfig-paths/register build/src/index.js", "dev": "cross-env TZ=UTC nodemon -w src --ext ts,pug,json,css --exec ts-node -r tsconfig-paths/register src/index.ts", - "lint": "eslint --max-warnings=0 .", + "lint": "biome check --error-on-warnings .", + "lint:fix": "biome check --error-on-warnings . --write", "test": "cross-env TZ=UTC NODE_ENV=development DB_DATABASE=gradido_test_backend jest --runInBand --forceExit --detectOpenHandles", "seed": "cross-env TZ=UTC NODE_ENV=development ts-node -r tsconfig-paths/register src/seeds/index.ts", "klicktipp": "cross-env TZ=UTC NODE_ENV=development ts-node -r tsconfig-paths/register src/util/executeKlicktipp.ts", @@ -58,7 +59,7 @@ "xregexp": "^5.1.1" }, "devDependencies": { - "@eslint-community/eslint-plugin-eslint-comments": "^3.2.1", + "@biomejs/biome": "1.9.4", "@types/email-templates": "^10.0.1", "@types/express": "^4.17.12", "@types/faker": "^5.5.9", @@ -70,20 +71,7 @@ "@types/nodemailer": "^6.4.4", "@types/sodium-native": "^2.3.5", "@types/uuid": "^8.3.4", - "@typescript-eslint/eslint-plugin": "^5.62.0", - "@typescript-eslint/parser": "^5.62.0", "apollo-server-testing": "^2.25.2", - "eslint": "^8.57.1", - "eslint-config-prettier": "^8.8.0", - "eslint-config-standard": "^17.0.0", - "eslint-import-resolver-typescript": "^3.5.4", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-jest": "^27.2.1", - "eslint-plugin-n": "^15.7.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-security": "^1.7.1", - "eslint-plugin-type-graphql": "^1.0.0", "faker": "^5.5.3", "graphql-tag": "^2.12.6", "jest": "^27.2.4", diff --git a/backend/src/apis/HttpRequest.ts b/backend/src/apis/HttpRequest.ts index 2c7b8b5a1..ef6f540b7 100644 --- a/backend/src/apis/HttpRequest.ts +++ b/backend/src/apis/HttpRequest.ts @@ -1,7 +1,3 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ import axios from 'axios' import { LogError } from '@/server/LogError' diff --git a/backend/src/apis/KlicktippController.ts b/backend/src/apis/KlicktippController.ts index ea6a8e47c..cb665ea7f 100644 --- a/backend/src/apis/KlicktippController.ts +++ b/backend/src/apis/KlicktippController.ts @@ -1,13 +1,6 @@ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-return */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ import { CONFIG } from '@/config' import { backendLogger as logger } from '@/server/logger' -// eslint-disable-next-line import/no-relative-parent-imports import KlicktippConnector from 'klicktipp-api' const klicktippConnector = new KlicktippConnector() @@ -18,7 +11,9 @@ export const subscribe = async ( firstName?: string, lastName?: string, ): Promise => { - if (!CONFIG.KLICKTIPP) return true + if (!CONFIG.KLICKTIPP) { + return true + } const fields = { fieldFirstName: firstName, fieldLastName: lastName, @@ -29,7 +24,9 @@ export const subscribe = async ( } export const unsubscribe = async (email: string): Promise => { - if (!CONFIG.KLICKTIPP) return true + if (!CONFIG.KLICKTIPP) { + return true + } const isLogin = await loginKlicktippUser() if (isLogin) { return await klicktippConnector.unsubscribe(email) @@ -38,12 +35,14 @@ export const unsubscribe = async (email: string): Promise => { } export const getKlickTippUser = async (email: string): Promise => { - if (!CONFIG.KLICKTIPP) return true + if (!CONFIG.KLICKTIPP) { + return true + } const isLogin = await loginKlicktippUser() if (isLogin) { try { return klicktippConnector.subscriberGet(await klicktippConnector.subscriberSearch(email)) - } catch (e) { + } catch (_e) { logger.error('Could not find subscriber', email) return false } @@ -52,7 +51,9 @@ export const getKlickTippUser = async (email: string): Promise => { } export const loginKlicktippUser = async (): Promise => { - if (!CONFIG.KLICKTIPP) return true + if (!CONFIG.KLICKTIPP) { + return true + } return await klicktippConnector.login(CONFIG.KLICKTIPP_USER, CONFIG.KLICKTIPP_PASSWORD) } @@ -62,7 +63,9 @@ export const addFieldsToSubscriber = async ( newemail = '', newsmsnumber = '', ) => { - if (!CONFIG.KLICKTIPP) return true + if (!CONFIG.KLICKTIPP) { + return true + } const isLogin = await loginKlicktippUser() if (isLogin) { try { diff --git a/backend/src/apis/dltConnector/DltConnectorClient.test.ts b/backend/src/apis/dltConnector/DltConnectorClient.test.ts index d99093a1b..f3ac103c1 100644 --- a/backend/src/apis/dltConnector/DltConnectorClient.test.ts +++ b/backend/src/apis/dltConnector/DltConnectorClient.test.ts @@ -1,8 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable security/detect-object-injection */ -/* eslint-disable @typescript-eslint/no-unsafe-return */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ - import { Connection } from '@dbTools/typeorm' import { Transaction as DbTransaction } from '@entity/Transaction' import { Decimal } from 'decimal.js-light' diff --git a/backend/src/apis/dltConnector/DltConnectorClient.ts b/backend/src/apis/dltConnector/DltConnectorClient.ts index 765d09fb4..860c64ee5 100644 --- a/backend/src/apis/dltConnector/DltConnectorClient.ts +++ b/backend/src/apis/dltConnector/DltConnectorClient.ts @@ -1,5 +1,5 @@ import { Transaction as DbTransaction } from '@entity/Transaction' -import { gql, GraphQLClient } from 'graphql-request' +import { GraphQLClient, gql } from 'graphql-request' import { CONFIG } from '@/config' import { TransactionTypeId } from '@/graphql/enum/TransactionTypeId' @@ -34,16 +34,15 @@ function getTransactionTypeString(id: TransactionTypeId): string { * A Singleton class defines the `getInstance` method that lets clients access * the unique singleton instance. */ -// eslint-disable-next-line @typescript-eslint/no-extraneous-class + export class DltConnectorClient { - // eslint-disable-next-line no-use-before-define private static instance: DltConnectorClient client: GraphQLClient /** * The Singleton's constructor should always be private to prevent direct * construction calls with the `new` operator. */ - // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function + private constructor() {} /** diff --git a/backend/src/apis/gms/ExportUsers.ts b/backend/src/apis/gms/ExportUsers.ts index 43d8200c6..82142d38b 100644 --- a/backend/src/apis/gms/ExportUsers.ts +++ b/backend/src/apis/gms/ExportUsers.ts @@ -1,9 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-return */ - import { User as DbUser } from '@entity/User' // import { createTestClient } from 'apollo-server-testing' @@ -12,30 +6,29 @@ import { User as DbUser } from '@entity/User' import { CONFIG } from '@/config' import { getHomeCommunity } from '@/graphql/resolver/util/communities' import { sendUserToGms } from '@/graphql/resolver/util/sendUserToGms' -import { createServer } from '@/server/createServer' import { LogError } from '@/server/LogError' import { backendLogger as logger } from '@/server/logger' +import { checkDBVersion } from '@/typeorm/DBVersion' +import { Connection } from '@/typeorm/connection' CONFIG.EMAIL = false // use force to copy over all user even if gmsRegistered is set to true const forceMode = process.argv.includes('--force') -const context = { - token: '', - setHeaders: { - push: (value: { key: string; value: string }): void => { - context.token = value.value - }, - // eslint-disable-next-line @typescript-eslint/no-empty-function - forEach: (): void => {}, - }, - clientTimezoneOffset: 0, -} +async function main() { + // open mysql connection + const con = await Connection.getInstance() + if (!con?.isConnected) { + logger.fatal(`Couldn't open connection to database!`) + throw new Error(`Fatal: Couldn't open connection to database`) + } -const run = async () => { - const server = await createServer(context) - // const seedClient = createTestClient(server.apollo) - const { con } = server + // check for correct database version + const dbVersion = await checkDBVersion(CONFIG.DB_VERSION) + if (!dbVersion) { + logger.fatal('Fatal: Database Version incorrect') + throw new Error('Fatal: Database Version incorrect') + } const homeCom = await getHomeCommunity() if (homeCom.gmsApiKey === null) { @@ -63,7 +56,7 @@ const run = async () => { /* const gmsUser = new GmsUser(user) try { - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument + if (await createGmsUser(homeCom.gmsApiKey, gmsUser)) { logger.debug('GMS user published successfully:', gmsUser) user.gmsRegistered = true @@ -84,7 +77,11 @@ const run = async () => { } logger.info('##gms## publishing all local users successful...') - await con.close() + await con.destroy() } -void run() +main().catch((e) => { + // biome-ignore lint/suspicious/noConsole: logger isn't used here + console.error(e) + process.exit(1) +}) diff --git a/backend/src/apis/gms/GmsClient.ts b/backend/src/apis/gms/GmsClient.ts index 9af018e1c..537fe36f2 100644 --- a/backend/src/apis/gms/GmsClient.ts +++ b/backend/src/apis/gms/GmsClient.ts @@ -1,7 +1,3 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ import axios from 'axios' import { httpAgent, httpsAgent } from '@/apis/ConnectionAgents' @@ -33,10 +29,10 @@ export async function communityList(): Promise { ) } logger.debug('responseData:', result.data.responseData.data) - // eslint-disable-next-line @typescript-eslint/no-unsafe-call + // const gmsUser = JSON.parse(result.data.responseData.data) // logger.debug('gmsUser:', gmsUser) - // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return result.data.responseData.data } catch (error: any) { logger.error('Error in Get community-user/list:', error) @@ -105,10 +101,10 @@ export async function userByUuid(uuid: string): Promise { const baseUrl = ensureUrlEndsWithSlash(CONFIG.GMS_API_URL) + // TODO: NEVER pass user JWT token to another server - serious security risk! 😱⚠️ const service = 'verify-auth-token?token='.concat(token).concat('&uuid=').concat(communityUuid) const config = { headers: { @@ -216,12 +219,15 @@ export async function verifyAuthToken( ) } logger.debug('responseData:', result.data.responseData) - // eslint-disable-next-line @typescript-eslint/no-unsafe-call + const token: string = result.data.responseData.token logger.debug('verifyAuthToken=', token) return token - } catch (error: any) { + } catch (error: unknown) { logger.error('Error in verifyAuthToken:', error) - throw new LogError(error.message) + if (error instanceof Error) { + throw new LogError(error.message) + } + throw new LogError('Unknown error in verifyAuthToken') } } diff --git a/backend/src/apis/gms/model/GmsCommunityProfile.ts b/backend/src/apis/gms/model/GmsCommunityProfile.ts index c5e80caa8..72d287868 100644 --- a/backend/src/apis/gms/model/GmsCommunityProfile.ts +++ b/backend/src/apis/gms/model/GmsCommunityProfile.ts @@ -10,7 +10,7 @@ export class GmsCommunityProfile { communityId: number radius: number description: string - // eslint-disable-next-line camelcase + api_key: string communityAuthUrl: unknown profileImage: unknown diff --git a/backend/src/apis/gms/model/GmsUserAccount.ts b/backend/src/apis/gms/model/GmsUserAccount.ts index 8d6b3652c..89b2a3d7f 100644 --- a/backend/src/apis/gms/model/GmsUserAccount.ts +++ b/backend/src/apis/gms/model/GmsUserAccount.ts @@ -11,7 +11,7 @@ export class GmsUserAccount { address: string radius: number description: string - // eslint-disable-next-line camelcase + api_key: string profileImage: unknown } diff --git a/backend/src/apis/humhub/ExportUsers.ts b/backend/src/apis/humhub/ExportUsers.ts index d4515b3ce..e36ad00e1 100644 --- a/backend/src/apis/humhub/ExportUsers.ts +++ b/backend/src/apis/humhub/ExportUsers.ts @@ -4,8 +4,8 @@ import { User } from '@entity/User' import { CONFIG } from '@/config' import { LogError } from '@/server/LogError' import { backendLogger as logger } from '@/server/logger' -import { Connection } from '@/typeorm/connection' import { checkDBVersion } from '@/typeorm/DBVersion' +import { Connection } from '@/typeorm/connection' import { HumHubClient } from './HumHubClient' import { GetUser } from './model/GetUser' @@ -39,14 +39,14 @@ async function loadUsersFromHumHub(client: HumHubClient): Promise { + for (const user of usersPage.results) { // deleted users have empty emails if (user.account.email) { humhubUsers.set(user.account.username, user) } else { skippedUsersCount++ } - }) + } page++ process.stdout.write( `load users from humhub: ${humhubUsers.size}/${usersPage.total}, skipped: ${skippedUsersCount}\r`, @@ -97,11 +97,13 @@ async function main() { userCount = users.length page++ const promises: Promise[] = [] - users.forEach((user: User) => promises.push(syncUser(user, humhubUsers))) + for (const user of users) { + promises.push(syncUser(user, humhubUsers)) + } const executedActions = await Promise.all(promises) - executedActions.forEach((executedAction: ExecutedHumhubAction) => { + for (const executedAction of executedActions) { executedHumhubActionsCount[executedAction as number]++ - }) + } // using process.stdout.write here so that carriage-return is working analog to c // printf("\rchecked user: %d/%d", dbUserCount, totalUsers); process.stdout.write(`checked user: ${dbUserCount}/${totalUsers}\r`) @@ -126,8 +128,7 @@ async function main() { } main().catch((e) => { - // eslint-disable-next-line no-console - console.error(JSON.stringify(e, null, 2)) - // eslint-disable-next-line n/no-process-exit + // biome-ignore lint/suspicious/noConsole: logger isn't used here + console.error(e) process.exit(1) }) diff --git a/backend/src/apis/humhub/HumHubClient.ts b/backend/src/apis/humhub/HumHubClient.ts index 27567e770..80eb37266 100644 --- a/backend/src/apis/humhub/HumHubClient.ts +++ b/backend/src/apis/humhub/HumHubClient.ts @@ -17,11 +17,9 @@ import { UsersResponse } from './model/UsersResponse' * HumHubClient as singleton class */ export class HumHubClient { - // eslint-disable-next-line no-use-before-define private static instance: HumHubClient private restClient: RestClient - // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function private constructor() { this.restClient = new RestClient('gradido-backend', CONFIG.HUMHUB_API_URL, undefined, { keepAlive: true, diff --git a/backend/src/apis/humhub/__mocks__/HumHubClient.ts b/backend/src/apis/humhub/__mocks__/HumHubClient.ts index cc9af4d76..2fac28324 100644 --- a/backend/src/apis/humhub/__mocks__/HumHubClient.ts +++ b/backend/src/apis/humhub/__mocks__/HumHubClient.ts @@ -10,10 +10,8 @@ import { UsersResponse } from '@/apis/humhub/model/UsersResponse' * HumHubClient as singleton class */ export class HumHubClient { - // eslint-disable-next-line no-use-before-define private static instance: HumHubClient - // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function private constructor() {} public static getInstance(): HumHubClient { diff --git a/backend/src/apis/humhub/compareHumhubUserDbUser.test.ts b/backend/src/apis/humhub/compareHumhubUserDbUser.test.ts index a3d6c7044..fa0e81530 100644 --- a/backend/src/apis/humhub/compareHumhubUserDbUser.test.ts +++ b/backend/src/apis/humhub/compareHumhubUserDbUser.test.ts @@ -1,5 +1,3 @@ -/* eslint-disable prettier/prettier */ -// eslint-disable-next-line import/no-unassigned-import import 'reflect-metadata' import { PublishNameType } from '@/graphql/enum/PublishNameType' import { communityDbUser } from '@/util/communityUser' @@ -10,73 +8,73 @@ import { GetUser } from './model/GetUser' const defaultUser = communityDbUser describe('isHumhubUserIdenticalToDbUser', () => { - beforeEach(() => { - defaultUser.firstName = 'first name' - defaultUser.lastName = 'last name' - defaultUser.alias = 'alias' - defaultUser.emailContact.email = 'email@gmail.com' - defaultUser.language = 'en' - defaultUser.gradidoID = 'gradidoID' - }) + beforeEach(() => { + defaultUser.firstName = 'first name' + defaultUser.lastName = 'last name' + defaultUser.alias = 'alias' + defaultUser.emailContact.email = 'email@gmail.com' + defaultUser.language = 'en' + defaultUser.gradidoID = 'gradidoID' + }) - it('Should return true because humhubUser was created from entity user', () => { - const humhubUser = new GetUser(defaultUser, 1) - const result = isHumhubUserIdenticalToDbUser(humhubUser, defaultUser) - expect(result).toBe(true) - }) + it('Should return true because humhubUser was created from entity user', () => { + const humhubUser = new GetUser(defaultUser, 1) + const result = isHumhubUserIdenticalToDbUser(humhubUser, defaultUser) + expect(result).toBe(true) + }) - it('Should return false, because last name differ because of publish name type', () => { - const humhubUser = new GetUser(defaultUser, 1) - defaultUser.humhubPublishName = PublishNameType.PUBLISH_NAME_FIRST - const result = isHumhubUserIdenticalToDbUser(humhubUser, defaultUser) - expect(result).toBe(false) - }) + it('Should return false, because last name differ because of publish name type', () => { + const humhubUser = new GetUser(defaultUser, 1) + defaultUser.humhubPublishName = PublishNameType.PUBLISH_NAME_FIRST + const result = isHumhubUserIdenticalToDbUser(humhubUser, defaultUser) + expect(result).toBe(false) + }) - it('Should return true, even if alias is empty', () => { - defaultUser.alias = '' - const humhubUser = new GetUser(defaultUser, 1) - const result = isHumhubUserIdenticalToDbUser(humhubUser, defaultUser) - expect(result).toBe(true) - }) + it('Should return true, even if alias is empty', () => { + defaultUser.alias = '' + const humhubUser = new GetUser(defaultUser, 1) + const result = isHumhubUserIdenticalToDbUser(humhubUser, defaultUser) + expect(result).toBe(true) + }) - it('Should return false because first name differ', () => { - const humhubUser = new GetUser(defaultUser, 1) - humhubUser.profile.firstname = 'changed first name' - const result = isHumhubUserIdenticalToDbUser(humhubUser, defaultUser) - expect(result).toBe(false) - }) - it('Should return false because last name differ', () => { - const humhubUser = new GetUser(defaultUser, 1) - humhubUser.profile.lastname = 'changed last name' - const result = isHumhubUserIdenticalToDbUser(humhubUser, defaultUser) - expect(result).toBe(false) - }) - it('Should return false because username differ', () => { - const humhubUser = new GetUser(defaultUser, 1) - humhubUser.account.username = 'changed username' - const result = isHumhubUserIdenticalToDbUser(humhubUser, defaultUser) - expect(result).toBe(false) - }) + it('Should return false because first name differ', () => { + const humhubUser = new GetUser(defaultUser, 1) + humhubUser.profile.firstname = 'changed first name' + const result = isHumhubUserIdenticalToDbUser(humhubUser, defaultUser) + expect(result).toBe(false) + }) + it('Should return false because last name differ', () => { + const humhubUser = new GetUser(defaultUser, 1) + humhubUser.profile.lastname = 'changed last name' + const result = isHumhubUserIdenticalToDbUser(humhubUser, defaultUser) + expect(result).toBe(false) + }) + it('Should return false because username differ', () => { + const humhubUser = new GetUser(defaultUser, 1) + humhubUser.account.username = 'changed username' + const result = isHumhubUserIdenticalToDbUser(humhubUser, defaultUser) + expect(result).toBe(false) + }) - it('Should return false because email differ', () => { - const humhubUser = new GetUser(defaultUser, 1) - humhubUser.account.email = 'new@gmail.com' - const result = isHumhubUserIdenticalToDbUser(humhubUser, defaultUser) - expect(result).toBe(false) - }) + it('Should return false because email differ', () => { + const humhubUser = new GetUser(defaultUser, 1) + humhubUser.account.email = 'new@gmail.com' + const result = isHumhubUserIdenticalToDbUser(humhubUser, defaultUser) + expect(result).toBe(false) + }) - it('Should return false because language differ', () => { - const humhubUser = new GetUser(defaultUser, 1) - humhubUser.account.language = 'de' - const result = isHumhubUserIdenticalToDbUser(humhubUser, defaultUser) - expect(result).toBe(false) - }) + it('Should return false because language differ', () => { + const humhubUser = new GetUser(defaultUser, 1) + humhubUser.account.language = 'de' + const result = isHumhubUserIdenticalToDbUser(humhubUser, defaultUser) + expect(result).toBe(false) + }) - it('Should return false because gradido_address differ', () => { - const humhubUser = new GetUser(defaultUser, 1) - // eslint-disable-next-line camelcase - humhubUser.profile.gradido_address = 'changed gradido address' - const result = isHumhubUserIdenticalToDbUser(humhubUser, defaultUser) - expect(result).toBe(false) - }) + it('Should return false because gradido_address differ', () => { + const humhubUser = new GetUser(defaultUser, 1) + + humhubUser.profile.gradido_address = 'changed gradido address' + const result = isHumhubUserIdenticalToDbUser(humhubUser, defaultUser) + expect(result).toBe(false) + }) }) diff --git a/backend/src/apis/humhub/compareHumhubUserDbUser.ts b/backend/src/apis/humhub/compareHumhubUserDbUser.ts index 9b7f0b51b..94669b6b4 100644 --- a/backend/src/apis/humhub/compareHumhubUserDbUser.ts +++ b/backend/src/apis/humhub/compareHumhubUserDbUser.ts @@ -6,18 +6,32 @@ import { Profile } from './model/Profile' function profileIsTheSame(profile: Profile, user: User): boolean { const gradidoUserProfile = new Profile(user) - if (profile.firstname !== gradidoUserProfile.firstname) return false - if (profile.lastname !== gradidoUserProfile.lastname) return false - if (profile.gradido_address !== gradidoUserProfile.gradido_address) return false + if (profile.firstname !== gradidoUserProfile.firstname) { + return false + } + if (profile.lastname !== gradidoUserProfile.lastname) { + return false + } + if (profile.gradido_address !== gradidoUserProfile.gradido_address) { + return false + } return true } function accountIsTheSame(account: Account, user: User): boolean { const gradidoUserAccount = new Account(user) - if (account.username !== gradidoUserAccount.username) return false - if (account.email !== gradidoUserAccount.email) return false - if (account.language !== gradidoUserAccount.language) return false - if (account.status !== gradidoUserAccount.status) return false + if (account.username !== gradidoUserAccount.username) { + return false + } + if (account.email !== gradidoUserAccount.email) { + return false + } + if (account.language !== gradidoUserAccount.language) { + return false + } + if (account.status !== gradidoUserAccount.status) { + return false + } return true } diff --git a/backend/src/apis/humhub/logging/ProfileLogging.view.ts b/backend/src/apis/humhub/logging/ProfileLogging.view.ts index 1c107676d..a895522c6 100644 --- a/backend/src/apis/humhub/logging/ProfileLogging.view.ts +++ b/backend/src/apis/humhub/logging/ProfileLogging.view.ts @@ -12,7 +12,7 @@ export class ProfileLoggingView extends AbstractLoggingView { return { firstname: this.self.firstname.substring(0, 3) + '...', lastname: this.self.lastname.substring(0, 3) + '...', - // eslint-disable-next-line camelcase + gradido_address: gradidoAddressParts[0] + '/' + gradidoAddressParts[1].substring(0, 3) + '...', } diff --git a/backend/src/apis/humhub/model/Account.ts b/backend/src/apis/humhub/model/Account.ts index 934b8931e..e6dc5173d 100644 --- a/backend/src/apis/humhub/model/Account.ts +++ b/backend/src/apis/humhub/model/Account.ts @@ -1,4 +1,3 @@ -/* eslint-disable camelcase */ import { User } from '@entity/User' import { convertGradidoLanguageToHumhub } from '@/apis/humhub/convertLanguage' diff --git a/backend/src/apis/humhub/model/GetUser.ts b/backend/src/apis/humhub/model/GetUser.ts index 8f50c8676..38c78dd43 100644 --- a/backend/src/apis/humhub/model/GetUser.ts +++ b/backend/src/apis/humhub/model/GetUser.ts @@ -10,6 +10,6 @@ export class GetUser extends AbstractUser { id: number guid: string - // eslint-disable-next-line camelcase + display_name: string } diff --git a/backend/src/apis/humhub/model/Profile.ts b/backend/src/apis/humhub/model/Profile.ts index baca0f7b1..9bef1a149 100644 --- a/backend/src/apis/humhub/model/Profile.ts +++ b/backend/src/apis/humhub/model/Profile.ts @@ -1,4 +1,3 @@ -/* eslint-disable camelcase */ import { User } from '@entity/User' import { CONFIG } from '@/config' diff --git a/backend/src/apis/humhub/syncUser.test.ts b/backend/src/apis/humhub/syncUser.test.ts index 00c125632..64fef715c 100644 --- a/backend/src/apis/humhub/syncUser.test.ts +++ b/backend/src/apis/humhub/syncUser.test.ts @@ -1,9 +1,8 @@ -/* eslint-disable @typescript-eslint/no-empty-function */ import { User } from '@entity/User' import { UserContact } from '@entity/UserContact' import { GetUser } from './model/GetUser' -import { syncUser, ExecutedHumhubAction } from './syncUser' +import { ExecutedHumhubAction, syncUser } from './syncUser' jest.mock('@/apis/humhub/HumHubClient') diff --git a/backend/src/apis/humhub/syncUser.ts b/backend/src/apis/humhub/syncUser.ts index e5b793ee3..c29d6e29f 100644 --- a/backend/src/apis/humhub/syncUser.ts +++ b/backend/src/apis/humhub/syncUser.ts @@ -3,8 +3,8 @@ import { User } from '@entity/User' import { LogError } from '@/server/LogError' import { backendLogger as logger } from '@/server/logger' -import { isHumhubUserIdenticalToDbUser } from './compareHumhubUserDbUser' import { HumHubClient } from './HumHubClient' +import { isHumhubUserIdenticalToDbUser } from './compareHumhubUserDbUser' import { GetUser } from './model/GetUser' import { PostUser } from './model/PostUser' diff --git a/backend/src/apis/openai/OpenaiClient.ts b/backend/src/apis/openai/OpenaiClient.ts index 4e766f631..b0e8314a6 100644 --- a/backend/src/apis/openai/OpenaiClient.ts +++ b/backend/src/apis/openai/OpenaiClient.ts @@ -1,4 +1,3 @@ -/* eslint-disable camelcase */ import { OpenaiThreads } from '@entity/OpenaiThreads' import { User } from '@entity/User' import { OpenAI } from 'openai' @@ -18,7 +17,7 @@ export class OpenaiClient { /** * The singleton instance of the `OpenaiClient`. */ - // eslint-disable-next-line no-use-before-define + private static instance: OpenaiClient /** diff --git a/backend/src/auth/JWT.ts b/backend/src/auth/JWT.ts index d8c6c81cf..870ec2871 100644 --- a/backend/src/auth/JWT.ts +++ b/backend/src/auth/JWT.ts @@ -6,7 +6,9 @@ import { LogError } from '@/server/LogError' import { CustomJwtPayload } from './CustomJwtPayload' export const decode = async (token: string): Promise => { - if (!token) throw new LogError('401 Unauthorized') + if (!token) { + throw new LogError('401 Unauthorized') + } try { const secret = new TextEncoder().encode(CONFIG.JWT_SECRET) @@ -15,7 +17,7 @@ export const decode = async (token: string): Promise => audience: 'urn:gradido:audience', }) return payload as CustomJwtPayload - } catch (err) { + } catch (_err) { return null } } diff --git a/backend/src/config/index.ts b/backend/src/config/index.ts index 4ef64f3ea..3f161173f 100644 --- a/backend/src/config/index.ts +++ b/backend/src/config/index.ts @@ -1,7 +1,5 @@ // ATTENTION: DO NOT PUT ANY SECRETS IN HERE (or the .env) -/* eslint-disable n/no-process-env */ -// eslint-disable-next-line import/no-unresolved import { validate } from '@config/index' import { latestDbVersion } from '@dbTools/config/detectLastDBVersion' import { Decimal } from 'decimal.js-light' @@ -89,8 +87,8 @@ const email = { EMAIL_PASSWORD: process.env.EMAIL_PASSWORD ?? '', EMAIL_SMTP_HOST: process.env.EMAIL_SMTP_HOST ?? 'mailserver', EMAIL_SMTP_PORT: Number(process.env.EMAIL_SMTP_PORT) || 1025, - // eslint-disable-next-line no-unneeded-ternary - EMAIL_TLS: process.env.EMAIL_TLS === 'false' ? false : true, + + EMAIL_TLS: process.env.EMAIL_TLS !== 'false', EMAIL_LINK_VERIFICATION: COMMUNITY_URL + (process.env.EMAIL_LINK_VERIFICATION_PATH ?? '/checkEmail/'), EMAIL_LINK_SETPASSWORD: @@ -100,11 +98,11 @@ const email = { EMAIL_LINK_OVERVIEW: COMMUNITY_URL + (process.env.EMAIL_LINK_OVERVIEW_PATH ?? '/overview'), // time in minutes a optin code is valid EMAIL_CODE_VALID_TIME: process.env.EMAIL_CODE_VALID_TIME - ? parseInt(process.env.EMAIL_CODE_VALID_TIME) ?? 1440 + ? (parseInt(process.env.EMAIL_CODE_VALID_TIME) ?? 1440) : 1440, // time in minutes that must pass to request a new optin code EMAIL_CODE_REQUEST_TIME: process.env.EMAIL_CODE_REQUEST_TIME - ? parseInt(process.env.EMAIL_CODE_REQUEST_TIME) ?? 10 + ? (parseInt(process.env.EMAIL_CODE_REQUEST_TIME) ?? 10) : 10, } diff --git a/backend/src/config/schema.ts b/backend/src/config/schema.ts index e5a2f786e..33068cc64 100644 --- a/backend/src/config/schema.ts +++ b/backend/src/config/schema.ts @@ -1,19 +1,17 @@ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -// eslint-disable-next-line import/no-unresolved import { - COMMUNITY_NAME, - COMMUNITY_URL, COMMUNITY_DESCRIPTION, + COMMUNITY_NAME, COMMUNITY_SUPPORT_MAIL, + COMMUNITY_URL, + DB_DATABASE, DB_HOST, DB_PASSWORD, DB_PORT, DB_USER, DB_VERSION, - DB_DATABASE, DECAY_START_TIME, - GDT_API_URL, GDT_ACTIVE, + GDT_API_URL, GMS_ACTIVE, GRAPHIQL, HUMHUB_ACTIVE, @@ -61,7 +59,6 @@ export const schema = Joi.object({ .description('The url for redeeming link transactions, must start with frontend base url') .default('http://0.0.0.0/redeem/') .custom((value: string, helpers: Joi.CustomHelpers): string | Joi.ErrorReport => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access if (!value.startsWith(helpers.state.ancestors[0].COMMUNITY_URL)) { return helpers.error('string.pattern.base', { value, communityUrl: COMMUNITY_URL }) } @@ -72,7 +69,6 @@ export const schema = Joi.object({ COMMUNITY_REDEEM_CONTRIBUTION_URL: Joi.string() .uri({ scheme: ['http', 'https'] }) .custom((value: string, helpers: Joi.CustomHelpers): string | Joi.ErrorReport => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access if (!value.startsWith(helpers.state.ancestors[0].COMMUNITY_URL)) { return helpers.error('string.pattern.base', { value, communityUrl: COMMUNITY_URL }) } @@ -168,7 +164,6 @@ export const schema = Joi.object({ EMAIL_LINK_VERIFICATION: Joi.string() .uri({ scheme: ['http', 'https'] }) .custom((value: string, helpers: Joi.CustomHelpers): string | Joi.ErrorReport => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access if (!value.startsWith(helpers.state.ancestors[0].COMMUNITY_URL)) { return helpers.error('string.pattern.base', { value, communityUrl: COMMUNITY_URL }) } @@ -180,7 +175,6 @@ export const schema = Joi.object({ EMAIL_LINK_SETPASSWORD: Joi.string() .uri({ scheme: ['http', 'https'] }) .custom((value: string, helpers: Joi.CustomHelpers): string | Joi.ErrorReport => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access if (!value.startsWith(helpers.state.ancestors[0].COMMUNITY_URL)) { return helpers.error('string.pattern.base', { value, communityUrl: COMMUNITY_URL }) } @@ -192,7 +186,6 @@ export const schema = Joi.object({ EMAIL_LINK_FORGOTPASSWORD: Joi.string() .uri({ scheme: ['http', 'https'] }) .custom((value: string, helpers: Joi.CustomHelpers): string | Joi.ErrorReport => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access if (!value.startsWith(helpers.state.ancestors[0].COMMUNITY_URL)) { return helpers.error('string.pattern.base', { value, communityUrl: COMMUNITY_URL }) } @@ -204,7 +197,6 @@ export const schema = Joi.object({ EMAIL_LINK_OVERVIEW: Joi.string() .uri({ scheme: ['http', 'https'] }) .custom((value: string, helpers: Joi.CustomHelpers): string | Joi.ErrorReport => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-unsafe-member-access if (!value.startsWith(helpers.state.ancestors[0].COMMUNITY_URL)) { return helpers.error('string.pattern.base', { value, communityUrl: COMMUNITY_URL }) } diff --git a/backend/src/data/ContributionMessage.builder.ts b/backend/src/data/ContributionMessage.builder.ts index 02ac28a69..32abd14ae 100644 --- a/backend/src/data/ContributionMessage.builder.ts +++ b/backend/src/data/ContributionMessage.builder.ts @@ -4,7 +4,6 @@ import { User } from '@entity/User' import { ContributionMessageType } from '@/graphql/enum/ContributionMessageType' -// eslint-disable-next-line @typescript-eslint/no-extraneous-class export class ContributionMessageBuilder { private contributionMessage: ContributionMessage diff --git a/backend/src/data/PublishName.logic.ts b/backend/src/data/PublishName.logic.ts index b70a29bb3..d2541693c 100644 --- a/backend/src/data/PublishName.logic.ts +++ b/backend/src/data/PublishName.logic.ts @@ -18,7 +18,6 @@ export class PublishNameLogic { // remove character which are invalid for humhub username private filterOutInvalidChar(name: string) { - // eslint-disable-next-line import/no-named-as-default-member return XRegExp.match(name, this.usernameRegex, 'all').join('') } @@ -62,8 +61,8 @@ export class PublishNameLogic { return publishNameType === PublishNameType.PUBLISH_NAME_FULL ? lastName.slice(0, 20) : publishNameType === PublishNameType.PUBLISH_NAME_FIRST_INITIAL && lastName.length > 0 - ? lastName.charAt(0) - : '' + ? lastName.charAt(0) + : '' } /** @@ -92,8 +91,8 @@ export class PublishNameLogic { return this.isUsernameFromAlias(publishNameType) ? this.getUsernameFromAlias() : this.isUsernameFromInitials(publishNameType) - ? this.getUsernameFromInitials() - : (this.getFirstName(publishNameType) + ' ' + this.getLastName(publishNameType)).trim() + ? this.getUsernameFromInitials() + : (this.getFirstName(publishNameType) + ' ' + this.getLastName(publishNameType)).trim() } public getUsernameFromInitials(): string { diff --git a/backend/src/emails/sendEmailTranslated.test.ts b/backend/src/emails/sendEmailTranslated.test.ts index f38342985..917d80ea6 100644 --- a/backend/src/emails/sendEmailTranslated.test.ts +++ b/backend/src/emails/sendEmailTranslated.test.ts @@ -1,7 +1,6 @@ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ import { createTransport } from 'nodemailer' -import { logger, i18n } from '@test/testSetup' +import { i18n, logger } from '@test/testSetup' import { CONFIG } from '@/config' @@ -103,12 +102,10 @@ describe('sendEmailTranslated', () => { }) }) - // eslint-disable-next-line jest/no-disabled-tests it.skip('calls "i18n.setLocale" with "en"', () => { expect(i18n.setLocale).toBeCalledWith('en') }) - // eslint-disable-next-line jest/no-disabled-tests it.skip('calls "i18n.__" for translation', () => { expect(i18n.__).toBeCalled() }) diff --git a/backend/src/emails/sendEmailTranslated.ts b/backend/src/emails/sendEmailTranslated.ts index f78ecf805..ae52b3975 100644 --- a/backend/src/emails/sendEmailTranslated.ts +++ b/backend/src/emails/sendEmailTranslated.ts @@ -1,5 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-return */ import path from 'path' import Email from 'email-templates' diff --git a/backend/src/emails/sendEmailVariants.test.ts b/backend/src/emails/sendEmailVariants.test.ts index 88cd851d2..5028e4dd4 100644 --- a/backend/src/emails/sendEmailVariants.test.ts +++ b/backend/src/emails/sendEmailVariants.test.ts @@ -1,29 +1,24 @@ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-return */ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ import { Connection } from '@dbTools/typeorm' import { ApolloServerTestClient } from 'apollo-server-testing' import { Decimal } from 'decimal.js-light' import { testEnvironment } from '@test/helpers' -import { logger, i18n as localization } from '@test/testSetup' +import { i18n as localization, logger } from '@test/testSetup' import { CONFIG } from '@/config' -// eslint-disable-next-line import/no-namespace import * as sendEmailTranslatedApi from './sendEmailTranslated' import { - sendAddedContributionMessageEmail, sendAccountActivationEmail, sendAccountMultiRegistrationEmail, + sendAddedContributionMessageEmail, + sendContributionChangedByModeratorEmail, sendContributionConfirmedEmail, - sendContributionDeniedEmail, sendContributionDeletedEmail, + sendContributionDeniedEmail, sendResetPasswordEmail, sendTransactionLinkRedeemedEmail, sendTransactionReceivedEmail, - sendContributionChangedByModeratorEmail, } from './sendEmailVariants' const testMailServerHost = 'localhost' @@ -69,7 +64,6 @@ afterAll(async () => { const sendEmailTranslatedSpy = jest.spyOn(sendEmailTranslatedApi, 'sendEmailTranslated') describe('sendEmailVariants', () => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any let result: any describe('sendAddedContributionMessageEmail', () => { diff --git a/backend/src/federation/authenticateCommunities.ts b/backend/src/federation/authenticateCommunities.ts index 56899d4b0..f2b140bbf 100644 --- a/backend/src/federation/authenticateCommunities.ts +++ b/backend/src/federation/authenticateCommunities.ts @@ -3,7 +3,7 @@ import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCom import { validate as validateUUID, version as versionUUID } from 'uuid' import { CONFIG } from '@/config' -// eslint-disable-next-line camelcase + import { AuthenticationClient as V1_0_AuthenticationClient } from '@/federation/client/1_0/AuthenticationClient' import { backendLogger as logger } from '@/server/logger' import { ensureUrlEndsWithSlash } from '@/util/utilities' @@ -35,7 +35,7 @@ export async function startCommunityAuthentication( ) { try { const client = AuthenticationClientFactory.getInstance(foreignFedCom) - // eslint-disable-next-line camelcase + if (client instanceof V1_0_AuthenticationClient) { const args = new OpenConnectionArgs() args.publicKey = homeCom.publicKey.toString('hex') diff --git a/backend/src/federation/client/1_0/SendCoinsClient.ts b/backend/src/federation/client/1_0/SendCoinsClient.ts index 2c3fcce4c..3d72d961b 100644 --- a/backend/src/federation/client/1_0/SendCoinsClient.ts +++ b/backend/src/federation/client/1_0/SendCoinsClient.ts @@ -132,7 +132,7 @@ export class SendCoinsClient { { args }, ) logger.debug(`X-Com: SendCoinsClient: after revertSettledSendCoins: data=`, data) - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + if (!data?.revertSettledSendCoins) { logger.warn( 'X-Com: SendCoinsClient: revertSettledSendCoins without response data from endpoint', diff --git a/backend/src/federation/client/1_0/logging/PublicCommunityInfoLogging.view.ts b/backend/src/federation/client/1_0/logging/PublicCommunityInfoLogging.view.ts index 3151bbb31..af3f80758 100644 --- a/backend/src/federation/client/1_0/logging/PublicCommunityInfoLogging.view.ts +++ b/backend/src/federation/client/1_0/logging/PublicCommunityInfoLogging.view.ts @@ -7,7 +7,6 @@ export class PublicCommunityInfoLoggingView extends AbstractLoggingView { super() } - // eslint-disable-next-line @typescript-eslint/no-explicit-any public toJSON(): any { return { name: this.self.name, diff --git a/backend/src/federation/client/1_0/logging/SendCoinsArgsLogging.view.ts b/backend/src/federation/client/1_0/logging/SendCoinsArgsLogging.view.ts index 2df149133..34085da6a 100644 --- a/backend/src/federation/client/1_0/logging/SendCoinsArgsLogging.view.ts +++ b/backend/src/federation/client/1_0/logging/SendCoinsArgsLogging.view.ts @@ -7,7 +7,6 @@ export class SendCoinsArgsLoggingView extends AbstractLoggingView { super() } - // eslint-disable-next-line @typescript-eslint/no-explicit-any public toJSON(): any { return { recipientCommunityUuid: this.self.recipientCommunityUuid, diff --git a/backend/src/federation/client/1_0/logging/SendCoinsResultLogging.view.ts b/backend/src/federation/client/1_0/logging/SendCoinsResultLogging.view.ts index b605eb1db..a16336fa5 100644 --- a/backend/src/federation/client/1_0/logging/SendCoinsResultLogging.view.ts +++ b/backend/src/federation/client/1_0/logging/SendCoinsResultLogging.view.ts @@ -7,7 +7,6 @@ export class SendCoinsResultLoggingView extends AbstractLoggingView { super() } - // eslint-disable-next-line @typescript-eslint/no-explicit-any public toJSON(): any { return { vote: this.self.vote, diff --git a/backend/src/federation/client/1_0/model/GetPublicKeyResult.ts b/backend/src/federation/client/1_0/model/GetPublicKeyResult.ts index 696c96cfe..1582ad892 100644 --- a/backend/src/federation/client/1_0/model/GetPublicKeyResult.ts +++ b/backend/src/federation/client/1_0/model/GetPublicKeyResult.ts @@ -1,8 +1,6 @@ -// eslint-disable-next-line @typescript-eslint/no-unused-vars import { Field, ObjectType } from 'type-graphql' @ObjectType() -// eslint-disable-next-line @typescript-eslint/no-unused-vars export class GetPublicKeyResult { constructor(pubKey: string) { this.publicKey = pubKey diff --git a/backend/src/federation/client/1_1/AuthenticationClient.ts b/backend/src/federation/client/1_1/AuthenticationClient.ts index bbb4e8140..92e51b60a 100644 --- a/backend/src/federation/client/1_1/AuthenticationClient.ts +++ b/backend/src/federation/client/1_1/AuthenticationClient.ts @@ -1,5 +1,3 @@ -// eslint-disable-next-line camelcase import { AuthenticationClient as V1_0_AuthenticationClient } from '@/federation/client/1_0/AuthenticationClient' -// eslint-disable-next-line camelcase export class AuthenticationClient extends V1_0_AuthenticationClient {} diff --git a/backend/src/federation/client/1_1/FederationClient.ts b/backend/src/federation/client/1_1/FederationClient.ts index 2fdfedd92..178a44ae2 100644 --- a/backend/src/federation/client/1_1/FederationClient.ts +++ b/backend/src/federation/client/1_1/FederationClient.ts @@ -1,5 +1,3 @@ -// eslint-disable-next-line camelcase import { FederationClient as V1_0_FederationClient } from '@/federation/client/1_0/FederationClient' -// eslint-disable-next-line camelcase export class FederationClient extends V1_0_FederationClient {} diff --git a/backend/src/federation/client/1_1/SendCoinsClient.ts b/backend/src/federation/client/1_1/SendCoinsClient.ts index 586f8561e..cc804d0dc 100644 --- a/backend/src/federation/client/1_1/SendCoinsClient.ts +++ b/backend/src/federation/client/1_1/SendCoinsClient.ts @@ -1,5 +1,3 @@ -// eslint-disable-next-line camelcase import { SendCoinsClient as V1_0_SendCoinsClient } from '@/federation/client/1_0/SendCoinsClient' -// eslint-disable-next-line camelcase export class SendCoinsClient extends V1_0_SendCoinsClient {} diff --git a/backend/src/federation/client/AuthenticationClientFactory.ts b/backend/src/federation/client/AuthenticationClientFactory.ts index dc9229da6..27cd6a5c9 100644 --- a/backend/src/federation/client/AuthenticationClientFactory.ts +++ b/backend/src/federation/client/AuthenticationClientFactory.ts @@ -1,21 +1,18 @@ import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCommunity' -// eslint-disable-next-line camelcase import { AuthenticationClient as V1_0_AuthenticationClient } from '@/federation/client/1_0/AuthenticationClient' -// eslint-disable-next-line camelcase + import { AuthenticationClient as V1_1_AuthenticationClient } from '@/federation/client/1_1/AuthenticationClient' import { ApiVersionType } from '@/federation/enum/apiVersionType' -// eslint-disable-next-line camelcase type AuthenticationClient = V1_0_AuthenticationClient | V1_1_AuthenticationClient interface AuthenticationClientInstance { id: number - // eslint-disable-next-line no-use-before-define + client: AuthenticationClient } -// eslint-disable-next-line @typescript-eslint/no-extraneous-class export class AuthenticationClientFactory { private static instanceArray: AuthenticationClientInstance[] = [] @@ -23,7 +20,7 @@ export class AuthenticationClientFactory { * The Singleton's constructor should always be private to prevent direct * construction calls with the `new` operator. */ - // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function + private constructor() {} private static createAuthenticationClient = (dbCom: DbFederatedCommunity) => { diff --git a/backend/src/federation/client/FederationClientFactory.ts b/backend/src/federation/client/FederationClientFactory.ts index 6010fa5eb..90808067b 100644 --- a/backend/src/federation/client/FederationClientFactory.ts +++ b/backend/src/federation/client/FederationClientFactory.ts @@ -1,22 +1,19 @@ import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCommunity' -// eslint-disable-next-line camelcase import { FederationClient as V1_0_FederationClient } from '@/federation/client/1_0/FederationClient' -// eslint-disable-next-line camelcase + import { FederationClient as V1_1_FederationClient } from '@/federation/client/1_1/FederationClient' import { ApiVersionType } from '@/federation/enum/apiVersionType' import { ensureUrlEndsWithSlash } from '@/util/utilities' -// eslint-disable-next-line camelcase type FederationClient = V1_0_FederationClient | V1_1_FederationClient interface FederationClientInstance { id: number - // eslint-disable-next-line no-use-before-define + client: FederationClient } -// eslint-disable-next-line @typescript-eslint/no-extraneous-class export class FederationClientFactory { private static instanceArray: FederationClientInstance[] = [] @@ -24,7 +21,7 @@ export class FederationClientFactory { * The Singleton's constructor should always be private to prevent direct * construction calls with the `new` operator. */ - // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function + private constructor() {} private static createFederationClient = (dbCom: DbFederatedCommunity) => { diff --git a/backend/src/federation/client/SendCoinsClientFactory.ts b/backend/src/federation/client/SendCoinsClientFactory.ts index 2c7b90f01..5f432528f 100644 --- a/backend/src/federation/client/SendCoinsClientFactory.ts +++ b/backend/src/federation/client/SendCoinsClientFactory.ts @@ -1,21 +1,18 @@ import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCommunity' -// eslint-disable-next-line camelcase import { SendCoinsClient as V1_0_SendCoinsClient } from '@/federation/client/1_0/SendCoinsClient' -// eslint-disable-next-line camelcase + import { SendCoinsClient as V1_1_SendCoinsClient } from '@/federation/client/1_1/SendCoinsClient' import { ApiVersionType } from '@/federation/enum/apiVersionType' -// eslint-disable-next-line camelcase type SendCoinsClient = V1_0_SendCoinsClient | V1_1_SendCoinsClient interface SendCoinsClientInstance { id: number - // eslint-disable-next-line no-use-before-define + client: SendCoinsClient } -// eslint-disable-next-line @typescript-eslint/no-extraneous-class export class SendCoinsClientFactory { private static instanceArray: SendCoinsClientInstance[] = [] @@ -23,7 +20,7 @@ export class SendCoinsClientFactory { * The Singleton's constructor should always be private to prevent direct * construction calls with the `new` operator. */ - // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function + private constructor() {} private static createSendCoinsClient = (dbCom: DbFederatedCommunity) => { diff --git a/backend/src/federation/validateCommunities.test.ts b/backend/src/federation/validateCommunities.test.ts index 9ff8d545f..6b4a54af4 100644 --- a/backend/src/federation/validateCommunities.test.ts +++ b/backend/src/federation/validateCommunities.test.ts @@ -1,17 +1,10 @@ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/unbound-method */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ - import { Connection } from '@dbTools/typeorm' import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCommunity' import { ApolloServerTestClient } from 'apollo-server-testing' import { GraphQLClient } from 'graphql-request' import { Response } from 'graphql-request/dist/types' -import { testEnvironment, cleanDB } from '@test/helpers' +import { cleanDB, testEnvironment } from '@test/helpers' import { logger } from '@test/testSetup' import { validateCommunities } from './validateCommunities' @@ -62,9 +55,8 @@ describe('validate Communities', () => { describe('with one Community of api 1_0 but missing pubKey response', () => { beforeEach(async () => { jest.clearAllMocks() - // eslint-disable-next-line @typescript-eslint/require-await + jest.spyOn(GraphQLClient.prototype, 'rawRequest').mockImplementation(async () => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return return { data: {} } as Response }) const variables1 = { @@ -78,7 +70,6 @@ describe('validate Communities', () => { .into(DbFederatedCommunity) .values(variables1) .orUpdate({ - // eslint-disable-next-line camelcase conflict_target: ['id', 'publicKey', 'apiVersion'], overwrite: ['end_point', 'last_announced_at'], }) @@ -101,9 +92,8 @@ describe('validate Communities', () => { describe('with one Community of api 1_0 and not matching pubKey', () => { beforeEach(async () => { jest.clearAllMocks() - // eslint-disable-next-line @typescript-eslint/require-await + jest.spyOn(GraphQLClient.prototype, 'rawRequest').mockImplementation(async () => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return return { data: { getPublicKey: { @@ -123,15 +113,14 @@ describe('validate Communities', () => { .into(DbFederatedCommunity) .values(variables1) .orUpdate({ - // eslint-disable-next-line camelcase conflict_target: ['id', 'publicKey', 'apiVersion'], overwrite: ['end_point', 'last_announced_at'], }) .execute() /* - // eslint-disable-next-line @typescript-eslint/require-await + jest.spyOn(GraphQLClient.prototype, 'rawRequest').mockImplementation(async () => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return { data: { getPublicCommunityInfo: { @@ -183,9 +172,8 @@ describe('validate Communities', () => { describe('with one Community of api 1_0 and matching pubKey', () => { beforeEach(async () => { jest.clearAllMocks() - // eslint-disable-next-line @typescript-eslint/require-await + jest.spyOn(GraphQLClient.prototype, 'rawRequest').mockImplementation(async () => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return return { data: { getPublicKey: { @@ -205,7 +193,6 @@ describe('validate Communities', () => { .into(DbFederatedCommunity) .values(variables1) .orUpdate({ - // eslint-disable-next-line camelcase conflict_target: ['id', 'publicKey', 'apiVersion'], overwrite: ['end_point', 'last_announced_at'], }) @@ -251,9 +238,8 @@ describe('validate Communities', () => { describe('with two Communities of api 1_0 and 1_1', () => { beforeEach(async () => { jest.clearAllMocks() - // eslint-disable-next-line @typescript-eslint/require-await + jest.spyOn(GraphQLClient.prototype, 'rawRequest').mockImplementation(async () => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return return { data: { getPublicKey: { @@ -273,7 +259,6 @@ describe('validate Communities', () => { .into(DbFederatedCommunity) .values(variables2) .orUpdate({ - // eslint-disable-next-line camelcase conflict_target: ['id', 'publicKey', 'apiVersion'], overwrite: ['end_point', 'last_announced_at'], }) @@ -303,9 +288,8 @@ describe('validate Communities', () => { let dbCom: DbFederatedCommunity beforeEach(async () => { jest.clearAllMocks() - // eslint-disable-next-line @typescript-eslint/require-await + jest.spyOn(GraphQLClient.prototype, 'rawRequest').mockImplementation(async () => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return return { data: { getPublicKey: { @@ -325,7 +309,6 @@ describe('validate Communities', () => { .into(DbFederatedCommunity) .values(variables3) .orUpdate({ - // eslint-disable-next-line camelcase conflict_target: ['id', 'publicKey', 'apiVersion'], overwrite: ['end_point', 'last_announced_at'], }) diff --git a/backend/src/federation/validateCommunities.ts b/backend/src/federation/validateCommunities.ts index b76e22087..90f697500 100644 --- a/backend/src/federation/validateCommunities.ts +++ b/backend/src/federation/validateCommunities.ts @@ -1,5 +1,3 @@ -/** eslint-disable @typescript-eslint/no-unsafe-assignment */ -/** eslint-disable @typescript-eslint/no-unsafe-call */ import { IsNull } from '@dbTools/typeorm' import { Community as DbCommunity } from '@entity/Community' import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCommunity' @@ -27,8 +25,8 @@ export async function startValidateCommunities(timerInterval: number): Promise see https://javascript.info/settimeout-setinterval - setTimeout(function run() { - void validateCommunities() + setTimeout(async function run() { + await validateCommunities() setTimeout(run, timerInterval) }, timerInterval) } @@ -55,7 +53,7 @@ export async function validateCommunities(): Promise { } try { const client = FederationClientFactory.getInstance(dbCom) - // eslint-disable-next-line camelcase + if (client instanceof V1_0_FederationClient) { const pubKey = await client.getPublicKey() if (pubKey && pubKey === dbCom.publicKey.toString('hex')) { diff --git a/backend/src/graphql/arg/ContributionLinkArgs.ts b/backend/src/graphql/arg/ContributionLinkArgs.ts index 97cf3dfdd..f68b6c957 100644 --- a/backend/src/graphql/arg/ContributionLinkArgs.ts +++ b/backend/src/graphql/arg/ContributionLinkArgs.ts @@ -3,10 +3,10 @@ import { Decimal } from 'decimal.js-light' import { ArgsType, Field, Int } from 'type-graphql' import { + CONTRIBUTIONLINK_NAME_MAX_CHARS, + CONTRIBUTIONLINK_NAME_MIN_CHARS, MEMO_MAX_CHARS, MEMO_MIN_CHARS, - CONTRIBUTIONLINK_NAME_MIN_CHARS, - CONTRIBUTIONLINK_NAME_MAX_CHARS, } from '@/graphql/resolver/const/const' import { isValidDateString } from '@/graphql/validator/DateString' import { IsPositiveDecimal } from '@/graphql/validator/Decimal' diff --git a/backend/src/graphql/arg/ContributionMessageArgs.ts b/backend/src/graphql/arg/ContributionMessageArgs.ts index e20686187..8c95fadbd 100644 --- a/backend/src/graphql/arg/ContributionMessageArgs.ts +++ b/backend/src/graphql/arg/ContributionMessageArgs.ts @@ -1,5 +1,5 @@ -import { IsInt, IsString, IsEnum } from 'class-validator' -import { ArgsType, Field, Int, InputType } from 'type-graphql' +import { IsEnum, IsInt, IsString } from 'class-validator' +import { ArgsType, Field, InputType, Int } from 'type-graphql' import { ContributionMessageType } from '@enum/ContributionMessageType' diff --git a/backend/src/graphql/arg/Paginated.ts b/backend/src/graphql/arg/Paginated.ts index f66c71c21..235c7c158 100644 --- a/backend/src/graphql/arg/Paginated.ts +++ b/backend/src/graphql/arg/Paginated.ts @@ -1,6 +1,5 @@ -/* eslint-disable type-graphql/invalid-nullable-input-type */ -import { IsPositive, IsEnum } from 'class-validator' -import { ArgsType, Field, Int, InputType } from 'type-graphql' +import { IsEnum, IsPositive } from 'class-validator' +import { ArgsType, Field, InputType, Int } from 'type-graphql' import { Order } from '@enum/Order' diff --git a/backend/src/graphql/arg/SearchContributionsFilterArgs.ts b/backend/src/graphql/arg/SearchContributionsFilterArgs.ts index 7896ad67a..ad8b7747e 100644 --- a/backend/src/graphql/arg/SearchContributionsFilterArgs.ts +++ b/backend/src/graphql/arg/SearchContributionsFilterArgs.ts @@ -1,5 +1,5 @@ import { IsBoolean, IsPositive, IsString } from 'class-validator' -import { Field, ArgsType, Int, InputType } from 'type-graphql' +import { ArgsType, Field, InputType, Int } from 'type-graphql' import { ContributionStatus } from '@enum/ContributionStatus' diff --git a/backend/src/graphql/arg/SetUserRoleArgs.ts b/backend/src/graphql/arg/SetUserRoleArgs.ts index 039d190cd..48d8086ab 100644 --- a/backend/src/graphql/arg/SetUserRoleArgs.ts +++ b/backend/src/graphql/arg/SetUserRoleArgs.ts @@ -1,5 +1,5 @@ -import { IsPositive, IsEnum } from 'class-validator' -import { ArgsType, Field, Int, InputType } from 'type-graphql' +import { IsEnum, IsPositive } from 'class-validator' +import { ArgsType, Field, InputType, Int } from 'type-graphql' import { RoleNames } from '@enum/RoleNames' diff --git a/backend/src/graphql/arg/TransactionLinkFilters.ts b/backend/src/graphql/arg/TransactionLinkFilters.ts index 831a30834..0c1ae350f 100644 --- a/backend/src/graphql/arg/TransactionLinkFilters.ts +++ b/backend/src/graphql/arg/TransactionLinkFilters.ts @@ -1,4 +1,3 @@ -/* eslint-disable type-graphql/invalid-nullable-input-type */ import { IsBoolean } from 'class-validator' import { Field, InputType } from 'type-graphql' diff --git a/backend/src/graphql/arg/TransactionSendArgs.ts b/backend/src/graphql/arg/TransactionSendArgs.ts index 5bd8b89f7..523f09d46 100644 --- a/backend/src/graphql/arg/TransactionSendArgs.ts +++ b/backend/src/graphql/arg/TransactionSendArgs.ts @@ -1,4 +1,4 @@ -import { MaxLength, MinLength, IsString } from 'class-validator' +import { IsString, MaxLength, MinLength } from 'class-validator' import { Decimal } from 'decimal.js-light' import { ArgsType, Field } from 'type-graphql' diff --git a/backend/src/graphql/directive/isAuthorized.ts b/backend/src/graphql/directive/isAuthorized.ts index 5912f16f7..8ed4f7443 100644 --- a/backend/src/graphql/directive/isAuthorized.ts +++ b/backend/src/graphql/directive/isAuthorized.ts @@ -7,22 +7,25 @@ import { INALIENABLE_RIGHTS } from '@/auth/INALIENABLE_RIGHTS' import { decode, encode } from '@/auth/JWT' import { RIGHTS } from '@/auth/RIGHTS' import { - ROLE_UNAUTHORIZED, - ROLE_USER, ROLE_ADMIN, + ROLE_DLT_CONNECTOR, ROLE_MODERATOR, ROLE_MODERATOR_AI, - ROLE_DLT_CONNECTOR, + ROLE_UNAUTHORIZED, + ROLE_USER, } from '@/auth/ROLES' -import { Context } from '@/server/context' import { LogError } from '@/server/LogError' +import { Context } from '@/server/context' export const isAuthorized: AuthChecker = async ({ context }, rights) => { context.role = ROLE_UNAUTHORIZED // unauthorized user // is rights an inalienable right? - if ((rights as RIGHTS[]).reduce((acc, right) => acc && INALIENABLE_RIGHTS.includes(right), true)) + if ( + (rights as RIGHTS[]).reduce((acc, right) => acc && INALIENABLE_RIGHTS.includes(right), true) + ) { return true + } // Do we have a token? if (!context.token) { diff --git a/backend/src/graphql/input/ProjectBrandingInput.ts b/backend/src/graphql/input/ProjectBrandingInput.ts index 16585c858..d1ed4c8df 100644 --- a/backend/src/graphql/input/ProjectBrandingInput.ts +++ b/backend/src/graphql/input/ProjectBrandingInput.ts @@ -1,5 +1,5 @@ -import { IsString, IsOptional, MaxLength, IsNumber, IsBoolean, IsUrl } from 'class-validator' -import { InputType, Field, Int } from 'type-graphql' +import { IsBoolean, IsNumber, IsOptional, IsString, IsUrl, MaxLength } from 'class-validator' +import { Field, InputType, Int } from 'type-graphql' @InputType() export class ProjectBrandingInput { diff --git a/backend/src/graphql/model/AdminCommunityView.ts b/backend/src/graphql/model/AdminCommunityView.ts index b4a1664a7..96f6fe213 100644 --- a/backend/src/graphql/model/AdminCommunityView.ts +++ b/backend/src/graphql/model/AdminCommunityView.ts @@ -1,7 +1,7 @@ import { Point } from '@dbTools/typeorm' import { Community as DbCommunity } from '@entity/Community' import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCommunity' -import { ObjectType, Field } from 'type-graphql' +import { Field, ObjectType } from 'type-graphql' import { Point2Location } from '@/graphql/resolver/util/Location2Point' diff --git a/backend/src/graphql/model/AdminUpdateContribution.ts b/backend/src/graphql/model/AdminUpdateContribution.ts index b7c3df6bd..c5557ef10 100644 --- a/backend/src/graphql/model/AdminUpdateContribution.ts +++ b/backend/src/graphql/model/AdminUpdateContribution.ts @@ -1,5 +1,5 @@ import { Decimal } from 'decimal.js-light' -import { ObjectType, Field } from 'type-graphql' +import { Field, ObjectType } from 'type-graphql' @ObjectType() export class AdminUpdateContribution { diff --git a/backend/src/graphql/model/Balance.ts b/backend/src/graphql/model/Balance.ts index d992677b1..8f04004e1 100644 --- a/backend/src/graphql/model/Balance.ts +++ b/backend/src/graphql/model/Balance.ts @@ -1,5 +1,5 @@ import { Decimal } from 'decimal.js-light' -import { ObjectType, Field, Int, Float } from 'type-graphql' +import { Field, Float, Int, ObjectType } from 'type-graphql' @ObjectType() export class Balance { diff --git a/backend/src/graphql/model/ChatGptMessage.ts b/backend/src/graphql/model/ChatGptMessage.ts index fd77dd7d8..3a5f08a59 100644 --- a/backend/src/graphql/model/ChatGptMessage.ts +++ b/backend/src/graphql/model/ChatGptMessage.ts @@ -1,4 +1,4 @@ -import { ObjectType, Field } from 'type-graphql' +import { Field, ObjectType } from 'type-graphql' import { Message } from '@/apis/openai/model/Message' diff --git a/backend/src/graphql/model/Community.ts b/backend/src/graphql/model/Community.ts index 06c07875e..c3749d27a 100644 --- a/backend/src/graphql/model/Community.ts +++ b/backend/src/graphql/model/Community.ts @@ -1,5 +1,5 @@ import { Community as DbCommunity } from '@entity/Community' -import { ObjectType, Field, Int } from 'type-graphql' +import { Field, Int, ObjectType } from 'type-graphql' @ObjectType() export class Community { diff --git a/backend/src/graphql/model/CommunityStatistics.ts b/backend/src/graphql/model/CommunityStatistics.ts index 775ad183b..2b7eb62e5 100644 --- a/backend/src/graphql/model/CommunityStatistics.ts +++ b/backend/src/graphql/model/CommunityStatistics.ts @@ -1,5 +1,5 @@ import { Decimal } from 'decimal.js-light' -import { ObjectType, Field, Int } from 'type-graphql' +import { Field, Int, ObjectType } from 'type-graphql' @ObjectType() export class DynamicStatisticsFields { diff --git a/backend/src/graphql/model/Contribution.ts b/backend/src/graphql/model/Contribution.ts index dc4d65e63..301348ccc 100644 --- a/backend/src/graphql/model/Contribution.ts +++ b/backend/src/graphql/model/Contribution.ts @@ -1,7 +1,7 @@ import { Contribution as dbContribution } from '@entity/Contribution' import { User as DbUser } from '@entity/User' import { Decimal } from 'decimal.js-light' -import { ObjectType, Field, Int } from 'type-graphql' +import { Field, Int, ObjectType } from 'type-graphql' import { User } from './User' diff --git a/backend/src/graphql/model/ContributionLink.ts b/backend/src/graphql/model/ContributionLink.ts index 3d02953b3..786646c4a 100644 --- a/backend/src/graphql/model/ContributionLink.ts +++ b/backend/src/graphql/model/ContributionLink.ts @@ -1,6 +1,6 @@ import { ContributionLink as dbContributionLink } from '@entity/ContributionLink' import { Decimal } from 'decimal.js-light' -import { ObjectType, Field, Int } from 'type-graphql' +import { Field, Int, ObjectType } from 'type-graphql' import { CONFIG } from '@/config' diff --git a/backend/src/graphql/model/ContributionLinkList.ts b/backend/src/graphql/model/ContributionLinkList.ts index c35f6fae6..7f7c3b56f 100644 --- a/backend/src/graphql/model/ContributionLinkList.ts +++ b/backend/src/graphql/model/ContributionLinkList.ts @@ -1,4 +1,4 @@ -import { ObjectType, Field, Int } from 'type-graphql' +import { Field, Int, ObjectType } from 'type-graphql' import { ContributionLink } from '@model/ContributionLink' diff --git a/backend/src/graphql/model/Decay.ts b/backend/src/graphql/model/Decay.ts index 0b710c234..a32b96c13 100644 --- a/backend/src/graphql/model/Decay.ts +++ b/backend/src/graphql/model/Decay.ts @@ -1,5 +1,5 @@ import { Decimal } from 'decimal.js-light' -import { ObjectType, Field, Int } from 'type-graphql' +import { Field, Int, ObjectType } from 'type-graphql' interface DecayInterface { balance: Decimal diff --git a/backend/src/graphql/model/FederatedCommunity.ts b/backend/src/graphql/model/FederatedCommunity.ts index 01a3996ce..aefbfa4b8 100644 --- a/backend/src/graphql/model/FederatedCommunity.ts +++ b/backend/src/graphql/model/FederatedCommunity.ts @@ -1,5 +1,5 @@ import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCommunity' -import { ObjectType, Field, Int } from 'type-graphql' +import { Field, Int, ObjectType } from 'type-graphql' import { ensureUrlEndsWithSlash } from '@/util/utilities' diff --git a/backend/src/graphql/model/GdtEntry.ts b/backend/src/graphql/model/GdtEntry.ts index 43a33ba30..1ef756cb6 100644 --- a/backend/src/graphql/model/GdtEntry.ts +++ b/backend/src/graphql/model/GdtEntry.ts @@ -1,6 +1,4 @@ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { ObjectType, Field, Float, Int } from 'type-graphql' +import { Field, Float, Int, ObjectType } from 'type-graphql' import { GdtEntryType } from '@enum/GdtEntryType' @@ -12,9 +10,9 @@ export class GdtEntry { date, email, comment, - // eslint-disable-next-line camelcase + coupon_code, - // eslint-disable-next-line camelcase + gdt_entry_type_id, factor, amount2, @@ -26,9 +24,9 @@ export class GdtEntry { this.date = date this.email = email this.comment = comment - // eslint-disable-next-line camelcase + this.couponCode = coupon_code - // eslint-disable-next-line camelcase + this.gdtEntryType = gdt_entry_type_id this.factor = factor this.amount2 = amount2 diff --git a/backend/src/graphql/model/GdtEntryList.ts b/backend/src/graphql/model/GdtEntryList.ts index adbe5dbc6..480712e31 100644 --- a/backend/src/graphql/model/GdtEntryList.ts +++ b/backend/src/graphql/model/GdtEntryList.ts @@ -1,4 +1,4 @@ -import { ObjectType, Field, Int, Float } from 'type-graphql' +import { Field, Float, Int, ObjectType } from 'type-graphql' import { GdtEntry } from './GdtEntry' diff --git a/backend/src/graphql/model/KlickTipp.ts b/backend/src/graphql/model/KlickTipp.ts index 356ed391f..3fc17c3ae 100644 --- a/backend/src/graphql/model/KlickTipp.ts +++ b/backend/src/graphql/model/KlickTipp.ts @@ -1,4 +1,4 @@ -import { ObjectType, Field } from 'type-graphql' +import { Field, ObjectType } from 'type-graphql' @ObjectType() export class KlickTipp { diff --git a/backend/src/graphql/model/OpenCreation.ts b/backend/src/graphql/model/OpenCreation.ts index 46ee8117f..7a2d5c9be 100644 --- a/backend/src/graphql/model/OpenCreation.ts +++ b/backend/src/graphql/model/OpenCreation.ts @@ -1,5 +1,5 @@ import { Decimal } from 'decimal.js-light' -import { ObjectType, Field, Int } from 'type-graphql' +import { Field, Int, ObjectType } from 'type-graphql' @ObjectType() export class OpenCreation { diff --git a/backend/src/graphql/model/Pagination.ts b/backend/src/graphql/model/Pagination.ts index 761b57699..200ee3f9d 100644 --- a/backend/src/graphql/model/Pagination.ts +++ b/backend/src/graphql/model/Pagination.ts @@ -1,4 +1,4 @@ -import { ObjectType, Field, Int } from 'type-graphql' +import { Field, Int, ObjectType } from 'type-graphql' @ObjectType() export class Pagination { diff --git a/backend/src/graphql/model/ProjectBranding.ts b/backend/src/graphql/model/ProjectBranding.ts index c76289405..8f5ad6ca5 100644 --- a/backend/src/graphql/model/ProjectBranding.ts +++ b/backend/src/graphql/model/ProjectBranding.ts @@ -1,5 +1,5 @@ import { ProjectBranding as dbProjectBranding } from '@entity/ProjectBranding' -import { ObjectType, Field, Int } from 'type-graphql' +import { Field, Int, ObjectType } from 'type-graphql' @ObjectType() export class ProjectBranding { diff --git a/backend/src/graphql/model/Space.ts b/backend/src/graphql/model/Space.ts index 6f3a3cdfa..eb14a34fb 100644 --- a/backend/src/graphql/model/Space.ts +++ b/backend/src/graphql/model/Space.ts @@ -1,4 +1,4 @@ -import { ObjectType, Field, Int } from 'type-graphql' +import { Field, Int, ObjectType } from 'type-graphql' import { Space as HumhubSpace } from '@/apis/humhub/model/Space' diff --git a/backend/src/graphql/model/SpaceList.ts b/backend/src/graphql/model/SpaceList.ts index 311af84d7..2c611e211 100644 --- a/backend/src/graphql/model/SpaceList.ts +++ b/backend/src/graphql/model/SpaceList.ts @@ -1,4 +1,4 @@ -import { ObjectType, Field } from 'type-graphql' +import { Field, ObjectType } from 'type-graphql' import { SpacesResponse } from '@/apis/humhub/model/SpacesResponse' diff --git a/backend/src/graphql/model/Transaction.ts b/backend/src/graphql/model/Transaction.ts index bfc96089b..a1ad73677 100644 --- a/backend/src/graphql/model/Transaction.ts +++ b/backend/src/graphql/model/Transaction.ts @@ -1,6 +1,6 @@ import { Transaction as dbTransaction } from '@entity/Transaction' import { Decimal } from 'decimal.js-light' -import { ObjectType, Field, Int } from 'type-graphql' +import { Field, Int, ObjectType } from 'type-graphql' import { TransactionTypeId } from '@enum/TransactionTypeId' @@ -46,7 +46,7 @@ export class Transaction { this.linkedTransactionId = transaction.linkedTransactionId ?? null this.linkId = transaction.contribution ? transaction.contribution.contributionLinkId - : transaction.transactionLinkId ?? null + : (transaction.transactionLinkId ?? null) this.previousBalance = transaction.previousTransaction?.balance.toDecimalPlaces(2, Decimal.ROUND_DOWN) ?? new Decimal(0) diff --git a/backend/src/graphql/model/TransactionLink.ts b/backend/src/graphql/model/TransactionLink.ts index 995fe5d50..4b6b0e364 100644 --- a/backend/src/graphql/model/TransactionLink.ts +++ b/backend/src/graphql/model/TransactionLink.ts @@ -1,6 +1,6 @@ import { TransactionLink as dbTransactionLink } from '@entity/TransactionLink' import { Decimal } from 'decimal.js-light' -import { ObjectType, Field, Int } from 'type-graphql' +import { Field, Int, ObjectType } from 'type-graphql' import { CONFIG } from '@/config' diff --git a/backend/src/graphql/model/TransactionList.ts b/backend/src/graphql/model/TransactionList.ts index 77f9f6481..421c5a87b 100644 --- a/backend/src/graphql/model/TransactionList.ts +++ b/backend/src/graphql/model/TransactionList.ts @@ -1,4 +1,4 @@ -import { ObjectType, Field } from 'type-graphql' +import { Field, ObjectType } from 'type-graphql' import { Balance } from './Balance' import { Transaction } from './Transaction' diff --git a/backend/src/graphql/model/UnconfirmedContribution.ts b/backend/src/graphql/model/UnconfirmedContribution.ts index 5e38db6a0..ad2d914c1 100644 --- a/backend/src/graphql/model/UnconfirmedContribution.ts +++ b/backend/src/graphql/model/UnconfirmedContribution.ts @@ -1,7 +1,7 @@ import { Contribution } from '@entity/Contribution' import { User } from '@entity/User' import { Decimal } from 'decimal.js-light' -import { ObjectType, Field, Int } from 'type-graphql' +import { Field, Int, ObjectType } from 'type-graphql' @ObjectType() export class UnconfirmedContribution { diff --git a/backend/src/graphql/model/User.ts b/backend/src/graphql/model/User.ts index e7a8288f0..0e19ab33f 100644 --- a/backend/src/graphql/model/User.ts +++ b/backend/src/graphql/model/User.ts @@ -1,6 +1,6 @@ import { Point } from '@dbTools/typeorm' import { User as dbUser } from '@entity/User' -import { ObjectType, Field, Int } from 'type-graphql' +import { Field, Int, ObjectType } from 'type-graphql' import { GmsPublishLocationType } from '@enum/GmsPublishLocationType' import { PublishNameType } from '@enum/PublishNameType' diff --git a/backend/src/graphql/model/UserAdmin.ts b/backend/src/graphql/model/UserAdmin.ts index 3266e9df8..d0b5cc932 100644 --- a/backend/src/graphql/model/UserAdmin.ts +++ b/backend/src/graphql/model/UserAdmin.ts @@ -1,6 +1,6 @@ import { User } from '@entity/User' import { Decimal } from 'decimal.js-light' -import { ObjectType, Field, Int } from 'type-graphql' +import { Field, Int, ObjectType } from 'type-graphql' @ObjectType() export class UserAdmin { diff --git a/backend/src/graphql/model/UserContact.ts b/backend/src/graphql/model/UserContact.ts index 3c32229f2..a2745fb9a 100644 --- a/backend/src/graphql/model/UserContact.ts +++ b/backend/src/graphql/model/UserContact.ts @@ -1,5 +1,5 @@ import { UserContact as DbUserContact } from '@entity/UserContact' -import { ObjectType, Field, Int } from 'type-graphql' +import { Field, Int, ObjectType } from 'type-graphql' @ObjectType() export class UserContact { diff --git a/backend/src/graphql/resolver/AiChatResolver.ts b/backend/src/graphql/resolver/AiChatResolver.ts index 7c1acba73..3fd01826f 100644 --- a/backend/src/graphql/resolver/AiChatResolver.ts +++ b/backend/src/graphql/resolver/AiChatResolver.ts @@ -1,10 +1,10 @@ -import { Resolver, Mutation, Authorized, Ctx, Arg, Query } from 'type-graphql' +import { Arg, Authorized, Ctx, Mutation, Query, Resolver } from 'type-graphql' import { OpenaiMessage } from '@input/OpenaiMessage' import { ChatGptMessage } from '@model/ChatGptMessage' -import { Message } from '@/apis/openai/model/Message' import { OpenaiClient } from '@/apis/openai/OpenaiClient' +import { Message } from '@/apis/openai/model/Message' import { RIGHTS } from '@/auth/RIGHTS' import { Context } from '@/server/context' diff --git a/backend/src/graphql/resolver/BalanceResolver.ts b/backend/src/graphql/resolver/BalanceResolver.ts index c023e3510..fc55ed70d 100644 --- a/backend/src/graphql/resolver/BalanceResolver.ts +++ b/backend/src/graphql/resolver/BalanceResolver.ts @@ -1,9 +1,8 @@ -/* eslint-disable @typescript-eslint/restrict-template-expressions */ import { IsNull } from '@dbTools/typeorm' import { Transaction as dbTransaction } from '@entity/Transaction' import { TransactionLink as dbTransactionLink } from '@entity/TransactionLink' import { Decimal } from 'decimal.js-light' -import { Resolver, Query, Ctx, Authorized } from 'type-graphql' +import { Authorized, Ctx, Query, Resolver } from 'type-graphql' import { Balance } from '@model/Balance' diff --git a/backend/src/graphql/resolver/CommunityResolver.test.ts b/backend/src/graphql/resolver/CommunityResolver.test.ts index f9e6aa9ac..c8edbe0d9 100644 --- a/backend/src/graphql/resolver/CommunityResolver.test.ts +++ b/backend/src/graphql/resolver/CommunityResolver.test.ts @@ -1,10 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/unbound-method */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ - import { Connection } from '@dbTools/typeorm' import { Community as DbCommunity } from '@entity/Community' import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCommunity' @@ -13,16 +6,16 @@ import { GraphQLError } from 'graphql/error/GraphQLError' import { v4 as uuidv4 } from 'uuid' import { cleanDB, testEnvironment } from '@test/helpers' -import { logger, i18n as localization } from '@test/testSetup' +import { i18n as localization, logger } from '@test/testSetup' import { userFactory } from '@/seeds/factory/user' import { login, updateHomeCommunityQuery } from '@/seeds/graphql/mutations' import { allCommunities, - getCommunities, communitiesQuery, - getHomeCommunityQuery, + getCommunities, getCommunityByIdentifierQuery, + getHomeCommunityQuery, } from '@/seeds/graphql/queries' import { peterLustig } from '@/seeds/users/peter-lustig' @@ -31,9 +24,9 @@ import { getCommunityByUuid } from './util/communities' jest.mock('@/password/EncryptorUtils') // to do: We need a setup for the tests that closes the connection -let mutate: ApolloServerTestClient['mutate'], - query: ApolloServerTestClient['query'], - con: Connection +let mutate: ApolloServerTestClient['mutate'] +let query: ApolloServerTestClient['query'] +let con: Connection let testEnv: { mutate: ApolloServerTestClient['mutate'] diff --git a/backend/src/graphql/resolver/CommunityResolver.ts b/backend/src/graphql/resolver/CommunityResolver.ts index 8a6d2992b..5c9f52111 100644 --- a/backend/src/graphql/resolver/CommunityResolver.ts +++ b/backend/src/graphql/resolver/CommunityResolver.ts @@ -1,7 +1,7 @@ import { IsNull, Not } from '@dbTools/typeorm' import { Community as DbCommunity } from '@entity/Community' import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCommunity' -import { Resolver, Query, Authorized, Mutation, Args, Arg } from 'type-graphql' +import { Arg, Args, Authorized, Mutation, Query, Resolver } from 'type-graphql' import { Paginated } from '@arg/Paginated' import { EditCommunityInput } from '@input/EditCommunityInput' @@ -12,13 +12,13 @@ import { FederatedCommunity } from '@model/FederatedCommunity' import { RIGHTS } from '@/auth/RIGHTS' import { LogError } from '@/server/LogError' +import { Location2Point } from './util/Location2Point' import { getAllCommunities, getCommunityByIdentifier, getCommunityByUuid, getHomeCommunity, } from './util/communities' -import { Location2Point } from './util/Location2Point' @Resolver() export class CommunityResolver { diff --git a/backend/src/graphql/resolver/ContributionLinkResolver.test.ts b/backend/src/graphql/resolver/ContributionLinkResolver.test.ts index 3a3196c85..36dd55ffd 100644 --- a/backend/src/graphql/resolver/ContributionLinkResolver.test.ts +++ b/backend/src/graphql/resolver/ContributionLinkResolver.test.ts @@ -1,5 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ import { Connection } from '@dbTools/typeorm' import { ContributionLink as DbContributionLink } from '@entity/ContributionLink' import { Event as DbEvent } from '@entity/Event' @@ -7,15 +5,15 @@ import { ApolloServerTestClient } from 'apollo-server-testing' import { Decimal } from 'decimal.js-light' import { GraphQLError } from 'graphql' -import { cleanDB, testEnvironment, resetToken } from '@test/helpers' +import { cleanDB, resetToken, testEnvironment } from '@test/helpers' import { logger } from '@test/testSetup' import { EventType } from '@/event/Events' import { userFactory } from '@/seeds/factory/user' import { - login, createContributionLink, deleteContributionLink, + login, updateContributionLink, } from '@/seeds/graphql/mutations' import { listContributionLinks } from '@/seeds/graphql/queries' @@ -24,9 +22,9 @@ import { peterLustig } from '@/seeds/users/peter-lustig' jest.mock('@/password/EncryptorUtils') -let mutate: ApolloServerTestClient['mutate'], - query: ApolloServerTestClient['query'], - con: Connection +let mutate: ApolloServerTestClient['mutate'] +let query: ApolloServerTestClient['query'] +let con: Connection let testEnv: { mutate: ApolloServerTestClient['mutate'] query: ApolloServerTestClient['query'] diff --git a/backend/src/graphql/resolver/ContributionLinkResolver.ts b/backend/src/graphql/resolver/ContributionLinkResolver.ts index 0a04d387d..6165c30cd 100644 --- a/backend/src/graphql/resolver/ContributionLinkResolver.ts +++ b/backend/src/graphql/resolver/ContributionLinkResolver.ts @@ -1,6 +1,6 @@ -import { MoreThan, IsNull } from '@dbTools/typeorm' +import { IsNull, MoreThan } from '@dbTools/typeorm' import { ContributionLink as DbContributionLink } from '@entity/ContributionLink' -import { Resolver, Args, Arg, Authorized, Mutation, Query, Int, Ctx } from 'type-graphql' +import { Arg, Args, Authorized, Ctx, Int, Mutation, Query, Resolver } from 'type-graphql' import { ContributionLinkArgs } from '@arg/ContributionLinkArgs' import { Paginated } from '@arg/Paginated' @@ -14,8 +14,8 @@ import { EVENT_ADMIN_CONTRIBUTION_LINK_DELETE, EVENT_ADMIN_CONTRIBUTION_LINK_UPDATE, } from '@/event/Events' -import { Context, getUser } from '@/server/context' import { LogError } from '@/server/LogError' +import { Context, getUser } from '@/server/context' import { transactionLinkCode as contributionLinkCode } from './TransactionLinkResolver' import { isStartEndDateValid } from './util/creations' @@ -47,8 +47,12 @@ export class ContributionLinkResolver { dbContributionLink.createdAt = new Date() dbContributionLink.code = contributionLinkCode(dbContributionLink.createdAt) dbContributionLink.cycle = cycle - if (validFrom) dbContributionLink.validFrom = new Date(validFrom) - if (validTo) dbContributionLink.validTo = new Date(validTo) + if (validFrom) { + dbContributionLink.validFrom = new Date(validFrom) + } + if (validTo) { + dbContributionLink.validTo = new Date(validTo) + } dbContributionLink.maxAmountPerMonth = maxAmountPerMonth dbContributionLink.maxPerCycle = maxPerCycle await dbContributionLink.save() @@ -116,8 +120,12 @@ export class ContributionLinkResolver { dbContributionLink.name = name dbContributionLink.memo = memo dbContributionLink.cycle = cycle - if (validFrom) dbContributionLink.validFrom = new Date(validFrom) - if (validTo) dbContributionLink.validTo = new Date(validTo) + if (validFrom) { + dbContributionLink.validFrom = new Date(validFrom) + } + if (validTo) { + dbContributionLink.validTo = new Date(validTo) + } dbContributionLink.maxAmountPerMonth = maxAmountPerMonth dbContributionLink.maxPerCycle = maxPerCycle await dbContributionLink.save() diff --git a/backend/src/graphql/resolver/ContributionMessageResolver.test.ts b/backend/src/graphql/resolver/ContributionMessageResolver.test.ts index ac3800703..5bcc8143a 100644 --- a/backend/src/graphql/resolver/ContributionMessageResolver.test.ts +++ b/backend/src/graphql/resolver/ContributionMessageResolver.test.ts @@ -1,8 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-return */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-explicit-any */ import { Connection } from '@dbTools/typeorm' import { Contribution as DbContribution } from '@entity/Contribution' import { Event as DbEvent } from '@entity/Event' @@ -11,7 +6,7 @@ import { GraphQLError } from 'graphql' import { ContributionStatus } from '@enum/ContributionStatus' import { cleanDB, resetToken, testEnvironment } from '@test/helpers' -import { logger, i18n as localization } from '@test/testSetup' +import { i18n as localization, logger } from '@test/testSetup' import { sendAddedContributionMessageEmail } from '@/emails/sendEmailVariants' import { EventType } from '@/event/Events' @@ -22,7 +17,7 @@ import { createContributionMessage, login, } from '@/seeds/graphql/mutations' -import { listContributionMessages, adminListContributionMessages } from '@/seeds/graphql/queries' +import { adminListContributionMessages, listContributionMessages } from '@/seeds/graphql/queries' import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg' import { bobBaumeister } from '@/seeds/users/bob-baumeister' import { peterLustig } from '@/seeds/users/peter-lustig' @@ -39,7 +34,8 @@ jest.mock('@/emails/sendEmailVariants', () => { } }) -let mutate: ApolloServerTestClient['mutate'], con: Connection +let mutate: ApolloServerTestClient['mutate'] +let con: Connection let testEnv: { mutate: ApolloServerTestClient['mutate'] query: ApolloServerTestClient['query'] diff --git a/backend/src/graphql/resolver/ContributionMessageResolver.ts b/backend/src/graphql/resolver/ContributionMessageResolver.ts index 4803cea09..88cd73bc7 100644 --- a/backend/src/graphql/resolver/ContributionMessageResolver.ts +++ b/backend/src/graphql/resolver/ContributionMessageResolver.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/restrict-template-expressions */ import { EntityManager, FindOptionsRelations, getConnection } from '@dbTools/typeorm' import { Contribution as DbContribution } from '@entity/Contribution' import { ContributionMessage as DbContributionMessage } from '@entity/ContributionMessage' @@ -18,8 +17,8 @@ import { EVENT_CONTRIBUTION_MESSAGE_CREATE, } from '@/event/Events' import { UpdateUnconfirmedContributionContext } from '@/interactions/updateUnconfirmedContribution/UpdateUnconfirmedContribution.context' -import { Context, getUser } from '@/server/context' import { LogError } from '@/server/LogError' +import { Context, getUser } from '@/server/context' import { backendLogger as logger } from '@/server/logger' import { findContributionMessages } from './util/findContributionMessages' @@ -175,9 +174,10 @@ export class ContributionMessageResolver { throw new LogError('ContributionMessage was not sent successfully') } const moderator = getUser(context) + if (messageType === ContributionMessageType.DIALOG) { // send email (never for moderator messages) - void sendAddedContributionMessageEmail({ + await sendAddedContributionMessageEmail({ firstName: finalContribution.user.firstName, lastName: finalContribution.user.lastName, email: finalContribution.user.emailContact.email, diff --git a/backend/src/graphql/resolver/ContributionResolver.test.ts b/backend/src/graphql/resolver/ContributionResolver.test.ts index 134b378dc..ab409b4cc 100644 --- a/backend/src/graphql/resolver/ContributionResolver.test.ts +++ b/backend/src/graphql/resolver/ContributionResolver.test.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-explicit-any */ import { Connection, Equal } from '@dbTools/typeorm' import { Contribution } from '@entity/Contribution' import { Event as DbEvent } from '@entity/Event' @@ -16,12 +13,12 @@ import { ContributionStatus } from '@enum/ContributionStatus' import { Order } from '@enum/Order' import { cleanDB, - resetToken, - testEnvironment, contributionDateFormatter, resetEntity, + resetToken, + testEnvironment, } from '@test/helpers' -import { logger, i18n as localization } from '@test/testSetup' +import { i18n as localization, logger } from '@test/testSetup' import { sendContributionConfirmedEmail, @@ -33,22 +30,22 @@ import { creations } from '@/seeds/creation/index' import { creationFactory } from '@/seeds/factory/creation' import { userFactory } from '@/seeds/factory/user' import { + adminCreateContribution, + adminCreateContributionMessage, + adminDeleteContribution, + adminUpdateContribution, + confirmContribution, createContribution, - updateContribution, deleteContribution, denyContribution, - confirmContribution, - adminCreateContribution, - adminUpdateContribution, - adminDeleteContribution, login, logout, - adminCreateContributionMessage, + updateContribution, } from '@/seeds/graphql/mutations' import { + adminListContributions, listAllContributions, listContributions, - adminListContributions, } from '@/seeds/graphql/queries' import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg' import { bobBaumeister } from '@/seeds/users/bob-baumeister' @@ -61,9 +58,9 @@ import { getFirstDayOfPreviousNMonth } from '@/util/utilities' jest.mock('@/emails/sendEmailVariants') jest.mock('@/password/EncryptorUtils') -let mutate: ApolloServerTestClient['mutate'], - query: ApolloServerTestClient['query'], - con: Connection +let mutate: ApolloServerTestClient['mutate'] +let query: ApolloServerTestClient['query'] +let con: Connection let testEnv: { mutate: ApolloServerTestClient['mutate'] query: ApolloServerTestClient['query'] @@ -99,7 +96,7 @@ describe('ContributionResolver', () => { admin = await userFactory(testEnv, peterLustig) await userFactory(testEnv, raeuberHotzenplotz) const bibisCreation = creations.find((creation) => creation.email === 'bibi@bloxberg.de') - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + bibiCreatedContribution = await creationFactory(testEnv, bibisCreation!) await mutate({ mutation: login, @@ -2281,7 +2278,6 @@ describe('ContributionResolver', () => { }) }) - // eslint-disable-next-line jest/no-disabled-tests describe.skip('creation update is successful changing month', () => { // skipped as changing the month is currently disable it('returns update creation object', async () => { diff --git a/backend/src/graphql/resolver/ContributionResolver.ts b/backend/src/graphql/resolver/ContributionResolver.ts index 4c1dbe488..a137b0d79 100644 --- a/backend/src/graphql/resolver/ContributionResolver.ts +++ b/backend/src/graphql/resolver/ContributionResolver.ts @@ -43,25 +43,25 @@ import { sendContributionDeniedEmail, } from '@/emails/sendEmailVariants' import { + EVENT_ADMIN_CONTRIBUTION_CONFIRM, + EVENT_ADMIN_CONTRIBUTION_CREATE, + EVENT_ADMIN_CONTRIBUTION_DELETE, + EVENT_ADMIN_CONTRIBUTION_DENY, + EVENT_ADMIN_CONTRIBUTION_UPDATE, EVENT_CONTRIBUTION_CREATE, EVENT_CONTRIBUTION_DELETE, EVENT_CONTRIBUTION_UPDATE, - EVENT_ADMIN_CONTRIBUTION_CREATE, - EVENT_ADMIN_CONTRIBUTION_UPDATE, - EVENT_ADMIN_CONTRIBUTION_DELETE, - EVENT_ADMIN_CONTRIBUTION_CONFIRM, - EVENT_ADMIN_CONTRIBUTION_DENY, } from '@/event/Events' import { UpdateUnconfirmedContributionContext } from '@/interactions/updateUnconfirmedContribution/UpdateUnconfirmedContribution.context' -import { Context, getUser, getClientTimezoneOffset } from '@/server/context' import { LogError } from '@/server/LogError' +import { Context, getClientTimezoneOffset, getUser } from '@/server/context' import { backendLogger as logger } from '@/server/logger' -import { calculateDecay } from '@/util/decay' import { TRANSACTIONS_LOCK } from '@/util/TRANSACTIONS_LOCK' +import { calculateDecay } from '@/util/decay' import { fullName } from '@/util/utilities' import { findContribution } from './util/contributions' -import { getUserCreation, validateContribution, getOpenCreations } from './util/creations' +import { getOpenCreations, getUserCreation, validateContribution } from './util/creations' import { extractGraphQLFields, extractGraphQLFieldsForSelect } from './util/extractGraphQLFields' import { findContributions } from './util/findContributions' import { getLastTransaction } from './util/getLastTransaction' @@ -318,7 +318,7 @@ export class ContributionResolver { relations: ['emailContact'], }) - void sendContributionChangedByModeratorEmail({ + await sendContributionChangedByModeratorEmail({ firstName: user.firstName, lastName: user.lastName, email: user.emailContact.email, @@ -408,7 +408,7 @@ export class ContributionResolver { contribution, contribution.amount, ) - void sendContributionDeletedEmail({ + await sendContributionDeletedEmail({ firstName: user.firstName, lastName: user.lastName, email: user.emailContact.email, @@ -511,10 +511,10 @@ export class ContributionResolver { await queryRunner.commitTransaction() // trigger to send transaction via dlt-connector - void sendTransactionsToDltConnector() + await sendTransactionsToDltConnector() logger.info('creation commited successfuly.') - void sendContributionConfirmedEmail({ + await sendContributionConfirmedEmail({ firstName: user.firstName, lastName: user.lastName, email: user.emailContact.email, @@ -598,7 +598,7 @@ export class ContributionResolver { contributionToUpdate.amount, ) - void sendContributionDeniedEmail({ + await sendContributionDeniedEmail({ firstName: user.firstName, lastName: user.lastName, email: user.emailContact.email, diff --git a/backend/src/graphql/resolver/EmailOptinCodes.test.ts b/backend/src/graphql/resolver/EmailOptinCodes.test.ts index 09ad743fe..99e1a3ea7 100644 --- a/backend/src/graphql/resolver/EmailOptinCodes.test.ts +++ b/backend/src/graphql/resolver/EmailOptinCodes.test.ts @@ -1,20 +1,18 @@ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ import { Connection } from '@dbTools/typeorm' import { User as DbUser } from '@entity/User' import { ApolloServerTestClient } from 'apollo-server-testing' import { GraphQLError } from 'graphql' -import { testEnvironment, cleanDB } from '@test/helpers' +import { cleanDB, testEnvironment } from '@test/helpers' import { CONFIG } from '@/config' import { writeHomeCommunityEntry } from '@/seeds/community' -import { createUser, setPassword, forgotPassword } from '@/seeds/graphql/mutations' +import { createUser, forgotPassword, setPassword } from '@/seeds/graphql/mutations' import { queryOptIn } from '@/seeds/graphql/queries' -let mutate: ApolloServerTestClient['mutate'], - query: ApolloServerTestClient['query'], - con: Connection +let mutate: ApolloServerTestClient['mutate'] +let query: ApolloServerTestClient['query'] +let con: Connection let testEnv: { mutate: ApolloServerTestClient['mutate'] query: ApolloServerTestClient['query'] diff --git a/backend/src/graphql/resolver/GdtResolver.ts b/backend/src/graphql/resolver/GdtResolver.ts index 2703be8ed..933fdb397 100644 --- a/backend/src/graphql/resolver/GdtResolver.ts +++ b/backend/src/graphql/resolver/GdtResolver.ts @@ -1,8 +1,4 @@ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-return */ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ -import { Resolver, Query, Args, Ctx, Authorized, Arg, Int, Float } from 'type-graphql' +import { Arg, Args, Authorized, Ctx, Float, Int, Query, Resolver } from 'type-graphql' import { Paginated } from '@arg/Paginated' import { Order } from '@enum/Order' @@ -12,8 +8,10 @@ import { GdtEntryList } from '@model/GdtEntryList' import { apiGet, apiPost } from '@/apis/HttpRequest' import { RIGHTS } from '@/auth/RIGHTS' import { CONFIG } from '@/config' -import { Context, getUser } from '@/server/context' import { LogError } from '@/server/LogError' +import { Context, getUser } from '@/server/context' + +import { backendLogger as logger } from '@/server/logger' @Resolver() export class GdtResolver { @@ -25,20 +23,12 @@ export class GdtResolver { @Ctx() context: Context, ): Promise { if (!CONFIG.GDT_ACTIVE) { - return new GdtEntryList( - 'disabled', - 0, - // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-explicit-any - [], - 0, - 0, - ) + return new GdtEntryList('disabled', 0, [], 0, 0) } const userEntity = getUser(context) try { const resultGDT = await apiGet( - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions `${CONFIG.GDT_API_URL}/GdtEntries/listPerEmailApi/${userEntity.emailContact.email}/${currentPage}/${pageSize}/${order}`, ) if (!resultGDT.success) { @@ -48,12 +38,12 @@ export class GdtResolver { return new GdtEntryList( state, count, - // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-explicit-any gdtEntries ? gdtEntries.map((data: any) => new GdtEntry(data)) : [], gdtSum, timeUsed, ) } catch (err) { + logger.error('GDT Server is not reachable', err) throw new LogError('GDT Server is not reachable') } } @@ -74,15 +64,13 @@ export class GdtResolver { } return Number(resultGDTSum.data.sum) || 0 } catch (err) { - // eslint-disable-next-line no-console - console.log('Could not query GDT Server') + logger.error('Could not query GDT Server', err) return null } } @Authorized([RIGHTS.EXIST_PID]) @Query(() => Int) - // eslint-disable-next-line @typescript-eslint/no-explicit-any async existPid(@Arg('pid', () => Int) pid: number): Promise { if (!CONFIG.GDT_ACTIVE) { return 0 diff --git a/backend/src/graphql/resolver/KlicktippResolver.test.ts b/backend/src/graphql/resolver/KlicktippResolver.test.ts index 06430c620..505a8b513 100644 --- a/backend/src/graphql/resolver/KlicktippResolver.test.ts +++ b/backend/src/graphql/resolver/KlicktippResolver.test.ts @@ -1,14 +1,9 @@ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ import { Event as DbEvent } from '@entity/Event' import { UserContact } from '@entity/UserContact' import { GraphQLError } from 'graphql' import { cleanDB, resetToken, testEnvironment } from '@test/helpers' -import { logger, i18n as localization } from '@test/testSetup' +import { i18n as localization, logger } from '@test/testSetup' import { EventType } from '@/event/Events' import { userFactory } from '@/seeds/factory/user' @@ -17,7 +12,9 @@ import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg' jest.mock('@/password/EncryptorUtils') -let testEnv: any, mutate: any, con: any +let testEnv: any +let mutate: any +let con: any beforeAll(async () => { testEnv = await testEnvironment(logger, localization) diff --git a/backend/src/graphql/resolver/KlicktippResolver.ts b/backend/src/graphql/resolver/KlicktippResolver.ts index 81290bdb6..1ac667fa4 100644 --- a/backend/src/graphql/resolver/KlicktippResolver.ts +++ b/backend/src/graphql/resolver/KlicktippResolver.ts @@ -1,6 +1,6 @@ -import { Resolver, Authorized, Mutation, Ctx } from 'type-graphql' +import { Authorized, Ctx, Mutation, Resolver } from 'type-graphql' -import { unsubscribe, subscribe } from '@/apis/KlicktippController' +import { subscribe, unsubscribe } from '@/apis/KlicktippController' import { RIGHTS } from '@/auth/RIGHTS' import { EVENT_NEWSLETTER_SUBSCRIBE, EVENT_NEWSLETTER_UNSUBSCRIBE } from '@/event/Events' import { Context, getUser } from '@/server/context' diff --git a/backend/src/graphql/resolver/ProjectBrandingResolver.ts b/backend/src/graphql/resolver/ProjectBrandingResolver.ts index 80180f58c..49b5a4cad 100644 --- a/backend/src/graphql/resolver/ProjectBrandingResolver.ts +++ b/backend/src/graphql/resolver/ProjectBrandingResolver.ts @@ -1,5 +1,5 @@ import { ProjectBranding as DbProjectBranding } from '@entity/ProjectBranding' -import { Resolver, Query, Mutation, Arg, Int, Authorized, ID } from 'type-graphql' +import { Arg, Authorized, ID, Int, Mutation, Query, Resolver } from 'type-graphql' import { ProjectBrandingInput } from '@input/ProjectBrandingInput' import { ProjectBranding } from '@model/ProjectBranding' diff --git a/backend/src/graphql/resolver/StatisticsResolver.ts b/backend/src/graphql/resolver/StatisticsResolver.ts index ba8a32d37..9ff588aa4 100644 --- a/backend/src/graphql/resolver/StatisticsResolver.ts +++ b/backend/src/graphql/resolver/StatisticsResolver.ts @@ -1,19 +1,15 @@ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-return */ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ import { getConnection } from '@dbTools/typeorm' import { Transaction as DbTransaction } from '@entity/Transaction' import { User as DbUser } from '@entity/User' import { Decimal } from 'decimal.js-light' -import { Resolver, Query, Authorized, FieldResolver } from 'type-graphql' +import { Authorized, FieldResolver, Query, Resolver } from 'type-graphql' import { CommunityStatistics, DynamicStatisticsFields } from '@model/CommunityStatistics' import { RIGHTS } from '@/auth/RIGHTS' import { calculateDecay } from '@/util/decay' -/* eslint-disable-next-line @typescript-eslint/no-unused-vars */ -@Resolver((of) => CommunityStatistics) +@Resolver(() => CommunityStatistics) export class StatisticsResolver { @Authorized([RIGHTS.COMMUNITY_STATISTICS]) @Query(() => CommunityStatistics) diff --git a/backend/src/graphql/resolver/TransactionLinkResolver.test.ts b/backend/src/graphql/resolver/TransactionLinkResolver.test.ts index bcea43416..6f432ce61 100644 --- a/backend/src/graphql/resolver/TransactionLinkResolver.test.ts +++ b/backend/src/graphql/resolver/TransactionLinkResolver.test.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/restrict-template-expressions */ import { Connection } from '@dbTools/typeorm' import { ContributionLink as DbContributionLink } from '@entity/ContributionLink' import { Event as DbEvent } from '@entity/Event' @@ -12,7 +9,7 @@ import { Decimal } from 'decimal.js-light' import { GraphQLError } from 'graphql' import { UnconfirmedContribution } from '@model/UnconfirmedContribution' -import { cleanDB, testEnvironment, resetToken, resetEntity } from '@test/helpers' +import { cleanDB, resetEntity, resetToken, testEnvironment } from '@test/helpers' import { logger } from '@test/testSetup' import { EventType } from '@/event/Events' @@ -21,14 +18,14 @@ import { creationFactory } from '@/seeds/factory/creation' import { transactionLinkFactory } from '@/seeds/factory/transactionLink' import { userFactory } from '@/seeds/factory/user' import { - login, - createContributionLink, - redeemTransactionLink, + confirmContribution, createContribution, - updateContribution, + createContributionLink, createTransactionLink, deleteTransactionLink, - confirmContribution, + login, + redeemTransactionLink, + updateContribution, } from '@/seeds/graphql/mutations' import { listTransactionLinksAdmin } from '@/seeds/graphql/queries' import { transactionLinks } from '@/seeds/transactionLink/index' @@ -44,9 +41,9 @@ jest.mock('@/password/EncryptorUtils') jest.mock('@/util/TRANSACTIONS_LOCK') TRANSACTIONS_LOCK.acquire = jest.fn().mockResolvedValue(jest.fn()) -let mutate: ApolloServerTestClient['mutate'], - query: ApolloServerTestClient['query'], - con: Connection +let mutate: ApolloServerTestClient['mutate'] +let query: ApolloServerTestClient['query'] +let con: Connection let testEnv: { mutate: ApolloServerTestClient['mutate'] query: ApolloServerTestClient['query'] @@ -890,7 +887,7 @@ describe('TransactionLinkResolver', () => { variables.pageSize = 25 // bibi needs GDDs const bibisCreation = creations.find((creation) => creation.email === 'bibi@bloxberg.de') - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + await creationFactory(testEnv, bibisCreation!) // bibis transaktion links const bibisTransaktionLinks = transactionLinks.filter( @@ -1066,7 +1063,7 @@ describe('TransactionLinkResolver', () => { }) // TODO: works not as expected, because 'redeemedAt' and 'redeemedBy' have to be added to the transaktion link factory - // eslint-disable-next-line jest/no-disabled-tests + describe.skip('filter by redeemed', () => { it('finds 6 open transaction links, 1 deleted, and no redeemed', async () => { await expect( @@ -1119,7 +1116,6 @@ describe('TransactionLinkResolver', () => { }) it('returns a string that ends with the hex value of date', () => { - // eslint-disable-next-line security/detect-non-literal-regexp const regexp = new RegExp(date.getTime().toString(16) + '$') expect(transactionLinkCode(date)).toEqual(expect.stringMatching(regexp)) }) diff --git a/backend/src/graphql/resolver/TransactionLinkResolver.ts b/backend/src/graphql/resolver/TransactionLinkResolver.ts index 63134a9a8..bd6081bfe 100644 --- a/backend/src/graphql/resolver/TransactionLinkResolver.ts +++ b/backend/src/graphql/resolver/TransactionLinkResolver.ts @@ -7,7 +7,7 @@ import { Transaction as DbTransaction } from '@entity/Transaction' import { TransactionLink as DbTransactionLink } from '@entity/TransactionLink' import { User as DbUser } from '@entity/User' import { Decimal } from 'decimal.js-light' -import { Resolver, Args, Arg, Authorized, Ctx, Mutation, Query, Int } from 'type-graphql' +import { Arg, Args, Authorized, Ctx, Int, Mutation, Query, Resolver } from 'type-graphql' import { Paginated } from '@arg/Paginated' import { TransactionLinkArgs } from '@arg/TransactionLinkArgs' @@ -29,12 +29,12 @@ import { EVENT_TRANSACTION_LINK_DELETE, EVENT_TRANSACTION_LINK_REDEEM, } from '@/event/Events' -import { Context, getUser, getClientTimezoneOffset } from '@/server/context' import { LogError } from '@/server/LogError' +import { Context, getClientTimezoneOffset, getUser } from '@/server/context' import { backendLogger as logger } from '@/server/logger' -import { calculateDecay } from '@/util/decay' -import { TRANSACTION_LINK_LOCK } from '@/util/TRANSACTION_LINK_LOCK' import { TRANSACTIONS_LOCK } from '@/util/TRANSACTIONS_LOCK' +import { TRANSACTION_LINK_LOCK } from '@/util/TRANSACTION_LINK_LOCK' +import { calculateDecay } from '@/util/decay' import { fullName } from '@/util/utilities' import { calculateBalance } from '@/util/validate' @@ -311,7 +311,7 @@ export class TransactionLinkResolver { releaseLock() } // trigger to send transaction via dlt-connector - void sendTransactionsToDltConnector() + await sendTransactionsToDltConnector() return true } else { const now = new Date() @@ -387,9 +387,8 @@ export class TransactionLinkResolver { async listTransactionLinksAdmin( @Args() paginated: Paginated, - // eslint-disable-next-line type-graphql/wrong-decorator-signature @Arg('filters', () => TransactionLinkFilters, { nullable: true }) - filters: TransactionLinkFilters | null, // eslint-disable-line type-graphql/invalid-nullable-input-type + filters: TransactionLinkFilters, @Arg('userId', () => Int) userId: number, ): Promise { diff --git a/backend/src/graphql/resolver/TransactionResolver.test.ts b/backend/src/graphql/resolver/TransactionResolver.test.ts index 7cc6143e6..9b50c7925 100644 --- a/backend/src/graphql/resolver/TransactionResolver.test.ts +++ b/backend/src/graphql/resolver/TransactionResolver.test.ts @@ -1,9 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-return */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ import { Connection, In } from '@dbTools/typeorm' import { Community as DbCommunity } from '@entity/Community' import { DltTransaction } from '@entity/DltTransaction' @@ -20,9 +14,9 @@ import { logger } from '@test/testSetup' import { CONFIG } from '@/config' import { EventType } from '@/event/Events' +import { SendCoinsClient } from '@/federation/client/1_0/SendCoinsClient' import { SendCoinsArgs } from '@/federation/client/1_0/model/SendCoinsArgs' import { SendCoinsResult } from '@/federation/client/1_0/model/SendCoinsResult' -import { SendCoinsClient } from '@/federation/client/1_0/SendCoinsClient' import { userFactory } from '@/seeds/factory/user' import { confirmContribution, @@ -39,9 +33,9 @@ import { stephenHawking } from '@/seeds/users/stephen-hawking' jest.mock('@/password/EncryptorUtils') -let mutate: ApolloServerTestClient['mutate'], con: Connection +let mutate: ApolloServerTestClient['mutate'] let query: ApolloServerTestClient['query'] - +let con: Connection let testEnv: { mutate: ApolloServerTestClient['mutate'] query: ApolloServerTestClient['query'] diff --git a/backend/src/graphql/resolver/TransactionResolver.ts b/backend/src/graphql/resolver/TransactionResolver.ts index 3989cb175..a5c9c1d87 100644 --- a/backend/src/graphql/resolver/TransactionResolver.ts +++ b/backend/src/graphql/resolver/TransactionResolver.ts @@ -1,15 +1,11 @@ -/* eslint-disable @typescript-eslint/restrict-template-expressions */ -/* eslint-disable new-cap */ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ - -import { getConnection, In, IsNull } from '@dbTools/typeorm' +import { In, IsNull, getConnection } from '@dbTools/typeorm' import { Community as DbCommunity } from '@entity/Community' import { PendingTransaction as DbPendingTransaction } from '@entity/PendingTransaction' import { Transaction as dbTransaction } from '@entity/Transaction' import { TransactionLink as dbTransactionLink } from '@entity/TransactionLink' import { User as dbUser } from '@entity/User' import { Decimal } from 'decimal.js-light' -import { Resolver, Query, Args, Authorized, Ctx, Mutation } from 'type-graphql' +import { Args, Authorized, Ctx, Mutation, Query, Resolver } from 'type-graphql' import { Paginated } from '@arg/Paginated' import { TransactionSendArgs } from '@arg/TransactionSendArgs' @@ -28,14 +24,14 @@ import { } from '@/emails/sendEmailVariants' import { EVENT_TRANSACTION_RECEIVE, EVENT_TRANSACTION_SEND } from '@/event/Events' import { SendCoinsResult } from '@/federation/client/1_0/model/SendCoinsResult' -import { Context, getUser } from '@/server/context' import { LogError } from '@/server/LogError' +import { Context, getUser } from '@/server/context' import { backendLogger as logger } from '@/server/logger' -import { communityUser } from '@/util/communityUser' import { TRANSACTIONS_LOCK } from '@/util/TRANSACTIONS_LOCK' +import { communityUser } from '@/util/communityUser' import { fullName } from '@/util/utilities' import { calculateBalance } from '@/util/validate' -import { virtualLinkTransaction, virtualDecayTransaction } from '@/util/virtualTransactions' +import { virtualDecayTransaction, virtualLinkTransaction } from '@/util/virtualTransactions' import { BalanceResolver } from './BalanceResolver' import { GdtResolver } from './GdtResolver' @@ -178,14 +174,14 @@ export const executeTransaction = async ( ) // trigger to send transaction via dlt-connector - void sendTransactionsToDltConnector() + await sendTransactionsToDltConnector() } catch (e) { await queryRunner.rollbackTransaction() throw new LogError('Transaction was not successful', e) } finally { await queryRunner.release() } - void sendTransactionReceivedEmail({ + await sendTransactionReceivedEmail({ firstName: recipient.firstName, lastName: recipient.lastName, email: recipient.emailContact.email, @@ -197,7 +193,7 @@ export const executeTransaction = async ( transactionAmount: amount, }) if (transactionLink) { - void sendTransactionLinkRedeemedEmail({ + await sendTransactionLinkRedeemedEmail({ firstName: sender.firstName, lastName: sender.lastName, email: sender.emailContact.email, diff --git a/backend/src/graphql/resolver/UserResolver.test.ts b/backend/src/graphql/resolver/UserResolver.test.ts index 4fcf9944a..a9dfc2874 100644 --- a/backend/src/graphql/resolver/UserResolver.test.ts +++ b/backend/src/graphql/resolver/UserResolver.test.ts @@ -1,9 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-return */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ import { Connection } from '@dbTools/typeorm' import { Community as DbCommunity } from '@entity/Community' import { Event as DbEvent } from '@entity/Event' @@ -23,8 +17,8 @@ import { RoleNames } from '@enum/RoleNames' import { UserContactType } from '@enum/UserContactType' import { ContributionLink } from '@model/ContributionLink' import { Location } from '@model/Location' -import { testEnvironment, headerPushMock, resetToken, cleanDB } from '@test/helpers' -import { logger, i18n as localization } from '@test/testSetup' +import { cleanDB, headerPushMock, resetToken, testEnvironment } from '@test/helpers' +import { i18n as localization, logger } from '@test/testSetup' import { subscribe } from '@/apis/KlicktippController' import { CONFIG } from '@/config' @@ -42,26 +36,26 @@ import { contributionLinkFactory } from '@/seeds/factory/contributionLink' import { transactionLinkFactory } from '@/seeds/factory/transactionLink' import { userFactory } from '@/seeds/factory/user' import { + confirmContribution, + createContribution, + createUser, + deleteUser, + forgotPassword, login, logout, - createUser, - setPassword, - forgotPassword, - updateUserInfos, - createContribution, - confirmContribution, - setUserRole, - deleteUser, - unDeleteUser, sendActivationEmail, + setPassword, + setUserRole, + unDeleteUser, + updateUserInfos, } from '@/seeds/graphql/mutations' import { - verifyLogin, + checkUsername, queryOptIn, searchAdminUsers, searchUsers, user as userQuery, - checkUsername, + verifyLogin, } from '@/seeds/graphql/queries' import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg' import { bobBaumeister } from '@/seeds/users/bob-baumeister' @@ -101,9 +95,9 @@ CONFIG.EMAIL_CODE_REQUEST_TIME = 10 let admin: User let user: User -let mutate: ApolloServerTestClient['mutate'], - query: ApolloServerTestClient['query'], - con: Connection +let mutate: ApolloServerTestClient['mutate'] +let query: ApolloServerTestClient['query'] +let con: Connection let testEnv: { mutate: ApolloServerTestClient['mutate'] query: ApolloServerTestClient['query'] @@ -859,7 +853,6 @@ describe('UserResolver', () => { }) }) - // eslint-disable-next-line jest/no-disabled-tests describe.skip('user is in database but password is not set', () => { beforeAll(async () => { jest.clearAllMocks() diff --git a/backend/src/graphql/resolver/UserResolver.ts b/backend/src/graphql/resolver/UserResolver.ts index 66e6a546b..2f8610d8c 100644 --- a/backend/src/graphql/resolver/UserResolver.ts +++ b/backend/src/graphql/resolver/UserResolver.ts @@ -1,8 +1,4 @@ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/restrict-template-expressions */ -import { getConnection, In, Point } from '@dbTools/typeorm' +import { In, Point, getConnection } from '@dbTools/typeorm' import { ContributionLink as DbContributionLink } from '@entity/ContributionLink' import { ProjectBranding } from '@entity/ProjectBranding' import { TransactionLink as DbTransactionLink } from '@entity/TransactionLink' @@ -12,17 +8,17 @@ import { UserLoggingView } from '@logging/UserLogging.view' import { GraphQLResolveInfo } from 'graphql' import i18n from 'i18n' import { - Resolver, - Query, - Args, Arg, + Args, Authorized, Ctx, - Mutation, - Int, - Root, FieldResolver, Info, + Int, + Mutation, + Query, + Resolver, + Root, } from 'type-graphql' import { IRestResponse } from 'typed-rest-client' import { v4 as uuidv4 } from 'uuid' @@ -43,15 +39,15 @@ import { SearchAdminUsersResult } from '@model/AdminUser' // import { Location } from '@model/Location' import { GmsUserAuthenticationResult } from '@model/GmsUserAuthenticationResult' import { User } from '@model/User' -import { UserAdmin, SearchUsersResult } from '@model/UserAdmin' +import { SearchUsersResult, UserAdmin } from '@model/UserAdmin' import { UserContact } from '@model/UserContact' import { UserLocationResult } from '@model/UserLocationResult' +import { subscribe } from '@/apis/KlicktippController' import { HumHubClient } from '@/apis/humhub/HumHubClient' import { Account as HumhubAccount } from '@/apis/humhub/model/Account' import { GetUser } from '@/apis/humhub/model/GetUser' import { PostUser } from '@/apis/humhub/model/PostUser' -import { subscribe } from '@/apis/KlicktippController' import { encode } from '@/auth/JWT' import { RIGHTS } from '@/auth/RIGHTS' import { CONFIG } from '@/config' @@ -62,25 +58,25 @@ import { sendResetPasswordEmail, } from '@/emails/sendEmailVariants' import { + EVENT_ADMIN_USER_DELETE, + EVENT_ADMIN_USER_ROLE_SET, + EVENT_ADMIN_USER_UNDELETE, + EVENT_EMAIL_ACCOUNT_MULTIREGISTRATION, + EVENT_EMAIL_ADMIN_CONFIRMATION, + EVENT_EMAIL_CONFIRMATION, + EVENT_EMAIL_FORGOT_PASSWORD, + EVENT_USER_ACTIVATE_ACCOUNT, + EVENT_USER_INFO_UPDATE, + EVENT_USER_LOGIN, + EVENT_USER_LOGOUT, + EVENT_USER_REGISTER, Event, EventType, - EVENT_USER_LOGIN, - EVENT_EMAIL_ACCOUNT_MULTIREGISTRATION, - EVENT_EMAIL_CONFIRMATION, - EVENT_USER_REGISTER, - EVENT_USER_ACTIVATE_ACCOUNT, - EVENT_EMAIL_ADMIN_CONFIRMATION, - EVENT_USER_LOGOUT, - EVENT_EMAIL_FORGOT_PASSWORD, - EVENT_USER_INFO_UPDATE, - EVENT_ADMIN_USER_ROLE_SET, - EVENT_ADMIN_USER_DELETE, - EVENT_ADMIN_USER_UNDELETE, } from '@/event/Events' import { isValidPassword } from '@/password/EncryptorUtils' import { encryptPassword, verifyPassword } from '@/password/PasswordEncryptor' -import { Context, getUser, getClientTimezoneOffset } from '@/server/context' import { LogError } from '@/server/LogError' +import { Context, getClientTimezoneOffset, getUser } from '@/server/context' import { backendLogger as logger } from '@/server/logger' import { communityDbUser } from '@/util/communityUser' import { hasElopageBuys } from '@/util/hasElopageBuys' @@ -91,6 +87,7 @@ import random from 'random-bigint' import { randombytes_random } from 'sodium-native' import { FULL_CREATION_AVAILABLE } from './const/const' +import { Location2Point, Point2Location } from './util/Location2Point' import { authenticateGmsUserPlayground } from './util/authenticateGmsUserPlayground' import { getHomeCommunity } from './util/communities' import { compareGmsRelevantUserSettings } from './util/compareGmsRelevantUserSettings' @@ -99,8 +96,7 @@ import { extractGraphQLFieldsForSelect } from './util/extractGraphQLFields' import { findUserByIdentifier } from './util/findUserByIdentifier' import { findUsers } from './util/findUsers' import { getKlicktippState } from './util/getKlicktippState' -import { Location2Point, Point2Location } from './util/Location2Point' -import { setUserRole, deleteUserRole } from './util/modifyUserRole' +import { deleteUserRole, setUserRole } from './util/modifyUserRole' import { sendUserToGms } from './util/sendUserToGms' import { syncHumhub } from './util/syncHumhub' import { validateAlias } from './util/validateAlias' @@ -124,7 +120,6 @@ const newEmailContact = (email: string, userId: number): DbUserContact => { return emailContact } -// eslint-disable-next-line @typescript-eslint/ban-types export const activationLink = (verificationCode: string): string => { logger.debug(`activationLink(${verificationCode})...`) return CONFIG.EMAIL_LINK_SETPASSWORD + verificationCode.toString() @@ -328,7 +323,7 @@ export class UserResolver { } logger.debug('partly faked user', user) - void sendAccountMultiRegistrationEmail({ + await sendAccountMultiRegistrationEmail({ firstName: foundUser.firstName, // this is the real name of the email owner, but just "firstName" would be the name of the new registrant which shall not be passed to the outside lastName: foundUser.lastName, // this is the real name of the email owner, but just "lastName" would be the name of the new registrant which shall not be passed to the outside email, @@ -423,7 +418,7 @@ export class UserResolver { }` projectBranding = projectBrandingPromise ? await projectBrandingPromise : undefined - void sendAccountActivationEmail({ + await sendAccountActivationEmail({ firstName, lastName, email, @@ -513,7 +508,7 @@ export class UserResolver { logger.info('optInCode for', email, user.emailContact) - void sendResetPasswordEmail({ + await sendResetPasswordEmail({ firstName: user.firstName, lastName: user.lastName, email, @@ -804,6 +799,7 @@ export class UserResolver { if (!homeCom.gmsApiKey) { throw new LogError('authenticateGmsUserSearch missing HomeCommunity GmsApiKey') } + // TODO: NEVER pass user JWT token to another server - serious security risk! 😱⚠️ result = await authenticateGmsUserPlayground(homeCom.gmsApiKey, context.token, dbUser) logger.info('authenticateGmsUserSearch=', result) } else { @@ -1039,8 +1035,7 @@ export class UserResolver { user.emailContact.emailResendCount++ await user.emailContact.save() - // eslint-disable-next-line @typescript-eslint/no-unused-vars - void sendAccountActivationEmail({ + await sendAccountActivationEmail({ firstName: user.firstName, lastName: user.lastName, email, diff --git a/backend/src/graphql/resolver/semaphore.test.ts b/backend/src/graphql/resolver/semaphore.test.ts index f3dcce6f6..d12db9eb2 100644 --- a/backend/src/graphql/resolver/semaphore.test.ts +++ b/backend/src/graphql/resolver/semaphore.test.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/restrict-template-expressions */ import { Connection } from '@dbTools/typeorm' import { Community as DbCommunity } from '@entity/Community' import { ApolloServerTestClient } from 'apollo-server-testing' @@ -8,17 +5,17 @@ import { Decimal } from 'decimal.js-light' import { GraphQLError } from 'graphql' import { v4 as uuidv4 } from 'uuid' -import { cleanDB, testEnvironment, contributionDateFormatter } from '@test/helpers' +import { cleanDB, contributionDateFormatter, testEnvironment } from '@test/helpers' import { creationFactory, nMonthsBefore } from '@/seeds/factory/creation' import { userFactory } from '@/seeds/factory/user' import { confirmContribution, createContribution, - createTransactionLink, - redeemTransactionLink, - login, createContributionLink, + createTransactionLink, + login, + redeemTransactionLink, sendCoins, } from '@/seeds/graphql/mutations' import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg' @@ -27,7 +24,8 @@ import { peterLustig } from '@/seeds/users/peter-lustig' jest.mock('@/password/EncryptorUtils') -let mutate: ApolloServerTestClient['mutate'], con: Connection +let mutate: ApolloServerTestClient['mutate'] +let con: Connection let testEnv: { mutate: ApolloServerTestClient['mutate'] query: ApolloServerTestClient['query'] diff --git a/backend/src/graphql/resolver/util/authenticateGmsUserPlayground.ts b/backend/src/graphql/resolver/util/authenticateGmsUserPlayground.ts index b3acc8ae0..d7f185619 100644 --- a/backend/src/graphql/resolver/util/authenticateGmsUserPlayground.ts +++ b/backend/src/graphql/resolver/util/authenticateGmsUserPlayground.ts @@ -7,7 +7,7 @@ import { backendLogger as logger } from '@/server/logger' import { ensureUrlEndsWithSlash } from '@/util/utilities' export async function authenticateGmsUserPlayground( - apiKey: string, + _apiKey: string, token: string, dbUser: DbUser, ): Promise { diff --git a/backend/src/graphql/resolver/util/creations.test.ts b/backend/src/graphql/resolver/util/creations.test.ts index 154520b85..0d538a75d 100644 --- a/backend/src/graphql/resolver/util/creations.test.ts +++ b/backend/src/graphql/resolver/util/creations.test.ts @@ -3,11 +3,11 @@ import { Contribution } from '@entity/Contribution' import { User } from '@entity/User' import { ApolloServerTestClient } from 'apollo-server-testing' -import { testEnvironment, cleanDB, contributionDateFormatter } from '@test/helpers' +import { cleanDB, contributionDateFormatter, testEnvironment } from '@test/helpers' import { CONFIG } from '@/config' import { userFactory } from '@/seeds/factory/user' -import { login, createContribution, adminCreateContribution } from '@/seeds/graphql/mutations' +import { adminCreateContribution, createContribution, login } from '@/seeds/graphql/mutations' import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg' import { peterLustig } from '@/seeds/users/peter-lustig' @@ -17,7 +17,8 @@ jest.mock('@/password/EncryptorUtils') CONFIG.HUMHUB_ACTIVE = false -let mutate: ApolloServerTestClient['mutate'], con: Connection +let mutate: ApolloServerTestClient['mutate'] +let con: Connection let testEnv: { mutate: ApolloServerTestClient['mutate'] query: ApolloServerTestClient['query'] diff --git a/backend/src/graphql/resolver/util/creations.ts b/backend/src/graphql/resolver/util/creations.ts index 6bb7214b1..694d3a867 100644 --- a/backend/src/graphql/resolver/util/creations.ts +++ b/backend/src/graphql/resolver/util/creations.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ import { getConnection } from '@dbTools/typeorm' import { Contribution } from '@entity/Contribution' import { Decimal } from 'decimal.js-light' @@ -30,12 +27,11 @@ export const validateContribution = ( throw new LogError('No information for available creations for the given date', creationDate) } - // eslint-disable-next-line security/detect-object-injection if (amount.greaterThan(creations[index].toString())) { throw new LogError( 'The amount to be created exceeds the amount still available for this month', amount, - // eslint-disable-next-line security/detect-object-injection + creations[index], ) } @@ -154,7 +150,7 @@ export const updateCreations = ( if (index < 0) { throw new LogError('You cannot create GDD for a month older than the last three months') } - // eslint-disable-next-line security/detect-object-injection + creations[index] = creations[index].plus(contribution.amount.toString()) return creations } @@ -173,7 +169,7 @@ export const getOpenCreations = async ( return { month: date.getMonth(), year: date.getFullYear(), - // eslint-disable-next-line security/detect-object-injection + amount: creations[index], } }) diff --git a/backend/src/graphql/resolver/util/extractGraphQLFields.ts b/backend/src/graphql/resolver/util/extractGraphQLFields.ts index 082028ff1..75389b958 100644 --- a/backend/src/graphql/resolver/util/extractGraphQLFields.ts +++ b/backend/src/graphql/resolver/util/extractGraphQLFields.ts @@ -1,8 +1,8 @@ import { ObjectLiteral, SelectQueryBuilder } from '@dbTools/typeorm' import { GraphQLResolveInfo } from 'graphql' import { - parseResolveInfo, ResolveTree, + parseResolveInfo, simplifyParsedResolveInfoFragmentWithType, } from 'graphql-parse-resolve-info' diff --git a/backend/src/graphql/resolver/util/findContributionMessages.ts b/backend/src/graphql/resolver/util/findContributionMessages.ts index 06b896898..460b62b38 100644 --- a/backend/src/graphql/resolver/util/findContributionMessages.ts +++ b/backend/src/graphql/resolver/util/findContributionMessages.ts @@ -19,7 +19,9 @@ export const findContributionMessages = async ( const messageTypes = [ContributionMessageType.DIALOG, ContributionMessageType.HISTORY] - if (showModeratorType) messageTypes.push(ContributionMessageType.MODERATOR) + if (showModeratorType) { + messageTypes.push(ContributionMessageType.MODERATOR) + } return DbContributionMessage.findAndCount({ where: { diff --git a/backend/src/graphql/resolver/util/findContributions.ts b/backend/src/graphql/resolver/util/findContributions.ts index 07cc5dc14..9611c64a3 100644 --- a/backend/src/graphql/resolver/util/findContributions.ts +++ b/backend/src/graphql/resolver/util/findContributions.ts @@ -1,4 +1,3 @@ -/* eslint-disable security/detect-object-injection */ import { Brackets, In, @@ -46,8 +45,12 @@ export const findContributions = async ( throw new LogError('Cannot connect to db') } const queryBuilder = connection.getRepository(DbContribution).createQueryBuilder('Contribution') - if (relations) joinRelationsRecursive(relations, queryBuilder, 'Contribution') - if (withDeleted) queryBuilder.withDeleted() + if (relations) { + joinRelationsRecursive(relations, queryBuilder, 'Contribution') + } + if (withDeleted) { + queryBuilder.withDeleted() + } queryBuilder.where({ ...(filter.statusFilter?.length && { contributionStatus: In(filter.statusFilter) }), ...(filter.userId && { userId: filter.userId }), diff --git a/backend/src/graphql/resolver/util/findUserByIdentifier.ts b/backend/src/graphql/resolver/util/findUserByIdentifier.ts index 435dc3d04..bdd179091 100644 --- a/backend/src/graphql/resolver/util/findUserByIdentifier.ts +++ b/backend/src/graphql/resolver/util/findUserByIdentifier.ts @@ -24,8 +24,8 @@ export const findUserByIdentifier = async ( const communityWhere: FindOptionsWhere = isURL(communityIdentifier) ? { url: communityIdentifier } : isUUID4(communityIdentifier) - ? { communityUuid: communityIdentifier } - : { name: communityIdentifier } + ? { communityUuid: communityIdentifier } + : { name: communityIdentifier } if (validate(identifier) && version(identifier) === 4) { user = await DbUser.findOne({ diff --git a/backend/src/graphql/resolver/util/findUserByIdentifiers.test.ts b/backend/src/graphql/resolver/util/findUserByIdentifiers.test.ts index 1cdca8429..75892a201 100644 --- a/backend/src/graphql/resolver/util/findUserByIdentifiers.test.ts +++ b/backend/src/graphql/resolver/util/findUserByIdentifiers.test.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/restrict-template-expressions */ import { Connection } from '@dbTools/typeorm' import { Community as DbCommunity } from '@entity/Community' import { User as DbUser } from '@entity/User' @@ -44,9 +41,9 @@ describe('graphql/resolver/util/findUserByIdentifier', () => { beforeAll(async () => { homeCom = await writeHomeCommunityEntry() - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + communityUuid = homeCom.communityUuid! - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + communityName = homeCom.communityUuid! userBibi = await userFactory(testEnv, bibiBloxberg) diff --git a/backend/src/graphql/resolver/util/findUsers.ts b/backend/src/graphql/resolver/util/findUsers.ts index a7d7d719c..d4de5a405 100644 --- a/backend/src/graphql/resolver/util/findUsers.ts +++ b/backend/src/graphql/resolver/util/findUsers.ts @@ -1,4 +1,4 @@ -import { IsNull, Not, Like } from '@dbTools/typeorm' +import { IsNull, Like, Not } from '@dbTools/typeorm' import { User as DbUser } from '@entity/User' import { SearchUsersFilters } from '@arg/SearchUsersFilters' diff --git a/backend/src/graphql/resolver/util/getKlicktippState.ts b/backend/src/graphql/resolver/util/getKlicktippState.ts index 728f565ff..e006ff20a 100644 --- a/backend/src/graphql/resolver/util/getKlicktippState.ts +++ b/backend/src/graphql/resolver/util/getKlicktippState.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-return */ import { KlickTipp } from '@model/KlickTipp' import { getKlickTippUser } from '@/apis/KlicktippController' @@ -6,10 +5,8 @@ import { klickTippLogger as logger } from '@/server/logger' export const getKlicktippState = async (email: string): Promise => { try { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const klickTippUser = await getKlickTippUser(email) if (klickTippUser) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access return new KlickTipp(klickTippUser.status === 'Subscribed') } } catch (err) { diff --git a/backend/src/graphql/resolver/util/processXComSendCoins.ts b/backend/src/graphql/resolver/util/processXComSendCoins.ts index 6455bc36d..f0c779dbc 100644 --- a/backend/src/graphql/resolver/util/processXComSendCoins.ts +++ b/backend/src/graphql/resolver/util/processXComSendCoins.ts @@ -5,10 +5,10 @@ import { User as dbUser } from '@entity/User' import { Decimal } from 'decimal.js-light' import { CONFIG } from '@/config' + +import { SendCoinsClient as V1_0_SendCoinsClient } from '@/federation/client/1_0/SendCoinsClient' import { SendCoinsArgs } from '@/federation/client/1_0/model/SendCoinsArgs' import { SendCoinsResult } from '@/federation/client/1_0/model/SendCoinsResult' -// eslint-disable-next-line camelcase -import { SendCoinsClient as V1_0_SendCoinsClient } from '@/federation/client/1_0/SendCoinsClient' import { SendCoinsClientFactory } from '@/federation/client/SendCoinsClientFactory' import { PendingTransactionState } from '@/graphql/enum/PendingTransactionState' import { TransactionTypeId } from '@/graphql/enum/TransactionTypeId' @@ -70,7 +70,7 @@ export async function processXComPendingSendCoins( }, }) const client = SendCoinsClientFactory.getInstance(receiverFCom) - // eslint-disable-next-line camelcase + if (client instanceof V1_0_SendCoinsClient) { const args = new SendCoinsArgs() if (receiverCom.communityUuid) { @@ -112,7 +112,9 @@ export async function processXComPendingSendCoins( pendingTx.previous = senderBalance ? senderBalance.lastTransactionId : null pendingTx.state = PendingTransactionState.NEW pendingTx.typeId = TransactionTypeId.SEND - if (senderCom.communityUuid) pendingTx.userCommunityUuid = senderCom.communityUuid + if (senderCom.communityUuid) { + pendingTx.userCommunityUuid = senderCom.communityUuid + } pendingTx.userId = sender.id pendingTx.userGradidoID = sender.gradidoID pendingTx.userName = fullName(sender.firstName, sender.lastName) @@ -191,12 +193,12 @@ export async function processXComCommittingSendCoins( const receiverFCom = await DbFederatedCommunity.findOneOrFail({ where: { publicKey: receiverCom.publicKey, - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + apiVersion: CONFIG.FEDERATION_BACKEND_SEND_ON_API, }, }) const client = SendCoinsClientFactory.getInstance(receiverFCom) - // eslint-disable-next-line camelcase + if (client instanceof V1_0_SendCoinsClient) { const args = new SendCoinsArgs() args.recipientCommunityUuid = pendingTx.linkedUserCommunityUuid diff --git a/backend/src/graphql/resolver/util/sendTransactionsToDltConnector.test.ts b/backend/src/graphql/resolver/util/sendTransactionsToDltConnector.test.ts index 064184a9d..b212add4a 100644 --- a/backend/src/graphql/resolver/util/sendTransactionsToDltConnector.test.ts +++ b/backend/src/graphql/resolver/util/sendTransactionsToDltConnector.test.ts @@ -1,10 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/unbound-method */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ - import { Connection } from '@dbTools/typeorm' import { Community } from '@entity/Community' import { DltTransaction } from '@entity/DltTransaction' @@ -17,8 +10,8 @@ import { GraphQLClient } from 'graphql-request' import { Response } from 'graphql-request/dist/types' import { v4 as uuidv4 } from 'uuid' -import { testEnvironment, cleanDB } from '@test/helpers' -import { logger, i18n as localization } from '@test/testSetup' +import { cleanDB, testEnvironment } from '@test/helpers' +import { i18n as localization, logger } from '@test/testSetup' import { CONFIG } from '@/config' import { TransactionTypeId } from '@/graphql/enum/TransactionTypeId' @@ -441,15 +434,15 @@ describe('create and send Transactions to DltConnector', () => { await creationFactory(testEnv, creation) count++ // we need only 3 for testing - if (count >= 3) break + if (count >= 3) { + break + } } await createHomeCommunity() CONFIG.DLT_CONNECTOR = true - // eslint-disable-next-line @typescript-eslint/require-await jest.spyOn(GraphQLClient.prototype, 'rawRequest').mockImplementation(async () => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return return { data: { sendTransaction: { succeed: true }, @@ -523,9 +516,7 @@ describe('create and send Transactions to DltConnector', () => { CONFIG.DLT_CONNECTOR = true - // eslint-disable-next-line @typescript-eslint/require-await jest.spyOn(GraphQLClient.prototype, 'rawRequest').mockImplementation(async () => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return return { data: { sendTransaction: { succeed: true }, @@ -599,9 +590,9 @@ describe('create and send Transactions to DltConnector', () => { /* describe('with one Community of api 1_0 and not matching pubKey', () => { beforeEach(async () => { - // eslint-disable-next-line @typescript-eslint/require-await + jest.spyOn(GraphQLClient.prototype, 'rawRequest').mockImplementation(async () => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return { data: { getPublicKey: { @@ -621,7 +612,7 @@ describe('create and send Transactions to DltConnector', () => { .into(DbFederatedCommunity) .values(variables1) .orUpdate({ - // eslint-disable-next-line camelcase + conflict_target: ['id', 'publicKey', 'apiVersion'], overwrite: ['end_point', 'last_announced_at'], }) @@ -650,9 +641,9 @@ describe('create and send Transactions to DltConnector', () => { }) describe('with one Community of api 1_0 and matching pubKey', () => { beforeEach(async () => { - // eslint-disable-next-line @typescript-eslint/require-await + jest.spyOn(GraphQLClient.prototype, 'rawRequest').mockImplementation(async () => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return { data: { getPublicKey: { @@ -672,7 +663,7 @@ describe('create and send Transactions to DltConnector', () => { .into(DbFederatedCommunity) .values(variables1) .orUpdate({ - // eslint-disable-next-line camelcase + conflict_target: ['id', 'publicKey', 'apiVersion'], overwrite: ['end_point', 'last_announced_at'], }) @@ -702,9 +693,9 @@ describe('create and send Transactions to DltConnector', () => { describe('with two Communities of api 1_0 and 1_1', () => { beforeEach(async () => { jest.clearAllMocks() - // eslint-disable-next-line @typescript-eslint/require-await + jest.spyOn(GraphQLClient.prototype, 'rawRequest').mockImplementation(async () => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return { data: { getPublicKey: { @@ -724,7 +715,7 @@ describe('create and send Transactions to DltConnector', () => { .into(DbFederatedCommunity) .values(variables2) .orUpdate({ - // eslint-disable-next-line camelcase + conflict_target: ['id', 'publicKey', 'apiVersion'], overwrite: ['end_point', 'last_announced_at'], }) @@ -764,7 +755,7 @@ describe('create and send Transactions to DltConnector', () => { .into(DbFederatedCommunity) .values(variables3) .orUpdate({ - // eslint-disable-next-line camelcase + conflict_target: ['id', 'publicKey', 'apiVersion'], overwrite: ['end_point', 'last_announced_at'], }) diff --git a/backend/src/graphql/resolver/util/sendTransactionsToDltConnector.ts b/backend/src/graphql/resolver/util/sendTransactionsToDltConnector.ts index 733c12594..6880f977f 100644 --- a/backend/src/graphql/resolver/util/sendTransactionsToDltConnector.ts +++ b/backend/src/graphql/resolver/util/sendTransactionsToDltConnector.ts @@ -65,7 +65,7 @@ async function createDltTransactions(): Promise { .select('id') .addSelect('balance_date') .where('id NOT IN (' + dltqb.getSql() + ')') - // eslint-disable-next-line camelcase + .orderBy({ balance_date: 'ASC', id: 'ASC' }) .getRawMany() diff --git a/backend/src/graphql/resolver/util/sendUserToGms.ts b/backend/src/graphql/resolver/util/sendUserToGms.ts index 90351125f..4212a1890 100644 --- a/backend/src/graphql/resolver/util/sendUserToGms.ts +++ b/backend/src/graphql/resolver/util/sendUserToGms.ts @@ -20,14 +20,14 @@ export async function sendUserToGms( try { if (alwaysCreateUser === true || (!user.gmsRegistered && user.gmsRegisteredAt === null)) { logger.debug('create user in gms:', gmsUser) - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument + if (await createGmsUser(homeCom.gmsApiKey, gmsUser)) { logger.debug('GMS user published successfully:', gmsUser) await updateUserGmsStatus(user) } } else { logger.debug('update user in gms:', gmsUser) - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument + if (await updateGmsUser(homeCom.gmsApiKey, gmsUser)) { logger.debug('GMS user published successfully:', gmsUser) await updateUserGmsStatus(user) diff --git a/backend/src/graphql/resolver/util/settlePendingSenderTransaction.ts b/backend/src/graphql/resolver/util/settlePendingSenderTransaction.ts index 0e293c56c..7457d3f0d 100644 --- a/backend/src/graphql/resolver/util/settlePendingSenderTransaction.ts +++ b/backend/src/graphql/resolver/util/settlePendingSenderTransaction.ts @@ -1,7 +1,3 @@ -/* eslint-disable @typescript-eslint/restrict-template-expressions */ -/* eslint-disable new-cap */ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ - import { getConnection } from '@dbTools/typeorm' import { Community as DbCommunity } from '@entity/Community' import { PendingTransaction as DbPendingTransaction } from '@entity/PendingTransaction' @@ -12,8 +8,8 @@ import { Decimal } from 'decimal.js-light' import { PendingTransactionState } from '@/graphql/enum/PendingTransactionState' import { LogError } from '@/server/LogError' import { backendLogger as logger } from '@/server/logger' -import { calculateSenderBalance } from '@/util/calculateSenderBalance' import { TRANSACTIONS_LOCK } from '@/util/TRANSACTIONS_LOCK' +import { calculateSenderBalance } from '@/util/calculateSenderBalance' import { getLastTransaction } from './getLastTransaction' diff --git a/backend/src/graphql/resolver/util/syncHumhub.ts b/backend/src/graphql/resolver/util/syncHumhub.ts index 23ba6d0dd..5b851fa2f 100644 --- a/backend/src/graphql/resolver/util/syncHumhub.ts +++ b/backend/src/graphql/resolver/util/syncHumhub.ts @@ -53,7 +53,7 @@ export async function syncHumhub( externId: humhubUser?.id, // for preventing this warning https://github.com/eslint-community/eslint-plugin-security/blob/main/docs/rules/detect-object-injection.md // and possible danger coming with it - // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion + result: ExecutedHumhubAction[result as ExecutedHumhubAction], }) if (spaceId && humhubUser) { diff --git a/backend/src/graphql/resolver/util/transactionLinkList.ts b/backend/src/graphql/resolver/util/transactionLinkList.ts index 653f86804..25567f633 100644 --- a/backend/src/graphql/resolver/util/transactionLinkList.ts +++ b/backend/src/graphql/resolver/util/transactionLinkList.ts @@ -1,4 +1,4 @@ -import { MoreThan, IsNull } from '@dbTools/typeorm' +import { IsNull, MoreThan } from '@dbTools/typeorm' import { TransactionLink as DbTransactionLink } from '@entity/TransactionLink' import { User as DbUser } from '@entity/User' diff --git a/backend/src/graphql/resolver/util/transactionLinkSummary.ts b/backend/src/graphql/resolver/util/transactionLinkSummary.ts index 8f5f41f15..757279352 100644 --- a/backend/src/graphql/resolver/util/transactionLinkSummary.ts +++ b/backend/src/graphql/resolver/util/transactionLinkSummary.ts @@ -1,5 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ import { getConnection } from '@dbTools/typeorm' import { TransactionLink as DbTransactionLink } from '@entity/TransactionLink' import { Decimal } from 'decimal.js-light' diff --git a/backend/src/graphql/resolver/util/validateAlias.test.ts b/backend/src/graphql/resolver/util/validateAlias.test.ts index 5003f8975..e0e35c3b7 100644 --- a/backend/src/graphql/resolver/util/validateAlias.test.ts +++ b/backend/src/graphql/resolver/util/validateAlias.test.ts @@ -2,8 +2,8 @@ import { Connection } from '@dbTools/typeorm' import { User } from '@entity/User' import { ApolloServerTestClient } from 'apollo-server-testing' -import { testEnvironment, cleanDB } from '@test/helpers' -import { logger, i18n as localization } from '@test/testSetup' +import { cleanDB, testEnvironment } from '@test/helpers' +import { i18n as localization, logger } from '@test/testSetup' import { userFactory } from '@/seeds/factory/user' import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg' diff --git a/backend/src/graphql/resolver/util/validateAlias.ts b/backend/src/graphql/resolver/util/validateAlias.ts index 721733be4..66d9e8595 100644 --- a/backend/src/graphql/resolver/util/validateAlias.ts +++ b/backend/src/graphql/resolver/util/validateAlias.ts @@ -3,7 +3,6 @@ import { User as DbUser } from '@entity/User' import { LogError } from '@/server/LogError' -// eslint-disable-next-line security/detect-unsafe-regex export const VALID_ALIAS_REGEX = /^(?=.{3,20}$)[a-zA-Z0-9]+(?:[_-][a-zA-Z0-9]+?)*$/ const RESERVED_ALIAS = [ @@ -25,11 +24,18 @@ const RESERVED_ALIAS = [ ] export const validateAlias = async (alias: string): Promise => { - if (alias.length < 3) throw new LogError('Given alias is too short', alias) - if (alias.length > 20) throw new LogError('Given alias is too long', alias) - if (!alias.match(VALID_ALIAS_REGEX)) throw new LogError('Invalid characters in alias', alias) - if (RESERVED_ALIAS.includes(alias.toLowerCase())) + if (alias.length < 3) { + throw new LogError('Given alias is too short', alias) + } + if (alias.length > 20) { + throw new LogError('Given alias is too long', alias) + } + if (!alias.match(VALID_ALIAS_REGEX)) { + throw new LogError('Invalid characters in alias', alias) + } + if (RESERVED_ALIAS.includes(alias.toLowerCase())) { throw new LogError('Alias is not allowed', alias) + } const aliasInUse = await DbUser.find({ where: { alias: Raw((a) => `LOWER(${a}) = "${alias.toLowerCase()}"`) }, }) diff --git a/backend/src/graphql/scalar/Decimal.ts b/backend/src/graphql/scalar/Decimal.ts index 96804bdfa..f539685f9 100644 --- a/backend/src/graphql/scalar/Decimal.ts +++ b/backend/src/graphql/scalar/Decimal.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ import { Decimal } from 'decimal.js-light' import { GraphQLScalarType, Kind } from 'graphql' diff --git a/backend/src/graphql/scalar/Location.ts b/backend/src/graphql/scalar/Location.ts index 8b475d7f6..cd171c8e7 100644 --- a/backend/src/graphql/scalar/Location.ts +++ b/backend/src/graphql/scalar/Location.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ import { GraphQLScalarType, Kind } from 'graphql' import { Location } from '@model/Location' @@ -17,9 +16,9 @@ export const LocationScalar = new GraphQLScalarType({ parseValue(value): Location { try { const loc = new Location() - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment + loc.longitude = value.longitude - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment + loc.latitude = value.latitude return loc } catch (err) { diff --git a/backend/src/graphql/validator/ContributionStatusArray.ts b/backend/src/graphql/validator/ContributionStatusArray.ts index da718f70c..dd7c93277 100644 --- a/backend/src/graphql/validator/ContributionStatusArray.ts +++ b/backend/src/graphql/validator/ContributionStatusArray.ts @@ -1,9 +1,8 @@ -import { registerDecorator, ValidationOptions } from 'class-validator' +import { ValidationOptions, registerDecorator } from 'class-validator' import { ContributionStatus } from '@enum/ContributionStatus' export function isContributionStatusArray(validationOptions?: ValidationOptions) { - // eslint-disable-next-line @typescript-eslint/ban-types return function (object: Object, propertyName: string) { registerDecorator({ name: 'isContributionStatusArray', diff --git a/backend/src/graphql/validator/DateString.ts b/backend/src/graphql/validator/DateString.ts index 4ee23b51a..3502b8c84 100644 --- a/backend/src/graphql/validator/DateString.ts +++ b/backend/src/graphql/validator/DateString.ts @@ -1,7 +1,6 @@ -import { registerDecorator, ValidationOptions, ValidationArguments } from 'class-validator' +import { ValidationArguments, ValidationOptions, registerDecorator } from 'class-validator' export function isValidDateString(validationOptions?: ValidationOptions) { - // eslint-disable-next-line @typescript-eslint/ban-types return function (object: Object, propertyName: string) { registerDecorator({ name: 'isValidDateString', diff --git a/backend/src/graphql/validator/Decimal.ts b/backend/src/graphql/validator/Decimal.ts index 09e8fb4bd..0300c6d9c 100644 --- a/backend/src/graphql/validator/Decimal.ts +++ b/backend/src/graphql/validator/Decimal.ts @@ -1,8 +1,7 @@ -import { registerDecorator, ValidationOptions, ValidationArguments } from 'class-validator' +import { ValidationArguments, ValidationOptions, registerDecorator } from 'class-validator' import { Decimal } from 'decimal.js-light' export function IsPositiveDecimal(validationOptions?: ValidationOptions) { - // eslint-disable-next-line @typescript-eslint/ban-types return function (object: Object, propertyName: string) { registerDecorator({ name: 'isPositiveDecimal', diff --git a/backend/src/graphql/validator/Location.ts b/backend/src/graphql/validator/Location.ts index f1f23cd81..0bbf9fb92 100644 --- a/backend/src/graphql/validator/Location.ts +++ b/backend/src/graphql/validator/Location.ts @@ -1,11 +1,10 @@ -import { registerDecorator, ValidationOptions, ValidationArguments } from 'class-validator' +import { ValidationArguments, ValidationOptions, registerDecorator } from 'class-validator' import { Location } from '@model/Location' import { Location2Point } from '@/graphql/resolver/util/Location2Point' export function isValidLocation(validationOptions?: ValidationOptions) { - // eslint-disable-next-line @typescript-eslint/ban-types return function (object: Object, propertyName: string) { registerDecorator({ name: 'isValidLocation', diff --git a/backend/src/index.ts b/backend/src/index.ts index 86f78326d..9b1b72ba5 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -6,18 +6,18 @@ async function main() { const { app } = await createServer() app.listen(CONFIG.PORT, () => { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: no need for logging the start message console.log(`Server is running at http://localhost:${CONFIG.PORT}`) if (CONFIG.GRAPHIQL) { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: no need for logging the start message console.log(`GraphIQL available at http://localhost:${CONFIG.PORT}`) } }) - void startValidateCommunities(Number(CONFIG.FEDERATION_VALIDATE_COMMUNITY_TIMER)) + await startValidateCommunities(Number(CONFIG.FEDERATION_VALIDATE_COMMUNITY_TIMER)) } main().catch((e) => { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: maybe logger isn't initialized here console.error(e) throw e }) diff --git a/backend/src/interactions/updateUnconfirmedContribution/AbstractUnconfirmedContribution.role.ts b/backend/src/interactions/updateUnconfirmedContribution/AbstractUnconfirmedContribution.role.ts index 620751f9c..06dfea6e7 100644 --- a/backend/src/interactions/updateUnconfirmedContribution/AbstractUnconfirmedContribution.role.ts +++ b/backend/src/interactions/updateUnconfirmedContribution/AbstractUnconfirmedContribution.role.ts @@ -6,8 +6,8 @@ import { Role } from '@/auth/Role' import { ContributionLogic } from '@/data/Contribution.logic' import { ContributionMessageBuilder } from '@/data/ContributionMessage.builder' import { ContributionStatus } from '@/graphql/enum/ContributionStatus' -import { Context, getClientTimezoneOffset } from '@/server/context' import { LogError } from '@/server/LogError' +import { Context, getClientTimezoneOffset } from '@/server/context' export abstract class AbstractUnconfirmedContributionRole { private availableCreationSums?: Decimal[] diff --git a/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionAdmin.role.ts b/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionAdmin.role.ts index 96f1cf767..f958693c8 100644 --- a/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionAdmin.role.ts +++ b/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionAdmin.role.ts @@ -61,8 +61,7 @@ export class UnconfirmedContributionAdminRole extends AbstractUnconfirmedContrib } } - // eslint-disable-next-line @typescript-eslint/no-unused-vars - protected checkAuthorization(user: User, role: Role): AbstractUnconfirmedContributionRole { + protected checkAuthorization(_user: User, role: Role): AbstractUnconfirmedContributionRole { if ( !role.hasRight(RIGHTS.MODERATOR_UPDATE_CONTRIBUTION_MEMO) && this.self.moderatorId === null diff --git a/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionAdminAddMessage.role.ts b/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionAdminAddMessage.role.ts index 6850767f7..8db74d8d4 100644 --- a/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionAdminAddMessage.role.ts +++ b/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionAdminAddMessage.role.ts @@ -17,7 +17,10 @@ import { AbstractUnconfirmedContributionRole } from './AbstractUnconfirmedContri * Admins and Moderators are currently not allowed to comment her own contributions with the admin/moderator role */ export class UnconfirmedContributionAdminAddMessageRole extends AbstractUnconfirmedContributionRole { - public constructor(contribution: Contribution, private updateData: ContributionMessageArgs) { + public constructor( + contribution: Contribution, + private updateData: ContributionMessageArgs, + ) { super(contribution, contribution.amount, contribution.contributionDate) logger.debug('use UnconfirmedContributionAdminAddMessageRole') } diff --git a/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionUser.role.ts b/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionUser.role.ts index a3ffefeb3..fe7d55d80 100644 --- a/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionUser.role.ts +++ b/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionUser.role.ts @@ -14,7 +14,10 @@ import { AbstractUnconfirmedContributionRole } from './AbstractUnconfirmedContri * independent from there role, because the own contribution can only be edited in user role */ export class UnconfirmedContributionUserRole extends AbstractUnconfirmedContributionRole { - public constructor(contribution: Contribution, private updateData: ContributionArgs) { + public constructor( + contribution: Contribution, + private updateData: ContributionArgs, + ) { super(contribution, updateData.amount, new Date(updateData.creationDate)) logger.debug('use UnconfirmedContributionUserRole') } diff --git a/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionUserAddMessage.role.ts b/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionUserAddMessage.role.ts index 36a4d4e05..9b81b07bd 100644 --- a/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionUserAddMessage.role.ts +++ b/backend/src/interactions/updateUnconfirmedContribution/UnconfirmedContributionUserAddMessage.role.ts @@ -15,7 +15,10 @@ import { AbstractUnconfirmedContributionRole } from './AbstractUnconfirmedContri * independent from there role, because the own contribution can only be commented in user role */ export class UnconfirmedContributionUserAddMessageRole extends AbstractUnconfirmedContributionRole { - public constructor(contribution: Contribution, private updateData: ContributionMessageArgs) { + public constructor( + contribution: Contribution, + private updateData: ContributionMessageArgs, + ) { super(contribution, contribution.amount, contribution.contributionDate) logger.debug('use UnconfirmedContributionUserAddMessageRole') } diff --git a/backend/src/interactions/updateUnconfirmedContribution/UpdateUnconfirmedContribution.context.ts b/backend/src/interactions/updateUnconfirmedContribution/UpdateUnconfirmedContribution.context.ts index 8a34bde5d..60d9cbf19 100644 --- a/backend/src/interactions/updateUnconfirmedContribution/UpdateUnconfirmedContribution.context.ts +++ b/backend/src/interactions/updateUnconfirmedContribution/UpdateUnconfirmedContribution.context.ts @@ -7,8 +7,8 @@ import { AdminUpdateContributionArgs } from '@arg/AdminUpdateContributionArgs' import { ContributionArgs } from '@arg/ContributionArgs' import { ContributionMessageArgs } from '@/graphql/arg/ContributionMessageArgs' -import { Context } from '@/server/context' import { LogError } from '@/server/LogError' +import { Context } from '@/server/context' import { AbstractUnconfirmedContributionRole } from './AbstractUnconfirmedContribution.role' import { UnconfirmedContributionAdminRole } from './UnconfirmedContributionAdmin.role' diff --git a/backend/src/logging/BalanceLogging.view.ts b/backend/src/logging/BalanceLogging.view.ts index 0fa73baf1..b4135bbf9 100644 --- a/backend/src/logging/BalanceLogging.view.ts +++ b/backend/src/logging/BalanceLogging.view.ts @@ -7,7 +7,6 @@ export class BalanceLoggingView extends AbstractLoggingView { super() } - // eslint-disable-next-line @typescript-eslint/no-explicit-any public toJSON(): any { return { balance: this.decimalToString(this.self.balance), diff --git a/backend/src/logging/DecayLogging.view.ts b/backend/src/logging/DecayLogging.view.ts index 44fd392f9..92cc836aa 100644 --- a/backend/src/logging/DecayLogging.view.ts +++ b/backend/src/logging/DecayLogging.view.ts @@ -7,7 +7,6 @@ export class DecayLoggingView extends AbstractLoggingView { super() } - // eslint-disable-next-line @typescript-eslint/no-explicit-any public toJSON(): any { return { balance: this.decimalToString(this.self.balance), diff --git a/backend/src/password/EncryptionWorker.ts b/backend/src/password/EncryptionWorker.ts index 36c08f1b6..34f33226f 100644 --- a/backend/src/password/EncryptionWorker.ts +++ b/backend/src/password/EncryptionWorker.ts @@ -4,15 +4,15 @@ import { CONFIG } from '@/config' import { crypto_box_SEEDBYTES, - crypto_hash_sha512_init, - crypto_hash_sha512_update, - crypto_hash_sha512_final, crypto_hash_sha512_BYTES, crypto_hash_sha512_STATEBYTES, - crypto_shorthash_BYTES, - crypto_pwhash_SALTBYTES, + crypto_hash_sha512_final, + crypto_hash_sha512_init, + crypto_hash_sha512_update, crypto_pwhash, + crypto_pwhash_SALTBYTES, crypto_shorthash, + crypto_shorthash_BYTES, } from 'sodium-native' export const SecretKeyCryptographyCreateKey = ( diff --git a/backend/src/password/EncryptorUtils.ts b/backend/src/password/EncryptorUtils.ts index f4dc00b6c..25ee852bc 100644 --- a/backend/src/password/EncryptorUtils.ts +++ b/backend/src/password/EncryptorUtils.ts @@ -1,7 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ import { cpus } from 'os' import path from 'path' diff --git a/backend/src/password/PasswordEncryptor.ts b/backend/src/password/PasswordEncryptor.ts index a97c29e7f..b9fdb65aa 100644 --- a/backend/src/password/PasswordEncryptor.ts +++ b/backend/src/password/PasswordEncryptor.ts @@ -1,7 +1,7 @@ import { User } from '@entity/User' // import { logger } from '@test/testSetup' getting error "jest is not defined" -import { getUserCryptographicSalt, SecretKeyCryptographyCreateKey } from './EncryptorUtils' +import { SecretKeyCryptographyCreateKey, getUserCryptographicSalt } from './EncryptorUtils' export const encryptPassword = async (dbUser: User, password: string): Promise => { const salt = getUserCryptographicSalt(dbUser) diff --git a/backend/src/password/__mocks__/EncryptorUtils.ts b/backend/src/password/__mocks__/EncryptorUtils.ts index 2bc20f951..6f8ea8f7d 100644 --- a/backend/src/password/__mocks__/EncryptorUtils.ts +++ b/backend/src/password/__mocks__/EncryptorUtils.ts @@ -1,7 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ import { User } from '@entity/User' import { PasswordEncryptionType } from '@enum/PasswordEncryptionType' @@ -11,19 +7,19 @@ import { LogError } from '@/server/LogError' import { backendLogger as logger } from '@/server/logger' import { - crypto_shorthash_KEYBYTES, crypto_box_SEEDBYTES, - crypto_hash_sha512_init, - crypto_hash_sha512_update, - crypto_hash_sha512_final, crypto_hash_sha512_BYTES, crypto_hash_sha512_STATEBYTES, - crypto_shorthash_BYTES, - crypto_pwhash_SALTBYTES, + crypto_hash_sha512_final, + crypto_hash_sha512_init, + crypto_hash_sha512_update, crypto_pwhash, - crypto_shorthash, - crypto_pwhash_OPSLIMIT_MIN, crypto_pwhash_MEMLIMIT_MIN, + crypto_pwhash_OPSLIMIT_MIN, + crypto_pwhash_SALTBYTES, + crypto_shorthash, + crypto_shorthash_BYTES, + crypto_shorthash_KEYBYTES, } from 'sodium-native' const SecretKeyCryptographyCreateKeyMock = ( diff --git a/backend/src/seeds/community/index.ts b/backend/src/seeds/community/index.ts index 84542e002..e8af6c646 100644 --- a/backend/src/seeds/community/index.ts +++ b/backend/src/seeds/community/index.ts @@ -29,7 +29,7 @@ export async function writeHomeCommunityEntry(): Promise { await DbCommunity.insert(homeCom) } return homeCom - } catch (err) { + } catch (_err) { throw new Error(`Seeding: Error writing HomeCommunity-Entry`) // : ${err}`) } } diff --git a/backend/src/seeds/factory/contributionLink.ts b/backend/src/seeds/factory/contributionLink.ts index d03d222c6..4e8c945f3 100644 --- a/backend/src/seeds/factory/contributionLink.ts +++ b/backend/src/seeds/factory/contributionLink.ts @@ -1,12 +1,9 @@ -/* eslint-disable @typescript-eslint/no-unsafe-return */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/unbound-method */ import { ApolloServerTestClient } from 'apollo-server-testing' import { ContributionLink } from '@model/ContributionLink' import { ContributionLinkInterface } from '@/seeds/contributionLink/ContributionLinkInterface' -import { login, createContributionLink } from '@/seeds/graphql/mutations' +import { createContributionLink, login } from '@/seeds/graphql/mutations' export const contributionLinkFactory = async ( client: ApolloServerTestClient, @@ -15,8 +12,7 @@ export const contributionLinkFactory = async ( const { mutate } = client // login as admin - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const user = await mutate({ + await mutate({ mutation: login, variables: { email: 'peter@lustig.de', password: 'Aa12345_' }, }) diff --git a/backend/src/seeds/factory/creation.ts b/backend/src/seeds/factory/creation.ts index 5e6e058f9..4fce38206 100644 --- a/backend/src/seeds/factory/creation.ts +++ b/backend/src/seeds/factory/creation.ts @@ -1,14 +1,10 @@ -/* eslint-disable @typescript-eslint/no-unsafe-return */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/unbound-method */ import { Contribution } from '@entity/Contribution' import { Transaction } from '@entity/Transaction' import { ApolloServerTestClient } from 'apollo-server-testing' import { findUserByEmail } from '@/graphql/resolver/UserResolver' import { CreationInterface } from '@/seeds/creation/CreationInterface' -import { login, createContribution, confirmContribution } from '@/seeds/graphql/mutations' +import { confirmContribution, createContribution, login } from '@/seeds/graphql/mutations' export const nMonthsBefore = (date: Date, months = 1): string => { return new Date(date.getFullYear(), date.getMonth() - months, 1).toISOString() diff --git a/backend/src/seeds/factory/transactionLink.ts b/backend/src/seeds/factory/transactionLink.ts index b44fe349c..098100622 100644 --- a/backend/src/seeds/factory/transactionLink.ts +++ b/backend/src/seeds/factory/transactionLink.ts @@ -1,10 +1,8 @@ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/unbound-method */ import { TransactionLink } from '@entity/TransactionLink' import { ApolloServerTestClient } from 'apollo-server-testing' import { transactionLinkExpireDate } from '@/graphql/resolver/TransactionLinkResolver' -import { login, createTransactionLink } from '@/seeds/graphql/mutations' +import { createTransactionLink, login } from '@/seeds/graphql/mutations' import { TransactionLinkInterface } from '@/seeds/transactionLink/TransactionLinkInterface' export const transactionLinkFactory = async ( diff --git a/backend/src/seeds/factory/user.ts b/backend/src/seeds/factory/user.ts index 067a6476f..1eab302c0 100644 --- a/backend/src/seeds/factory/user.ts +++ b/backend/src/seeds/factory/user.ts @@ -1,5 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/unbound-method */ import { User } from '@entity/User' import { ApolloServerTestClient } from 'apollo-server-testing' @@ -19,9 +17,8 @@ export const userFactory = async ( const homeCom = await writeHomeCommunityEntry() const response = await mutate({ mutation: createUser, variables: user }) - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access if (!response?.data?.createUser) { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: will be used in tests where logging is mocked console.log(response) throw new Error('createUser mutation returned unexpected response') } @@ -63,7 +60,7 @@ export const userFactory = async ( dbUser.communityUuid = homeCom.communityUuid await User.save(dbUser) } - } catch (err) { + } catch (_err) { // no homeCommunity exists } diff --git a/backend/src/seeds/index.ts b/backend/src/seeds/index.ts index b22409759..123637d03 100644 --- a/backend/src/seeds/index.ts +++ b/backend/src/seeds/index.ts @@ -1,12 +1,6 @@ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-return */ - import { entities } from '@entity/index' import { createTestClient } from 'apollo-server-testing' -import { name, internet, datatype } from 'faker' +import { datatype, internet, name } from 'faker' import { CONFIG } from '@/config' import { createServer } from '@/server/createServer' @@ -30,8 +24,10 @@ const context = { push: (value: { key: string; value: string }): void => { context.token = value.value }, - // eslint-disable-next-line @typescript-eslint/no-empty-function - forEach: (): void => {}, + + forEach: (): void => { + // do nothing + }, }, clientTimezoneOffset: 0, } @@ -100,4 +96,7 @@ const run = async () => { await con.close() } -void run() +run().catch((err) => { + // biome-ignore lint/suspicious/noConsole: no logger present + console.error('error on seeding', err) +}) diff --git a/backend/src/server/LogError.test.ts b/backend/src/server/LogError.test.ts index 115567a8b..88c342709 100644 --- a/backend/src/server/LogError.test.ts +++ b/backend/src/server/LogError.test.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ import { logger } from '@test/testSetup' import { LogError } from './LogError' diff --git a/backend/src/server/LogError.ts b/backend/src/server/LogError.ts index 0862b9809..346923019 100644 --- a/backend/src/server/LogError.ts +++ b/backend/src/server/LogError.ts @@ -1,8 +1,6 @@ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ import { backendLogger as logger } from './logger' export class LogError extends Error { - // eslint-disable-next-line @typescript-eslint/no-explicit-any constructor(msg: string, ...details: any[]) { super(msg) logger.error(msg, ...details) diff --git a/backend/src/server/context.ts b/backend/src/server/context.ts index a6038271c..1dc07660d 100644 --- a/backend/src/server/context.ts +++ b/backend/src/server/context.ts @@ -39,7 +39,9 @@ export const context = (args: ExpressContext): Context => { } export const getUser = (context: Context): dbUser => { - if (context.user) return context.user + if (context.user) { + return context.user + } throw new LogError('No user given in context') } diff --git a/backend/src/server/createServer.ts b/backend/src/server/createServer.ts index a901d8763..695e0d585 100644 --- a/backend/src/server/createServer.ts +++ b/backend/src/server/createServer.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/restrict-template-expressions */ -/* eslint-disable @typescript-eslint/unbound-method */ import { Connection as DbConnection } from '@dbTools/typeorm' import { ApolloServer } from 'apollo-server-express' import express, { Express, json, urlencoded } from 'express' @@ -10,8 +7,8 @@ import { Logger } from 'log4js' import { CONFIG } from '@/config' import { schema } from '@/graphql/schema' -import { Connection } from '@/typeorm/connection' import { checkDBVersion } from '@/typeorm/DBVersion' +import { Connection } from '@/typeorm/connection' import { elopageWebhook } from '@/webhook/elopage' import { gmsWebhook } from '@/webhook/gms' @@ -31,7 +28,6 @@ interface ServerDef { } export const createServer = async ( - // eslint-disable-next-line @typescript-eslint/no-explicit-any context: any = serverContext, logger: Logger = apolloLogger, localization: i18n.I18n = i18n, @@ -60,7 +56,7 @@ export const createServer = async ( app.use(cors) // Helmet helps secure Express apps by setting HTTP response headers. - // eslint-disable-next-line @typescript-eslint/no-unsafe-call + app.use(helmet()) // rate limiter/ slow down to many requests @@ -92,11 +88,11 @@ export const createServer = async ( app.use(localization.init) // Elopage Webhook - // eslint-disable-next-line @typescript-eslint/no-misused-promises + app.post('/hook/elopage/' + CONFIG.WEBHOOK_ELOPAGE_SECRET, elopageWebhook) // GMS Webhook - // eslint-disable-next-line @typescript-eslint/no-misused-promises + app.get('/hook/gms/' + CONFIG.GMS_WEBHOOK_SECRET, gmsWebhook) // Apollo Server diff --git a/backend/src/server/logger.ts b/backend/src/server/logger.ts index 0f146b7f7..24ae79c67 100644 --- a/backend/src/server/logger.ts +++ b/backend/src/server/logger.ts @@ -1,13 +1,9 @@ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ import { readFileSync } from 'fs' import { configure, getLogger } from 'log4js' import { CONFIG } from '@/config' -// eslint-disable-next-line security/detect-non-literal-fs-filename const options = JSON.parse(readFileSync(CONFIG.LOG4JS_CONFIG, 'utf-8')) options.categories.backend.level = CONFIG.LOG_LEVEL @@ -18,7 +14,8 @@ configure(options) const apolloLogger = getLogger('apollo') const backendLogger = getLogger('backend') const klickTippLogger = getLogger('klicktipp') +const gmsLogger = getLogger('gms') backendLogger.addContext('user', 'unknown') -export { apolloLogger, backendLogger, klickTippLogger } +export { apolloLogger, backendLogger, klickTippLogger, gmsLogger } diff --git a/backend/src/server/plugins.ts b/backend/src/server/plugins.ts index c4ffa4f3f..1c8e73390 100644 --- a/backend/src/server/plugins.ts +++ b/backend/src/server/plugins.ts @@ -1,10 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/restrict-template-expressions */ -/* eslint-disable @typescript-eslint/no-unsafe-return */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ import clonedeep from 'lodash.clonedeep' const setHeadersPlugin = { @@ -27,8 +20,12 @@ const setHeadersPlugin = { const filterVariables = (variables: any) => { const vars = clonedeep(variables) - if (vars?.password) vars.password = '***' - if (vars?.passwordNew) vars.passwordNew = '***' + if (vars?.password) { + vars.password = '***' + } + if (vars?.passwordNew) { + vars.passwordNew = '***' + } return vars } @@ -44,15 +41,18 @@ ${mutation || query}variables: ${JSON.stringify(filterVariables(variables), null return { willSendResponse(requestContext: any) { if (operationName !== 'IntrospectionQuery') { - if (requestContext.context.user) logger.info(`User ID: ${requestContext.context.user.id}`) + if (requestContext.context.user) { + logger.info(`User ID: ${requestContext.context.user.id}`) + } if (requestContext.response.data) { logger.info('Response Success!') logger.trace(`Response-Data: ${JSON.stringify(requestContext.response.data, null, 2)}`) } - if (requestContext.response.errors) + if (requestContext.response.errors) { logger.error(`Response-Errors: ${JSON.stringify(requestContext.response.errors, null, 2)}`) + } } return requestContext }, @@ -61,5 +61,4 @@ ${JSON.stringify(requestContext.response.errors, null, 2)}`) } export const plugins = - // eslint-disable-next-line n/no-process-env process.env.NODE_ENV === 'development' ? [setHeadersPlugin] : [setHeadersPlugin, logPlugin] diff --git a/backend/src/typeorm/connection.ts b/backend/src/typeorm/connection.ts index 104f6449d..f9b6744e8 100644 --- a/backend/src/typeorm/connection.ts +++ b/backend/src/typeorm/connection.ts @@ -1,11 +1,10 @@ // TODO This is super weird - since the entities are defined in another project they have their own globals. // We cannot use our connection here, but must use the external typeorm installation -import { Connection as DbConnection, createConnection, FileLogger } from '@dbTools/typeorm' +import { Connection as DbConnection, FileLogger, createConnection } from '@dbTools/typeorm' import { entities } from '@entity/index' import { CONFIG } from '@/config' -// eslint-disable-next-line @typescript-eslint/no-extraneous-class export class Connection { private static instance: DbConnection @@ -13,7 +12,6 @@ export class Connection { * The Singleton's constructor should always be private to prevent direct * construction calls with the `new` operator. */ - // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function private constructor() {} /** @@ -48,7 +46,7 @@ export class Connection { }) return Connection.instance } catch (error) { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: maybe logger isn't initialized yet console.log(error) return null } diff --git a/backend/src/util/Monitor.ts b/backend/src/util/Monitor.ts index 3489eff4d..f592a343d 100644 --- a/backend/src/util/Monitor.ts +++ b/backend/src/util/Monitor.ts @@ -16,7 +16,6 @@ registerEnumType(MonitorNames, { export class Monitor { private static locks = new Map() - // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function private constructor() {} private _dummy = `to avoid unexpected class with only static properties` diff --git a/backend/src/util/calculateSenderBalance.ts b/backend/src/util/calculateSenderBalance.ts index 89e417d35..d2973c982 100644 --- a/backend/src/util/calculateSenderBalance.ts +++ b/backend/src/util/calculateSenderBalance.ts @@ -12,7 +12,9 @@ export async function calculateSenderBalance( time: Date, ): Promise<{ balance: Decimal; decay: Decay; lastTransactionId: number } | null> { const lastTransaction = await getLastTransaction(userId) - if (!lastTransaction) return null + if (!lastTransaction) { + return null + } const decay = calculateDecay(lastTransaction.balance, lastTransaction.balanceDate, time) diff --git a/backend/src/util/communityUser.ts b/backend/src/util/communityUser.ts index 45a142ce8..4ac17eb0d 100644 --- a/backend/src/util/communityUser.ts +++ b/backend/src/util/communityUser.ts @@ -1,6 +1,4 @@ -/* eslint-disable @typescript-eslint/no-unused-vars */ - -import { SaveOptions, RemoveOptions } from '@dbTools/typeorm' +import { RemoveOptions, SaveOptions } from '@dbTools/typeorm' import { User as dbUser } from '@entity/User' import { UserContact } from '@entity/UserContact' diff --git a/backend/src/util/decay.test.ts b/backend/src/util/decay.test.ts index 1d4ebab3b..f419982ac 100644 --- a/backend/src/util/decay.test.ts +++ b/backend/src/util/decay.test.ts @@ -1,6 +1,6 @@ import { Decimal } from 'decimal.js-light' -import { decayFormula, calculateDecay } from './decay' +import { calculateDecay, decayFormula } from './decay' describe('utils/decay', () => { describe('decayFormula', () => { @@ -16,7 +16,7 @@ describe('utils/decay', () => { expect(decayFormula(amount, seconds).toString()).toBe('1.000000021964959992727444') }) // we get pretty close, but not exact here, skipping - // eslint-disable-next-line jest/no-disabled-tests + it.skip('has correct forward calculation', () => { const amount = new Decimal(1.0).div( new Decimal('0.99999997803504048973201202316767079413460520837376'), diff --git a/backend/src/util/executeKlicktipp.ts b/backend/src/util/executeKlicktipp.ts index 74b453307..ade1c3470 100644 --- a/backend/src/util/executeKlicktipp.ts +++ b/backend/src/util/executeKlicktipp.ts @@ -13,4 +13,8 @@ async function executeKlicktipp(): Promise { } } -void executeKlicktipp() +executeKlicktipp().catch((e) => { + // biome-ignore lint/suspicious/noConsole: logger isn't used here + console.error(e) + process.exit(1) +}) diff --git a/backend/src/util/klicktipp.test.ts b/backend/src/util/klicktipp.test.ts index a88e8f21a..d53dd3ff0 100644 --- a/backend/src/util/klicktipp.test.ts +++ b/backend/src/util/klicktipp.test.ts @@ -1,12 +1,8 @@ -/* eslint-disable @typescript-eslint/no-unsafe-return */ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ import { Connection } from '@dbTools/typeorm' import { Event as DbEvent } from '@entity/Event' import { ApolloServerTestClient } from 'apollo-server-testing' -import { testEnvironment, cleanDB, resetToken } from '@test/helpers' +import { cleanDB, resetToken, testEnvironment } from '@test/helpers' import { addFieldsToSubscriber } from '@/apis/KlicktippController' import { creations } from '@/seeds/creation' @@ -21,7 +17,8 @@ import { exportEventDataToKlickTipp } from './klicktipp' jest.mock('@/apis/KlicktippController') jest.mock('@/password/EncryptorUtils') -let mutate: ApolloServerTestClient['mutate'], con: Connection +let mutate: ApolloServerTestClient['mutate'] +let con: Connection let testEnv: { mutate: ApolloServerTestClient['mutate'] query: ApolloServerTestClient['query'] @@ -45,7 +42,6 @@ describe('klicktipp', () => { await userFactory(testEnv, bibiBloxberg) await userFactory(testEnv, peterLustig) const bibisCreation = creations.find((creation) => creation.email === 'bibi@bloxberg.de') - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion await creationFactory(testEnv, bibisCreation!) await mutate({ mutation: login, diff --git a/backend/src/util/klicktipp.ts b/backend/src/util/klicktipp.ts index c07b3128a..cc5c2569a 100644 --- a/backend/src/util/klicktipp.ts +++ b/backend/src/util/klicktipp.ts @@ -1,24 +1,19 @@ -// eslint-disable @typescript-eslint/no-explicit-any import { User } from '@entity/User' -import { getKlickTippUser, addFieldsToSubscriber } from '@/apis/KlicktippController' +import { addFieldsToSubscriber, getKlickTippUser } from '@/apis/KlicktippController' import { EventType } from '@/event/EventType' import { lastDateTimeEvents } from '@/graphql/resolver/util/eventList' export async function retrieveNotRegisteredEmails(): Promise { const users = await User.find({ relations: ['emailContact'] }) - const notRegisteredUser = [] + const notRegisteredUser: string[] = [] for (const user of users) { try { await getKlickTippUser(user.emailContact.email) - } catch (err) { + } catch (_err) { notRegisteredUser.push(user.emailContact.email) - // eslint-disable-next-line no-console - console.log(`${user.emailContact.email}`) } } - // eslint-disable-next-line no-console - console.log('User die nicht bei KlickTipp vorhanden sind: ', notRegisteredUser) return notRegisteredUser } diff --git a/backend/src/util/time.ts b/backend/src/util/time.ts index 538735766..0acaf2501 100644 --- a/backend/src/util/time.ts +++ b/backend/src/util/time.ts @@ -16,6 +16,8 @@ export const getTimeDurationObject = ( export const printTimeDuration = (duration: number): string => { const time = getTimeDurationObject(duration) const result = time.minutes > 0 ? `${time.minutes} minutes` : '' - if (time.hours) return `${time.hours} hours` + (result !== '' ? ` and ${result}` : '') + if (time.hours) { + return `${time.hours} hours` + (result !== '' ? ` and ${result}` : '') + } return result } diff --git a/backend/src/util/utilities.ts b/backend/src/util/utilities.ts index 4f45af023..0e8a8da85 100644 --- a/backend/src/util/utilities.ts +++ b/backend/src/util/utilities.ts @@ -4,7 +4,6 @@ import { Decimal } from 'decimal.js-light' import i18n from 'i18n' export const objectValuesToArray = (obj: Record): string[] => - // eslint-disable-next-line security/detect-object-injection Object.keys(obj).map((key) => obj[key]) export const decimalSeparatorByLanguage = (a: Decimal, language: string): string => { @@ -19,13 +18,13 @@ export const fullName = (firstName: string, lastName: string): string => [firstName, lastName].filter(Boolean).join(' ') // Function to reset an interface by chatGPT -// eslint-disable-next-line @typescript-eslint/no-explicit-any + export function resetInterface>(obj: T): T { // Iterate over all properties of the object for (const key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { // Set all optional properties to undefined - // eslint-disable-next-line security/detect-object-injection + obj[key] = undefined as T[Extract] } } diff --git a/backend/src/util/validate.ts b/backend/src/util/validate.ts index ab0c8a12a..6ea1c1f7b 100644 --- a/backend/src/util/validate.ts +++ b/backend/src/util/validate.ts @@ -32,7 +32,9 @@ async function calculateBalance( transactionLink?: dbTransactionLink | null, ): Promise<{ balance: Decimal; decay: Decay; lastTransactionId: number } | null> { const lastTransaction = await getLastTransaction(userId) - if (!lastTransaction) return null + if (!lastTransaction) { + return null + } const decay = calculateDecay(lastTransaction.balance, lastTransaction.balanceDate, time) diff --git a/backend/src/util/virtualTransactions.ts b/backend/src/util/virtualTransactions.ts index 063f926e0..8be04b34d 100644 --- a/backend/src/util/virtualTransactions.ts +++ b/backend/src/util/virtualTransactions.ts @@ -1,5 +1,4 @@ -/* eslint-disable @typescript-eslint/no-unused-vars */ -import { SaveOptions, RemoveOptions } from '@dbTools/typeorm' +import { RemoveOptions, SaveOptions } from '@dbTools/typeorm' import { Transaction as dbTransaction } from '@entity/Transaction' import { Decimal } from 'decimal.js-light' @@ -13,16 +12,16 @@ const defaultModelFunctions = { hasId: function (): boolean { throw new Error('Function not implemented.') }, - save: function (options?: SaveOptions): Promise { + save: function (_options?: SaveOptions): Promise { throw new Error('Function not implemented.') }, - remove: function (options?: RemoveOptions): Promise { + remove: function (_options?: RemoveOptions): Promise { throw new Error('Function not implemented.') }, - softRemove: function (options?: SaveOptions): Promise { + softRemove: function (_options?: SaveOptions): Promise { throw new Error('Function not implemented.') }, - recover: function (options?: SaveOptions): Promise { + recover: function (_options?: SaveOptions): Promise { throw new Error('Function not implemented.') }, reload: function (): Promise { @@ -33,12 +32,12 @@ const defaultModelFunctions = { const virtualLinkTransaction = ( balance: Decimal, amount: Decimal, - holdAvailableAmount: Decimal, + _holdAvailableAmount: Decimal, decay: Decimal, createdAt: Date, validUntil: Date, user: User, - previousBalance: Decimal, + _previousBalance: Decimal, ): Transaction => { const linkDbTransaction: dbTransaction = { id: -2, diff --git a/backend/src/webhook/elopage.ts b/backend/src/webhook/elopage.ts index 940b80dd1..eca5fe75f 100644 --- a/backend/src/webhook/elopage.ts +++ b/backend/src/webhook/elopage.ts @@ -1,10 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/restrict-template-expressions */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ /* Elopage Webhook @@ -32,14 +25,14 @@ I assume that the webhook arrives via POST and transmits a string as shown above */ +import { backendLogger as logger } from '@/server/logger' import { LoginElopageBuys } from '@entity/LoginElopageBuys' import { UserContact as dbUserContact } from '@entity/UserContact' import { UserResolver } from '@/graphql/resolver/UserResolver' export const elopageWebhook = async (req: any, res: any): Promise => { - // eslint-disable-next-line no-console - console.log('Elopage Hook received', req.body) + logger.info('Elopage Hook received') res.status(200).end() // Responding is important const loginElopageBuy = new LoginElopageBuys() @@ -47,13 +40,9 @@ export const elopageWebhook = async (req: any, res: any): Promise => { payer, product, publisher, - // eslint-disable-next-line camelcase order_id, - // eslint-disable-next-line camelcase product_id, - // eslint-disable-next-line camelcase payment_state, - // eslint-disable-next-line camelcase success_date, event, membership, @@ -61,14 +50,12 @@ export const elopageWebhook = async (req: any, res: any): Promise => { // Do not process certain events if (['lesson.viewed', 'lesson.completed', 'lesson.commented'].includes(event)) { - // eslint-disable-next-line no-console - console.log('User viewed, completed or commented - not saving hook') + logger.debug('User viewed, completed or commented - not saving hook') return } if (!product || !publisher || !membership || !payer) { - // eslint-disable-next-line no-console - console.log('Elopage Hook: Not an event we can process') + logger.debug('Elopage Hook: Not an event we can process') return } @@ -81,7 +68,7 @@ export const elopageWebhook = async (req: any, res: any): Promise => { loginElopageBuy.productPrice = productPrice ? Math.trunc(productPrice * 100) : 0 loginElopageBuy.payerEmail = payer.email loginElopageBuy.publisherEmail = publisher.email - // eslint-disable-next-line camelcase + loginElopageBuy.payed = payment_state === 'paid' loginElopageBuy.successDate = new Date(success_date) loginElopageBuy.event = event @@ -95,8 +82,7 @@ export const elopageWebhook = async (req: any, res: any): Promise => { try { await LoginElopageBuys.save(loginElopageBuy) } catch (error) { - // eslint-disable-next-line no-console - console.log('Error saving LoginElopageBuy', error) + logger.error('Error saving LoginElopageBuy', error) return } @@ -115,7 +101,6 @@ export const elopageWebhook = async (req: any, res: any): Promise => { ) { const email = loginElopageBuy.payerEmail - // eslint-disable-next-line security/detect-unsafe-regex const VALIDATE_EMAIL = /^[a-zA-Z0-9.!#$%&?*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/ const VALIDATE_NAME = /^<>&;]{2,}$/ @@ -128,16 +113,14 @@ export const elopageWebhook = async (req: any, res: any): Promise => { lastName === '' || lastName.match(VALIDATE_NAME) ) { - // eslint-disable-next-line no-console - console.log(`Could not create User ${firstName} ${lastName} with email: ${email}`) + logger.info(`Could not create User ${firstName} ${lastName} with email: ${email}`) return } // Do we already have such a user? // if ((await dbUser.count({ email })) !== 0) { if ((await dbUserContact.count({ where: { email } })) !== 0) { - // eslint-disable-next-line no-console - console.log(`Did not create User - already exists with email: ${email}`) + logger.info(`Did not create User - already exists with email: ${email}`) return } @@ -150,8 +133,7 @@ export const elopageWebhook = async (req: any, res: any): Promise => { publisherId: loginElopageBuy.publisherId ?? 0, // This seemed to be the default value if not set }) } catch (error) { - // eslint-disable-next-line no-console - console.log(`Could not create User for ${email}. Following Error occured:`, error) + logger.error(`Could not create User for ${email}. Following Error occured:`, error) } } } diff --git a/backend/src/webhook/gms.ts b/backend/src/webhook/gms.ts index 3a4e9c3f3..1b5bf162b 100644 --- a/backend/src/webhook/gms.ts +++ b/backend/src/webhook/gms.ts @@ -1,36 +1,36 @@ -/* eslint-disable no-console */ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ import { User as DbUser } from '@entity/User' import { decode } from '@/auth/JWT' +import { gmsLogger as logger } from '@/server/logger' export const gmsWebhook = async (req: any, res: any): Promise => { - console.log('GMS Hook received', req.query) + logger.info('GMS Hook received') const { token } = req.query if (!token) { - console.log('gmsWebhook: missing token') + logger.debug('gmsWebhook: missing token', req.query) res.status(400).json({ message: 'false' }) return } const payload = await decode(token) - console.log('gmsWebhook: decoded token=', payload) + logger.debug('gmsWebhook: decoded token=', payload) if (!payload) { - console.log('gmsWebhook: invalid token') + logger.debug('gmsWebhook: invalid token', token) res.status(400).json({ message: 'false' }) return } const user = await DbUser.findOne({ where: { gradidoID: payload.gradidoID } }) if (!user) { - console.log('gmsWebhook: missing user') + logger.error('gmsWebhook: missing user', payload.gradidoID) res.status(400).json({ message: 'false' }) return } - console.log('gmsWebhook: authenticate user=', user.gradidoID, user.firstName, user.lastName) - console.log('gmsWebhook: authentication successful') + logger.debug( + 'gmsWebhook: authenticate user=', + user.gradidoID, + user.firstName.slice(0, 3), + user.lastName.slice(0, 3), + ) + logger.info('gmsWebhook: authentication successful') res.status(200).json({ userUuid: user.gradidoID }) } diff --git a/backend/yarn.lock b/backend/yarn.lock index 1bc87a194..b64ed463a 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -318,6 +318,60 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@biomejs/biome@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-1.9.4.tgz#89766281cbc3a0aae865a7ff13d6aaffea2842bf" + integrity sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog== + optionalDependencies: + "@biomejs/cli-darwin-arm64" "1.9.4" + "@biomejs/cli-darwin-x64" "1.9.4" + "@biomejs/cli-linux-arm64" "1.9.4" + "@biomejs/cli-linux-arm64-musl" "1.9.4" + "@biomejs/cli-linux-x64" "1.9.4" + "@biomejs/cli-linux-x64-musl" "1.9.4" + "@biomejs/cli-win32-arm64" "1.9.4" + "@biomejs/cli-win32-x64" "1.9.4" + +"@biomejs/cli-darwin-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz#dfa376d23a54a2d8f17133c92f23c1bf2e62509f" + integrity sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw== + +"@biomejs/cli-darwin-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz#eafc2ce3849d385fc02238aad1ca4a73395a64d9" + integrity sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg== + +"@biomejs/cli-linux-arm64-musl@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz#d780c3e01758fc90f3268357e3f19163d1f84fca" + integrity sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA== + +"@biomejs/cli-linux-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz#8ed1dd0e89419a4b66a47f95aefb8c46ae6041c9" + integrity sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g== + +"@biomejs/cli-linux-x64-musl@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz#f36982b966bd671a36671e1de4417963d7db15fb" + integrity sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg== + +"@biomejs/cli-linux-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz#a0a7f56680c76b8034ddc149dbf398bdd3a462e8" + integrity sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg== + +"@biomejs/cli-win32-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz#e2ef4e0084e76b7e26f0fc887c5ef1265ea56200" + integrity sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg== + +"@biomejs/cli-win32-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz#4c7afa90e3970213599b4095e62f87e5972b2340" + integrity sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA== + "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" diff --git a/biome.json b/biome.json new file mode 100644 index 000000000..7549528fb --- /dev/null +++ b/biome.json @@ -0,0 +1,148 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "vcs": { "enabled": false, "clientKind": "git", "useIgnoreFile": false }, + "files": { + "ignoreUnknown": false, + "ignore": ["build", "node_modules", "coverage"], + "include": ["./src/**/*.js", "./src/**/*.ts", "./entity/**/*.ts", "./logging/**/*.ts", "./migrations/**/*.ts"] + }, + "formatter": { + "enabled": true, + "useEditorconfig": true, + "formatWithErrors": false, + "indentStyle": "space", + "indentWidth": 2, + "lineEnding": "lf", + "lineWidth": 100, + "attributePosition": "auto", + "bracketSpacing": true + }, + "organizeImports": { "enabled": true }, + "linter": { + "enabled": true, + "rules": { + "recommended": false, + "complexity": { + "noExtraBooleanCast": "error", + "noMultipleSpacesInRegularExpressionLiterals": "error", + "noUselessCatch": "error", + "noUselessConstructor": "error", + "noUselessLoneBlockStatements": "error", + "noUselessRename": "error", + "noUselessTernary": "error", + "noUselessUndefinedInitialization": "error", + "noVoid": "error", + "noWith": "error", + "useLiteralKeys": "error", + "useRegexLiterals": "error" + }, + "correctness": { + "noConstAssign": "error", + "noConstantCondition": "error", + "noEmptyCharacterClassInRegex": "error", + "noEmptyPattern": "error", + "noGlobalObjectCalls": "error", + "noInnerDeclarations": "error", + "noInvalidConstructorSuper": "error", + "noInvalidUseBeforeDeclaration": "error", + "noNewSymbol": "error", + "noNodejsModules": "off", + "noNonoctalDecimalEscape": "error", + "noPrecisionLoss": "error", + "noSelfAssign": "error", + "noSetterReturn": "error", + "noSwitchDeclarations": "error", + "noUndeclaredVariables": "error", + "noUnreachable": "error", + "noUnreachableSuper": "error", + "noUnsafeFinally": "error", + "noUnsafeOptionalChaining": "error", + "noUnusedLabels": "error", + "noUnusedVariables": "error", + "useArrayLiterals": "error", + "useIsNan": "error", + "useValidForDirection": "error", + "useYield": "error" + }, + "security": { "noGlobalEval": "error" }, + "style": { + "noCommaOperator": "error", + "noDefaultExport": "error", + "noVar": "warn", + "noYodaExpression": "error", + "useBlockStatements": "error", + "useConsistentBuiltinInstantiation": "error", + "useConst": "error", + "useImportType": "off", + "useSingleVarDeclarator": "error" + }, + "suspicious": { + "noAsyncPromiseExecutor": "error", + "noCatchAssign": "error", + "noClassAssign": "error", + "noCompareNegZero": "error", + "noConsole": "error", + "noControlCharactersInRegex": "error", + "noDebugger": "error", + "noDoubleEquals": "error", + "noDuplicateCase": "error", + "noDuplicateClassMembers": "error", + "noDuplicateObjectKeys": "error", + "noDuplicateParameters": "error", + "noEmptyBlockStatements": "error", + "noFallthroughSwitchClause": "error", + "noFunctionAssign": "error", + "noGlobalAssign": "error", + "noImportAssign": "error", + "noMisleadingCharacterClass": "error", + "noPrototypeBuiltins": "error", + "noRedeclare": "error", + "noSelfCompare": "error", + "noShadowRestrictedNames": "error", + "noSparseArray": "error", + "noUnsafeNegation": "error", + "useDefaultSwitchClauseLast": "error", + "useGetterReturn": "error", + "useValidTypeof": "error" + } + }, + "ignore": ["**/node_modules", "**/*.min.js", "**/build", "**/coverage"] + }, + "javascript": { + "formatter": { + "jsxQuoteStyle": "single", + "quoteProperties": "asNeeded", + "trailingCommas": "all", + "semicolons": "asNeeded", + "arrowParentheses": "always", + "bracketSameLine": false, + "quoteStyle": "single", + "attributePosition": "auto", + "bracketSpacing": true + }, + "globals": [ + "document", + "navigator", + "window", + "describe", + "test", + "it", + "expect", + "beforeAll", + "beforeEach", + "afterAll", + "afterEach", + "jest" + ], + "parser": { + "unsafeParameterDecoratorsEnabled": true + } + }, + "overrides": [ + { + "include": ["*.ts", "*.tsx"], + "linter": { "rules": { "complexity": { "noVoid": "error" } } } + }, + { "include": ["*.test.ts"], "linter": { "rules": {} } } + ] +} diff --git a/config/.eslintignore b/config/.eslintignore deleted file mode 100644 index 1ae86fe5e..000000000 --- a/config/.eslintignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -**/*.min.js -build -coverage \ No newline at end of file diff --git a/config/.eslintrc.js b/config/.eslintrc.js deleted file mode 100644 index 4be107982..000000000 --- a/config/.eslintrc.js +++ /dev/null @@ -1,214 +0,0 @@ -// eslint-disable-next-line import/no-commonjs, import/unambiguous -module.exports = { - root: true, - env: { - node: true, - }, - parser: '@typescript-eslint/parser', - plugins: ['prettier', '@typescript-eslint', 'type-graphql', 'import', 'n', 'promise'], - extends: [ - 'standard', - 'eslint:recommended', - 'plugin:prettier/recommended', - 'plugin:import/recommended', - 'plugin:import/typescript', - 'plugin:security/recommended', - 'plugin:@eslint-community/eslint-comments/recommended', - ], - settings: { - 'import/parsers': { - '@typescript-eslint/parser': ['.ts', '.tsx'], - }, - 'import/resolver': { - typescript: { - project: ['./tsconfig.json', '**/tsconfig.json'], - }, - node: true, - }, - // the parser cannot handle the split sodium import - 'import/ignore': ['sodium-native'], - }, - rules: { - 'no-console': 'error', - camelcase: ['error', { allow: ['crypto_*', 'randombytes_random'] }], - 'no-debugger': 'error', - 'prettier/prettier': [ - 'error', - { - htmlWhitespaceSensitivity: 'ignore', - }, - ], - // import - 'import/export': 'error', - // 'import/no-deprecated': 'error', - 'import/no-empty-named-blocks': 'error', - 'import/no-extraneous-dependencies': 'error', - 'import/no-mutable-exports': 'error', - 'import/no-unused-modules': 'error', - 'import/no-named-as-default': 'error', - 'import/no-named-as-default-member': 'error', - 'import/no-amd': 'error', - 'import/no-commonjs': 'error', - 'import/no-import-module-exports': 'error', - 'import/no-nodejs-modules': 'off', - 'import/unambiguous': 'error', - 'import/default': 'error', - 'import/named': 'error', - 'import/namespace': 'error', - 'import/no-absolute-path': 'error', - 'import/no-cycle': 'error', - 'import/no-dynamic-require': 'error', - 'import/no-internal-modules': 'off', - 'import/no-relative-packages': 'error', - 'import/no-relative-parent-imports': [ - 'error', - { ignore: ['@/*', 'random-bigint', 'sodium-native'] }, - ], - 'import/no-self-import': 'error', - 'import/no-unresolved': 'error', - 'import/no-useless-path-segments': 'error', - 'import/no-webpack-loader-syntax': 'error', - 'import/consistent-type-specifier-style': 'error', - 'import/exports-last': 'off', - 'import/extensions': 'error', - 'import/first': 'error', - 'import/group-exports': 'off', - 'import/newline-after-import': 'error', - 'import/no-anonymous-default-export': 'error', - 'import/no-default-export': 'error', - 'import/no-duplicates': 'error', - 'import/no-named-default': 'error', - 'import/no-namespace': 'error', - 'import/no-unassigned-import': 'error', - 'import/order': [ - 'error', - { - groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type'], - 'newlines-between': 'always', - pathGroups: [ - { - pattern: '@?*/**', - group: 'external', - position: 'after', - }, - { - pattern: '@/**', - group: 'external', - position: 'after', - }, - ], - alphabetize: { - order: 'asc' /* sort in ascending order. Options: ['ignore', 'asc', 'desc'] */, - caseInsensitive: true /* ignore case. Options: [true, false] */, - }, - distinctGroup: true, - }, - ], - 'import/prefer-default-export': 'off', - // n - 'n/handle-callback-err': 'error', - 'n/no-callback-literal': 'error', - 'n/no-exports-assign': 'error', - 'n/no-extraneous-import': 'error', - 'n/no-extraneous-require': 'error', - 'n/no-hide-core-modules': 'error', - 'n/no-missing-import': 'off', // not compatible with typescript - 'n/no-missing-require': 'error', - 'n/no-new-require': 'error', - 'n/no-path-concat': 'error', - 'n/no-process-exit': 'error', - 'n/no-unpublished-bin': 'error', - 'n/no-unpublished-import': 'off', // TODO need to exclude seeds - 'n/no-unpublished-require': 'error', - 'n/no-unsupported-features': ['error', { ignores: ['modules'] }], - 'n/no-unsupported-features/es-builtins': 'error', - 'n/no-unsupported-features/es-syntax': 'error', - 'n/no-unsupported-features/node-builtins': 'error', - 'n/process-exit-as-throw': 'error', - 'n/shebang': 'error', - 'n/callback-return': 'error', - 'n/exports-style': 'error', - 'n/file-extension-in-import': 'off', - 'n/global-require': 'error', - 'n/no-mixed-requires': 'error', - 'n/no-process-env': 'error', - 'n/no-restricted-import': 'error', - 'n/no-restricted-require': 'error', - 'n/no-sync': 'error', - 'n/prefer-global/buffer': 'error', - 'n/prefer-global/console': 'error', - 'n/prefer-global/process': 'error', - 'n/prefer-global/text-decoder': 'error', - 'n/prefer-global/text-encoder': 'error', - 'n/prefer-global/url': 'error', - 'n/prefer-global/url-search-params': 'error', - 'n/prefer-promises/dns': 'error', - 'n/prefer-promises/fs': 'error', - // promise - 'promise/catch-or-return': 'error', - 'promise/no-return-wrap': 'error', - 'promise/param-names': 'error', - 'promise/always-return': 'error', - 'promise/no-native': 'off', - 'promise/no-nesting': 'warn', - 'promise/no-promise-in-callback': 'warn', - 'promise/no-callback-in-promise': 'warn', - 'promise/avoid-new': 'warn', - 'promise/no-new-statics': 'error', - 'promise/no-return-in-finally': 'warn', - 'promise/valid-params': 'warn', - 'promise/prefer-await-to-callbacks': 'error', - 'promise/no-multiple-resolved': 'error', - // eslint comments - '@eslint-community/eslint-comments/disable-enable-pair': ['error', { allowWholeFile: true }], - '@eslint-community/eslint-comments/no-restricted-disable': 'error', - '@eslint-community/eslint-comments/no-use': 'off', - '@eslint-community/eslint-comments/require-description': 'off', - }, - overrides: [ - // only for ts files - { - files: ['*.ts', '*.tsx'], - extends: [ - 'plugin:@typescript-eslint/recommended', - 'plugin:@typescript-eslint/recommended-requiring-type-checking', - 'plugin:@typescript-eslint/strict', - 'plugin:type-graphql/recommended', - ], - rules: { - // allow explicitly defined dangling promises - '@typescript-eslint/no-floating-promises': ['error', { ignoreVoid: true }], - 'no-void': ['error', { allowAsStatement: true }], - // ignore prefer-regexp-exec rule to allow string.match(regex) - '@typescript-eslint/prefer-regexp-exec': 'off', - // this should not run on ts files: https://github.com/import-js/eslint-plugin-import/issues/2215#issuecomment-911245486 - 'import/unambiguous': 'off', - // this is not compatible with typeorm, due to joined tables can be null, but are not defined as nullable - '@typescript-eslint/no-unnecessary-condition': 'off', - }, - parserOptions: { - tsconfigRootDir: __dirname, - project: ['./tsconfig.json', '**/tsconfig.json'], - // this is to properly reference the referenced project database without requirement of compiling it - // eslint-disable-next-line camelcase - EXPERIMENTAL_useSourceOfProjectReferenceRedirect: true, - }, - }, - { - files: ['*.test.ts'], - plugins: ['jest'], - env: { - jest: true, - }, - rules: { - 'jest/no-disabled-tests': 'error', - 'jest/no-focused-tests': 'error', - 'jest/no-identical-title': 'error', - 'jest/prefer-to-have-length': 'error', - 'jest/valid-expect': 'error', - '@typescript-eslint/unbound-method': 'off', - 'jest/unbound-method': 'error', - }, - }, - ], -} diff --git a/config/package.json b/config/package.json index c25e145ff..15252b532 100644 --- a/config/package.json +++ b/config/package.json @@ -11,9 +11,12 @@ "scripts": { "build": "tsc --build", "clean": "tsc --build --clean", + "lint": "biome check --error-on-warnings .", + "lint:fix": "biome check --error-on-warnings . --write", "test": "node test/index" }, "devDependencies": { + "@biomejs/biome": "1.9.4", "@types/joi": "^17.2.3", "@types/node": "^17.0.21", "typescript": "^4.9.5", diff --git a/config/src/commonSchema.ts b/config/src/commonSchema.ts index b3221491c..a208ee7dd 100644 --- a/config/src/commonSchema.ts +++ b/config/src/commonSchema.ts @@ -1,22 +1,22 @@ import Joi from 'joi' export const browserUrls = Joi.array() - .items(Joi.string().uri()) + .items(Joi.string().uri()) .sparse(true) .custom((value: string[], helpers: Joi.CustomHelpers) => { let protocol: string | undefined for (const url of value) { - if (url === undefined) { - continue + if (url === undefined) { + continue } const urlObject = new URL(url) - if(!protocol) { + if (!protocol) { protocol = urlObject.protocol - } else if(urlObject.protocol !== protocol) { + } else if (urlObject.protocol !== protocol) { return helpers.error('any.invalid') } } - return value; + return value }) .required() .description('All URLs need to have same protocol to prevent mixed block errors') @@ -29,8 +29,12 @@ export const DECAY_START_TIME = Joi.date() export const DB_VERSION = Joi.string() .pattern(/^\d{4}-[a-z0-9-_]+$/) - .message('DB_VERSION must be in the format: YYYY-description, e.g. "0087-add_index_on_user_roles".') - .description('db version string, last migration file name without ending or last folder in entity') + .message( + 'DB_VERSION must be in the format: YYYY-description, e.g. "0087-add_index_on_user_roles".', + ) + .description( + 'db version string, last migration file name without ending or last folder in entity', + ) .required() export const COMMUNITY_URL = Joi.string() @@ -39,9 +43,11 @@ export const COMMUNITY_URL = Joi.string() if (value.endsWith('/')) { return helpers.error('any.invalid', { message: 'URL should not end with a slash (/)' }) } - return value; + return value }) - .description('The base URL of the community, should have the same protocol as frontend, admin and backend api to prevent mixed contend issues.') + .description( + 'The base URL of the community, should have the same protocol as frontend, admin and backend api to prevent mixed contend issues.', + ) .default('http://0.0.0.0') .required() @@ -62,7 +68,7 @@ export const COMMUNITY_NAME = Joi.string() .max(40) .description('The name of the community') .default('Gradido Entwicklung') - .required() + .required() export const COMMUNITY_DESCRIPTION = Joi.string() .min(10) @@ -82,19 +88,19 @@ export const COMMUNITY_LOCATION = Joi.string() .when('GMS_ACTIVE', { is: true, then: Joi.string().required(), - otherwise: Joi.string().optional() + otherwise: Joi.string().optional(), }) .description('Geographical location of the community in "latitude, longitude" format') - .default('49.280377, 9.690151') - + .default('49.280377, 9.690151') + export const GRAPHIQL = Joi.boolean() - .description('Flag for enabling GraphQL playground for debugging.') - .default(false) - .when('NODE_ENV', { - is: 'development', - then: Joi.boolean().valid(true, false).required(), // only allow true in development mode - otherwise: Joi.boolean().valid(false).required() // false in any other mode - }) + .description('Flag for enabling GraphQL playground for debugging.') + .default(false) + .when('NODE_ENV', { + is: 'development', + then: Joi.boolean().valid(true, false).required(), // only allow true in development mode + otherwise: Joi.boolean().valid(false).required(), // false in any other mode + }) export const GMS_ACTIVE = Joi.boolean() .description('Flag to indicate if the GMS (Geographic Member Search) service is used.') @@ -123,20 +129,20 @@ export const HUMHUB_API_URL = Joi.string() .description('The API URL for HumHub integration') export const LOG_LEVEL = Joi.string() - .valid('all', 'mark', 'trace', 'debug', 'info', 'warn', 'error', 'fatal', 'off') + .valid('all', 'mark', 'trace', 'debug', 'info', 'warn', 'error', 'fatal', 'off') .description('set log level') .default('info') .required() export const LOG4JS_CONFIG = Joi.string() - .pattern(/^[a-zA-Z0-9-_]+\.json$/) + .pattern(/^[a-zA-Z0-9-_]+\.json$/) .message('LOG4JS_CONFIG must be a valid filename ending with .json') .description('config file name for log4js config file') .default('log4js-config.json') .required() export const LOGIN_APP_SECRET = Joi.string() - .pattern(/^[a-fA-F0-9]+$/) + .pattern(/^[a-fA-F0-9]+$/) .message('need to be valid hex') .default('21ffbbc616fe') .description('App secret for salt component for libsodium crypto_pwhash') @@ -147,7 +153,9 @@ export const LOGIN_SERVER_KEY = Joi.string() .length(32) .message('need to be valid hex and 32 character') .default('a51ef8ac7ef1abf162fb7a65261acd7a') - .description('Server key for password hashing as additional salt for libsodium crypto_shorthash_keygen') + .description( + 'Server key for password hashing as additional salt for libsodium crypto_shorthash_keygen', + ) .required() export const OPENAI_ACTIVE = Joi.boolean() @@ -156,7 +164,7 @@ export const OPENAI_ACTIVE = Joi.boolean() .required() export const TYPEORM_LOGGING_RELATIVE_PATH = Joi.string() - .pattern(new RegExp('^[a-zA-Z0-9-_\./]+\.log$')) + .pattern(/^[a-zA-Z0-9-_\.\/]+\.log$/) .message('TYPEORM_LOGGING_RELATIVE_PATH must be a valid filename ending with .log') .description('log file name for logging typeorm activities') .default('typeorm.log') @@ -168,7 +176,7 @@ export const DB_HOST = Joi.string() .description("database host like 'localhost' or 'mariadb' in docker setup") .default('localhost') .required() - + export const DB_PORT = Joi.number() .integer() .min(1024) @@ -179,10 +187,10 @@ export const DB_PORT = Joi.number() export const DB_USER = Joi.string() .pattern(/^[A-Za-z0-9]([A-Za-z0-9-_\.]*[A-Za-z0-9])?$/) // Validates MariaDB username rules - .min(1) // Minimum length 1 + .min(1) // Minimum length 1 .max(16) // Maximum length 16 .message( - 'Valid database username (letters, numbers, hyphens, underscores, dots allowed; no spaces, must not start or end with hyphen, dot, or underscore)' + 'Valid database username (letters, numbers, hyphens, underscores, dots allowed; no spaces, must not start or end with hyphen, dot, or underscore)', ) .description('database username for mariadb') .default('root') @@ -191,24 +199,26 @@ export const DB_USER = Joi.string() export const DB_PASSWORD = Joi.string() .when(Joi.ref('NODE_ENV'), { is: 'development', - then: Joi.string().allow(''), + then: Joi.string().allow(''), otherwise: Joi.string() - .min(8) + .min(8) .max(32) .pattern(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*(),.?":{}|<>]).+$/) .message( - 'Password must be between 8 and 32 characters long, and contain at least one uppercase letter, one lowercase letter, one number, and one special character (e.g., !@#$%^&*).' - ) + 'Password must be between 8 and 32 characters long, and contain at least one uppercase letter, one lowercase letter, one number, and one special character (e.g., !@#$%^&*).', + ), }) .description( - 'Password for the database user. In development mode, an empty password is allowed. In other environments, a complex password is required.' + 'Password for the database user. In development mode, an empty password is allowed. In other environments, a complex password is required.', ) - .default('') + .default('') .required() export const DB_DATABASE = Joi.string() .pattern(/^[a-zA-Z][a-zA-Z0-9_-]{1,63}$/) - .description('Database name like gradido_community (must start with a letter, and can only contain letters, numbers, underscores, or dashes)') + .description( + 'Database name like gradido_community (must start with a letter, and can only contain letters, numbers, underscores, or dashes)', + ) .default('gradido_community') .required() @@ -221,13 +231,13 @@ export const APP_VERSION = Joi.string() export const BUILD_COMMIT = Joi.string() .pattern(/^[0-9a-f]{40}$/) .message('The commit hash must be a 40-character hexadecimal string.') - .description('The full git commit hash.') + .description('The full git commit hash.') .optional() export const BUILD_COMMIT_SHORT = Joi.string() .pattern(/^[0-9a-f]{7}$/) .message('The first 7 hexadecimal character from git commit hash.') - .description('A short version from the git commit hash.') + .description('A short version from the git commit hash.') .required() export const NODE_ENV = Joi.string() @@ -236,11 +246,15 @@ export const NODE_ENV = Joi.string() .description('Specifies the environment in which the application is running.') export const DEBUG = Joi.boolean() - .description('Indicates whether the application is in debugging mode. Set to true when NODE_ENV is not "production".') + .description( + 'Indicates whether the application is in debugging mode. Set to true when NODE_ENV is not "production".', + ) .default(false) .required() - + export const PRODUCTION = Joi.boolean() .default(false) - .description('Indicates whether the application is running in production mode. Set to true when NODE_ENV is "production".') + .description( + 'Indicates whether the application is running in production mode. Set to true when NODE_ENV is "production".', + ) .required() diff --git a/config/src/index.ts b/config/src/index.ts index 9137ead6d..3da59fa79 100644 --- a/config/src/index.ts +++ b/config/src/index.ts @@ -22,7 +22,9 @@ export function validate(schema: ObjectSchema, data: any) { ? schema.describe().keys[key].flags.description : 'No description available' if (data[key] === undefined) { - throw new Error(`Environment Variable '${key}' is missing. ${description}, details: ${details}`) + throw new Error( + `Environment Variable '${key}' is missing. ${description}, details: ${details}`, + ) } else { throw new Error( `Error on Environment Variable ${key} with value = ${value}: ${err.message}. ${description}`, @@ -30,4 +32,4 @@ export function validate(schema: ObjectSchema, data: any) { } }) } -} \ No newline at end of file +} diff --git a/config/yarn.lock b/config/yarn.lock index 8c8dcddd5..9fc387a53 100644 --- a/config/yarn.lock +++ b/config/yarn.lock @@ -2,6 +2,60 @@ # yarn lockfile v1 +"@biomejs/biome@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-1.9.4.tgz#89766281cbc3a0aae865a7ff13d6aaffea2842bf" + integrity sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog== + optionalDependencies: + "@biomejs/cli-darwin-arm64" "1.9.4" + "@biomejs/cli-darwin-x64" "1.9.4" + "@biomejs/cli-linux-arm64" "1.9.4" + "@biomejs/cli-linux-arm64-musl" "1.9.4" + "@biomejs/cli-linux-x64" "1.9.4" + "@biomejs/cli-linux-x64-musl" "1.9.4" + "@biomejs/cli-win32-arm64" "1.9.4" + "@biomejs/cli-win32-x64" "1.9.4" + +"@biomejs/cli-darwin-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz#dfa376d23a54a2d8f17133c92f23c1bf2e62509f" + integrity sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw== + +"@biomejs/cli-darwin-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz#eafc2ce3849d385fc02238aad1ca4a73395a64d9" + integrity sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg== + +"@biomejs/cli-linux-arm64-musl@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz#d780c3e01758fc90f3268357e3f19163d1f84fca" + integrity sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA== + +"@biomejs/cli-linux-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz#8ed1dd0e89419a4b66a47f95aefb8c46ae6041c9" + integrity sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g== + +"@biomejs/cli-linux-x64-musl@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz#f36982b966bd671a36671e1de4417963d7db15fb" + integrity sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg== + +"@biomejs/cli-linux-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz#a0a7f56680c76b8034ddc149dbf398bdd3a462e8" + integrity sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg== + +"@biomejs/cli-win32-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz#e2ef4e0084e76b7e26f0fc887c5ef1265ea56200" + integrity sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg== + +"@biomejs/cli-win32-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz#4c7afa90e3970213599b4095e62f87e5972b2340" + integrity sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA== + "@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": version "9.3.0" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" diff --git a/database/.eslintignore b/database/.eslintignore deleted file mode 100644 index f6b255e92..000000000 --- a/database/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -**/*.min.js -build \ No newline at end of file diff --git a/database/.eslintrc.js b/database/.eslintrc.js deleted file mode 100644 index 6f1db58ff..000000000 --- a/database/.eslintrc.js +++ /dev/null @@ -1,206 +0,0 @@ -// eslint-disable-next-line import/no-commonjs, import/unambiguous -module.exports = { - root: true, - env: { - node: true, - }, - parser: '@typescript-eslint/parser', - plugins: ['prettier', '@typescript-eslint', 'import', 'n', 'promise'], - extends: [ - 'standard', - 'eslint:recommended', - 'plugin:prettier/recommended', - 'plugin:import/recommended', - 'plugin:import/typescript', - // 'plugin:security/recommended', - 'plugin:@eslint-community/eslint-comments/recommended', - ], - settings: { - 'import/parsers': { - '@typescript-eslint/parser': ['.ts', '.tsx'], - }, - 'import/resolver': { - typescript: { - project: ['./tsconfig.json'], - }, - node: true, - }, - }, - rules: { - 'no-console': 'error', - camelcase: 'error', - 'no-debugger': 'error', - 'prettier/prettier': [ - 'error', - { - htmlWhitespaceSensitivity: 'ignore', - }, - ], - // import - 'import/export': 'error', - 'import/no-deprecated': 'error', - 'import/no-empty-named-blocks': 'error', - // 'import/no-extraneous-dependencies': 'error', - 'import/no-mutable-exports': 'error', - 'import/no-unused-modules': 'error', - 'import/no-named-as-default': 'error', - 'import/no-named-as-default-member': 'error', - 'import/no-amd': 'error', - 'import/no-commonjs': 'error', - 'import/no-import-module-exports': 'error', - 'import/no-nodejs-modules': 'off', - 'import/unambiguous': 'error', - 'import/default': 'error', - 'import/named': 'error', - 'import/namespace': 'error', - 'import/no-absolute-path': 'error', - // 'import/no-cycle': 'error', - 'import/no-dynamic-require': 'error', - 'import/no-internal-modules': 'off', - 'import/no-relative-packages': 'error', - // 'import/no-relative-parent-imports': ['error', { ignore: ['@/*'] }], - 'import/no-self-import': 'error', - 'import/no-unresolved': 'error', - 'import/no-useless-path-segments': 'error', - 'import/no-webpack-loader-syntax': 'error', - 'import/consistent-type-specifier-style': 'error', - 'import/exports-last': 'off', - 'import/extensions': 'error', - 'import/first': 'error', - 'import/group-exports': 'off', - 'import/newline-after-import': 'error', - 'import/no-anonymous-default-export': 'error', - 'import/no-default-export': 'error', - 'import/no-duplicates': 'error', - 'import/no-named-default': 'error', - 'import/no-namespace': 'error', - 'import/no-unassigned-import': 'error', - // 'import/order': [ - // 'error', - // { - // groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type'], - // 'newlines-between': 'always', - // pathGroups: [ - // { - // pattern: '@?*/**', - // group: 'external', - // position: 'after', - // }, - // { - // pattern: '@/**', - // group: 'external', - // position: 'after', - // }, - // ], - // alphabetize: { - // order: 'asc' /* sort in ascending order. Options: ['ignore', 'asc', 'desc'] */, - // caseInsensitive: true /* ignore case. Options: [true, false] */, - // }, - // distinctGroup: true, - // }, - // ], - 'import/prefer-default-export': 'off', - // n - 'n/handle-callback-err': 'error', - 'n/no-callback-literal': 'error', - 'n/no-exports-assign': 'error', - // 'n/no-extraneous-import': 'error', - 'n/no-extraneous-require': 'error', - 'n/no-hide-core-modules': 'error', - 'n/no-missing-import': 'off', // not compatible with typescript - 'n/no-missing-require': 'error', - 'n/no-new-require': 'error', - 'n/no-path-concat': 'error', - // 'n/no-process-exit': 'error', - 'n/no-unpublished-bin': 'error', - 'n/no-unpublished-import': 'off', // TODO need to exclude seeds - 'n/no-unpublished-require': 'error', - 'n/no-unsupported-features': ['error', { ignores: ['modules'] }], - 'n/no-unsupported-features/es-builtins': 'error', - 'n/no-unsupported-features/es-syntax': 'error', - 'n/no-unsupported-features/node-builtins': 'error', - 'n/process-exit-as-throw': 'error', - 'n/shebang': 'error', - 'n/callback-return': 'error', - 'n/exports-style': 'error', - 'n/file-extension-in-import': 'off', - 'n/global-require': 'error', - 'n/no-mixed-requires': 'error', - 'n/no-process-env': 'error', - 'n/no-restricted-import': 'error', - 'n/no-restricted-require': 'error', - // 'n/no-sync': 'error', - 'n/prefer-global/buffer': 'error', - 'n/prefer-global/console': 'error', - 'n/prefer-global/process': 'error', - 'n/prefer-global/text-decoder': 'error', - 'n/prefer-global/text-encoder': 'error', - 'n/prefer-global/url': 'error', - 'n/prefer-global/url-search-params': 'error', - 'n/prefer-promises/dns': 'error', - // 'n/prefer-promises/fs': 'error', - // promise - // 'promise/catch-or-return': 'error', - // 'promise/no-return-wrap': 'error', - // 'promise/param-names': 'error', - // 'promise/always-return': 'error', - // 'promise/no-native': 'off', - // 'promise/no-nesting': 'warn', - // 'promise/no-promise-in-callback': 'warn', - // 'promise/no-callback-in-promise': 'warn', - // 'promise/avoid-new': 'warn', - // 'promise/no-new-statics': 'error', - // 'promise/no-return-in-finally': 'warn', - // 'promise/valid-params': 'warn', - // 'promise/prefer-await-to-callbacks': 'error', - // 'promise/no-multiple-resolved': 'error', - // eslint comments - '@eslint-community/eslint-comments/disable-enable-pair': ['error', { allowWholeFile: true }], - '@eslint-community/eslint-comments/no-restricted-disable': 'error', - '@eslint-community/eslint-comments/no-use': 'off', - '@eslint-community/eslint-comments/require-description': 'off', - }, - overrides: [ - // only for ts files - { - files: ['*.ts', '*.tsx'], - extends: [ - // 'plugin:@typescript-eslint/recommended', - // 'plugin:@typescript-eslint/recommended-requiring-type-checking', - // 'plugin:@typescript-eslint/strict', - ], - rules: { - // allow explicitly defined dangling promises - // '@typescript-eslint/no-floating-promises': ['error', { ignoreVoid: true }], - 'no-void': ['error', { allowAsStatement: true }], - // ignore prefer-regexp-exec rule to allow string.match(regex) - '@typescript-eslint/prefer-regexp-exec': 'off', - // this should not run on ts files: https://github.com/import-js/eslint-plugin-import/issues/2215#issuecomment-911245486 - 'import/unambiguous': 'off', - // this is not compatible with typeorm, due to joined tables can be null, but are not defined as nullable - '@typescript-eslint/no-unnecessary-condition': 'off', - }, - parserOptions: { - tsconfigRootDir: __dirname, - project: ['./tsconfig.json'], - // this is to properly reference the referenced project database without requirement of compiling it - // eslint-disable-next-line camelcase - EXPERIMENTAL_useSourceOfProjectReferenceRedirect: true, - }, - }, - // we do not have testing on the database - // { - // files: ['*.test.ts'], - // plugins: ['jest'], - // rules: { - // 'jest/no-disabled-tests': 'error', - // 'jest/no-focused-tests': 'error', - // 'jest/no-identical-title': 'error', - // 'jest/prefer-to-have-length': 'error', - // 'jest/valid-expect': 'error', - // '@typescript-eslint/unbound-method': 'off', - // 'jest/unbound-method': 'error', - // }, - // }, - ], -} diff --git a/database/.prettierrc.js b/database/.prettierrc.js deleted file mode 100644 index bc1d767d7..000000000 --- a/database/.prettierrc.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - semi: false, - printWidth: 100, - singleQuote: true, - trailingComma: "all", - tabWidth: 2, - bracketSpacing: true, - endOfLine: "auto", -}; diff --git a/database/biome.json b/database/biome.json new file mode 100644 index 000000000..786069e9b --- /dev/null +++ b/database/biome.json @@ -0,0 +1,134 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "vcs": { "enabled": false, "clientKind": "git", "useIgnoreFile": false }, + "files": { + "ignoreUnknown": false, + "ignore": ["build", "node_modules", "coverage"], + "include": ["./src/**/*.ts", "./entity/**/*.ts", "./logging/**/*.ts", "./migrations/**/*.ts"] + }, + "formatter": { + "enabled": true, + "useEditorconfig": true, + "formatWithErrors": false, + "indentStyle": "space", + "indentWidth": 2, + "lineEnding": "lf", + "lineWidth": 100, + "attributePosition": "auto", + "bracketSpacing": true + }, + "organizeImports": { "enabled": true }, + "linter": { + "enabled": true, + "rules": { + "recommended": false, + "complexity": { + "noExtraBooleanCast": "error", + "noMultipleSpacesInRegularExpressionLiterals": "error", + "noUselessCatch": "error", + "noUselessConstructor": "error", + "noUselessLoneBlockStatements": "error", + "noUselessRename": "error", + "noUselessTernary": "error", + "noUselessUndefinedInitialization": "error", + "noVoid": "error", + "noWith": "error", + "useArrowFunction": "off", + "useLiteralKeys": "error", + "useRegexLiterals": "error" + }, + "correctness": { + "noConstAssign": "error", + "noConstantCondition": "error", + "noEmptyCharacterClassInRegex": "error", + "noEmptyPattern": "error", + "noGlobalObjectCalls": "error", + "noInnerDeclarations": "error", + "noInvalidConstructorSuper": "error", + "noInvalidUseBeforeDeclaration": "error", + "noNewSymbol": "error", + "noNodejsModules": "off", + "noNonoctalDecimalEscape": "error", + "noPrecisionLoss": "error", + "noSelfAssign": "error", + "noSetterReturn": "error", + "noSwitchDeclarations": "error", + "noUndeclaredVariables": "error", + "noUnreachable": "error", + "noUnreachableSuper": "error", + "noUnsafeFinally": "error", + "noUnsafeOptionalChaining": "error", + "noUnusedLabels": "error", + "noUnusedVariables": "error", + "useArrayLiterals": "error", + "useIsNan": "error", + "useValidForDirection": "error", + "useYield": "error" + }, + "security": { "noGlobalEval": "error" }, + "style": { + "noCommaOperator": "error", + "noDefaultExport": "error", + "noVar": "warn", + "noYodaExpression": "error", + "useBlockStatements": "error", + "useConsistentBuiltinInstantiation": "error", + "useConst": "error", + "useSingleVarDeclarator": "error", + "useThrowOnlyError": "error" + }, + "suspicious": { + "noAssignInExpressions": "error", + "noAsyncPromiseExecutor": "error", + "noCatchAssign": "error", + "noClassAssign": "error", + "noCompareNegZero": "error", + "noConfusingLabels": "error", + "noConsole": "error", + "noControlCharactersInRegex": "error", + "noDebugger": "error", + "noDoubleEquals": "error", + "noDuplicateCase": "error", + "noDuplicateClassMembers": "error", + "noDuplicateObjectKeys": "error", + "noDuplicateParameters": "error", + "noEmptyBlockStatements": "error", + "noFallthroughSwitchClause": "error", + "noFunctionAssign": "error", + "noGlobalAssign": "error", + "noImportAssign": "error", + "noMisleadingCharacterClass": "error", + "noPrototypeBuiltins": "error", + "noRedeclare": "error", + "noSelfCompare": "error", + "noShadowRestrictedNames": "error", + "noSparseArray": "error", + "noUnsafeNegation": "error", + "useDefaultSwitchClauseLast": "error", + "useGetterReturn": "error", + "useValidTypeof": "error" + } + }, + "ignore": ["**/node_modules", "**/*.min.js", "**/build"] + }, + "javascript": { + "formatter": { + "jsxQuoteStyle": "double", + "quoteProperties": "asNeeded", + "trailingCommas": "all", + "semicolons": "asNeeded", + "arrowParentheses": "always", + "bracketSameLine": false, + "quoteStyle": "single", + "attributePosition": "auto", + "bracketSpacing": true + }, + "globals": ["document", "navigator", "window", "BufferEncoding"] + }, + "overrides": [ + { + "include": ["*.ts", "*.tsx"], + "linter": { "rules": { "complexity": { "noVoid": "error" } } } + } + ] +} diff --git a/database/entity/0001-init_db/Balance.ts b/database/entity/0001-init_db/Balance.ts index 1a7050daf..8da3879af 100644 --- a/database/entity/0001-init_db/Balance.ts +++ b/database/entity/0001-init_db/Balance.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, JoinColumn, OneToOne } from 'typeorm' +import { BaseEntity, Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from 'typeorm' import { User } from '../User' @Entity('state_balances') diff --git a/database/entity/0001-init_db/Migration.ts b/database/entity/0001-init_db/Migration.ts index f1163cfbc..2aa79ae9f 100644 --- a/database/entity/0001-init_db/Migration.ts +++ b/database/entity/0001-init_db/Migration.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from 'typeorm' +import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm' @Entity('migrations') export class Migration extends BaseEntity { diff --git a/database/entity/0001-init_db/ServerUser.ts b/database/entity/0001-init_db/ServerUser.ts index 42b5816ae..8d9819612 100644 --- a/database/entity/0001-init_db/ServerUser.ts +++ b/database/entity/0001-init_db/ServerUser.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from 'typeorm' +import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm' @Entity('server_users') export class ServerUser extends BaseEntity { diff --git a/database/entity/0001-init_db/Transaction.ts b/database/entity/0001-init_db/Transaction.ts index a33fbd0be..52a07eb27 100644 --- a/database/entity/0001-init_db/Transaction.ts +++ b/database/entity/0001-init_db/Transaction.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToOne } from 'typeorm' +import { BaseEntity, Column, Entity, OneToOne, PrimaryGeneratedColumn } from 'typeorm' import { TransactionCreation } from './TransactionCreation' import { TransactionSendCoin } from './TransactionSendCoin' @@ -31,9 +31,15 @@ export class Transaction extends BaseEntity { }) blockchainTypeId: number - @OneToOne(() => TransactionSendCoin, (transactionSendCoin) => transactionSendCoin.transaction) + @OneToOne( + () => TransactionSendCoin, + (transactionSendCoin) => transactionSendCoin.transaction, + ) transactionSendCoin: TransactionSendCoin - @OneToOne(() => TransactionCreation, (transactionCreation) => transactionCreation.transaction) + @OneToOne( + () => TransactionCreation, + (transactionCreation) => transactionCreation.transaction, + ) transactionCreation: TransactionCreation } diff --git a/database/entity/0001-init_db/TransactionCreation.ts b/database/entity/0001-init_db/TransactionCreation.ts index 1837e0789..6faac82aa 100644 --- a/database/entity/0001-init_db/TransactionCreation.ts +++ b/database/entity/0001-init_db/TransactionCreation.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn } from 'typeorm' +import { BaseEntity, Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from 'typeorm' import { Transaction } from '../Transaction' @Entity('transaction_creations') diff --git a/database/entity/0001-init_db/TransactionSendCoin.ts b/database/entity/0001-init_db/TransactionSendCoin.ts index db999cd87..3b9fa87a9 100644 --- a/database/entity/0001-init_db/TransactionSendCoin.ts +++ b/database/entity/0001-init_db/TransactionSendCoin.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn } from 'typeorm' +import { BaseEntity, Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from 'typeorm' import { Transaction } from '../Transaction' @Entity('transaction_send_coins') diff --git a/database/entity/0001-init_db/TransactionSignature.ts b/database/entity/0001-init_db/TransactionSignature.ts index d12a74500..b95bddd50 100644 --- a/database/entity/0001-init_db/TransactionSignature.ts +++ b/database/entity/0001-init_db/TransactionSignature.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn } from 'typeorm' +import { BaseEntity, Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from 'typeorm' import { Transaction } from '../Transaction' @Entity('transaction_signatures') diff --git a/database/entity/0001-init_db/User.ts b/database/entity/0001-init_db/User.ts index 7d20007f7..fbc010ca9 100644 --- a/database/entity/0001-init_db/User.ts +++ b/database/entity/0001-init_db/User.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToOne } from 'typeorm' +import { BaseEntity, Column, Entity, OneToOne, PrimaryGeneratedColumn } from 'typeorm' import { Balance } from './Balance' // Moriz: I do not like the idea of having two user tables @@ -43,6 +43,9 @@ export class User extends BaseEntity { @Column({ type: 'bool', default: false }) disabled: boolean - @OneToOne(() => Balance, (balance) => balance.user) + @OneToOne( + () => Balance, + (balance) => balance.user, + ) balance: Balance } diff --git a/database/entity/0001-init_db/UserTransaction.ts b/database/entity/0001-init_db/UserTransaction.ts index 7e24b66b0..b0e90f7f4 100644 --- a/database/entity/0001-init_db/UserTransaction.ts +++ b/database/entity/0001-init_db/UserTransaction.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from 'typeorm' +import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm' @Entity('state_user_transactions') export class UserTransaction extends BaseEntity { diff --git a/database/entity/0002-add_settings/User.ts b/database/entity/0002-add_settings/User.ts index c26602cd5..e74abe4d9 100644 --- a/database/entity/0002-add_settings/User.ts +++ b/database/entity/0002-add_settings/User.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToMany } from 'typeorm' +import { BaseEntity, Column, Entity, OneToMany, PrimaryGeneratedColumn } from 'typeorm' import { UserSetting } from './UserSetting' // Moriz: I do not like the idea of having two user tables @@ -43,6 +43,9 @@ export class User extends BaseEntity { @Column({ type: 'bool', default: false }) disabled: boolean - @OneToMany(() => UserSetting, (userSetting) => userSetting.user) + @OneToMany( + () => UserSetting, + (userSetting) => userSetting.user, + ) settings: UserSetting[] } diff --git a/database/entity/0002-add_settings/UserSetting.ts b/database/entity/0002-add_settings/UserSetting.ts index 9da036954..7fbb36e91 100644 --- a/database/entity/0002-add_settings/UserSetting.ts +++ b/database/entity/0002-add_settings/UserSetting.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, ManyToOne } from 'typeorm' +import { BaseEntity, Column, Entity, ManyToOne, PrimaryGeneratedColumn } from 'typeorm' import { User } from '../0034-drop_server_user_table/User' @Entity() @@ -9,7 +9,10 @@ export class UserSetting extends BaseEntity { @Column() userId: number - @ManyToOne(() => User, (user) => user.settings) + @ManyToOne( + () => User, + (user) => user.settings, + ) user: User @Column() diff --git a/database/entity/0003-login_server_tables/LoginElopageBuys.ts b/database/entity/0003-login_server_tables/LoginElopageBuys.ts index 1f94faffe..cc9322d1d 100644 --- a/database/entity/0003-login_server_tables/LoginElopageBuys.ts +++ b/database/entity/0003-login_server_tables/LoginElopageBuys.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from 'typeorm' +import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm' @Entity('login_elopage_buys') export class LoginElopageBuys extends BaseEntity { diff --git a/database/entity/0003-login_server_tables/LoginEmailOptIn.ts b/database/entity/0003-login_server_tables/LoginEmailOptIn.ts index 2ec62927f..60717d2c2 100644 --- a/database/entity/0003-login_server_tables/LoginEmailOptIn.ts +++ b/database/entity/0003-login_server_tables/LoginEmailOptIn.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from 'typeorm' +import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm' // Moriz: I do not like the idea of having two user tables @Entity('login_email_opt_in') diff --git a/database/entity/0003-login_server_tables/LoginUser.ts b/database/entity/0003-login_server_tables/LoginUser.ts index a3a83f450..c3ebf9748 100644 --- a/database/entity/0003-login_server_tables/LoginUser.ts +++ b/database/entity/0003-login_server_tables/LoginUser.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToOne } from 'typeorm' +import { BaseEntity, Column, Entity, OneToOne, PrimaryGeneratedColumn } from 'typeorm' import { LoginUserBackup } from './LoginUserBackup' // Moriz: I do not like the idea of having two user tables @@ -55,6 +55,9 @@ export class LoginUser extends BaseEntity { @Column({ name: 'publisher_id', default: 0 }) publisherId: number - @OneToOne(() => LoginUserBackup, (loginUserBackup) => loginUserBackup.loginUser) + @OneToOne( + () => LoginUserBackup, + (loginUserBackup) => loginUserBackup.loginUser, + ) loginUserBackup: LoginUserBackup } diff --git a/database/entity/0003-login_server_tables/LoginUserBackup.ts b/database/entity/0003-login_server_tables/LoginUserBackup.ts index 39f5e0db5..a6e7f888d 100644 --- a/database/entity/0003-login_server_tables/LoginUserBackup.ts +++ b/database/entity/0003-login_server_tables/LoginUserBackup.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, JoinColumn, OneToOne } from 'typeorm' +import { BaseEntity, Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from 'typeorm' import { LoginUser } from './LoginUser' @Entity('login_user_backups') @@ -15,7 +15,11 @@ export class LoginUserBackup extends BaseEntity { @Column({ name: 'mnemonic_type', default: -1 }) mnemonicType: number - @OneToOne(() => LoginUser, (loginUser) => loginUser.loginUserBackup, { nullable: false }) + @OneToOne( + () => LoginUser, + (loginUser) => loginUser.loginUserBackup, + { nullable: false }, + ) @JoinColumn({ name: 'user_id' }) loginUser: LoginUser } diff --git a/database/entity/0003-login_server_tables/LoginUserRoles.ts b/database/entity/0003-login_server_tables/LoginUserRoles.ts index 33553fea4..f04892b0b 100644 --- a/database/entity/0003-login_server_tables/LoginUserRoles.ts +++ b/database/entity/0003-login_server_tables/LoginUserRoles.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from 'typeorm' +import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm' @Entity('login_user_roles') export class LoginUserRoles extends BaseEntity { diff --git a/database/entity/0006-login_users_collation/LoginUser.ts b/database/entity/0006-login_users_collation/LoginUser.ts index fdb17f4ad..ded5b992f 100644 --- a/database/entity/0006-login_users_collation/LoginUser.ts +++ b/database/entity/0006-login_users_collation/LoginUser.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToOne } from 'typeorm' +import { BaseEntity, Column, Entity, OneToOne, PrimaryGeneratedColumn } from 'typeorm' import { LoginUserBackup } from '../0003-login_server_tables/LoginUserBackup' // Moriz: I do not like the idea of having two user tables @@ -55,6 +55,9 @@ export class LoginUser extends BaseEntity { @Column({ name: 'publisher_id', default: 0 }) publisherId: number - @OneToOne(() => LoginUserBackup, (loginUserBackup) => loginUserBackup.loginUser) + @OneToOne( + () => LoginUserBackup, + (loginUserBackup) => loginUserBackup.loginUser, + ) loginUserBackup: LoginUserBackup } diff --git a/database/entity/0016-transaction_signatures/Transaction.ts b/database/entity/0016-transaction_signatures/Transaction.ts index 5410d010b..acce97bbf 100644 --- a/database/entity/0016-transaction_signatures/Transaction.ts +++ b/database/entity/0016-transaction_signatures/Transaction.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToOne } from 'typeorm' +import { BaseEntity, Column, Entity, OneToOne, PrimaryGeneratedColumn } from 'typeorm' import { TransactionCreation } from '../0001-init_db/TransactionCreation' import { TransactionSendCoin } from '../0001-init_db/TransactionSendCoin' @@ -26,9 +26,15 @@ export class Transaction extends BaseEntity { @Column({ type: 'binary', length: 32, nullable: true, default: null }) pubkey: Buffer - @OneToOne(() => TransactionSendCoin, (transactionSendCoin) => transactionSendCoin.transaction) + @OneToOne( + () => TransactionSendCoin, + (transactionSendCoin) => transactionSendCoin.transaction, + ) transactionSendCoin: TransactionSendCoin - @OneToOne(() => TransactionCreation, (transactionCreation) => transactionCreation.transaction) + @OneToOne( + () => TransactionCreation, + (transactionCreation) => transactionCreation.transaction, + ) transactionCreation: TransactionCreation } diff --git a/database/entity/0017-combine_user_tables/LoginUserBackup.ts b/database/entity/0017-combine_user_tables/LoginUserBackup.ts index 7aa69a021..7ee0fd464 100644 --- a/database/entity/0017-combine_user_tables/LoginUserBackup.ts +++ b/database/entity/0017-combine_user_tables/LoginUserBackup.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from 'typeorm' +import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm' @Entity('login_user_backups') export class LoginUserBackup extends BaseEntity { diff --git a/database/entity/0017-combine_user_tables/User.ts b/database/entity/0017-combine_user_tables/User.ts index 7281c4773..207c8ce99 100644 --- a/database/entity/0017-combine_user_tables/User.ts +++ b/database/entity/0017-combine_user_tables/User.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToMany } from 'typeorm' +import { BaseEntity, Column, Entity, OneToMany, PrimaryGeneratedColumn } from 'typeorm' import { UserSetting } from '../0002-add_settings/UserSetting' @Entity('state_users', { engine: 'InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci' }) @@ -69,6 +69,9 @@ export class User extends BaseEntity { @Column({ name: 'publisher_id', default: 0 }) publisherId: number - @OneToMany(() => UserSetting, (userSetting) => userSetting.user) + @OneToMany( + () => UserSetting, + (userSetting) => userSetting.user, + ) settings: UserSetting[] } diff --git a/database/entity/0018-combine_login_user_backups_and_user_table/User.ts b/database/entity/0018-combine_login_user_backups_and_user_table/User.ts index 347f51a8d..f84f7418a 100644 --- a/database/entity/0018-combine_login_user_backups_and_user_table/User.ts +++ b/database/entity/0018-combine_login_user_backups_and_user_table/User.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToMany } from 'typeorm' +import { BaseEntity, Column, Entity, OneToMany, PrimaryGeneratedColumn } from 'typeorm' import { UserSetting } from '../0002-add_settings/UserSetting' @Entity('state_users', { engine: 'InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci' }) @@ -78,6 +78,9 @@ export class User extends BaseEntity { }) passphrase: string - @OneToMany(() => UserSetting, (userSetting) => userSetting.user) + @OneToMany( + () => UserSetting, + (userSetting) => userSetting.user, + ) settings: UserSetting[] } diff --git a/database/entity/0019-replace_login_user_id_with_state_user_id/User.ts b/database/entity/0019-replace_login_user_id_with_state_user_id/User.ts index 8c00ec5c3..9a54129d3 100644 --- a/database/entity/0019-replace_login_user_id_with_state_user_id/User.ts +++ b/database/entity/0019-replace_login_user_id_with_state_user_id/User.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToMany } from 'typeorm' +import { BaseEntity, Column, Entity, OneToMany, PrimaryGeneratedColumn } from 'typeorm' import { UserSetting } from '../0002-add_settings/UserSetting' @Entity('state_users', { engine: 'InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci' }) @@ -75,6 +75,9 @@ export class User extends BaseEntity { }) passphrase: string - @OneToMany(() => UserSetting, (userSetting) => userSetting.user) + @OneToMany( + () => UserSetting, + (userSetting) => userSetting.user, + ) settings: UserSetting[] } diff --git a/database/entity/0020-rename_and_clean_state_users/User.ts b/database/entity/0020-rename_and_clean_state_users/User.ts index 5501bccba..d37ded4f4 100644 --- a/database/entity/0020-rename_and_clean_state_users/User.ts +++ b/database/entity/0020-rename_and_clean_state_users/User.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToMany } from 'typeorm' +import { BaseEntity, Column, Entity, OneToMany, PrimaryGeneratedColumn } from 'typeorm' import { UserSetting } from '../0002-add_settings/UserSetting' @Entity('users', { engine: 'InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci' }) @@ -63,6 +63,9 @@ export class User extends BaseEntity { }) passphrase: string - @OneToMany(() => UserSetting, (userSetting) => userSetting.user) + @OneToMany( + () => UserSetting, + (userSetting) => userSetting.user, + ) settings: UserSetting[] } diff --git a/database/entity/0021-elopagebuys_fields_nullable/LoginElopageBuys.ts b/database/entity/0021-elopagebuys_fields_nullable/LoginElopageBuys.ts index 501276ea7..45d82ad7c 100644 --- a/database/entity/0021-elopagebuys_fields_nullable/LoginElopageBuys.ts +++ b/database/entity/0021-elopagebuys_fields_nullable/LoginElopageBuys.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from 'typeorm' +import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm' @Entity('login_elopage_buys') export class LoginElopageBuys extends BaseEntity { diff --git a/database/entity/0023-users_disabled_soft_delete/User.ts b/database/entity/0023-users_disabled_soft_delete/User.ts index 950e74aeb..d49abf723 100644 --- a/database/entity/0023-users_disabled_soft_delete/User.ts +++ b/database/entity/0023-users_disabled_soft_delete/User.ts @@ -1,10 +1,10 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, - OneToMany, DeleteDateColumn, + Entity, + OneToMany, + PrimaryGeneratedColumn, } from 'typeorm' import { UserSetting } from '../0002-add_settings/UserSetting' @@ -70,6 +70,9 @@ export class User extends BaseEntity { }) passphrase: string - @OneToMany(() => UserSetting, (userSetting) => userSetting.user) + @OneToMany( + () => UserSetting, + (userSetting) => userSetting.user, + ) settings: UserSetting[] } diff --git a/database/entity/0024-combine_transaction_tables/Transaction.ts b/database/entity/0024-combine_transaction_tables/Transaction.ts index 5834c007a..9f2681f5a 100644 --- a/database/entity/0024-combine_transaction_tables/Transaction.ts +++ b/database/entity/0024-combine_transaction_tables/Transaction.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from 'typeorm' +import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm' @Entity('transactions') export class Transaction extends BaseEntity { diff --git a/database/entity/0026-combine_transaction_tables2/Transaction.ts b/database/entity/0026-combine_transaction_tables2/Transaction.ts index 77f23e4e4..293245cc2 100644 --- a/database/entity/0026-combine_transaction_tables2/Transaction.ts +++ b/database/entity/0026-combine_transaction_tables2/Transaction.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from 'typeorm' +import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm' @Entity('transactions') export class Transaction extends BaseEntity { diff --git a/database/entity/0027-clean_transaction_table/Transaction.ts b/database/entity/0027-clean_transaction_table/Transaction.ts index e50f5d164..eb703f688 100644 --- a/database/entity/0027-clean_transaction_table/Transaction.ts +++ b/database/entity/0027-clean_transaction_table/Transaction.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from 'typeorm' +import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm' @Entity('transactions') export class Transaction extends BaseEntity { diff --git a/database/entity/0028-decimal_types/Transaction.ts b/database/entity/0028-decimal_types/Transaction.ts index 6c08fe3c0..f9a88be36 100644 --- a/database/entity/0028-decimal_types/Transaction.ts +++ b/database/entity/0028-decimal_types/Transaction.ts @@ -1,5 +1,5 @@ import { Decimal } from 'decimal.js-light' -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from 'typeorm' +import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' @Entity('transactions') diff --git a/database/entity/0029-clean_transaction_table/Transaction.ts b/database/entity/0029-clean_transaction_table/Transaction.ts index f253b9d58..485071bd5 100644 --- a/database/entity/0029-clean_transaction_table/Transaction.ts +++ b/database/entity/0029-clean_transaction_table/Transaction.ts @@ -1,5 +1,5 @@ import { Decimal } from 'decimal.js-light' -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from 'typeorm' +import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' @Entity('transactions') diff --git a/database/entity/0030-transaction_link/TransactionLink.ts b/database/entity/0030-transaction_link/TransactionLink.ts index 59179c3be..add06c2e1 100644 --- a/database/entity/0030-transaction_link/TransactionLink.ts +++ b/database/entity/0030-transaction_link/TransactionLink.ts @@ -1,5 +1,5 @@ import { Decimal } from 'decimal.js-light' -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, DeleteDateColumn } from 'typeorm' +import { BaseEntity, Column, DeleteDateColumn, Entity, PrimaryGeneratedColumn } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' @Entity('transaction_links') diff --git a/database/entity/0031-remove_sendEmail_from_transaction_link/TransactionLink.ts b/database/entity/0031-remove_sendEmail_from_transaction_link/TransactionLink.ts index 6c8edf30f..585b42612 100644 --- a/database/entity/0031-remove_sendEmail_from_transaction_link/TransactionLink.ts +++ b/database/entity/0031-remove_sendEmail_from_transaction_link/TransactionLink.ts @@ -1,5 +1,5 @@ import { Decimal } from 'decimal.js-light' -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, DeleteDateColumn } from 'typeorm' +import { BaseEntity, Column, DeleteDateColumn, Entity, PrimaryGeneratedColumn } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' @Entity('transaction_links') diff --git a/database/entity/0032-add-transaction-link-to-transaction/Transaction.ts b/database/entity/0032-add-transaction-link-to-transaction/Transaction.ts index e9e206e14..f45c05c67 100644 --- a/database/entity/0032-add-transaction-link-to-transaction/Transaction.ts +++ b/database/entity/0032-add-transaction-link-to-transaction/Transaction.ts @@ -1,5 +1,5 @@ import { Decimal } from 'decimal.js-light' -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from 'typeorm' +import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' @Entity('transactions') diff --git a/database/entity/0033-add_referrer_id/User.ts b/database/entity/0033-add_referrer_id/User.ts index 353c6a830..d407c4a35 100644 --- a/database/entity/0033-add_referrer_id/User.ts +++ b/database/entity/0033-add_referrer_id/User.ts @@ -1,10 +1,10 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, - OneToMany, DeleteDateColumn, + Entity, + OneToMany, + PrimaryGeneratedColumn, } from 'typeorm' import { UserSetting } from '../0002-add_settings/UserSetting' @@ -73,6 +73,9 @@ export class User extends BaseEntity { }) passphrase: string - @OneToMany(() => UserSetting, (userSetting) => userSetting.user) + @OneToMany( + () => UserSetting, + (userSetting) => userSetting.user, + ) settings: UserSetting[] } diff --git a/database/entity/0034-drop_server_user_table/User.ts b/database/entity/0034-drop_server_user_table/User.ts index 82fd72009..b304a5c28 100644 --- a/database/entity/0034-drop_server_user_table/User.ts +++ b/database/entity/0034-drop_server_user_table/User.ts @@ -1,10 +1,10 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, - OneToMany, DeleteDateColumn, + Entity, + OneToMany, + PrimaryGeneratedColumn, } from 'typeorm' import { UserSetting } from '../0002-add_settings/UserSetting' @@ -76,6 +76,9 @@ export class User extends BaseEntity { }) passphrase: string - @OneToMany(() => UserSetting, (userSetting) => userSetting.user) + @OneToMany( + () => UserSetting, + (userSetting) => userSetting.user, + ) settings: UserSetting[] } diff --git a/database/entity/0036-unique_previous_in_transactions/Transaction.ts b/database/entity/0036-unique_previous_in_transactions/Transaction.ts index 2f2899429..eef845330 100644 --- a/database/entity/0036-unique_previous_in_transactions/Transaction.ts +++ b/database/entity/0036-unique_previous_in_transactions/Transaction.ts @@ -1,6 +1,5 @@ -/* eslint-disable no-use-before-define */ import { Decimal } from 'decimal.js-light' -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn } from 'typeorm' +import { BaseEntity, Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' import { Contribution } from '../Contribution' @@ -94,7 +93,10 @@ export class Transaction extends BaseEntity { }) transactionLinkId?: number | null - @OneToOne(() => Contribution, (contribution) => contribution.transaction) + @OneToOne( + () => Contribution, + (contribution) => contribution.transaction, + ) @JoinColumn({ name: 'id', referencedColumnName: 'transactionId' }) contribution?: Contribution | null diff --git a/database/entity/0037-drop_user_setting_table/User.ts b/database/entity/0037-drop_user_setting_table/User.ts index 528cef32b..2dff80d4b 100644 --- a/database/entity/0037-drop_user_setting_table/User.ts +++ b/database/entity/0037-drop_user_setting_table/User.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, DeleteDateColumn } from 'typeorm' +import { BaseEntity, Column, DeleteDateColumn, Entity, PrimaryGeneratedColumn } from 'typeorm' @Entity('users', { engine: 'InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci' }) export class User extends BaseEntity { diff --git a/database/entity/0038-add_contribution_links_table/ContributionLink.ts b/database/entity/0038-add_contribution_links_table/ContributionLink.ts index 3d79e84fd..f64b92208 100644 --- a/database/entity/0038-add_contribution_links_table/ContributionLink.ts +++ b/database/entity/0038-add_contribution_links_table/ContributionLink.ts @@ -1,5 +1,5 @@ import { Decimal } from 'decimal.js-light' -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, DeleteDateColumn } from 'typeorm' +import { BaseEntity, Column, DeleteDateColumn, Entity, PrimaryGeneratedColumn } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' @Entity('contribution_links') diff --git a/database/entity/0039-contributions_table/Contribution.ts b/database/entity/0039-contributions_table/Contribution.ts index 7b0abd29a..116638c54 100644 --- a/database/entity/0039-contributions_table/Contribution.ts +++ b/database/entity/0039-contributions_table/Contribution.ts @@ -2,11 +2,11 @@ import { Decimal } from 'decimal.js-light' import { BaseEntity, Column, - Entity, - PrimaryGeneratedColumn, DeleteDateColumn, + Entity, JoinColumn, ManyToOne, + PrimaryGeneratedColumn, } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' import { User } from '../User' @@ -19,7 +19,10 @@ export class Contribution extends BaseEntity { @Column({ unsigned: true, nullable: false, name: 'user_id' }) userId: number - @ManyToOne(() => User, (user) => user.contributions) + @ManyToOne( + () => User, + (user) => user.contributions, + ) @JoinColumn({ name: 'user_id' }) user: User diff --git a/database/entity/0039-contributions_table/User.ts b/database/entity/0039-contributions_table/User.ts index 147ae6f6f..31f78cffd 100644 --- a/database/entity/0039-contributions_table/User.ts +++ b/database/entity/0039-contributions_table/User.ts @@ -1,11 +1,11 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, DeleteDateColumn, - OneToMany, + Entity, JoinColumn, + OneToMany, + PrimaryGeneratedColumn, } from 'typeorm' import { Contribution } from '../Contribution' @@ -77,7 +77,10 @@ export class User extends BaseEntity { }) passphrase: string - @OneToMany(() => Contribution, (contribution) => contribution.user) + @OneToMany( + () => Contribution, + (contribution) => contribution.user, + ) @JoinColumn({ name: 'user_id' }) contributions?: Contribution[] } diff --git a/database/entity/0040-add_contribution_link_id_to_user/User.ts b/database/entity/0040-add_contribution_link_id_to_user/User.ts index 56047345a..79bccec0d 100644 --- a/database/entity/0040-add_contribution_link_id_to_user/User.ts +++ b/database/entity/0040-add_contribution_link_id_to_user/User.ts @@ -1,11 +1,11 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, DeleteDateColumn, - OneToMany, + Entity, JoinColumn, + OneToMany, + PrimaryGeneratedColumn, } from 'typeorm' import { Contribution } from '../Contribution' @@ -86,7 +86,10 @@ export class User extends BaseEntity { }) passphrase: string - @OneToMany(() => Contribution, (contribution) => contribution.user) + @OneToMany( + () => Contribution, + (contribution) => contribution.user, + ) @JoinColumn({ name: 'user_id' }) contributions?: Contribution[] } diff --git a/database/entity/0043-add_event_protocol_table/EventProtocol.ts b/database/entity/0043-add_event_protocol_table/EventProtocol.ts index 13eebcce5..df0e84de8 100644 --- a/database/entity/0043-add_event_protocol_table/EventProtocol.ts +++ b/database/entity/0043-add_event_protocol_table/EventProtocol.ts @@ -1,5 +1,5 @@ import { Decimal } from 'decimal.js-light' -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from 'typeorm' +import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' @Entity('event_protocol') diff --git a/database/entity/0045-add_denied_type_and_status_to_contributions/Contribution.ts b/database/entity/0045-add_denied_type_and_status_to_contributions/Contribution.ts index 21300fd4d..8d5d4cbf8 100644 --- a/database/entity/0045-add_denied_type_and_status_to_contributions/Contribution.ts +++ b/database/entity/0045-add_denied_type_and_status_to_contributions/Contribution.ts @@ -2,11 +2,11 @@ import { Decimal } from 'decimal.js-light' import { BaseEntity, Column, - Entity, - PrimaryGeneratedColumn, DeleteDateColumn, + Entity, JoinColumn, ManyToOne, + PrimaryGeneratedColumn, } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' import { User } from '../User' @@ -19,7 +19,10 @@ export class Contribution extends BaseEntity { @Column({ unsigned: true, nullable: false, name: 'user_id' }) userId: number - @ManyToOne(() => User, (user) => user.contributions) + @ManyToOne( + () => User, + (user) => user.contributions, + ) @JoinColumn({ name: 'user_id' }) user: User diff --git a/database/entity/0046-adapt_users_table_for_gradidoid/User.ts b/database/entity/0046-adapt_users_table_for_gradidoid/User.ts index 3f2547cad..bff248f6d 100644 --- a/database/entity/0046-adapt_users_table_for_gradidoid/User.ts +++ b/database/entity/0046-adapt_users_table_for_gradidoid/User.ts @@ -1,11 +1,11 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, DeleteDateColumn, - OneToMany, + Entity, JoinColumn, + OneToMany, + PrimaryGeneratedColumn, } from 'typeorm' import { Contribution } from '../Contribution' @@ -105,7 +105,10 @@ export class User extends BaseEntity { }) passphrase: string - @OneToMany(() => Contribution, (contribution) => contribution.user) + @OneToMany( + () => Contribution, + (contribution) => contribution.user, + ) @JoinColumn({ name: 'user_id' }) contributions?: Contribution[] } diff --git a/database/entity/0047-messages_tables/Contribution.ts b/database/entity/0047-messages_tables/Contribution.ts index 323bf91b6..48711c531 100644 --- a/database/entity/0047-messages_tables/Contribution.ts +++ b/database/entity/0047-messages_tables/Contribution.ts @@ -2,16 +2,16 @@ import { Decimal } from 'decimal.js-light' import { BaseEntity, Column, - Entity, - PrimaryGeneratedColumn, DeleteDateColumn, + Entity, JoinColumn, ManyToOne, OneToMany, + PrimaryGeneratedColumn, } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' -import { User } from '../User' import { ContributionMessage } from '../ContributionMessage' +import { User } from '../User' @Entity('contributions') export class Contribution extends BaseEntity { @@ -21,7 +21,10 @@ export class Contribution extends BaseEntity { @Column({ unsigned: true, nullable: false, name: 'user_id' }) userId: number - @ManyToOne(() => User, (user) => user.contributions) + @ManyToOne( + () => User, + (user) => user.contributions, + ) @JoinColumn({ name: 'user_id' }) user: User @@ -83,7 +86,10 @@ export class Contribution extends BaseEntity { @DeleteDateColumn({ name: 'deleted_at' }) deletedAt: Date | null - @OneToMany(() => ContributionMessage, (message) => message.contribution) + @OneToMany( + () => ContributionMessage, + (message) => message.contribution, + ) @JoinColumn({ name: 'contribution_id' }) messages?: ContributionMessage[] } diff --git a/database/entity/0047-messages_tables/ContributionMessage.ts b/database/entity/0047-messages_tables/ContributionMessage.ts index e5226043d..0dbaee232 100644 --- a/database/entity/0047-messages_tables/ContributionMessage.ts +++ b/database/entity/0047-messages_tables/ContributionMessage.ts @@ -20,14 +20,20 @@ export class ContributionMessage extends BaseEntity { @Column({ name: 'contribution_id', unsigned: true, nullable: false }) contributionId: number - @ManyToOne(() => Contribution, (contribution) => contribution.messages) + @ManyToOne( + () => Contribution, + (contribution) => contribution.messages, + ) @JoinColumn({ name: 'contribution_id' }) contribution: Contribution @Column({ name: 'user_id', unsigned: true, nullable: false }) userId: number - @ManyToOne(() => User, (user) => user.messages) + @ManyToOne( + () => User, + (user) => user.messages, + ) @JoinColumn({ name: 'user_id' }) user: User diff --git a/database/entity/0047-messages_tables/User.ts b/database/entity/0047-messages_tables/User.ts index a772a3c99..1ebfb0586 100644 --- a/database/entity/0047-messages_tables/User.ts +++ b/database/entity/0047-messages_tables/User.ts @@ -1,11 +1,11 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, DeleteDateColumn, - OneToMany, + Entity, JoinColumn, + OneToMany, + PrimaryGeneratedColumn, } from 'typeorm' import { Contribution } from '../Contribution' import { ContributionMessage } from '../ContributionMessage' @@ -106,11 +106,17 @@ export class User extends BaseEntity { }) passphrase: string - @OneToMany(() => Contribution, (contribution) => contribution.user) + @OneToMany( + () => Contribution, + (contribution) => contribution.user, + ) @JoinColumn({ name: 'user_id' }) contributions?: Contribution[] - @OneToMany(() => ContributionMessage, (message) => message.user) + @OneToMany( + () => ContributionMessage, + (message) => message.user, + ) @JoinColumn({ name: 'user_id' }) messages?: ContributionMessage[] } diff --git a/database/entity/0048-add_is_moderator_to_contribution_messages/ContributionMessage.ts b/database/entity/0048-add_is_moderator_to_contribution_messages/ContributionMessage.ts index dd3787547..a6e37729e 100644 --- a/database/entity/0048-add_is_moderator_to_contribution_messages/ContributionMessage.ts +++ b/database/entity/0048-add_is_moderator_to_contribution_messages/ContributionMessage.ts @@ -20,14 +20,20 @@ export class ContributionMessage extends BaseEntity { @Column({ name: 'contribution_id', unsigned: true, nullable: false }) contributionId: number - @ManyToOne(() => Contribution, (contribution) => contribution.messages) + @ManyToOne( + () => Contribution, + (contribution) => contribution.messages, + ) @JoinColumn({ name: 'contribution_id' }) contribution: Contribution @Column({ name: 'user_id', unsigned: true, nullable: false }) userId: number - @ManyToOne(() => User, (user) => user.messages) + @ManyToOne( + () => User, + (user) => user.messages, + ) @JoinColumn({ name: 'user_id' }) user: User diff --git a/database/entity/0049-add_user_contacts_table/User.ts b/database/entity/0049-add_user_contacts_table/User.ts index abe40df54..46b65f005 100644 --- a/database/entity/0049-add_user_contacts_table/User.ts +++ b/database/entity/0049-add_user_contacts_table/User.ts @@ -1,12 +1,12 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, DeleteDateColumn, - OneToMany, + Entity, JoinColumn, + OneToMany, OneToOne, + PrimaryGeneratedColumn, } from 'typeorm' import { Contribution } from '../Contribution' import { ContributionMessage } from '../ContributionMessage' @@ -44,7 +44,10 @@ export class User extends BaseEntity { @Column({ length: 255, unique: true, nullable: false, collation: 'utf8mb4_unicode_ci' }) email: string */ - @OneToOne(() => UserContact, (emailContact: UserContact) => emailContact.user) + @OneToOne( + () => UserContact, + (emailContact: UserContact) => emailContact.user, + ) @JoinColumn({ name: 'email_id' }) emailContact: UserContact @@ -112,15 +115,24 @@ export class User extends BaseEntity { }) passphrase: string - @OneToMany(() => Contribution, (contribution) => contribution.user) + @OneToMany( + () => Contribution, + (contribution) => contribution.user, + ) @JoinColumn({ name: 'user_id' }) contributions?: Contribution[] - @OneToMany(() => ContributionMessage, (message) => message.user) + @OneToMany( + () => ContributionMessage, + (message) => message.user, + ) @JoinColumn({ name: 'user_id' }) messages?: ContributionMessage[] - @OneToMany(() => UserContact, (userContact: UserContact) => userContact.user) + @OneToMany( + () => UserContact, + (userContact: UserContact) => userContact.user, + ) @JoinColumn({ name: 'user_id' }) userContacts?: UserContact[] } diff --git a/database/entity/0049-add_user_contacts_table/UserContact.ts b/database/entity/0049-add_user_contacts_table/UserContact.ts index 97b12d4cd..54382ec56 100644 --- a/database/entity/0049-add_user_contacts_table/UserContact.ts +++ b/database/entity/0049-add_user_contacts_table/UserContact.ts @@ -1,10 +1,10 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, DeleteDateColumn, + Entity, OneToOne, + PrimaryGeneratedColumn, } from 'typeorm' import { User } from './User' @@ -22,7 +22,10 @@ export class UserContact extends BaseEntity { }) type: string - @OneToOne(() => User, (user) => user.emailContact) + @OneToOne( + () => User, + (user) => user.emailContact, + ) user: User @Column({ name: 'user_id', type: 'int', unsigned: true, nullable: false }) diff --git a/database/entity/0050-add_messageId_to_event_protocol/EventProtocol.ts b/database/entity/0050-add_messageId_to_event_protocol/EventProtocol.ts index ca7d27069..1607e9431 100644 --- a/database/entity/0050-add_messageId_to_event_protocol/EventProtocol.ts +++ b/database/entity/0050-add_messageId_to_event_protocol/EventProtocol.ts @@ -1,5 +1,5 @@ import { Decimal } from 'decimal.js-light' -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from 'typeorm' +import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' @Entity('event_protocol') diff --git a/database/entity/0051-add_delete_by_to_contributions/Contribution.ts b/database/entity/0051-add_delete_by_to_contributions/Contribution.ts index 8e8d0d172..0ebf1cf1f 100644 --- a/database/entity/0051-add_delete_by_to_contributions/Contribution.ts +++ b/database/entity/0051-add_delete_by_to_contributions/Contribution.ts @@ -2,16 +2,16 @@ import { Decimal } from 'decimal.js-light' import { BaseEntity, Column, - Entity, - PrimaryGeneratedColumn, DeleteDateColumn, + Entity, JoinColumn, ManyToOne, OneToMany, + PrimaryGeneratedColumn, } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' -import { User } from '../User' import { ContributionMessage } from '../ContributionMessage' +import { User } from '../User' @Entity('contributions') export class Contribution extends BaseEntity { @@ -21,7 +21,10 @@ export class Contribution extends BaseEntity { @Column({ unsigned: true, nullable: false, name: 'user_id' }) userId: number - @ManyToOne(() => User, (user) => user.contributions) + @ManyToOne( + () => User, + (user) => user.contributions, + ) @JoinColumn({ name: 'user_id' }) user: User @@ -86,7 +89,10 @@ export class Contribution extends BaseEntity { @DeleteDateColumn({ unsigned: true, nullable: true, name: 'deleted_by' }) deletedBy: number - @OneToMany(() => ContributionMessage, (message) => message.contribution) + @OneToMany( + () => ContributionMessage, + (message) => message.contribution, + ) @JoinColumn({ name: 'contribution_id' }) messages?: ContributionMessage[] } diff --git a/database/entity/0052-add_updated_at_to_contributions/Contribution.ts b/database/entity/0052-add_updated_at_to_contributions/Contribution.ts index 941e9da38..fa1f6a72c 100644 --- a/database/entity/0052-add_updated_at_to_contributions/Contribution.ts +++ b/database/entity/0052-add_updated_at_to_contributions/Contribution.ts @@ -2,18 +2,18 @@ import { Decimal } from 'decimal.js-light' import { BaseEntity, Column, - Entity, - PrimaryGeneratedColumn, DeleteDateColumn, + Entity, JoinColumn, ManyToOne, OneToMany, OneToOne, + PrimaryGeneratedColumn, } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' -import { User } from '../User' import { ContributionMessage } from '../ContributionMessage' import { Transaction } from '../Transaction' +import { User } from '../User' @Entity('contributions') export class Contribution extends BaseEntity { @@ -23,7 +23,10 @@ export class Contribution extends BaseEntity { @Column({ unsigned: true, nullable: false, name: 'user_id' }) userId: number - @ManyToOne(() => User, (user) => user.contributions) + @ManyToOne( + () => User, + (user) => user.contributions, + ) @JoinColumn({ name: 'user_id' }) user: User @@ -91,11 +94,17 @@ export class Contribution extends BaseEntity { @DeleteDateColumn({ unsigned: true, nullable: true, name: 'deleted_by' }) deletedBy: number - @OneToMany(() => ContributionMessage, (message) => message.contribution) + @OneToMany( + () => ContributionMessage, + (message) => message.contribution, + ) @JoinColumn({ name: 'contribution_id' }) messages?: ContributionMessage[] - @OneToOne(() => Transaction, (transaction) => transaction.contribution) + @OneToOne( + () => Transaction, + (transaction) => transaction.contribution, + ) @JoinColumn({ name: 'transaction_id' }) transaction?: Transaction | null } diff --git a/database/entity/0053-change_password_encryption/User.ts b/database/entity/0053-change_password_encryption/User.ts index 2a3332925..18b90a26f 100644 --- a/database/entity/0053-change_password_encryption/User.ts +++ b/database/entity/0053-change_password_encryption/User.ts @@ -1,12 +1,12 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, DeleteDateColumn, - OneToMany, + Entity, JoinColumn, + OneToMany, OneToOne, + PrimaryGeneratedColumn, } from 'typeorm' import { Contribution } from '../Contribution' import { ContributionMessage } from '../ContributionMessage' @@ -49,7 +49,10 @@ export class User extends BaseEntity { }) passphrase: string - @OneToOne(() => UserContact, (emailContact: UserContact) => emailContact.user) + @OneToOne( + () => UserContact, + (emailContact: UserContact) => emailContact.user, + ) @JoinColumn({ name: 'email_id' }) emailContact: UserContact @@ -113,15 +116,24 @@ export class User extends BaseEntity { @Column({ name: 'publisher_id', default: 0 }) publisherId: number - @OneToMany(() => Contribution, (contribution) => contribution.user) + @OneToMany( + () => Contribution, + (contribution) => contribution.user, + ) @JoinColumn({ name: 'user_id' }) contributions?: Contribution[] - @OneToMany(() => ContributionMessage, (message) => message.user) + @OneToMany( + () => ContributionMessage, + (message) => message.user, + ) @JoinColumn({ name: 'user_id' }) messages?: ContributionMessage[] - @OneToMany(() => UserContact, (userContact: UserContact) => userContact.user) + @OneToMany( + () => UserContact, + (userContact: UserContact) => userContact.user, + ) @JoinColumn({ name: 'user_id' }) userContacts?: UserContact[] } diff --git a/database/entity/0053-change_password_encryption/UserContact.ts b/database/entity/0053-change_password_encryption/UserContact.ts index 97b12d4cd..54382ec56 100644 --- a/database/entity/0053-change_password_encryption/UserContact.ts +++ b/database/entity/0053-change_password_encryption/UserContact.ts @@ -1,10 +1,10 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, DeleteDateColumn, + Entity, OneToOne, + PrimaryGeneratedColumn, } from 'typeorm' import { User } from './User' @@ -22,7 +22,10 @@ export class UserContact extends BaseEntity { }) type: string - @OneToOne(() => User, (user) => user.emailContact) + @OneToOne( + () => User, + (user) => user.emailContact, + ) user: User @Column({ name: 'user_id', type: 'int', unsigned: true, nullable: false }) diff --git a/database/entity/0057-clear_old_password_junk/User.ts b/database/entity/0057-clear_old_password_junk/User.ts index c511a98c8..f78beafd4 100644 --- a/database/entity/0057-clear_old_password_junk/User.ts +++ b/database/entity/0057-clear_old_password_junk/User.ts @@ -1,12 +1,12 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, DeleteDateColumn, - OneToMany, + Entity, JoinColumn, + OneToMany, OneToOne, + PrimaryGeneratedColumn, } from 'typeorm' import { Contribution } from '../Contribution' import { ContributionMessage } from '../ContributionMessage' @@ -34,7 +34,10 @@ export class User extends BaseEntity { }) alias: string - @OneToOne(() => UserContact, (emailContact: UserContact) => emailContact.user) + @OneToOne( + () => UserContact, + (emailContact: UserContact) => emailContact.user, + ) @JoinColumn({ name: 'email_id' }) emailContact: UserContact @@ -98,15 +101,24 @@ export class User extends BaseEntity { @Column({ name: 'publisher_id', default: 0 }) publisherId: number - @OneToMany(() => Contribution, (contribution) => contribution.user) + @OneToMany( + () => Contribution, + (contribution) => contribution.user, + ) @JoinColumn({ name: 'user_id' }) contributions?: Contribution[] - @OneToMany(() => ContributionMessage, (message) => message.user) + @OneToMany( + () => ContributionMessage, + (message) => message.user, + ) @JoinColumn({ name: 'user_id' }) messages?: ContributionMessage[] - @OneToMany(() => UserContact, (userContact: UserContact) => userContact.user) + @OneToMany( + () => UserContact, + (userContact: UserContact) => userContact.user, + ) @JoinColumn({ name: 'user_id' }) userContacts?: UserContact[] } diff --git a/database/entity/0057-clear_old_password_junk/UserContact.ts b/database/entity/0057-clear_old_password_junk/UserContact.ts index 6064a3ea3..2e85e13e5 100644 --- a/database/entity/0057-clear_old_password_junk/UserContact.ts +++ b/database/entity/0057-clear_old_password_junk/UserContact.ts @@ -1,10 +1,10 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, DeleteDateColumn, + Entity, OneToOne, + PrimaryGeneratedColumn, } from 'typeorm' import { User } from '../User' @@ -22,7 +22,10 @@ export class UserContact extends BaseEntity { }) type: string - @OneToOne(() => User, (user) => user.emailContact) + @OneToOne( + () => User, + (user) => user.emailContact, + ) user: User @Column({ name: 'user_id', type: 'int', unsigned: true, nullable: false }) diff --git a/database/entity/0058-add_communities_table/Community.ts b/database/entity/0058-add_communities_table/Community.ts index f2d071ce4..4deeb6d6d 100644 --- a/database/entity/0058-add_communities_table/Community.ts +++ b/database/entity/0058-add_communities_table/Community.ts @@ -1,9 +1,9 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, CreateDateColumn, + Entity, + PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm' diff --git a/database/entity/0059-add_hide_amount_to_users/User.ts b/database/entity/0059-add_hide_amount_to_users/User.ts index ba9e5fc49..f63c6cf2f 100644 --- a/database/entity/0059-add_hide_amount_to_users/User.ts +++ b/database/entity/0059-add_hide_amount_to_users/User.ts @@ -1,12 +1,12 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, DeleteDateColumn, - OneToMany, + Entity, JoinColumn, + OneToMany, OneToOne, + PrimaryGeneratedColumn, } from 'typeorm' import { Contribution } from '../Contribution' import { ContributionMessage } from '../ContributionMessage' @@ -34,7 +34,10 @@ export class User extends BaseEntity { }) alias: string - @OneToOne(() => UserContact, (emailContact: UserContact) => emailContact.user) + @OneToOne( + () => UserContact, + (emailContact: UserContact) => emailContact.user, + ) @JoinColumn({ name: 'email_id' }) emailContact: UserContact @@ -104,15 +107,24 @@ export class User extends BaseEntity { @Column({ name: 'publisher_id', default: 0 }) publisherId: number - @OneToMany(() => Contribution, (contribution) => contribution.user) + @OneToMany( + () => Contribution, + (contribution) => contribution.user, + ) @JoinColumn({ name: 'user_id' }) contributions?: Contribution[] - @OneToMany(() => ContributionMessage, (message) => message.user) + @OneToMany( + () => ContributionMessage, + (message) => message.user, + ) @JoinColumn({ name: 'user_id' }) messages?: ContributionMessage[] - @OneToMany(() => UserContact, (userContact: UserContact) => userContact.user) + @OneToMany( + () => UserContact, + (userContact: UserContact) => userContact.user, + ) @JoinColumn({ name: 'user_id' }) userContacts?: UserContact[] } diff --git a/database/entity/0060-update_communities_table/Community.ts b/database/entity/0060-update_communities_table/Community.ts index ab7cfb58a..68b1d6ef0 100644 --- a/database/entity/0060-update_communities_table/Community.ts +++ b/database/entity/0060-update_communities_table/Community.ts @@ -1,9 +1,9 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, CreateDateColumn, + Entity, + PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm' diff --git a/database/entity/0061-event_refactoring/Event.ts b/database/entity/0061-event_refactoring/Event.ts index a2fbf0adf..755a4aca6 100644 --- a/database/entity/0061-event_refactoring/Event.ts +++ b/database/entity/0061-event_refactoring/Event.ts @@ -1,18 +1,18 @@ -import { Contribution } from '../Contribution' -import { ContributionMessage } from '../ContributionMessage' -import { User } from '../User' -import { Transaction } from '../Transaction' import { Decimal } from 'decimal.js-light' import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, CreateDateColumn, - ManyToOne, + Entity, JoinColumn, + ManyToOne, + PrimaryGeneratedColumn, } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' +import { Contribution } from '../Contribution' +import { ContributionMessage } from '../ContributionMessage' +import { Transaction } from '../Transaction' +import { User } from '../User' @Entity('events') export class Event extends BaseEntity { diff --git a/database/entity/0063-event_link_fields/Event.ts b/database/entity/0063-event_link_fields/Event.ts index 40f1ea7c0..d84adac1c 100644 --- a/database/entity/0063-event_link_fields/Event.ts +++ b/database/entity/0063-event_link_fields/Event.ts @@ -1,20 +1,20 @@ -import { Contribution } from '../Contribution' -import { ContributionMessage } from '../ContributionMessage' -import { User } from '../User' -import { Transaction } from '../Transaction' import { Decimal } from 'decimal.js-light' import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, CreateDateColumn, - ManyToOne, + Entity, JoinColumn, + ManyToOne, + PrimaryGeneratedColumn, } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' -import { TransactionLink } from '../TransactionLink' +import { Contribution } from '../Contribution' import { ContributionLink } from '../ContributionLink' +import { ContributionMessage } from '../ContributionMessage' +import { Transaction } from '../Transaction' +import { TransactionLink } from '../TransactionLink' +import { User } from '../User' @Entity('events') export class Event extends BaseEntity { diff --git a/database/entity/0065-refactor_communities_table/Community.ts b/database/entity/0065-refactor_communities_table/Community.ts index 5857634a6..52c8914f0 100644 --- a/database/entity/0065-refactor_communities_table/Community.ts +++ b/database/entity/0065-refactor_communities_table/Community.ts @@ -1,9 +1,9 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, CreateDateColumn, + Entity, + PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm' diff --git a/database/entity/0065-refactor_communities_table/FederatedCommunity.ts b/database/entity/0065-refactor_communities_table/FederatedCommunity.ts index 0adbf4612..85f9fd038 100644 --- a/database/entity/0065-refactor_communities_table/FederatedCommunity.ts +++ b/database/entity/0065-refactor_communities_table/FederatedCommunity.ts @@ -1,9 +1,9 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, CreateDateColumn, + Entity, + PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm' diff --git a/database/entity/0066-x-community-sendcoins-transactions_table/Transaction.ts b/database/entity/0066-x-community-sendcoins-transactions_table/Transaction.ts index 105972310..905f17830 100644 --- a/database/entity/0066-x-community-sendcoins-transactions_table/Transaction.ts +++ b/database/entity/0066-x-community-sendcoins-transactions_table/Transaction.ts @@ -1,6 +1,5 @@ -/* eslint-disable no-use-before-define */ import { Decimal } from 'decimal.js-light' -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn } from 'typeorm' +import { BaseEntity, Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' import { Contribution } from '../Contribution' @@ -130,7 +129,10 @@ export class Transaction extends BaseEntity { }) linkedTransactionId?: number | null - @OneToOne(() => Contribution, (contribution) => contribution.transaction) + @OneToOne( + () => Contribution, + (contribution) => contribution.transaction, + ) @JoinColumn({ name: 'id', referencedColumnName: 'transactionId' }) contribution?: Contribution | null diff --git a/database/entity/0067-private_key_in_community_table/Community.ts b/database/entity/0067-private_key_in_community_table/Community.ts index dcb55c875..fedf25deb 100644 --- a/database/entity/0067-private_key_in_community_table/Community.ts +++ b/database/entity/0067-private_key_in_community_table/Community.ts @@ -1,9 +1,9 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, CreateDateColumn, + Entity, + PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm' diff --git a/database/entity/0068-community_tables_public_key_length/Community.ts b/database/entity/0068-community_tables_public_key_length/Community.ts index e6f8d255c..ececa886f 100644 --- a/database/entity/0068-community_tables_public_key_length/Community.ts +++ b/database/entity/0068-community_tables_public_key_length/Community.ts @@ -1,9 +1,9 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, CreateDateColumn, + Entity, + PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm' diff --git a/database/entity/0068-community_tables_public_key_length/FederatedCommunity.ts b/database/entity/0068-community_tables_public_key_length/FederatedCommunity.ts index 7dd49a1d6..97d1b56c0 100644 --- a/database/entity/0068-community_tables_public_key_length/FederatedCommunity.ts +++ b/database/entity/0068-community_tables_public_key_length/FederatedCommunity.ts @@ -1,9 +1,9 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, CreateDateColumn, + Entity, + PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm' diff --git a/database/entity/0069-add_user_roles_table/User.ts b/database/entity/0069-add_user_roles_table/User.ts index a49bb4b87..55a0a64a2 100644 --- a/database/entity/0069-add_user_roles_table/User.ts +++ b/database/entity/0069-add_user_roles_table/User.ts @@ -1,12 +1,12 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, DeleteDateColumn, - OneToMany, + Entity, JoinColumn, + OneToMany, OneToOne, + PrimaryGeneratedColumn, } from 'typeorm' import { Contribution } from '../Contribution' import { ContributionMessage } from '../ContributionMessage' @@ -35,7 +35,10 @@ export class User extends BaseEntity { }) alias: string - @OneToOne(() => UserContact, (emailContact: UserContact) => emailContact.user) + @OneToOne( + () => UserContact, + (emailContact: UserContact) => emailContact.user, + ) @JoinColumn({ name: 'email_id' }) emailContact: UserContact @@ -87,7 +90,10 @@ export class User extends BaseEntity { @Column({ type: 'bool', default: false }) hideAmountGDT: boolean - @OneToMany(() => UserRole, (userRole) => userRole.user) + @OneToMany( + () => UserRole, + (userRole) => userRole.user, + ) @JoinColumn({ name: 'user_id' }) userRoles: UserRole[] @@ -106,15 +112,24 @@ export class User extends BaseEntity { @Column({ name: 'publisher_id', default: 0 }) publisherId: number - @OneToMany(() => Contribution, (contribution) => contribution.user) + @OneToMany( + () => Contribution, + (contribution) => contribution.user, + ) @JoinColumn({ name: 'user_id' }) contributions?: Contribution[] - @OneToMany(() => ContributionMessage, (message) => message.user) + @OneToMany( + () => ContributionMessage, + (message) => message.user, + ) @JoinColumn({ name: 'user_id' }) messages?: ContributionMessage[] - @OneToMany(() => UserContact, (userContact: UserContact) => userContact.user) + @OneToMany( + () => UserContact, + (userContact: UserContact) => userContact.user, + ) @JoinColumn({ name: 'user_id' }) userContacts?: UserContact[] } diff --git a/database/entity/0069-add_user_roles_table/UserRole.ts b/database/entity/0069-add_user_roles_table/UserRole.ts index 118753b20..4d1e3f87d 100644 --- a/database/entity/0069-add_user_roles_table/UserRole.ts +++ b/database/entity/0069-add_user_roles_table/UserRole.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, ManyToOne, JoinColumn } from 'typeorm' +import { BaseEntity, Column, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn } from 'typeorm' import { User } from '../User' @Entity('user_roles', { engine: 'InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci' }) @@ -18,7 +18,10 @@ export class UserRole extends BaseEntity { @Column({ name: 'updated_at', nullable: true, default: null, type: 'datetime' }) updatedAt: Date | null - @ManyToOne(() => User, (user) => user.userRoles) + @ManyToOne( + () => User, + (user) => user.userRoles, + ) @JoinColumn({ name: 'user_id' }) user: User } diff --git a/database/entity/0070-add_dlt_transactions_table/DltTransaction.ts b/database/entity/0070-add_dlt_transactions_table/DltTransaction.ts index 2251a6a42..c2f28593a 100644 --- a/database/entity/0070-add_dlt_transactions_table/DltTransaction.ts +++ b/database/entity/0070-add_dlt_transactions_table/DltTransaction.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn } from 'typeorm' +import { BaseEntity, Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from 'typeorm' import { Transaction } from '../Transaction' @Entity('dlt_transactions', { engine: 'InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci' }) @@ -27,7 +27,10 @@ export class DltTransaction extends BaseEntity { @Column({ name: 'verified_at', nullable: true, default: null, type: 'datetime' }) verifiedAt: Date | null - @OneToOne(() => Transaction, (transaction) => transaction.dltTransaction) + @OneToOne( + () => Transaction, + (transaction) => transaction.dltTransaction, + ) @JoinColumn({ name: 'transactions_id' }) transaction?: Transaction | null } diff --git a/database/entity/0070-add_dlt_transactions_table/Transaction.ts b/database/entity/0070-add_dlt_transactions_table/Transaction.ts index 0684bc3db..4620ad231 100644 --- a/database/entity/0070-add_dlt_transactions_table/Transaction.ts +++ b/database/entity/0070-add_dlt_transactions_table/Transaction.ts @@ -1,6 +1,5 @@ -/* eslint-disable no-use-before-define */ import { Decimal } from 'decimal.js-light' -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn } from 'typeorm' +import { BaseEntity, Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' import { Contribution } from '../Contribution' import { DltTransaction } from './DltTransaction' @@ -131,11 +130,17 @@ export class Transaction extends BaseEntity { }) linkedTransactionId?: number | null - @OneToOne(() => Contribution, (contribution) => contribution.transaction) + @OneToOne( + () => Contribution, + (contribution) => contribution.transaction, + ) @JoinColumn({ name: 'id', referencedColumnName: 'transactionId' }) contribution?: Contribution | null - @OneToOne(() => DltTransaction, (dlt) => dlt.transactionId) + @OneToOne( + () => DltTransaction, + (dlt) => dlt.transactionId, + ) @JoinColumn({ name: 'id', referencedColumnName: 'transactionId' }) dltTransaction?: DltTransaction | null diff --git a/database/entity/0071-add-pending_transactions-table/PendingTransaction.ts b/database/entity/0071-add-pending_transactions-table/PendingTransaction.ts index e11a31f3b..65febfded 100644 --- a/database/entity/0071-add-pending_transactions-table/PendingTransaction.ts +++ b/database/entity/0071-add-pending_transactions-table/PendingTransaction.ts @@ -1,6 +1,5 @@ -/* eslint-disable no-use-before-define */ import { Decimal } from 'decimal.js-light' -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column } from 'typeorm' +import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' @Entity('pending_transactions') diff --git a/database/entity/0072-add_communityuuid_to_transactions_table/Transaction.ts b/database/entity/0072-add_communityuuid_to_transactions_table/Transaction.ts index 8f13de58a..f3e3b2281 100644 --- a/database/entity/0072-add_communityuuid_to_transactions_table/Transaction.ts +++ b/database/entity/0072-add_communityuuid_to_transactions_table/Transaction.ts @@ -1,6 +1,5 @@ -/* eslint-disable no-use-before-define */ import { Decimal } from 'decimal.js-light' -import { BaseEntity, Entity, PrimaryGeneratedColumn, Column, OneToOne, JoinColumn } from 'typeorm' +import { BaseEntity, Column, Entity, JoinColumn, OneToOne, PrimaryGeneratedColumn } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' import { Contribution } from '../Contribution' import { DltTransaction } from '../DltTransaction' @@ -149,11 +148,17 @@ export class Transaction extends BaseEntity { }) linkedTransactionId?: number | null - @OneToOne(() => Contribution, (contribution) => contribution.transaction) + @OneToOne( + () => Contribution, + (contribution) => contribution.transaction, + ) @JoinColumn({ name: 'id', referencedColumnName: 'transactionId' }) contribution?: Contribution | null - @OneToOne(() => DltTransaction, (dlt) => dlt.transactionId) + @OneToOne( + () => DltTransaction, + (dlt) => dlt.transactionId, + ) @JoinColumn({ name: 'id', referencedColumnName: 'transactionId' }) dltTransaction?: DltTransaction | null diff --git a/database/entity/0073-introduce_foreign_user_in_users_table/User.ts b/database/entity/0073-introduce_foreign_user_in_users_table/User.ts index e842d8092..0cc820c3f 100644 --- a/database/entity/0073-introduce_foreign_user_in_users_table/User.ts +++ b/database/entity/0073-introduce_foreign_user_in_users_table/User.ts @@ -1,12 +1,12 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, DeleteDateColumn, - OneToMany, + Entity, JoinColumn, + OneToMany, OneToOne, + PrimaryGeneratedColumn, } from 'typeorm' import { Contribution } from '../Contribution' import { ContributionMessage } from '../ContributionMessage' @@ -47,7 +47,10 @@ export class User extends BaseEntity { }) alias: string - @OneToOne(() => UserContact, (emailContact: UserContact) => emailContact.user) + @OneToOne( + () => UserContact, + (emailContact: UserContact) => emailContact.user, + ) @JoinColumn({ name: 'email_id' }) emailContact: UserContact @@ -99,7 +102,10 @@ export class User extends BaseEntity { @Column({ type: 'bool', default: false }) hideAmountGDT: boolean - @OneToMany(() => UserRole, (userRole) => userRole.user) + @OneToMany( + () => UserRole, + (userRole) => userRole.user, + ) @JoinColumn({ name: 'user_id' }) userRoles: UserRole[] @@ -118,15 +124,24 @@ export class User extends BaseEntity { @Column({ name: 'publisher_id', default: 0 }) publisherId: number - @OneToMany(() => Contribution, (contribution) => contribution.user) + @OneToMany( + () => Contribution, + (contribution) => contribution.user, + ) @JoinColumn({ name: 'user_id' }) contributions?: Contribution[] - @OneToMany(() => ContributionMessage, (message) => message.user) + @OneToMany( + () => ContributionMessage, + (message) => message.user, + ) @JoinColumn({ name: 'user_id' }) messages?: ContributionMessage[] - @OneToMany(() => UserContact, (userContact: UserContact) => userContact.user) + @OneToMany( + () => UserContact, + (userContact: UserContact) => userContact.user, + ) @JoinColumn({ name: 'user_id' }) userContacts?: UserContact[] } diff --git a/database/entity/0075-contribution_message_add_index/ContributionMessage.ts b/database/entity/0075-contribution_message_add_index/ContributionMessage.ts index dde11a0f9..96c90ea24 100644 --- a/database/entity/0075-contribution_message_add_index/ContributionMessage.ts +++ b/database/entity/0075-contribution_message_add_index/ContributionMessage.ts @@ -22,14 +22,20 @@ export class ContributionMessage extends BaseEntity { @Column({ name: 'contribution_id', unsigned: true, nullable: false }) contributionId: number - @ManyToOne(() => Contribution, (contribution) => contribution.messages) + @ManyToOne( + () => Contribution, + (contribution) => contribution.messages, + ) @JoinColumn({ name: 'contribution_id' }) contribution: Contribution @Column({ name: 'user_id', unsigned: true, nullable: false }) userId: number - @ManyToOne(() => User, (user) => user.messages) + @ManyToOne( + () => User, + (user) => user.messages, + ) @JoinColumn({ name: 'user_id' }) user: User diff --git a/database/entity/0076-add_updated_by_contribution/Contribution.ts b/database/entity/0076-add_updated_by_contribution/Contribution.ts index 8ed8c82d5..df96da108 100644 --- a/database/entity/0076-add_updated_by_contribution/Contribution.ts +++ b/database/entity/0076-add_updated_by_contribution/Contribution.ts @@ -2,18 +2,18 @@ import { Decimal } from 'decimal.js-light' import { BaseEntity, Column, - Entity, - PrimaryGeneratedColumn, DeleteDateColumn, + Entity, JoinColumn, ManyToOne, OneToMany, OneToOne, + PrimaryGeneratedColumn, } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' -import { User } from '../User' import { ContributionMessage } from '../ContributionMessage' import { Transaction } from '../Transaction' +import { User } from '../User' @Entity('contributions') export class Contribution extends BaseEntity { @@ -23,7 +23,10 @@ export class Contribution extends BaseEntity { @Column({ unsigned: true, nullable: false, name: 'user_id' }) userId: number - @ManyToOne(() => User, (user) => user.contributions) + @ManyToOne( + () => User, + (user) => user.contributions, + ) @JoinColumn({ name: 'user_id' }) user: User @@ -94,11 +97,17 @@ export class Contribution extends BaseEntity { @DeleteDateColumn({ unsigned: true, nullable: true, name: 'deleted_by' }) deletedBy: number - @OneToMany(() => ContributionMessage, (message) => message.contribution) + @OneToMany( + () => ContributionMessage, + (message) => message.contribution, + ) @JoinColumn({ name: 'contribution_id' }) messages?: ContributionMessage[] - @OneToOne(() => Transaction, (transaction) => transaction.contribution) + @OneToOne( + () => Transaction, + (transaction) => transaction.contribution, + ) @JoinColumn({ name: 'transaction_id' }) transaction?: Transaction | null } diff --git a/database/entity/0077-add_resubmission_date_contribution_message/ContributionMessage.ts b/database/entity/0077-add_resubmission_date_contribution_message/ContributionMessage.ts index 8dd7af06a..e88f1d966 100644 --- a/database/entity/0077-add_resubmission_date_contribution_message/ContributionMessage.ts +++ b/database/entity/0077-add_resubmission_date_contribution_message/ContributionMessage.ts @@ -24,14 +24,20 @@ export class ContributionMessage extends BaseEntity { @Column({ name: 'contribution_id', unsigned: true, nullable: false }) contributionId: number - @ManyToOne(() => Contribution, (contribution) => contribution.messages) + @ManyToOne( + () => Contribution, + (contribution) => contribution.messages, + ) @JoinColumn({ name: 'contribution_id' }) contribution: Contribution @Column({ name: 'user_id', unsigned: true, nullable: false }) userId: number - @ManyToOne(() => User, (user) => user.messages) + @ManyToOne( + () => User, + (user) => user.messages, + ) @JoinColumn({ name: 'user_id' }) user: User diff --git a/database/entity/0078-move_resubmission_date/Contribution.ts b/database/entity/0078-move_resubmission_date/Contribution.ts index 70e8960c8..6de8f74d7 100644 --- a/database/entity/0078-move_resubmission_date/Contribution.ts +++ b/database/entity/0078-move_resubmission_date/Contribution.ts @@ -2,18 +2,18 @@ import { Decimal } from 'decimal.js-light' import { BaseEntity, Column, - Entity, - PrimaryGeneratedColumn, DeleteDateColumn, + Entity, JoinColumn, ManyToOne, OneToMany, OneToOne, + PrimaryGeneratedColumn, } from 'typeorm' import { DecimalTransformer } from '../../src/typeorm/DecimalTransformer' -import { User } from '../User' import { ContributionMessage } from '../ContributionMessage' import { Transaction } from '../Transaction' +import { User } from '../User' @Entity('contributions') export class Contribution extends BaseEntity { @@ -23,7 +23,10 @@ export class Contribution extends BaseEntity { @Column({ unsigned: true, nullable: false, name: 'user_id' }) userId: number - @ManyToOne(() => User, (user) => user.contributions) + @ManyToOne( + () => User, + (user) => user.contributions, + ) @JoinColumn({ name: 'user_id' }) user: User @@ -97,11 +100,17 @@ export class Contribution extends BaseEntity { @DeleteDateColumn({ unsigned: true, nullable: true, name: 'deleted_by' }) deletedBy: number - @OneToMany(() => ContributionMessage, (message) => message.contribution) + @OneToMany( + () => ContributionMessage, + (message) => message.contribution, + ) @JoinColumn({ name: 'contribution_id' }) messages?: ContributionMessage[] - @OneToOne(() => Transaction, (transaction) => transaction.contribution) + @OneToOne( + () => Transaction, + (transaction) => transaction.contribution, + ) @JoinColumn({ name: 'transaction_id' }) transaction?: Transaction | null } diff --git a/database/entity/0078-move_resubmission_date/ContributionMessage.ts b/database/entity/0078-move_resubmission_date/ContributionMessage.ts index 93bcce4ed..1c5e89f92 100644 --- a/database/entity/0078-move_resubmission_date/ContributionMessage.ts +++ b/database/entity/0078-move_resubmission_date/ContributionMessage.ts @@ -24,14 +24,20 @@ export class ContributionMessage extends BaseEntity { @Column({ name: 'contribution_id', unsigned: true, nullable: false }) contributionId: number - @ManyToOne(() => Contribution, (contribution) => contribution.messages) + @ManyToOne( + () => Contribution, + (contribution) => contribution.messages, + ) @JoinColumn({ name: 'contribution_id' }) contribution: Contribution @Column({ name: 'user_id', unsigned: true, nullable: false }) userId: number - @ManyToOne(() => User, (user) => user.messages) + @ManyToOne( + () => User, + (user) => user.messages, + ) @JoinColumn({ name: 'user_id' }) user: User diff --git a/database/entity/0081-user_join_community/Community.ts b/database/entity/0081-user_join_community/Community.ts index 1c6b36be3..2627c9ce9 100644 --- a/database/entity/0081-user_join_community/Community.ts +++ b/database/entity/0081-user_join_community/Community.ts @@ -1,12 +1,12 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, CreateDateColumn, - UpdateDateColumn, - OneToMany, + Entity, JoinColumn, + OneToMany, + PrimaryGeneratedColumn, + UpdateDateColumn, } from 'typeorm' import { User } from '../User' @@ -64,7 +64,10 @@ export class Community extends BaseEntity { }) updatedAt: Date | null - @OneToMany(() => User, (user) => user.community) + @OneToMany( + () => User, + (user) => user.community, + ) @JoinColumn({ name: 'community_uuid', referencedColumnName: 'communityUuid' }) users: User[] } diff --git a/database/entity/0081-user_join_community/User.ts b/database/entity/0081-user_join_community/User.ts index 28141029d..c941124da 100644 --- a/database/entity/0081-user_join_community/User.ts +++ b/database/entity/0081-user_join_community/User.ts @@ -1,19 +1,19 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, DeleteDateColumn, - OneToMany, + Entity, JoinColumn, - OneToOne, ManyToOne, + OneToMany, + OneToOne, + PrimaryGeneratedColumn, } from 'typeorm' +import { Community } from '../Community' import { Contribution } from '../Contribution' import { ContributionMessage } from '../ContributionMessage' import { UserContact } from '../UserContact' import { UserRole } from '../UserRole' -import { Community } from '../Community' @Entity('users', { engine: 'InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci' }) export class User extends BaseEntity { @@ -40,7 +40,10 @@ export class User extends BaseEntity { }) communityUuid: string - @ManyToOne(() => Community, (community) => community.users) + @ManyToOne( + () => Community, + (community) => community.users, + ) @JoinColumn({ name: 'community_uuid', referencedColumnName: 'communityUuid' }) community: Community | null @@ -53,7 +56,10 @@ export class User extends BaseEntity { }) alias: string - @OneToOne(() => UserContact, (emailContact: UserContact) => emailContact.user) + @OneToOne( + () => UserContact, + (emailContact: UserContact) => emailContact.user, + ) @JoinColumn({ name: 'email_id' }) emailContact: UserContact @@ -105,7 +111,10 @@ export class User extends BaseEntity { @Column({ type: 'bool', default: false }) hideAmountGDT: boolean - @OneToMany(() => UserRole, (userRole) => userRole.user) + @OneToMany( + () => UserRole, + (userRole) => userRole.user, + ) @JoinColumn({ name: 'user_id' }) userRoles: UserRole[] @@ -124,15 +133,24 @@ export class User extends BaseEntity { @Column({ name: 'publisher_id', default: 0 }) publisherId: number - @OneToMany(() => Contribution, (contribution) => contribution.user) + @OneToMany( + () => Contribution, + (contribution) => contribution.user, + ) @JoinColumn({ name: 'user_id' }) contributions?: Contribution[] - @OneToMany(() => ContributionMessage, (message) => message.user) + @OneToMany( + () => ContributionMessage, + (message) => message.user, + ) @JoinColumn({ name: 'user_id' }) messages?: ContributionMessage[] - @OneToMany(() => UserContact, (userContact: UserContact) => userContact.user) + @OneToMany( + () => UserContact, + (userContact: UserContact) => userContact.user, + ) @JoinColumn({ name: 'user_id' }) userContacts?: UserContact[] } diff --git a/database/entity/0082-introduce_gms_registration/Community.ts b/database/entity/0082-introduce_gms_registration/Community.ts index cc5607e2e..282aca3a1 100644 --- a/database/entity/0082-introduce_gms_registration/Community.ts +++ b/database/entity/0082-introduce_gms_registration/Community.ts @@ -1,12 +1,12 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, CreateDateColumn, - UpdateDateColumn, - OneToMany, + Entity, JoinColumn, + OneToMany, + PrimaryGeneratedColumn, + UpdateDateColumn, } from 'typeorm' import { User } from '../User' @@ -67,7 +67,10 @@ export class Community extends BaseEntity { }) updatedAt: Date | null - @OneToMany(() => User, (user) => user.community) + @OneToMany( + () => User, + (user) => user.community, + ) @JoinColumn({ name: 'community_uuid', referencedColumnName: 'communityUuid' }) users: User[] } diff --git a/database/entity/0082-introduce_gms_registration/User.ts b/database/entity/0082-introduce_gms_registration/User.ts index 3dc0dccb6..16381ae16 100644 --- a/database/entity/0082-introduce_gms_registration/User.ts +++ b/database/entity/0082-introduce_gms_registration/User.ts @@ -1,21 +1,21 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, DeleteDateColumn, - OneToMany, - JoinColumn, - OneToOne, + Entity, Geometry, + JoinColumn, ManyToOne, + OneToMany, + OneToOne, + PrimaryGeneratedColumn, } from 'typeorm' +import { GeometryTransformer } from '../../src/typeorm/GeometryTransformer' +import { Community } from '../Community' import { Contribution } from '../Contribution' import { ContributionMessage } from '../ContributionMessage' import { UserContact } from '../UserContact' import { UserRole } from '../UserRole' -import { GeometryTransformer } from '../../src/typeorm/GeometryTransformer' -import { Community } from '../Community' @Entity('users', { engine: 'InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci' }) export class User extends BaseEntity { @@ -42,7 +42,10 @@ export class User extends BaseEntity { }) communityUuid: string - @ManyToOne(() => Community, (community) => community.users) + @ManyToOne( + () => Community, + (community) => community.users, + ) @JoinColumn({ name: 'community_uuid', referencedColumnName: 'communityUuid' }) community: Community | null @@ -55,7 +58,10 @@ export class User extends BaseEntity { }) alias: string - @OneToOne(() => UserContact, (emailContact: UserContact) => emailContact.user) + @OneToOne( + () => UserContact, + (emailContact: UserContact) => emailContact.user, + ) @JoinColumn({ name: 'email_id' }) emailContact: UserContact @@ -110,7 +116,10 @@ export class User extends BaseEntity { @Column({ type: 'bool', default: false }) hideAmountGDT: boolean - @OneToMany(() => UserRole, (userRole) => userRole.user) + @OneToMany( + () => UserRole, + (userRole) => userRole.user, + ) @JoinColumn({ name: 'user_id' }) userRoles: UserRole[] @@ -156,15 +165,24 @@ export class User extends BaseEntity { @Column({ name: 'gms_registered_at', type: 'datetime', default: null, nullable: true }) gmsRegisteredAt: Date | null - @OneToMany(() => Contribution, (contribution) => contribution.user) + @OneToMany( + () => Contribution, + (contribution) => contribution.user, + ) @JoinColumn({ name: 'user_id' }) contributions?: Contribution[] - @OneToMany(() => ContributionMessage, (message) => message.user) + @OneToMany( + () => ContributionMessage, + (message) => message.user, + ) @JoinColumn({ name: 'user_id' }) messages?: ContributionMessage[] - @OneToMany(() => UserContact, (userContact: UserContact) => userContact.user) + @OneToMany( + () => UserContact, + (userContact: UserContact) => userContact.user, + ) @JoinColumn({ name: 'user_id' }) userContacts?: UserContact[] } diff --git a/database/entity/0082-introduce_gms_registration/UserContact.ts b/database/entity/0082-introduce_gms_registration/UserContact.ts index 82ae4c013..740d6e6c9 100644 --- a/database/entity/0082-introduce_gms_registration/UserContact.ts +++ b/database/entity/0082-introduce_gms_registration/UserContact.ts @@ -1,11 +1,11 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, - DeleteDateColumn, - OneToOne, CreateDateColumn, + DeleteDateColumn, + Entity, + OneToOne, + PrimaryGeneratedColumn, UpdateDateColumn, } from 'typeorm' import { User } from '../User' @@ -24,7 +24,10 @@ export class UserContact extends BaseEntity { }) type: string - @OneToOne(() => User, (user) => user.emailContact) + @OneToOne( + () => User, + (user) => user.emailContact, + ) user: User @Column({ name: 'user_id', type: 'int', unsigned: true, nullable: false }) diff --git a/database/entity/0083-join_community_federated_communities/Community.ts b/database/entity/0083-join_community_federated_communities/Community.ts index 839a0ee79..d7d6e927f 100644 --- a/database/entity/0083-join_community_federated_communities/Community.ts +++ b/database/entity/0083-join_community_federated_communities/Community.ts @@ -1,12 +1,12 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, CreateDateColumn, - UpdateDateColumn, - OneToMany, + Entity, JoinColumn, + OneToMany, + PrimaryGeneratedColumn, + UpdateDateColumn, } from 'typeorm' import { FederatedCommunity } from '../FederatedCommunity' import { User } from '../User' @@ -68,11 +68,17 @@ export class Community extends BaseEntity { }) updatedAt: Date | null - @OneToMany(() => User, (user) => user.community) + @OneToMany( + () => User, + (user) => user.community, + ) @JoinColumn({ name: 'community_uuid', referencedColumnName: 'communityUuid' }) users: User[] - @OneToMany(() => FederatedCommunity, (federatedCommunity) => federatedCommunity.community) + @OneToMany( + () => FederatedCommunity, + (federatedCommunity) => federatedCommunity.community, + ) @JoinColumn({ name: 'public_key', referencedColumnName: 'publicKey' }) federatedCommunities?: FederatedCommunity[] } diff --git a/database/entity/0083-join_community_federated_communities/FederatedCommunity.ts b/database/entity/0083-join_community_federated_communities/FederatedCommunity.ts index b5eb64ea1..1f077bd5f 100644 --- a/database/entity/0083-join_community_federated_communities/FederatedCommunity.ts +++ b/database/entity/0083-join_community_federated_communities/FederatedCommunity.ts @@ -1,12 +1,12 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, CreateDateColumn, - UpdateDateColumn, - ManyToOne, + Entity, JoinColumn, + ManyToOne, + PrimaryGeneratedColumn, + UpdateDateColumn, } from 'typeorm' import { Community } from '../Community' @@ -52,7 +52,10 @@ export class FederatedCommunity extends BaseEntity { }) updatedAt: Date | null - @ManyToOne(() => Community, (community) => community.federatedCommunities) + @ManyToOne( + () => Community, + (community) => community.federatedCommunities, + ) @JoinColumn({ name: 'public_key', referencedColumnName: 'publicKey' }) community?: Community } diff --git a/database/entity/0084-introduce_humhub_registration/User.ts b/database/entity/0084-introduce_humhub_registration/User.ts index a375f6748..d192d3805 100644 --- a/database/entity/0084-introduce_humhub_registration/User.ts +++ b/database/entity/0084-introduce_humhub_registration/User.ts @@ -1,21 +1,21 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, DeleteDateColumn, - OneToMany, - JoinColumn, - OneToOne, + Entity, Geometry, + JoinColumn, ManyToOne, + OneToMany, + OneToOne, + PrimaryGeneratedColumn, } from 'typeorm' +import { GeometryTransformer } from '../../src/typeorm/GeometryTransformer' +import { Community } from '../Community' import { Contribution } from '../Contribution' import { ContributionMessage } from '../ContributionMessage' import { UserContact } from '../UserContact' import { UserRole } from '../UserRole' -import { GeometryTransformer } from '../../src/typeorm/GeometryTransformer' -import { Community } from '../Community' @Entity('users', { engine: 'InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci' }) export class User extends BaseEntity { @@ -42,7 +42,10 @@ export class User extends BaseEntity { }) communityUuid: string - @ManyToOne(() => Community, (community) => community.users) + @ManyToOne( + () => Community, + (community) => community.users, + ) @JoinColumn({ name: 'community_uuid', referencedColumnName: 'communityUuid' }) community: Community | null @@ -55,7 +58,10 @@ export class User extends BaseEntity { }) alias: string - @OneToOne(() => UserContact, (emailContact: UserContact) => emailContact.user) + @OneToOne( + () => UserContact, + (emailContact: UserContact) => emailContact.user, + ) @JoinColumn({ name: 'email_id' }) emailContact: UserContact @@ -113,7 +119,10 @@ export class User extends BaseEntity { @Column({ type: 'bool', default: false }) hideAmountGDT: boolean - @OneToMany(() => UserRole, (userRole) => userRole.user) + @OneToMany( + () => UserRole, + (userRole) => userRole.user, + ) @JoinColumn({ name: 'user_id' }) userRoles: UserRole[] @@ -162,15 +171,24 @@ export class User extends BaseEntity { @Column({ name: 'humhub_allowed', type: 'bool', default: false }) humhubAllowed: boolean - @OneToMany(() => Contribution, (contribution) => contribution.user) + @OneToMany( + () => Contribution, + (contribution) => contribution.user, + ) @JoinColumn({ name: 'user_id' }) contributions?: Contribution[] - @OneToMany(() => ContributionMessage, (message) => message.user) + @OneToMany( + () => ContributionMessage, + (message) => message.user, + ) @JoinColumn({ name: 'user_id' }) messages?: ContributionMessage[] - @OneToMany(() => UserContact, (userContact: UserContact) => userContact.user) + @OneToMany( + () => UserContact, + (userContact: UserContact) => userContact.user, + ) @JoinColumn({ name: 'user_id' }) userContacts?: UserContact[] } diff --git a/database/entity/0086-add_community_location/Community.ts b/database/entity/0086-add_community_location/Community.ts index 60410c8ce..374ea6a99 100644 --- a/database/entity/0086-add_community_location/Community.ts +++ b/database/entity/0086-add_community_location/Community.ts @@ -1,16 +1,16 @@ import { BaseEntity, - Entity, - PrimaryGeneratedColumn, Column, CreateDateColumn, - UpdateDateColumn, - OneToMany, - JoinColumn, + Entity, Geometry, + JoinColumn, + OneToMany, + PrimaryGeneratedColumn, + UpdateDateColumn, } from 'typeorm' -import { FederatedCommunity } from '../FederatedCommunity' import { GeometryTransformer } from '../../src/typeorm/GeometryTransformer' +import { FederatedCommunity } from '../FederatedCommunity' import { User } from '../User' @Entity('communities') @@ -79,11 +79,17 @@ export class Community extends BaseEntity { }) updatedAt: Date | null - @OneToMany(() => User, (user) => user.community) + @OneToMany( + () => User, + (user) => user.community, + ) @JoinColumn({ name: 'community_uuid', referencedColumnName: 'communityUuid' }) users: User[] - @OneToMany(() => FederatedCommunity, (federatedCommunity) => federatedCommunity.community) + @OneToMany( + () => FederatedCommunity, + (federatedCommunity) => federatedCommunity.community, + ) @JoinColumn({ name: 'public_key', referencedColumnName: 'publicKey' }) federatedCommunities?: FederatedCommunity[] } diff --git a/database/entity/0088-create_project_brandings/ProjectBranding.ts b/database/entity/0088-create_project_brandings/ProjectBranding.ts index 449dc62ee..f836f5824 100644 --- a/database/entity/0088-create_project_brandings/ProjectBranding.ts +++ b/database/entity/0088-create_project_brandings/ProjectBranding.ts @@ -1,4 +1,4 @@ -import { Entity, PrimaryGeneratedColumn, Column, BaseEntity } from 'typeorm' +import { BaseEntity, Column, Entity, PrimaryGeneratedColumn } from 'typeorm' @Entity('project_brandings') export class ProjectBranding extends BaseEntity { diff --git a/database/entity/0089-add_openai_threads/OpenaiThreads.ts b/database/entity/0089-add_openai_threads/OpenaiThreads.ts index 519dcea45..38e4b6c33 100644 --- a/database/entity/0089-add_openai_threads/OpenaiThreads.ts +++ b/database/entity/0089-add_openai_threads/OpenaiThreads.ts @@ -1,4 +1,4 @@ -import { BaseEntity, Entity, PrimaryColumn, CreateDateColumn, Column } from 'typeorm' +import { BaseEntity, Column, CreateDateColumn, Entity, PrimaryColumn } from 'typeorm' @Entity('openai_threads') export class OpenaiThreads extends BaseEntity { diff --git a/database/entity/index.ts b/database/entity/index.ts index e34a4b55e..84ff97194 100644 --- a/database/entity/index.ts +++ b/database/entity/index.ts @@ -1,21 +1,21 @@ +import { PendingTransaction } from './0071-add-pending_transactions-table/PendingTransaction' +import { Community } from './Community' +import { Contribution } from './Contribution' import { ContributionLink } from './ContributionLink' +import { ContributionMessage } from './ContributionMessage' +import { DltTransaction } from './DltTransaction' +import { Event } from './Event' +import { FederatedCommunity } from './FederatedCommunity' import { LoginElopageBuys } from './LoginElopageBuys' import { LoginEmailOptIn } from './LoginEmailOptIn' import { Migration } from './Migration' -import { ProjectBranding } from './ProjectBranding' import { OpenaiThreads } from './OpenaiThreads' +import { ProjectBranding } from './ProjectBranding' import { Transaction } from './Transaction' import { TransactionLink } from './TransactionLink' import { User } from './User' import { UserContact } from './UserContact' -import { Contribution } from './Contribution' -import { Event } from './Event' -import { ContributionMessage } from './ContributionMessage' -import { Community } from './Community' -import { FederatedCommunity } from './FederatedCommunity' import { UserRole } from './UserRole' -import { DltTransaction } from './DltTransaction' -import { PendingTransaction } from './0071-add-pending_transactions-table/PendingTransaction' export const entities = [ Community, diff --git a/database/integrity/0013-test.ts.keep b/database/integrity/0013-test.ts.keep index b020c0657..cbc68d79a 100644 --- a/database/integrity/0013-test.ts.keep +++ b/database/integrity/0013-test.ts.keep @@ -6,7 +6,7 @@ import fs from 'fs' -// eslint-disable-next-line @typescript-eslint/no-var-requires + const sodium = require('sodium-native') const PHRASE_WORD_COUNT = 24 @@ -49,7 +49,7 @@ const KeyPairEd25519Create = (passphrase: string[]): Buffer[] => { export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // Delete data with no reference in login_users table - // eslint-disable-next-line no-console + // 663 affected rows const userBackups = await queryFn( `SELECT passphrase, LOWER(HEX(pubkey)) as pubkey, user_id @@ -59,13 +59,13 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis // WHERE pubkey is not null`, // todo fix this condition and regenerate ) let i = 0 - // eslint-disable-next-line no-console + userBackups.forEach(async (userBackup) => { const passphrase = userBackup.passphrase.split(' ') const keyPair = KeyPairEd25519Create(passphrase) if (keyPair[0].toString('hex') !== userBackup.pubkey) { i++ - // eslint-disable-next-line no-console + console.log( 'Missmatch Pubkey', i, @@ -75,7 +75,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis `"${userBackup.pubkey}"`, ) } else { - // eslint-disable-next-line no-console + // console.log('SUCCESS: ', `"${keyPair[0].toString('hex')}`, `"${userBackup.pubkey}"`) } }) diff --git a/database/logging/AbstractLogging.view.ts b/database/logging/AbstractLogging.view.ts index e51f3823d..4d8824cc3 100644 --- a/database/logging/AbstractLogging.view.ts +++ b/database/logging/AbstractLogging.view.ts @@ -3,11 +3,10 @@ import util from 'util' import { Decimal } from 'decimal.js-light' export abstract class AbstractLoggingView { - // eslint-disable-next-line no-undef protected bufferStringFormat: BufferEncoding = 'hex' // This function gets called automatically when JSON.stringify() is called on this class instance - // eslint-disable-next-line @typescript-eslint/no-explicit-any + public abstract toJSON(): any public toString(compact = false): string { if (compact) { diff --git a/database/logging/CommunityLogging.view.ts b/database/logging/CommunityLogging.view.ts index 1c6d74626..0108aefd8 100644 --- a/database/logging/CommunityLogging.view.ts +++ b/database/logging/CommunityLogging.view.ts @@ -7,7 +7,6 @@ export class CommunityLoggingView extends AbstractLoggingView { super() } - // eslint-disable-next-line @typescript-eslint/no-explicit-any public toJSON(): any { return { id: this.self.id, diff --git a/database/logging/ContributionLogging.view.ts b/database/logging/ContributionLogging.view.ts index c924525d2..9896fac4e 100644 --- a/database/logging/ContributionLogging.view.ts +++ b/database/logging/ContributionLogging.view.ts @@ -9,7 +9,6 @@ export class ContributionLoggingView extends AbstractLoggingView { super() } - // eslint-disable-next-line @typescript-eslint/no-explicit-any public toJSON(): any { return { id: this.self.id, diff --git a/database/logging/ContributionMessageLogging.view.ts b/database/logging/ContributionMessageLogging.view.ts index d05c000bb..741820a3c 100644 --- a/database/logging/ContributionMessageLogging.view.ts +++ b/database/logging/ContributionMessageLogging.view.ts @@ -8,7 +8,6 @@ export class ContributionMessageLoggingView extends AbstractLoggingView { super() } - // eslint-disable-next-line @typescript-eslint/no-explicit-any public toJSON(): any { return { id: this.self.id, diff --git a/database/logging/DltTransactionLogging.view.ts b/database/logging/DltTransactionLogging.view.ts index 7d1681ce2..1a51121c8 100644 --- a/database/logging/DltTransactionLogging.view.ts +++ b/database/logging/DltTransactionLogging.view.ts @@ -7,7 +7,6 @@ export class DltTransactionLoggingView extends AbstractLoggingView { super() } - // eslint-disable-next-line @typescript-eslint/no-explicit-any public toJSON(): any { return { id: this.self.id, diff --git a/database/logging/FederatedCommunityLogging.view.ts b/database/logging/FederatedCommunityLogging.view.ts index 4e36cc236..ccfc9f005 100644 --- a/database/logging/FederatedCommunityLogging.view.ts +++ b/database/logging/FederatedCommunityLogging.view.ts @@ -6,7 +6,6 @@ export class FederatedCommunityLoggingView extends AbstractLoggingView { super() } - // eslint-disable-next-line @typescript-eslint/no-explicit-any public toJSON(): any { return { id: this.self.id, diff --git a/database/logging/PendingTransactionLogging.view.ts b/database/logging/PendingTransactionLogging.view.ts index 84b7f35b9..78035004b 100644 --- a/database/logging/PendingTransactionLogging.view.ts +++ b/database/logging/PendingTransactionLogging.view.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-unused-vars */ import { PendingTransaction } from '../entity/PendingTransaction' import { Transaction } from '../entity/Transaction' import { AbstractLoggingView } from './AbstractLogging.view' @@ -17,7 +16,6 @@ export class PendingTransactionLoggingView extends AbstractLoggingView { super() } - // eslint-disable-next-line @typescript-eslint/no-explicit-any public toJSON(): any { return { ...new TransactionLoggingView(this.self as Transaction).toJSON(), diff --git a/database/logging/TransactionLogging.view.ts b/database/logging/TransactionLogging.view.ts index 7912c7e5d..e0a039a4b 100644 --- a/database/logging/TransactionLogging.view.ts +++ b/database/logging/TransactionLogging.view.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-unused-vars */ import { Transaction } from '../entity/Transaction' import { AbstractLoggingView } from './AbstractLogging.view' import { ContributionLoggingView } from './ContributionLogging.view' @@ -19,7 +18,6 @@ export class TransactionLoggingView extends AbstractLoggingView { super() } - // eslint-disable-next-line @typescript-eslint/no-explicit-any public toJSON(): any { return { id: this.self.id, diff --git a/database/logging/UserContactLogging.view.ts b/database/logging/UserContactLogging.view.ts index ebc05843a..e843ca738 100644 --- a/database/logging/UserContactLogging.view.ts +++ b/database/logging/UserContactLogging.view.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-unused-vars */ import { UserContact } from '../entity/UserContact' import { AbstractLoggingView } from './AbstractLogging.view' import { UserLoggingView } from './UserLogging.view' @@ -13,7 +12,6 @@ export class UserContactLoggingView extends AbstractLoggingView { super() } - // eslint-disable-next-line @typescript-eslint/no-explicit-any public toJSON(): any { return { id: this.self.id, diff --git a/database/logging/UserLogging.view.ts b/database/logging/UserLogging.view.ts index 839b0ad8b..375068ff7 100644 --- a/database/logging/UserLogging.view.ts +++ b/database/logging/UserLogging.view.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-unused-vars */ import { User } from '../entity/User' import { AbstractLoggingView } from './AbstractLogging.view' import { ContributionLoggingView } from './ContributionLogging.view' @@ -17,7 +16,6 @@ export class UserLoggingView extends AbstractLoggingView { super() } - // eslint-disable-next-line @typescript-eslint/no-explicit-any public toJSON(): any { return { id: this.self.id, diff --git a/database/logging/UserRoleLogging.view.ts b/database/logging/UserRoleLogging.view.ts index 19050367b..9b4914f15 100644 --- a/database/logging/UserRoleLogging.view.ts +++ b/database/logging/UserRoleLogging.view.ts @@ -7,7 +7,6 @@ export class UserRoleLoggingView extends AbstractLoggingView { super() } - // eslint-disable-next-line @typescript-eslint/no-explicit-any public toJSON(): any { return { id: this.self.id, diff --git a/database/migrations/0001-init_db.ts b/database/migrations/0001-init_db.ts index e26c2c1a7..b402c0f72 100644 --- a/database/migrations/0001-init_db.ts +++ b/database/migrations/0001-init_db.ts @@ -9,9 +9,6 @@ * databases. */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // write upgrade logic as parameter of queryFn await queryFn(` diff --git a/database/migrations/0002-add_settings.ts b/database/migrations/0002-add_settings.ts index ae9e72757..b3ee29cd9 100644 --- a/database/migrations/0002-add_settings.ts +++ b/database/migrations/0002-add_settings.ts @@ -3,9 +3,6 @@ * This migration adds the table `user_setting` in order to store all sorts of user configuration data */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(` CREATE TABLE IF NOT EXISTS \`user_setting\` ( diff --git a/database/migrations/0003-login_server_tables.ts b/database/migrations/0003-login_server_tables.ts index bb6f56ac8..6b87f1ffb 100644 --- a/database/migrations/0003-login_server_tables.ts +++ b/database/migrations/0003-login_server_tables.ts @@ -5,9 +5,6 @@ * `0004-login_server_data` which will fill the tables with the existing data */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(` CREATE TABLE IF NOT EXISTS \`login_app_access_tokens\` ( diff --git a/database/migrations/0004-login_server_data.ts b/database/migrations/0004-login_server_data.ts index 8c9f3497c..715256471 100644 --- a/database/migrations/0004-login_server_data.ts +++ b/database/migrations/0004-login_server_data.ts @@ -9,9 +9,6 @@ * NOTE: This migration does not delete the data when downgrading! */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - const LOGIN_SERVER_DB = 'gradido_login' export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { @@ -19,7 +16,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '${LOGIN_SERVER_DB}' `) if (loginDatabaseExists.length === 0) { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: no logger present console.log(`Skipping Login Server Database migration - Database ${LOGIN_SERVER_DB} not found`) return } @@ -62,6 +59,8 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis `) } -export async function downgrade(/* queryFn: (query: string, values?: any[]) => Promise> */) { +export async function downgrade( + /* queryFn: (query: string, values?: any[]) => Promise> */ +) { // EMPTY FUNCTION } diff --git a/database/migrations/0005-admin_tables.ts b/database/migrations/0005-admin_tables.ts index 6351d146e..832008970 100644 --- a/database/migrations/0005-admin_tables.ts +++ b/database/migrations/0005-admin_tables.ts @@ -3,9 +3,6 @@ * This migration adds the table `login_pending_tasks_admin` to store pending creations */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(` CREATE TABLE IF NOT EXISTS \`login_pending_tasks_admin\` ( diff --git a/database/migrations/0006-login_users_collation.ts b/database/migrations/0006-login_users_collation.ts index aa786ba34..2a730f5e7 100644 --- a/database/migrations/0006-login_users_collation.ts +++ b/database/migrations/0006-login_users_collation.ts @@ -5,9 +5,6 @@ * to also explicitly define it in the table */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // Explicitly change the charset and collate to the one used to then change it await queryFn('ALTER TABLE `login_users` CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;') diff --git a/database/migrations/0007-login_pending_tasks_delete.ts b/database/migrations/0007-login_pending_tasks_delete.ts index baf6f5191..47bb7bbed 100644 --- a/database/migrations/0007-login_pending_tasks_delete.ts +++ b/database/migrations/0007-login_pending_tasks_delete.ts @@ -6,13 +6,12 @@ * and dead entries */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn('DELETE FROM `login_pending_tasks`;') } -export async function downgrade(/* queryFn: (query: string, values?: any[]) => Promise> */) { +export async function downgrade( + /* queryFn: (query: string, values?: any[]) => Promise> */ +) { // cannot undelete things } diff --git a/database/migrations/0008-state_users_plug_holes.ts b/database/migrations/0008-state_users_plug_holes.ts index 3607c6233..c6be39701 100644 --- a/database/migrations/0008-state_users_plug_holes.ts +++ b/database/migrations/0008-state_users_plug_holes.ts @@ -6,9 +6,6 @@ * login_users. */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // Fill in missing emails from login_users await queryFn( @@ -21,6 +18,8 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis await queryFn(`DELETE FROM state_users WHERE email = ''`) } -export async function downgrade(/* queryFn: (query: string, values?: any[]) => Promise> */) { +export async function downgrade( + /* queryFn: (query: string, values?: any[]) => Promise> */ +) { // cannot undelete things } diff --git a/database/migrations/0009-login_users_plug_holes.ts b/database/migrations/0009-login_users_plug_holes.ts index 506f8934c..6df8aa724 100644 --- a/database/migrations/0009-login_users_plug_holes.ts +++ b/database/migrations/0009-login_users_plug_holes.ts @@ -5,9 +5,6 @@ * account is set as not yet activated */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // Generate a random private key where the required data is present (pubkey + password + passphrase). // Furthermore the email needs to be confirmed @@ -26,6 +23,8 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis ) } -export async function downgrade(/* queryFn: (query: string, values?: any[]) => Promise> */) { +export async function downgrade( + /* queryFn: (query: string, values?: any[]) => Promise> */ +) { // cannot undelete things } diff --git a/database/migrations/0010-login_users_state_users_sync.ts b/database/migrations/0010-login_users_state_users_sync.ts index dea9c6de7..1c326db54 100644 --- a/database/migrations/0010-login_users_state_users_sync.ts +++ b/database/migrations/0010-login_users_state_users_sync.ts @@ -4,9 +4,6 @@ * Copy missing data from login_users to state_users. */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // Copy data with intact private key await queryFn( @@ -43,6 +40,8 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis ) } -export async function downgrade(/* queryFn: (query: string, values?: any[]) => Promise> */) { +export async function downgrade( + /* queryFn: (query: string, values?: any[]) => Promise> */ +) { // cannot undelete things } diff --git a/database/migrations/0011-login_user_backups_plug_holes.ts b/database/migrations/0011-login_user_backups_plug_holes.ts index 87f38486d..5d53769e2 100644 --- a/database/migrations/0011-login_user_backups_plug_holes.ts +++ b/database/migrations/0011-login_user_backups_plug_holes.ts @@ -5,9 +5,6 @@ * delete the right one of the duplicate keys */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // Delete data with no reference in login_users table await queryFn(`DELETE FROM login_user_backups WHERE user_id NOT IN (SELECT id FROM login_users)`) @@ -16,6 +13,8 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis await queryFn(`DELETE FROM login_user_backups WHERE id IN (21, 103, 313, 325, 726, 750, 1098)`) } -export async function downgrade(/* queryFn: (query: string, values?: any[]) => Promise> */) { +export async function downgrade( + /* queryFn: (query: string, values?: any[]) => Promise> */ +) { // cannot undelete things } diff --git a/database/migrations/0012-login_user_backups_unify_wordlist.ts b/database/migrations/0012-login_user_backups_unify_wordlist.ts index 9825bb791..ad8244f66 100644 --- a/database/migrations/0012-login_user_backups_unify_wordlist.ts +++ b/database/migrations/0012-login_user_backups_unify_wordlist.ts @@ -5,9 +5,6 @@ * This also removes the trailing space */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - import fs from 'fs' import path from 'path' @@ -66,6 +63,8 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis }) } -export async function downgrade(/* queryFn: (query: string, values?: any[]) => Promise> */) { +export async function downgrade( + /* queryFn: (query: string, values?: any[]) => Promise> */ +) { // cannot transform things back } diff --git a/database/migrations/0013-drop_unused_tables.ts b/database/migrations/0013-drop_unused_tables.ts index 1097270f9..bb90db39f 100644 --- a/database/migrations/0013-drop_unused_tables.ts +++ b/database/migrations/0013-drop_unused_tables.ts @@ -5,9 +5,6 @@ * The migration reduces the amount of tables to 28 */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(`DROP TABLE \`login_app_access_tokens\`;`) await queryFn(`DROP TABLE \`pending_transactions\`;`) diff --git a/database/migrations/0014-drop_unused_tables_with_data.ts b/database/migrations/0014-drop_unused_tables_with_data.ts index af1e27cb4..4f8c47eb7 100644 --- a/database/migrations/0014-drop_unused_tables_with_data.ts +++ b/database/migrations/0014-drop_unused_tables_with_data.ts @@ -5,9 +5,6 @@ * The migration reduces the amount of tables to 16 */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(`DROP TABLE \`address_types\`;`) await queryFn(`DROP TABLE \`admin_errors\`;`) diff --git a/database/migrations/0015-admin_pending_creations.ts b/database/migrations/0015-admin_pending_creations.ts index c48d81792..d15bd84a7 100644 --- a/database/migrations/0015-admin_pending_creations.ts +++ b/database/migrations/0015-admin_pending_creations.ts @@ -7,9 +7,6 @@ * the new table to properly describe what it does */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // drop duplicate table, it was unused await queryFn('DROP TABLE `login_pending_tasks`;') diff --git a/database/migrations/0016-transaction_signatures.ts b/database/migrations/0016-transaction_signatures.ts index 37910e269..2cf1e7aa1 100644 --- a/database/migrations/0016-transaction_signatures.ts +++ b/database/migrations/0016-transaction_signatures.ts @@ -4,9 +4,6 @@ * combines its data with transaction_signatures. */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // Drop column `state_group_id` since it only contains "0" as value, no variation. // Furthermore it was not present in our model itself (meaning that newly created ) diff --git a/database/migrations/0017-combine_user_tables.ts b/database/migrations/0017-combine_user_tables.ts index c2f76374d..04be53615 100644 --- a/database/migrations/0017-combine_user_tables.ts +++ b/database/migrations/0017-combine_user_tables.ts @@ -4,9 +4,6 @@ * the `state_users` table, where the later is the target. */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // Drop column `group_id` since it contains uniform data which is not the same as the uniform data // on login_users. Since we do not need this data anyway, we sjust throw it away. diff --git a/database/migrations/0018-combine_login_user_backups_and_user_table.ts b/database/migrations/0018-combine_login_user_backups_and_user_table.ts index 9209e461d..2141017bd 100644 --- a/database/migrations/0018-combine_login_user_backups_and_user_table.ts +++ b/database/migrations/0018-combine_login_user_backups_and_user_table.ts @@ -4,9 +4,6 @@ * the `state_users` table, where the later is the target. */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // We only keep the passphrase, the mnemonic type is a constant, // since every passphrase was converted to mnemonic type 2 diff --git a/database/migrations/0019-replace_login_user_id_with_state_user_id.ts b/database/migrations/0019-replace_login_user_id_with_state_user_id.ts index cef608c29..719c05443 100644 --- a/database/migrations/0019-replace_login_user_id_with_state_user_id.ts +++ b/database/migrations/0019-replace_login_user_id_with_state_user_id.ts @@ -5,9 +5,6 @@ * The table affected is `login_email_opt_in` */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // Delete email opt in codes which can not be linked to an user await queryFn(` diff --git a/database/migrations/0020-rename_and_clean_state_users.ts b/database/migrations/0020-rename_and_clean_state_users.ts index 39dbfa093..5abda1dc9 100644 --- a/database/migrations/0020-rename_and_clean_state_users.ts +++ b/database/migrations/0020-rename_and_clean_state_users.ts @@ -4,9 +4,6 @@ * and removes columns with no meaningful value */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // rename `state_users` table to `users` await queryFn('RENAME TABLE `state_users` TO `users`;') diff --git a/database/migrations/0021-elopagebuys_fields_nullable.ts b/database/migrations/0021-elopagebuys_fields_nullable.ts index 14ba00b3a..dabe9d1e4 100644 --- a/database/migrations/0021-elopagebuys_fields_nullable.ts +++ b/database/migrations/0021-elopagebuys_fields_nullable.ts @@ -4,9 +4,6 @@ * `publisher_id`, `order_id`. `product_id`. */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( 'ALTER TABLE `login_elopage_buys` MODIFY COLUMN `affiliate_program_id` int(11) DEFAULT NULL;', diff --git a/database/migrations/0022-delete_decay_start_block.ts b/database/migrations/0022-delete_decay_start_block.ts index a31f9c441..22027933e 100644 --- a/database/migrations/0022-delete_decay_start_block.ts +++ b/database/migrations/0022-delete_decay_start_block.ts @@ -4,9 +4,6 @@ * we can delete it from the database */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // Remove transactions with type 9 (start decay block). This should affect exactly 1 row await queryFn(`DELETE FROM transactions WHERE transaction_type_id = 9;`) diff --git a/database/migrations/0023-users_disabled_soft_delete.ts b/database/migrations/0023-users_disabled_soft_delete.ts index d85c2f019..2e62d4b71 100644 --- a/database/migrations/0023-users_disabled_soft_delete.ts +++ b/database/migrations/0023-users_disabled_soft_delete.ts @@ -4,9 +4,6 @@ * a date as it is standard for soft delete fields */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // Create new `deletedAt` column await queryFn( diff --git a/database/migrations/0024-combine_transaction_tables.ts b/database/migrations/0024-combine_transaction_tables.ts index 5b8ec8be8..d9af6d96b 100644 --- a/database/migrations/0024-combine_transaction_tables.ts +++ b/database/migrations/0024-combine_transaction_tables.ts @@ -3,9 +3,6 @@ * Combine several transaction tables into one table with all data */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // Create new `user_id` column (former `state_user_id`), with a temporary default of null await queryFn( diff --git a/database/migrations/0025-emails_to_lower.ts b/database/migrations/0025-emails_to_lower.ts index 33f085e69..787d0dbfb 100644 --- a/database/migrations/0025-emails_to_lower.ts +++ b/database/migrations/0025-emails_to_lower.ts @@ -4,14 +4,10 @@ * This allows safe queries without any modificators */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn('UPDATE `users` SET `email` = LOWER(`email`);') } -// eslint-disable-next-line @typescript-eslint/no-unused-vars -export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) { +export async function downgrade(_queryFn: (query: string, values?: any[]) => Promise>) { // This migration cannot be revered } diff --git a/database/migrations/0026-combine_transaction_tables2.ts b/database/migrations/0026-combine_transaction_tables2.ts index b83c5e267..767465cfb 100644 --- a/database/migrations/0026-combine_transaction_tables2.ts +++ b/database/migrations/0026-combine_transaction_tables2.ts @@ -5,9 +5,6 @@ * each send-coins to two transactions per send-coin */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { /* * This migration has a possible incompatibility diff --git a/database/migrations/0027-clean_transaction_table.ts b/database/migrations/0027-clean_transaction_table.ts index 4a427e693..dc41bf288 100644 --- a/database/migrations/0027-clean_transaction_table.ts +++ b/database/migrations/0027-clean_transaction_table.ts @@ -6,9 +6,6 @@ * This migration has data loss */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // drop column `transaction_id`, it is not needed await queryFn('ALTER TABLE `transactions` DROP COLUMN IF EXISTS `transaction_id`;') diff --git a/database/migrations/0028-decimal_types.ts b/database/migrations/0028-decimal_types.ts index 742a370ba..1d9736456 100644 --- a/database/migrations/0028-decimal_types.ts +++ b/database/migrations/0028-decimal_types.ts @@ -18,9 +18,6 @@ * WARNING: This Migration must be run in TZ=UTC */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - import { Decimal } from 'decimal.js-light' // Set precision value @@ -40,13 +37,11 @@ interface Decay { duration: number | null } -/* eslint-disable no-unused-vars */ export enum TransactionTypeId { CREATION = 1, SEND = 2, RECEIVE = 3, } -/* eslint-enable no-unused-vars */ function decayFormula(value: Decimal, seconds: number): Decimal { return value.mul(new Decimal('0.99999997803504048973201202316767079413460520837376').pow(seconds)) diff --git a/database/migrations/0029-clean_transaction_table.ts b/database/migrations/0029-clean_transaction_table.ts index c47524b8e..9dcc30d29 100644 --- a/database/migrations/0029-clean_transaction_table.ts +++ b/database/migrations/0029-clean_transaction_table.ts @@ -6,9 +6,6 @@ * This migration has data loss */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // Delete columns diff --git a/database/migrations/0030-transaction_link.ts b/database/migrations/0030-transaction_link.ts index ee76c980d..c908c56f1 100644 --- a/database/migrations/0030-transaction_link.ts +++ b/database/migrations/0030-transaction_link.ts @@ -1,8 +1,5 @@ /* MIGRATION TO CREATE TRANSACTION_LINK TABLE */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(` CREATE TABLE \`transaction_links\` ( diff --git a/database/migrations/0031-remove_sendEmail_from_transaction_link.ts b/database/migrations/0031-remove_sendEmail_from_transaction_link.ts index 76b2ee742..fafb57e52 100644 --- a/database/migrations/0031-remove_sendEmail_from_transaction_link.ts +++ b/database/migrations/0031-remove_sendEmail_from_transaction_link.ts @@ -1,8 +1,5 @@ /* MIGRATION TO REMOVE sendEmail FIELD FROM TRANSACTION_LINK TABLE */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn('ALTER TABLE `transaction_links` DROP COLUMN `showEmail`;') } diff --git a/database/migrations/0032-add-transaction-link-to-transaction.ts b/database/migrations/0032-add-transaction-link-to-transaction.ts index 79cdf195a..f258b5fc1 100644 --- a/database/migrations/0032-add-transaction-link-to-transaction.ts +++ b/database/migrations/0032-add-transaction-link-to-transaction.ts @@ -1,8 +1,5 @@ /* MIGRATION TO ADD transactionLinkId FIELDTO TRANSACTION */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( 'ALTER TABLE `transactions` ADD COLUMN `transaction_link_id` int UNSIGNED DEFAULT NULL AFTER `linked_transaction_id`;', diff --git a/database/migrations/0033-add_referrer_id.ts b/database/migrations/0033-add_referrer_id.ts index e45d1faf7..393db172f 100644 --- a/database/migrations/0033-add_referrer_id.ts +++ b/database/migrations/0033-add_referrer_id.ts @@ -1,8 +1,5 @@ /* MIGRATION TO ADD referrer_id FIELD TO users */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( 'ALTER TABLE `users` ADD COLUMN `referrer_id` int UNSIGNED DEFAULT NULL AFTER `language`;', diff --git a/database/migrations/0034-drop_server_user_table.ts b/database/migrations/0034-drop_server_user_table.ts index be6b44489..a02711302 100644 --- a/database/migrations/0034-drop_server_user_table.ts +++ b/database/migrations/0034-drop_server_user_table.ts @@ -1,9 +1,6 @@ /* MIGRATION DROP server_users TABLE add isAdmin COLUMN to users TABLE */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn('ALTER TABLE `users` ADD COLUMN `is_admin` datetime DEFAULT NULL AFTER `language`;') diff --git a/database/migrations/0035-admin_pending_creations_decimal.ts b/database/migrations/0035-admin_pending_creations_decimal.ts index f76db7c97..71173072a 100644 --- a/database/migrations/0035-admin_pending_creations_decimal.ts +++ b/database/migrations/0035-admin_pending_creations_decimal.ts @@ -3,9 +3,6 @@ * - `memo` FIELD TYPE TO `varchar(255)`, collate `utf8mb4_unicode_ci` */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // rename `amount` to `amount_bigint` await queryFn( diff --git a/database/migrations/0036-unique_previous_in_transactions.ts b/database/migrations/0036-unique_previous_in_transactions.ts index f05b044bb..9241dd13a 100644 --- a/database/migrations/0036-unique_previous_in_transactions.ts +++ b/database/migrations/0036-unique_previous_in_transactions.ts @@ -1,9 +1,6 @@ /* MIGRATION TO SET previous COLUMN UNIQUE in TRANSACTION table */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn('ALTER TABLE `transactions` ADD UNIQUE(`previous`);') } diff --git a/database/migrations/0037-drop_user_setting_table.ts b/database/migrations/0037-drop_user_setting_table.ts index 50a78e104..e79480ac0 100644 --- a/database/migrations/0037-drop_user_setting_table.ts +++ b/database/migrations/0037-drop_user_setting_table.ts @@ -1,8 +1,5 @@ /* MIGRATION DROP user_setting TABLE */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn('DROP TABLE `user_setting`;') } diff --git a/database/migrations/0038-add_contribution_links_table.ts b/database/migrations/0038-add_contribution_links_table.ts index f983644cc..278cd3d6c 100644 --- a/database/migrations/0038-add_contribution_links_table.ts +++ b/database/migrations/0038-add_contribution_links_table.ts @@ -3,9 +3,6 @@ * This migration adds the table `contribution_links` in order to store all sorts of contribution_links data */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(` CREATE TABLE IF NOT EXISTS \`contribution_links\` ( diff --git a/database/migrations/0039-contributions_table.ts b/database/migrations/0039-contributions_table.ts index 50b147448..f1d7f4dcb 100644 --- a/database/migrations/0039-contributions_table.ts +++ b/database/migrations/0039-contributions_table.ts @@ -1,9 +1,6 @@ /* MIGRATION to rename ADMIN_PENDING_CREATION table and add columns */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn('RENAME TABLE `admin_pending_creations` TO `contributions`;') diff --git a/database/migrations/0040-add_contribution_link_id_to_user.ts b/database/migrations/0040-add_contribution_link_id_to_user.ts index ebe7896df..3a48a4331 100644 --- a/database/migrations/0040-add_contribution_link_id_to_user.ts +++ b/database/migrations/0040-add_contribution_link_id_to_user.ts @@ -1,8 +1,5 @@ /* MIGRATION TO ADD contribution_link_id FIELD TO users */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( 'ALTER TABLE `users` ADD COLUMN `contribution_link_id` int UNSIGNED DEFAULT NULL AFTER `referrer_id`;', diff --git a/database/migrations/0041-move_users_creation_date.ts b/database/migrations/0041-move_users_creation_date.ts index 27353a5b4..989f217d6 100644 --- a/database/migrations/0041-move_users_creation_date.ts +++ b/database/migrations/0041-move_users_creation_date.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - /* Move forward the creation date of the users by 1 or 2 hours, for which there are transactions created before their account creation. diff --git a/database/migrations/0042-update_transactions_for_blockchain.ts b/database/migrations/0042-update_transactions_for_blockchain.ts index d7b26abbd..0af89dd3d 100644 --- a/database/migrations/0042-update_transactions_for_blockchain.ts +++ b/database/migrations/0042-update_transactions_for_blockchain.ts @@ -1,6 +1,4 @@ /* MIGRATION for updating transactions from the past to follow the blockchain rules */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // split creation transaction with 3000 GDD created in one transaction what isn't allowed diff --git a/database/migrations/0043-add_event_protocol_table.ts b/database/migrations/0043-add_event_protocol_table.ts index c3669f857..16a9fb28d 100644 --- a/database/migrations/0043-add_event_protocol_table.ts +++ b/database/migrations/0043-add_event_protocol_table.ts @@ -3,9 +3,6 @@ * This migration adds the table `event_protocol` in order to store all sorts of business event data */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(` CREATE TABLE IF NOT EXISTS \`event_protocol\` ( diff --git a/database/migrations/0044-insert_missing_contributions.ts b/database/migrations/0044-insert_missing_contributions.ts index 2435cdd1d..d98223bfb 100644 --- a/database/migrations/0044-insert_missing_contributions.ts +++ b/database/migrations/0044-insert_missing_contributions.ts @@ -1,8 +1,5 @@ /* MIGRATION TO INSERT contributions for all transactions with type creation that do not have a contribution yet */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( `INSERT INTO contributions diff --git a/database/migrations/0045-add_denied_type_and_status_to_contributions.ts b/database/migrations/0045-add_denied_type_and_status_to_contributions.ts index b3653589b..a448d04e1 100644 --- a/database/migrations/0045-add_denied_type_and_status_to_contributions.ts +++ b/database/migrations/0045-add_denied_type_and_status_to_contributions.ts @@ -1,9 +1,6 @@ /* MIGRATION TO ADD denied_by, denied_at, contribution_type and contrinution_status FIELDS TO contributions */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( 'ALTER TABLE `contributions` ADD COLUMN `denied_at` datetime DEFAULT NULL AFTER `confirmed_at`;', diff --git a/database/migrations/0046-adapt_users_table_for_gradidoid.ts b/database/migrations/0046-adapt_users_table_for_gradidoid.ts index 8e8372efa..b16452c19 100644 --- a/database/migrations/0046-adapt_users_table_for_gradidoid.ts +++ b/database/migrations/0046-adapt_users_table_for_gradidoid.ts @@ -4,9 +4,6 @@ * new table `user_contacts` */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - import { v4 as uuidv4 } from 'uuid' export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { diff --git a/database/migrations/0047-messages_tables.ts b/database/migrations/0047-messages_tables.ts index 36fa42a8e..d750c17bb 100644 --- a/database/migrations/0047-messages_tables.ts +++ b/database/migrations/0047-messages_tables.ts @@ -5,8 +5,6 @@ * This is done to keep all data in the same place and is to be understood in conjunction with the next migration * `0046-messages_tables` which will fill the tables with the existing data */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(` diff --git a/database/migrations/0048-add_is_moderator_to_contribution_messages.ts b/database/migrations/0048-add_is_moderator_to_contribution_messages.ts index ff2e645c3..a20d4e7ca 100644 --- a/database/migrations/0048-add_is_moderator_to_contribution_messages.ts +++ b/database/migrations/0048-add_is_moderator_to_contribution_messages.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( `ALTER TABLE \`contribution_messages\` ADD COLUMN \`is_moderator\` boolean NOT NULL DEFAULT false;`, diff --git a/database/migrations/0049-add_user_contacts_table.ts b/database/migrations/0049-add_user_contacts_table.ts index acdd1af61..706d4d443 100644 --- a/database/migrations/0049-add_user_contacts_table.ts +++ b/database/migrations/0049-add_user_contacts_table.ts @@ -4,9 +4,6 @@ * new table `user_contacts` */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(` CREATE TABLE IF NOT EXISTS \`user_contacts\` ( diff --git a/database/migrations/0050-add_messageId_to_event_protocol.ts b/database/migrations/0050-add_messageId_to_event_protocol.ts index ccef98688..12e3e5424 100644 --- a/database/migrations/0050-add_messageId_to_event_protocol.ts +++ b/database/migrations/0050-add_messageId_to_event_protocol.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( `ALTER TABLE \`event_protocol\` ADD COLUMN \`message_id\` int(10) unsigned NULL DEFAULT NULL;`, diff --git a/database/migrations/0051-add_delete_by_to_contributions.ts b/database/migrations/0051-add_delete_by_to_contributions.ts index 21d0eda97..9f9f20a04 100644 --- a/database/migrations/0051-add_delete_by_to_contributions.ts +++ b/database/migrations/0051-add_delete_by_to_contributions.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( `ALTER TABLE \`contributions\` ADD COLUMN \`deleted_by\` int(10) unsigned DEFAULT NULL;`, diff --git a/database/migrations/0052-add_updated_at_to_contributions.ts b/database/migrations/0052-add_updated_at_to_contributions.ts index e7cc5b7b4..dd6070156 100644 --- a/database/migrations/0052-add_updated_at_to_contributions.ts +++ b/database/migrations/0052-add_updated_at_to_contributions.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( `ALTER TABLE \`contributions\` ADD COLUMN \`updated_at\` datetime DEFAULT NULL AFTER \`transaction_id\`;`, diff --git a/database/migrations/0053-change_password_encryption.ts b/database/migrations/0053-change_password_encryption.ts index 635109430..10ca37390 100644 --- a/database/migrations/0053-change_password_encryption.ts +++ b/database/migrations/0053-change_password_encryption.ts @@ -3,9 +3,6 @@ * This migration adds and renames columns in the table `users` */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn('ALTER TABLE users RENAME COLUMN created TO created_at;') await queryFn('ALTER TABLE users RENAME COLUMN deletedAt TO deleted_at;') diff --git a/database/migrations/0054-recalculate_balance_and_decay.ts b/database/migrations/0054-recalculate_balance_and_decay.ts index 7c567c36a..41a1a2382 100644 --- a/database/migrations/0054-recalculate_balance_and_decay.ts +++ b/database/migrations/0054-recalculate_balance_and_decay.ts @@ -10,11 +10,7 @@ * WARNING: This Migration must be run in TZ=UTC */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable no-unused-vars */ - -import fs from 'fs' +import fs from 'node:fs' import { Decimal } from 'decimal.js-light' // Set precision value @@ -94,7 +90,9 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis logFile, `email;first_name;last_name;affected_transactions;new_balance;new_decay;old_balance;old_decay;delta;\n`, (err) => { - if (err) throw err + if (err) { + throw err + } }, ) @@ -144,7 +142,9 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis transaction.dec_balance, )};\n`, (err) => { - if (err) throw err + if (err) { + throw err + } }, ) } @@ -156,5 +156,6 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis } } -/* eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function */ -export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) {} +export async function downgrade(_queryFn: (query: string, values?: any[]) => Promise>) { + // Not needed +} diff --git a/database/migrations/0055-consistent_deleted_users.ts b/database/migrations/0055-consistent_deleted_users.ts index 93d5cb575..a0623c921 100644 --- a/database/migrations/0055-consistent_deleted_users.ts +++ b/database/migrations/0055-consistent_deleted_users.ts @@ -1,8 +1,5 @@ /* MIGRATION TO soft delete user contacts of soft deleted users */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(` UPDATE user_contacts LEFT JOIN users ON users.email_id = user_contacts.id @@ -11,5 +8,6 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis AND users.deleted_at IS NOT NULL;`) } -/* eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function */ -export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) {} +export async function downgrade(_queryFn: (query: string, values?: any[]) => Promise>) { + // Not needed +} diff --git a/database/migrations/0056-consistent_transactions_table.ts b/database/migrations/0056-consistent_transactions_table.ts index 0d8721f07..0f8a4148e 100644 --- a/database/migrations/0056-consistent_transactions_table.ts +++ b/database/migrations/0056-consistent_transactions_table.ts @@ -1,10 +1,9 @@ /* MIGRATION TO add users that have a transaction but do not exist */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -import { v4 as uuidv4 } from 'uuid' import { OkPacket } from 'mysql' +import { v4 as uuidv4 } from 'uuid' + export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { const missingUserIds = await queryFn(` SELECT user_id FROM transactions @@ -34,5 +33,6 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis } } -/* eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function */ -export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) {} +export async function downgrade(_queryFn: (query: string, values?: any[]) => Promise>) { + // Not needed +} diff --git a/database/migrations/0057-clear_old_password_junk.ts b/database/migrations/0057-clear_old_password_junk.ts index 3e6f3f76a..6b9f803d8 100644 --- a/database/migrations/0057-clear_old_password_junk.ts +++ b/database/migrations/0057-clear_old_password_junk.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn('ALTER TABLE users DROP COLUMN public_key;') await queryFn('ALTER TABLE users DROP COLUMN privkey;') diff --git a/database/migrations/0058-add_communities_table.ts b/database/migrations/0058-add_communities_table.ts index 1e5bb5084..ea5667d7e 100644 --- a/database/migrations/0058-add_communities_table.ts +++ b/database/migrations/0058-add_communities_table.ts @@ -3,9 +3,6 @@ * This migration creates the `community` and 'communityfederation' tables in the `apollo` database (`gradido_community`). */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(` CREATE TABLE communities ( diff --git a/database/migrations/0059-add_hide_amount_to_users.ts b/database/migrations/0059-add_hide_amount_to_users.ts index d06e00559..7d91ab52d 100644 --- a/database/migrations/0059-add_hide_amount_to_users.ts +++ b/database/migrations/0059-add_hide_amount_to_users.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn('ALTER TABLE users ADD COLUMN hideAmountGDD bool DEFAULT false;') await queryFn('ALTER TABLE users ADD COLUMN hideAmountGDT bool DEFAULT false;') diff --git a/database/migrations/0060-update_communities_table.ts b/database/migrations/0060-update_communities_table.ts index c1268850a..55f62d25f 100644 --- a/database/migrations/0060-update_communities_table.ts +++ b/database/migrations/0060-update_communities_table.ts @@ -3,9 +3,6 @@ * This migration creates the `community` and 'communityfederation' tables in the `apollo` database (`gradido_community`). */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( 'ALTER TABLE `communities` MODIFY COLUMN `last_announced_at` datetime(3) AFTER `end_point`;', diff --git a/database/migrations/0061-event_refactoring.ts b/database/migrations/0061-event_refactoring.ts index 019d3272b..0c341032a 100644 --- a/database/migrations/0061-event_refactoring.ts +++ b/database/migrations/0061-event_refactoring.ts @@ -4,9 +4,6 @@ * It renames the table to `event`, introduces new fields and renames others. */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn('RENAME TABLE `event_protocol` TO `events`;') await queryFn('ALTER TABLE `events` RENAME COLUMN `user_id` TO `affected_user_id`;') diff --git a/database/migrations/0062-event_contribution_confirm.ts b/database/migrations/0062-event_contribution_confirm.ts index 97635b359..abd79d8d5 100644 --- a/database/migrations/0062-event_contribution_confirm.ts +++ b/database/migrations/0062-event_contribution_confirm.ts @@ -4,9 +4,6 @@ * to ADMIN_CONTRIBUTION_CONFIRM */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( 'UPDATE `events` SET `type` = "ADMIN_CONTRIBUTION_CONFIRM" WHERE `type` = "CONTRIBUTION_CONFIRM";', diff --git a/database/migrations/0063-event_link_fields.ts b/database/migrations/0063-event_link_fields.ts index 3b383ad07..d46e25454 100644 --- a/database/migrations/0063-event_link_fields.ts +++ b/database/migrations/0063-event_link_fields.ts @@ -5,9 +5,6 @@ * new fields. */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( 'ALTER TABLE `events` ADD COLUMN `involved_transaction_link_id` int(10) unsigned DEFAULT NULL AFTER `involved_contribution_message_id`;', diff --git a/database/migrations/0064-event_rename.ts b/database/migrations/0064-event_rename.ts index 992b30de9..9730b817f 100644 --- a/database/migrations/0064-event_rename.ts +++ b/database/migrations/0064-event_rename.ts @@ -4,9 +4,6 @@ * naming conventions. */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( 'UPDATE `events` SET `type` = "USER_ACTIVATE_ACCOUNT" WHERE `type` = "ACTIVATE_ACCOUNT";', diff --git a/database/migrations/0065-refactor_communities_table.ts b/database/migrations/0065-refactor_communities_table.ts index 06f5b3990..fda02a92d 100644 --- a/database/migrations/0065-refactor_communities_table.ts +++ b/database/migrations/0065-refactor_communities_table.ts @@ -3,9 +3,6 @@ * This migration creates the `community` and 'communityfederation' tables in the `apollo` database (`gradido_community`). */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(`RENAME TABLE communities TO federated_communities;`) await queryFn(` diff --git a/database/migrations/0066-x-community-sendcoins-transactions_table.ts b/database/migrations/0066-x-community-sendcoins-transactions_table.ts index 425248c22..137bebcf3 100644 --- a/database/migrations/0066-x-community-sendcoins-transactions_table.ts +++ b/database/migrations/0066-x-community-sendcoins-transactions_table.ts @@ -1,8 +1,5 @@ /* MIGRATION TO add users that have a transaction but do not exist */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( 'ALTER TABLE `transactions` MODIFY COLUMN `previous` int(10) unsigned DEFAULT NULL NULL AFTER `id`;', diff --git a/database/migrations/0067-private_key_in_community_table.ts b/database/migrations/0067-private_key_in_community_table.ts index f36e68b16..1fbaddfaf 100644 --- a/database/migrations/0067-private_key_in_community_table.ts +++ b/database/migrations/0067-private_key_in_community_table.ts @@ -3,9 +3,6 @@ * This migration adds a field for the private key in the community.table */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( 'ALTER TABLE `communities` ADD COLUMN `private_key` binary(64) DEFAULT NULL AFTER `public_key`;', diff --git a/database/migrations/0068-community_tables_public_key_length.ts b/database/migrations/0068-community_tables_public_key_length.ts index d5d047c26..8c9c6d151 100644 --- a/database/migrations/0068-community_tables_public_key_length.ts +++ b/database/migrations/0068-community_tables_public_key_length.ts @@ -3,9 +3,6 @@ * This migration corrects the length of the saved public keys to 32 as this is the length it is generated for. */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // federated communities await queryFn('DROP INDEX `public_api_key` ON `federated_communities`;') diff --git a/database/migrations/0069-add_user_roles_table.ts b/database/migrations/0069-add_user_roles_table.ts index 1e774d05f..0040843b3 100644 --- a/database/migrations/0069-add_user_roles_table.ts +++ b/database/migrations/0069-add_user_roles_table.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(` CREATE TABLE user_roles ( diff --git a/database/migrations/0070-add_dlt_transactions_table.ts b/database/migrations/0070-add_dlt_transactions_table.ts index 4249edf0f..bfffa7175 100644 --- a/database/migrations/0070-add_dlt_transactions_table.ts +++ b/database/migrations/0070-add_dlt_transactions_table.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(` CREATE TABLE dlt_transactions ( diff --git a/database/migrations/0071-add-pending_transactions-table.ts b/database/migrations/0071-add-pending_transactions-table.ts index ef602bb72..e9f61a873 100644 --- a/database/migrations/0071-add-pending_transactions-table.ts +++ b/database/migrations/0071-add-pending_transactions-table.ts @@ -1,8 +1,5 @@ /* MIGRATION TO add new pending_transactions table */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(` CREATE TABLE pending_transactions ( diff --git a/database/migrations/0072-add_communityuuid_to_transactions_table.ts b/database/migrations/0072-add_communityuuid_to_transactions_table.ts index 22e7c36eb..5ff33da4e 100644 --- a/database/migrations/0072-add_communityuuid_to_transactions_table.ts +++ b/database/migrations/0072-add_communityuuid_to_transactions_table.ts @@ -1,8 +1,5 @@ /* MIGRATION TO add users that have a transaction but do not exist */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( 'ALTER TABLE `transactions` ADD COLUMN `user_community_uuid` char(36) DEFAULT NULL NULL AFTER `user_id`;', diff --git a/database/migrations/0073-introduce_foreign_user_in_users_table.ts b/database/migrations/0073-introduce_foreign_user_in_users_table.ts index 96bc07335..e94e135f6 100644 --- a/database/migrations/0073-introduce_foreign_user_in_users_table.ts +++ b/database/migrations/0073-introduce_foreign_user_in_users_table.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn('ALTER TABLE `users` DROP KEY IF EXISTS `gradido_id`;') await queryFn('ALTER TABLE `users` DROP INDEX IF EXISTS `gradido_id`;') diff --git a/database/migrations/0074-insert_communityuuid in_existing_users.ts b/database/migrations/0074-insert_communityuuid in_existing_users.ts index 11ddf7096..09c28298f 100644 --- a/database/migrations/0074-insert_communityuuid in_existing_users.ts +++ b/database/migrations/0074-insert_communityuuid in_existing_users.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { // read the community uuid of the homeCommunity const result = await queryFn(`SELECT c.community_uuid from communities as c WHERE c.foreign = 0`) diff --git a/database/migrations/0075-contribution_message_add_index.ts b/database/migrations/0075-contribution_message_add_index.ts index 6348d8e99..f8548992d 100644 --- a/database/migrations/0075-contribution_message_add_index.ts +++ b/database/migrations/0075-contribution_message_add_index.ts @@ -3,9 +3,6 @@ * This migration adds a field for the private key in the community.table */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn('ALTER TABLE `contribution_messages` ADD INDEX(`contribution_id`);') } diff --git a/database/migrations/0077-add_resubmission_date_contribution_message.ts b/database/migrations/0077-add_resubmission_date_contribution_message.ts index 598068b2f..c06cbd882 100644 --- a/database/migrations/0077-add_resubmission_date_contribution_message.ts +++ b/database/migrations/0077-add_resubmission_date_contribution_message.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( `ALTER TABLE \`contribution_messages\` ADD COLUMN \`resubmission_at\` datetime NULL DEFAULT NULL AFTER \`deleted_by\`;`, diff --git a/database/migrations/0078-move_resubmission_date.ts b/database/migrations/0078-move_resubmission_date.ts index 07a226540..78b56472c 100644 --- a/database/migrations/0078-move_resubmission_date.ts +++ b/database/migrations/0078-move_resubmission_date.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( `ALTER TABLE \`contributions\` ADD COLUMN \`resubmission_at\` datetime NULL DEFAULT NULL AFTER \`created_at\`;`, diff --git a/database/migrations/0082-introduce_gms_registration.ts b/database/migrations/0082-introduce_gms_registration.ts index b24be2bb5..ecefdb95c 100644 --- a/database/migrations/0082-introduce_gms_registration.ts +++ b/database/migrations/0082-introduce_gms_registration.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( 'ALTER TABLE `users` MODIFY COLUMN `foreign` tinyint(1) NOT NULL DEFAULT 0 AFTER `id`;', diff --git a/database/migrations/0083-join_community_federated_communities.ts b/database/migrations/0083-join_community_federated_communities.ts index ca40e28d4..a2f794bc6 100644 --- a/database/migrations/0083-join_community_federated_communities.ts +++ b/database/migrations/0083-join_community_federated_communities.ts @@ -1,3 +1,7 @@ -export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) {} +export async function upgrade(_queryFn: (query: string, values?: any[]) => Promise>) { + // Not needed +} -export async function downgrade(queryFn: (query: string, values?: any[]) => Promise>) {} +export async function downgrade(_queryFn: (query: string, values?: any[]) => Promise>) { + // Not needed +} diff --git a/database/migrations/0084-introduce_humhub_registration.ts b/database/migrations/0084-introduce_humhub_registration.ts index 858283602..084088614 100644 --- a/database/migrations/0084-introduce_humhub_registration.ts +++ b/database/migrations/0084-introduce_humhub_registration.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( 'ALTER TABLE `users` ADD COLUMN IF NOT EXISTS `humhub_allowed` tinyint(1) NOT NULL DEFAULT 0 AFTER `gms_registered_at`;', diff --git a/database/migrations/0085-add_index_transactions_user_id.ts b/database/migrations/0085-add_index_transactions_user_id.ts index c4cb02431..6cb5cf16e 100644 --- a/database/migrations/0085-add_index_transactions_user_id.ts +++ b/database/migrations/0085-add_index_transactions_user_id.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn('CREATE INDEX user_id ON transactions (user_id);') } diff --git a/database/migrations/0086-add_community_location.ts b/database/migrations/0086-add_community_location.ts index 5aeaec233..494337c70 100644 --- a/database/migrations/0086-add_community_location.ts +++ b/database/migrations/0086-add_community_location.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn( 'ALTER TABLE `communities` ADD COLUMN IF NOT EXISTS `location` geometry DEFAULT NULL NULL AFTER `gms_api_key`;', diff --git a/database/migrations/0087-add_index_on_user_roles.ts b/database/migrations/0087-add_index_on_user_roles.ts index 40d49ccbf..de0bebe87 100644 --- a/database/migrations/0087-add_index_on_user_roles.ts +++ b/database/migrations/0087-add_index_on_user_roles.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn('ALTER TABLE `user_roles` ADD INDEX user_id (user_id);') } diff --git a/database/migrations/0088-create_project_brandings.ts b/database/migrations/0088-create_project_brandings.ts index 9a0c56dc2..763005a36 100644 --- a/database/migrations/0088-create_project_brandings.ts +++ b/database/migrations/0088-create_project_brandings.ts @@ -2,8 +2,6 @@ * * This migration creates the `community` and 'communityfederation' tables in the `apollo` database (`gradido_community`). */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(` diff --git a/database/migrations/0089-add_openai_threads.ts b/database/migrations/0089-add_openai_threads.ts index d9dbed140..3d5865f91 100644 --- a/database/migrations/0089-add_openai_threads.ts +++ b/database/migrations/0089-add_openai_threads.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -/* eslint-disable @typescript-eslint/no-explicit-any */ - export async function upgrade(queryFn: (query: string, values?: any[]) => Promise>) { await queryFn(` CREATE TABLE openai_threads ( diff --git a/database/package.json b/database/package.json index ed4115b78..e12e7700a 100644 --- a/database/package.json +++ b/database/package.json @@ -13,31 +13,21 @@ "up": "cross-env TZ=UTC node build/src/index.js up", "down": "cross-env TZ=UTC node build/src/index.js down", "reset": "cross-env TZ=UTC node build/src/index.js reset", + "lint": "biome check --error-on-warnings .", + "lint:fix": "biome check --error-on-warnings . --write", "clear": "cross-env TZ=UTC tsx src/index.ts clear", "dev_up": "cross-env TZ=UTC tsx src/index.ts up", "dev_down": "cross-env TZ=UTC tsx src/index.ts down", "dev_reset": "cross-env TZ=UTC tsx src/index.ts reset", - "lint": "eslint --max-warnings=0 --ext .js,.ts .", "up:backend_test": "cross-env TZ=UTC DB_DATABASE=gradido_test_backend tsx src/index.ts up", "up:federation_test": "cross-env TZ=UTC DB_DATABASE=gradido_test_federation tsx src/index.ts up", "up:dht_test": "cross-env TZ=UTC DB_DATABASE=gradido_test_dht tsx src/index.ts up" }, "devDependencies": { - "@eslint-community/eslint-plugin-eslint-comments": "^3.2.1", + "@biomejs/biome": "1.9.4", "@types/faker": "^5.5.9", "@types/geojson": "^7946.0.13", "@types/node": "^17.0.21", - "@typescript-eslint/eslint-plugin": "^5.57.1", - "@typescript-eslint/parser": "^5.57.1", - "eslint": "^8.37.0", - "eslint-config-prettier": "^8.8.0", - "eslint-config-standard": "^17.0.0", - "eslint-import-resolver-typescript": "^3.5.4", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-n": "^15.7.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-security": "^1.7.1", "mkdirp": "^3.0.1", "ncp": "^2.0.0", "prettier": "^2.8.7", diff --git a/database/src/clear.ts b/database/src/clear.ts index 67b456c98..076d30922 100644 --- a/database/src/clear.ts +++ b/database/src/clear.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-console */ import { Connection, createConnection } from 'mysql2/promise' import { CONFIG } from './config' @@ -49,6 +48,7 @@ if (require.main === module) { process.exit(0) }) .catch((error) => { + // biome-ignore lint/suspicious/noConsole: no logger present console.error('Failed to clear database:', error) process.exit(1) }) diff --git a/database/src/config/detectLastDBVersion.ts b/database/src/config/detectLastDBVersion.ts index bc9e7766e..2dd2d9ace 100644 --- a/database/src/config/detectLastDBVersion.ts +++ b/database/src/config/detectLastDBVersion.ts @@ -1,5 +1,5 @@ -import path from 'path' import fs from 'fs' +import path from 'path' // Define the regular expression pattern once const DB_VERSION_PATTERN = /^(\d{4}-[a-z0-9-_]+)/ diff --git a/database/src/config/index.ts b/database/src/config/index.ts index 1a5fb08ed..985cf5f18 100644 --- a/database/src/config/index.ts +++ b/database/src/config/index.ts @@ -1,5 +1,3 @@ -/* eslint-disable n/no-process-env */ - import dotenv from 'dotenv' dotenv.config() diff --git a/database/src/index.ts b/database/src/index.ts index a4034e3d9..ca5878f1a 100644 --- a/database/src/index.ts +++ b/database/src/index.ts @@ -1,11 +1,11 @@ -import { DatabaseState, getDatabaseState } from './prepare' import { CONFIG } from './config' +import { DatabaseState, getDatabaseState } from './prepare' +import path from 'node:path' import { createPool } from 'mysql' import { Migration } from 'ts-mysql-migrate' import { clearDatabase } from './clear' import { latestDbVersion } from './config/detectLastDBVersion' -import path from 'node:path' const run = async (command: string) => { if (command === 'clear') { @@ -33,7 +33,7 @@ const run = async (command: string) => { } if (state === DatabaseState.SAME_VERSION) { if (command === 'up') { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: no logger present console.log('Database is up to date') return } @@ -72,17 +72,17 @@ const run = async (command: string) => { throw new Error(`Unsupported command ${command}`) } if (command === 'reset') { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: no logger present console.log('Database was reset') } else { const currentDbVersion = await migration.getLastVersion() - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: no logger present console.log(`Database was ${command} migrated to version: ${currentDbVersion.fileName}`) if (latestDbVersion === currentDbVersion.fileName.split('.')[0]) { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: no logger present console.log('Database is now up to date') } else { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: no logger present console.log('The latest database version is: ', latestDbVersion) } } @@ -93,7 +93,7 @@ const run = async (command: string) => { run(process.argv[2]) .catch((err) => { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: no logger present console.log(err) process.exit(1) }) diff --git a/database/src/prepare.ts b/database/src/prepare.ts index ee60fc496..00e873fde 100644 --- a/database/src/prepare.ts +++ b/database/src/prepare.ts @@ -1,5 +1,5 @@ /* eslint-disable no-unused-vars */ -import { Connection, createConnection, ResultSetHeader, RowDataPacket } from 'mysql2/promise' +import { Connection, ResultSetHeader, RowDataPacket, createConnection } from 'mysql2/promise' import { CONFIG } from './config' import { latestDbVersion } from './config/detectLastDBVersion' @@ -19,7 +19,9 @@ async function connectToDatabaseServer(): Promise { user: CONFIG.DB_USER, password: CONFIG.DB_PASSWORD, }) - } catch (error) { + } catch (e) { + // biome-ignore lint/suspicious/noConsole: no logger present + console.log('could not connect to database server', e) return null } } @@ -36,29 +38,40 @@ export const getDatabaseState = async (): Promise => { DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci;`) + /* LEGACY CODE + import { RowDataPacket } from 'mysql2/promise' + // Check if old migration table is present, delete if needed + const [rows] = await con.query(`SHOW TABLES FROM \`${CONFIG.DB_DATABASE}\` LIKE 'migrations';`) + if ((rows).length > 0) { + const [rows] = await con.query( + `SHOW COLUMNS FROM \`${CONFIG.DB_DATABASE}\`.\`migrations\` LIKE 'db_version';`, + ) + if ((rows).length > 0) { + await con.query(`DROP TABLE \`${CONFIG.DB_DATABASE}\`.\`migrations\``) + + console.log('Found and dropped old migrations table') + } + */ if (result.affectedRows === 1) { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: no logger present console.log(`Database ${CONFIG.DB_DATABASE} created`) return DatabaseState.LOWER_VERSION } await connection.query(`USE ${CONFIG.DB_DATABASE}`) - try { - // check if the database is up to date - const [rows] = await connection.query( - `SELECT * FROM ${CONFIG.MIGRATIONS_TABLE} ORDER BY version DESC LIMIT 1`, - ) - if (rows.length === 0) { - return DatabaseState.LOWER_VERSION - } - connection.destroy() - const dbVersion = rows[0].fileName.split('.')[0] - return dbVersion === latestDbVersion - ? DatabaseState.SAME_VERSION - : dbVersion < latestDbVersion - ? DatabaseState.LOWER_VERSION - : DatabaseState.HIGHER_VERSION - } catch (error) { + + // check if the database is up to date + const [rows] = await connection.query( + `SELECT * FROM ${CONFIG.MIGRATIONS_TABLE} ORDER BY version DESC LIMIT 1`, + ) + if (rows.length === 0) { return DatabaseState.LOWER_VERSION } + connection.destroy() + const dbVersion = rows[0].fileName.split('.')[0] + return dbVersion === latestDbVersion + ? DatabaseState.SAME_VERSION + : dbVersion < latestDbVersion + ? DatabaseState.LOWER_VERSION + : DatabaseState.HIGHER_VERSION } diff --git a/database/src/typeorm/GeometryTransformer.ts b/database/src/typeorm/GeometryTransformer.ts index 3598c493f..bc80d256b 100644 --- a/database/src/typeorm/GeometryTransformer.ts +++ b/database/src/typeorm/GeometryTransformer.ts @@ -1,8 +1,8 @@ -/* eslint-disable camelcase */ -import { Geometry as wkx_Geometry } from 'wkx' import { Geometry } from 'geojson' import { ValueTransformer } from 'typeorm/decorator/options/ValueTransformer' +import { Geometry as wkx_Geometry } from 'wkx' + /** * TypeORM transformer to convert GeoJSON to MySQL WKT (Well Known Text) e.g. POINT(LAT, LON) and back */ diff --git a/database/tsconfig.json b/database/tsconfig.json index 445b9d11f..37347b875 100644 --- a/database/tsconfig.json +++ b/database/tsconfig.json @@ -49,7 +49,7 @@ // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ // "rootDirs": [".", "../database"], /* 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": [], /* Type declaration files to be included in compilation. */ + "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. */ diff --git a/database/yarn.lock b/database/yarn.lock index c07fbe5a1..03a87b110 100644 --- a/database/yarn.lock +++ b/database/yarn.lock @@ -9,6 +9,60 @@ dependencies: regenerator-runtime "^0.13.11" +"@biomejs/biome@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-1.9.4.tgz#89766281cbc3a0aae865a7ff13d6aaffea2842bf" + integrity sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog== + optionalDependencies: + "@biomejs/cli-darwin-arm64" "1.9.4" + "@biomejs/cli-darwin-x64" "1.9.4" + "@biomejs/cli-linux-arm64" "1.9.4" + "@biomejs/cli-linux-arm64-musl" "1.9.4" + "@biomejs/cli-linux-x64" "1.9.4" + "@biomejs/cli-linux-x64-musl" "1.9.4" + "@biomejs/cli-win32-arm64" "1.9.4" + "@biomejs/cli-win32-x64" "1.9.4" + +"@biomejs/cli-darwin-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz#dfa376d23a54a2d8f17133c92f23c1bf2e62509f" + integrity sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw== + +"@biomejs/cli-darwin-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz#eafc2ce3849d385fc02238aad1ca4a73395a64d9" + integrity sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg== + +"@biomejs/cli-linux-arm64-musl@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz#d780c3e01758fc90f3268357e3f19163d1f84fca" + integrity sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA== + +"@biomejs/cli-linux-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz#8ed1dd0e89419a4b66a47f95aefb8c46ae6041c9" + integrity sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g== + +"@biomejs/cli-linux-x64-musl@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz#f36982b966bd671a36671e1de4417963d7db15fb" + integrity sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg== + +"@biomejs/cli-linux-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz#a0a7f56680c76b8034ddc149dbf398bdd3a462e8" + integrity sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg== + +"@biomejs/cli-win32-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz#e2ef4e0084e76b7e26f0fc887c5ef1265ea56200" + integrity sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg== + +"@biomejs/cli-win32-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz#4c7afa90e3970213599b4095e62f87e5972b2340" + integrity sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA== + "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -141,65 +195,6 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz#b17a2171f9074df9e91bfb07ef99a892ac06412a" integrity sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg== -"@eslint-community/eslint-plugin-eslint-comments@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.1.tgz#3c65061e27f155eae3744c3b30c5a8253a959040" - integrity sha512-/HZbjIGaVO2zLlWX3gRgiHmKRVvvqrC0zVu3eXnIj1ORxoyfGSj50l0PfDfqihyZAqrDYzSMdJesXzFjvAoiLQ== - dependencies: - escape-string-regexp "^1.0.5" - ignore "^5.2.4" - -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.4.0": - version "4.5.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" - integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== - -"@eslint/eslintrc@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" - integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.5.2" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.42.0": - version "8.42.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.42.0.tgz#484a1d638de2911e6f5a30c12f49c7e4a3270fb6" - integrity sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw== - -"@humanwhocodes/config-array@^0.11.10": - version "0.11.10" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" - integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - "@jridgewell/resolve-uri@^3.0.3": version "3.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" @@ -218,39 +213,6 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@pkgr/utils@^2.3.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.1.tgz#adf291d0357834c410ce80af16e711b56c7b1cd3" - integrity sha512-JOqwkgFEyi+OROIyq7l4Jy28h/WwhDnG/cPkXG2Z1iFbubB6jsHW1NDvmyOzTBxHr3yg68YGirmh1JUgMqa+9w== - dependencies: - cross-spawn "^7.0.3" - fast-glob "^3.2.12" - is-glob "^4.0.3" - open "^9.1.0" - picocolors "^1.0.0" - tslib "^2.5.0" - "@sqltools/formatter@^1.2.5": version "1.2.5" resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.5.tgz#3abc203c79b8c3e90fd6c156a0c62d5403520e12" @@ -286,16 +248,6 @@ resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.13.tgz#e6e77ea9ecf36564980a861e24e62a095988775e" integrity sha512-bmrNrgKMOhM3WsafmbGmC+6dsF2Z308vLFsQ3a/bT8X8Sv5clVYpPars/UPq+sAaJP+5OoLAYgwbkS5QEJdLUQ== -"@types/json-schema@^7.0.9": - version "7.0.12" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" - integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - "@types/mysql@^2.15.8": version "2.15.19" resolved "https://registry.yarnpkg.com/@types/mysql/-/mysql-2.15.19.tgz#d158927bb7c1a78f77e56de861a3b15cae0e7aed" @@ -313,105 +265,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== -"@types/semver@^7.3.12": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" - integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== - "@types/uuid@^8.3.4": version "8.3.4" resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== -"@typescript-eslint/eslint-plugin@^5.57.1": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.9.tgz#2604cfaf2b306e120044f901e20c8ed926debf15" - integrity sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA== - dependencies: - "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.59.9" - "@typescript-eslint/type-utils" "5.59.9" - "@typescript-eslint/utils" "5.59.9" - debug "^4.3.4" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - natural-compare-lite "^1.4.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/parser@^5.57.1": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.59.9.tgz#a85c47ccdd7e285697463da15200f9a8561dd5fa" - integrity sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ== - dependencies: - "@typescript-eslint/scope-manager" "5.59.9" - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/typescript-estree" "5.59.9" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz#eadce1f2733389cdb58c49770192c0f95470d2f4" - integrity sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ== - dependencies: - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/visitor-keys" "5.59.9" - -"@typescript-eslint/type-utils@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.59.9.tgz#53bfaae2e901e6ac637ab0536d1754dfef4dafc2" - integrity sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q== - dependencies: - "@typescript-eslint/typescript-estree" "5.59.9" - "@typescript-eslint/utils" "5.59.9" - debug "^4.3.4" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.9.tgz#3b4e7ae63718ce1b966e0ae620adc4099a6dcc52" - integrity sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw== - -"@typescript-eslint/typescript-estree@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz#6bfea844e468427b5e72034d33c9fffc9557392b" - integrity sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA== - dependencies: - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/visitor-keys" "5.59.9" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.9.tgz#adee890107b5ffe02cd46fdaa6c2125fb3c6c7c4" - integrity sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.59.9" - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/typescript-estree" "5.59.9" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz#9f86ef8e95aca30fb5a705bb7430f95fc58b146d" - integrity sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q== - dependencies: - "@typescript-eslint/types" "5.59.9" - eslint-visitor-keys "^3.3.0" - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - acorn-walk@^8.1.1: version "8.1.1" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.1.1.tgz#3ddab7f84e4a7e2313f6c414c5b7dac85f4e3ebc" @@ -422,21 +280,6 @@ acorn@^8.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== -acorn@^8.8.0: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== - -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - ansi-regex@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" @@ -469,60 +312,6 @@ arg@^4.1.0: resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== - dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" - -array-includes@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" - integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" - is-string "^1.0.7" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.flat@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" - integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" - integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-shim-unscopables "^1.0.0" - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -533,31 +322,11 @@ base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -big-integer@^1.6.44: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== - bignumber.js@9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075" integrity sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A== -bplist-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" - integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== - dependencies: - big-integer "^1.6.44" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - brace-expansion@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" @@ -565,13 +334,6 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" -braces@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - buffer@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" @@ -580,33 +342,6 @@ buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -builtins@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" - integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== - dependencies: - semver "^7.0.0" - -bundle-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" - integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== - dependencies: - run-applescript "^5.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - chalk@^4.0.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -657,11 +392,6 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -679,7 +409,7 @@ cross-env@^7.0.3: dependencies: cross-spawn "^7.0.1" -cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -700,21 +430,7 @@ date-fns@^2.29.3: dependencies: "@babel/runtime" "^7.21.0" -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - -debug@^4.3.2, debug@^4.3.4: +debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -726,49 +442,6 @@ decimal.js-light@^2.5.1: resolved "https://registry.yarnpkg.com/decimal.js-light/-/decimal.js-light-2.5.1.tgz#134fd32508f19e208f4fb2f8dac0d2626a867934" integrity sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg== -deep-is@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -default-browser-id@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" - integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== - dependencies: - bplist-parser "^0.2.0" - untildify "^4.0.0" - -default-browser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" - integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== - dependencies: - bundle-name "^3.0.0" - default-browser-id "^3.0.0" - execa "^7.1.1" - titleize "^3.0.0" - -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-properties@^1.1.4, define-properties@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" - integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - denque@^1.4.1: version "1.5.1" resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.1.tgz#07f670e29c9a78f8faecb2566a1e2c11929c5cbf" @@ -779,27 +452,6 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - dotenv@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" @@ -815,79 +467,6 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -enhanced-resolve@^5.12.0: - version "5.14.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz#de684b6803724477a4af5d74ccae5de52c25f6b3" - integrity sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - -es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.21.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" - integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== - dependencies: - array-buffer-byte-length "^1.0.0" - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.2.0" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.10" - is-weakref "^1.0.2" - object-inspect "^1.12.3" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.7" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.9" - -es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== - dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" - has-tostringtag "^1.0.0" - -es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== - dependencies: - has "^1.0.3" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - esbuild@~0.25.0: version "0.25.3" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.3.tgz#371f7cb41283e5b2191a96047a7a89562965a285" @@ -924,356 +503,6 @@ escalade@^3.1.1: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-config-prettier@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" - integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== - -eslint-config-standard@^17.0.0: - version "17.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz#40ffb8595d47a6b242e07cbfd49dc211ed128975" - integrity sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q== - -eslint-import-resolver-node@^0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" - integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== - dependencies: - debug "^3.2.7" - is-core-module "^2.11.0" - resolve "^1.22.1" - -eslint-import-resolver-typescript@^3.5.4: - version "3.5.5" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz#0a9034ae7ed94b254a360fbea89187b60ea7456d" - integrity sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw== - dependencies: - debug "^4.3.4" - enhanced-resolve "^5.12.0" - eslint-module-utils "^2.7.4" - get-tsconfig "^4.5.0" - globby "^13.1.3" - is-core-module "^2.11.0" - is-glob "^4.0.3" - synckit "^0.8.5" - -eslint-module-utils@^2.7.4: - version "2.8.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" - integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== - dependencies: - debug "^3.2.7" - -eslint-plugin-es@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz#f0822f0c18a535a97c3e714e89f88586a7641ec9" - integrity sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ== - dependencies: - eslint-utils "^2.0.0" - regexpp "^3.0.0" - -eslint-plugin-import@^2.27.5: - version "2.27.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" - integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== - dependencies: - array-includes "^3.1.6" - array.prototype.flat "^1.3.1" - array.prototype.flatmap "^1.3.1" - debug "^3.2.7" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.7.4" - has "^1.0.3" - is-core-module "^2.11.0" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.values "^1.1.6" - resolve "^1.22.1" - semver "^6.3.0" - tsconfig-paths "^3.14.1" - -eslint-plugin-n@^15.7.0: - version "15.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz#e29221d8f5174f84d18f2eb94765f2eeea033b90" - integrity sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q== - dependencies: - builtins "^5.0.1" - eslint-plugin-es "^4.1.0" - eslint-utils "^3.0.0" - ignore "^5.1.1" - is-core-module "^2.11.0" - minimatch "^3.1.2" - resolve "^1.22.1" - semver "^7.3.8" - -eslint-plugin-prettier@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" - integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== - dependencies: - prettier-linter-helpers "^1.0.0" - -eslint-plugin-promise@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz#269a3e2772f62875661220631bd4dafcb4083816" - integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig== - -eslint-plugin-security@^1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-security/-/eslint-plugin-security-1.7.1.tgz#0e9c4a471f6e4d3ca16413c7a4a51f3966ba16e4" - integrity sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ== - dependencies: - safe-regex "^2.1.1" - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" - integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== - -eslint@^8.37.0: - version "8.42.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.42.0.tgz#7bebdc3a55f9ed7167251fe7259f75219cade291" - integrity sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.3" - "@eslint/js" "8.42.0" - "@humanwhocodes/config-array" "^0.11.10" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.1" - espree "^9.5.2" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.1" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - -espree@^9.5.2: - version "9.5.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" - integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" - integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -execa@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" - integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - -fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fastq@^1.6.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.12.0.tgz#ed7b6ab5d62393fb2cc591c853652a5c318bf794" - integrity sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg== - dependencies: - reusify "^1.0.4" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" - integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -1284,26 +513,6 @@ fsevents@~2.3.3: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functions-have-names@^1.2.2, functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - generate-function@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" @@ -1321,45 +530,6 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-proto "^1.0.1" - has-symbols "^1.0.3" - -get-stream@^6.0.0, get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -get-tsconfig@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.6.0.tgz#e977690993a42f3e320e932427502a40f7af6d05" - integrity sha512-lgbo68hHTQnFddybKbbs/RDRJnJT5YyGy2kQzVwbq+g67X73i+5MVTval34QxGkOe9X5Ujf1UYpCaphLyltjEg== - dependencies: - resolve-pkg-maps "^1.0.0" - get-tsconfig@^4.7.5: version "4.10.0" resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.10.0.tgz#403a682b373a823612475a4c2928c7326fc0f6bb" @@ -1367,32 +537,6 @@ get-tsconfig@^4.7.5: dependencies: resolve-pkg-maps "^1.0.0" -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^7.1.3: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" @@ -1404,131 +548,16 @@ glob@^8.1.0: minimatch "^5.0.1" once "^1.3.0" -globals@^13.19.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== - dependencies: - type-fest "^0.20.2" - -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== - dependencies: - define-properties "^1.1.3" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -globby@^13.1.3: - version "13.1.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.4.tgz#2f91c116066bcec152465ba36e5caa4a13c01317" - integrity sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g== - dependencies: - dir-glob "^3.0.1" - fast-glob "^3.2.11" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^4.0.0" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -graceful-fs@^4.2.4: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -has-bigints@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== - -has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.1, has-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" - integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== - -has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - highlight.js@^10.7.1: version "10.7.3" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.3.tgz#697272e3991356e40c3cac566a74eef681756531" integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== - iconv-lite@^0.6.2: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" @@ -1541,29 +570,6 @@ ieee754@^1.2.1: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.1.1: - version "5.1.8" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" - integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== - -ignore@^5.2.0, ignore@^5.2.4: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -1577,195 +583,16 @@ inherits@2, inherits@^2.0.1, inherits@~2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -internal-slot@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" - integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== - dependencies: - get-intrinsic "^1.2.0" - has "^1.0.3" - side-channel "^1.0.4" - -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.3, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-callable@^1.1.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" - integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== - -is-core-module@^2.11.0: - version "2.12.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" - integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== - dependencies: - has "^1.0.3" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^4.0.0, is-glob@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-glob@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" - integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - is-property@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ= -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.10, is-typed-array@^1.1.9: - version "1.1.10" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" - integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -1776,50 +603,6 @@ isexe@^2.0.0: resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= - -json5@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - long@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" @@ -1845,48 +628,6 @@ make-error@^1.1.1: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^3.0.5, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - minimatch@^5.0.1: version "5.1.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" @@ -1894,16 +635,6 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.0: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - mkdirp@^2.1.3: version "2.1.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.6.tgz#964fbcb12b2d8c5d6fbc62a963ac95a273e2cc19" @@ -1919,11 +650,6 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - mysql2@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-2.3.0.tgz#600f5cc27e397dfb77b59eac93666434f88e8079" @@ -1964,74 +690,16 @@ named-placeholders@^1.1.2: dependencies: lru-cache "^4.1.3" -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= - ncp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" integrity sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA== -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - object-assign@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= -object-inspect@^1.12.3: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== - -object-inspect@^1.9.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" - integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== - -object-keys@^1.0.12, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.values@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" - integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -2039,63 +707,6 @@ once@^1.3.0: dependencies: wrappy "1" -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -open@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" - integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== - dependencies: - default-browser "^4.0.0" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^2.2.0" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - parse5-htmlparser2-tree-adapter@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" @@ -2113,58 +724,11 @@ parse5@^6.0.1: resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^3.0.0, path-key@^3.1.0: +path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - prettier@^2.8.7: version "2.8.8" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" @@ -2180,16 +744,6 @@ pseudomap@^1.0.2: resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - readable-stream@2.3.7: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -2213,75 +767,16 @@ regenerator-runtime@^0.13.11: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regexp-tree@~0.1.1: - version "0.1.27" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.27.tgz#2198f0ef54518ffa743fe74d983b56ffd631b6cd" - integrity sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== - -regexp.prototype.flags@^1.4.3: - version "1.5.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" - integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - functions-have-names "^1.2.3" - -regexpp@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - resolve-pkg-maps@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== -resolve@^1.22.1: - version "1.22.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== - dependencies: - is-core-module "^2.11.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -run-applescript@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" - integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== - dependencies: - execa "^5.0.0" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -2292,39 +787,11 @@ safe-buffer@^5.0.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - -safe-regex@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-2.1.1.tgz#f7128f00d056e2fe5c11e81a1324dd974aadced2" - integrity sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A== - dependencies: - regexp-tree "~0.1.1" - "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.0.0, semver@^7.3.7, semver@^7.3.8: - version "7.5.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" - integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== - dependencies: - lru-cache "^6.0.0" - seq-queue@^0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/seq-queue/-/seq-queue-0.0.5.tgz#d56812e1c017a6e4e7c3e3a37a1da6d78dd3c93e" @@ -2350,30 +817,6 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.3, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - sqlstring@2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.1.tgz#475393ff9e91479aea62dcaf0ca3d14983a7fb40" @@ -2402,33 +845,6 @@ string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string.prototype.trim@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" - integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -2450,26 +866,6 @@ strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -2477,29 +873,6 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -synckit@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" - integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== - dependencies: - "@pkgr/utils" "^2.3.1" - tslib "^2.5.0" - -tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= - thenify-all@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" @@ -2514,18 +887,6 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" -titleize@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" - integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - ts-mysql-migrate@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/ts-mysql-migrate/-/ts-mysql-migrate-1.0.2.tgz#736d37c3aa3fef92f226b869098e939950d0e18c" @@ -2553,33 +914,11 @@ ts-node@^10.9.2: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tsconfig-paths@^3.14.1: - version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - tslib@^2.5.0: version "2.5.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - tsx@^4.19.3: version "4.19.3" resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.19.3.tgz#2bdbcb87089374d933596f8645615142ed727666" @@ -2590,27 +929,6 @@ tsx@^4.19.3: optionalDependencies: fsevents "~2.3.3" -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" - typeorm@^0.3.16: version "0.3.17" resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.3.17.tgz#a73c121a52e4fbe419b596b244777be4e4b57949" @@ -2637,28 +955,6 @@ typescript@^4.9.5: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -2679,29 +975,6 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" - integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.10" - which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -2716,11 +989,6 @@ wkx@^0.5.0: dependencies: "@types/node" "*" -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -2790,8 +1058,3 @@ yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/dht-node/.eslintignore b/dht-node/.eslintignore deleted file mode 100644 index 1ae86fe5e..000000000 --- a/dht-node/.eslintignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -**/*.min.js -build -coverage \ No newline at end of file diff --git a/dht-node/.eslintrc.js b/dht-node/.eslintrc.js deleted file mode 100644 index 5a1c522d2..000000000 --- a/dht-node/.eslintrc.js +++ /dev/null @@ -1,205 +0,0 @@ -// eslint-disable-next-line import/no-commonjs, import/unambiguous -module.exports = { - root: true, - env: { - node: true, - }, - parser: '@typescript-eslint/parser', - plugins: ['prettier', '@typescript-eslint', 'import', 'n', 'promise'], - extends: [ - 'standard', - 'eslint:recommended', - 'plugin:prettier/recommended', - 'plugin:import/recommended', - 'plugin:import/typescript', - // 'plugin:security/recommended', - 'plugin:@eslint-community/eslint-comments/recommended', - ], - settings: { - 'import/parsers': { - '@typescript-eslint/parser': ['.ts', '.tsx'], - }, - 'import/resolver': { - typescript: { - project: ['./tsconfig.json'], - }, - node: true, - }, - }, - rules: { - 'no-console': 'error', - camelcase: 'error', - 'no-debugger': 'error', - 'prettier/prettier': [ - 'error', - { - htmlWhitespaceSensitivity: 'ignore', - }, - ], - // import - 'import/export': 'error', - // 'import/no-deprecated': 'error', - 'import/no-empty-named-blocks': 'error', - 'import/no-extraneous-dependencies': 'error', - 'import/no-mutable-exports': 'error', - 'import/no-unused-modules': 'error', - 'import/no-named-as-default': 'error', - 'import/no-named-as-default-member': 'error', - 'import/no-amd': 'error', - 'import/no-commonjs': 'error', - 'import/no-import-module-exports': 'error', - 'import/no-nodejs-modules': 'off', - 'import/unambiguous': 'error', - 'import/default': 'error', - 'import/named': 'error', - 'import/namespace': 'error', - 'import/no-absolute-path': 'error', - 'import/no-cycle': 'error', - 'import/no-dynamic-require': 'error', - 'import/no-internal-modules': 'off', - 'import/no-relative-packages': 'error', - 'import/no-relative-parent-imports': ['error', { ignore: ['@/*'] }], - 'import/no-self-import': 'error', - 'import/no-unresolved': 'error', - 'import/no-useless-path-segments': 'error', - 'import/no-webpack-loader-syntax': 'error', - 'import/consistent-type-specifier-style': 'error', - 'import/exports-last': 'off', - 'import/extensions': 'error', - 'import/first': 'error', - 'import/group-exports': 'off', - 'import/newline-after-import': 'error', - 'import/no-anonymous-default-export': 'error', - 'import/no-default-export': 'error', - 'import/no-duplicates': 'error', - 'import/no-named-default': 'error', - 'import/no-namespace': 'error', - 'import/no-unassigned-import': 'error', - 'import/order': [ - 'error', - { - groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type'], - 'newlines-between': 'always', - pathGroups: [ - { - pattern: '@?*/**', - group: 'external', - position: 'after', - }, - { - pattern: '@/**', - group: 'external', - position: 'after', - }, - ], - alphabetize: { - order: 'asc' /* sort in ascending order. Options: ['ignore', 'asc', 'desc'] */, - caseInsensitive: true /* ignore case. Options: [true, false] */, - }, - distinctGroup: true, - }, - ], - 'import/prefer-default-export': 'off', - // n - 'n/handle-callback-err': 'error', - 'n/no-callback-literal': 'error', - 'n/no-exports-assign': 'error', - 'n/no-extraneous-import': 'error', - 'n/no-extraneous-require': 'error', - 'n/no-hide-core-modules': 'error', - 'n/no-missing-import': 'off', // not compatible with typescript - 'n/no-missing-require': 'error', - 'n/no-new-require': 'error', - 'n/no-path-concat': 'error', - 'n/no-process-exit': 'error', - 'n/no-unpublished-bin': 'error', - 'n/no-unpublished-import': 'off', // TODO need to exclude seeds - 'n/no-unpublished-require': 'error', - 'n/no-unsupported-features': ['error', { ignores: ['modules'] }], - 'n/no-unsupported-features/es-builtins': 'error', - 'n/no-unsupported-features/es-syntax': 'error', - 'n/no-unsupported-features/node-builtins': 'error', - 'n/process-exit-as-throw': 'error', - 'n/shebang': 'error', - 'n/callback-return': 'error', - 'n/exports-style': 'error', - 'n/file-extension-in-import': 'off', - 'n/global-require': 'error', - 'n/no-mixed-requires': 'error', - 'n/no-process-env': 'error', - 'n/no-restricted-import': 'error', - 'n/no-restricted-require': 'error', - 'n/no-sync': 'error', - 'n/prefer-global/buffer': 'error', - 'n/prefer-global/console': 'error', - 'n/prefer-global/process': 'error', - 'n/prefer-global/text-decoder': 'error', - 'n/prefer-global/text-encoder': 'error', - 'n/prefer-global/url': 'error', - 'n/prefer-global/url-search-params': 'error', - 'n/prefer-promises/dns': 'error', - 'n/prefer-promises/fs': 'error', - // promise - // 'promise/catch-or-return': 'error', - // 'promise/no-return-wrap': 'error', - // 'promise/param-names': 'error', - // 'promise/always-return': 'error', - // 'promise/no-native': 'off', - // 'promise/no-nesting': 'warn', - // 'promise/no-promise-in-callback': 'warn', - // 'promise/no-callback-in-promise': 'warn', - // 'promise/avoid-new': 'warn', - // 'promise/no-new-statics': 'error', - // 'promise/no-return-in-finally': 'warn', - // 'promise/valid-params': 'warn', - // 'promise/prefer-await-to-callbacks': 'error', - // 'promise/no-multiple-resolved': 'error', - // eslint comments - '@eslint-community/eslint-comments/disable-enable-pair': ['error', { allowWholeFile: true }], - '@eslint-community/eslint-comments/no-restricted-disable': 'error', - '@eslint-community/eslint-comments/no-use': 'off', - '@eslint-community/eslint-comments/require-description': 'off', - }, - overrides: [ - // only for ts files - { - files: ['*.ts', '*.tsx'], - extends: [ - 'plugin:@typescript-eslint/recommended', - // 'plugin:@typescript-eslint/recommended-requiring-type-checking', - // 'plugin:@typescript-eslint/strict', - ], - rules: { - // allow explicitly defined dangling promises - // '@typescript-eslint/no-floating-promises': ['error', { ignoreVoid: true }], - 'no-void': ['error', { allowAsStatement: true }], - // ignore prefer-regexp-exec rule to allow string.match(regex) - '@typescript-eslint/prefer-regexp-exec': 'off', - // this should not run on ts files: https://github.com/import-js/eslint-plugin-import/issues/2215#issuecomment-911245486 - 'import/unambiguous': 'off', - // this is not compatible with typeorm, due to joined tables can be null, but are not defined as nullable - '@typescript-eslint/no-unnecessary-condition': 'off', - }, - parserOptions: { - tsconfigRootDir: __dirname, - project: ['./tsconfig.json'], - // this is to properly reference the referenced project database without requirement of compiling it - // eslint-disable-next-line camelcase - EXPERIMENTAL_useSourceOfProjectReferenceRedirect: true, - }, - }, - { - files: ['*.test.ts'], - plugins: ['jest'], - rules: { - 'jest/no-disabled-tests': 'error', - 'jest/no-focused-tests': 'error', - 'jest/no-identical-title': 'error', - 'jest/prefer-to-have-length': 'error', - 'jest/valid-expect': 'error', - '@typescript-eslint/unbound-method': 'off', - 'jest/unbound-method': 'error', - }, - }, - ], -} diff --git a/dht-node/.prettierrc.js b/dht-node/.prettierrc.js deleted file mode 100644 index bc1d767d7..000000000 --- a/dht-node/.prettierrc.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - semi: false, - printWidth: 100, - singleQuote: true, - trailingComma: "all", - tabWidth: 2, - bracketSpacing: true, - endOfLine: "auto", -}; diff --git a/dht-node/package.json b/dht-node/package.json index ed3245793..9b998ca5e 100644 --- a/dht-node/package.json +++ b/dht-node/package.json @@ -12,7 +12,8 @@ "clean": "tsc --build --clean", "start": "cross-env TZ=UTC TS_NODE_BASEURL=./build node -r tsconfig-paths/register build/src/index.js", "dev": "cross-env TZ=UTC nodemon -w src --ext ts --exec ts-node -r dotenv/config -r tsconfig-paths/register src/index.ts", - "lint": "eslint --max-warnings=0 --ext .js,.ts .", + "lint": "biome check --error-on-warnings .", + "lint:fix": "biome check --error-on-warnings . --write", "test": "cross-env TZ=UTC NODE_ENV=development DB_DATABASE=gradido_test_dht jest --runInBand --forceExit --detectOpenHandles" }, "dependencies": { @@ -28,24 +29,12 @@ "uuid": "^8.3.2" }, "devDependencies": { - "@eslint-community/eslint-plugin-eslint-comments": "^3.2.1", + "@biomejs/biome": "1.9.4", "@types/dotenv": "^8.2.0", "@types/jest": "^27.0.2", "@types/joi": "^17.2.3", "@types/node": "^18.11.18", "@types/uuid": "^8.3.4", - "@typescript-eslint/eslint-plugin": "^5.57.1", - "@typescript-eslint/parser": "^5.57.1", - "eslint": "^8.37.0", - "eslint-config-prettier": "^8.8.0", - "eslint-config-standard": "^17.0.0", - "eslint-import-resolver-typescript": "^3.5.4", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-jest": "^27.2.1", - "eslint-plugin-n": "^15.7.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-security": "^1.7.1", "jest": "^27.2.4", "prettier": "^2.8.7", "ts-jest": "^27.0.5", diff --git a/dht-node/src/config/schema.ts b/dht-node/src/config/schema.ts index cb7618cf4..f07bef64b 100644 --- a/dht-node/src/config/schema.ts +++ b/dht-node/src/config/schema.ts @@ -1,6 +1,6 @@ import { - COMMUNITY_NAME, COMMUNITY_DESCRIPTION, + COMMUNITY_NAME, DB_DATABASE, DB_HOST, DB_PASSWORD, diff --git a/dht-node/src/dht_node/index.test.ts b/dht-node/src/dht_node/index.test.ts index c31869551..7b3809f15 100644 --- a/dht-node/src/dht_node/index.test.ts +++ b/dht-node/src/dht_node/index.test.ts @@ -6,7 +6,7 @@ import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCom import DHT from '@hyperswarm/dht' import { validate as validateUUID, version as versionUUID } from 'uuid' -import { testEnvironment, cleanDB } from '@test/helpers' +import { cleanDB, testEnvironment } from '@test/helpers' import { logger } from '@test/testSetup' import { CONFIG } from '@/config' diff --git a/dht-node/src/dht_node/index.ts b/dht-node/src/dht_node/index.ts index fab67e839..5a57eb460 100644 --- a/dht-node/src/dht_node/index.ts +++ b/dht-node/src/dht_node/index.ts @@ -201,18 +201,18 @@ export const startDHT = async (topic: string): Promise => { } async function writeFederatedHomeCommunityEntries(pubKey: string): Promise { - const homeApiVersions: CommunityApi[] = CONFIG.FEDERATION_COMMUNITY_APIS.split(',').map(function ( - api, - ) { - if (!Object.values(ApiVersionType).includes(api as ApiVersionType)) { - throw new Error(`Federation: unknown api version: ${api}`) - } - const comApi: CommunityApi = { - api, - url: CONFIG.FEDERATION_COMMUNITY_URL + '/api/', - } - return comApi - }) + const homeApiVersions: CommunityApi[] = CONFIG.FEDERATION_COMMUNITY_APIS.split(',').map( + function (api) { + if (!Object.values(ApiVersionType).includes(api as ApiVersionType)) { + throw new Error(`Federation: unknown api version: ${api}`) + } + const comApi: CommunityApi = { + api, + url: CONFIG.FEDERATION_COMMUNITY_URL + '/api/', + } + return comApi + }, + ) try { // first remove previous existing homeCommunity entries await DbFederatedCommunity.createQueryBuilder().delete().where({ foreign: false }).execute() diff --git a/dht-node/src/index.ts b/dht-node/src/index.ts index 932a3afb1..eadbec483 100644 --- a/dht-node/src/index.ts +++ b/dht-node/src/index.ts @@ -1,10 +1,9 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ import { startDHT } from '@/dht_node/index' import { CONFIG } from './config' import { logger } from './server/logger' -import { connection } from './typeorm/connection' import { checkDBVersion } from './typeorm/DBVersion' +import { connection } from './typeorm/connection' async function main() { // open mysql connection @@ -30,7 +29,7 @@ async function main() { } main().catch((e) => { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: no logger present console.error(e) throw e }) diff --git a/dht-node/src/typeorm/connection.ts b/dht-node/src/typeorm/connection.ts index 7dec820b5..8ed877063 100644 --- a/dht-node/src/typeorm/connection.ts +++ b/dht-node/src/typeorm/connection.ts @@ -1,6 +1,6 @@ // TODO This is super weird - since the entities are defined in another project they have their own globals. // We cannot use our connection here, but must use the external typeorm installation -import { Connection, createConnection, FileLogger } from '@dbTools/typeorm' +import { Connection, FileLogger, createConnection } from '@dbTools/typeorm' import { entities } from '@entity/index' import { CONFIG } from '@/config' @@ -26,7 +26,7 @@ export const connection = async (): Promise => { }, }) } catch (error) { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: no logger present console.log(error) return null } diff --git a/dht-node/yarn.lock b/dht-node/yarn.lock index 2419f760d..c0bf5d338 100644 --- a/dht-node/yarn.lock +++ b/dht-node/yarn.lock @@ -298,6 +298,60 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@biomejs/biome@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-1.9.4.tgz#89766281cbc3a0aae865a7ff13d6aaffea2842bf" + integrity sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog== + optionalDependencies: + "@biomejs/cli-darwin-arm64" "1.9.4" + "@biomejs/cli-darwin-x64" "1.9.4" + "@biomejs/cli-linux-arm64" "1.9.4" + "@biomejs/cli-linux-arm64-musl" "1.9.4" + "@biomejs/cli-linux-x64" "1.9.4" + "@biomejs/cli-linux-x64-musl" "1.9.4" + "@biomejs/cli-win32-arm64" "1.9.4" + "@biomejs/cli-win32-x64" "1.9.4" + +"@biomejs/cli-darwin-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz#dfa376d23a54a2d8f17133c92f23c1bf2e62509f" + integrity sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw== + +"@biomejs/cli-darwin-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz#eafc2ce3849d385fc02238aad1ca4a73395a64d9" + integrity sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg== + +"@biomejs/cli-linux-arm64-musl@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz#d780c3e01758fc90f3268357e3f19163d1f84fca" + integrity sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA== + +"@biomejs/cli-linux-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz#8ed1dd0e89419a4b66a47f95aefb8c46ae6041c9" + integrity sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g== + +"@biomejs/cli-linux-x64-musl@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz#f36982b966bd671a36671e1de4417963d7db15fb" + integrity sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg== + +"@biomejs/cli-linux-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz#a0a7f56680c76b8034ddc149dbf398bdd3a462e8" + integrity sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg== + +"@biomejs/cli-win32-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz#e2ef4e0084e76b7e26f0fc887c5ef1265ea56200" + integrity sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg== + +"@biomejs/cli-win32-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz#4c7afa90e3970213599b4095e62f87e5972b2340" + integrity sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA== + "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -305,46 +359,6 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@eslint-community/eslint-plugin-eslint-comments@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.1.tgz#3c65061e27f155eae3744c3b30c5a8253a959040" - integrity sha512-/HZbjIGaVO2zLlWX3gRgiHmKRVvvqrC0zVu3eXnIj1ORxoyfGSj50l0PfDfqihyZAqrDYzSMdJesXzFjvAoiLQ== - dependencies: - escape-string-regexp "^1.0.5" - ignore "^5.2.4" - -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.4.0": - version "4.5.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" - integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== - -"@eslint/eslintrc@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" - integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.5.2" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.42.0": - version "8.42.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.42.0.tgz#484a1d638de2911e6f5a30c12f49c7e4a3270fb6" - integrity sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw== - "@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": version "9.3.0" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" @@ -357,25 +371,6 @@ dependencies: "@hapi/hoek" "^9.0.0" -"@humanwhocodes/config-array@^0.11.10": - version "0.11.10" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" - integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - "@hyperswarm/dht@^6.4.4": version "6.4.4" resolved "https://registry.yarnpkg.com/@hyperswarm/dht/-/dht-6.4.4.tgz#aee0e431ede7fe81311342db553775dccd816a3b" @@ -644,39 +639,6 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@pkgr/utils@^2.3.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.1.tgz#adf291d0357834c410ce80af16e711b56c7b1cd3" - integrity sha512-JOqwkgFEyi+OROIyq7l4Jy28h/WwhDnG/cPkXG2Z1iFbubB6jsHW1NDvmyOzTBxHr3yg68YGirmh1JUgMqa+9w== - dependencies: - cross-spawn "^7.0.3" - fast-glob "^3.2.12" - is-glob "^4.0.3" - open "^9.1.0" - picocolors "^1.0.0" - tslib "^2.5.0" - "@sideway/address@^4.1.5": version "4.1.5" resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.5.tgz#4bc149a0076623ced99ca8208ba780d65a99b9d5" @@ -819,16 +781,6 @@ dependencies: joi "*" -"@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - "@types/mysql@^2.15.8": version "2.15.21" resolved "https://registry.yarnpkg.com/@types/mysql/-/mysql-2.15.21.tgz#7516cba7f9d077f980100c85fd500c8210bd5e45" @@ -851,11 +803,6 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0" integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== -"@types/semver@^7.3.12": - version "7.3.13" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" - integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== - "@types/stack-utils@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" @@ -878,90 +825,6 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.57.1": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.9.tgz#2604cfaf2b306e120044f901e20c8ed926debf15" - integrity sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA== - dependencies: - "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.59.9" - "@typescript-eslint/type-utils" "5.59.9" - "@typescript-eslint/utils" "5.59.9" - debug "^4.3.4" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - natural-compare-lite "^1.4.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/parser@^5.57.1": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.59.9.tgz#a85c47ccdd7e285697463da15200f9a8561dd5fa" - integrity sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ== - dependencies: - "@typescript-eslint/scope-manager" "5.59.9" - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/typescript-estree" "5.59.9" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz#eadce1f2733389cdb58c49770192c0f95470d2f4" - integrity sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ== - dependencies: - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/visitor-keys" "5.59.9" - -"@typescript-eslint/type-utils@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.59.9.tgz#53bfaae2e901e6ac637ab0536d1754dfef4dafc2" - integrity sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q== - dependencies: - "@typescript-eslint/typescript-estree" "5.59.9" - "@typescript-eslint/utils" "5.59.9" - debug "^4.3.4" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.9.tgz#3b4e7ae63718ce1b966e0ae620adc4099a6dcc52" - integrity sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw== - -"@typescript-eslint/typescript-estree@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz#6bfea844e468427b5e72034d33c9fffc9557392b" - integrity sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA== - dependencies: - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/visitor-keys" "5.59.9" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.59.9", "@typescript-eslint/utils@^5.10.0": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.9.tgz#adee890107b5ffe02cd46fdaa6c2125fb3c6c7c4" - integrity sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.59.9" - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/typescript-estree" "5.59.9" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz#9f86ef8e95aca30fb5a705bb7430f95fc58b146d" - integrity sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q== - dependencies: - "@typescript-eslint/types" "5.59.9" - eslint-visitor-keys "^3.3.0" - abab@^2.0.3, abab@^2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" @@ -980,11 +843,6 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - acorn-walk@^7.1.1: version "7.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" @@ -1000,7 +858,7 @@ acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.2.4, acorn@^8.4.1, acorn@^8.8.0: +acorn@^8.2.4, acorn@^8.4.1: version "8.8.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== @@ -1012,16 +870,6 @@ agent-base@6: dependencies: debug "4" -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - ansi-escapes@^4.2.1: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" @@ -1083,47 +931,6 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-includes@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" - integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" - is-string "^1.0.7" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.flat@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" - integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" - integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-shim-unscopables "^1.0.0" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1205,11 +1012,6 @@ base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -big-integer@^1.6.44: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== - bignumber.js@9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075" @@ -1244,13 +1046,6 @@ bogon@^1.0.0: compact-encoding "^2.11.0" compact-encoding-net "^1.2.0" -bplist-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" - integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== - dependencies: - big-integer "^1.6.44" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1315,28 +1110,6 @@ buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -builtins@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" - integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== - dependencies: - semver "^7.0.0" - -bundle-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" - integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== - dependencies: - run-applescript "^5.0.0" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -1523,7 +1296,7 @@ cross-env@^7.0.3: dependencies: cross-spawn "^7.0.1" -cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.1, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -1575,7 +1348,7 @@ date-format@^4.0.14: resolved "https://registry.yarnpkg.com/date-format/-/date-format-4.0.14.tgz#7a8e584434fb169a521c8b7aa481f355810d9400" integrity sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg== -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -1611,7 +1384,7 @@ dedent@^0.7.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== -deep-is@^0.1.3, deep-is@~0.1.3: +deep-is@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== @@ -1621,37 +1394,6 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -default-browser-id@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" - integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== - dependencies: - bplist-parser "^0.2.0" - untildify "^4.0.0" - -default-browser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" - integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== - dependencies: - bundle-name "^3.0.0" - default-browser-id "^3.0.0" - execa "^7.1.1" - titleize "^3.0.0" - -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - -define-properties@^1.1.3, define-properties@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -1694,27 +1436,6 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - domexception@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" @@ -1752,14 +1473,6 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -enhanced-resolve@^5.12.0: - version "5.14.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz#de684b6803724477a4af5d74ccae5de52c25f6b3" - integrity sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -1767,53 +1480,6 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.20.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.5.tgz#e6dc99177be37cacda5988e692c3fa8b218e95d2" - integrity sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.1.3" - get-symbol-description "^1.0.0" - gopd "^1.0.1" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-weakref "^1.0.2" - object-inspect "^1.12.2" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - safe-regex-test "^1.0.0" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" - unbox-primitive "^1.0.2" - -es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== - dependencies: - has "^1.0.3" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -1829,11 +1495,6 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - escodegen@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" @@ -1846,244 +1507,12 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" - integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== - -eslint-config-standard@^17.0.0: - version "17.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz#fd5b6cf1dcf6ba8d29f200c461de2e19069888cf" - integrity sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg== - -eslint-import-resolver-node@^0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" - integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== - dependencies: - debug "^3.2.7" - is-core-module "^2.11.0" - resolve "^1.22.1" - -eslint-import-resolver-typescript@^3.5.4: - version "3.5.5" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz#0a9034ae7ed94b254a360fbea89187b60ea7456d" - integrity sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw== - dependencies: - debug "^4.3.4" - enhanced-resolve "^5.12.0" - eslint-module-utils "^2.7.4" - get-tsconfig "^4.5.0" - globby "^13.1.3" - is-core-module "^2.11.0" - is-glob "^4.0.3" - synckit "^0.8.5" - -eslint-module-utils@^2.7.4: - version "2.8.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" - integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== - dependencies: - debug "^3.2.7" - -eslint-plugin-es@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz#f0822f0c18a535a97c3e714e89f88586a7641ec9" - integrity sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ== - dependencies: - eslint-utils "^2.0.0" - regexpp "^3.0.0" - -eslint-plugin-import@^2.27.5: - version "2.27.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" - integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== - dependencies: - array-includes "^3.1.6" - array.prototype.flat "^1.3.1" - array.prototype.flatmap "^1.3.1" - debug "^3.2.7" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.7.4" - has "^1.0.3" - is-core-module "^2.11.0" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.values "^1.1.6" - resolve "^1.22.1" - semver "^6.3.0" - tsconfig-paths "^3.14.1" - -eslint-plugin-jest@^27.2.1: - version "27.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.2.1.tgz#b85b4adf41c682ea29f1f01c8b11ccc39b5c672c" - integrity sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg== - dependencies: - "@typescript-eslint/utils" "^5.10.0" - -eslint-plugin-n@^15.7.0: - version "15.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz#e29221d8f5174f84d18f2eb94765f2eeea033b90" - integrity sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q== - dependencies: - builtins "^5.0.1" - eslint-plugin-es "^4.1.0" - eslint-utils "^3.0.0" - ignore "^5.1.1" - is-core-module "^2.11.0" - minimatch "^3.1.2" - resolve "^1.22.1" - semver "^7.3.8" - -eslint-plugin-prettier@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" - integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== - dependencies: - prettier-linter-helpers "^1.0.0" - -eslint-plugin-promise@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz#269a3e2772f62875661220631bd4dafcb4083816" - integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig== - -eslint-plugin-security@^1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-security/-/eslint-plugin-security-1.7.1.tgz#0e9c4a471f6e4d3ca16413c7a4a51f3966ba16e4" - integrity sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ== - dependencies: - safe-regex "^2.1.1" - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" - integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== - -eslint@^8.37.0: - version "8.42.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.42.0.tgz#7bebdc3a55f9ed7167251fe7259f75219cade291" - integrity sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.3" - "@eslint/js" "8.42.0" - "@humanwhocodes/config-array" "^0.11.10" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.1" - espree "^9.5.2" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.1" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - -espree@^9.5.2: - version "9.5.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" - integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: +estraverse@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== @@ -2113,21 +1542,6 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" - integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -2143,49 +1557,21 @@ expect@^27.5.1: jest-matcher-utils "^27.5.1" jest-message-util "^27.5.1" -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - fast-fifo@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.1.0.tgz#17d1a3646880b9891dfa0c54e69c5fef33cad779" integrity sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g== -fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== - dependencies: - reusify "^1.0.4" - fb-watchman@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" @@ -2193,13 +1579,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -2215,23 +1594,7 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0, flatted@^3.2.7: +flatted@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== @@ -2269,21 +1632,6 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" - integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functions-have-names@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - generate-function@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" @@ -2306,54 +1654,23 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" - integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-stream@^6.0.0, get-stream@^6.0.1: +get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -get-tsconfig@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.6.0.tgz#e977690993a42f3e320e932427502a40f7af6d05" - integrity sha512-lgbo68hHTQnFddybKbbs/RDRJnJT5YyGy2kQzVwbq+g67X73i+5MVTval34QxGkOe9X5Ujf1UYpCaphLyltjEg== - dependencies: - resolve-pkg-maps "^1.0.0" - -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -2382,53 +1699,11 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.19.0: - version "13.19.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" - integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== - dependencies: - type-fest "^0.20.2" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -globby@^13.1.3: - version "13.1.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.4.tgz#2f91c116066bcec152465ba36e5caa4a13c01317" - integrity sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g== - dependencies: - dir-glob "^3.0.1" - fast-glob "^3.2.11" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^4.0.0" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -graceful-fs@^4.2.4: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - "gradido-config@file:../config": version "1.0.0" dependencies: @@ -2450,21 +1725,6 @@ graceful-fs@^4.2.4: uuid "^8.3.2" wkx "^0.5.0" -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -2475,25 +1735,6 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -2549,11 +1790,6 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== - hypercore-crypto@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/hypercore-crypto/-/hypercore-crypto-3.3.0.tgz#03ab5b44608a563e131f629f671c6f90a83c52e6" @@ -2587,19 +1823,6 @@ ignore-by-default@^1.0.1: resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== -ignore@^5.1.1, ignore@^5.2.0, ignore@^5.2.4: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - import-local@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" @@ -2626,27 +1849,11 @@ inherits@2, inherits@^2.0.1, inherits@~2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== - dependencies: - get-intrinsic "^1.1.0" - has "^1.0.3" - side-channel "^1.0.4" - is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -2654,43 +1861,13 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-core-module@^2.11.0, is-core-module@^2.9.0: +is-core-module@^2.9.0: version "2.11.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== dependencies: has "^1.0.3" -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -2706,42 +1883,18 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: +is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" @@ -2752,64 +1905,16 @@ is-property@^1.0.2: resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" integrity sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g== -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - is-stream@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - is-typedarray@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -3291,13 +2396,6 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - jsdom@^16.6.0: version "16.7.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" @@ -3341,28 +2439,11 @@ json-parse-even-better-errors@^2.3.0: resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - json5@2.x, json5@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -json5@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -3385,14 +2466,6 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -3413,23 +2486,11 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - lodash.memoize@4.x: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -3494,11 +2555,6 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - micromatch@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" @@ -3524,12 +2580,7 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -3543,7 +2594,7 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.0, minimist@^1.2.6: +minimist@^1.2.6: version "1.2.7" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== @@ -3623,11 +2674,6 @@ nat-sampler@^1.0.1: resolved "https://registry.yarnpkg.com/nat-sampler/-/nat-sampler-1.0.1.tgz#2b68338ea6d4c139450cd971fd00a4ac1b33d923" integrity sha512-yQvyNN7xbqR8crTKk3U8gRgpcV1Az+vfCEijiHu9oHHsnIl8n3x+yXNHl42M6L3czGynAVoOT9TqBfS87gDdcw== -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -3702,13 +2748,6 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - nwsapi@^2.2.0: version "2.2.2" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" @@ -3719,35 +2758,6 @@ object-assign@^4.0.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.12.2, object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.values@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" - integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -3762,23 +2772,6 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -open@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" - integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== - dependencies: - default-browser "^4.0.0" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^2.2.0" - optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -3791,18 +2784,6 @@ optionator@^0.8.1: type-check "~0.3.2" word-wrap "~1.2.3" -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -3810,13 +2791,6 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -3824,25 +2798,11 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -3885,21 +2845,11 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -3922,23 +2872,11 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - prettier@^2.8.7: version "2.8.8" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" @@ -3976,7 +2914,7 @@ pstree.remy@^1.1.8: resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== @@ -3986,11 +2924,6 @@ querystringify@^2.1.1: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - queue-tick@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" @@ -4038,25 +2971,6 @@ regenerator-runtime@^0.13.11: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regexp-tree@~0.1.1: - version "0.1.27" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.27.tgz#2198f0ef54518ffa743fe74d983b56ffd631b6cd" - integrity sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== - -regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" - integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - -regexpp@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -4074,27 +2988,17 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - resolve-from@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve-pkg-maps@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" - integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== - resolve.exports@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== -resolve@^1.17.0, resolve@^1.20.0, resolve@^1.22.1: +resolve@^1.17.0, resolve@^1.20.0: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -4103,37 +3007,18 @@ resolve@^1.17.0, resolve@^1.20.0, resolve@^1.22.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - rfdc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" -run-applescript@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" - integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== - dependencies: - execa "^5.0.0" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -4144,22 +3029,6 @@ safe-buffer@^5.0.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - -safe-regex@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-2.1.1.tgz#f7128f00d056e2fe5c11e81a1324dd974aadced2" - integrity sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A== - dependencies: - regexp-tree "~0.1.1" - "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -4177,7 +3046,7 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" -semver@7.x, semver@^7.0.0, semver@^7.3.2, semver@^7.3.7, semver@^7.3.8: +semver@7.x, semver@^7.3.2: version "7.3.8" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== @@ -4256,16 +3125,7 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -4294,11 +3154,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - sodium-javascript@~0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/sodium-javascript/-/sodium-javascript-0.8.0.tgz#0a94d7bb58ab17be82255f3949259af59778fdbc" @@ -4439,24 +3294,6 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" - integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" - integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -4486,12 +3323,7 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -4535,19 +3367,6 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -synckit@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" - integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== - dependencies: - "@pkgr/utils" "^2.3.1" - tslib "^2.5.0" - -tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - terminal-link@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" @@ -4565,11 +3384,6 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - thenify-all@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" @@ -4599,11 +3413,6 @@ timeout-refresh@^2.0.0: resolved "https://registry.yarnpkg.com/timeout-refresh/-/timeout-refresh-2.0.1.tgz#f8ec7cf1f9d93b2635b7d4388cb820c5f6c16f98" integrity sha512-SVqEcMZBsZF9mA78rjzCrYrUs37LMJk3ShZ851ygZYW1cMeIjs9mL57KO6Iv5mmjSQnOe/29/VAfGXo+oRCiVw== -titleize@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" - integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== - tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -4686,16 +3495,6 @@ ts-node@^10.9.2: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tsconfig-paths@^3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" - integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.6" - strip-bom "^3.0.0" - tsconfig-paths@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.1.2.tgz#4819f861eef82e6da52fb4af1e8c930a39ed979a" @@ -4705,30 +3504,11 @@ tsconfig-paths@^4.1.2: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - tslib@^2.5.0: version "2.5.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -4741,11 +3521,6 @@ type-detect@4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - type-fest@^0.21.3: version "0.21.3" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" @@ -4795,16 +3570,6 @@ udx-native@^1.2.0: node-gyp-build "^4.4.0" streamx "^2.12.0" -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - undefsafe@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" @@ -4820,11 +3585,6 @@ universalify@^0.2.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - update-browserslist-db@^1.0.9: version "1.0.10" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" @@ -4833,13 +3593,6 @@ update-browserslist-db@^1.0.9: escalade "^3.1.1" picocolors "^1.0.0" -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - url-parse@^1.5.3: version "1.5.10" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" @@ -4929,17 +3682,6 @@ whatwg-url@^8.0.0, whatwg-url@^8.5.0: tr46 "^2.1.0" webidl-conversions "^6.1.0" -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -4954,7 +3696,7 @@ wkx@^0.5.0: dependencies: "@types/node" "*" -word-wrap@^1.2.3, word-wrap@~1.2.3: +word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -5063,8 +3805,3 @@ yn@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/federation/.eslintignore b/federation/.eslintignore deleted file mode 100644 index f6b255e92..000000000 --- a/federation/.eslintignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -**/*.min.js -build \ No newline at end of file diff --git a/federation/.eslintrc.js b/federation/.eslintrc.js deleted file mode 100644 index 042a417f7..000000000 --- a/federation/.eslintrc.js +++ /dev/null @@ -1,206 +0,0 @@ -// eslint-disable-next-line import/no-commonjs, import/unambiguous -module.exports = { - root: true, - env: { - node: true, - }, - parser: '@typescript-eslint/parser', - plugins: ['prettier', '@typescript-eslint', 'import', 'n', 'promise'], - extends: [ - 'standard', - 'eslint:recommended', - 'plugin:prettier/recommended', - // 'plugin:import/recommended', - // 'plugin:import/typescript', - // 'plugin:security/recommended', - // 'plugin:@eslint-community/eslint-comments/recommended', - ], - settings: { - 'import/parsers': { - '@typescript-eslint/parser': ['.ts', '.tsx'], - }, - 'import/resolver': { - typescript: { - project: ['./tsconfig.json'], - }, - node: true, - }, - }, - rules: { - 'no-console': 'error', - camelcase: 'error', - 'no-debugger': 'error', - 'prettier/prettier': [ - 'error', - { - htmlWhitespaceSensitivity: 'ignore', - }, - ], - // import - // 'import/export': 'error', - // 'import/no-deprecated': 'error', - // 'import/no-empty-named-blocks': 'error', - // 'import/no-extraneous-dependencies': 'error', - // 'import/no-mutable-exports': 'error', - // 'import/no-unused-modules': 'error', - // 'import/no-named-as-default': 'error', - // 'import/no-named-as-default-member': 'error', - // 'import/no-amd': 'error', - // 'import/no-commonjs': 'error', - // 'import/no-import-module-exports': 'error', - // 'import/no-nodejs-modules': 'off', - // 'import/unambiguous': 'error', - // 'import/default': 'error', - // 'import/named': 'error', - // 'import/namespace': 'error', - // 'import/no-absolute-path': 'error', - // 'import/no-cycle': 'error', - // 'import/no-dynamic-require': 'error', - // 'import/no-internal-modules': 'off', - // 'import/no-relative-packages': 'error', - // 'import/no-relative-parent-imports': ['error', { ignore: ['@/*'] }], - // 'import/no-self-import': 'error', - // 'import/no-unresolved': 'error', - // 'import/no-useless-path-segments': 'error', - // 'import/no-webpack-loader-syntax': 'error', - // 'import/consistent-type-specifier-style': 'error', - // 'import/exports-last': 'off', - // 'import/extensions': 'error', - // 'import/first': 'error', - // 'import/group-exports': 'off', - // 'import/newline-after-import': 'error', - // 'import/no-anonymous-default-export': 'error', - // 'import/no-default-export': 'error', - // 'import/no-duplicates': 'error', - // 'import/no-named-default': 'error', - // 'import/no-namespace': 'error', - // 'import/no-unassigned-import': 'error', - // 'import/order': [ - // 'error', - // { - // groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type'], - // 'newlines-between': 'always', - // pathGroups: [ - // { - // pattern: '@?*/**', - // group: 'external', - // position: 'after', - // }, - // { - // pattern: '@/**', - // group: 'external', - // position: 'after', - // }, - // ], - // alphabetize: { - // order: 'asc' /* sort in ascending order. Options: ['ignore', 'asc', 'desc'] */, - // caseInsensitive: true /* ignore case. Options: [true, false] */, - // }, - // distinctGroup: true, - // }, - // ], - // 'import/prefer-default-export': 'off', - // n - // 'n/handle-callback-err': 'error', - // 'n/no-callback-literal': 'error', - // 'n/no-exports-assign': 'error', - // 'n/no-extraneous-import': 'error', - // 'n/no-extraneous-require': 'error', - // 'n/no-hide-core-modules': 'error', - // 'n/no-missing-import': 'off', // not compatible with typescript - // 'n/no-missing-require': 'error', - // 'n/no-new-require': 'error', - // 'n/no-path-concat': 'error', - // 'n/no-process-exit': 'error', - // 'n/no-unpublished-bin': 'error', - // 'n/no-unpublished-import': 'off', // TODO need to exclude seeds - // 'n/no-unpublished-require': 'error', - // 'n/no-unsupported-features': ['error', { ignores: ['modules'] }], - // 'n/no-unsupported-features/es-builtins': 'error', - // 'n/no-unsupported-features/es-syntax': 'error', - // 'n/no-unsupported-features/node-builtins': 'error', - // 'n/process-exit-as-throw': 'error', - // 'n/shebang': 'error', - // 'n/callback-return': 'error', - // 'n/exports-style': 'error', - // 'n/file-extension-in-import': 'off', - // 'n/global-require': 'error', - // 'n/no-mixed-requires': 'error', - // 'n/no-process-env': 'error', - // 'n/no-restricted-import': 'error', - // 'n/no-restricted-require': 'error', - // 'n/no-sync': 'error', - // 'n/prefer-global/buffer': 'error', - // 'n/prefer-global/console': 'error', - // 'n/prefer-global/process': 'error', - // 'n/prefer-global/text-decoder': 'error', - // 'n/prefer-global/text-encoder': 'error', - // 'n/prefer-global/url': 'error', - // 'n/prefer-global/url-search-params': 'error', - // 'n/prefer-promises/dns': 'error', - // 'n/prefer-promises/fs': 'error', - // promise - // 'promise/catch-or-return': 'error', - // 'promise/no-return-wrap': 'error', - // 'promise/param-names': 'error', - // 'promise/always-return': 'error', - // 'promise/no-native': 'off', - // 'promise/no-nesting': 'warn', - // 'promise/no-promise-in-callback': 'warn', - // 'promise/no-callback-in-promise': 'warn', - // 'promise/avoid-new': 'warn', - // 'promise/no-new-statics': 'error', - // 'promise/no-return-in-finally': 'warn', - // 'promise/valid-params': 'warn', - // 'promise/prefer-await-to-callbacks': 'error', - // 'promise/no-multiple-resolved': 'error', - // eslint comments - // '@eslint-community/eslint-comments/disable-enable-pair': ['error', { allowWholeFile: true }], - // '@eslint-community/eslint-comments/no-restricted-disable': 'error', - // '@eslint-community/eslint-comments/no-use': 'off', - // '@eslint-community/eslint-comments/require-description': 'off', - }, - overrides: [ - // only for ts files - { - files: ['*.ts', '*.tsx'], - extends: [ - 'plugin:@typescript-eslint/recommended', - // 'plugin:@typescript-eslint/recommended-requiring-type-checking', - // 'plugin:@typescript-eslint/strict', - // 'plugin:type-graphql/recommended', - ], - rules: { - // allow explicitly defined dangling promises - // '@typescript-eslint/no-floating-promises': ['error', { ignoreVoid: true }], - 'no-void': ['error', { allowAsStatement: true }], - // ignore prefer-regexp-exec rule to allow string.match(regex) - '@typescript-eslint/prefer-regexp-exec': 'off', - // this should not run on ts files: https://github.com/import-js/eslint-plugin-import/issues/2215#issuecomment-911245486 - 'import/unambiguous': 'off', - // this is not compatible with typeorm, due to joined tables can be null, but are not defined as nullable - '@typescript-eslint/no-unnecessary-condition': 'off', - }, - parserOptions: { - tsconfigRootDir: __dirname, - project: ['./tsconfig.json'], - // this is to properly reference the referenced project database without requirement of compiling it - // eslint-disable-next-line camelcase - EXPERIMENTAL_useSourceOfProjectReferenceRedirect: true, - }, - }, - { - files: ['*.test.ts'], - plugins: ['jest'], - rules: { - 'jest/no-disabled-tests': 'error', - 'jest/no-focused-tests': 'error', - 'jest/no-identical-title': 'error', - 'jest/prefer-to-have-length': 'error', - 'jest/valid-expect': 'error', - '@typescript-eslint/unbound-method': 'off', - // 'jest/unbound-method': 'error', - }, - }, - ], -} diff --git a/federation/.prettierrc.js b/federation/.prettierrc.js deleted file mode 100644 index bc1d767d7..000000000 --- a/federation/.prettierrc.js +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - semi: false, - printWidth: 100, - singleQuote: true, - trailingComma: "all", - tabWidth: 2, - bracketSpacing: true, - endOfLine: "auto", -}; diff --git a/federation/package.json b/federation/package.json index d76696ddb..905941753 100644 --- a/federation/package.json +++ b/federation/package.json @@ -13,7 +13,8 @@ "start": "cross-env TZ=UTC TS_NODE_BASEURL=./build node -r tsconfig-paths/register build/src/index.js", "test": "cross-env TZ=UTC NODE_ENV=development DB_DATABASE=gradido_test_federation jest --runInBand --forceExit --detectOpenHandles", "dev": "cross-env TZ=UTC nodemon -w src --ext ts --exec ts-node -r dotenv/config -r tsconfig-paths/register src/index.ts", - "lint": "eslint --max-warnings=0 --ext .js,.ts ." + "lint": "biome check --error-on-warnings .", + "lint:fix": "biome check --error-on-warnings . --write" }, "dependencies": { "apollo-server-express": "^2.25.2", @@ -37,6 +38,7 @@ "uuid": "8.3.2" }, "devDependencies": { + "@biomejs/biome": "1.9.4", "@types/express": "4.17.12", "@types/jest": "27.0.2", "@types/joi": "^17.2.3", @@ -44,20 +46,7 @@ "@types/node": "^16.10.3", "@types/sodium-native": "^2.3.5", "@types/uuid": "^8.3.4", - "@typescript-eslint/eslint-plugin": "^5.57.1", - "@typescript-eslint/parser": "^5.57.1", "apollo-server-testing": "2.25.2", - "eslint": "^8.37.0", - "eslint-config-prettier": "^8.8.0", - "eslint-config-standard": "^17.0.0", - "eslint-import-resolver-typescript": "^3.5.4", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-jest": "^27.2.1", - "eslint-plugin-n": "^15.7.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-promise": "^6.1.1", - "eslint-plugin-security": "^1.7.1", - "eslint-plugin-type-graphql": "^1.0.0", "gradido-config": "../config", "graphql-tag": "^2.12.6", "jest": "^27.2.4", diff --git a/federation/src/client/1_0/AuthenticationClient.ts b/federation/src/client/1_0/AuthenticationClient.ts index 3a94746b1..29a686ca3 100644 --- a/federation/src/client/1_0/AuthenticationClient.ts +++ b/federation/src/client/1_0/AuthenticationClient.ts @@ -1,11 +1,11 @@ +import { federationLogger as logger } from '@/server/logger' import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCommunity' import { GraphQLClient } from 'graphql-request' -import { federationLogger as logger } from '@/server/logger' -import { OpenConnectionCallbackArgs } from '@/graphql/api/1_0/model/OpenConnectionCallbackArgs' -import { openConnectionCallback } from './query/openConnectionCallback' import { AuthenticationArgs } from '@/graphql/api/1_0/model/AuthenticationArgs' +import { OpenConnectionCallbackArgs } from '@/graphql/api/1_0/model/OpenConnectionCallbackArgs' import { authenticate } from './query/authenticate' +import { openConnectionCallback } from './query/openConnectionCallback' export class AuthenticationClient { dbCom: DbFederatedCommunity @@ -29,9 +29,8 @@ export class AuthenticationClient { async openConnectionCallback(args: OpenConnectionCallbackArgs): Promise { logger.debug('Authentication: openConnectionCallback with endpoint', this.endpoint, args) try { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any const { data } = await this.client.rawRequest(openConnectionCallback, { args }) - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + if (data && data.openConnectionCallback) { logger.warn( 'Authentication: openConnectionCallback without response data from endpoint', @@ -53,10 +52,9 @@ export class AuthenticationClient { async authenticate(args: AuthenticationArgs): Promise { logger.debug('Authentication: authenticate with endpoint=', this.endpoint) try { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-explicit-any const { data } = await this.client.rawRequest(authenticate, { args }) logger.debug('Authentication: after authenticate: data:', data) - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + const authUuid: string = data?.authenticate if (authUuid) { logger.debug('Authentication: received authenticated uuid', authUuid) diff --git a/federation/src/client/1_1/AuthenticationClient.ts b/federation/src/client/1_1/AuthenticationClient.ts index eb5721b16..b089574dd 100644 --- a/federation/src/client/1_1/AuthenticationClient.ts +++ b/federation/src/client/1_1/AuthenticationClient.ts @@ -1,5 +1,3 @@ -// eslint-disable-next-line camelcase import { AuthenticationClient as V1_0_AuthenticationClient } from '../1_0/AuthenticationClient' -// eslint-disable-next-line camelcase export class AuthenticationClient extends V1_0_AuthenticationClient {} diff --git a/federation/src/client/AuthenticationClientFactory.ts b/federation/src/client/AuthenticationClientFactory.ts index 355cf3695..67887d3bb 100644 --- a/federation/src/client/AuthenticationClientFactory.ts +++ b/federation/src/client/AuthenticationClientFactory.ts @@ -1,20 +1,18 @@ import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCommunity' -// eslint-disable-next-line camelcase + import { AuthenticationClient as V1_0_AuthenticationClient } from './1_0/AuthenticationClient' -// eslint-disable-next-line camelcase + import { AuthenticationClient as V1_1_AuthenticationClient } from './1_1/AuthenticationClient' import { ApiVersionType } from './enum/ApiVersionType' -// eslint-disable-next-line camelcase type AuthenticationClient = V1_0_AuthenticationClient | V1_1_AuthenticationClient interface AuthenticationClientInstance { id: number - // eslint-disable-next-line no-use-before-define + client: AuthenticationClient } -// eslint-disable-next-line @typescript-eslint/no-extraneous-class export class AuthenticationClientFactory { private static instanceArray: AuthenticationClientInstance[] = [] @@ -22,7 +20,7 @@ export class AuthenticationClientFactory { * The Singleton's constructor should always be private to prevent direct * construction calls with the `new` operator. */ - // eslint-disable-next-line no-useless-constructor, @typescript-eslint/no-empty-function + private constructor() {} private static createAuthenticationClient = (dbCom: DbFederatedCommunity) => { diff --git a/federation/src/config/index.ts b/federation/src/config/index.ts index 6649e2ba3..6ae02a9c1 100644 --- a/federation/src/config/index.ts +++ b/federation/src/config/index.ts @@ -1,6 +1,6 @@ +import { latestDbVersion } from '@dbTools/config/detectLastDBVersion' // ATTENTION: DO NOT PUT ANY SECRETS IN HERE (or the .env) import { Decimal } from 'decimal.js-light' -import { latestDbVersion } from '@dbTools/config/detectLastDBVersion' import dotenv from 'dotenv' import { validate } from '@config/index' @@ -63,5 +63,3 @@ export const CONFIG = { } validate(schema, CONFIG) - -export default CONFIG diff --git a/federation/src/graphql/api/1_0/logger/GetPublicCommunityInfoResultLogging.view.ts b/federation/src/graphql/api/1_0/logger/GetPublicCommunityInfoResultLogging.view.ts index 669170b98..fc0c68d30 100644 --- a/federation/src/graphql/api/1_0/logger/GetPublicCommunityInfoResultLogging.view.ts +++ b/federation/src/graphql/api/1_0/logger/GetPublicCommunityInfoResultLogging.view.ts @@ -6,7 +6,6 @@ export class GetPublicCommunityInfoResultLoggingView extends AbstractLoggingView super() } - // eslint-disable-next-line @typescript-eslint/no-explicit-any public toJSON(): any { return { name: this.self.name, diff --git a/federation/src/graphql/api/1_0/logger/SendCoinsArgsLogging.view.ts b/federation/src/graphql/api/1_0/logger/SendCoinsArgsLogging.view.ts index a12ff6372..bb9c3dd5a 100644 --- a/federation/src/graphql/api/1_0/logger/SendCoinsArgsLogging.view.ts +++ b/federation/src/graphql/api/1_0/logger/SendCoinsArgsLogging.view.ts @@ -1,12 +1,11 @@ -import { AbstractLoggingView } from '@logging/AbstractLogging.view' import { SendCoinsArgs } from '@/graphql/api/1_0/model/SendCoinsArgs' +import { AbstractLoggingView } from '@logging/AbstractLogging.view' export class SendCoinsArgsLoggingView extends AbstractLoggingView { public constructor(private self: SendCoinsArgs) { super() } - // eslint-disable-next-line @typescript-eslint/no-explicit-any public toJSON(): any { return { recipientCommunityUuid: this.self.recipientCommunityUuid, diff --git a/federation/src/graphql/api/1_0/model/Decay.ts b/federation/src/graphql/api/1_0/model/Decay.ts index 0b710c234..a32b96c13 100644 --- a/federation/src/graphql/api/1_0/model/Decay.ts +++ b/federation/src/graphql/api/1_0/model/Decay.ts @@ -1,5 +1,5 @@ import { Decimal } from 'decimal.js-light' -import { ObjectType, Field, Int } from 'type-graphql' +import { Field, Int, ObjectType } from 'type-graphql' interface DecayInterface { balance: Decimal diff --git a/federation/src/graphql/api/1_0/model/GetPublicCommunityInfoResult.ts b/federation/src/graphql/api/1_0/model/GetPublicCommunityInfoResult.ts index d51b3af93..5e4710a07 100644 --- a/federation/src/graphql/api/1_0/model/GetPublicCommunityInfoResult.ts +++ b/federation/src/graphql/api/1_0/model/GetPublicCommunityInfoResult.ts @@ -1,10 +1,8 @@ -// eslint-disable-next-line @typescript-eslint/no-unused-vars import { Community as DbCommunity } from '@entity/Community' -// eslint-disable-next-line @typescript-eslint/no-unused-vars + import { Field, ObjectType } from 'type-graphql' @ObjectType() -// eslint-disable-next-line @typescript-eslint/no-unused-vars export class GetPublicCommunityInfoResult { constructor(dbCom: DbCommunity) { this.publicKey = dbCom.publicKey.toString('hex') diff --git a/federation/src/graphql/api/1_0/model/GetPublicKeyResult.ts b/federation/src/graphql/api/1_0/model/GetPublicKeyResult.ts index 696c96cfe..1582ad892 100644 --- a/federation/src/graphql/api/1_0/model/GetPublicKeyResult.ts +++ b/federation/src/graphql/api/1_0/model/GetPublicKeyResult.ts @@ -1,8 +1,6 @@ -// eslint-disable-next-line @typescript-eslint/no-unused-vars import { Field, ObjectType } from 'type-graphql' @ObjectType() -// eslint-disable-next-line @typescript-eslint/no-unused-vars export class GetPublicKeyResult { constructor(pubKey: string) { this.publicKey = pubKey diff --git a/federation/src/graphql/api/1_0/resolver/AuthenticationResolver.ts b/federation/src/graphql/api/1_0/resolver/AuthenticationResolver.ts index 393fe3b65..cb683ab2a 100644 --- a/federation/src/graphql/api/1_0/resolver/AuthenticationResolver.ts +++ b/federation/src/graphql/api/1_0/resolver/AuthenticationResolver.ts @@ -1,16 +1,15 @@ -// eslint-disable-next-line @typescript-eslint/no-unused-vars -import { Arg, Mutation, Resolver } from 'type-graphql' +import { CONFIG } from '@/config' +import { LogError } from '@/server/LogError' import { federationLogger as logger } from '@/server/logger' import { Community as DbCommunity } from '@entity/Community' import { FederatedCommunity as DbFedCommunity } from '@entity/FederatedCommunity' import { CommunityLoggingView } from '@logging/CommunityLogging.view' import { FederatedCommunityLoggingView } from '@logging/FederatedCommunityLogging.view' -import { LogError } from '@/server/LogError' -import { OpenConnectionArgs } from '../model/OpenConnectionArgs' -import { startAuthentication, startOpenConnectionCallback } from '../util/authenticateCommunity' -import { OpenConnectionCallbackArgs } from '../model/OpenConnectionCallbackArgs' -import { CONFIG } from '@/config' +import { Arg, Mutation, Resolver } from 'type-graphql' import { AuthenticationArgs } from '../model/AuthenticationArgs' +import { OpenConnectionArgs } from '../model/OpenConnectionArgs' +import { OpenConnectionCallbackArgs } from '../model/OpenConnectionCallbackArgs' +import { startAuthentication, startOpenConnectionCallback } from '../util/authenticateCommunity' @Resolver() export class AuthenticationResolver { @@ -30,7 +29,7 @@ export class AuthenticationResolver { throw new LogError(`unknown requesting community with publicKey`, pubKeyBuf.toString('hex')) } logger.debug(`Authentication: found requestedCom:`, new CommunityLoggingView(comA)) - // no await to respond immediatly and invoke callback-request asynchron + // biome-ignore lint/complexity/noVoid: no await to respond immediately and invoke callback-request asynchronously void startOpenConnectionCallback(args, comA, CONFIG.FEDERATION_API) return true } @@ -53,7 +52,7 @@ export class AuthenticationResolver { `Authentication: found fedComB and start authentication:`, new FederatedCommunityLoggingView(fedComB), ) - // no await to respond immediatly and invoke authenticate-request asynchron + // biome-ignore lint/complexity/noVoid: no await to respond immediately and invoke authenticate-request asynchronously void startAuthentication(args.oneTimeCode, fedComB) return true } diff --git a/federation/src/graphql/api/1_0/resolver/PublicCommunityInfoResolver.test.ts b/federation/src/graphql/api/1_0/resolver/PublicCommunityInfoResolver.test.ts index 2f83b4819..8bdece2dd 100644 --- a/federation/src/graphql/api/1_0/resolver/PublicCommunityInfoResolver.test.ts +++ b/federation/src/graphql/api/1_0/resolver/PublicCommunityInfoResolver.test.ts @@ -1,10 +1,9 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -import { createTestClient } from 'apollo-server-testing' -import createServer from '@/server/createServer' -import { Community as DbCommunity } from '@entity/Community' -import CONFIG from '@/config' +import { CONFIG } from '@/config' +import { createServer } from '@/server/createServer' import { Connection } from '@dbTools/typeorm' +import { Community as DbCommunity } from '@entity/Community' + +import { createTestClient } from 'apollo-server-testing' let query: any diff --git a/federation/src/graphql/api/1_0/resolver/PublicCommunityInfoResolver.ts b/federation/src/graphql/api/1_0/resolver/PublicCommunityInfoResolver.ts index c1535b713..6ddb1f331 100644 --- a/federation/src/graphql/api/1_0/resolver/PublicCommunityInfoResolver.ts +++ b/federation/src/graphql/api/1_0/resolver/PublicCommunityInfoResolver.ts @@ -1,9 +1,8 @@ -// eslint-disable-next-line @typescript-eslint/no-unused-vars -import { Query, Resolver } from 'type-graphql' import { federationLogger as logger } from '@/server/logger' import { Community as DbCommunity } from '@entity/Community' -import { GetPublicCommunityInfoResult } from '../model/GetPublicCommunityInfoResult' +import { Query, Resolver } from 'type-graphql' import { GetPublicCommunityInfoResultLoggingView } from '../logger/GetPublicCommunityInfoResultLogging.view' +import { GetPublicCommunityInfoResult } from '../model/GetPublicCommunityInfoResult' @Resolver() export class PublicCommunityInfoResolver { diff --git a/federation/src/graphql/api/1_0/resolver/PublicKeyResolver.test.ts b/federation/src/graphql/api/1_0/resolver/PublicKeyResolver.test.ts index eafd9cba7..cb5682876 100644 --- a/federation/src/graphql/api/1_0/resolver/PublicKeyResolver.test.ts +++ b/federation/src/graphql/api/1_0/resolver/PublicKeyResolver.test.ts @@ -1,9 +1,7 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -import { createTestClient } from 'apollo-server-testing' -import createServer from '@/server/createServer' +import { CONFIG } from '@/config' +import { createServer } from '@/server/createServer' import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCommunity' -import CONFIG from '@/config' +import { createTestClient } from 'apollo-server-testing' let query: any diff --git a/federation/src/graphql/api/1_0/resolver/PublicKeyResolver.ts b/federation/src/graphql/api/1_0/resolver/PublicKeyResolver.ts index 3fb3b2c0d..afc4aca67 100644 --- a/federation/src/graphql/api/1_0/resolver/PublicKeyResolver.ts +++ b/federation/src/graphql/api/1_0/resolver/PublicKeyResolver.ts @@ -1,7 +1,6 @@ -// eslint-disable-next-line @typescript-eslint/no-unused-vars -import { Query, Resolver } from 'type-graphql' import { federationLogger as logger } from '@/server/logger' import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCommunity' +import { Query, Resolver } from 'type-graphql' import { GetPublicKeyResult } from '../model/GetPublicKeyResult' @Resolver() diff --git a/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.test.ts b/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.test.ts index d305e1726..89bb12d7a 100644 --- a/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.test.ts +++ b/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.test.ts @@ -1,16 +1,14 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -import { ApolloServerTestClient } from 'apollo-server-testing' +import { CONFIG } from '@/config' +import { fullName } from '@/graphql/util/fullName' +import { Connection } from '@dbTools/typeorm' import { Community as DbCommunity } from '@entity/Community' -import CONFIG from '@/config' import { User as DbUser } from '@entity/User' import { UserContact as DbUserContact } from '@entity/UserContact' -import { fullName } from '@/graphql/util/fullName' -import { GraphQLError } from 'graphql' import { cleanDB, testEnvironment } from '@test/helpers' import { logger } from '@test/testSetup' -import { Connection } from '@dbTools/typeorm' +import { ApolloServerTestClient } from 'apollo-server-testing' import Decimal from 'decimal.js-light' +import { GraphQLError } from 'graphql' import { SendCoinsArgs } from '../model/SendCoinsArgs' let mutate: ApolloServerTestClient['mutate'] // , con: Connection diff --git a/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.ts b/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.ts index e90a7818c..b299286fd 100644 --- a/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.ts +++ b/federation/src/graphql/api/1_0/resolver/SendCoinsResolver.ts @@ -1,22 +1,22 @@ -import { Arg, Mutation, Resolver } from 'type-graphql' +import { findUserByIdentifier } from '@/graphql/util/findUserByIdentifier' +import { fullName } from '@/graphql/util/fullName' +import { LogError } from '@/server/LogError' import { federationLogger as logger } from '@/server/logger' -import { PendingTransactionLoggingView } from '@logging/PendingTransactionLogging.view' import { Community as DbCommunity } from '@entity/Community' import { PendingTransaction as DbPendingTransaction } from '@entity/PendingTransaction' -import { SendCoinsArgs } from '../model/SendCoinsArgs' -import { LogError } from '@/server/LogError' +import { PendingTransactionLoggingView } from '@logging/PendingTransactionLogging.view' +import Decimal from 'decimal.js-light' +import { Arg, Mutation, Resolver } from 'type-graphql' import { PendingTransactionState } from '../enum/PendingTransactionState' import { TransactionTypeId } from '../enum/TransactionTypeId' +import { SendCoinsArgsLoggingView } from '../logger/SendCoinsArgsLogging.view' +import { SendCoinsArgs } from '../model/SendCoinsArgs' +import { SendCoinsResult } from '../model/SendCoinsResult' import { calculateRecipientBalance } from '../util/calculateRecipientBalance' -import { fullName } from '@/graphql/util/fullName' -import { settlePendingReceiveTransaction } from '../util/settlePendingReceiveTransaction' // import { checkTradingLevel } from '@/graphql/util/checkTradingLevel' import { revertSettledReceiveTransaction } from '../util/revertSettledReceiveTransaction' -import { findUserByIdentifier } from '@/graphql/util/findUserByIdentifier' -import { SendCoinsResult } from '../model/SendCoinsResult' -import Decimal from 'decimal.js-light' +import { settlePendingReceiveTransaction } from '../util/settlePendingReceiveTransaction' import { storeForeignUser } from '../util/storeForeignUser' -import { SendCoinsArgsLoggingView } from '../logger/SendCoinsArgsLogging.view' @Resolver() export class SendCoinsResolver { diff --git a/federation/src/graphql/api/1_0/util/authenticateCommunity.ts b/federation/src/graphql/api/1_0/util/authenticateCommunity.ts index 1d3365d9c..150d01c69 100644 --- a/federation/src/graphql/api/1_0/util/authenticateCommunity.ts +++ b/federation/src/graphql/api/1_0/util/authenticateCommunity.ts @@ -1,16 +1,16 @@ -import { OpenConnectionArgs } from '../model/OpenConnectionArgs' +import { federationLogger as logger } from '@/server/logger' import { Community as DbCommunity } from '@entity/Community' import { FederatedCommunity as DbFedCommunity } from '@entity/FederatedCommunity' -import { federationLogger as logger } from '@/server/logger' +import { OpenConnectionArgs } from '../model/OpenConnectionArgs' import { OpenConnectionCallbackArgs } from '../model/OpenConnectionCallbackArgs' -// eslint-disable-next-line camelcase -import { randombytes_random } from 'sodium-native' + import { AuthenticationClientFactory } from '@/client/AuthenticationClientFactory' -// eslint-disable-next-line camelcase +import { randombytes_random } from 'sodium-native' + import { AuthenticationClient as V1_0_AuthenticationClient } from '@/client/1_0/AuthenticationClient' -import { AuthenticationArgs } from '../model/AuthenticationArgs' import { CommunityLoggingView } from '@logging/CommunityLogging.view' import { FederatedCommunityLoggingView } from '@logging/FederatedCommunityLogging.view' +import { AuthenticationArgs } from '../model/AuthenticationArgs' export async function startOpenConnectionCallback( args: OpenConnectionArgs, @@ -41,7 +41,7 @@ export async function startOpenConnectionCallback( ) const client = AuthenticationClientFactory.getInstance(fedComA) - // eslint-disable-next-line camelcase + if (client instanceof V1_0_AuthenticationClient) { const callbackArgs = new OpenConnectionCallbackArgs() callbackArgs.oneTimeCode = oneTimeCode.toString() @@ -74,7 +74,7 @@ export async function startAuthentication( // TODO encrypt homeCom.uuid with homeCom.privateKey and sign it with callbackFedCom.publicKey const client = AuthenticationClientFactory.getInstance(fedComB) - // eslint-disable-next-line camelcase + if (client instanceof V1_0_AuthenticationClient) { const authenticationArgs = new AuthenticationArgs() authenticationArgs.oneTimeCode = oneTimeCode diff --git a/federation/src/graphql/api/1_0/util/calculateRecipientBalance.ts b/federation/src/graphql/api/1_0/util/calculateRecipientBalance.ts index 1b296f845..198c89289 100644 --- a/federation/src/graphql/api/1_0/util/calculateRecipientBalance.ts +++ b/federation/src/graphql/api/1_0/util/calculateRecipientBalance.ts @@ -9,7 +9,9 @@ export async function calculateRecipientBalance( time: Date, ): Promise<{ balance: Decimal; decay: Decay; lastTransactionId: number } | null> { const lastTransaction = await getLastTransaction(userId) - if (!lastTransaction) return null + if (!lastTransaction) { + return null + } const decay = calculateDecay(lastTransaction.balance, lastTransaction.balanceDate, time) diff --git a/federation/src/graphql/api/1_0/util/revertSettledReceiveTransaction.ts b/federation/src/graphql/api/1_0/util/revertSettledReceiveTransaction.ts index bb5adec5c..c9a522ba8 100644 --- a/federation/src/graphql/api/1_0/util/revertSettledReceiveTransaction.ts +++ b/federation/src/graphql/api/1_0/util/revertSettledReceiveTransaction.ts @@ -1,7 +1,3 @@ -/* eslint-disable @typescript-eslint/restrict-template-expressions */ -/* eslint-disable new-cap */ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ - import { getConnection } from '@dbTools/typeorm' import { Community as DbCommunity } from '@entity/Community' import { PendingTransaction as DbPendingTransaction } from '@entity/PendingTransaction' @@ -13,12 +9,12 @@ import { PendingTransactionState } from '../enum/PendingTransactionState' import { LogError } from '@/server/LogError' import { federationLogger as logger } from '@/server/logger' -import { getLastTransaction } from '@/graphql/util/getLastTransaction' import { TRANSACTIONS_LOCK } from '@/graphql/util/TRANSACTIONS_LOCK' +import { getLastTransaction } from '@/graphql/util/getLastTransaction' import { CommunityLoggingView } from '@logging/CommunityLogging.view' -import { UserLoggingView } from '@logging/UserLogging.view' import { PendingTransactionLoggingView } from '@logging/PendingTransactionLogging.view' import { TransactionLoggingView } from '@logging/TransactionLogging.view' +import { UserLoggingView } from '@logging/UserLogging.view' export async function revertSettledReceiveTransaction( homeCom: DbCommunity, diff --git a/federation/src/graphql/api/1_0/util/settlePendingReceiveTransaction.ts b/federation/src/graphql/api/1_0/util/settlePendingReceiveTransaction.ts index 0eadbe1c2..3d024e980 100644 --- a/federation/src/graphql/api/1_0/util/settlePendingReceiveTransaction.ts +++ b/federation/src/graphql/api/1_0/util/settlePendingReceiveTransaction.ts @@ -1,7 +1,3 @@ -/* eslint-disable @typescript-eslint/restrict-template-expressions */ -/* eslint-disable new-cap */ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ - import { getConnection } from '@dbTools/typeorm' import { Community as DbCommunity } from '@entity/Community' import { PendingTransaction as DbPendingTransaction } from '@entity/PendingTransaction' @@ -13,14 +9,14 @@ import { PendingTransactionState } from '../enum/PendingTransactionState' import { LogError } from '@/server/LogError' import { federationLogger as logger } from '@/server/logger' -import { getLastTransaction } from '@/graphql/util/getLastTransaction' import { TRANSACTIONS_LOCK } from '@/graphql/util/TRANSACTIONS_LOCK' -import { calculateRecipientBalance } from './calculateRecipientBalance' -import Decimal from 'decimal.js-light' +import { getLastTransaction } from '@/graphql/util/getLastTransaction' import { CommunityLoggingView } from '@logging/CommunityLogging.view' -import { UserLoggingView } from '@logging/UserLogging.view' import { PendingTransactionLoggingView } from '@logging/PendingTransactionLogging.view' import { TransactionLoggingView } from '@logging/TransactionLogging.view' +import { UserLoggingView } from '@logging/UserLogging.view' +import Decimal from 'decimal.js-light' +import { calculateRecipientBalance } from './calculateRecipientBalance' export async function settlePendingReceiveTransaction( homeCom: DbCommunity, diff --git a/federation/src/graphql/api/1_0/util/storeForeignUser.ts b/federation/src/graphql/api/1_0/util/storeForeignUser.ts index 861702d11..46e642795 100644 --- a/federation/src/graphql/api/1_0/util/storeForeignUser.ts +++ b/federation/src/graphql/api/1_0/util/storeForeignUser.ts @@ -1,9 +1,9 @@ import { User as DbUser } from '@entity/User' import { federationLogger as logger } from '@/server/logger' -import { SendCoinsArgs } from '../model/SendCoinsArgs' import { UserLoggingView } from '@logging/UserLogging.view' import { SendCoinsArgsLoggingView } from '../logger/SendCoinsArgsLogging.view' +import { SendCoinsArgs } from '../model/SendCoinsArgs' export async function storeForeignUser(args: SendCoinsArgs): Promise { if (args.senderCommunityUuid !== null && args.senderUserUuid !== null) { diff --git a/federation/src/graphql/api/1_1/resolver/PublicKeyResolver.test.ts b/federation/src/graphql/api/1_1/resolver/PublicKeyResolver.test.ts index 7ccec73af..ec0f652cc 100644 --- a/federation/src/graphql/api/1_1/resolver/PublicKeyResolver.test.ts +++ b/federation/src/graphql/api/1_1/resolver/PublicKeyResolver.test.ts @@ -1,9 +1,7 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ -import { createTestClient } from 'apollo-server-testing' -import createServer from '@/server/createServer' +import { CONFIG } from '@/config' +import { createServer } from '@/server/createServer' import { FederatedCommunity as DbFederatedCommunity } from '@entity/FederatedCommunity' -import CONFIG from '@/config' +import { createTestClient } from 'apollo-server-testing' let query: any diff --git a/federation/src/graphql/api/1_1/resolver/PublicKeyResolver.ts b/federation/src/graphql/api/1_1/resolver/PublicKeyResolver.ts index e03b36075..3cc9ed62b 100644 --- a/federation/src/graphql/api/1_1/resolver/PublicKeyResolver.ts +++ b/federation/src/graphql/api/1_1/resolver/PublicKeyResolver.ts @@ -1,8 +1,6 @@ -// eslint-disable-next-line @typescript-eslint/no-unused-vars import { Resolver } from 'type-graphql' -// eslint-disable-next-line camelcase + import { PublicKeyResolver as PublicKeyResolver_1_0 } from '../../1_0/resolver/PublicKeyResolver' @Resolver() -// eslint-disable-next-line camelcase, @typescript-eslint/no-unused-vars export class PublicKeyResolver extends PublicKeyResolver_1_0 {} diff --git a/federation/src/graphql/api/schema.ts b/federation/src/graphql/api/schema.ts index 6ba0bff56..84e756af3 100644 --- a/federation/src/graphql/api/schema.ts +++ b/federation/src/graphql/api/schema.ts @@ -1,7 +1,7 @@ -import path from 'path' -// config -import CONFIG from '../../config' +import path from 'node:path' import { federationLogger as logger } from '@/server/logger' +// config +import { CONFIG } from '../../config' export const getApiResolvers = (): string => { logger.info(`getApiResolvers...${CONFIG.FEDERATION_API}`) diff --git a/federation/src/graphql/scalar/Decimal.ts b/federation/src/graphql/scalar/Decimal.ts index 96804bdfa..f539685f9 100644 --- a/federation/src/graphql/scalar/Decimal.ts +++ b/federation/src/graphql/scalar/Decimal.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ import { Decimal } from 'decimal.js-light' import { GraphQLScalarType, Kind } from 'graphql' diff --git a/federation/src/graphql/schema.ts b/federation/src/graphql/schema.ts index 9d39f1398..64a35dd76 100644 --- a/federation/src/graphql/schema.ts +++ b/federation/src/graphql/schema.ts @@ -1,12 +1,12 @@ import { GraphQLSchema } from 'graphql' import { buildSchema } from 'type-graphql' -// import isAuthorized from './directive/isAuthorized' -import { DecimalScalar } from './scalar/Decimal' import { Decimal } from 'decimal.js-light' import { getApiResolvers } from './api/schema' +// import isAuthorized from './directive/isAuthorized' +import { DecimalScalar } from './scalar/Decimal' -const schema = async (): Promise => { +export const schema = async (): Promise => { return await buildSchema({ resolvers: [getApiResolvers()], // authChecker: isAuthorized, @@ -23,5 +23,3 @@ const schema = async (): Promise => { */ }) } - -export default schema diff --git a/federation/src/graphql/util/checkTradingLevel.ts b/federation/src/graphql/util/checkTradingLevel.ts index 9f5463a0d..4bc5be988 100644 --- a/federation/src/graphql/util/checkTradingLevel.ts +++ b/federation/src/graphql/util/checkTradingLevel.ts @@ -1,7 +1,7 @@ -import CONFIG from '@/config' +import { CONFIG } from '@/config' +import { federationLogger as logger } from '@/server/logger' import { Community as DbCommunity } from '@entity/Community' import { Decimal } from 'decimal.js-light' -import { federationLogger as logger } from '@/server/logger' export async function checkTradingLevel(homeCom: DbCommunity, amount: Decimal): Promise { const tradingLevel = CONFIG.FEDERATION_TRADING_LEVEL diff --git a/federation/src/graphql/util/decay.test.ts b/federation/src/graphql/util/decay.test.ts index 1d4ebab3b..f419982ac 100644 --- a/federation/src/graphql/util/decay.test.ts +++ b/federation/src/graphql/util/decay.test.ts @@ -1,6 +1,6 @@ import { Decimal } from 'decimal.js-light' -import { decayFormula, calculateDecay } from './decay' +import { calculateDecay, decayFormula } from './decay' describe('utils/decay', () => { describe('decayFormula', () => { @@ -16,7 +16,7 @@ describe('utils/decay', () => { expect(decayFormula(amount, seconds).toString()).toBe('1.000000021964959992727444') }) // we get pretty close, but not exact here, skipping - // eslint-disable-next-line jest/no-disabled-tests + it.skip('has correct forward calculation', () => { const amount = new Decimal(1.0).div( new Decimal('0.99999997803504048973201202316767079413460520837376'), diff --git a/federation/src/graphql/util/decay.ts b/federation/src/graphql/util/decay.ts index f195075ff..331d3b5b4 100644 --- a/federation/src/graphql/util/decay.ts +++ b/federation/src/graphql/util/decay.ts @@ -1,7 +1,7 @@ import { Decimal } from 'decimal.js-light' +import { CONFIG } from '@/config' import { LogError } from '@/server/LogError' -import CONFIG from '@/config' import { Decay } from '../api/1_0/model/Decay' // TODO: externalize all those definitions and functions into an external decay library diff --git a/federation/src/graphql/util/validateAlias.ts b/federation/src/graphql/util/validateAlias.ts index cd2d8fe1f..66d9e8595 100644 --- a/federation/src/graphql/util/validateAlias.ts +++ b/federation/src/graphql/util/validateAlias.ts @@ -24,11 +24,18 @@ const RESERVED_ALIAS = [ ] export const validateAlias = async (alias: string): Promise => { - if (alias.length < 3) throw new LogError('Given alias is too short', alias) - if (alias.length > 20) throw new LogError('Given alias is too long', alias) - if (!alias.match(VALID_ALIAS_REGEX)) throw new LogError('Invalid characters in alias', alias) - if (RESERVED_ALIAS.includes(alias.toLowerCase())) + if (alias.length < 3) { + throw new LogError('Given alias is too short', alias) + } + if (alias.length > 20) { + throw new LogError('Given alias is too long', alias) + } + if (!alias.match(VALID_ALIAS_REGEX)) { + throw new LogError('Invalid characters in alias', alias) + } + if (RESERVED_ALIAS.includes(alias.toLowerCase())) { throw new LogError('Alias is not allowed', alias) + } const aliasInUse = await DbUser.find({ where: { alias: Raw((a) => `LOWER(${a}) = "${alias.toLowerCase()}"`) }, }) diff --git a/federation/src/index.ts b/federation/src/index.ts index bdc66c87a..5c3cc6f89 100644 --- a/federation/src/index.ts +++ b/federation/src/index.ts @@ -1,22 +1,20 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ - import { createServer } from './server/createServer' // config import { CONFIG } from './config' async function main() { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: no logger needed fot startup infos console.log(`FEDERATION_PORT=${CONFIG.FEDERATION_PORT}`) - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: no logger needed fot startup infos console.log(`FEDERATION_API=${CONFIG.FEDERATION_API}`) const { app } = await createServer() app.listen(CONFIG.FEDERATION_PORT, () => { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: no logger needed fot startup infos console.log(`Server is running at http://localhost:${CONFIG.FEDERATION_PORT}`) if (CONFIG.GRAPHIQL) { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: no logger needed fot startup infos console.log( `GraphIQL available at ${CONFIG.FEDERATION_COMMUNITY_URL}/api/${CONFIG.FEDERATION_API}`, ) @@ -25,7 +23,7 @@ async function main() { } main().catch((e) => { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: no logger present console.error(e) process.exit(1) }) diff --git a/federation/src/server/LogError.ts b/federation/src/server/LogError.ts index b29e83dc8..fbd6e6d18 100644 --- a/federation/src/server/LogError.ts +++ b/federation/src/server/LogError.ts @@ -1,8 +1,6 @@ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ import { federationLogger as logger } from './logger' export class LogError extends Error { - // eslint-disable-next-line @typescript-eslint/no-explicit-any constructor(msg: string, ...details: any[]) { super(msg) logger.error(msg, ...details) diff --git a/federation/src/server/cors.ts b/federation/src/server/cors.ts index e76ed1591..873d6a2eb 100644 --- a/federation/src/server/cors.ts +++ b/federation/src/server/cors.ts @@ -5,4 +5,5 @@ const corsOptions = { exposedHeaders: ['token'], } +// biome-ignore lint/style/noDefaultExport: export default cors(corsOptions) diff --git a/federation/src/server/createServer.ts b/federation/src/server/createServer.ts index 3d3b80dd6..5ca697bd2 100644 --- a/federation/src/server/createServer.ts +++ b/federation/src/server/createServer.ts @@ -3,29 +3,29 @@ import 'reflect-metadata' import { ApolloServer } from 'apollo-server-express' import express, { Express } from 'express' -// database -import connection from '@/typeorm/connection' import { checkDBVersion } from '@/typeorm/DBVersion' +// database +import { connection } from '@/typeorm/connection' // server import cors from './cors' // import serverContext from './context' -import plugins from './plugins' +import { plugins } from './plugins' // config import { CONFIG } from '@/config' // graphql -import schema from '@/graphql/schema' +import { schema } from '@/graphql/schema' // webhooks // import { elopageWebhook } from '@/webhook/elopage' import { Connection } from '@dbTools/typeorm' -import { apolloLogger } from './logger' -import { Logger } from 'log4js' -import helmet from 'helmet' import { slowDown } from 'express-slow-down' +import helmet from 'helmet' +import { Logger } from 'log4js' +import { apolloLogger } from './logger' // i18n // import { i18n } from './localization' @@ -36,7 +36,6 @@ import { slowDown } from 'express-slow-down' type ServerDef = { apollo: ApolloServer; app: Express; con: Connection } export const createServer = async ( - // eslint-disable-next-line @typescript-eslint/no-explicit-any // context: any = serverContext, logger: Logger = apolloLogger, // localization: i18n.I18n = i18n, @@ -112,5 +111,3 @@ export const createServer = async ( return { apollo, app, con } } - -export default createServer diff --git a/federation/src/server/logger.ts b/federation/src/server/logger.ts index dd2a50cf3..505c7e4d8 100644 --- a/federation/src/server/logger.ts +++ b/federation/src/server/logger.ts @@ -1,5 +1,5 @@ +import { CONFIG } from '@/config' import log4js from 'log4js' -import CONFIG from '@/config' import { readFileSync } from 'fs' diff --git a/federation/src/server/plugins.ts b/federation/src/server/plugins.ts index 7ecbedf2a..cde1d6a03 100644 --- a/federation/src/server/plugins.ts +++ b/federation/src/server/plugins.ts @@ -1,6 +1,3 @@ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/explicit-module-boundary-types */ - import clonedeep from 'lodash.clonedeep' const setHeadersPlugin = { @@ -23,8 +20,12 @@ const setHeadersPlugin = { const filterVariables = (variables: any) => { const vars = clonedeep(variables) - if (vars && vars.password) vars.password = '***' - if (vars && vars.passwordNew) vars.passwordNew = '***' + if (vars && vars.password) { + vars.password = '***' + } + if (vars && vars.passwordNew) { + vars.passwordNew = '***' + } return vars } @@ -39,15 +40,18 @@ ${mutation || query}variables: ${JSON.stringify(filterVariables(variables), null return { willSendResponse(requestContext: any) { if (operationName !== 'IntrospectionQuery') { - if (requestContext.context.user) logger.info(`User ID: ${requestContext.context.user.id}`) + if (requestContext.context.user) { + logger.info(`User ID: ${requestContext.context.user.id}`) + } if (requestContext.response.data) { logger.info('Response Success!') logger.trace(`Response-Data: ${JSON.stringify(requestContext.response.data, null, 2)}`) } - if (requestContext.response.errors) + if (requestContext.response.errors) { logger.error(`Response-Errors: ${JSON.stringify(requestContext.response.errors, null, 2)}`) + } } return requestContext }, @@ -55,7 +59,5 @@ ${JSON.stringify(requestContext.response.errors, null, 2)}`) }, } -const plugins = +export const plugins = process.env.NODE_ENV === 'development' ? [setHeadersPlugin] : [setHeadersPlugin, logPlugin] - -export default plugins diff --git a/federation/src/typeorm/DBVersion.ts b/federation/src/typeorm/DBVersion.ts index 267dfd57e..08287f396 100644 --- a/federation/src/typeorm/DBVersion.ts +++ b/federation/src/typeorm/DBVersion.ts @@ -1,5 +1,5 @@ -import { Migration } from '@entity/Migration' import { federationLogger as logger } from '@/server/logger' +import { Migration } from '@entity/Migration' const getDBVersion = async (): Promise => { try { diff --git a/federation/src/typeorm/connection.ts b/federation/src/typeorm/connection.ts index d08d935d4..9a0d8f224 100644 --- a/federation/src/typeorm/connection.ts +++ b/federation/src/typeorm/connection.ts @@ -1,7 +1,7 @@ // TODO This is super weird - since the entities are defined in another project they have their own globals. // We cannot use our connection here, but must use the external typeorm installation -import { Connection, createConnection, FileLogger } from '@dbTools/typeorm' -import CONFIG from '@/config' +import { CONFIG } from '@/config' +import { Connection, FileLogger, createConnection } from '@dbTools/typeorm' import { entities } from '@entity/index' const connection = async (): Promise => { @@ -25,10 +25,10 @@ const connection = async (): Promise => { }, }) } catch (error) { - // eslint-disable-next-line no-console + // biome-ignore lint/suspicious/noConsole: no logger present console.log(error) return null } } -export default connection +export { connection } diff --git a/federation/test/extensions.ts b/federation/test/extensions.ts index 262a9bcdb..e27dc54ab 100644 --- a/federation/test/extensions.ts +++ b/federation/test/extensions.ts @@ -1,8 +1,8 @@ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/restrict-template-expressions */ -/* eslint-disable @typescript-eslint/no-empty-interface */ -/* eslint-disable @typescript-eslint/no-unsafe-argument */ + + + + + import { Decimal } from 'decimal.js-light' @@ -28,7 +28,7 @@ interface CustomMatchers { } declare global { - // eslint-disable-next-line @typescript-eslint/no-namespace + namespace jest { interface Expect extends CustomMatchers {} interface Matchers extends CustomMatchers {} diff --git a/federation/test/helpers.ts b/federation/test/helpers.ts index 67feea5fa..f240e4a36 100644 --- a/federation/test/helpers.ts +++ b/federation/test/helpers.ts @@ -1,9 +1,9 @@ -/* eslint-disable @typescript-eslint/unbound-method */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ -/* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-explicit-any */ -/* eslint-disable @typescript-eslint/no-unsafe-call */ -/* eslint-disable @typescript-eslint/no-unsafe-return */ + + + + + + import { entities } from '@entity/index' import { createTestClient } from 'apollo-server-testing' diff --git a/federation/yarn.lock b/federation/yarn.lock index 30b56b378..36713b050 100644 --- a/federation/yarn.lock +++ b/federation/yarn.lock @@ -335,6 +335,60 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@biomejs/biome@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-1.9.4.tgz#89766281cbc3a0aae865a7ff13d6aaffea2842bf" + integrity sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog== + optionalDependencies: + "@biomejs/cli-darwin-arm64" "1.9.4" + "@biomejs/cli-darwin-x64" "1.9.4" + "@biomejs/cli-linux-arm64" "1.9.4" + "@biomejs/cli-linux-arm64-musl" "1.9.4" + "@biomejs/cli-linux-x64" "1.9.4" + "@biomejs/cli-linux-x64-musl" "1.9.4" + "@biomejs/cli-win32-arm64" "1.9.4" + "@biomejs/cli-win32-x64" "1.9.4" + +"@biomejs/cli-darwin-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz#dfa376d23a54a2d8f17133c92f23c1bf2e62509f" + integrity sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw== + +"@biomejs/cli-darwin-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz#eafc2ce3849d385fc02238aad1ca4a73395a64d9" + integrity sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg== + +"@biomejs/cli-linux-arm64-musl@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz#d780c3e01758fc90f3268357e3f19163d1f84fca" + integrity sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA== + +"@biomejs/cli-linux-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz#8ed1dd0e89419a4b66a47f95aefb8c46ae6041c9" + integrity sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g== + +"@biomejs/cli-linux-x64-musl@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz#f36982b966bd671a36671e1de4417963d7db15fb" + integrity sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg== + +"@biomejs/cli-linux-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz#a0a7f56680c76b8034ddc149dbf398bdd3a462e8" + integrity sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg== + +"@biomejs/cli-win32-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz#e2ef4e0084e76b7e26f0fc887c5ef1265ea56200" + integrity sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg== + +"@biomejs/cli-win32-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz#4c7afa90e3970213599b4095e62f87e5972b2340" + integrity sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA== + "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -342,38 +396,6 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.4.0": - version "4.5.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" - integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== - -"@eslint/eslintrc@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" - integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.5.2" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.42.0": - version "8.42.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.42.0.tgz#484a1d638de2911e6f5a30c12f49c7e4a3270fb6" - integrity sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw== - "@graphql-typed-document-node/core@^3.1.1": version "3.2.0" resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" @@ -391,25 +413,6 @@ dependencies: "@hapi/hoek" "^9.0.0" -"@humanwhocodes/config-array@^0.11.10": - version "0.11.10" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" - integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" - integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== - "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" @@ -648,39 +651,6 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@pkgr/utils@^2.3.1": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.1.tgz#adf291d0357834c410ce80af16e711b56c7b1cd3" - integrity sha512-JOqwkgFEyi+OROIyq7l4Jy28h/WwhDnG/cPkXG2Z1iFbubB6jsHW1NDvmyOzTBxHr3yg68YGirmh1JUgMqa+9w== - dependencies: - cross-spawn "^7.0.3" - fast-glob "^3.2.12" - is-glob "^4.0.3" - open "^9.1.0" - picocolors "^1.0.0" - tslib "^2.5.0" - "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" @@ -977,16 +947,6 @@ dependencies: joi "*" -"@types/json-schema@^7.0.9": - version "7.0.12" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" - integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - "@types/keygrip@*": version "1.0.2" resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" @@ -1075,11 +1035,6 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/semver@^7.3.12": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" - integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== - "@types/semver@^7.3.3": version "7.3.13" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" @@ -1129,97 +1084,6 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.57.1": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.9.tgz#2604cfaf2b306e120044f901e20c8ed926debf15" - integrity sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA== - dependencies: - "@eslint-community/regexpp" "^4.4.0" - "@typescript-eslint/scope-manager" "5.59.9" - "@typescript-eslint/type-utils" "5.59.9" - "@typescript-eslint/utils" "5.59.9" - debug "^4.3.4" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - natural-compare-lite "^1.4.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/experimental-utils@^5.9.0": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.59.9.tgz#e77482a8b70f1a6aa3a1c6a128be4a5e0e6db940" - integrity sha512-eZTK/Ci0QAqNc/q2MqMwI2+QI5ZI9HM12FcfGwbEvKif5ev/CIIYLmrlckvgPrC8XSbl39HtErR5NJiQkRkvWg== - dependencies: - "@typescript-eslint/utils" "5.59.9" - -"@typescript-eslint/parser@^5.57.1": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.59.9.tgz#a85c47ccdd7e285697463da15200f9a8561dd5fa" - integrity sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ== - dependencies: - "@typescript-eslint/scope-manager" "5.59.9" - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/typescript-estree" "5.59.9" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.59.9.tgz#eadce1f2733389cdb58c49770192c0f95470d2f4" - integrity sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ== - dependencies: - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/visitor-keys" "5.59.9" - -"@typescript-eslint/type-utils@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.59.9.tgz#53bfaae2e901e6ac637ab0536d1754dfef4dafc2" - integrity sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q== - dependencies: - "@typescript-eslint/typescript-estree" "5.59.9" - "@typescript-eslint/utils" "5.59.9" - debug "^4.3.4" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.9.tgz#3b4e7ae63718ce1b966e0ae620adc4099a6dcc52" - integrity sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw== - -"@typescript-eslint/typescript-estree@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.9.tgz#6bfea844e468427b5e72034d33c9fffc9557392b" - integrity sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA== - dependencies: - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/visitor-keys" "5.59.9" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.59.9", "@typescript-eslint/utils@^5.10.0": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.59.9.tgz#adee890107b5ffe02cd46fdaa6c2125fb3c6c7c4" - integrity sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.59.9" - "@typescript-eslint/types" "5.59.9" - "@typescript-eslint/typescript-estree" "5.59.9" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.59.9": - version "5.59.9" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.9.tgz#9f86ef8e95aca30fb5a705bb7430f95fc58b146d" - integrity sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q== - dependencies: - "@typescript-eslint/types" "5.59.9" - eslint-visitor-keys "^3.3.0" - "@wry/equality@^0.1.2": version "0.1.11" resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.11.tgz#35cb156e4a96695aa81a9ecc4d03787bc17f1790" @@ -1253,11 +1117,6 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - acorn-walk@^7.1.1: version "7.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" @@ -1273,7 +1132,7 @@ acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^8.2.4, acorn@^8.8.0: +acorn@^8.2.4: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== @@ -1290,16 +1149,6 @@ agent-base@6: dependencies: debug "4" -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - ansi-escapes@^4.2.1: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" @@ -1508,52 +1357,11 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== -array-includes@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" - integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" - is-string "^1.0.7" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.flat@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" - integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" - integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-shim-unscopables "^1.0.0" - array.prototype.reduce@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac" @@ -1658,11 +1466,6 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -big-integer@^1.6.44: - version "1.6.51" - resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686" - integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg== - binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -1702,13 +1505,6 @@ body-parser@1.20.1, body-parser@^1.18.3: type-is "~1.6.18" unpipe "1.0.0" -bplist-parser@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e" - integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw== - dependencies: - big-integer "^1.6.44" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1758,20 +1554,6 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -builtins@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" - integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== - dependencies: - semver "^7.0.0" - -bundle-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a" - integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw== - dependencies: - run-applescript "^5.0.0" - busboy@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b" @@ -2003,7 +1785,7 @@ cross-fetch@^3.1.5: dependencies: node-fetch "^2.6.12" -cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.1, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -2055,7 +1837,7 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -2084,7 +1866,7 @@ dedent@^0.7.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== -deep-is@^0.1.3, deep-is@~0.1.3: +deep-is@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== @@ -2094,29 +1876,6 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.0.tgz#65491893ec47756d44719ae520e0e2609233b59b" integrity sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og== -default-browser-id@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c" - integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA== - dependencies: - bplist-parser "^0.2.0" - untildify "^4.0.0" - -default-browser@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da" - integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA== - dependencies: - bundle-name "^3.0.0" - default-browser-id "^3.0.0" - execa "^7.1.1" - titleize "^3.0.0" - -define-lazy-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f" - integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - define-properties@^1.1.3, define-properties@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" @@ -2177,27 +1936,6 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - domexception@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" @@ -2235,14 +1973,6 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -enhanced-resolve@^5.12.0: - version "5.14.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz#de684b6803724477a4af5d74ccae5de52c25f6b3" - integrity sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow== - dependencies: - graceful-fs "^4.2.4" - tapable "^2.2.0" - error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -2303,13 +2033,6 @@ es-set-tostringtag@^2.0.1: has "^1.0.3" has-tostringtag "^1.0.0" -es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== - dependencies: - has "^1.0.3" - es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" @@ -2339,11 +2062,6 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - escodegen@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" @@ -2356,246 +2074,12 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" - integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== - -eslint-config-standard@^17.0.0: - version "17.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz#40ffb8595d47a6b242e07cbfd49dc211ed128975" - integrity sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q== - -eslint-import-resolver-node@^0.3.7: - version "0.3.7" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" - integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== - dependencies: - debug "^3.2.7" - is-core-module "^2.11.0" - resolve "^1.22.1" - -eslint-import-resolver-typescript@^3.5.4: - version "3.5.5" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz#0a9034ae7ed94b254a360fbea89187b60ea7456d" - integrity sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw== - dependencies: - debug "^4.3.4" - enhanced-resolve "^5.12.0" - eslint-module-utils "^2.7.4" - get-tsconfig "^4.5.0" - globby "^13.1.3" - is-core-module "^2.11.0" - is-glob "^4.0.3" - synckit "^0.8.5" - -eslint-module-utils@^2.7.4: - version "2.7.4" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974" - integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA== - dependencies: - debug "^3.2.7" - -eslint-plugin-es@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz#f0822f0c18a535a97c3e714e89f88586a7641ec9" - integrity sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ== - dependencies: - eslint-utils "^2.0.0" - regexpp "^3.0.0" - -eslint-plugin-import@^2.27.5: - version "2.27.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" - integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== - dependencies: - array-includes "^3.1.6" - array.prototype.flat "^1.3.1" - array.prototype.flatmap "^1.3.1" - debug "^3.2.7" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.7.4" - has "^1.0.3" - is-core-module "^2.11.0" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.values "^1.1.6" - resolve "^1.22.1" - semver "^6.3.0" - tsconfig-paths "^3.14.1" - -eslint-plugin-jest@^27.2.1: - version "27.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.2.1.tgz#b85b4adf41c682ea29f1f01c8b11ccc39b5c672c" - integrity sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg== - dependencies: - "@typescript-eslint/utils" "^5.10.0" - -eslint-plugin-n@^15.7.0: - version "15.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz#e29221d8f5174f84d18f2eb94765f2eeea033b90" - integrity sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q== - dependencies: - builtins "^5.0.1" - eslint-plugin-es "^4.1.0" - eslint-utils "^3.0.0" - ignore "^5.1.1" - is-core-module "^2.11.0" - minimatch "^3.1.2" - resolve "^1.22.1" - semver "^7.3.8" - -eslint-plugin-prettier@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" - integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== - dependencies: - prettier-linter-helpers "^1.0.0" - -eslint-plugin-promise@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz#269a3e2772f62875661220631bd4dafcb4083816" - integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig== - -eslint-plugin-security@^1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-security/-/eslint-plugin-security-1.7.1.tgz#0e9c4a471f6e4d3ca16413c7a4a51f3966ba16e4" - integrity sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ== - dependencies: - safe-regex "^2.1.1" - -eslint-plugin-type-graphql@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-type-graphql/-/eslint-plugin-type-graphql-1.0.0.tgz#d348560ed628d6ca1dfcea35a02891432daafe6b" - integrity sha512-l6Yjcylavs88mcRZ3znwRuu8R9a8eoLdSaMGfycaMragf+VMxiz3kwjPmYz8AZxqqp8gvM7/2EGJqkkjM4NKIQ== - dependencies: - "@typescript-eslint/experimental-utils" "^5.9.0" - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" - integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-utils@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== - -eslint@^8.37.0: - version "8.42.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.42.0.tgz#7bebdc3a55f9ed7167251fe7259f75219cade291" - integrity sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.3" - "@eslint/js" "8.42.0" - "@humanwhocodes/config-array" "^0.11.10" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.1" - espree "^9.5.2" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.1" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - -espree@^9.5.2: - version "9.5.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" - integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: +estraverse@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== @@ -2630,21 +2114,6 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" - integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -2750,44 +2219,16 @@ extract-files@^9.0.0: resolved "https://registry.yarnpkg.com/extract-files/-/extract-files-9.0.0.tgz#8a7744f2437f81f5ed3250ed9f1550de902fe54a" integrity sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ== -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-diff@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== - -fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== - dependencies: - reusify "^1.0.4" - fb-watchman@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" @@ -2795,13 +2236,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -2843,23 +2277,7 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0, flatted@^3.2.7: +flatted@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== @@ -2958,7 +2376,7 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-stream@^6.0.0, get-stream@^6.0.1: +get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== @@ -2971,27 +2389,13 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" -get-tsconfig@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.6.0.tgz#e977690993a42f3e320e932427502a40f7af6d05" - integrity sha512-lgbo68hHTQnFddybKbbs/RDRJnJT5YyGy2kQzVwbq+g67X73i+5MVTval34QxGkOe9X5Ujf1UYpCaphLyltjEg== - dependencies: - resolve-pkg-maps "^1.0.0" - -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -3009,13 +2413,6 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.19.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== - dependencies: - type-fest "^0.20.2" - globalthis@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" @@ -3023,29 +2420,6 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -globby@^13.1.3: - version "13.1.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.4.tgz#2f91c116066bcec152465ba36e5caa4a13c01317" - integrity sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g== - dependencies: - dir-glob "^3.0.1" - fast-glob "^3.2.11" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^4.0.0" - gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -3058,26 +2432,11 @@ graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -graceful-fs@^4.2.4: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - gradido-config@../config: version "1.0.0" dependencies: joi "^17.13.3" -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - graphql-extensions@^0.16.0: version "0.16.0" resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.16.0.tgz#32669fde0a2f115de60e5dda818ae457c1d71bb8" @@ -3263,11 +2622,6 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== - iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -3280,19 +2634,6 @@ ignore-by-default@^1.0.1: resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== -ignore@^5.1.1, ignore@^5.2.0: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - import-local@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" @@ -3379,7 +2720,7 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.11.0, is-core-module@^2.9.0: +is-core-module@^2.9.0: version "2.11.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== @@ -3393,16 +2734,6 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-docker@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200" - integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -3418,20 +2749,13 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: +is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" -is-inside-container@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4" - integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - dependencies: - is-docker "^3.0.0" - is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" @@ -3449,11 +2773,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" @@ -3479,11 +2798,6 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" @@ -3521,13 +2835,6 @@ is-weakref@^1.0.2: dependencies: call-bind "^1.0.2" -is-wsl@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -4009,13 +3316,6 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - jsdom@^16.6.0: version "16.7.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" @@ -4059,28 +3359,11 @@ json-parse-even-better-errors@^2.3.0: resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - json5@2.x, json5@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -json5@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -4098,14 +3381,6 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -4131,13 +3406,6 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - lodash.clonedeep@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" @@ -4148,11 +3416,6 @@ lodash.get@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" @@ -4232,11 +3495,6 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -4272,19 +3530,14 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.6: +minimist@^1.2.6: version "1.2.7" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== @@ -4309,11 +3562,6 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -4388,13 +3636,6 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" - nwsapi@^2.2.0: version "2.2.2" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" @@ -4440,15 +3681,6 @@ object.getownpropertydescriptors@^2.1.1: define-properties "^1.1.4" es-abstract "^1.20.4" -object.values@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" - integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - on-finished@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" @@ -4477,23 +3709,6 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - dependencies: - mimic-fn "^4.0.0" - -open@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6" - integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg== - dependencies: - default-browser "^4.0.0" - define-lazy-prop "^3.0.0" - is-inside-container "^1.0.0" - is-wsl "^2.2.0" - optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -4506,18 +3721,6 @@ optionator@^0.8.1: type-check "~0.3.2" word-wrap "~1.2.3" -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -4525,13 +3728,6 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -4539,25 +3735,11 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -4593,11 +3775,6 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" @@ -4608,11 +3785,6 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -4635,23 +3807,11 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - prettier@^2.8.7: version "2.8.8" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" @@ -4692,11 +3852,6 @@ pstree.remy@^1.1.8: resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== -punycode@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.2.0.tgz#2092cc57cd2582c38e4e7e8bb869dc8d3148bc74" - integrity sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw== - punycode@^2.1.1: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" @@ -4719,11 +3874,6 @@ querystringify@^2.1.1: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -4766,11 +3916,6 @@ reflect-metadata@^0.1.13: resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== -regexp-tree@~0.1.1: - version "0.1.27" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.27.tgz#2198f0ef54518ffa743fe74d983b56ffd631b6cd" - integrity sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== - regexp.prototype.flags@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" @@ -4780,11 +3925,6 @@ regexp.prototype.flags@^1.4.3: define-properties "^1.1.3" functions-have-names "^1.2.2" -regexpp@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -4802,27 +3942,17 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - resolve-from@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve-pkg-maps@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" - integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== - resolve.exports@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== -resolve@^1.20.0, resolve@^1.22.1: +resolve@^1.20.0: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -4836,37 +3966,18 @@ retry@0.13.1: resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - rfdc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== -rimraf@^3.0.0, rimraf@^3.0.2: +rimraf@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" -run-applescript@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c" - integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg== - dependencies: - execa "^5.0.0" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - safe-buffer@5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -4886,13 +3997,6 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -safe-regex@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-2.1.1.tgz#f7128f00d056e2fe5c11e81a1324dd974aadced2" - integrity sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A== - dependencies: - regexp-tree "~0.1.1" - "safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -4922,13 +4026,6 @@ semver@^6.0.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.0.0, semver@^7.3.7, semver@^7.3.8: - version "7.5.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" - integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== - dependencies: - lru-cache "^6.0.0" - semver@~7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" @@ -5031,7 +4128,7 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== @@ -5053,11 +4150,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - sodium-native@^3.3.0: version "3.4.1" resolved "https://registry.yarnpkg.com/sodium-native/-/sodium-native-3.4.1.tgz#44616c07ccecea15195f553af88b3e574b659741" @@ -5176,12 +4268,7 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -5241,19 +4328,6 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -synckit@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3" - integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q== - dependencies: - "@pkgr/utils" "^2.3.1" - tslib "^2.5.0" - -tapable@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" - integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== - terminal-link@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" @@ -5271,21 +4345,11 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - throat@^6.0.1: version "6.0.2" resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.2.tgz#51a3fbb5e11ae72e2cf74861ed5c8020f89f29fe" integrity sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ== -titleize@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53" - integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ== - tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -5382,16 +4446,6 @@ ts-node@^10.9.2: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tsconfig-paths@^3.14.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a" - integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.1" - minimist "^1.2.6" - strip-bom "^3.0.0" - tsconfig-paths@^4.1.1: version "4.1.2" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.1.2.tgz#4819f861eef82e6da52fb4af1e8c930a39ed979a" @@ -5401,7 +4455,7 @@ tsconfig-paths@^4.1.1: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.3: +tslib@^1.10.0, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -5411,25 +4465,6 @@ tslib@^2.0.1, tslib@^2.1.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== -tslib@^2.5.0: - version "2.5.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" - integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -5442,11 +4477,6 @@ type-detect@4.0.8: resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - type-fest@^0.21.3: version "0.21.3" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" @@ -5525,11 +4555,6 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -untildify@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" - integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== - update-browserslist-db@^1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" @@ -5538,13 +4563,6 @@ update-browserslist-db@^1.0.10: escalade "^3.1.1" picocolors "^1.0.0" -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - url-parse@^1.5.3: version "1.5.10" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" @@ -5698,7 +4716,7 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -word-wrap@^1.2.3, word-wrap@~1.2.3: +word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -5788,11 +4806,6 @@ yn@3.1.1: resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - zen-observable-ts@^0.8.21: version "0.8.21" resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz#85d0031fbbde1eba3cd07d3ba90da241215f421d" diff --git a/package.json b/package.json index df99a831a..a8f307a15 100644 --- a/package.json +++ b/package.json @@ -13,5 +13,8 @@ "dependencies": { "auto-changelog": "^2.4.0", "uuid": "^8.3.2" + }, + "devDependencies": { + "@biomejs/biome": "1.9.4" } } diff --git a/yarn.lock b/yarn.lock index 2c8f9b681..358d08f46 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,60 @@ # yarn lockfile v1 +"@biomejs/biome@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-1.9.4.tgz#89766281cbc3a0aae865a7ff13d6aaffea2842bf" + integrity sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog== + optionalDependencies: + "@biomejs/cli-darwin-arm64" "1.9.4" + "@biomejs/cli-darwin-x64" "1.9.4" + "@biomejs/cli-linux-arm64" "1.9.4" + "@biomejs/cli-linux-arm64-musl" "1.9.4" + "@biomejs/cli-linux-x64" "1.9.4" + "@biomejs/cli-linux-x64-musl" "1.9.4" + "@biomejs/cli-win32-arm64" "1.9.4" + "@biomejs/cli-win32-x64" "1.9.4" + +"@biomejs/cli-darwin-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz#dfa376d23a54a2d8f17133c92f23c1bf2e62509f" + integrity sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw== + +"@biomejs/cli-darwin-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz#eafc2ce3849d385fc02238aad1ca4a73395a64d9" + integrity sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg== + +"@biomejs/cli-linux-arm64-musl@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz#d780c3e01758fc90f3268357e3f19163d1f84fca" + integrity sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA== + +"@biomejs/cli-linux-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz#8ed1dd0e89419a4b66a47f95aefb8c46ae6041c9" + integrity sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g== + +"@biomejs/cli-linux-x64-musl@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz#f36982b966bd671a36671e1de4417963d7db15fb" + integrity sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg== + +"@biomejs/cli-linux-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz#a0a7f56680c76b8034ddc149dbf398bdd3a462e8" + integrity sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg== + +"@biomejs/cli-win32-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz#e2ef4e0084e76b7e26f0fc887c5ef1265ea56200" + integrity sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg== + +"@biomejs/cli-win32-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz#4c7afa90e3970213599b4095e62f87e5972b2340" + integrity sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA== + auto-changelog@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/auto-changelog/-/auto-changelog-2.4.0.tgz#a2d57d49b70ada7ca2e7c6a20a71572561d19cd9"