diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 32a05fd6f..000000000 --- a/.babelrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "plugins": [ - [ - "@babel/plugin-transform-runtime", - { - "corejs": { - "version": 3, - "proposals": true - } - } - ] - ] -} diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..8abca405f --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "npm" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "daily" diff --git a/CHANGELOG.md b/CHANGELOG.md index f6d782c51..fddba3487 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,22 @@ --> +## 12.89.0 (2021/08/21) + +### Improvements +- アカウント削除の安定性を向上 +- 絵文字オートコンプリートの挙動を改修 +- localStorageのaccountsはindexedDBで保持するように +- ActivityPub: ジョブキューの試行タイミングを調整 (#7635) +- API: sw/unregisterを追加 +- ワードミュートのドキュメントを追加 +- クライアントのデザインの調整 +- 依存関係の更新 + +### Bugfixes +- チャンネルを作成しているとアカウントを削除できないのを修正 +- ノートの「削除して編集」をするとアンケートの選択肢が[object Object]になる問題を修正 + ## 12.88.0 (2021/08/17) ### Features diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 436d4224d..b3c67ff4d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -35,6 +35,11 @@ If your language is not listed in Crowdin, please open an issue. ## Test * Test codes are located in [`/test`](/test). +### Run specify test +``` +npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT="./test/tsconfig.json" npx mocha test/foo.ts --require ts-node/register +``` + ## Continuous integration Misskey uses GitHub Actions for executing automated tests. Configuration files are located in [`/.github/workflows`](/.github/workflows). @@ -245,6 +250,9 @@ npx ts-node ./node_modules/typeorm/cli.js migration:generate -n 変更の名前 ### コネクションには`markRaw`せよ **Vueのコンポーネントのdataオプションとして**misskey.jsのコネクションを設定するとき、必ず`markRaw`でラップしてください。インスタンスが不必要にリアクティブ化されることで、misskey.js内の処理で不具合が発生するとともに、パフォーマンス上の問題にも繋がる。なお、Composition APIを使う場合はこの限りではない(リアクティブ化はマニュアルなため)。 +### JSONのimportに気を付けよう +TypeScriptでjsonをimportすると、tscでコンパイルするときにそのjsonファイルも一緒にdistディレクトリに吐き出されてしまう。この挙動により、意図せずファイルの書き換えが発生することがあるので、jsonをimportするときは書き換えられても良いものかどうか確認すること。書き換えされて欲しくない場合は、importで読み込むのではなく、`fs.readFileSync`などの関数を使って読み込むようにすればよい。 + ## その他 ### HTMLのクラス名で follow という単語は使わない 広告ブロッカーで誤ってブロックされる diff --git a/docs/setup.en.md b/docs/setup.en.md index bd36f0f00..bb72fcda1 100644 --- a/docs/setup.en.md +++ b/docs/setup.en.md @@ -24,7 +24,7 @@ Please install and setup these softwares: #### Dependencies :package: * **[Node.js](https://nodejs.org/en/)** (12.x, 14.x) -* **[PostgreSQL](https://www.postgresql.org/)** (>= 10) +* **[PostgreSQL](https://www.postgresql.org/)** (12.x / 13.x is preferred) * **[Redis](https://redis.io/)** ##### Optional diff --git a/index.js b/index.js index 9b91b0a03..aa103e667 100644 --- a/index.js +++ b/index.js @@ -1,3 +1,13 @@ +/* +import * as fs from 'fs'; + +if (fs.existsSync('./built')) { + import('./built/index.js').then(built => built()); +} else { + console.log('Built code is not found. Probably an error occurred during a build or you just forgot to build.'); +} +*/ + const fs = require('fs'); if (fs.existsSync('./built')) { diff --git a/locales/de-DE.yml b/locales/de-DE.yml index 1f9afbdc2..0fcfc9b46 100644 --- a/locales/de-DE.yml +++ b/locales/de-DE.yml @@ -777,6 +777,14 @@ misskeyUpdated: "Misskey wurde aktualisiert!" whatIsNew: "Änderungen anzeigen" translate: "Übersetzen" translatedFrom: "Aus {x} übersetzt" +accountDeletionInProgress: "Löschung des Benutzerkontos momentan in Bearbeitung" +_accountDelete: + accountDelete: "Benutzerkonto löschen" + mayTakeTime: "Da die Löschung eines Benutzerkontos ein aufwendiger Prozess ist, kann dessen Dauer davon abhängen, wie viel Inhalt in diesem erstellt wurde oder wie viele Dateien hochgeladen wurden." + sendEmail: "Sobald die Löschung abgeschlossen ist, wird an die mit ihm verknüpfte Email-Adresse eine Benachrichtigung versendet." + requestAccountDelete: "Löschung des Benutzerkontos anfordern" + started: "Löschung wurde eingeleitet." + inProgress: "Löschung in Bearbeitung" _docs: continueReading: "Mehr lesen" features: "Funktionen" diff --git a/locales/en-US.yml b/locales/en-US.yml index 24569eeec..cf82a8cd7 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -777,6 +777,14 @@ misskeyUpdated: "Misskey has been updated!" whatIsNew: "Show changes" translate: "Translate" translatedFrom: "Translated from {x}" +accountDeletionInProgress: "Account deletion is currently in progress" +_accountDelete: + accountDelete: "Delete Account" + mayTakeTime: "As account deletion is a resource-heavy process, it may take some time to complete depending on how much content you have created and how many files you have uploaded." + sendEmail: "Once account deletion has been completed, an email will be sent to the email address registered to this account." + requestAccountDelete: "Request account deletion" + started: "Deletion has been started." + inProgress: "Deletion is currently in progress" _docs: continueReading: "Read more" features: "Features" diff --git a/locales/eo-UY.yml b/locales/eo-UY.yml index 15575c753..bb141a692 100644 --- a/locales/eo-UY.yml +++ b/locales/eo-UY.yml @@ -1,7 +1,7 @@ --- _lang_: "Esperanto" headlineMisskey: "Reto ligata per notoj" -introMisskey: "Bonvenon! Misskey estas malfermitkoda malcentraliza mikrobloga servo.\nKreu \"noto\"n por diskonigi tion ke nun okazas, aŭ por dissendu pri vi📡\nPer la funkcio \"reago\" vi ankaŭ povas rapide esprimi vian senton pri ĉies noto👍\nVolu esplori nova mondo🚀" +introMisskey: "Bonvenon! Misskey estas malfermitkoda malcentraliza mikrobloga servo.\nKreu \"noto\"n por diskonigu tion ke nun okazas, aŭ por dissendu pri vi. 📡\nPer la funkcio \"reago\", vi ankaŭ povas rapide esprimi vian senton pri ĉies noto. 👍\nOni esploru novan mondon. 🚀" monthAndDay: "{day}-a/{month}" search: "Serĉi" notifications: "Sciigoj" @@ -119,7 +119,7 @@ emojiName: "Nomo de emoĵio" emojiUrl: "URL de la emoĵio" addEmoji: "Aldoni emoĵion" settingGuide: "Rekomendaj agordoj" -cacheRemoteFiles: "Havi staplon por transaj dosieroj" +cacheRemoteFiles: "Havi staplon de transaj dosieroj" flagAsBot: "Tiu uzanto estas roboto" flagAsCat: "Tiu uzanto estas kato" addAccount: "Aldoni konton" @@ -151,7 +151,7 @@ blockedUsers: "Blokataj uzantoj" noUsers: "Sen uzantoj" editProfile: "Redakti profilon" noteDeleteConfirm: "Ĉu vi certas ke vi volas forviŝi la noton?" -pinLimitExceeded: "Vi ne plu povas alpingli noton." +pinLimitExceeded: "Vi povas alpingli ne pli noton." processing: "Traktado..." noCustomEmojis: "Neniu emoĵio" federating: "Kunfederado" @@ -169,7 +169,7 @@ currentPassword: "Aktuala pasvorto" newPassword: "Nova pasvorto" newPasswordRetype: "Reentajpu la novan pasvorton" attachFile: "Aldoni dosieron" -more: "Plu!" +more: "Plu !" featured: "Maksimumi" usernameOrUserId: "Uzantnomo aŭ identigilo de uzanto" noSuchUser: "Neniuj uzantoj trovitaj." @@ -351,6 +351,7 @@ emailServer: "Retpoŝta servilo" email: "Retpoŝto" emailAddress: "Retpoŝta adreso" smtpConfig: "Agordoj de la servilo SMTP" +smtpPort: "Pordo" smtpUser: "Uzantnomo" smtpPass: "Pasvorto" wordMute: "Silentigo de vortoj" @@ -363,9 +364,9 @@ create: "Krei" notificationSetting: "Agordoj de sciigoj" useGlobalSetting: "Oni uzas malloka agordo" fileIdOrUrl: "Dosiera identigilo aŭ URL" -abuseReports: "Signali" -reportAbuse: "Signali" -reportAbuseOf: "Signali {name}'(o)n" +abuseReports: "Signaloj" +reportAbuse: "Signalo" +reportAbuseOf: "Signali kontraŭ {name}'(o)" send: "Sendi" openInNewTab: "Malfermi en nova langeto" editTheseSettingsMayBreakAccount: "Redakti tiujn agordojn estas eble damaĝi konton." @@ -667,6 +668,8 @@ _pages: arg1: "Listoj" _listLen: arg1: "Listoj" + _splitStrByLine: + arg1: "Teksto" types: array: "Listoj" stringArray: "List de teksto" @@ -677,7 +680,7 @@ _notification: youGotMessagingMessageFromGroup: "Retbabilan mesaĝon oni sendis al la grupo {name}" youWereFollowed: "sksekvis vin" youReceivedFollowRequest: "Vi ricevis peton de sekvado" - yourFollowRequestAccepted: "Via peto por eksekvu estas akceptita." + yourFollowRequestAccepted: "Via peto por sekvado estis akceptita." _types: follow: "Sekvatoj" mention: "Mencioj" @@ -685,7 +688,7 @@ _notification: quote: "Citi" reaction: "Reagoj" receiveFollowRequest: "Ricevita peton de sekvado" - followRequestAccepted: "Peto por eksekvu akceptita" + followRequestAccepted: "Akceptita peto por sekvado" _deck: profile: "Agordaro" _columns: diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 7499523b0..35739d276 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -777,6 +777,15 @@ misskeyUpdated: "Misskeyが更新されました!" whatIsNew: "更新情報を見る" translate: "翻訳" translatedFrom: "{x}から翻訳" +accountDeletionInProgress: "アカウントの削除が進行中です" + +_accountDelete: + accountDelete: "アカウントの削除" + mayTakeTime: "アカウントの削除は負荷のかかる処理であるため、作成したコンテンツの数やアップロードしたファイルの数が多いと完了までに時間がかかることがあります。" + sendEmail: "アカウントの削除が完了する際は、登録してあったメールアドレス宛に通知を送信します。" + requestAccountDelete: "アカウント削除をリクエスト" + started: "削除処理が開始されました。" + inProgress: "削除が進行中" _docs: continueReading: "続きを読む" diff --git a/migration/1629288472000-fix-channel-userId.ts b/migration/1629288472000-fix-channel-userId.ts new file mode 100644 index 000000000..cd8f81bb0 --- /dev/null +++ b/migration/1629288472000-fix-channel-userId.ts @@ -0,0 +1,14 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class fixChannelUserId1629288472000 implements MigrationInterface { + name = 'fixChannelUserId1629288472000' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "channel" ALTER COLUMN "userId" DROP NOT NULL;`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "channel" ALTER COLUMN "userId" SET NOT NULL;`); + } + +} diff --git a/migration/1629512953000-user-is-deleted.ts b/migration/1629512953000-user-is-deleted.ts new file mode 100644 index 000000000..10b7d1d7b --- /dev/null +++ b/migration/1629512953000-user-is-deleted.ts @@ -0,0 +1,15 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class isUserDeleted1629512953000 implements MigrationInterface { + name = 'isUserDeleted1629512953000' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user" ADD "isDeleted" boolean NOT NULL DEFAULT false`); + await queryRunner.query(`COMMENT ON COLUMN "user"."isDeleted" IS 'Whether the User is deleted.'`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "isDeleted"`); + } + +} diff --git a/package.json b/package.json index 1f7d570f5..7754fb928 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "misskey", "author": "syuilo ", - "version": "12.88.0", + "version": "12.89.0", "codename": "indigo", "repository": { "type": "git", @@ -10,8 +10,8 @@ "main": "./index.js", "private": true, "scripts": { - "start": "node ./index.js", - "start:test": "cross-env NODE_ENV=test node ./index.js", + "start": "node --experimental-json-modules ./index.js", + "start:test": "cross-env NODE_ENV=test node --experimental-json-modules ./index.js", "init": "npm run migrate", "ormconfig": "node ./built/ormconfig.js", "migrate": "ts-node ./node_modules/typeorm/cli.js migration:run", @@ -38,7 +38,6 @@ "lodash": "^4.17.21" }, "dependencies": { - "@babel/plugin-transform-runtime": "7.14.5", "@elastic/elasticsearch": "7.11.0", "@koa/cors": "3.1.0", "@koa/multer": "3.0.0", @@ -74,7 +73,7 @@ "@types/markdown-it": "12.0.3", "@types/matter-js": "0.17.5", "@types/mocha": "8.2.3", - "@types/node": "16.6.0", + "@types/node": "16.6.2", "@types/node-fetch": "2.5.12", "@types/nodemailer": "6.4.4", "@types/nprogress": "0.2.0", @@ -90,7 +89,7 @@ "@types/redis": "2.8.31", "@types/rename": "1.0.4", "@types/request-stats": "3.0.0", - "@types/rimraf": "3.0.1", + "@types/rimraf": "3.0.2", "@types/seedrandom": "2.4.28", "@types/sharp": "0.28.5", "@types/sinonjs__fake-timers": "6.0.3", @@ -104,8 +103,8 @@ "@types/webpack-stream": "3.2.12", "@types/websocket": "1.0.4", "@types/ws": "7.4.7", - "@typescript-eslint/parser": "4.29.1", - "@vue/compiler-sfc": "3.2.3", + "@typescript-eslint/parser": "4.29.2", + "@vue/compiler-sfc": "3.2.4", "abort-controller": "3.0.0", "apexcharts": "3.27.3", "autobind-decorator": "2.4.0", @@ -113,25 +112,23 @@ "autwh": "0.1.0", "aws-sdk": "2.966.0", "bcryptjs": "2.4.3", - "blurhash": "1.1.3", - "broadcast-channel": "3.7.0", - "bull": "3.26.0", + "blurhash": "1.1.4", + "broadcast-channel": "4.2.0", + "bull": "3.28.1", "cacheable-lookup": "6.0.0", "cafy": "15.2.1", "cbor": "8.0.0", "chalk": "4.1.2", "chart.js": "2.9.4", "cli-highlight": "2.1.11", - "commander": "7.2.0", + "commander": "8.1.0", "compare-versions": "3.6.0", - "concurrently": "6.2.0", + "concurrently": "6.2.1", "content-disposition": "0.5.3", - "core-js": "3.16.1", "crc-32": "1.2.0", "css-loader": "6.2.0", - "cssnano": "5.0.7", + "cssnano": "5.0.8", "dateformat": "4.5.1", - "diskusage": "1.1.3", "escape-regexp": "0.0.1", "eslint": "7.32.0", "eslint-plugin-vue": "7.16.0", @@ -147,13 +144,10 @@ "gulp-replace": "1.1.3", "gulp-terser": "2.0.1", "gulp-tslint": "8.1.4", - "hard-source-webpack-plugin": "0.13.1", "hpagent": "0.1.2", - "html-minifier": "4.0.0", "http-signature": "1.3.5", "idb-keyval": "5.1.3", "insert-text-at-cursor": "0.3.0", - "is-root": "2.1.0", "is-svg": "4.3.1", "js-yaml": "4.1.0", "jsdom": "16.7.0", @@ -178,23 +172,20 @@ "mfm-js": "0.19.0", "misskey-js": "0.0.6", "mocha": "8.4.0", - "moji": "0.5.1", "ms": "2.1.3", "multer": "1.4.3", "nested-property": "4.0.0", "node-fetch": "2.6.1", "nodemailer": "6.6.3", - "object-assign-deep": "0.4.0", "os-utils": "0.0.14", "parse5": "6.0.1", - "pg": "8.6.0", + "pg": "8.7.1", "portscanner": "2.2.0", "postcss": "8.3.6", "postcss-loader": "6.1.1", "prismjs": "1.24.1", "probe-image-size": "7.2.1", "promise-limit": "2.7.0", - "promise-sequential": "1.1.1", "pug": "3.0.2", "punycode": "2.1.1", "pureimage": "0.3.2", @@ -202,21 +193,19 @@ "random-seed": "0.3.0", "ratelimiter": "3.4.1", "re2": "1.16.0", - "reconnecting-websocket": "4.4.0", "redis": "3.1.2", "redis-lock": "0.1.4", "reflect-metadata": "0.1.13", - "regenerator-runtime": "0.13.9", "rename": "1.0.4", "request-stats": "3.0.0", "require-all": "3.0.0", "rimraf": "3.0.2", "rndstr": "1.0.0", "s-age": "1.1.2", - "sass": "1.37.5", + "sass": "1.38.0", "sass-loader": "12.1.0", "seedrandom": "3.0.5", - "sharp": "0.28.3", + "sharp": "0.29.0", "speakeasy": "2.0.0", "stringz": "2.1.0", "style-loader": "3.2.1", @@ -230,21 +219,18 @@ "tinycolor2": "1.4.2", "tmp": "0.2.1", "ts-loader": "9.2.5", - "ts-node": "10.2.0", - "tsc-alias": "1.3.8", + "ts-node": "10.2.1", + "tsc-alias": "1.3.9", "tsconfig-paths": "3.10.1", "tslint": "6.1.3", "tslint-sonarts": "1.9.0", "twemoji-parser": "13.1.0", - "typeorm": "0.2.32", + "typeorm": "0.2.37", "typescript": "4.3.5", "ulid": "2.3.0", "uuid": "8.3.2", "v-debounce": "0.1.2", - "vanilla-tilt": "1.7.1", - "vue": "3.2.3", - "vue-color": "2.8.1", - "vue-json-pretty": "1.8.1", + "vue": "3.2.4", "vue-loader": "16.5.0", "vue-prism-editor": "2.0.0-alpha.2", "vue-router": "4.0.5", @@ -252,19 +238,17 @@ "vue-svg-loader": "0.17.0-beta.2", "vuedraggable": "4.0.1", "web-push": "3.4.5", - "webpack": "5.50.0", - "webpack-cli": "4.7.2", + "webpack": "5.51.0", + "webpack-cli": "4.8.0", "websocket": "1.0.34", - "ws": "8.1.0", + "ws": "8.2.0", "xev": "2.0.1" }, "devDependencies": { - "@redocly/openapi-core": "1.0.0-beta.44", - "@types/chai": "4.2.16", + "@redocly/openapi-core": "1.0.0-beta.54", "@types/fluent-ffmpeg": "2.1.17", - "chai": "4.3.4", "cross-env": "7.0.3", - "cypress": "8.2.0", + "cypress": "8.3.0", "start-server-and-test": "1.13.1" } } diff --git a/src/@types/is-root.d.ts b/src/@types/is-root.d.ts deleted file mode 100644 index 3905a16c8..000000000 --- a/src/@types/is-root.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -declare module 'is-root' { - function isRoot(): boolean; - - namespace isRoot {} // Hack - - export = isRoot; -} diff --git a/src/argv.ts b/src/argv.ts index 8e00bcf47..106ecf267 100644 --- a/src/argv.ts +++ b/src/argv.ts @@ -1,20 +1,19 @@ import { Command } from 'commander'; -import config from '@/config'; +import config from '@/config/index'; const program = new Command(); -program - .version(config.version) - .option('--no-daemons', 'Disable daemon processes (for debbuging)') - .option('--disable-clustering', 'Disable clustering') - .option('--only-server', 'Run server only (without job queue processing)') - .option('--only-queue', 'Pocessing job queue only (without server)') - .option('--quiet', 'Suppress all logs') - .option('--verbose', 'Enable all logs') - .option('--with-log-time', 'Include timestamp for each logs') - .option('--slow', 'Delay all requests (for debbuging)') - .option('--color', 'This option is a dummy for some external program\'s (e.g. forever) issue.') - .parse(process.argv); +program.version(config.version); +program.option('--no-daemons', 'Disable daemon processes (for debbuging)'); +program.option('--disable-clustering', 'Disable clustering'); +program.option('--only-server', 'Run server only (without job queue processing)'); +program.option('--only-queue', 'Pocessing job queue only (without server)'); +program.option('--quiet', 'Suppress all logs'); +program.option('--verbose', 'Enable all logs'); +program.option('--with-log-time', 'Include timestamp for each logs'); +program.option('--slow', 'Delay all requests (for debbuging)'); +program.option('--color', 'This option is a dummy for some external program\'s (e.g. forever) issue.'); +program.parse(process.argv); if (process.env.MK_ONLY_QUEUE) program.onlyQueue = true; if (process.env.NODE_ENV === 'test') program.disableClustering = true; diff --git a/src/boot/index.ts b/src/boot/index.ts index 602f6b0e4..20c53a366 100644 --- a/src/boot/index.ts +++ b/src/boot/index.ts @@ -2,7 +2,7 @@ import * as cluster from 'cluster'; import * as chalk from 'chalk'; import Xev from 'xev'; -import Logger from '../services/logger'; +import Logger from '@/services/logger'; import { program } from '../argv'; // for typeorm diff --git a/src/boot/master.ts b/src/boot/master.ts index 473e215ba..d9cc7c16b 100644 --- a/src/boot/master.ts +++ b/src/boot/master.ts @@ -1,18 +1,25 @@ +import * as fs from 'fs'; +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; import * as os from 'os'; import * as cluster from 'cluster'; import * as chalk from 'chalk'; import * as portscanner from 'portscanner'; -import * as isRoot from 'is-root'; import { getConnection } from 'typeorm'; -import Logger from '../services/logger'; +import Logger from '@/services/logger'; import loadConfig from '@/config/load'; import { Config } from '@/config/types'; -import { lessThan } from '../prelude/array'; +import { lessThan } from '@/prelude/array'; import { program } from '../argv'; import { showMachineInfo } from '@/misc/show-machine-info'; import { initDb } from '../db/postgre'; -const meta = require('../meta.json'); + +//const _filename = fileURLToPath(import.meta.url); +const _filename = __filename; +const _dirname = dirname(_filename); + +const meta = JSON.parse(fs.readFileSync(`${_dirname}/../meta.json`, 'utf-8')); const logger = new Logger('core', 'cyan'); const bootLogger = logger.createSubLogger('boot', 'magenta', false); @@ -39,6 +46,11 @@ function greet() { bootLogger.info(`Misskey v${meta.version}`, null, true); } +function isRoot() { + // maybe process.getuid will be undefined under not POSIX environment (e.g. Windows) + return process.getuid != null && process.getuid() === 0; +} + /** * Init master process */ diff --git a/src/client/account.ts b/src/client/account.ts index 2b860b3dd..ee1d84549 100644 --- a/src/client/account.ts +++ b/src/client/account.ts @@ -1,7 +1,8 @@ +import { get, set } from '@client/scripts/idb-proxy'; import { reactive } from 'vue'; import { apiUrl } from '@client/config'; import { waiting } from '@client/os'; -import { unisonReload } from '@client/scripts/unison-reload'; +import { unisonReload, reloadChannel } from '@client/scripts/unison-reload'; // TODO: 他のタブと永続化されたstateを同期 @@ -10,6 +11,7 @@ type Account = { token: string; isModerator: boolean; isAdmin: boolean; + isDeleted: boolean; }; const data = localStorage.getItem('account'); @@ -17,22 +19,45 @@ const data = localStorage.getItem('account'); // TODO: 外部からはreadonlyに export const $i = data ? reactive(JSON.parse(data) as Account) : null; -export function signout() { +export async function signout() { + waiting(); localStorage.removeItem('account'); + + //#region Remove account + const accounts = await getAccounts(); + accounts.splice(accounts.findIndex(x => x.id === $i.id), 1); + set('accounts', accounts); + //#endregion + + //#region Remove push notification registration + try { + const registration = await navigator.serviceWorker.ready; + const push = await registration.pushManager.getSubscription(); + if (!push) return; + await fetch(`${apiUrl}/sw/unregister`, { + method: 'POST', + body: JSON.stringify({ + i: $i.token, + endpoint: push.endpoint, + }), + }); + } catch (e) {} + //#endregion + document.cookie = `igi=; path=/`; - location.href = '/'; + + if (accounts.length > 0) login(accounts[0].token); + else unisonReload(); } -export function getAccounts() { - const accountsData = localStorage.getItem('accounts'); - const accounts: { id: Account['id'], token: Account['token'] }[] = accountsData ? JSON.parse(accountsData) : []; - return accounts; +export async function getAccounts(): Promise<{ id: Account['id'], token: Account['token'] }[]> { + return (await get('accounts')) || []; } -export function addAccount(id: Account['id'], token: Account['token']) { - const accounts = getAccounts(); +export async function addAccount(id: Account['id'], token: Account['token']) { + const accounts = await getAccounts(); if (!accounts.some(x => x.id === id)) { - localStorage.setItem('accounts', JSON.stringify(accounts.concat([{ id, token }]))); + await set('accounts', accounts.concat([{ id, token }])); } } @@ -47,7 +72,7 @@ function fetchAccount(token): Promise { }) .then(res => { // When failed to authenticate user - if (res.status >= 400 && res.status < 500) { + if (res.status !== 200 && res.status < 500) { return signout(); } @@ -69,15 +94,22 @@ export function updateAccount(data) { } export function refreshAccount() { - fetchAccount($i.token).then(updateAccount); + return fetchAccount($i.token).then(updateAccount); } -export async function login(token: Account['token']) { +export async function login(token: Account['token'], redirect?: string) { waiting(); if (_DEV_) console.log('logging as token ', token); const me = await fetchAccount(token); localStorage.setItem('account', JSON.stringify(me)); - addAccount(me.id, token); + await addAccount(me.id, token); + + if (redirect) { + reloadChannel.postMessage('reload'); + location.href = redirect; + return; + } + unisonReload(); } diff --git a/src/client/components/notes.vue b/src/client/components/notes.vue index ba3b7d2b3..919cb2995 100644 --- a/src/client/components/notes.vue +++ b/src/client/components/notes.vue @@ -118,6 +118,8 @@ export default defineComponent({ &:not(.noGap) { > .notes { + background: var(--bg); + .qtqtichx { background: var(--panel); border-radius: var(--radius); diff --git a/src/client/components/notifications.vue b/src/client/components/notifications.vue index 9db47e08d..e91f18a69 100644 --- a/src/client/components/notifications.vue +++ b/src/client/components/notifications.vue @@ -7,7 +7,7 @@

{{ $ts.noNotifications }}

- + @@ -141,4 +141,8 @@ export default defineComponent({ text-align: center; color: var(--fg); } + +.elsfgstc { + background: var(--panel); +} diff --git a/src/client/components/post-form.vue b/src/client/components/post-form.vue index 221dc7431..657053cc9 100644 --- a/src/client/components/post-form.vue +++ b/src/client/components/post-form.vue @@ -339,7 +339,12 @@ export default defineComponent({ this.cw = init.cw; this.useCw = init.cw != null; if (init.poll) { - this.poll = init.poll; + this.poll = { + choices: init.poll.choices.map(x => x.text), + multiple: init.poll.multiple, + expiresAt: init.poll.expiresAt, + expiredAfter: init.poll.expiredAfter, + }; } this.visibility = init.visibility; this.localOnly = init.localOnly; diff --git a/src/client/init.ts b/src/client/init.ts index 1580ef3e0..194ece886 100644 --- a/src/client/init.ts +++ b/src/client/init.ts @@ -4,6 +4,15 @@ import '@client/style.scss'; +//#region account indexedDB migration +import { set } from '@client/scripts/idb-proxy'; + +if (localStorage.getItem('accounts') != null) { + set('accounts', JSON.parse(localStorage.getItem('accounts'))); + localStorage.removeItem('accounts'); +} +//#endregion + import * as Sentry from '@sentry/browser'; import { Integrations } from '@sentry/tracing'; import { computed, createApp, watch, markRaw } from 'vue'; @@ -301,6 +310,13 @@ for (const plugin of ColdDeviceStorage.get('plugins').filter(p => p.active)) { } if ($i) { + if ($i.isDeleted) { + dialog({ + type: 'warning', + text: i18n.locale.accountDeletionInProgress, + }); + } + if ('Notification' in window) { // 許可を得ていなかったらリクエスト if (Notification.permission === 'default') { diff --git a/src/client/pages/notifications.vue b/src/client/pages/notifications.vue index 6b16b85b7..633718a90 100644 --- a/src/client/pages/notifications.vue +++ b/src/client/pages/notifications.vue @@ -1,6 +1,6 @@ @@ -43,3 +43,17 @@ export default defineComponent({ } }); + + diff --git a/src/client/pages/settings/accounts.vue b/src/client/pages/settings/accounts.vue index 53e28bdf6..ca6f53776 100644 --- a/src/client/pages/settings/accounts.vue +++ b/src/client/pages/settings/accounts.vue @@ -48,10 +48,10 @@ export default defineComponent({ title: this.$ts.accounts, icon: 'fas fa-users', }, - storedAccounts: getAccounts().filter(x => x.id !== this.$i.id), + storedAccounts: getAccounts().then(accounts => accounts.filter(x => x.id !== this.$i.id)), accounts: null, - init: () => os.api('users/show', { - userIds: this.storedAccounts.map(x => x.id) + init: async () => os.api('users/show', { + userIds: (await this.storedAccounts).map(x => x.id) }).then(accounts => { this.accounts = accounts; }), @@ -104,8 +104,8 @@ export default defineComponent({ }, 'closed'); }, - switchAccount(account: any) { - const storedAccounts = getAccounts(); + async switchAccount(account: any) { + const storedAccounts = await getAccounts(); const token = storedAccounts.find(x => x.id === account.id).token; this.switchAccountWithToken(token); }, diff --git a/src/client/pages/settings/delete-account.vue b/src/client/pages/settings/delete-account.vue new file mode 100644 index 000000000..3af187985 --- /dev/null +++ b/src/client/pages/settings/delete-account.vue @@ -0,0 +1,67 @@ + + + diff --git a/src/client/pages/settings/index.vue b/src/client/pages/settings/index.vue index 17b373fcd..e7e250602 100644 --- a/src/client/pages/settings/index.vue +++ b/src/client/pages/settings/index.vue @@ -132,6 +132,7 @@ export default defineComponent({ case 'account-info': return defineAsyncComponent(() => import('./account-info.vue')); case 'update': return defineAsyncComponent(() => import('./update.vue')); case 'registry': return defineAsyncComponent(() => import('./registry.vue')); + case 'delete-account': return defineAsyncComponent(() => import('./delete-account.vue')); case 'experimental-features': return defineAsyncComponent(() => import('./experimental-features.vue')); } if (page.value.startsWith('registry/keys/system/')) { diff --git a/src/client/pages/settings/other.vue b/src/client/pages/settings/other.vue index f73ff9cb2..685795035 100644 --- a/src/client/pages/settings/other.vue +++ b/src/client/pages/settings/other.vue @@ -26,7 +26,7 @@ BIOS CLI - {{ $ts.closeAccount }} + {{ $ts.closeAccount }} @@ -41,7 +41,6 @@ import FormButton from '@client/components/form/button.vue'; import * as os from '@client/os'; import { debug } from '@client/config'; import { defaultStore } from '@client/store'; -import { signout } from '@client/account'; import { unisonReload } from '@client/scripts/unison-reload'; import * as symbols from '@client/symbols'; @@ -92,22 +91,6 @@ export default defineComponent({ os.popup(import('@client/components/taskmanager.vue'), { }, {}, 'closed'); }, - - closeAccount() { - os.dialog({ - title: this.$ts.password, - input: { - type: 'password' - } - }).then(({ canceled, result: password }) => { - if (canceled) return; - os.api('i/delete-account', { - password: password - }).then(() => { - signout(); - }); - }); - } } }); diff --git a/src/client/pages/timeline.vue b/src/client/pages/timeline.vue index 119815e2a..f54549b98 100644 --- a/src/client/pages/timeline.vue +++ b/src/client/pages/timeline.vue @@ -1,5 +1,5 @@ @@ -231,6 +233,7 @@ export default defineComponent({ padding: 0 8px; white-space: nowrap; overflow: auto; + border-bottom: solid 0.5px var(--divider); // 影の都合上 position: relative; @@ -287,8 +290,16 @@ export default defineComponent({ } } - > .tl { - border-top: solid 0.5px var(--divider); + &.min-width_800px { + > .tl { + background: var(--bg); + padding: 32px 0; + + > .tl { + max-width: 800px; + margin: 0 auto; + } + } } } diff --git a/src/client/scripts/autocomplete.ts b/src/client/scripts/autocomplete.ts index 99c54c69c..924d6a62e 100644 --- a/src/client/scripts/autocomplete.ts +++ b/src/client/scripts/autocomplete.ts @@ -65,7 +65,7 @@ export class Autocomplete { */ private onInput() { const caretPos = this.textarea.selectionStart; - const text = this.text.substr(0, caretPos).split('\n').pop(); + const text = this.text.substr(0, caretPos).split('\n').pop()!; const mentionIndex = text.lastIndexOf('@'); const hashtagIndex = text.lastIndexOf('#'); @@ -83,7 +83,7 @@ export class Autocomplete { const isMention = mentionIndex != -1; const isHashtag = hashtagIndex != -1; - const isEmoji = emojiIndex != -1; + const isEmoji = emojiIndex != -1 && text.split(/:[a-z0-9_+\-]+:/).pop()!.includes(':'); let opened = false; diff --git a/src/client/scripts/get-account-from-id.ts b/src/client/scripts/get-account-from-id.ts new file mode 100644 index 000000000..065b41118 --- /dev/null +++ b/src/client/scripts/get-account-from-id.ts @@ -0,0 +1,7 @@ +import { get } from '@client/scripts/idb-proxy'; + +export async function getAccountFromId(id: string) { + const accounts = await get('accounts') as { token: string; id: string; }[]; + if (!accounts) console.log('Accounts are not recorded'); + return accounts.find(e => e.id === id); +} diff --git a/src/client/scripts/idb-proxy.ts b/src/client/scripts/idb-proxy.ts new file mode 100644 index 000000000..21c4dcff6 --- /dev/null +++ b/src/client/scripts/idb-proxy.ts @@ -0,0 +1,38 @@ +// FirefoxのプライベートモードなどではindexedDBが使用不可能なので、 +// indexedDBが使えない環境ではlocalStorageを使う +import { + get as iget, + set as iset, + del as idel, + createStore, +} from 'idb-keyval'; + +const fallbackName = (key: string) => `idbfallback::${key}`; + +let idbAvailable = typeof window !== 'undefined' ? !!window.indexedDB : true; + +if (idbAvailable) { + try { + await createStore('keyval-store', 'keyval'); + } catch (e) { + console.error('idb open error', e); + idbAvailable = false; + } +} + +if (!idbAvailable) console.error('indexedDB is unavailable. It will use localStorage.'); + +export async function get(key: string) { + if (idbAvailable) return iget(key); + return JSON.parse(localStorage.getItem(fallbackName(key))); +} + +export async function set(key: string, val: any) { + if (idbAvailable) return iset(key, val); + return localStorage.setItem(fallbackName(key), JSON.stringify(val)); +} + +export async function del(key: string) { + if (idbAvailable) return idel(key); + return localStorage.removeItem(fallbackName(key)); +} diff --git a/src/client/ui/_common_/sidebar.vue b/src/client/ui/_common_/sidebar.vue index b7b88faea..333d0ac39 100644 --- a/src/client/ui/_common_/sidebar.vue +++ b/src/client/ui/_common_/sidebar.vue @@ -135,7 +135,7 @@ export default defineComponent({ }, async openAccountMenu(ev) { - const storedAccounts = getAccounts().filter(x => x.id !== this.$i.id); + const storedAccounts = await getAccounts().then(accounts => accounts.filter(x => x.id !== this.$i.id)); const accountsPromise = os.api('users/show', { userIds: storedAccounts.map(x => x.id) }); const accountItemPromises = storedAccounts.map(a => new Promise(res => { @@ -195,8 +195,8 @@ export default defineComponent({ }, 'closed'); }, - switchAccount(account: any) { - const storedAccounts = getAccounts(); + async switchAccount(account: any) { + const storedAccounts = await getAccounts(); const token = storedAccounts.find(x => x.id === account.id).token; this.switchAccountWithToken(token); }, diff --git a/src/client/ui/default.header.vue b/src/client/ui/default.header.vue index df2e99f13..6fbdd625c 100644 --- a/src/client/ui/default.header.vue +++ b/src/client/ui/default.header.vue @@ -101,7 +101,7 @@ export default defineComponent({ }, async openAccountMenu(ev) { - const storedAccounts = getAccounts().filter(x => x.id !== this.$i.id); + const storedAccounts = await getAccounts().then(accounts => accounts.filter(x => x.id !== this.$i.id)); const accountsPromise = os.api('users/show', { userIds: storedAccounts.map(x => x.id) }); const accountItemPromises = storedAccounts.map(a => new Promise(res => { @@ -161,8 +161,8 @@ export default defineComponent({ }, 'closed'); }, - switchAccount(account: any) { - const storedAccounts = getAccounts(); + async switchAccount(account: any) { + const storedAccounts = await getAccounts(); const token = storedAccounts.find(x => x.id === account.id).token; this.switchAccountWithToken(token); }, diff --git a/src/client/ui/default.sidebar.vue b/src/client/ui/default.sidebar.vue index b500ab582..be907aa2a 100644 --- a/src/client/ui/default.sidebar.vue +++ b/src/client/ui/default.sidebar.vue @@ -121,7 +121,7 @@ export default defineComponent({ }, async openAccountMenu(ev) { - const storedAccounts = getAccounts().filter(x => x.id !== this.$i.id); + const storedAccounts = await getAccounts().then(accounts => accounts.filter(x => x.id !== this.$i.id)); const accountsPromise = os.api('users/show', { userIds: storedAccounts.map(x => x.id) }); const accountItemPromises = storedAccounts.map(a => new Promise(res => { @@ -181,8 +181,8 @@ export default defineComponent({ }, 'closed'); }, - switchAccount(account: any) { - const storedAccounts = getAccounts(); + async switchAccount(account: any) { + const storedAccounts = await getAccounts(); const token = storedAccounts.find(x => x.id === account.id).token; this.switchAccountWithToken(token); }, diff --git a/src/config/load.ts b/src/config/load.ts index 0929e8041..c7965e6c4 100644 --- a/src/config/load.ts +++ b/src/config/load.ts @@ -3,14 +3,19 @@ */ import * as fs from 'fs'; +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; import * as yaml from 'js-yaml'; import { Source, Mixin } from './types'; -const meta = require('../meta.json'); + +//const _filename = fileURLToPath(import.meta.url); +const _filename = __filename; +const _dirname = dirname(_filename); /** * Path of configuration directory */ -const dir = `${__dirname}/../../.config`; +const dir = `${_dirname}/../../.config`; /** * Path of configuration file @@ -20,6 +25,7 @@ const path = process.env.NODE_ENV === 'test' : `${dir}/default.yml`; export default function load() { + const meta = JSON.parse(fs.readFileSync(`${_dirname}/../meta.json`, 'utf-8')); const config = yaml.load(fs.readFileSync(path, 'utf-8')) as Source; const mixin = {} as Mixin; diff --git a/src/daemons/janitor.ts b/src/daemons/janitor.ts index c07908642..72568cfe1 100644 --- a/src/daemons/janitor.ts +++ b/src/daemons/janitor.ts @@ -1,7 +1,7 @@ // TODO: 消したい const interval = 30 * 60 * 1000; -import { AttestationChallenges } from '../models'; +import { AttestationChallenges } from '@/models/index'; import { LessThan } from 'typeorm'; /** diff --git a/src/db/elasticsearch.ts b/src/db/elasticsearch.ts index 58455b510..c99183007 100644 --- a/src/db/elasticsearch.ts +++ b/src/db/elasticsearch.ts @@ -1,5 +1,5 @@ import * as elasticsearch from '@elastic/elasticsearch'; -import config from '@/config'; +import config from '@/config/index'; const index = { settings: { diff --git a/src/db/logger.ts b/src/db/logger.ts index 1f702c18e..62f90555a 100644 --- a/src/db/logger.ts +++ b/src/db/logger.ts @@ -1,3 +1,3 @@ -import Logger from '../services/logger'; +import Logger from '@/services/logger'; export const dbLogger = new Logger('db'); diff --git a/src/db/postgre.ts b/src/db/postgre.ts index bc691319c..c96324248 100644 --- a/src/db/postgre.ts +++ b/src/db/postgre.ts @@ -3,74 +3,74 @@ const types = require('pg').types; types.setTypeParser(20, Number); import { createConnection, Logger, getConnection } from 'typeorm'; -import config from '@/config'; -import { entities as charts } from '../services/chart/entities'; +import config from '@/config/index'; +import { entities as charts } from '@/services/chart/entities'; import { dbLogger } from './logger'; import * as highlight from 'cli-highlight'; -import { Log } from '../models/entities/log'; -import { User } from '../models/entities/user'; -import { DriveFile } from '../models/entities/drive-file'; -import { DriveFolder } from '../models/entities/drive-folder'; -import { AccessToken } from '../models/entities/access-token'; -import { App } from '../models/entities/app'; -import { PollVote } from '../models/entities/poll-vote'; -import { Note } from '../models/entities/note'; -import { NoteReaction } from '../models/entities/note-reaction'; -import { NoteWatching } from '../models/entities/note-watching'; -import { NoteUnread } from '../models/entities/note-unread'; -import { Notification } from '../models/entities/notification'; -import { Meta } from '../models/entities/meta'; -import { Following } from '../models/entities/following'; -import { Instance } from '../models/entities/instance'; -import { Muting } from '../models/entities/muting'; -import { SwSubscription } from '../models/entities/sw-subscription'; -import { Blocking } from '../models/entities/blocking'; -import { UserList } from '../models/entities/user-list'; -import { UserListJoining } from '../models/entities/user-list-joining'; -import { UserGroup } from '../models/entities/user-group'; -import { UserGroupJoining } from '../models/entities/user-group-joining'; -import { UserGroupInvitation } from '../models/entities/user-group-invitation'; -import { Hashtag } from '../models/entities/hashtag'; -import { NoteFavorite } from '../models/entities/note-favorite'; -import { AbuseUserReport } from '../models/entities/abuse-user-report'; -import { RegistrationTicket } from '../models/entities/registration-tickets'; -import { MessagingMessage } from '../models/entities/messaging-message'; -import { Signin } from '../models/entities/signin'; -import { AuthSession } from '../models/entities/auth-session'; -import { FollowRequest } from '../models/entities/follow-request'; -import { Emoji } from '../models/entities/emoji'; -import { ReversiGame } from '../models/entities/games/reversi/game'; -import { ReversiMatching } from '../models/entities/games/reversi/matching'; -import { UserNotePining } from '../models/entities/user-note-pining'; -import { Poll } from '../models/entities/poll'; -import { UserKeypair } from '../models/entities/user-keypair'; -import { UserPublickey } from '../models/entities/user-publickey'; -import { UserProfile } from '../models/entities/user-profile'; -import { UserSecurityKey } from '../models/entities/user-security-key'; -import { AttestationChallenge } from '../models/entities/attestation-challenge'; -import { Page } from '../models/entities/page'; -import { PageLike } from '../models/entities/page-like'; -import { GalleryPost } from '../models/entities/gallery-post'; -import { GalleryLike } from '../models/entities/gallery-like'; -import { ModerationLog } from '../models/entities/moderation-log'; -import { UsedUsername } from '../models/entities/used-username'; -import { Announcement } from '../models/entities/announcement'; -import { AnnouncementRead } from '../models/entities/announcement-read'; -import { Clip } from '../models/entities/clip'; -import { ClipNote } from '../models/entities/clip-note'; -import { Antenna } from '../models/entities/antenna'; -import { AntennaNote } from '../models/entities/antenna-note'; -import { PromoNote } from '../models/entities/promo-note'; -import { PromoRead } from '../models/entities/promo-read'; +import { Log } from '@/models/entities/log'; +import { User } from '@/models/entities/user'; +import { DriveFile } from '@/models/entities/drive-file'; +import { DriveFolder } from '@/models/entities/drive-folder'; +import { AccessToken } from '@/models/entities/access-token'; +import { App } from '@/models/entities/app'; +import { PollVote } from '@/models/entities/poll-vote'; +import { Note } from '@/models/entities/note'; +import { NoteReaction } from '@/models/entities/note-reaction'; +import { NoteWatching } from '@/models/entities/note-watching'; +import { NoteUnread } from '@/models/entities/note-unread'; +import { Notification } from '@/models/entities/notification'; +import { Meta } from '@/models/entities/meta'; +import { Following } from '@/models/entities/following'; +import { Instance } from '@/models/entities/instance'; +import { Muting } from '@/models/entities/muting'; +import { SwSubscription } from '@/models/entities/sw-subscription'; +import { Blocking } from '@/models/entities/blocking'; +import { UserList } from '@/models/entities/user-list'; +import { UserListJoining } from '@/models/entities/user-list-joining'; +import { UserGroup } from '@/models/entities/user-group'; +import { UserGroupJoining } from '@/models/entities/user-group-joining'; +import { UserGroupInvitation } from '@/models/entities/user-group-invitation'; +import { Hashtag } from '@/models/entities/hashtag'; +import { NoteFavorite } from '@/models/entities/note-favorite'; +import { AbuseUserReport } from '@/models/entities/abuse-user-report'; +import { RegistrationTicket } from '@/models/entities/registration-tickets'; +import { MessagingMessage } from '@/models/entities/messaging-message'; +import { Signin } from '@/models/entities/signin'; +import { AuthSession } from '@/models/entities/auth-session'; +import { FollowRequest } from '@/models/entities/follow-request'; +import { Emoji } from '@/models/entities/emoji'; +import { ReversiGame } from '@/models/entities/games/reversi/game'; +import { ReversiMatching } from '@/models/entities/games/reversi/matching'; +import { UserNotePining } from '@/models/entities/user-note-pining'; +import { Poll } from '@/models/entities/poll'; +import { UserKeypair } from '@/models/entities/user-keypair'; +import { UserPublickey } from '@/models/entities/user-publickey'; +import { UserProfile } from '@/models/entities/user-profile'; +import { UserSecurityKey } from '@/models/entities/user-security-key'; +import { AttestationChallenge } from '@/models/entities/attestation-challenge'; +import { Page } from '@/models/entities/page'; +import { PageLike } from '@/models/entities/page-like'; +import { GalleryPost } from '@/models/entities/gallery-post'; +import { GalleryLike } from '@/models/entities/gallery-like'; +import { ModerationLog } from '@/models/entities/moderation-log'; +import { UsedUsername } from '@/models/entities/used-username'; +import { Announcement } from '@/models/entities/announcement'; +import { AnnouncementRead } from '@/models/entities/announcement-read'; +import { Clip } from '@/models/entities/clip'; +import { ClipNote } from '@/models/entities/clip-note'; +import { Antenna } from '@/models/entities/antenna'; +import { AntennaNote } from '@/models/entities/antenna-note'; +import { PromoNote } from '@/models/entities/promo-note'; +import { PromoRead } from '@/models/entities/promo-read'; import { program } from '../argv'; -import { Relay } from '../models/entities/relay'; -import { MutedNote } from '../models/entities/muted-note'; -import { Channel } from '../models/entities/channel'; -import { ChannelFollowing } from '../models/entities/channel-following'; -import { ChannelNotePining } from '../models/entities/channel-note-pining'; -import { RegistryItem } from '../models/entities/registry-item'; -import { Ad } from '../models/entities/ad'; +import { Relay } from '@/models/entities/relay'; +import { MutedNote } from '@/models/entities/muted-note'; +import { Channel } from '@/models/entities/channel'; +import { ChannelFollowing } from '@/models/entities/channel-following'; +import { ChannelNotePining } from '@/models/entities/channel-note-pining'; +import { RegistryItem } from '@/models/entities/registry-item'; +import { Ad } from '@/models/entities/ad'; import { PasswordResetRequest } from '@/models/entities/password-reset-request'; const sqlLogger = dbLogger.createSubLogger('sql', 'white', false); diff --git a/src/db/redis.ts b/src/db/redis.ts index a10422846..7e0ee1e3c 100644 --- a/src/db/redis.ts +++ b/src/db/redis.ts @@ -1,5 +1,5 @@ import * as redis from 'redis'; -import config from '@/config'; +import config from '@/config/index'; export function createConnection() { return redis.createClient( diff --git a/src/docs/ar-SA/features/mute-and-block.md b/src/docs/ar-SA/features/mute-and-block.md new file mode 100644 index 000000000..932d2d27d --- /dev/null +++ b/src/docs/ar-SA/features/mute-and-block.md @@ -0,0 +1,41 @@ +# تم كتمها / تم حجبها +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## اكتم +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## احجب +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/ar-SA/features/word-mute.md b/src/docs/ar-SA/features/word-mute.md new file mode 100644 index 000000000..fa4d14346 --- /dev/null +++ b/src/docs/ar-SA/features/word-mute.md @@ -0,0 +1,20 @@ +# ワードミュート +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/ar-SA/general/faq.md b/src/docs/ar-SA/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/ar-SA/general/faq.md +++ b/src/docs/ar-SA/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/ar-SA/general/glossary.md b/src/docs/ar-SA/general/glossary.md index 606252932..7ca515cf1 100644 --- a/src/docs/ar-SA/general/glossary.md +++ b/src/docs/ar-SA/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## مثيل الخادم todo +## إيموجي مخصص +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## اكتم ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## قائمة الانتظار +アクティビティ配送などを順番に行うためのシステム。 + ## علِق アカウントが使用不可に設定されている状態。 diff --git a/src/docs/cs-CZ/features/mute-and-block.md b/src/docs/cs-CZ/features/mute-and-block.md new file mode 100644 index 000000000..4f0931eea --- /dev/null +++ b/src/docs/cs-CZ/features/mute-and-block.md @@ -0,0 +1,41 @@ +# ミュートとブロック +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## Ztlumit +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## Zablokovat +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/cs-CZ/features/word-mute.md b/src/docs/cs-CZ/features/word-mute.md new file mode 100644 index 000000000..fa4d14346 --- /dev/null +++ b/src/docs/cs-CZ/features/word-mute.md @@ -0,0 +1,20 @@ +# ワードミュート +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/cs-CZ/general/faq.md b/src/docs/cs-CZ/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/cs-CZ/general/faq.md +++ b/src/docs/cs-CZ/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/cs-CZ/general/glossary.md b/src/docs/cs-CZ/general/glossary.md index 22fa9654f..f1d189a4c 100644 --- a/src/docs/cs-CZ/general/glossary.md +++ b/src/docs/cs-CZ/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## Instance todo +## Vlastní emoji +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## サイレンス ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## Fronta úloh +アクティビティ配送などを順番に行うためのシステム。 + ## Zmrazit アカウントが使用不可に設定されている状態。 diff --git a/src/docs/da-DK/features/mute-and-block.md b/src/docs/da-DK/features/mute-and-block.md new file mode 100644 index 000000000..d78a7cea4 --- /dev/null +++ b/src/docs/da-DK/features/mute-and-block.md @@ -0,0 +1,41 @@ +# ミュートとブロック +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## ミュート +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## ブロック +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/da-DK/features/word-mute.md b/src/docs/da-DK/features/word-mute.md new file mode 100644 index 000000000..fa4d14346 --- /dev/null +++ b/src/docs/da-DK/features/word-mute.md @@ -0,0 +1,20 @@ +# ワードミュート +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/da-DK/general/faq.md b/src/docs/da-DK/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/da-DK/general/faq.md +++ b/src/docs/da-DK/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/da-DK/general/glossary.md b/src/docs/da-DK/general/glossary.md index b2a1fb626..bb8a24336 100644 --- a/src/docs/da-DK/general/glossary.md +++ b/src/docs/da-DK/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## インスタンス todo +## カスタム絵文字 +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## サイレンス ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## ジョブキュー +アクティビティ配送などを順番に行うためのシステム。 + ## 凍結 アカウントが使用不可に設定されている状態。 diff --git a/src/docs/de-DE/features/mute-and-block.md b/src/docs/de-DE/features/mute-and-block.md new file mode 100644 index 000000000..429b3b352 --- /dev/null +++ b/src/docs/de-DE/features/mute-and-block.md @@ -0,0 +1,41 @@ +# Stummschaltungen und Blockierungen +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## Stummschalten +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## Blockieren +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/de-DE/features/word-mute.md b/src/docs/de-DE/features/word-mute.md new file mode 100644 index 000000000..133e918ff --- /dev/null +++ b/src/docs/de-DE/features/word-mute.md @@ -0,0 +1,20 @@ +# Wort-Stummschaltung +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/de-DE/general/apps.md b/src/docs/de-DE/general/apps.md index 1f4c85fe8..f0080bd30 100644 --- a/src/docs/de-DE/general/apps.md +++ b/src/docs/de-DE/general/apps.md @@ -1,4 +1,4 @@ -# サードパーティアプリのリスト +# Liste von Drittanbieter-Apps ## クライアント todo diff --git a/src/docs/de-DE/general/changelog.md b/src/docs/de-DE/general/changelog.md index 6766a63b2..e8ee88f11 100644 --- a/src/docs/de-DE/general/changelog.md +++ b/src/docs/de-DE/general/changelog.md @@ -1,4 +1,4 @@ -# 更新履歴 +# Änderungshistorie
ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、GitHubをご確認ください。
diff --git a/src/docs/de-DE/general/faq.md b/src/docs/de-DE/general/faq.md index aa8d68875..a5534797c 100644 --- a/src/docs/de-DE/general/faq.md +++ b/src/docs/de-DE/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/de-DE/general/glossary.md b/src/docs/de-DE/general/glossary.md index e1bc6b7ba..9b3196efb 100644 --- a/src/docs/de-DE/general/glossary.md +++ b/src/docs/de-DE/general/glossary.md @@ -1,4 +1,4 @@ -# 用語集 +# Glossar Misskeyに関する用語集です。 ## ActivityPub @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## Instanz todo +## Benutzerdefinierte Emojis +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## Instanzweit stummschalten ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## Job-Warteschlange +アクティビティ配送などを順番に行うためのシステム。 + ## Sperren アカウントが使用不可に設定されている状態。 diff --git a/src/docs/de-DE/general/links.md b/src/docs/de-DE/general/links.md index 0d6bed82b..048378fa2 100644 --- a/src/docs/de-DE/general/links.md +++ b/src/docs/de-DE/general/links.md @@ -1,4 +1,4 @@ -# リンク集 +# Links ## Webサイト - [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー diff --git a/src/docs/de-DE/general/report-issue.md b/src/docs/de-DE/general/report-issue.md index 63527e32a..63c23aa5c 100644 --- a/src/docs/de-DE/general/report-issue.md +++ b/src/docs/de-DE/general/report-issue.md @@ -1,4 +1,4 @@ -# 不具合の報告 +# Fehler melden 不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 ## 含める情報 diff --git a/src/docs/en-US/features/mute-and-block.md b/src/docs/en-US/features/mute-and-block.md new file mode 100644 index 000000000..a9e8fcc1c --- /dev/null +++ b/src/docs/en-US/features/mute-and-block.md @@ -0,0 +1,41 @@ +# Mutes and Blocks +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## Mute +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## Block +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/en-US/features/word-mute.md b/src/docs/en-US/features/word-mute.md new file mode 100644 index 000000000..77283c862 --- /dev/null +++ b/src/docs/en-US/features/word-mute.md @@ -0,0 +1,20 @@ +# Word mute +Through setting up word mutes, you can make notes satisfying set conditions not appear on your timeline anymore. + +There are two types of word mutes: soft and hard.Below is an explanation of the setup process and effect of both. + +## Soft word mute +With soft mutes, the word mute is processed within the client (app) you are using. + +When a note meets the set conditions, it will be hidden behind text stating "(username) said something". +You can display the note as it was by clicking on this text. + +## Hard word mute +With hard mutes, the server judges whether the content of a new incoming note meets the set conditions similar to antennas, and will completely exclude it from your timeline if so. + +To summarize, a hard word mute has the following features: + +* Only new notes created after configuration will be affected by the mute. +* If the conditions are changed, previously hard muted notes will still remain muted. +* Timelines will not be filled with "(...) said something". +* Hard mutes will function even for apps without functionality for soft mutes. diff --git a/src/docs/en-US/general/faq.md b/src/docs/en-US/general/faq.md index 37827903a..32d363298 100644 --- a/src/docs/en-US/general/faq.md +++ b/src/docs/en-US/general/faq.md @@ -23,3 +23,6 @@ Only administrators can add, edit or delete custom emoji. If you'd like to do ei ## "I want to develop a Bot." It is possible to develop a Bot using the Misskey API. Please, [see here](../advanced/develop-bot). + +## Which service does the note translation function use? +[DeepL](https://www.deepl.com/) is being used for this. diff --git a/src/docs/en-US/general/glossary.md b/src/docs/en-US/general/glossary.md index 9f6dde06f..53164a0a5 100644 --- a/src/docs/en-US/general/glossary.md +++ b/src/docs/en-US/general/glossary.md @@ -49,14 +49,20 @@ Those users amongst all existing ones who are continually using their account. ## Instance todo +## Custom Emoji +Emoji provided by your server.Emoji that are not specifically provided by your server but are available by default are called "Unicode Emoji". + ## Control Panel -The settings screen of an instance. +todo ## Server todo ## Silence -A state in which the visibility of the notes by said user cannot be set to "Public" anymore.Can be set for individual users by Moderators.For details, see [here.](../features/silence) +A state in which the visibility of the notes by said user cannot be set to "Public" anymore.Can be set for individual users by the discretion of Moderators.For details, see [here.](../features/silence) + +## Job Queue +A system used for sequentially broadcasting activities to other servers etc. ## Suspend A state which makes the account of a user unusable. diff --git a/src/docs/en-US/general/links.md b/src/docs/en-US/general/links.md index 195216035..11a44e894 100644 --- a/src/docs/en-US/general/links.md +++ b/src/docs/en-US/general/links.md @@ -1,4 +1,4 @@ -# A collection of links +# Links ## Websites - [Official Discord](https://discord.gg/Wp8gVStHW3) - The official Discord server for Misskey diff --git a/src/docs/en-US/general/misskey.md b/src/docs/en-US/general/misskey.md index 50b34a80b..8ae898244 100644 --- a/src/docs/en-US/general/misskey.md +++ b/src/docs/en-US/general/misskey.md @@ -76,7 +76,7 @@ No.Misskey is a project completely different from Mastodon or other alike projec ### Are there any apps for iOS / Android available? While no official Misskey app for either OS exists, there are several third-party applications. For details, please check [here](./apps). -However, functionality of third-party applications will inevitably lag behind the official Web client, so unless you really want to use a native application, we recommend the official Web client instead. As the Misskey Web client supports PWA, it is possible to make it act as if it was a native application instead. For details regarding this, please check [here](todo). +However, functionality of third-party applications will inevitably lag behind the official Web client, so unless you really want to use a native application, we recommend the official Web client instead. As the Misskey Web client supports PWA, it is also possible to make it act as if it was a native application instead. For details regarding this, please check [here](todo). ### Where can I download Misskey's logo or icon? (Coming soon) diff --git a/src/docs/eo-UY/features/mute-and-block.md b/src/docs/eo-UY/features/mute-and-block.md new file mode 100644 index 000000000..d38faf0d7 --- /dev/null +++ b/src/docs/eo-UY/features/mute-and-block.md @@ -0,0 +1,41 @@ +# Silentigatoj kaj blokatoj +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## Silentigi +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## Bloki +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/eo-UY/features/word-mute.md b/src/docs/eo-UY/features/word-mute.md new file mode 100644 index 000000000..81a7d6fe5 --- /dev/null +++ b/src/docs/eo-UY/features/word-mute.md @@ -0,0 +1,20 @@ +# Silentigo de vortoj +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/eo-UY/general/faq.md b/src/docs/eo-UY/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/eo-UY/general/faq.md +++ b/src/docs/eo-UY/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/eo-UY/general/glossary.md b/src/docs/eo-UY/general/glossary.md index 61dfe57f1..9050c592b 100644 --- a/src/docs/eo-UY/general/glossary.md +++ b/src/docs/eo-UY/general/glossary.md @@ -50,30 +50,36 @@ Ai estas oficiala maskoto de Misskey. todo ## Ŝaltpodio -インスタンスの設定画面のこと。 +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + +## コントロールパネル +todo ## Servilo todo ## Mutigi -A state in which the visibility of the notes by said user cannot be set to "Publika" anymore.Can be set for individual users by Moderators.Rigardu por sciu pli tie[.](../features/silence) +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## Disko +アクティビティ配送などを順番に行うためのシステム。 ## Flostigi アカウントが使用不可に設定されている状態。 -## Disko +## Miskiisto Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) ## Notoj Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) -## Miskiisto -Uzuloj de Misskey. +## Transa aŭ fora +Misskeyを使う人のこと。 ## Moderigisto スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 -## Transa aŭ fora +## Transa 他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 ## Kunfederaĵo diff --git a/src/docs/es-ES/features/mute-and-block.md b/src/docs/es-ES/features/mute-and-block.md new file mode 100644 index 000000000..b876f898b --- /dev/null +++ b/src/docs/es-ES/features/mute-and-block.md @@ -0,0 +1,41 @@ +# Silenciar y bloquear +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## Silenciar +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## Bloquear +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/es-ES/features/word-mute.md b/src/docs/es-ES/features/word-mute.md new file mode 100644 index 000000000..3e3bec290 --- /dev/null +++ b/src/docs/es-ES/features/word-mute.md @@ -0,0 +1,20 @@ +# Silenciar palabras +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/es-ES/general/faq.md b/src/docs/es-ES/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/es-ES/general/faq.md +++ b/src/docs/es-ES/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/es-ES/general/glossary.md b/src/docs/es-ES/general/glossary.md index bf50b857a..4bef9068f 100644 --- a/src/docs/es-ES/general/glossary.md +++ b/src/docs/es-ES/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## Instancia todo +## Emojis personalizados +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## Silenciar ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## Cola de trabajos +アクティビティ配送などを順番に行うためのシステム。 + ## Suspender アカウントが使用不可に設定されている状態。 diff --git a/src/docs/fr-FR/features/mute-and-block.md b/src/docs/fr-FR/features/mute-and-block.md new file mode 100644 index 000000000..9f4cfd39b --- /dev/null +++ b/src/docs/fr-FR/features/mute-and-block.md @@ -0,0 +1,41 @@ +# Masqué·e·s / Bloqué·e·s +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## Masquer +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## Bloquer +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/fr-FR/features/note.md b/src/docs/fr-FR/features/note.md index f4cd98c0d..9aa6de7de 100644 --- a/src/docs/fr-FR/features/note.md +++ b/src/docs/fr-FR/features/note.md @@ -12,7 +12,7 @@
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
-## Partager +## Renoter 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
diff --git a/src/docs/fr-FR/features/word-mute.md b/src/docs/fr-FR/features/word-mute.md new file mode 100644 index 000000000..84935a428 --- /dev/null +++ b/src/docs/fr-FR/features/word-mute.md @@ -0,0 +1,20 @@ +# Filtre de mots +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/fr-FR/general/faq.md b/src/docs/fr-FR/general/faq.md index 2a82eed4f..0ec7159eb 100644 --- a/src/docs/fr-FR/general/faq.md +++ b/src/docs/fr-FR/general/faq.md @@ -2,9 +2,9 @@ Vous trouverez ici les questions les plus fréquentes sur l'utilisation de Misskey. Les questions fréquentes concernant Misskey en tant que projet sont publiées [sur cette page](./misskey). ## « Existe-t-il des appli pour Android / iOS ? » -公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 +Bien qu'il n'existe d'application Misskey officielle pour aucun OS, différentes applications développées par des tiers sont disponibles. [Voir ici](./apps) pour plus de détails. -ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 +Cependant, à moins que vous ne soyez particulièrement déterminé·e à utiliser une application dédiée, l'utilisation du client Web officiel est vivement recommandée du fait que les applications développées par des tiers seront forcément en retard par rapport à celui-ci. Par ailleurs, étant donné que le client Web de Misskey est compatible avec une PWA, il peut adopter le comportement d'une application native. [Voir ici](todo) pour plus d'informations. ## « Ne peut-on pas utiliser un client Mastodon pour se connecter à Misskey ? » Étant donné que Misskey n'est pas compatible avec l'API Mastodon, sauf cas exceptionnels, il n'est pas possible d'utiliser un client Mastodon pour Misskey. @@ -23,3 +23,6 @@ Seul·e·s les administrateur·rice·s peuvent ajouter, éditer ou effacer des ## « Je veux créer un Bot. » Vous pouvez développer un Bot en utilisant l'API de Misskey. Plus d'informations sur [cette page](../advanced/develop-bot). + +## « Quel est le service utilisé pour la fonctionnalité de traduction des notes ? » +Il s'agit de [DeepL](https://www.deepl.com/). diff --git a/src/docs/fr-FR/general/glossary.md b/src/docs/fr-FR/general/glossary.md index 679e7476b..441a2b5bc 100644 --- a/src/docs/fr-FR/general/glossary.md +++ b/src/docs/fr-FR/general/glossary.md @@ -34,7 +34,7 @@ Misskeyに関する用語集です。 ## NSFW (読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 -## Partager +## Renoter (読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) ## STL @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## Instance todo +## Émojis personnalisés +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## Mettre en sourdine ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## File d’attente +アクティビティ配送などを順番に行うためのシステム。 + ## Suspendre アカウントが使用不可に設定されている状態。 diff --git a/src/docs/fr-FR/general/misskey.md b/src/docs/fr-FR/general/misskey.md index c56c5a99f..1fb7008ce 100644 --- a/src/docs/fr-FR/general/misskey.md +++ b/src/docs/fr-FR/general/misskey.md @@ -75,9 +75,9 @@ Misskeyは開発が進むにつれ使用する技術も大きく変わってき いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じActivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 ### « Existe-t-il des appli pour Android / iOS ? » -公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 +Bien qu'il n'existe d'application Misskey officielle pour aucun OS, différentes applications développées par des tiers sont disponibles. [Voir ici](./apps) pour plus de détails. -ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 +Cependant, à moins que vous ne soyez particulièrement déterminé·e à utiliser une application dédiée, l'utilisation du client Web officiel est vivement recommandée du fait que les applications développées par des tiers seront forcément en retard par rapport à celui-ci. Par ailleurs, étant donné que le client Web de Misskey est compatible avec une PWA, il peut adopter le comportement d'une application native. [Voir ici](todo) pour plus d'informations. ### Misskeyのロゴ、アイコンはどこで入手できますか? (準備中) diff --git a/src/docs/fr-FR/general/troubleshooting.md b/src/docs/fr-FR/general/troubleshooting.md index 3627babb3..7cdaebe8e 100644 --- a/src/docs/fr-FR/general/troubleshooting.md +++ b/src/docs/fr-FR/general/troubleshooting.md @@ -1,19 +1,19 @@ # Résolution des problèmes
ℹ️ N'hésitez pas à consulter les Questions fréquentes en complément de cette page.
-問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 +Lorsque vous rencontrez un problème, nous vous prions de lire cette page tout d'abord. Si toutefois aucun des paragraphes ci-dessous ne correspond à votre problème, ou bien si vous n'arrivez pas à le résoudre en suivant les instructions détaillées ici, nous vous invitons à contacter l'administrateur·rice de votre instance ou à [Signaler un bug](./report-issue). ## Le client ne démarre pas -ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 +Généralement, ce problème est dû au fait que vous utilisez une version trop ancienne de votre navigateur ou de votre système d'exploitation. Effectuez les mises à jour pour chacun d'eux vers leurs versions les plus récentes, puis essayez à nouveau. -これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 +Cela arrive rarement, mais si votre client ne démarre toujours pas après cela, le problème vient du cache. Dans ce cas, videz le cache et essayez à nouveau. -## ページが読み込めない -クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 +## La page ne charge pas +Si votre client démarre mais qu'un message d'erreur apparaît lors du chargement de la page, assurez-vous qu'il ne s'agit pas d'un problème de connexion au réseau. Assurez-vous également que votre serveur n'est pas temporairement inaccessible. -これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 +Bien que cela arrive rarement, il se peut que le cache soit à l'origine du problème. Dans ce cas, videz le cache et essayez à nouveau. -まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 +Si le problème persiste malgré tout, il est très probable qu'il s'agisse d'une panne côté serveur ; nous vous invitons donc à contacter l'administrateur·rice de votre instance. ## Le client est lent 以下を試してみてください: @@ -31,10 +31,10 @@ 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 ## La fonction « Renoter » ne fonctionne pas -フォロワー限定のノートはRenoteすることはできません。 +Les notes dont l'audience est limitée aux « Abonné·e·s uniquement » ne peuvent pas être renotées. ## Des éléments spécifiques de l'interface ne s'affichent pas 広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 ## Certaines parties de l'interface ne sont pas traduites -ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 +La plupart du temps, cela n'est pas un bug mais simplement un problème de traduction qui n'a pas encore été faite. Merci de patienter jusqu'à ce que la traduction de la portion en question soit achevée. Vous pouvez également [aider à traduire](./misskey) Misskey. diff --git a/src/docs/ht-HT/features/mute-and-block.md b/src/docs/ht-HT/features/mute-and-block.md new file mode 100644 index 000000000..d78a7cea4 --- /dev/null +++ b/src/docs/ht-HT/features/mute-and-block.md @@ -0,0 +1,41 @@ +# ミュートとブロック +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## ミュート +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## ブロック +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/ht-HT/features/word-mute.md b/src/docs/ht-HT/features/word-mute.md new file mode 100644 index 000000000..fa4d14346 --- /dev/null +++ b/src/docs/ht-HT/features/word-mute.md @@ -0,0 +1,20 @@ +# ワードミュート +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/ht-HT/general/faq.md b/src/docs/ht-HT/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/ht-HT/general/faq.md +++ b/src/docs/ht-HT/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/ht-HT/general/glossary.md b/src/docs/ht-HT/general/glossary.md index b2a1fb626..bb8a24336 100644 --- a/src/docs/ht-HT/general/glossary.md +++ b/src/docs/ht-HT/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## インスタンス todo +## カスタム絵文字 +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## サイレンス ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## ジョブキュー +アクティビティ配送などを順番に行うためのシステム。 + ## 凍結 アカウントが使用不可に設定されている状態。 diff --git a/src/docs/id-ID/features/mute-and-block.md b/src/docs/id-ID/features/mute-and-block.md new file mode 100644 index 000000000..2444a8d43 --- /dev/null +++ b/src/docs/id-ID/features/mute-and-block.md @@ -0,0 +1,41 @@ +# Bisukan / Blokir +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## Bisukan +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## Blokir +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/id-ID/features/word-mute.md b/src/docs/id-ID/features/word-mute.md new file mode 100644 index 000000000..811de5279 --- /dev/null +++ b/src/docs/id-ID/features/word-mute.md @@ -0,0 +1,20 @@ +# Bisukan kata +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/id-ID/general/faq.md b/src/docs/id-ID/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/id-ID/general/faq.md +++ b/src/docs/id-ID/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/id-ID/general/glossary.md b/src/docs/id-ID/general/glossary.md index b8cd78bc6..95945e8f0 100644 --- a/src/docs/id-ID/general/glossary.md +++ b/src/docs/id-ID/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## Instansi todo +## Emoji kustom +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## Bungkam ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## Antrian kerja +アクティビティ配送などを順番に行うためのシステム。 + ## Bekukan アカウントが使用不可に設定されている状態。 diff --git a/src/docs/it-IT/features/mute-and-block.md b/src/docs/it-IT/features/mute-and-block.md new file mode 100644 index 000000000..bf3296602 --- /dev/null +++ b/src/docs/it-IT/features/mute-and-block.md @@ -0,0 +1,41 @@ +# Silenziati / Bloccati +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## Silenzia +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## Blocca +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/it-IT/features/word-mute.md b/src/docs/it-IT/features/word-mute.md new file mode 100644 index 000000000..3104147f2 --- /dev/null +++ b/src/docs/it-IT/features/word-mute.md @@ -0,0 +1,20 @@ +# Filtri parole +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/it-IT/general/faq.md b/src/docs/it-IT/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/it-IT/general/faq.md +++ b/src/docs/it-IT/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/it-IT/general/glossary.md b/src/docs/it-IT/general/glossary.md index 8564693cf..b7ec7bddf 100644 --- a/src/docs/it-IT/general/glossary.md +++ b/src/docs/it-IT/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## Istanza todo +## Emoji personalizzati +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## Silenzia ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## Coda di lavoro +アクティビティ配送などを順番に行うためのシステム。 + ## Sospendi アカウントが使用不可に設定されている状態。 diff --git a/src/docs/ja-JP/features/word-mute.md b/src/docs/ja-JP/features/word-mute.md new file mode 100644 index 000000000..fa4d14346 --- /dev/null +++ b/src/docs/ja-JP/features/word-mute.md @@ -0,0 +1,20 @@ +# ワードミュート +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/ja-JP/general/faq.md b/src/docs/ja-JP/general/faq.md index f163aad12..60cd5fad8 100644 --- a/src/docs/ja-JP/general/faq.md +++ b/src/docs/ja-JP/general/faq.md @@ -28,3 +28,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/ja-JP/general/glossary.md b/src/docs/ja-JP/general/glossary.md index 952b83a28..90bc1132c 100644 --- a/src/docs/ja-JP/general/glossary.md +++ b/src/docs/ja-JP/general/glossary.md @@ -59,6 +59,9 @@ Misskeyの看板娘(公式キャラクター)です。 ## インスタンス todo +## カスタム絵文字 +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -68,6 +71,9 @@ todo ## サイレンス ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## ジョブキュー +アクティビティ配送などを順番に行うためのシステム。 + ## 凍結 アカウントが使用不可に設定されている状態。 diff --git a/src/docs/ja-KS/admin/disable-timelines.md b/src/docs/ja-KS/admin/disable-timelines.md index b081e35ab..55e902365 100644 --- a/src/docs/ja-KS/admin/disable-timelines.md +++ b/src/docs/ja-KS/admin/disable-timelines.md @@ -1,8 +1,8 @@ # LTL/STL/GTLの無効化 -Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができるで。有効/無効を切り替えるんは、インスタンスコントロールパネルで設定しいや。 -LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 +LTLやSTLでは、そのインスタンス全員の投稿が見えるから、新規のユーザーにとってはユーザー探す必要がのうなって、興味のあるユーザーを見つけやすいゆう利点があるで。 でも同時にな、フォロー機能が活用されんくなったり、不適切な投稿が目につきやすうなったり、チャットみたいにのうて内輪感ができて逆に新規ユーザーがあんまし参加せんようなるないなデメリットも持ち合わせとうで。 サーバーによってメリット/デメリットどっちがようさんあるかはちゃうから、オプションとして無効にできるようなっとんねん。 デメリットの方が上回っとう思たら、それらのタイムラインを無効化することも検討しいや。 -
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+
⚠️無効化したら、ユーザーがややこしがって短期的に見て利用者が減るかもわからへん。せやから、無効化するゆう時は影響をよう検討して、事前に説明してフォローを整える期間を一定程度設けるんを推奨するで。
-なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 +ちなみに、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されんと、引き続き利用できるで。 diff --git a/src/docs/ja-KS/admin/faq.md b/src/docs/ja-KS/admin/faq.md index 317b4e065..ac98c469a 100644 --- a/src/docs/ja-KS/admin/faq.md +++ b/src/docs/ja-KS/admin/faq.md @@ -1,5 +1,5 @@ -# よくある質問 -ここでは、サーバー管理者向けのよくある質問を掲載しています。 +# ようある質問 +ここでは、サーバー管理者向けのようある質問を掲載しとうで。 ## デフォルトテーマを設定したい -現在、デフォルトテーマ設定機能は実装されていません。 +今んとこ、デフォルトテーマ設定機能は実装されとらへん。 diff --git a/src/docs/ja-KS/advanced/aiscript.md b/src/docs/ja-KS/advanced/aiscript.md index 604d17daa..0d98036d0 100644 --- a/src/docs/ja-KS/advanced/aiscript.md +++ b/src/docs/ja-KS/advanced/aiscript.md @@ -1,7 +1,7 @@ # AiScript -AiScriptは、Misskeyで使用できるスクリプト言語です。 +AiScriptは、Misskeyで使用できるスクリプト言語や。 -
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されようで。
-## 使い方 -AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 +## どないして使うん? +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されよる。 diff --git a/src/docs/ja-KS/features/mute-and-block.md b/src/docs/ja-KS/features/mute-and-block.md new file mode 100644 index 000000000..d78a7cea4 --- /dev/null +++ b/src/docs/ja-KS/features/mute-and-block.md @@ -0,0 +1,41 @@ +# ミュートとブロック +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## ミュート +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## ブロック +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/ja-KS/features/reaction.md b/src/docs/ja-KS/features/reaction.md index 4d479fd41..3a3d23201 100644 --- a/src/docs/ja-KS/features/reaction.md +++ b/src/docs/ja-KS/features/reaction.md @@ -1,11 +1,11 @@ # リアクション -他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 +他人のノートに、絵文字を付けて簡単に自分の反応を伝えられる機能や。 リアクションすんには、ノートの + アイコンをクリックしてピッカーを表示して、絵文字を選択したらええ。 リアクションには[カスタム絵文字](./custom-emoji)も使用できんで。 ## リアクションピッカーのカスタマイズ -ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 +ピッカーに表示されよう絵文字を自分好みにカスタマイズできるで。 設定の「リアクション」で設定しいや。 ## リモート投稿へのリアクションについて -リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 +リアクションはMisskeyオリジナルの機能やから、リモートインスタンスがMisskeyちゃうかったら、ほとんどの場合「Like」としてアクティビティが送信されんで。一般的にLikeは「お気に入り」として実装されようみたいや。 ## リモートからのリアクションについて -リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 +リモートから「Like」のアクティビティを受信したら、Misskeyでは「👍」のリアクションとして解釈されるで。 diff --git a/src/docs/ja-KS/features/word-mute.md b/src/docs/ja-KS/features/word-mute.md new file mode 100644 index 000000000..fa4d14346 --- /dev/null +++ b/src/docs/ja-KS/features/word-mute.md @@ -0,0 +1,20 @@ +# ワードミュート +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/ja-KS/general/faq.md b/src/docs/ja-KS/general/faq.md index 1d0a63ce1..7da242343 100644 --- a/src/docs/ja-KS/general/faq.md +++ b/src/docs/ja-KS/general/faq.md @@ -1,4 +1,4 @@ -# よくある質問 +# ようある質問 ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 ## iOS/Androidのアプリはありますか? @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/ja-KS/general/glossary.md b/src/docs/ja-KS/general/glossary.md index b2a1fb626..bb8a24336 100644 --- a/src/docs/ja-KS/general/glossary.md +++ b/src/docs/ja-KS/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## インスタンス todo +## カスタム絵文字 +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## サイレンス ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## ジョブキュー +アクティビティ配送などを順番に行うためのシステム。 + ## 凍結 アカウントが使用不可に設定されている状態。 diff --git a/src/docs/ja-KS/general/misskey.md b/src/docs/ja-KS/general/misskey.md index 3a24502e5..4bb6ca657 100644 --- a/src/docs/ja-KS/general/misskey.md +++ b/src/docs/ja-KS/general/misskey.md @@ -43,7 +43,7 @@ Misskeyはビジネスではなく、利用は無料であるため、収益は ## クレジット Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 -## よくある質問 +## ようある質問 ### プロジェクトは何を目指していますか? 強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 diff --git a/src/docs/jbo-EN/features/mute-and-block.md b/src/docs/jbo-EN/features/mute-and-block.md new file mode 100644 index 000000000..d78a7cea4 --- /dev/null +++ b/src/docs/jbo-EN/features/mute-and-block.md @@ -0,0 +1,41 @@ +# ミュートとブロック +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## ミュート +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## ブロック +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/jbo-EN/features/word-mute.md b/src/docs/jbo-EN/features/word-mute.md new file mode 100644 index 000000000..fa4d14346 --- /dev/null +++ b/src/docs/jbo-EN/features/word-mute.md @@ -0,0 +1,20 @@ +# ワードミュート +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/jbo-EN/general/faq.md b/src/docs/jbo-EN/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/jbo-EN/general/faq.md +++ b/src/docs/jbo-EN/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/jbo-EN/general/glossary.md b/src/docs/jbo-EN/general/glossary.md index b2a1fb626..bb8a24336 100644 --- a/src/docs/jbo-EN/general/glossary.md +++ b/src/docs/jbo-EN/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## インスタンス todo +## カスタム絵文字 +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## サイレンス ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## ジョブキュー +アクティビティ配送などを順番に行うためのシステム。 + ## 凍結 アカウントが使用不可に設定されている状態。 diff --git a/src/docs/kab-KAB/features/mute-and-block.md b/src/docs/kab-KAB/features/mute-and-block.md new file mode 100644 index 000000000..d78a7cea4 --- /dev/null +++ b/src/docs/kab-KAB/features/mute-and-block.md @@ -0,0 +1,41 @@ +# ミュートとブロック +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## ミュート +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## ブロック +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/kab-KAB/features/word-mute.md b/src/docs/kab-KAB/features/word-mute.md new file mode 100644 index 000000000..fa4d14346 --- /dev/null +++ b/src/docs/kab-KAB/features/word-mute.md @@ -0,0 +1,20 @@ +# ワードミュート +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/kab-KAB/general/faq.md b/src/docs/kab-KAB/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/kab-KAB/general/faq.md +++ b/src/docs/kab-KAB/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/kab-KAB/general/glossary.md b/src/docs/kab-KAB/general/glossary.md index b2a1fb626..bb8a24336 100644 --- a/src/docs/kab-KAB/general/glossary.md +++ b/src/docs/kab-KAB/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## インスタンス todo +## カスタム絵文字 +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## サイレンス ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## ジョブキュー +アクティビティ配送などを順番に行うためのシステム。 + ## 凍結 アカウントが使用不可に設定されている状態。 diff --git a/src/docs/kn-IN/features/mute-and-block.md b/src/docs/kn-IN/features/mute-and-block.md new file mode 100644 index 000000000..d78a7cea4 --- /dev/null +++ b/src/docs/kn-IN/features/mute-and-block.md @@ -0,0 +1,41 @@ +# ミュートとブロック +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## ミュート +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## ブロック +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/kn-IN/features/word-mute.md b/src/docs/kn-IN/features/word-mute.md new file mode 100644 index 000000000..fa4d14346 --- /dev/null +++ b/src/docs/kn-IN/features/word-mute.md @@ -0,0 +1,20 @@ +# ワードミュート +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/kn-IN/general/faq.md b/src/docs/kn-IN/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/kn-IN/general/faq.md +++ b/src/docs/kn-IN/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/kn-IN/general/glossary.md b/src/docs/kn-IN/general/glossary.md index 02fb1b92b..a560d2224 100644 --- a/src/docs/kn-IN/general/glossary.md +++ b/src/docs/kn-IN/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## ನಿದರ್ಶನ todo +## カスタム絵文字 +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## サイレンス ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## ジョブキュー +アクティビティ配送などを順番に行うためのシステム。 + ## 凍結 アカウントが使用不可に設定されている状態。 diff --git a/src/docs/ko-KR/features/mute-and-block.md b/src/docs/ko-KR/features/mute-and-block.md new file mode 100644 index 000000000..fa063cc2d --- /dev/null +++ b/src/docs/ko-KR/features/mute-and-block.md @@ -0,0 +1,41 @@ +# 뮤트 및 차단 +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## 뮤트 +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## 차단 +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/ko-KR/features/word-mute.md b/src/docs/ko-KR/features/word-mute.md new file mode 100644 index 000000000..0138224db --- /dev/null +++ b/src/docs/ko-KR/features/word-mute.md @@ -0,0 +1,20 @@ +# 단어 뮤트 +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/ko-KR/general/faq.md b/src/docs/ko-KR/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/ko-KR/general/faq.md +++ b/src/docs/ko-KR/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/ko-KR/general/glossary.md b/src/docs/ko-KR/general/glossary.md index 3edb33a73..09ab838a3 100644 --- a/src/docs/ko-KR/general/glossary.md +++ b/src/docs/ko-KR/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## 인스턴스 todo +## 커스텀 이모지 +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## 사일런스 ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## 작업 대기열 +アクティビティ配送などを順番に行うためのシステム。 + ## 정지 アカウントが使用不可に設定されている状態。 diff --git a/src/docs/nl-NL/features/mute-and-block.md b/src/docs/nl-NL/features/mute-and-block.md new file mode 100644 index 000000000..d78a7cea4 --- /dev/null +++ b/src/docs/nl-NL/features/mute-and-block.md @@ -0,0 +1,41 @@ +# ミュートとブロック +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## ミュート +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## ブロック +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/nl-NL/features/word-mute.md b/src/docs/nl-NL/features/word-mute.md new file mode 100644 index 000000000..fa4d14346 --- /dev/null +++ b/src/docs/nl-NL/features/word-mute.md @@ -0,0 +1,20 @@ +# ワードミュート +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/nl-NL/general/faq.md b/src/docs/nl-NL/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/nl-NL/general/faq.md +++ b/src/docs/nl-NL/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/nl-NL/general/glossary.md b/src/docs/nl-NL/general/glossary.md index b2a1fb626..bb8a24336 100644 --- a/src/docs/nl-NL/general/glossary.md +++ b/src/docs/nl-NL/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## インスタンス todo +## カスタム絵文字 +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## サイレンス ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## ジョブキュー +アクティビティ配送などを順番に行うためのシステム。 + ## 凍結 アカウントが使用不可に設定されている状態。 diff --git a/src/docs/no-NO/features/mute-and-block.md b/src/docs/no-NO/features/mute-and-block.md new file mode 100644 index 000000000..d78a7cea4 --- /dev/null +++ b/src/docs/no-NO/features/mute-and-block.md @@ -0,0 +1,41 @@ +# ミュートとブロック +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## ミュート +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## ブロック +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/no-NO/features/word-mute.md b/src/docs/no-NO/features/word-mute.md new file mode 100644 index 000000000..fa4d14346 --- /dev/null +++ b/src/docs/no-NO/features/word-mute.md @@ -0,0 +1,20 @@ +# ワードミュート +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/no-NO/general/faq.md b/src/docs/no-NO/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/no-NO/general/faq.md +++ b/src/docs/no-NO/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/no-NO/general/glossary.md b/src/docs/no-NO/general/glossary.md index b2a1fb626..bb8a24336 100644 --- a/src/docs/no-NO/general/glossary.md +++ b/src/docs/no-NO/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## インスタンス todo +## カスタム絵文字 +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## サイレンス ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## ジョブキュー +アクティビティ配送などを順番に行うためのシステム。 + ## 凍結 アカウントが使用不可に設定されている状態。 diff --git a/src/docs/pl-PL/features/mute-and-block.md b/src/docs/pl-PL/features/mute-and-block.md new file mode 100644 index 000000000..dab2d2fc3 --- /dev/null +++ b/src/docs/pl-PL/features/mute-and-block.md @@ -0,0 +1,41 @@ +# Wycisz / Zablokuj +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## Wycisz +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## Zablokuj +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/pl-PL/features/word-mute.md b/src/docs/pl-PL/features/word-mute.md new file mode 100644 index 000000000..6896b5374 --- /dev/null +++ b/src/docs/pl-PL/features/word-mute.md @@ -0,0 +1,20 @@ +# Wyciszenie słowa +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/pl-PL/general/faq.md b/src/docs/pl-PL/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/pl-PL/general/faq.md +++ b/src/docs/pl-PL/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/pl-PL/general/glossary.md b/src/docs/pl-PL/general/glossary.md index 8a24bd214..9e51aaa52 100644 --- a/src/docs/pl-PL/general/glossary.md +++ b/src/docs/pl-PL/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## Instancja todo +## Niestandardowe emoji +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## Wycisz ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## Kolejka zadań +アクティビティ配送などを順番に行うためのシステム。 + ## Zawieś アカウントが使用不可に設定されている状態。 diff --git a/src/docs/pt-PT/features/mute-and-block.md b/src/docs/pt-PT/features/mute-and-block.md new file mode 100644 index 000000000..9846a9ee4 --- /dev/null +++ b/src/docs/pt-PT/features/mute-and-block.md @@ -0,0 +1,41 @@ +# ミュートとブロック +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## Silenciar +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## ブロック +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/pt-PT/features/word-mute.md b/src/docs/pt-PT/features/word-mute.md new file mode 100644 index 000000000..fa4d14346 --- /dev/null +++ b/src/docs/pt-PT/features/word-mute.md @@ -0,0 +1,20 @@ +# ワードミュート +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/pt-PT/general/faq.md b/src/docs/pt-PT/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/pt-PT/general/faq.md +++ b/src/docs/pt-PT/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/pt-PT/general/glossary.md b/src/docs/pt-PT/general/glossary.md index 666f70358..5e31b0d4b 100644 --- a/src/docs/pt-PT/general/glossary.md +++ b/src/docs/pt-PT/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## インスタンス todo +## カスタム絵文字 +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## サイレンス ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## ジョブキュー +アクティビティ配送などを順番に行うためのシステム。 + ## 凍結 アカウントが使用不可に設定されている状態。 diff --git a/src/docs/ru-RU/features/mute-and-block.md b/src/docs/ru-RU/features/mute-and-block.md new file mode 100644 index 000000000..7b2c74c26 --- /dev/null +++ b/src/docs/ru-RU/features/mute-and-block.md @@ -0,0 +1,41 @@ +# Скрытие и блокировка +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## Скрыть +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## Заблокировать +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/ru-RU/features/word-mute.md b/src/docs/ru-RU/features/word-mute.md new file mode 100644 index 000000000..e8671bbc6 --- /dev/null +++ b/src/docs/ru-RU/features/word-mute.md @@ -0,0 +1,20 @@ +# Скрытие слов +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/ru-RU/general/faq.md b/src/docs/ru-RU/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/ru-RU/general/faq.md +++ b/src/docs/ru-RU/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/ru-RU/general/glossary.md b/src/docs/ru-RU/general/glossary.md index 573dd2a32..c87e622a0 100644 --- a/src/docs/ru-RU/general/glossary.md +++ b/src/docs/ru-RU/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## Инстанс todo +## Эмодзи пользователя +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## Заглушить ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## Очередь заданий +アクティビティ配送などを順番に行うためのシステム。 + ## Заморозить アカウントが使用不可に設定されている状態。 diff --git a/src/docs/th-TH/features/mute-and-block.md b/src/docs/th-TH/features/mute-and-block.md new file mode 100644 index 000000000..d78a7cea4 --- /dev/null +++ b/src/docs/th-TH/features/mute-and-block.md @@ -0,0 +1,41 @@ +# ミュートとブロック +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## ミュート +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## ブロック +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/th-TH/features/word-mute.md b/src/docs/th-TH/features/word-mute.md new file mode 100644 index 000000000..fa4d14346 --- /dev/null +++ b/src/docs/th-TH/features/word-mute.md @@ -0,0 +1,20 @@ +# ワードミュート +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/th-TH/general/faq.md b/src/docs/th-TH/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/th-TH/general/faq.md +++ b/src/docs/th-TH/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/th-TH/general/glossary.md b/src/docs/th-TH/general/glossary.md index b2a1fb626..bb8a24336 100644 --- a/src/docs/th-TH/general/glossary.md +++ b/src/docs/th-TH/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## インスタンス todo +## カスタム絵文字 +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## サイレンス ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## ジョブキュー +アクティビティ配送などを順番に行うためのシステム。 + ## 凍結 アカウントが使用不可に設定されている状態。 diff --git a/src/docs/ug-CN/features/mute-and-block.md b/src/docs/ug-CN/features/mute-and-block.md new file mode 100644 index 000000000..d78a7cea4 --- /dev/null +++ b/src/docs/ug-CN/features/mute-and-block.md @@ -0,0 +1,41 @@ +# ミュートとブロック +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## ミュート +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## ブロック +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/ug-CN/features/word-mute.md b/src/docs/ug-CN/features/word-mute.md new file mode 100644 index 000000000..fa4d14346 --- /dev/null +++ b/src/docs/ug-CN/features/word-mute.md @@ -0,0 +1,20 @@ +# ワードミュート +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/ug-CN/general/faq.md b/src/docs/ug-CN/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/ug-CN/general/faq.md +++ b/src/docs/ug-CN/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/ug-CN/general/glossary.md b/src/docs/ug-CN/general/glossary.md index b2a1fb626..bb8a24336 100644 --- a/src/docs/ug-CN/general/glossary.md +++ b/src/docs/ug-CN/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## インスタンス todo +## カスタム絵文字 +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## サイレンス ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## ジョブキュー +アクティビティ配送などを順番に行うためのシステム。 + ## 凍結 アカウントが使用不可に設定されている状態。 diff --git a/src/docs/uk-UA/features/mute-and-block.md b/src/docs/uk-UA/features/mute-and-block.md new file mode 100644 index 000000000..f9f6f0cb8 --- /dev/null +++ b/src/docs/uk-UA/features/mute-and-block.md @@ -0,0 +1,41 @@ +# Заглушення і блокування +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## Ігнорувати +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## Заблокувати +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/uk-UA/features/word-mute.md b/src/docs/uk-UA/features/word-mute.md new file mode 100644 index 000000000..73b41af28 --- /dev/null +++ b/src/docs/uk-UA/features/word-mute.md @@ -0,0 +1,20 @@ +# Блокування слів +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/uk-UA/general/faq.md b/src/docs/uk-UA/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/uk-UA/general/faq.md +++ b/src/docs/uk-UA/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/uk-UA/general/glossary.md b/src/docs/uk-UA/general/glossary.md index 9cf155943..38f46670f 100644 --- a/src/docs/uk-UA/general/glossary.md +++ b/src/docs/uk-UA/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## Інстанс todo +## Кастомні емоджі +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## Заглушити ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## Черга завдань +アクティビティ配送などを順番に行うためのシステム。 + ## Призупинити アカウントが使用不可に設定されている状態。 diff --git a/src/docs/zh-CN/features/mute-and-block.md b/src/docs/zh-CN/features/mute-and-block.md new file mode 100644 index 000000000..39ed8459d --- /dev/null +++ b/src/docs/zh-CN/features/mute-and-block.md @@ -0,0 +1,41 @@ +# 屏蔽/拉黑 +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## 屏蔽 +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## 拉黑 +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/zh-CN/features/word-mute.md b/src/docs/zh-CN/features/word-mute.md new file mode 100644 index 000000000..a1bd1918c --- /dev/null +++ b/src/docs/zh-CN/features/word-mute.md @@ -0,0 +1,20 @@ +# 文字屏蔽 +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/zh-CN/general/faq.md b/src/docs/zh-CN/general/faq.md index a430103eb..b7f159c37 100644 --- a/src/docs/zh-CN/general/faq.md +++ b/src/docs/zh-CN/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## 想要开发一个Bot机器人 您可以使用 Misskey API 开发Bot机器人。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/zh-CN/general/glossary.md b/src/docs/zh-CN/general/glossary.md index 6ebd344db..58cb1a9ee 100644 --- a/src/docs/zh-CN/general/glossary.md +++ b/src/docs/zh-CN/general/glossary.md @@ -1,5 +1,5 @@ -# 用語集 -Misskeyに関する用語集です。 +# 术语表 +Misskey相关术语的词汇表。 ## ActivityPub (読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 @@ -40,7 +40,7 @@ Misskeyに関する用語集です。 ## STL ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) -## 藍 +## 蓝 (読み: あい) Misskeyの看板娘(公式キャラクター)です。 ## アクティブユーザー @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## 实例 todo +## 自定义表情符号 +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -56,13 +59,16 @@ todo todo ## 禁言 -ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。详情请看[这里。](../features/silence) + +## 作业队列 +アクティビティ配送などを順番に行うためのシステム。 ## 冻结 アカウントが使用不可に設定されている状態。 ## 网盘 -Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) +Misskeyにアップロードしたファイルを管理する機能。详情请看[这里。](../features/drive) ## 帖子 Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) diff --git a/src/docs/zh-TW/features/mute-and-block.md b/src/docs/zh-TW/features/mute-and-block.md new file mode 100644 index 000000000..baf0616a4 --- /dev/null +++ b/src/docs/zh-TW/features/mute-and-block.md @@ -0,0 +1,41 @@ +# 靜音和封鎖 +好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。 + +
ℹ️ ミュートとブロックは併用できます。
+ +
⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。
+ +設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。 + +## 靜音 +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +- そのユーザーからの通知 +- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 +- など + +ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。 + +
ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。
+ +## 封鎖 +ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。 + +- フォローする +- ユーザーリストに追加する +- 返信する、Renoteする +- リアクションする、アンケートに投票する +- メッセージを送信する +- など + +また、 + +- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。 +- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。 + +ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。 + +
⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。
+ +
⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。
diff --git a/src/docs/zh-TW/features/word-mute.md b/src/docs/zh-TW/features/word-mute.md new file mode 100644 index 000000000..9916b1048 --- /dev/null +++ b/src/docs/zh-TW/features/word-mute.md @@ -0,0 +1,20 @@ +# 靜音文字 +ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。 + +ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。 + +## ソフトワードミュート +ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。 + +ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。 +クリックすると元の通りに表示されます。 + +## ハードワードミュート +ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。 + +つまり、ハードワードミュートには、以下のような特徴があります。 + +* 条件設定後、新しい投稿のみがミュートの対象になります。 +* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。 +* 「○○が何かを言いました」でタイムラインが埋まることがありません。 +* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。 diff --git a/src/docs/zh-TW/general/faq.md b/src/docs/zh-TW/general/faq.md index 1d0a63ce1..c272b2ad4 100644 --- a/src/docs/zh-TW/general/faq.md +++ b/src/docs/zh-TW/general/faq.md @@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります ## Botを開発したい Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 + +## ノートの翻訳機能はどのサービスを使用していますか? +[DeepL](https://www.deepl.com/)を使用しています。 diff --git a/src/docs/zh-TW/general/glossary.md b/src/docs/zh-TW/general/glossary.md index e6860cb18..3cd3dd00f 100644 --- a/src/docs/zh-TW/general/glossary.md +++ b/src/docs/zh-TW/general/glossary.md @@ -49,6 +49,9 @@ Misskeyに関する用語集です。 ## 實例 todo +## 自訂表情符號 +サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。 + ## コントロールパネル インスタンスの設定画面のこと。 @@ -58,6 +61,9 @@ todo ## 禁言 ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +## 佇列 +アクティビティ配送などを順番に行うためのシステム。 + ## 凍結 アカウントが使用不可に設定されている状態。 diff --git a/src/games/reversi/core.ts b/src/games/reversi/core.ts index e7ae1af7a..9bfce9834 100644 --- a/src/games/reversi/core.ts +++ b/src/games/reversi/core.ts @@ -1,4 +1,4 @@ -import { count, concat } from '../../prelude/array'; +import { count, concat } from '@/prelude/array'; // MISSKEY REVERSI ENGINE diff --git a/src/index.ts b/src/index.ts index c4a1088c2..db1b53f51 100644 --- a/src/index.ts +++ b/src/index.ts @@ -6,7 +6,7 @@ Error.stackTraceLimit = Infinity; require('events').EventEmitter.defaultMaxListeners = 128; -import boot from './boot'; +import boot from './boot/index'; export default function() { return boot(); diff --git a/src/mfm/to-html.ts b/src/mfm/to-html.ts index aa39443c6..b3678a0dd 100644 --- a/src/mfm/to-html.ts +++ b/src/mfm/to-html.ts @@ -1,8 +1,8 @@ import { JSDOM } from 'jsdom'; import * as mfm from 'mfm-js'; -import config from '@/config'; -import { intersperse } from '../prelude/array'; -import { IMentionedRemoteUsers } from '../models/entities/note'; +import config from '@/config/index'; +import { intersperse } from '@/prelude/array'; +import { IMentionedRemoteUsers } from '@/models/entities/note'; import { wellKnownServices } from '../well-known-services'; export function toHtml(nodes: mfm.MfmNode[] | null, mentionedRemoteUsers: IMentionedRemoteUsers = []) { diff --git a/src/misc/antenna-cache.ts b/src/misc/antenna-cache.ts index 6be1c18db..a23eeb45e 100644 --- a/src/misc/antenna-cache.ts +++ b/src/misc/antenna-cache.ts @@ -1,5 +1,5 @@ -import { Antennas } from '../models'; -import { Antenna } from '../models/entities/antenna'; +import { Antennas } from '@/models/index'; +import { Antenna } from '@/models/entities/antenna'; import { subsdcriber } from '../db/redis'; let antennasFetched = false; diff --git a/src/misc/app-lock.ts b/src/misc/app-lock.ts index 9ae2cba47..a32b60061 100644 --- a/src/misc/app-lock.ts +++ b/src/misc/app-lock.ts @@ -1,5 +1,6 @@ import { redisClient } from '../db/redis'; import { promisify } from 'util'; +import * as redisLock from 'redis-lock'; /** * Retry delay (ms) for lock acquisition @@ -8,7 +9,7 @@ const retryDelay = 100; const lock: (key: string, timeout?: number) => Promise<() => void> = redisClient - ? promisify(require('redis-lock')(redisClient, retryDelay)) + ? promisify(redisLock(redisClient, retryDelay)) : async () => () => { }; /** diff --git a/src/misc/captcha.ts b/src/misc/captcha.ts index 727c86af0..f36943b58 100644 --- a/src/misc/captcha.ts +++ b/src/misc/captcha.ts @@ -1,7 +1,7 @@ import fetch from 'node-fetch'; import { URLSearchParams } from 'url'; import { getAgentByUrl } from './fetch'; -import config from '@/config'; +import config from '@/config/index'; export async function verifyRecaptcha(secret: string, response: string) { const result = await getCaptchaResponse('https://www.recaptcha.net/recaptcha/api/siteverify', secret, response).catch(e => { diff --git a/src/misc/check-hit-antenna.ts b/src/misc/check-hit-antenna.ts index 3dfcb54c4..38965f4b0 100644 --- a/src/misc/check-hit-antenna.ts +++ b/src/misc/check-hit-antenna.ts @@ -1,7 +1,7 @@ -import { Antenna } from '../models/entities/antenna'; -import { Note } from '../models/entities/note'; -import { User } from '../models/entities/user'; -import { UserListJoinings, UserGroupJoinings } from '../models'; +import { Antenna } from '@/models/entities/antenna'; +import { Note } from '@/models/entities/note'; +import { User } from '@/models/entities/user'; +import { UserListJoinings, UserGroupJoinings } from '@/models/index'; import { getFullApAccount } from './convert-host'; import { PackedNote } from '../models/repositories/note'; import { parseAcct } from '@/misc/acct'; diff --git a/src/misc/check-word-mute.ts b/src/misc/check-word-mute.ts index 5af267d75..e2e871dd2 100644 --- a/src/misc/check-word-mute.ts +++ b/src/misc/check-word-mute.ts @@ -1,6 +1,6 @@ const RE2 = require('re2'); -import { Note } from '../models/entities/note'; -import { User } from '../models/entities/user'; +import { Note } from '@/models/entities/note'; +import { User } from '@/models/entities/user'; type NoteLike = { userId: Note['userId']; diff --git a/src/misc/convert-host.ts b/src/misc/convert-host.ts index 7b0b0acf1..6e9f6ed3e 100644 --- a/src/misc/convert-host.ts +++ b/src/misc/convert-host.ts @@ -1,5 +1,5 @@ import { URL } from 'url'; -import config from '@/config'; +import config from '@/config/index'; import { toASCII } from 'punycode/'; export function getFullApAccount(username: string, host: string | null) { diff --git a/src/misc/count-same-renotes.ts b/src/misc/count-same-renotes.ts index bc1072080..662876118 100644 --- a/src/misc/count-same-renotes.ts +++ b/src/misc/count-same-renotes.ts @@ -1,4 +1,4 @@ -import { Notes } from '../models'; +import { Notes } from '@/models/index'; export async function countSameRenotes(userId: string, renoteId: string, excludeNoteId: string | undefined): Promise { // 指定したユーザーの指定したノートのリノートがいくつあるか数える diff --git a/src/misc/download-text-file.ts b/src/misc/download-text-file.ts index d6fd17fc1..e8e23cc12 100644 --- a/src/misc/download-text-file.ts +++ b/src/misc/download-text-file.ts @@ -1,6 +1,6 @@ import * as fs from 'fs'; import * as util from 'util'; -import Logger from '../services/logger'; +import Logger from '@/services/logger'; import { createTemp } from './create-temp'; import { downloadUrl } from './download-url'; diff --git a/src/misc/download-url.ts b/src/misc/download-url.ts index dafeff6fc..43e061c71 100644 --- a/src/misc/download-url.ts +++ b/src/misc/download-url.ts @@ -5,9 +5,9 @@ import { URL } from 'url'; import fetch from 'node-fetch'; import { getAgentByUrl } from './fetch'; import { AbortController } from 'abort-controller'; -import config from '@/config'; +import config from '@/config/index'; import * as chalk from 'chalk'; -import Logger from '../services/logger'; +import Logger from '@/services/logger'; const pipeline = util.promisify(stream.pipeline); diff --git a/src/misc/fetch-meta.ts b/src/misc/fetch-meta.ts index e7a945dc9..a0bcdd4d4 100644 --- a/src/misc/fetch-meta.ts +++ b/src/misc/fetch-meta.ts @@ -1,4 +1,4 @@ -import { Meta } from '../models/entities/meta'; +import { Meta } from '@/models/entities/meta'; import { getConnection } from 'typeorm'; let cache: Meta; diff --git a/src/misc/fetch-proxy-account.ts b/src/misc/fetch-proxy-account.ts index 537edf289..e0eedea4c 100644 --- a/src/misc/fetch-proxy-account.ts +++ b/src/misc/fetch-proxy-account.ts @@ -1,6 +1,6 @@ import { fetchMeta } from './fetch-meta'; -import { ILocalUser } from '../models/entities/user'; -import { Users } from '../models'; +import { ILocalUser } from '@/models/entities/user'; +import { Users } from '@/models/index'; export async function fetchProxyAccount(): Promise { const meta = await fetchMeta(); diff --git a/src/misc/fetch.ts b/src/misc/fetch.ts index f7756f925..82db2f2f8 100644 --- a/src/misc/fetch.ts +++ b/src/misc/fetch.ts @@ -3,7 +3,7 @@ import * as https from 'https'; import CacheableLookup from 'cacheable-lookup'; import fetch, { HeadersInit } from 'node-fetch'; import { HttpProxyAgent, HttpsProxyAgent } from 'hpagent'; -import config from '@/config'; +import config from '@/config/index'; import { URL } from 'url'; export async function getJson(url: string, accept = 'application/json, */*', timeout = 10000, headers?: HeadersInit) { diff --git a/src/misc/gen-avatar.ts b/src/misc/gen-avatar.ts index 7ff28b2e8..f03ca9f96 100644 --- a/src/misc/gen-avatar.ts +++ b/src/misc/gen-avatar.ts @@ -2,7 +2,7 @@ * Random avatar generator */ -const p = require('pureimage'); +import * as p from 'pureimage'; import * as gen from 'random-seed'; import { WriteStream } from 'fs'; diff --git a/src/misc/gen-id.ts b/src/misc/gen-id.ts index 8e7e0b611..b1b542dc4 100644 --- a/src/misc/gen-id.ts +++ b/src/misc/gen-id.ts @@ -3,7 +3,7 @@ import { genAid } from './id/aid'; import { genMeid } from './id/meid'; import { genMeidg } from './id/meidg'; import { genObjectId } from './id/object-id'; -import config from '@/config'; +import config from '@/config/index'; const metohd = config.id.toLowerCase(); diff --git a/src/misc/get-user-name.ts b/src/misc/get-user-name.ts index b6b45118b..3545e986e 100644 --- a/src/misc/get-user-name.ts +++ b/src/misc/get-user-name.ts @@ -1,4 +1,4 @@ -import { User } from '../models/entities/user'; +import { User } from '@/models/entities/user'; export default function(user: User): string { return user.name || user.username; diff --git a/src/misc/is-quote.ts b/src/misc/is-quote.ts index 0a2a72f4a..2b57f036a 100644 --- a/src/misc/is-quote.ts +++ b/src/misc/is-quote.ts @@ -1,4 +1,4 @@ -import { Note } from '../models/entities/note'; +import { Note } from '@/models/entities/note'; export default function(note: Note): boolean { return note.renoteId != null && (note.text != null || note.hasPoll || (note.fileIds != null && note.fileIds.length > 0)); diff --git a/src/misc/keypair-store.ts b/src/misc/keypair-store.ts index c78fdd755..c018013b7 100644 --- a/src/misc/keypair-store.ts +++ b/src/misc/keypair-store.ts @@ -1,6 +1,6 @@ -import { UserKeypairs } from '../models'; -import { User } from '../models/entities/user'; -import { UserKeypair } from '../models/entities/user-keypair'; +import { UserKeypairs } from '@/models/index'; +import { User } from '@/models/entities/user'; +import { UserKeypair } from '@/models/entities/user-keypair'; import { Cache } from './cache'; const cache = new Cache(Infinity); diff --git a/src/misc/license.ts b/src/misc/license.ts index d36af665c..8b12923ca 100644 --- a/src/misc/license.ts +++ b/src/misc/license.ts @@ -1,6 +1,12 @@ import * as fs from 'fs'; +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; -const license = fs.readFileSync(__dirname + '/../../LICENSE', 'utf-8'); +//const _filename = fileURLToPath(import.meta.url); +const _filename = __filename; +const _dirname = dirname(_filename); + +const license = fs.readFileSync(_dirname + '/../../LICENSE', 'utf-8'); const licenseHtml = license .replace(/\r\n/g, '\n') diff --git a/src/misc/populate-emojis.ts b/src/misc/populate-emojis.ts index 42aaaf070..f0a8bde31 100644 --- a/src/misc/populate-emojis.ts +++ b/src/misc/populate-emojis.ts @@ -1,11 +1,11 @@ import { In } from 'typeorm'; -import { Emojis } from '../models'; -import { Emoji } from '../models/entities/emoji'; -import { Note } from '../models/entities/note'; +import { Emojis } from '@/models/index'; +import { Emoji } from '@/models/entities/emoji'; +import { Note } from '@/models/entities/note'; import { Cache } from './cache'; import { isSelfHost, toPunyNullable } from './convert-host'; import { decodeReaction } from './reaction-lib'; -import config from '@/config'; +import config from '@/config/index'; import { query } from '@/prelude/url'; const cache = new Cache(1000 * 60 * 60 * 12); diff --git a/src/misc/reaction-lib.ts b/src/misc/reaction-lib.ts index b393154d9..46dedfa24 100644 --- a/src/misc/reaction-lib.ts +++ b/src/misc/reaction-lib.ts @@ -1,6 +1,6 @@ import { emojiRegex } from './emoji-regex'; import { fetchMeta } from './fetch-meta'; -import { Emojis } from '../models'; +import { Emojis } from '@/models/index'; import { toPunyNullable } from './convert-host'; const legacies: Record = { diff --git a/src/misc/show-machine-info.ts b/src/misc/show-machine-info.ts index 2aae019be..58747c115 100644 --- a/src/misc/show-machine-info.ts +++ b/src/misc/show-machine-info.ts @@ -1,6 +1,6 @@ import * as os from 'os'; import * as sysUtils from 'systeminformation'; -import Logger from '../services/logger'; +import Logger from '@/services/logger'; export async function showMachineInfo(parentLogger: Logger) { const logger = parentLogger.createSubLogger('machine'); diff --git a/src/models/entities/channel.ts b/src/models/entities/channel.ts index 1868f7514..f2d713612 100644 --- a/src/models/entities/channel.ts +++ b/src/models/entities/channel.ts @@ -23,9 +23,10 @@ export class Channel { @Index() @Column({ ...id(), + nullable: true, comment: 'The owner ID.' }) - public userId: User['id']; + public userId: User['id'] | null; @ManyToOne(type => User, { onDelete: 'SET NULL' diff --git a/src/models/entities/user.ts b/src/models/entities/user.ts index 060ec06b9..65aebd2d1 100644 --- a/src/models/entities/user.ts +++ b/src/models/entities/user.ts @@ -175,6 +175,13 @@ export class User { }) public isExplorable: boolean; + // アカウントが削除されたかどうかのフラグだが、完全に削除される際は物理削除なので実質削除されるまでの「削除が進行しているかどうか」のフラグ + @Column('boolean', { + default: false, + comment: 'Whether the User is deleted.' + }) + public isDeleted: boolean; + @Column('varchar', { length: 128, array: true, default: '{}' }) diff --git a/src/models/repositories/abuse-user-report.ts b/src/models/repositories/abuse-user-report.ts index cb33d2506..039a9924d 100644 --- a/src/models/repositories/abuse-user-report.ts +++ b/src/models/repositories/abuse-user-report.ts @@ -1,7 +1,7 @@ import { EntityRepository, Repository } from 'typeorm'; -import { Users } from '..'; -import { AbuseUserReport } from '../entities/abuse-user-report'; -import { awaitAll } from '../../prelude/await-all'; +import { Users } from '../index'; +import { AbuseUserReport } from '@/models/entities/abuse-user-report'; +import { awaitAll } from '@/prelude/await-all'; @EntityRepository(AbuseUserReport) export class AbuseUserReportRepository extends Repository { diff --git a/src/models/repositories/antenna.ts b/src/models/repositories/antenna.ts index 787e5c8e2..e61eed5e0 100644 --- a/src/models/repositories/antenna.ts +++ b/src/models/repositories/antenna.ts @@ -1,7 +1,7 @@ import { EntityRepository, Repository } from 'typeorm'; -import { Antenna } from '../entities/antenna'; +import { Antenna } from '@/models/entities/antenna'; import { SchemaType } from '@/misc/schema'; -import { AntennaNotes, UserGroupJoinings } from '..'; +import { AntennaNotes, UserGroupJoinings } from '../index'; export type PackedAntenna = SchemaType; diff --git a/src/models/repositories/app.ts b/src/models/repositories/app.ts index c919a9bdb..2287bd439 100644 --- a/src/models/repositories/app.ts +++ b/src/models/repositories/app.ts @@ -1,6 +1,6 @@ import { EntityRepository, Repository } from 'typeorm'; -import { App } from '../entities/app'; -import { AccessTokens } from '..'; +import { App } from '@/models/entities/app'; +import { AccessTokens } from '../index'; import { SchemaType } from '@/misc/schema'; export type PackedApp = SchemaType; diff --git a/src/models/repositories/auth-session.ts b/src/models/repositories/auth-session.ts index f513357e1..c8f4c10f2 100644 --- a/src/models/repositories/auth-session.ts +++ b/src/models/repositories/auth-session.ts @@ -1,8 +1,8 @@ import { EntityRepository, Repository } from 'typeorm'; -import { Apps } from '..'; -import { AuthSession } from '../entities/auth-session'; -import { awaitAll } from '../../prelude/await-all'; -import { User } from '../entities/user'; +import { Apps } from '../index'; +import { AuthSession } from '@/models/entities/auth-session'; +import { awaitAll } from '@/prelude/await-all'; +import { User } from '@/models/entities/user'; @EntityRepository(AuthSession) export class AuthSessionRepository extends Repository { diff --git a/src/models/repositories/blocking.ts b/src/models/repositories/blocking.ts index 9a4f3f6c6..dd3a10905 100644 --- a/src/models/repositories/blocking.ts +++ b/src/models/repositories/blocking.ts @@ -1,9 +1,9 @@ import { EntityRepository, Repository } from 'typeorm'; -import { Users } from '..'; -import { Blocking } from '../entities/blocking'; -import { awaitAll } from '../../prelude/await-all'; +import { Users } from '../index'; +import { Blocking } from '@/models/entities/blocking'; +import { awaitAll } from '@/prelude/await-all'; import { SchemaType } from '@/misc/schema'; -import { User } from '../entities/user'; +import { User } from '@/models/entities/user'; export type PackedBlocking = SchemaType; diff --git a/src/models/repositories/channel.ts b/src/models/repositories/channel.ts index 3a6bd4c92..4bb829f57 100644 --- a/src/models/repositories/channel.ts +++ b/src/models/repositories/channel.ts @@ -1,8 +1,8 @@ import { EntityRepository, Repository } from 'typeorm'; -import { Channel } from '../entities/channel'; +import { Channel } from '@/models/entities/channel'; import { SchemaType } from '@/misc/schema'; -import { DriveFiles, ChannelFollowings, NoteUnreads } from '..'; -import { User } from '../entities/user'; +import { DriveFiles, ChannelFollowings, NoteUnreads } from '../index'; +import { User } from '@/models/entities/user'; export type PackedChannel = SchemaType; @@ -90,7 +90,7 @@ export const packedChannelSchema = { }, userId: { type: 'string' as const, - nullable: false as const, optional: false as const, + nullable: true as const, optional: false as const, format: 'id', }, }, diff --git a/src/models/repositories/clip.ts b/src/models/repositories/clip.ts index 293807b12..49dc3a332 100644 --- a/src/models/repositories/clip.ts +++ b/src/models/repositories/clip.ts @@ -1,8 +1,8 @@ import { EntityRepository, Repository } from 'typeorm'; -import { Clip } from '../entities/clip'; +import { Clip } from '@/models/entities/clip'; import { SchemaType } from '@/misc/schema'; -import { Users } from '..'; -import { awaitAll } from '../../prelude/await-all'; +import { Users } from '../index'; +import { awaitAll } from '@/prelude/await-all'; export type PackedClip = SchemaType; diff --git a/src/models/repositories/drive-file.ts b/src/models/repositories/drive-file.ts index 675faca8e..42a60ff03 100644 --- a/src/models/repositories/drive-file.ts +++ b/src/models/repositories/drive-file.ts @@ -1,13 +1,13 @@ import { EntityRepository, Repository } from 'typeorm'; -import { DriveFile } from '../entities/drive-file'; -import { Users, DriveFolders } from '..'; -import { User } from '../entities/user'; +import { DriveFile } from '@/models/entities/drive-file'; +import { Users, DriveFolders } from '../index'; +import { User } from '@/models/entities/user'; import { toPuny } from '@/misc/convert-host'; -import { awaitAll } from '../../prelude/await-all'; +import { awaitAll } from '@/prelude/await-all'; import { SchemaType } from '@/misc/schema'; -import config from '@/config'; -import { query, appendQuery } from '../../prelude/url'; -import { Meta } from '../entities/meta'; +import config from '@/config/index'; +import { query, appendQuery } from '@/prelude/url'; +import { Meta } from '@/models/entities/meta'; import { fetchMeta } from '@/misc/fetch-meta'; export type PackedDriveFile = SchemaType; diff --git a/src/models/repositories/drive-folder.ts b/src/models/repositories/drive-folder.ts index d1922c96f..4228284f8 100644 --- a/src/models/repositories/drive-folder.ts +++ b/src/models/repositories/drive-folder.ts @@ -1,7 +1,7 @@ import { EntityRepository, Repository } from 'typeorm'; -import { DriveFolders, DriveFiles } from '..'; -import { DriveFolder } from '../entities/drive-folder'; -import { awaitAll } from '../../prelude/await-all'; +import { DriveFolders, DriveFiles } from '../index'; +import { DriveFolder } from '@/models/entities/drive-folder'; +import { awaitAll } from '@/prelude/await-all'; import { SchemaType } from '@/misc/schema'; export type PackedDriveFolder = SchemaType; diff --git a/src/models/repositories/emoji.ts b/src/models/repositories/emoji.ts index 3490a6ac8..c3d7184ec 100644 --- a/src/models/repositories/emoji.ts +++ b/src/models/repositories/emoji.ts @@ -1,5 +1,5 @@ import { EntityRepository, Repository } from 'typeorm'; -import { Emoji } from '../entities/emoji'; +import { Emoji } from '@/models/entities/emoji'; @EntityRepository(Emoji) export class EmojiRepository extends Repository { diff --git a/src/models/repositories/federation-instance.ts b/src/models/repositories/federation-instance.ts index 15e8023ee..4b70971ec 100644 --- a/src/models/repositories/federation-instance.ts +++ b/src/models/repositories/federation-instance.ts @@ -1,4 +1,4 @@ -import config from '@/config'; +import config from '@/config/index'; export const packedFederationInstanceSchema = { type: 'object' as const, diff --git a/src/models/repositories/follow-request.ts b/src/models/repositories/follow-request.ts index 31e5fb2d9..d6ee58e23 100644 --- a/src/models/repositories/follow-request.ts +++ b/src/models/repositories/follow-request.ts @@ -1,7 +1,7 @@ import { EntityRepository, Repository } from 'typeorm'; -import { FollowRequest } from '../entities/follow-request'; -import { Users } from '..'; -import { User } from '../entities/user'; +import { FollowRequest } from '@/models/entities/follow-request'; +import { Users } from '../index'; +import { User } from '@/models/entities/user'; @EntityRepository(FollowRequest) export class FollowRequestRepository extends Repository { diff --git a/src/models/repositories/following.ts b/src/models/repositories/following.ts index 3aed83f32..3bb120bc4 100644 --- a/src/models/repositories/following.ts +++ b/src/models/repositories/following.ts @@ -1,9 +1,9 @@ import { EntityRepository, Repository } from 'typeorm'; -import { Users } from '..'; -import { Following } from '../entities/following'; -import { awaitAll } from '../../prelude/await-all'; +import { Users } from '../index'; +import { Following } from '@/models/entities/following'; +import { awaitAll } from '@/prelude/await-all'; import { SchemaType } from '@/misc/schema'; -import { User } from '../entities/user'; +import { User } from '@/models/entities/user'; type LocalFollowerFollowing = Following & { followerHost: null; diff --git a/src/models/repositories/gallery-like.ts b/src/models/repositories/gallery-like.ts index e01c17cff..79123e5ee 100644 --- a/src/models/repositories/gallery-like.ts +++ b/src/models/repositories/gallery-like.ts @@ -1,6 +1,6 @@ import { EntityRepository, Repository } from 'typeorm'; -import { GalleryLike } from '../entities/gallery-like'; -import { GalleryPosts } from '..'; +import { GalleryLike } from '@/models/entities/gallery-like'; +import { GalleryPosts } from '../index'; @EntityRepository(GalleryLike) export class GalleryLikeRepository extends Repository { diff --git a/src/models/repositories/gallery-post.ts b/src/models/repositories/gallery-post.ts index f1d6fe632..03edb3521 100644 --- a/src/models/repositories/gallery-post.ts +++ b/src/models/repositories/gallery-post.ts @@ -1,9 +1,9 @@ import { EntityRepository, Repository } from 'typeorm'; -import { GalleryPost } from '../entities/gallery-post'; +import { GalleryPost } from '@/models/entities/gallery-post'; import { SchemaType } from '../../misc/schema'; -import { Users, DriveFiles, GalleryLikes } from '..'; -import { awaitAll } from '../../prelude/await-all'; -import { User } from '../entities/user'; +import { Users, DriveFiles, GalleryLikes } from '../index'; +import { awaitAll } from '@/prelude/await-all'; +import { User } from '@/models/entities/user'; export type PackedGalleryPost = SchemaType; diff --git a/src/models/repositories/games/reversi/game.ts b/src/models/repositories/games/reversi/game.ts index 344cf7b20..dc91ad51b 100644 --- a/src/models/repositories/games/reversi/game.ts +++ b/src/models/repositories/games/reversi/game.ts @@ -1,7 +1,7 @@ import { User } from '@/models/entities/user'; import { EntityRepository, Repository } from 'typeorm'; -import { Users } from '../../..'; -import { ReversiGame } from '../../../entities/games/reversi/game'; +import { Users } from '../../../index'; +import { ReversiGame } from '@/models/entities/games/reversi/game'; @EntityRepository(ReversiGame) export class ReversiGameRepository extends Repository { diff --git a/src/models/repositories/games/reversi/matching.ts b/src/models/repositories/games/reversi/matching.ts index 013021eb9..148221dee 100644 --- a/src/models/repositories/games/reversi/matching.ts +++ b/src/models/repositories/games/reversi/matching.ts @@ -1,7 +1,7 @@ import { EntityRepository, Repository } from 'typeorm'; -import { ReversiMatching } from '../../../entities/games/reversi/matching'; -import { Users } from '../../..'; -import { awaitAll } from '../../../../prelude/await-all'; +import { ReversiMatching } from '@/models/entities/games/reversi/matching'; +import { Users } from '../../../index'; +import { awaitAll } from '@/prelude/await-all'; import { User } from '@/models/entities/user'; @EntityRepository(ReversiMatching) diff --git a/src/models/repositories/hashtag.ts b/src/models/repositories/hashtag.ts index 3fee2f771..ee42ad16b 100644 --- a/src/models/repositories/hashtag.ts +++ b/src/models/repositories/hashtag.ts @@ -1,5 +1,5 @@ import { EntityRepository, Repository } from 'typeorm'; -import { Hashtag } from '../entities/hashtag'; +import { Hashtag } from '@/models/entities/hashtag'; import { SchemaType } from '@/misc/schema'; export type PackedHashtag = SchemaType; diff --git a/src/models/repositories/messaging-message.ts b/src/models/repositories/messaging-message.ts index c77b14ca7..1a4a8eecc 100644 --- a/src/models/repositories/messaging-message.ts +++ b/src/models/repositories/messaging-message.ts @@ -1,8 +1,8 @@ import { EntityRepository, Repository } from 'typeorm'; -import { MessagingMessage } from '../entities/messaging-message'; -import { Users, DriveFiles, UserGroups } from '..'; +import { MessagingMessage } from '@/models/entities/messaging-message'; +import { Users, DriveFiles, UserGroups } from '../index'; import { SchemaType } from '@/misc/schema'; -import { User } from '../entities/user'; +import { User } from '@/models/entities/user'; export type PackedMessagingMessage = SchemaType; diff --git a/src/models/repositories/moderation-logs.ts b/src/models/repositories/moderation-logs.ts index 3d4c07570..c7df3afdc 100644 --- a/src/models/repositories/moderation-logs.ts +++ b/src/models/repositories/moderation-logs.ts @@ -1,7 +1,7 @@ import { EntityRepository, Repository } from 'typeorm'; -import { Users } from '..'; -import { ModerationLog } from '../entities/moderation-log'; -import { awaitAll } from '../../prelude/await-all'; +import { Users } from '../index'; +import { ModerationLog } from '@/models/entities/moderation-log'; +import { awaitAll } from '@/prelude/await-all'; @EntityRepository(ModerationLog) export class ModerationLogRepository extends Repository { diff --git a/src/models/repositories/muting.ts b/src/models/repositories/muting.ts index 32e681bf0..e46f4ae44 100644 --- a/src/models/repositories/muting.ts +++ b/src/models/repositories/muting.ts @@ -1,9 +1,9 @@ import { EntityRepository, Repository } from 'typeorm'; -import { Users } from '..'; -import { Muting } from '../entities/muting'; -import { awaitAll } from '../../prelude/await-all'; +import { Users } from '../index'; +import { Muting } from '@/models/entities/muting'; +import { awaitAll } from '@/prelude/await-all'; import { SchemaType } from '@/misc/schema'; -import { User } from '../entities/user'; +import { User } from '@/models/entities/user'; export type PackedMuting = SchemaType; diff --git a/src/models/repositories/note-favorite.ts b/src/models/repositories/note-favorite.ts index e58b258fc..3248c32de 100644 --- a/src/models/repositories/note-favorite.ts +++ b/src/models/repositories/note-favorite.ts @@ -1,7 +1,7 @@ import { EntityRepository, Repository } from 'typeorm'; -import { NoteFavorite } from '../entities/note-favorite'; -import { Notes } from '..'; -import { User } from '../entities/user'; +import { NoteFavorite } from '@/models/entities/note-favorite'; +import { Notes } from '../index'; +import { User } from '@/models/entities/user'; @EntityRepository(NoteFavorite) export class NoteFavoriteRepository extends Repository { diff --git a/src/models/repositories/note-reaction.ts b/src/models/repositories/note-reaction.ts index 5de9e1be6..c349edf18 100644 --- a/src/models/repositories/note-reaction.ts +++ b/src/models/repositories/note-reaction.ts @@ -1,9 +1,9 @@ import { EntityRepository, Repository } from 'typeorm'; -import { NoteReaction } from '../entities/note-reaction'; -import { Users } from '..'; +import { NoteReaction } from '@/models/entities/note-reaction'; +import { Users } from '../index'; import { SchemaType } from '@/misc/schema'; import { convertLegacyReaction } from '@/misc/reaction-lib'; -import { User } from '../entities/user'; +import { User } from '@/models/entities/user'; export type PackedNoteReaction = SchemaType; diff --git a/src/models/repositories/note.ts b/src/models/repositories/note.ts index df0ca8c6a..a8e356abf 100644 --- a/src/models/repositories/note.ts +++ b/src/models/repositories/note.ts @@ -1,13 +1,13 @@ import { EntityRepository, Repository, In } from 'typeorm'; import * as mfm from 'mfm-js'; -import { Note } from '../entities/note'; -import { User } from '../entities/user'; -import { Users, PollVotes, DriveFiles, NoteReactions, Followings, Polls, Channels } from '..'; +import { Note } from '@/models/entities/note'; +import { User } from '@/models/entities/user'; +import { Users, PollVotes, DriveFiles, NoteReactions, Followings, Polls, Channels } from '../index'; import { SchemaType } from '@/misc/schema'; import { nyaize } from '@/misc/nyaize'; -import { awaitAll } from '../../prelude/await-all'; +import { awaitAll } from '@/prelude/await-all'; import { convertLegacyReaction, convertLegacyReactions, decodeReaction } from '@/misc/reaction-lib'; -import { NoteReaction } from '../entities/note-reaction'; +import { NoteReaction } from '@/models/entities/note-reaction'; import { aggregateNoteEmojis, populateEmojis, prefetchEmojis } from '@/misc/populate-emojis'; export type PackedNote = SchemaType; diff --git a/src/models/repositories/notification.ts b/src/models/repositories/notification.ts index 94a2c3c91..55af96b6d 100644 --- a/src/models/repositories/notification.ts +++ b/src/models/repositories/notification.ts @@ -1,11 +1,11 @@ import { EntityRepository, In, Repository } from 'typeorm'; -import { Users, Notes, UserGroupInvitations, AccessTokens, NoteReactions } from '..'; -import { Notification } from '../entities/notification'; -import { awaitAll } from '../../prelude/await-all'; +import { Users, Notes, UserGroupInvitations, AccessTokens, NoteReactions } from '../index'; +import { Notification } from '@/models/entities/notification'; +import { awaitAll } from '@/prelude/await-all'; import { SchemaType } from '@/misc/schema'; -import { Note } from '../entities/note'; -import { NoteReaction } from '../entities/note-reaction'; -import { User } from '../entities/user'; +import { Note } from '@/models/entities/note'; +import { NoteReaction } from '@/models/entities/note-reaction'; +import { User } from '@/models/entities/user'; import { aggregateNoteEmojis, prefetchEmojis } from '@/misc/populate-emojis'; export type PackedNotification = SchemaType; diff --git a/src/models/repositories/page-like.ts b/src/models/repositories/page-like.ts index cfef950f3..28f34254d 100644 --- a/src/models/repositories/page-like.ts +++ b/src/models/repositories/page-like.ts @@ -1,7 +1,7 @@ import { EntityRepository, Repository } from 'typeorm'; -import { PageLike } from '../entities/page-like'; -import { Pages } from '..'; -import { User } from '../entities/user'; +import { PageLike } from '@/models/entities/page-like'; +import { Pages } from '../index'; +import { User } from '@/models/entities/user'; @EntityRepository(PageLike) export class PageLikeRepository extends Repository { diff --git a/src/models/repositories/page.ts b/src/models/repositories/page.ts index a162a5032..757aaa5a3 100644 --- a/src/models/repositories/page.ts +++ b/src/models/repositories/page.ts @@ -1,10 +1,10 @@ import { EntityRepository, Repository } from 'typeorm'; -import { Page } from '../entities/page'; +import { Page } from '@/models/entities/page'; import { SchemaType } from '@/misc/schema'; -import { Users, DriveFiles, PageLikes } from '..'; -import { awaitAll } from '../../prelude/await-all'; -import { DriveFile } from '../entities/drive-file'; -import { User } from '../entities/user'; +import { Users, DriveFiles, PageLikes } from '../index'; +import { awaitAll } from '@/prelude/await-all'; +import { DriveFile } from '@/models/entities/drive-file'; +import { User } from '@/models/entities/user'; export type PackedPage = SchemaType; diff --git a/src/models/repositories/relay.ts b/src/models/repositories/relay.ts index 601bb5eb3..72ead899f 100644 --- a/src/models/repositories/relay.ts +++ b/src/models/repositories/relay.ts @@ -1,5 +1,5 @@ import { EntityRepository, Repository } from 'typeorm'; -import { Relay } from '../entities/relay'; +import { Relay } from '@/models/entities/relay'; @EntityRepository(Relay) export class RelayRepository extends Repository { diff --git a/src/models/repositories/signin.ts b/src/models/repositories/signin.ts index f5b90c0e9..9942d2d96 100644 --- a/src/models/repositories/signin.ts +++ b/src/models/repositories/signin.ts @@ -1,5 +1,5 @@ import { EntityRepository, Repository } from 'typeorm'; -import { Signin } from '../entities/signin'; +import { Signin } from '@/models/entities/signin'; @EntityRepository(Signin) export class SigninRepository extends Repository { diff --git a/src/models/repositories/user-group-invitation.ts b/src/models/repositories/user-group-invitation.ts index 2aa890361..638603d6e 100644 --- a/src/models/repositories/user-group-invitation.ts +++ b/src/models/repositories/user-group-invitation.ts @@ -1,6 +1,6 @@ import { EntityRepository, Repository } from 'typeorm'; -import { UserGroupInvitation } from '../entities/user-group-invitation'; -import { UserGroups } from '..'; +import { UserGroupInvitation } from '@/models/entities/user-group-invitation'; +import { UserGroups } from '../index'; @EntityRepository(UserGroupInvitation) export class UserGroupInvitationRepository extends Repository { diff --git a/src/models/repositories/user-group.ts b/src/models/repositories/user-group.ts index c7d73ebe2..a76ac7b9d 100644 --- a/src/models/repositories/user-group.ts +++ b/src/models/repositories/user-group.ts @@ -1,6 +1,6 @@ import { EntityRepository, Repository } from 'typeorm'; -import { UserGroup } from '../entities/user-group'; -import { UserGroupJoinings } from '..'; +import { UserGroup } from '@/models/entities/user-group'; +import { UserGroupJoinings } from '../index'; import { SchemaType } from '@/misc/schema'; export type PackedUserGroup = SchemaType; diff --git a/src/models/repositories/user-list.ts b/src/models/repositories/user-list.ts index 7710bebfc..809dbe026 100644 --- a/src/models/repositories/user-list.ts +++ b/src/models/repositories/user-list.ts @@ -1,6 +1,6 @@ import { EntityRepository, Repository } from 'typeorm'; -import { UserList } from '../entities/user-list'; -import { UserListJoinings } from '..'; +import { UserList } from '@/models/entities/user-list'; +import { UserListJoinings } from '../index'; import { SchemaType } from '@/misc/schema'; export type PackedUserList = SchemaType; diff --git a/src/models/repositories/user.ts b/src/models/repositories/user.ts index 1a191fe86..d4bb995ce 100644 --- a/src/models/repositories/user.ts +++ b/src/models/repositories/user.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; import { EntityRepository, Repository, In, Not } from 'typeorm'; -import { User, ILocalUser, IRemoteUser } from '../entities/user'; -import { Notes, NoteUnreads, FollowRequests, Notifications, MessagingMessages, UserNotePinings, Followings, Blockings, Mutings, UserProfiles, UserSecurityKeys, UserGroupJoinings, Pages, Announcements, AnnouncementReads, Antennas, AntennaNotes, ChannelFollowings, Instances } from '..'; -import config from '@/config'; +import { User, ILocalUser, IRemoteUser } from '@/models/entities/user'; +import { Notes, NoteUnreads, FollowRequests, Notifications, MessagingMessages, UserNotePinings, Followings, Blockings, Mutings, UserProfiles, UserSecurityKeys, UserGroupJoinings, Pages, Announcements, AnnouncementReads, Antennas, AntennaNotes, ChannelFollowings, Instances } from '../index'; +import config from '@/config/index'; import { SchemaType } from '@/misc/schema'; -import { awaitAll } from '../../prelude/await-all'; +import { awaitAll } from '@/prelude/await-all'; import { populateEmojis } from '@/misc/populate-emojis'; import { getAntennas } from '@/misc/antenna-cache'; import { USER_ACTIVE_THRESHOLD, USER_ONLINE_THRESHOLD } from '@/const'; @@ -252,6 +252,7 @@ export class UserRepository extends Repository { autoAcceptFollowed: profile!.autoAcceptFollowed, noCrawle: profile!.noCrawle, isExplorable: user.isExplorable, + isDeleted: user.isDeleted, hideOnlineStatus: user.hideOnlineStatus, hasUnreadSpecifiedNotes: NoteUnreads.count({ where: { userId: user.id, isSpecified: true }, diff --git a/src/queue/index.ts b/src/queue/index.ts index c7b7f0392..4ca7998e6 100644 --- a/src/queue/index.ts +++ b/src/queue/index.ts @@ -1,14 +1,14 @@ import * as httpSignature from 'http-signature'; -import config from '@/config'; +import config from '@/config/index'; import { program } from '../argv'; import processDeliver from './processors/deliver'; import processInbox from './processors/inbox'; -import processDb from './processors/db'; -import procesObjectStorage from './processors/object-storage'; +import processDb from './processors/db/index'; +import procesObjectStorage from './processors/object-storage/index'; import { queueLogger } from './logger'; -import { DriveFile } from '../models/entities/drive-file'; +import { DriveFile } from '@/models/entities/drive-file'; import { getJobInfo } from './get-job-info'; import { dbQueue, deliverQueue, inboxQueue, objectStorageQueue } from './queues'; import { ThinUser } from './types'; @@ -73,8 +73,7 @@ export function deliver(user: ThinUser, content: unknown, to: string | null) { attempts: config.deliverJobMaxAttempts || 12, timeout: 1 * 60 * 1000, // 1min backoff: { - type: 'exponential', - delay: 60 * 1000 + type: 'apBackoff' }, removeOnComplete: true, removeOnFail: true @@ -91,8 +90,7 @@ export function inbox(activity: IActivity, signature: httpSignature.IParsedSigna attempts: config.inboxJobMaxAttempts || 8, timeout: 5 * 60 * 1000, // 5min backoff: { - type: 'exponential', - delay: 60 * 1000 + type: 'apBackoff' }, removeOnComplete: true, removeOnFail: true @@ -173,6 +171,15 @@ export function createImportUserListsJob(user: ThinUser, fileId: DriveFile['id'] }); } +export function createDeleteAccountJob(user: ThinUser) { + return dbQueue.add('deleteAccount', { + user: user + }, { + removeOnComplete: true, + removeOnFail: true + }); +} + export function createDeleteObjectStorageFileJob(key: string) { return objectStorageQueue.add('deleteFile', { key: key diff --git a/src/queue/initialize.ts b/src/queue/initialize.ts index 4c0e5f9d8..31102a3ed 100644 --- a/src/queue/initialize.ts +++ b/src/queue/initialize.ts @@ -1,5 +1,5 @@ import * as Bull from 'bull'; -import config from '@/config'; +import config from '@/config/index'; export function initialize(name: string, limitPerSec = -1) { return new Bull(name, { @@ -11,8 +11,23 @@ export function initialize(name: string, limitPerSec = -1) { }, prefix: config.redis.prefix ? `${config.redis.prefix}:queue` : 'queue', limiter: limitPerSec > 0 ? { - max: limitPerSec * 5, - duration: 5000 - } : undefined + max: limitPerSec, + duration: 1000 + } : undefined, + settings: { + backoffStrategies: { + apBackoff + } + } }); } + +// ref. https://github.com/misskey-dev/misskey/pull/7635#issue-971097019 +function apBackoff(attemptsMade: number, err: Error) { + const baseDelay = 60 * 1000; // 1min + const maxBackoff = 8 * 60 * 60 * 1000; // 8hours + let backoff = (Math.pow(2, attemptsMade) - 1) * baseDelay; + backoff = Math.min(backoff, maxBackoff); + backoff += Math.round(backoff * Math.random() * 0.2); + return backoff; +} diff --git a/src/queue/logger.ts b/src/queue/logger.ts index d6d077468..f789b9d07 100644 --- a/src/queue/logger.ts +++ b/src/queue/logger.ts @@ -1,3 +1,3 @@ -import Logger from '../services/logger'; +import Logger from '@/services/logger'; export const queueLogger = new Logger('queue', 'orange'); diff --git a/src/queue/processors/db/delete-account.ts b/src/queue/processors/db/delete-account.ts new file mode 100644 index 000000000..65327754c --- /dev/null +++ b/src/queue/processors/db/delete-account.ts @@ -0,0 +1,89 @@ +import * as Bull from 'bull'; +import { queueLogger } from '../../logger'; +import { DriveFiles, Notes, UserProfiles, Users } from '@/models/index'; +import { DbUserJobData } from '@/queue/types'; +import { Note } from '@/models/entities/note'; +import { DriveFile } from '@/models/entities/drive-file'; +import { MoreThan } from 'typeorm'; +import { deleteFileSync } from '@/services/drive/delete-file'; +import { sendEmail } from '@/services/send-email'; + +const logger = queueLogger.createSubLogger('delete-account'); + +export async function deleteAccount(job: Bull.Job): Promise { + logger.info(`Deleting account of ${job.data.user.id} ...`); + + const user = await Users.findOne(job.data.user.id); + if (user == null) { + return; + } + + { // Delete notes + let cursor: Note['id'] | null = null; + + while (true) { + const notes = await Notes.find({ + where: { + userId: user.id, + ...(cursor ? { id: MoreThan(cursor) } : {}) + }, + take: 100, + order: { + id: 1 + } + }); + + if (notes.length === 0) { + break; + } + + cursor = notes[notes.length - 1].id; + + await Notes.delete(notes.map(note => note.id)); + } + + logger.succ(`All of notes deleted`); + } + + { // Delete files + let cursor: DriveFile['id'] | null = null; + + while (true) { + const files = await DriveFiles.find({ + where: { + userId: user.id, + ...(cursor ? { id: MoreThan(cursor) } : {}) + }, + take: 10, + order: { + id: 1 + } + }); + + if (files.length === 0) { + break; + } + + cursor = files[files.length - 1].id; + + for (const file of files) { + await deleteFileSync(file); + } + } + + logger.succ(`All of files deleted`); + } + + { // Send email notification + const profile = await UserProfiles.findOneOrFail(user.id); + if (profile.email && profile.emailVerified) { + sendEmail(profile.email, 'Account deleted', + `Your account has been deleted.`, + `Your account has been deleted.`); + } + } + + await Users.delete(job.data.user.id); + + return 'Account deleted'; +} diff --git a/src/queue/processors/db/delete-drive-files.ts b/src/queue/processors/db/delete-drive-files.ts index 874623204..8a28468b0 100644 --- a/src/queue/processors/db/delete-drive-files.ts +++ b/src/queue/processors/db/delete-drive-files.ts @@ -1,8 +1,8 @@ import * as Bull from 'bull'; import { queueLogger } from '../../logger'; -import { deleteFileSync } from '../../../services/drive/delete-file'; -import { Users, DriveFiles } from '../../../models'; +import { deleteFileSync } from '@/services/drive/delete-file'; +import { Users, DriveFiles } from '@/models/index'; import { MoreThan } from 'typeorm'; import { DbUserJobData } from '@/queue/types'; diff --git a/src/queue/processors/db/export-blocking.ts b/src/queue/processors/db/export-blocking.ts index 001b50a22..a0fc38500 100644 --- a/src/queue/processors/db/export-blocking.ts +++ b/src/queue/processors/db/export-blocking.ts @@ -3,10 +3,10 @@ import * as tmp from 'tmp'; import * as fs from 'fs'; import { queueLogger } from '../../logger'; -import addFile from '../../../services/drive/add-file'; -import dateFormat = require('dateformat'); +import addFile from '@/services/drive/add-file'; +import dateFormat from 'dateformat'; import { getFullApAccount } from '@/misc/convert-host'; -import { Users, Blockings } from '../../../models'; +import { Users, Blockings } from '@/models/index'; import { MoreThan } from 'typeorm'; import { DbUserJobData } from '@/queue/types'; diff --git a/src/queue/processors/db/export-following.ts b/src/queue/processors/db/export-following.ts index c1ccb7af4..361215036 100644 --- a/src/queue/processors/db/export-following.ts +++ b/src/queue/processors/db/export-following.ts @@ -3,10 +3,10 @@ import * as tmp from 'tmp'; import * as fs from 'fs'; import { queueLogger } from '../../logger'; -import addFile from '../../../services/drive/add-file'; -import dateFormat = require('dateformat'); +import addFile from '@/services/drive/add-file'; +import dateFormat from 'dateformat'; import { getFullApAccount } from '@/misc/convert-host'; -import { Users, Followings } from '../../../models'; +import { Users, Followings } from '@/models/index'; import { MoreThan } from 'typeorm'; import { DbUserJobData } from '@/queue/types'; diff --git a/src/queue/processors/db/export-mute.ts b/src/queue/processors/db/export-mute.ts index 55d45cc29..70b2272cd 100644 --- a/src/queue/processors/db/export-mute.ts +++ b/src/queue/processors/db/export-mute.ts @@ -3,10 +3,10 @@ import * as tmp from 'tmp'; import * as fs from 'fs'; import { queueLogger } from '../../logger'; -import addFile from '../../../services/drive/add-file'; -import dateFormat = require('dateformat'); +import addFile from '@/services/drive/add-file'; +import dateFormat from 'dateformat'; import { getFullApAccount } from '@/misc/convert-host'; -import { Users, Mutings } from '../../../models'; +import { Users, Mutings } from '@/models/index'; import { MoreThan } from 'typeorm'; import { DbUserJobData } from '@/queue/types'; diff --git a/src/queue/processors/db/export-notes.ts b/src/queue/processors/db/export-notes.ts index 2d09c0d20..3f146aff1 100644 --- a/src/queue/processors/db/export-notes.ts +++ b/src/queue/processors/db/export-notes.ts @@ -3,12 +3,12 @@ import * as tmp from 'tmp'; import * as fs from 'fs'; import { queueLogger } from '../../logger'; -import addFile from '../../../services/drive/add-file'; -import dateFormat = require('dateformat'); -import { Users, Notes, Polls } from '../../../models'; +import addFile from '@/services/drive/add-file'; +import dateFormat from 'dateformat'; +import { Users, Notes, Polls } from '@/models/index'; import { MoreThan } from 'typeorm'; -import { Note } from '../../../models/entities/note'; -import { Poll } from '../../../models/entities/poll'; +import { Note } from '@/models/entities/note'; +import { Poll } from '@/models/entities/poll'; import { DbUserJobData } from '@/queue/types'; const logger = queueLogger.createSubLogger('export-notes'); diff --git a/src/queue/processors/db/export-user-lists.ts b/src/queue/processors/db/export-user-lists.ts index 3f793e064..89bbd5af1 100644 --- a/src/queue/processors/db/export-user-lists.ts +++ b/src/queue/processors/db/export-user-lists.ts @@ -3,10 +3,10 @@ import * as tmp from 'tmp'; import * as fs from 'fs'; import { queueLogger } from '../../logger'; -import addFile from '../../../services/drive/add-file'; -import dateFormat = require('dateformat'); +import addFile from '@/services/drive/add-file'; +import dateFormat from 'dateformat'; import { getFullApAccount } from '@/misc/convert-host'; -import { Users, UserLists, UserListJoinings } from '../../../models'; +import { Users, UserLists, UserListJoinings } from '@/models/index'; import { In } from 'typeorm'; import { DbUserJobData } from '@/queue/types'; diff --git a/src/queue/processors/db/import-following.ts b/src/queue/processors/db/import-following.ts index 1156b5caf..3d7b7ea40 100644 --- a/src/queue/processors/db/import-following.ts +++ b/src/queue/processors/db/import-following.ts @@ -1,12 +1,12 @@ import * as Bull from 'bull'; import { queueLogger } from '../../logger'; -import follow from '../../../services/following/create'; +import follow from '@/services/following/create'; import { parseAcct } from '@/misc/acct'; -import { resolveUser } from '../../../remote/resolve-user'; +import { resolveUser } from '@/remote/resolve-user'; import { downloadTextFile } from '@/misc/download-text-file'; import { isSelfHost, toPuny } from '@/misc/convert-host'; -import { Users, DriveFiles } from '../../../models'; +import { Users, DriveFiles } from '@/models/index'; import { DbUserImportJobData } from '@/queue/types'; const logger = queueLogger.createSubLogger('import-following'); diff --git a/src/queue/processors/db/import-user-lists.ts b/src/queue/processors/db/import-user-lists.ts index d04ead869..3b8c13262 100644 --- a/src/queue/processors/db/import-user-lists.ts +++ b/src/queue/processors/db/import-user-lists.ts @@ -2,11 +2,11 @@ import * as Bull from 'bull'; import { queueLogger } from '../../logger'; import { parseAcct } from '@/misc/acct'; -import { resolveUser } from '../../../remote/resolve-user'; -import { pushUserToUserList } from '../../../services/user-list/push'; +import { resolveUser } from '@/remote/resolve-user'; +import { pushUserToUserList } from '@/services/user-list/push'; import { downloadTextFile } from '@/misc/download-text-file'; import { isSelfHost, toPuny } from '@/misc/convert-host'; -import { DriveFiles, Users, UserLists, UserListJoinings } from '../../../models'; +import { DriveFiles, Users, UserLists, UserListJoinings } from '@/models/index'; import { genId } from '@/misc/gen-id'; import { DbUserImportJobData } from '@/queue/types'; diff --git a/src/queue/processors/db/index.ts b/src/queue/processors/db/index.ts index b56b7bfa2..b051a28e0 100644 --- a/src/queue/processors/db/index.ts +++ b/src/queue/processors/db/index.ts @@ -8,6 +8,7 @@ import { exportBlocking } from './export-blocking'; import { exportUserLists } from './export-user-lists'; import { importFollowing } from './import-following'; import { importUserLists } from './import-user-lists'; +import { deleteAccount } from './delete-account'; const jobs = { deleteDriveFiles, @@ -17,7 +18,8 @@ const jobs = { exportBlocking, exportUserLists, importFollowing, - importUserLists + importUserLists, + deleteAccount, } as Record | Bull.ProcessPromiseFunction>; export default function(dbQueue: Bull.Queue) { diff --git a/src/queue/processors/deliver.ts b/src/queue/processors/deliver.ts index f9c53fc8f..373e57cbd 100644 --- a/src/queue/processors/deliver.ts +++ b/src/queue/processors/deliver.ts @@ -1,15 +1,15 @@ import { URL } from 'url'; import * as Bull from 'bull'; -import request from '../../remote/activitypub/request'; -import { registerOrFetchInstanceDoc } from '../../services/register-or-fetch-instance-doc'; -import Logger from '../../services/logger'; -import { Instances } from '../../models'; -import { instanceChart } from '../../services/chart'; -import { fetchInstanceMetadata } from '../../services/fetch-instance-metadata'; +import request from '@/remote/activitypub/request'; +import { registerOrFetchInstanceDoc } from '@/services/register-or-fetch-instance-doc'; +import Logger from '@/services/logger'; +import { Instances } from '@/models/index'; +import { instanceChart } from '@/services/chart/index'; +import { fetchInstanceMetadata } from '@/services/fetch-instance-metadata'; import { fetchMeta } from '@/misc/fetch-meta'; import { toPuny } from '@/misc/convert-host'; import { Cache } from '@/misc/cache'; -import { Instance } from '../../models/entities/instance'; +import { Instance } from '@/models/entities/instance'; import { DeliverJobData } from '../types'; const logger = new Logger('deliver'); diff --git a/src/queue/processors/inbox.ts b/src/queue/processors/inbox.ts index 5922c4c56..e2c271cdf 100644 --- a/src/queue/processors/inbox.ts +++ b/src/queue/processors/inbox.ts @@ -1,19 +1,19 @@ import { URL } from 'url'; import * as Bull from 'bull'; import * as httpSignature from 'http-signature'; -import perform from '../../remote/activitypub/perform'; -import Logger from '../../services/logger'; -import { registerOrFetchInstanceDoc } from '../../services/register-or-fetch-instance-doc'; -import { Instances } from '../../models'; -import { instanceChart } from '../../services/chart'; +import perform from '@/remote/activitypub/perform'; +import Logger from '@/services/logger'; +import { registerOrFetchInstanceDoc } from '@/services/register-or-fetch-instance-doc'; +import { Instances } from '@/models/index'; +import { instanceChart } from '@/services/chart/index'; import { fetchMeta } from '@/misc/fetch-meta'; import { toPuny, extractDbHost } from '@/misc/convert-host'; -import { getApId } from '../../remote/activitypub/type'; -import { fetchInstanceMetadata } from '../../services/fetch-instance-metadata'; +import { getApId } from '@/remote/activitypub/type'; +import { fetchInstanceMetadata } from '@/services/fetch-instance-metadata'; import { InboxJobData } from '../types'; -import DbResolver from '../../remote/activitypub/db-resolver'; -import { resolvePerson } from '../../remote/activitypub/models/person'; -import { LdSignature } from '../../remote/activitypub/misc/ld-signature'; +import DbResolver from '@/remote/activitypub/db-resolver'; +import { resolvePerson } from '@/remote/activitypub/models/person'; +import { LdSignature } from '@/remote/activitypub/misc/ld-signature'; const logger = new Logger('inbox'); diff --git a/src/queue/processors/object-storage/clean-remote-files.ts b/src/queue/processors/object-storage/clean-remote-files.ts index a922755f4..3b2e4ea93 100644 --- a/src/queue/processors/object-storage/clean-remote-files.ts +++ b/src/queue/processors/object-storage/clean-remote-files.ts @@ -1,8 +1,8 @@ import * as Bull from 'bull'; import { queueLogger } from '../../logger'; -import { deleteFileSync } from '../../../services/drive/delete-file'; -import { DriveFiles } from '../../../models'; +import { deleteFileSync } from '@/services/drive/delete-file'; +import { DriveFiles } from '@/models/index'; import { MoreThan, Not, IsNull } from 'typeorm'; const logger = queueLogger.createSubLogger('clean-remote-files'); diff --git a/src/queue/processors/object-storage/delete-file.ts b/src/queue/processors/object-storage/delete-file.ts index 31050998a..ed22968a2 100644 --- a/src/queue/processors/object-storage/delete-file.ts +++ b/src/queue/processors/object-storage/delete-file.ts @@ -1,6 +1,6 @@ import { ObjectStorageFileJobData } from '@/queue/types'; import * as Bull from 'bull'; -import { deleteObjectStorageFile } from '../../../services/drive/delete-file'; +import { deleteObjectStorageFile } from '@/services/drive/delete-file'; export default async (job: Bull.Job) => { const key: string = job.data.key; diff --git a/src/queue/queues.ts b/src/queue/queues.ts index 5e2754b83..d8c09ef86 100644 --- a/src/queue/queues.ts +++ b/src/queue/queues.ts @@ -1,4 +1,4 @@ -import config from '@/config'; +import config from '@/config/index'; import { initialize as initializeQueue } from './initialize'; import { DeliverJobData, InboxJobData, DbJobData, ObjectStorageJobData } from './types'; diff --git a/src/remote/activitypub/audience.ts b/src/remote/activitypub/audience.ts index 85a70f828..3d2dab145 100644 --- a/src/remote/activitypub/audience.ts +++ b/src/remote/activitypub/audience.ts @@ -1,9 +1,9 @@ import { ApObject, getApIds } from './type'; import Resolver from './resolver'; import { resolvePerson } from './models/person'; -import { unique, concat } from '../../prelude/array'; +import { unique, concat } from '@/prelude/array'; import * as promiseLimit from 'promise-limit'; -import { User, IRemoteUser } from '../../models/entities/user'; +import { User, IRemoteUser } from '@/models/entities/user'; type Visibility = 'public' | 'home' | 'followers' | 'specified'; diff --git a/src/remote/activitypub/db-resolver.ts b/src/remote/activitypub/db-resolver.ts index 9fc6f0c3b..289b6f0ee 100644 --- a/src/remote/activitypub/db-resolver.ts +++ b/src/remote/activitypub/db-resolver.ts @@ -1,9 +1,9 @@ -import config from '@/config'; -import { Note } from '../../models/entities/note'; -import { User, IRemoteUser } from '../../models/entities/user'; -import { UserPublickey } from '../../models/entities/user-publickey'; -import { MessagingMessage } from '../../models/entities/messaging-message'; -import { Notes, Users, UserPublickeys, MessagingMessages } from '../../models'; +import config from '@/config/index'; +import { Note } from '@/models/entities/note'; +import { User, IRemoteUser } from '@/models/entities/user'; +import { UserPublickey } from '@/models/entities/user-publickey'; +import { MessagingMessage } from '@/models/entities/messaging-message'; +import { Notes, Users, UserPublickeys, MessagingMessages } from '@/models/index'; import { IObject, getApId } from './type'; import { resolvePerson } from './models/person'; import escapeRegexp = require('escape-regexp'); diff --git a/src/remote/activitypub/deliver-manager.ts b/src/remote/activitypub/deliver-manager.ts index f112b02b4..d37f97a44 100644 --- a/src/remote/activitypub/deliver-manager.ts +++ b/src/remote/activitypub/deliver-manager.ts @@ -1,6 +1,6 @@ -import { Users, Followings } from '../../models'; -import { ILocalUser, IRemoteUser, User } from '../../models/entities/user'; -import { deliver } from '../../queue'; +import { Users, Followings } from '@/models/index'; +import { ILocalUser, IRemoteUser, User } from '@/models/entities/user'; +import { deliver } from '@/queue/index'; //#region types interface IRecipe { diff --git a/src/remote/activitypub/kernel/accept/follow.ts b/src/remote/activitypub/kernel/accept/follow.ts index 71c1bed9d..1afb733ab 100644 --- a/src/remote/activitypub/kernel/accept/follow.ts +++ b/src/remote/activitypub/kernel/accept/follow.ts @@ -1,8 +1,8 @@ -import { IRemoteUser } from '../../../../models/entities/user'; -import accept from '../../../../services/following/requests/accept'; +import { IRemoteUser } from '@/models/entities/user'; +import accept from '@/services/following/requests/accept'; import { IFollow } from '../../type'; import DbResolver from '../../db-resolver'; -import { relayAccepted } from '../../../../services/relay'; +import { relayAccepted } from '@/services/relay'; export default async (actor: IRemoteUser, activity: IFollow): Promise => { // ※ activityはこっちから投げたフォローリクエストなので、activity.actorは存在するローカルユーザーである必要がある diff --git a/src/remote/activitypub/kernel/accept/index.ts b/src/remote/activitypub/kernel/accept/index.ts index 79cdbb2ef..5c6f81b2e 100644 --- a/src/remote/activitypub/kernel/accept/index.ts +++ b/src/remote/activitypub/kernel/accept/index.ts @@ -1,5 +1,5 @@ import Resolver from '../../resolver'; -import { IRemoteUser } from '../../../../models/entities/user'; +import { IRemoteUser } from '@/models/entities/user'; import acceptFollow from './follow'; import { IAccept, isFollow, getApType } from '../../type'; import { apLogger } from '../../logger'; diff --git a/src/remote/activitypub/kernel/add/index.ts b/src/remote/activitypub/kernel/add/index.ts index a5b268741..b33be0cc8 100644 --- a/src/remote/activitypub/kernel/add/index.ts +++ b/src/remote/activitypub/kernel/add/index.ts @@ -1,7 +1,7 @@ -import { IRemoteUser } from '../../../../models/entities/user'; +import { IRemoteUser } from '@/models/entities/user'; import { IAdd } from '../../type'; import { resolveNote } from '../../models/note'; -import { addPinned } from '../../../../services/i/pin'; +import { addPinned } from '@/services/i/pin'; export default async (actor: IRemoteUser, activity: IAdd): Promise => { if ('actor' in activity && actor.uri !== activity.actor) { diff --git a/src/remote/activitypub/kernel/announce/index.ts b/src/remote/activitypub/kernel/announce/index.ts index 28ad2fbcc..581357e57 100644 --- a/src/remote/activitypub/kernel/announce/index.ts +++ b/src/remote/activitypub/kernel/announce/index.ts @@ -1,5 +1,5 @@ import Resolver from '../../resolver'; -import { IRemoteUser } from '../../../../models/entities/user'; +import { IRemoteUser } from '@/models/entities/user'; import announceNote from './note'; import { IAnnounce, getApId } from '../../type'; import { apLogger } from '../../logger'; diff --git a/src/remote/activitypub/kernel/announce/note.ts b/src/remote/activitypub/kernel/announce/note.ts index d5176897b..b6ec090b9 100644 --- a/src/remote/activitypub/kernel/announce/note.ts +++ b/src/remote/activitypub/kernel/announce/note.ts @@ -1,6 +1,6 @@ import Resolver from '../../resolver'; -import post from '../../../../services/note/create'; -import { IRemoteUser } from '../../../../models/entities/user'; +import post from '@/services/note/create'; +import { IRemoteUser } from '@/models/entities/user'; import { IAnnounce, getApId } from '../../type'; import { fetchNote, resolveNote } from '../../models/note'; import { apLogger } from '../../logger'; diff --git a/src/remote/activitypub/kernel/block/index.ts b/src/remote/activitypub/kernel/block/index.ts index 6c794e125..4fd1e07b9 100644 --- a/src/remote/activitypub/kernel/block/index.ts +++ b/src/remote/activitypub/kernel/block/index.ts @@ -1,6 +1,6 @@ import { IBlock } from '../../type'; -import block from '../../../../services/blocking/create'; -import { IRemoteUser } from '../../../../models/entities/user'; +import block from '@/services/blocking/create'; +import { IRemoteUser } from '@/models/entities/user'; import DbResolver from '../../db-resolver'; export default async (actor: IRemoteUser, activity: IBlock): Promise => { diff --git a/src/remote/activitypub/kernel/create/index.ts b/src/remote/activitypub/kernel/create/index.ts index f1a3ebff4..ce039a363 100644 --- a/src/remote/activitypub/kernel/create/index.ts +++ b/src/remote/activitypub/kernel/create/index.ts @@ -1,9 +1,9 @@ import Resolver from '../../resolver'; -import { IRemoteUser } from '../../../../models/entities/user'; +import { IRemoteUser } from '@/models/entities/user'; import createNote from './note'; import { ICreate, getApId, isPost, getApType } from '../../type'; import { apLogger } from '../../logger'; -import { toArray, concat, unique } from '../../../../prelude/array'; +import { toArray, concat, unique } from '@/prelude/array'; const logger = apLogger; diff --git a/src/remote/activitypub/kernel/create/note.ts b/src/remote/activitypub/kernel/create/note.ts index 69499d303..5dda85d0f 100644 --- a/src/remote/activitypub/kernel/create/note.ts +++ b/src/remote/activitypub/kernel/create/note.ts @@ -1,5 +1,5 @@ import Resolver from '../../resolver'; -import { IRemoteUser } from '../../../../models/entities/user'; +import { IRemoteUser } from '@/models/entities/user'; import { createNote, fetchNote } from '../../models/note'; import { getApId, IObject, ICreate } from '../../type'; import { getApLock } from '@/misc/app-lock'; diff --git a/src/remote/activitypub/kernel/delete/index.ts b/src/remote/activitypub/kernel/delete/index.ts index 4fb3d4057..474f3f6d6 100644 --- a/src/remote/activitypub/kernel/delete/index.ts +++ b/src/remote/activitypub/kernel/delete/index.ts @@ -1,7 +1,7 @@ import deleteNote from './note'; -import { IRemoteUser } from '../../../../models/entities/user'; +import { IRemoteUser } from '@/models/entities/user'; import { IDelete, getApId, isTombstone, IObject, validPost, validActor } from '../../type'; -import { toSingle } from '../../../../prelude/array'; +import { toSingle } from '@/prelude/array'; /** * 削除アクティビティを捌きます diff --git a/src/remote/activitypub/kernel/delete/note.ts b/src/remote/activitypub/kernel/delete/note.ts index 1a7844f68..3875a33d1 100644 --- a/src/remote/activitypub/kernel/delete/note.ts +++ b/src/remote/activitypub/kernel/delete/note.ts @@ -1,9 +1,9 @@ -import { IRemoteUser } from '../../../../models/entities/user'; -import deleteNode from '../../../../services/note/delete'; +import { IRemoteUser } from '@/models/entities/user'; +import deleteNode from '@/services/note/delete'; import { apLogger } from '../../logger'; import DbResolver from '../../db-resolver'; import { getApLock } from '@/misc/app-lock'; -import { deleteMessage } from '../../../../services/messages/delete'; +import { deleteMessage } from '@/services/messages/delete'; const logger = apLogger; diff --git a/src/remote/activitypub/kernel/flag/index.ts b/src/remote/activitypub/kernel/flag/index.ts index 5f5357a3e..7abfd694c 100644 --- a/src/remote/activitypub/kernel/flag/index.ts +++ b/src/remote/activitypub/kernel/flag/index.ts @@ -1,7 +1,7 @@ -import { IRemoteUser } from '../../../../models/entities/user'; -import config from '@/config'; +import { IRemoteUser } from '@/models/entities/user'; +import config from '@/config/index'; import { IFlag, getApIds } from '../../type'; -import { AbuseUserReports, Users } from '../../../../models'; +import { AbuseUserReports, Users } from '@/models/index'; import { In } from 'typeorm'; import { genId } from '@/misc/gen-id'; diff --git a/src/remote/activitypub/kernel/follow.ts b/src/remote/activitypub/kernel/follow.ts index 3e2063302..3183207af 100644 --- a/src/remote/activitypub/kernel/follow.ts +++ b/src/remote/activitypub/kernel/follow.ts @@ -1,5 +1,5 @@ -import { IRemoteUser } from '../../../models/entities/user'; -import follow from '../../../services/following/create'; +import { IRemoteUser } from '@/models/entities/user'; +import follow from '@/services/following/create'; import { IFollow } from '../type'; import DbResolver from '../db-resolver'; diff --git a/src/remote/activitypub/kernel/index.ts b/src/remote/activitypub/kernel/index.ts index ff75f8029..20df28eec 100644 --- a/src/remote/activitypub/kernel/index.ts +++ b/src/remote/activitypub/kernel/index.ts @@ -1,22 +1,22 @@ import { IObject, isCreate, isDelete, isUpdate, isRead, isFollow, isAccept, isReject, isAdd, isRemove, isAnnounce, isLike, isUndo, isBlock, isCollectionOrOrderedCollection, isCollection, isFlag } from '../type'; -import { IRemoteUser } from '../../../models/entities/user'; -import create from './create'; -import performDeleteActivity from './delete'; -import performUpdateActivity from './update'; +import { IRemoteUser } from '@/models/entities/user'; +import create from './create/index'; +import performDeleteActivity from './delete/index'; +import performUpdateActivity from './update/index'; import { performReadActivity } from './read'; import follow from './follow'; -import undo from './undo'; +import undo from './undo/index'; import like from './like'; -import announce from './announce'; -import accept from './accept'; -import reject from './reject'; -import add from './add'; -import remove from './remove'; -import block from './block'; -import flag from './flag'; +import announce from './announce/index'; +import accept from './accept/index'; +import reject from './reject/index'; +import add from './add/index'; +import remove from './remove/index'; +import block from './block/index'; +import flag from './flag/index'; import { apLogger } from '../logger'; import Resolver from '../resolver'; -import { toArray } from '../../../prelude/array'; +import { toArray } from '@/prelude/array'; export async function performActivity(actor: IRemoteUser, activity: IObject) { if (isCollectionOrOrderedCollection(activity)) { diff --git a/src/remote/activitypub/kernel/like.ts b/src/remote/activitypub/kernel/like.ts index 6ba03e4a4..58d5aefef 100644 --- a/src/remote/activitypub/kernel/like.ts +++ b/src/remote/activitypub/kernel/like.ts @@ -1,6 +1,6 @@ -import { IRemoteUser } from '../../../models/entities/user'; +import { IRemoteUser } from '@/models/entities/user'; import { ILike, getApId } from '../type'; -import create from '../../../services/note/reaction/create'; +import create from '@/services/note/reaction/create'; import { fetchNote, extractEmojis } from '../models/note'; export default async (actor: IRemoteUser, activity: ILike) => { diff --git a/src/remote/activitypub/kernel/read.ts b/src/remote/activitypub/kernel/read.ts index edbc8e68e..11a173186 100644 --- a/src/remote/activitypub/kernel/read.ts +++ b/src/remote/activitypub/kernel/read.ts @@ -1,7 +1,7 @@ -import { IRemoteUser } from '../../../models/entities/user'; +import { IRemoteUser } from '@/models/entities/user'; import { IRead, getApId } from '../type'; import { isSelfHost, extractDbHost } from '@/misc/convert-host'; -import { MessagingMessages } from '../../../models'; +import { MessagingMessages } from '@/models/index'; import { readUserMessagingMessage } from '../../../server/api/common/read-messaging-message'; export const performReadActivity = async (actor: IRemoteUser, activity: IRead): Promise => { diff --git a/src/remote/activitypub/kernel/reject/follow.ts b/src/remote/activitypub/kernel/reject/follow.ts index d97ced46b..356547440 100644 --- a/src/remote/activitypub/kernel/reject/follow.ts +++ b/src/remote/activitypub/kernel/reject/follow.ts @@ -1,8 +1,8 @@ -import { IRemoteUser } from '../../../../models/entities/user'; -import reject from '../../../../services/following/requests/reject'; +import { IRemoteUser } from '@/models/entities/user'; +import reject from '@/services/following/requests/reject'; import { IFollow } from '../../type'; import DbResolver from '../../db-resolver'; -import { relayRejected } from '../../../../services/relay'; +import { relayRejected } from '@/services/relay'; export default async (actor: IRemoteUser, activity: IFollow): Promise => { // ※ activityはこっちから投げたフォローリクエストなので、activity.actorは存在するローカルユーザーである必要がある diff --git a/src/remote/activitypub/kernel/reject/index.ts b/src/remote/activitypub/kernel/reject/index.ts index d7a80fce7..d0de9c329 100644 --- a/src/remote/activitypub/kernel/reject/index.ts +++ b/src/remote/activitypub/kernel/reject/index.ts @@ -1,5 +1,5 @@ import Resolver from '../../resolver'; -import { IRemoteUser } from '../../../../models/entities/user'; +import { IRemoteUser } from '@/models/entities/user'; import rejectFollow from './follow'; import { IReject, isFollow, getApType } from '../../type'; import { apLogger } from '../../logger'; diff --git a/src/remote/activitypub/kernel/remove/index.ts b/src/remote/activitypub/kernel/remove/index.ts index 32b8d6647..d59953e65 100644 --- a/src/remote/activitypub/kernel/remove/index.ts +++ b/src/remote/activitypub/kernel/remove/index.ts @@ -1,7 +1,7 @@ -import { IRemoteUser } from '../../../../models/entities/user'; +import { IRemoteUser } from '@/models/entities/user'; import { IRemove } from '../../type'; import { resolveNote } from '../../models/note'; -import { removePinned } from '../../../../services/i/pin'; +import { removePinned } from '@/services/i/pin'; export default async (actor: IRemoteUser, activity: IRemove): Promise => { if ('actor' in activity && actor.uri !== activity.actor) { diff --git a/src/remote/activitypub/kernel/undo/announce.ts b/src/remote/activitypub/kernel/undo/announce.ts index e08fea188..7bb9d7fca 100644 --- a/src/remote/activitypub/kernel/undo/announce.ts +++ b/src/remote/activitypub/kernel/undo/announce.ts @@ -1,7 +1,7 @@ -import { Notes } from '../../../../models'; -import { IRemoteUser } from '../../../../models/entities/user'; +import { Notes } from '@/models/index'; +import { IRemoteUser } from '@/models/entities/user'; import { IAnnounce, getApId } from '../../type'; -import deleteNote from '../../../../services/note/delete'; +import deleteNote from '@/services/note/delete'; export const undoAnnounce = async (actor: IRemoteUser, activity: IAnnounce): Promise => { const uri = getApId(activity); diff --git a/src/remote/activitypub/kernel/undo/block.ts b/src/remote/activitypub/kernel/undo/block.ts index 73000fc3f..61940486b 100644 --- a/src/remote/activitypub/kernel/undo/block.ts +++ b/src/remote/activitypub/kernel/undo/block.ts @@ -1,6 +1,6 @@ import { IBlock } from '../../type'; -import unblock from '../../../../services/blocking/delete'; -import { IRemoteUser } from '../../../../models/entities/user'; +import unblock from '@/services/blocking/delete'; +import { IRemoteUser } from '@/models/entities/user'; import DbResolver from '../../db-resolver'; export default async (actor: IRemoteUser, activity: IBlock): Promise => { diff --git a/src/remote/activitypub/kernel/undo/follow.ts b/src/remote/activitypub/kernel/undo/follow.ts index 73a164030..d85c7e4a7 100644 --- a/src/remote/activitypub/kernel/undo/follow.ts +++ b/src/remote/activitypub/kernel/undo/follow.ts @@ -1,8 +1,8 @@ -import unfollow from '../../../../services/following/delete'; -import cancelRequest from '../../../../services/following/requests/cancel'; +import unfollow from '@/services/following/delete'; +import cancelRequest from '@/services/following/requests/cancel'; import { IFollow } from '../../type'; -import { IRemoteUser } from '../../../../models/entities/user'; -import { FollowRequests, Followings } from '../../../../models'; +import { IRemoteUser } from '@/models/entities/user'; +import { FollowRequests, Followings } from '@/models/index'; import DbResolver from '../../db-resolver'; export default async (actor: IRemoteUser, activity: IFollow): Promise => { diff --git a/src/remote/activitypub/kernel/undo/index.ts b/src/remote/activitypub/kernel/undo/index.ts index 0bab3c966..14b1add15 100644 --- a/src/remote/activitypub/kernel/undo/index.ts +++ b/src/remote/activitypub/kernel/undo/index.ts @@ -1,4 +1,4 @@ -import { IRemoteUser } from '../../../../models/entities/user'; +import { IRemoteUser } from '@/models/entities/user'; import { IUndo, isFollow, isBlock, isLike, isAnnounce, getApType } from '../../type'; import unfollow from './follow'; import unblock from './block'; diff --git a/src/remote/activitypub/kernel/undo/like.ts b/src/remote/activitypub/kernel/undo/like.ts index bd6930c66..7f821cada 100644 --- a/src/remote/activitypub/kernel/undo/like.ts +++ b/src/remote/activitypub/kernel/undo/like.ts @@ -1,6 +1,6 @@ -import { IRemoteUser } from '../../../../models/entities/user'; +import { IRemoteUser } from '@/models/entities/user'; import { ILike, getApId } from '../../type'; -import deleteReaction from '../../../../services/note/reaction/delete'; +import deleteReaction from '@/services/note/reaction/delete'; import { fetchNote } from '../../models/note'; /** diff --git a/src/remote/activitypub/kernel/update/index.ts b/src/remote/activitypub/kernel/update/index.ts index 6dd3e5f29..52bfc5002 100644 --- a/src/remote/activitypub/kernel/update/index.ts +++ b/src/remote/activitypub/kernel/update/index.ts @@ -1,4 +1,4 @@ -import { IRemoteUser } from '../../../../models/entities/user'; +import { IRemoteUser } from '@/models/entities/user'; import { getApType, IUpdate, isActor } from '../../type'; import { apLogger } from '../../logger'; import { updateQuestion } from '../../models/question'; diff --git a/src/remote/activitypub/misc/get-note-html.ts b/src/remote/activitypub/misc/get-note-html.ts index 683860d9c..043335a5b 100644 --- a/src/remote/activitypub/misc/get-note-html.ts +++ b/src/remote/activitypub/misc/get-note-html.ts @@ -1,5 +1,5 @@ import * as mfm from 'mfm-js'; -import { Note } from '../../../models/entities/note'; +import { Note } from '@/models/entities/note'; import { toHtml } from '../../../mfm/to-html'; export default function(note: Note) { diff --git a/src/remote/activitypub/models/image.ts b/src/remote/activitypub/models/image.ts index 7bec1d603..cd28d59a1 100644 --- a/src/remote/activitypub/models/image.ts +++ b/src/remote/activitypub/models/image.ts @@ -1,10 +1,10 @@ -import uploadFromUrl from '../../../services/drive/upload-from-url'; -import { IRemoteUser } from '../../../models/entities/user'; +import uploadFromUrl from '@/services/drive/upload-from-url'; +import { IRemoteUser } from '@/models/entities/user'; import Resolver from '../resolver'; import { fetchMeta } from '@/misc/fetch-meta'; import { apLogger } from '../logger'; -import { DriveFile } from '../../../models/entities/drive-file'; -import { DriveFiles } from '../../../models'; +import { DriveFile } from '@/models/entities/drive-file'; +import { DriveFiles } from '@/models/index'; const logger = apLogger; diff --git a/src/remote/activitypub/models/mention.ts b/src/remote/activitypub/models/mention.ts index 5d10328ef..ade9c9080 100644 --- a/src/remote/activitypub/models/mention.ts +++ b/src/remote/activitypub/models/mention.ts @@ -1,9 +1,9 @@ -import { toArray, unique } from '../../../prelude/array'; +import { toArray, unique } from '@/prelude/array'; import { IObject, isMention, IApMention } from '../type'; import { resolvePerson } from './person'; import * as promiseLimit from 'promise-limit'; import Resolver from '../resolver'; -import { User } from '../../../models/entities/user'; +import { User } from '@/models/entities/user'; export async function extractApMentions(tags: IObject | IObject[] | null | undefined) { const hrefs = unique(extractApMentionObjects(tags).map(x => x.href as string)); diff --git a/src/remote/activitypub/models/note.ts b/src/remote/activitypub/models/note.ts index 6621ae349..25004cb4d 100644 --- a/src/remote/activitypub/models/note.ts +++ b/src/remote/activitypub/models/note.ts @@ -1,28 +1,28 @@ import * as promiseLimit from 'promise-limit'; -import config from '@/config'; +import config from '@/config/index'; import Resolver from '../resolver'; -import post from '../../../services/note/create'; +import post from '@/services/note/create'; import { resolvePerson, updatePerson } from './person'; import { resolveImage } from './image'; -import { IRemoteUser } from '../../../models/entities/user'; +import { IRemoteUser } from '@/models/entities/user'; import { htmlToMfm } from '../misc/html-to-mfm'; import { extractApHashtags } from './tag'; -import { unique, toArray, toSingle } from '../../../prelude/array'; +import { unique, toArray, toSingle } from '@/prelude/array'; import { extractPollFromQuestion } from './question'; -import vote from '../../../services/note/polls/vote'; +import vote from '@/services/note/polls/vote'; import { apLogger } from '../logger'; -import { DriveFile } from '../../../models/entities/drive-file'; -import { deliverQuestionUpdate } from '../../../services/note/polls/update'; +import { DriveFile } from '@/models/entities/drive-file'; +import { deliverQuestionUpdate } from '@/services/note/polls/update'; import { extractDbHost, toPuny } from '@/misc/convert-host'; -import { Emojis, Polls, MessagingMessages } from '../../../models'; -import { Note } from '../../../models/entities/note'; +import { Emojis, Polls, MessagingMessages } from '@/models/index'; +import { Note } from '@/models/entities/note'; import { IObject, getOneApId, getApId, getOneApHrefNullable, validPost, IPost, isEmoji, getApType } from '../type'; -import { Emoji } from '../../../models/entities/emoji'; +import { Emoji } from '@/models/entities/emoji'; import { genId } from '@/misc/gen-id'; import { fetchMeta } from '@/misc/fetch-meta'; import { getApLock } from '@/misc/app-lock'; -import { createMessage } from '../../../services/messages/create'; +import { createMessage } from '@/services/messages/create'; import { parseAudience } from '../audience'; import { extractApMentions } from './mention'; import DbResolver from '../db-resolver'; diff --git a/src/remote/activitypub/models/person.ts b/src/remote/activitypub/models/person.ts index 1b2d0bbdc..4823def7c 100644 --- a/src/remote/activitypub/models/person.ts +++ b/src/remote/activitypub/models/person.ts @@ -2,31 +2,31 @@ import { URL } from 'url'; import * as promiseLimit from 'promise-limit'; import $, { Context } from 'cafy'; -import config from '@/config'; +import config from '@/config/index'; import Resolver from '../resolver'; import { resolveImage } from './image'; import { isCollectionOrOrderedCollection, isCollection, IActor, getApId, getOneApHrefNullable, IObject, isPropertyValue, IApPropertyValue, getApType, isActor } from '../type'; import { fromHtml } from '../../../mfm/from-html'; import { htmlToMfm } from '../misc/html-to-mfm'; import { resolveNote, extractEmojis } from './note'; -import { registerOrFetchInstanceDoc } from '../../../services/register-or-fetch-instance-doc'; +import { registerOrFetchInstanceDoc } from '@/services/register-or-fetch-instance-doc'; import { extractApHashtags } from './tag'; import { apLogger } from '../logger'; -import { Note } from '../../../models/entities/note'; -import { updateUsertags } from '../../../services/update-hashtag'; -import { Users, Instances, DriveFiles, Followings, UserProfiles, UserPublickeys } from '../../../models'; -import { User, IRemoteUser } from '../../../models/entities/user'; -import { Emoji } from '../../../models/entities/emoji'; -import { UserNotePining } from '../../../models/entities/user-note-pining'; +import { Note } from '@/models/entities/note'; +import { updateUsertags } from '@/services/update-hashtag'; +import { Users, Instances, DriveFiles, Followings, UserProfiles, UserPublickeys } from '@/models/index'; +import { User, IRemoteUser } from '@/models/entities/user'; +import { Emoji } from '@/models/entities/emoji'; +import { UserNotePining } from '@/models/entities/user-note-pining'; import { genId } from '@/misc/gen-id'; -import { instanceChart, usersChart } from '../../../services/chart'; -import { UserPublickey } from '../../../models/entities/user-publickey'; +import { instanceChart, usersChart } from '@/services/chart/index'; +import { UserPublickey } from '@/models/entities/user-publickey'; import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error'; import { toPuny } from '@/misc/convert-host'; -import { UserProfile } from '../../../models/entities/user-profile'; +import { UserProfile } from '@/models/entities/user-profile'; import { getConnection } from 'typeorm'; -import { toArray } from '../../../prelude/array'; -import { fetchInstanceMetadata } from '../../../services/fetch-instance-metadata'; +import { toArray } from '@/prelude/array'; +import { fetchInstanceMetadata } from '@/services/fetch-instance-metadata'; import { normalizeForSearch } from '@/misc/normalize-for-search'; const logger = apLogger; diff --git a/src/remote/activitypub/models/question.ts b/src/remote/activitypub/models/question.ts index 966b15af1..79f93c3a3 100644 --- a/src/remote/activitypub/models/question.ts +++ b/src/remote/activitypub/models/question.ts @@ -1,9 +1,9 @@ -import config from '@/config'; +import config from '@/config/index'; import Resolver from '../resolver'; import { IObject, IQuestion, isQuestion, } from '../type'; import { apLogger } from '../logger'; -import { Notes, Polls } from '../../../models'; -import { IPoll } from '../../../models/entities/poll'; +import { Notes, Polls } from '@/models/index'; +import { IPoll } from '@/models/entities/poll'; export async function extractPollFromQuestion(source: string | IObject, resolver?: Resolver): Promise { if (resolver == null) resolver = new Resolver(); diff --git a/src/remote/activitypub/models/tag.ts b/src/remote/activitypub/models/tag.ts index d25cb463f..fbc6b9b42 100644 --- a/src/remote/activitypub/models/tag.ts +++ b/src/remote/activitypub/models/tag.ts @@ -1,4 +1,4 @@ -import { toArray } from '../../../prelude/array'; +import { toArray } from '@/prelude/array'; import { IObject, isHashtag, IApHashtag } from '../type'; export function extractApHashtags(tags: IObject | IObject[] | null | undefined) { diff --git a/src/remote/activitypub/perform.ts b/src/remote/activitypub/perform.ts index 12e72fdea..01f0e3676 100644 --- a/src/remote/activitypub/perform.ts +++ b/src/remote/activitypub/perform.ts @@ -1,6 +1,6 @@ import { IObject } from './type'; -import { IRemoteUser } from '../../models/entities/user'; -import { performActivity } from './kernel'; +import { IRemoteUser } from '@/models/entities/user'; +import { performActivity } from './kernel/index'; export default async (actor: IRemoteUser, activity: IObject): Promise => { await performActivity(actor, activity); diff --git a/src/remote/activitypub/renderer/accept.ts b/src/remote/activitypub/renderer/accept.ts index 8725a30e7..f1e61f4c6 100644 --- a/src/remote/activitypub/renderer/accept.ts +++ b/src/remote/activitypub/renderer/accept.ts @@ -1,4 +1,4 @@ -import config from '@/config'; +import config from '@/config/index'; import { User } from '@/models/entities/user'; export default (object: any, user: { id: User['id']; host: null }) => ({ diff --git a/src/remote/activitypub/renderer/add.ts b/src/remote/activitypub/renderer/add.ts index 18f9ccacf..21414a938 100644 --- a/src/remote/activitypub/renderer/add.ts +++ b/src/remote/activitypub/renderer/add.ts @@ -1,5 +1,5 @@ -import config from '@/config'; -import { ILocalUser } from '../../../models/entities/user'; +import config from '@/config/index'; +import { ILocalUser } from '@/models/entities/user'; export default (user: ILocalUser, target: any, object: any) => ({ type: 'Add', diff --git a/src/remote/activitypub/renderer/announce.ts b/src/remote/activitypub/renderer/announce.ts index f577dbbc8..7bf90922b 100644 --- a/src/remote/activitypub/renderer/announce.ts +++ b/src/remote/activitypub/renderer/announce.ts @@ -1,5 +1,5 @@ -import config from '@/config'; -import { Note } from '../../../models/entities/note'; +import config from '@/config/index'; +import { Note } from '@/models/entities/note'; export default (object: any, note: Note) => { const attributedTo = `${config.url}/users/${note.userId}`; diff --git a/src/remote/activitypub/renderer/block.ts b/src/remote/activitypub/renderer/block.ts index 26b7dd580..bb3d74295 100644 --- a/src/remote/activitypub/renderer/block.ts +++ b/src/remote/activitypub/renderer/block.ts @@ -1,5 +1,5 @@ -import config from '@/config'; -import { ILocalUser, IRemoteUser } from '../../../models/entities/user'; +import config from '@/config/index'; +import { ILocalUser, IRemoteUser } from '@/models/entities/user'; export default (blocker: ILocalUser, blockee: IRemoteUser) => ({ type: 'Block', diff --git a/src/remote/activitypub/renderer/create.ts b/src/remote/activitypub/renderer/create.ts index ff0840b9e..04aa993a9 100644 --- a/src/remote/activitypub/renderer/create.ts +++ b/src/remote/activitypub/renderer/create.ts @@ -1,5 +1,5 @@ -import config from '@/config'; -import { Note } from '../../../models/entities/note'; +import config from '@/config/index'; +import { Note } from '@/models/entities/note'; export default (object: any, note: Note) => { const activity = { diff --git a/src/remote/activitypub/renderer/delete.ts b/src/remote/activitypub/renderer/delete.ts index 710f0482a..83b27fa86 100644 --- a/src/remote/activitypub/renderer/delete.ts +++ b/src/remote/activitypub/renderer/delete.ts @@ -1,5 +1,5 @@ -import config from '@/config'; -import { User } from '../../../models/entities/user'; +import config from '@/config/index'; +import { User } from '@/models/entities/user'; export default (object: any, user: { id: User['id']; host: null }) => ({ type: 'Delete', diff --git a/src/remote/activitypub/renderer/document.ts b/src/remote/activitypub/renderer/document.ts index f6e9dca45..a9d86dea1 100644 --- a/src/remote/activitypub/renderer/document.ts +++ b/src/remote/activitypub/renderer/document.ts @@ -1,5 +1,5 @@ -import { DriveFile } from '../../../models/entities/drive-file'; -import { DriveFiles } from '../../../models'; +import { DriveFile } from '@/models/entities/drive-file'; +import { DriveFiles } from '@/models/index'; export default (file: DriveFile) => ({ type: 'Document', diff --git a/src/remote/activitypub/renderer/emoji.ts b/src/remote/activitypub/renderer/emoji.ts index b62259c32..ca514c56b 100644 --- a/src/remote/activitypub/renderer/emoji.ts +++ b/src/remote/activitypub/renderer/emoji.ts @@ -1,5 +1,5 @@ -import config from '@/config'; -import { Emoji } from '../../../models/entities/emoji'; +import config from '@/config/index'; +import { Emoji } from '@/models/entities/emoji'; export default (emoji: Emoji) => ({ id: `${config.url}/emojis/${emoji.name}`, diff --git a/src/remote/activitypub/renderer/follow-relay.ts b/src/remote/activitypub/renderer/follow-relay.ts index d53bd0582..984c3c763 100644 --- a/src/remote/activitypub/renderer/follow-relay.ts +++ b/src/remote/activitypub/renderer/follow-relay.ts @@ -1,6 +1,6 @@ -import config from '@/config'; -import { Relay } from '../../../models/entities/relay'; -import { ILocalUser } from '../../../models/entities/user'; +import config from '@/config/index'; +import { Relay } from '@/models/entities/relay'; +import { ILocalUser } from '@/models/entities/user'; export function renderFollowRelay(relay: Relay, relayActor: ILocalUser) { const follow = { diff --git a/src/remote/activitypub/renderer/follow-user.ts b/src/remote/activitypub/renderer/follow-user.ts index 744361a24..e3dde7f7f 100644 --- a/src/remote/activitypub/renderer/follow-user.ts +++ b/src/remote/activitypub/renderer/follow-user.ts @@ -1,6 +1,6 @@ -import config from '@/config'; -import { Users } from '../../../models'; -import { User } from '../../../models/entities/user'; +import config from '@/config/index'; +import { Users } from '@/models/index'; +import { User } from '@/models/entities/user'; /** * Convert (local|remote)(Follower|Followee)ID to URL diff --git a/src/remote/activitypub/renderer/follow.ts b/src/remote/activitypub/renderer/follow.ts index 252b0b283..c8a794679 100644 --- a/src/remote/activitypub/renderer/follow.ts +++ b/src/remote/activitypub/renderer/follow.ts @@ -1,6 +1,6 @@ -import config from '@/config'; -import { User } from '../../../models/entities/user'; -import { Users } from '../../../models'; +import config from '@/config/index'; +import { User } from '@/models/entities/user'; +import { Users } from '@/models/index'; export default (follower: { id: User['id']; host: User['host']; uri: User['host'] }, followee: { id: User['id']; host: User['host']; uri: User['host'] }, requestId?: string) => { const follow = { diff --git a/src/remote/activitypub/renderer/hashtag.ts b/src/remote/activitypub/renderer/hashtag.ts index a739a4b0b..290c74c7f 100644 --- a/src/remote/activitypub/renderer/hashtag.ts +++ b/src/remote/activitypub/renderer/hashtag.ts @@ -1,4 +1,4 @@ -import config from '@/config'; +import config from '@/config/index'; export default (tag: string) => ({ type: 'Hashtag', diff --git a/src/remote/activitypub/renderer/image.ts b/src/remote/activitypub/renderer/image.ts index cbd4fbbe6..0cb3d6ed6 100644 --- a/src/remote/activitypub/renderer/image.ts +++ b/src/remote/activitypub/renderer/image.ts @@ -1,5 +1,5 @@ -import { DriveFile } from '../../../models/entities/drive-file'; -import { DriveFiles } from '../../../models'; +import { DriveFile } from '@/models/entities/drive-file'; +import { DriveFiles } from '@/models/index'; export default (file: DriveFile) => ({ type: 'Image', diff --git a/src/remote/activitypub/renderer/index.ts b/src/remote/activitypub/renderer/index.ts index 84500e949..f6ec6583d 100644 --- a/src/remote/activitypub/renderer/index.ts +++ b/src/remote/activitypub/renderer/index.ts @@ -1,4 +1,4 @@ -import config from '@/config'; +import config from '@/config/index'; import { v4 as uuid } from 'uuid'; import { IActivity } from '../type'; import { LdSignature } from '../misc/ld-signature'; diff --git a/src/remote/activitypub/renderer/key.ts b/src/remote/activitypub/renderer/key.ts index 547059dd3..992f98d79 100644 --- a/src/remote/activitypub/renderer/key.ts +++ b/src/remote/activitypub/renderer/key.ts @@ -1,6 +1,6 @@ -import config from '@/config'; -import { ILocalUser } from '../../../models/entities/user'; -import { UserKeypair } from '../../../models/entities/user-keypair'; +import config from '@/config/index'; +import { ILocalUser } from '@/models/entities/user'; +import { UserKeypair } from '@/models/entities/user-keypair'; import { createPublicKey } from 'crypto'; export default (user: ILocalUser, key: UserKeypair, postfix?: string) => ({ diff --git a/src/remote/activitypub/renderer/like.ts b/src/remote/activitypub/renderer/like.ts index 596783684..a7e79a176 100644 --- a/src/remote/activitypub/renderer/like.ts +++ b/src/remote/activitypub/renderer/like.ts @@ -1,7 +1,7 @@ -import config from '@/config'; -import { NoteReaction } from '../../../models/entities/note-reaction'; -import { Note } from '../../../models/entities/note'; -import { Emojis } from '../../../models'; +import config from '@/config/index'; +import { NoteReaction } from '@/models/entities/note-reaction'; +import { Note } from '@/models/entities/note'; +import { Emojis } from '@/models/index'; import renderEmoji from './emoji'; export const renderLike = async (noteReaction: NoteReaction, note: Note) => { diff --git a/src/remote/activitypub/renderer/mention.ts b/src/remote/activitypub/renderer/mention.ts index 14c4c40d4..06d2d33e5 100644 --- a/src/remote/activitypub/renderer/mention.ts +++ b/src/remote/activitypub/renderer/mention.ts @@ -1,6 +1,6 @@ -import config from '@/config'; -import { User, ILocalUser } from '../../../models/entities/user'; -import { Users } from '../../../models'; +import config from '@/config/index'; +import { User, ILocalUser } from '@/models/entities/user'; +import { Users } from '@/models/index'; export default (mention: User) => ({ type: 'Mention', diff --git a/src/remote/activitypub/renderer/note.ts b/src/remote/activitypub/renderer/note.ts index 54dee0789..84a178678 100644 --- a/src/remote/activitypub/renderer/note.ts +++ b/src/remote/activitypub/renderer/note.ts @@ -2,14 +2,14 @@ import renderDocument from './document'; import renderHashtag from './hashtag'; import renderMention from './mention'; import renderEmoji from './emoji'; -import config from '@/config'; +import config from '@/config/index'; import toHtml from '../misc/get-note-html'; -import { Note, IMentionedRemoteUsers } from '../../../models/entities/note'; -import { DriveFile } from '../../../models/entities/drive-file'; -import { DriveFiles, Notes, Users, Emojis, Polls } from '../../../models'; +import { Note, IMentionedRemoteUsers } from '@/models/entities/note'; +import { DriveFile } from '@/models/entities/drive-file'; +import { DriveFiles, Notes, Users, Emojis, Polls } from '@/models/index'; import { In } from 'typeorm'; -import { Emoji } from '../../../models/entities/emoji'; -import { Poll } from '../../../models/entities/poll'; +import { Emoji } from '@/models/entities/emoji'; +import { Poll } from '@/models/entities/poll'; export default async function renderNote(note: Note, dive = true, isTalk = false): Promise { const getPromisedFiles = async (ids: string[]) => { diff --git a/src/remote/activitypub/renderer/person.ts b/src/remote/activitypub/renderer/person.ts index 91b91bff9..f2a283a87 100644 --- a/src/remote/activitypub/renderer/person.ts +++ b/src/remote/activitypub/renderer/person.ts @@ -2,14 +2,14 @@ import { URL } from 'url'; import * as mfm from 'mfm-js'; import renderImage from './image'; import renderKey from './key'; -import config from '@/config'; -import { ILocalUser } from '../../../models/entities/user'; +import config from '@/config/index'; +import { ILocalUser } from '@/models/entities/user'; import { toHtml } from '../../../mfm/to-html'; import { getEmojis } from './note'; import renderEmoji from './emoji'; import { IIdentifier } from '../models/identifier'; import renderHashtag from './hashtag'; -import { DriveFiles, UserProfiles } from '../../../models'; +import { DriveFiles, UserProfiles } from '@/models/index'; import { getUserKeypair } from '@/misc/keypair-store'; export async function renderPerson(user: ILocalUser) { diff --git a/src/remote/activitypub/renderer/question.ts b/src/remote/activitypub/renderer/question.ts index 99670f80a..246d599ba 100644 --- a/src/remote/activitypub/renderer/question.ts +++ b/src/remote/activitypub/renderer/question.ts @@ -1,7 +1,7 @@ -import config from '@/config'; +import config from '@/config/index'; import { User } from '@/models/entities/user'; -import { Note } from '../../../models/entities/note'; -import { Poll } from '../../../models/entities/poll'; +import { Note } from '@/models/entities/note'; +import { Poll } from '@/models/entities/poll'; export default async function renderQuestion(user: { id: User['id'] }, note: Note, poll: Poll) { const question = { diff --git a/src/remote/activitypub/renderer/read.ts b/src/remote/activitypub/renderer/read.ts index 1287f4ccb..95357f64d 100644 --- a/src/remote/activitypub/renderer/read.ts +++ b/src/remote/activitypub/renderer/read.ts @@ -1,6 +1,6 @@ -import config from '@/config'; +import config from '@/config/index'; import { User } from '@/models/entities/user'; -import { MessagingMessage } from '../../../models/entities/messaging-message'; +import { MessagingMessage } from '@/models/entities/messaging-message'; export const renderReadActivity = (user: { id: User['id'] }, message: MessagingMessage) => ({ type: 'Read', diff --git a/src/remote/activitypub/renderer/reject.ts b/src/remote/activitypub/renderer/reject.ts index e1eb5b004..42beffecf 100644 --- a/src/remote/activitypub/renderer/reject.ts +++ b/src/remote/activitypub/renderer/reject.ts @@ -1,4 +1,4 @@ -import config from '@/config'; +import config from '@/config/index'; import { User } from '@/models/entities/user'; export default (object: any, user: { id: User['id'] }) => ({ diff --git a/src/remote/activitypub/renderer/remove.ts b/src/remote/activitypub/renderer/remove.ts index ff1fab8e5..79d60edba 100644 --- a/src/remote/activitypub/renderer/remove.ts +++ b/src/remote/activitypub/renderer/remove.ts @@ -1,4 +1,4 @@ -import config from '@/config'; +import config from '@/config/index'; import { User } from '@/models/entities/user'; export default (user: { id: User['id'] }, target: any, object: any) => ({ diff --git a/src/remote/activitypub/renderer/undo.ts b/src/remote/activitypub/renderer/undo.ts index 627a6533a..f9082ffdf 100644 --- a/src/remote/activitypub/renderer/undo.ts +++ b/src/remote/activitypub/renderer/undo.ts @@ -1,5 +1,5 @@ -import config from '@/config'; -import { ILocalUser, User } from '../../../models/entities/user'; +import config from '@/config/index'; +import { ILocalUser, User } from '@/models/entities/user'; export default (object: any, user: { id: User['id'] }) => { if (object == null) return null; diff --git a/src/remote/activitypub/renderer/update.ts b/src/remote/activitypub/renderer/update.ts index 4295fc64f..d9a8149af 100644 --- a/src/remote/activitypub/renderer/update.ts +++ b/src/remote/activitypub/renderer/update.ts @@ -1,4 +1,4 @@ -import config from '@/config'; +import config from '@/config/index'; import { User } from '@/models/entities/user'; export default (object: any, user: { id: User['id'] }) => { diff --git a/src/remote/activitypub/renderer/vote.ts b/src/remote/activitypub/renderer/vote.ts index 529fdaafc..ff038070f 100644 --- a/src/remote/activitypub/renderer/vote.ts +++ b/src/remote/activitypub/renderer/vote.ts @@ -1,8 +1,8 @@ -import config from '@/config'; -import { Note } from '../../../models/entities/note'; -import { IRemoteUser, User } from '../../../models/entities/user'; -import { PollVote } from '../../../models/entities/poll-vote'; -import { Poll } from '../../../models/entities/poll'; +import config from '@/config/index'; +import { Note } from '@/models/entities/note'; +import { IRemoteUser, User } from '@/models/entities/user'; +import { PollVote } from '@/models/entities/poll-vote'; +import { Poll } from '@/models/entities/poll'; export default async function renderVote(user: { id: User['id'] }, vote: PollVote, note: Note, poll: Poll, pollOwner: IRemoteUser): Promise { return { diff --git a/src/remote/activitypub/request.ts b/src/remote/activitypub/request.ts index e4dca3232..fe1009243 100644 --- a/src/remote/activitypub/request.ts +++ b/src/remote/activitypub/request.ts @@ -3,7 +3,7 @@ import * as https from 'https'; import { sign } from 'http-signature'; import * as crypto from 'crypto'; -import config from '@/config'; +import config from '@/config/index'; import { User } from '@/models/entities/user'; import { getAgentByUrl } from '@/misc/fetch'; import { URL } from 'url'; diff --git a/src/remote/activitypub/resolver.ts b/src/remote/activitypub/resolver.ts index 066bde088..32f3d9ef2 100644 --- a/src/remote/activitypub/resolver.ts +++ b/src/remote/activitypub/resolver.ts @@ -1,7 +1,7 @@ -import config from '@/config'; +import config from '@/config/index'; import { getJson } from '@/misc/fetch'; -import { ILocalUser } from '../../models/entities/user'; -import { getInstanceActor } from '../../services/instance-actor'; +import { ILocalUser } from '@/models/entities/user'; +import { getInstanceActor } from '@/services/instance-actor'; import { signedGet } from './request'; import { IObject, isCollectionOrOrderedCollection, ICollection, IOrderedCollection } from './type'; diff --git a/src/remote/logger.ts b/src/remote/logger.ts index d7464e7fd..9ffad4d71 100644 --- a/src/remote/logger.ts +++ b/src/remote/logger.ts @@ -1,3 +1,3 @@ -import Logger from '../services/logger'; +import Logger from '@/services/logger'; export const remoteLogger = new Logger('remote', 'cyan'); diff --git a/src/remote/resolve-user.ts b/src/remote/resolve-user.ts index 1bcecee3c..a12396abc 100644 --- a/src/remote/resolve-user.ts +++ b/src/remote/resolve-user.ts @@ -1,11 +1,11 @@ import { URL } from 'url'; import webFinger from './webfinger'; -import config from '@/config'; +import config from '@/config/index'; import { createPerson, updatePerson } from './activitypub/models/person'; import { remoteLogger } from './logger'; import * as chalk from 'chalk'; -import { User, IRemoteUser } from '../models/entities/user'; -import { Users } from '../models'; +import { User, IRemoteUser } from '@/models/entities/user'; +import { Users } from '@/models/index'; import { toPuny } from '@/misc/convert-host'; const logger = remoteLogger.createSubLogger('resolve-user'); diff --git a/src/remote/webfinger.ts b/src/remote/webfinger.ts index 744ab3639..f63fd0362 100644 --- a/src/remote/webfinger.ts +++ b/src/remote/webfinger.ts @@ -1,6 +1,6 @@ import { URL } from 'url'; import { getJson } from '@/misc/fetch'; -import { query as urlQuery } from '../prelude/url'; +import { query as urlQuery } from '@/prelude/url'; type ILink = { href: string; diff --git a/src/server/activitypub.ts b/src/server/activitypub.ts index 0ddc4683f..eabe68113 100644 --- a/src/server/activitypub.ts +++ b/src/server/activitypub.ts @@ -2,21 +2,21 @@ import * as Router from '@koa/router'; import * as json from 'koa-json-body'; import * as httpSignature from 'http-signature'; -import { renderActivity } from '../remote/activitypub/renderer'; -import renderNote from '../remote/activitypub/renderer/note'; -import renderKey from '../remote/activitypub/renderer/key'; -import { renderPerson } from '../remote/activitypub/renderer/person'; -import renderEmoji from '../remote/activitypub/renderer/emoji'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import renderNote from '@/remote/activitypub/renderer/note'; +import renderKey from '@/remote/activitypub/renderer/key'; +import { renderPerson } from '@/remote/activitypub/renderer/person'; +import renderEmoji from '@/remote/activitypub/renderer/emoji'; import Outbox, { packActivity } from './activitypub/outbox'; import Followers from './activitypub/followers'; import Following from './activitypub/following'; import Featured from './activitypub/featured'; -import { inbox as processInbox } from '../queue'; +import { inbox as processInbox } from '@/queue/index'; import { isSelfHost } from '@/misc/convert-host'; -import { Notes, Users, Emojis, NoteReactions } from '../models'; -import { ILocalUser, User } from '../models/entities/user'; +import { Notes, Users, Emojis, NoteReactions } from '@/models/index'; +import { ILocalUser, User } from '@/models/entities/user'; import { In } from 'typeorm'; -import { renderLike } from '../remote/activitypub/renderer/like'; +import { renderLike } from '@/remote/activitypub/renderer/like'; import { getUserKeypair } from '@/misc/keypair-store'; // Init router diff --git a/src/server/activitypub/featured.ts b/src/server/activitypub/featured.ts index 02d4a30a5..1598cc680 100644 --- a/src/server/activitypub/featured.ts +++ b/src/server/activitypub/featured.ts @@ -1,10 +1,10 @@ import * as Router from '@koa/router'; -import config from '@/config'; -import { renderActivity } from '../../remote/activitypub/renderer'; -import renderOrderedCollection from '../../remote/activitypub/renderer/ordered-collection'; +import config from '@/config/index'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import renderOrderedCollection from '@/remote/activitypub/renderer/ordered-collection'; import { setResponseType } from '../activitypub'; -import renderNote from '../../remote/activitypub/renderer/note'; -import { Users, Notes, UserNotePinings } from '../../models'; +import renderNote from '@/remote/activitypub/renderer/note'; +import { Users, Notes, UserNotePinings } from '@/models/index'; export default async (ctx: Router.RouterContext) => { const userId = ctx.params.user; diff --git a/src/server/activitypub/followers.ts b/src/server/activitypub/followers.ts index a4f2e666d..8b6a066bf 100644 --- a/src/server/activitypub/followers.ts +++ b/src/server/activitypub/followers.ts @@ -1,14 +1,14 @@ import * as Router from '@koa/router'; -import config from '@/config'; +import config from '@/config/index'; import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import * as url from '../../prelude/url'; -import { renderActivity } from '../../remote/activitypub/renderer'; -import renderOrderedCollection from '../../remote/activitypub/renderer/ordered-collection'; -import renderOrderedCollectionPage from '../../remote/activitypub/renderer/ordered-collection-page'; -import renderFollowUser from '../../remote/activitypub/renderer/follow-user'; +import * as url from '@/prelude/url'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import renderOrderedCollection from '@/remote/activitypub/renderer/ordered-collection'; +import renderOrderedCollectionPage from '@/remote/activitypub/renderer/ordered-collection-page'; +import renderFollowUser from '@/remote/activitypub/renderer/follow-user'; import { setResponseType } from '../activitypub'; -import { Users, Followings } from '../../models'; +import { Users, Followings } from '@/models/index'; import { LessThan } from 'typeorm'; export default async (ctx: Router.RouterContext) => { diff --git a/src/server/activitypub/following.ts b/src/server/activitypub/following.ts index f5e5c6236..5fc5d68a9 100644 --- a/src/server/activitypub/following.ts +++ b/src/server/activitypub/following.ts @@ -1,16 +1,16 @@ import * as Router from '@koa/router'; -import config from '@/config'; +import config from '@/config/index'; import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import * as url from '../../prelude/url'; -import { renderActivity } from '../../remote/activitypub/renderer'; -import renderOrderedCollection from '../../remote/activitypub/renderer/ordered-collection'; -import renderOrderedCollectionPage from '../../remote/activitypub/renderer/ordered-collection-page'; -import renderFollowUser from '../../remote/activitypub/renderer/follow-user'; +import * as url from '@/prelude/url'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import renderOrderedCollection from '@/remote/activitypub/renderer/ordered-collection'; +import renderOrderedCollectionPage from '@/remote/activitypub/renderer/ordered-collection-page'; +import renderFollowUser from '@/remote/activitypub/renderer/follow-user'; import { setResponseType } from '../activitypub'; -import { Users, Followings } from '../../models'; +import { Users, Followings } from '@/models/index'; import { LessThan, FindConditions } from 'typeorm'; -import { Following } from '../../models/entities/following'; +import { Following } from '@/models/entities/following'; export default async (ctx: Router.RouterContext) => { const userId = ctx.params.user; diff --git a/src/server/activitypub/outbox.ts b/src/server/activitypub/outbox.ts index 338e17737..df528e8b5 100644 --- a/src/server/activitypub/outbox.ts +++ b/src/server/activitypub/outbox.ts @@ -1,20 +1,20 @@ import * as Router from '@koa/router'; -import config from '@/config'; +import config from '@/config/index'; import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import { renderActivity } from '../../remote/activitypub/renderer'; -import renderOrderedCollection from '../../remote/activitypub/renderer/ordered-collection'; -import renderOrderedCollectionPage from '../../remote/activitypub/renderer/ordered-collection-page'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import renderOrderedCollection from '@/remote/activitypub/renderer/ordered-collection'; +import renderOrderedCollectionPage from '@/remote/activitypub/renderer/ordered-collection-page'; import { setResponseType } from '../activitypub'; -import renderNote from '../../remote/activitypub/renderer/note'; -import renderCreate from '../../remote/activitypub/renderer/create'; -import renderAnnounce from '../../remote/activitypub/renderer/announce'; -import { countIf } from '../../prelude/array'; -import * as url from '../../prelude/url'; -import { Users, Notes } from '../../models'; +import renderNote from '@/remote/activitypub/renderer/note'; +import renderCreate from '@/remote/activitypub/renderer/create'; +import renderAnnounce from '@/remote/activitypub/renderer/announce'; +import { countIf } from '@/prelude/array'; +import * as url from '@/prelude/url'; +import { Users, Notes } from '@/models/index'; import { makePaginationQuery } from '../api/common/make-pagination-query'; import { Brackets } from 'typeorm'; -import { Note } from '../../models/entities/note'; +import { Note } from '@/models/entities/note'; export default async (ctx: Router.RouterContext) => { const userId = ctx.params.user; diff --git a/src/server/api/2fa.ts b/src/server/api/2fa.ts index 77f0f8cd0..117446383 100644 --- a/src/server/api/2fa.ts +++ b/src/server/api/2fa.ts @@ -1,5 +1,5 @@ import * as crypto from 'crypto'; -import config from '@/config'; +import config from '@/config/index'; import * as jsrsasign from 'jsrsasign'; const ECC_PRELUDE = Buffer.from([0x04]); diff --git a/src/server/api/authenticate.ts b/src/server/api/authenticate.ts index 6148ad33c..b8e216edc 100644 --- a/src/server/api/authenticate.ts +++ b/src/server/api/authenticate.ts @@ -1,7 +1,7 @@ import isNativeToken from './common/is-native-token'; -import { User } from '../../models/entities/user'; -import { Users, AccessTokens, Apps } from '../../models'; -import { AccessToken } from '../../models/entities/access-token'; +import { User } from '@/models/entities/user'; +import { Users, AccessTokens, Apps } from '@/models/index'; +import { AccessToken } from '@/models/entities/access-token'; export class AuthenticationError extends Error { constructor(message: string) { diff --git a/src/server/api/call.ts b/src/server/api/call.ts index d50b6a122..2768bde07 100644 --- a/src/server/api/call.ts +++ b/src/server/api/call.ts @@ -1,10 +1,10 @@ import { performance } from 'perf_hooks'; import limiter from './limiter'; -import { User } from '../../models/entities/user'; +import { User } from '@/models/entities/user'; import endpoints from './endpoints'; import { ApiError } from './error'; import { apiLogger } from './logger'; -import { AccessToken } from '../../models/entities/access-token'; +import { AccessToken } from '@/models/entities/access-token'; const accessDenied = { message: 'Access denied.', diff --git a/src/server/api/common/generate-block-query.ts b/src/server/api/common/generate-block-query.ts index 016da57aa..4fd618473 100644 --- a/src/server/api/common/generate-block-query.ts +++ b/src/server/api/common/generate-block-query.ts @@ -1,5 +1,5 @@ -import { User } from '../../../models/entities/user'; -import { Blockings } from '../../../models'; +import { User } from '@/models/entities/user'; +import { Blockings } from '@/models/index'; import { Brackets, SelectQueryBuilder } from 'typeorm'; // ここでいうBlockedは被Blockedの意 diff --git a/src/server/api/common/generate-channel-query.ts b/src/server/api/common/generate-channel-query.ts index 74a6d68c4..80a0acf7f 100644 --- a/src/server/api/common/generate-channel-query.ts +++ b/src/server/api/common/generate-channel-query.ts @@ -1,5 +1,5 @@ -import { User } from '../../../models/entities/user'; -import { ChannelFollowings } from '../../../models'; +import { User } from '@/models/entities/user'; +import { ChannelFollowings } from '@/models/index'; import { Brackets, SelectQueryBuilder } from 'typeorm'; export function generateChannelQuery(q: SelectQueryBuilder, me?: { id: User['id'] } | null) { diff --git a/src/server/api/common/generate-muted-note-query.ts b/src/server/api/common/generate-muted-note-query.ts index c7f9f7c5a..073784261 100644 --- a/src/server/api/common/generate-muted-note-query.ts +++ b/src/server/api/common/generate-muted-note-query.ts @@ -1,5 +1,5 @@ -import { User } from '../../../models/entities/user'; -import { MutedNotes } from '../../../models'; +import { User } from '@/models/entities/user'; +import { MutedNotes } from '@/models/index'; import { SelectQueryBuilder } from 'typeorm'; export function generateMutedNoteQuery(q: SelectQueryBuilder, me: { id: User['id'] }) { diff --git a/src/server/api/common/generate-muted-user-query.ts b/src/server/api/common/generate-muted-user-query.ts index f5e072ba9..7e200b87e 100644 --- a/src/server/api/common/generate-muted-user-query.ts +++ b/src/server/api/common/generate-muted-user-query.ts @@ -1,5 +1,5 @@ -import { User } from '../../../models/entities/user'; -import { Mutings } from '../../../models'; +import { User } from '@/models/entities/user'; +import { Mutings } from '@/models/index'; import { SelectQueryBuilder, Brackets } from 'typeorm'; export function generateMutedUserQuery(q: SelectQueryBuilder, me: { id: User['id'] }, exclude?: User) { diff --git a/src/server/api/common/generate-replies-query.ts b/src/server/api/common/generate-replies-query.ts index 29b1e17c2..fbc41b2c2 100644 --- a/src/server/api/common/generate-replies-query.ts +++ b/src/server/api/common/generate-replies-query.ts @@ -1,4 +1,4 @@ -import { User } from '../../../models/entities/user'; +import { User } from '@/models/entities/user'; import { Brackets, SelectQueryBuilder } from 'typeorm'; export function generateRepliesQuery(q: SelectQueryBuilder, me?: { id: User['id'] } | null) { diff --git a/src/server/api/common/generate-visibility-query.ts b/src/server/api/common/generate-visibility-query.ts index 00a50f821..813e8b6c0 100644 --- a/src/server/api/common/generate-visibility-query.ts +++ b/src/server/api/common/generate-visibility-query.ts @@ -1,5 +1,5 @@ -import { User } from '../../../models/entities/user'; -import { Followings } from '../../../models'; +import { User } from '@/models/entities/user'; +import { Followings } from '@/models/index'; import { Brackets, SelectQueryBuilder } from 'typeorm'; export function generateVisibilityQuery(q: SelectQueryBuilder, me?: { id: User['id'] } | null) { diff --git a/src/server/api/common/getters.ts b/src/server/api/common/getters.ts index 73fbadfee..4b2ee8f1d 100644 --- a/src/server/api/common/getters.ts +++ b/src/server/api/common/getters.ts @@ -1,7 +1,7 @@ import { IdentifiableError } from '@/misc/identifiable-error'; -import { User } from '../../../models/entities/user'; -import { Note } from '../../../models/entities/note'; -import { Notes, Users } from '../../../models'; +import { User } from '@/models/entities/user'; +import { Note } from '@/models/entities/note'; +import { Notes, Users } from '@/models/index'; /** * Get note for API processing diff --git a/src/server/api/common/inject-featured.ts b/src/server/api/common/inject-featured.ts index 3659b7f2b..1dc13c83e 100644 --- a/src/server/api/common/inject-featured.ts +++ b/src/server/api/common/inject-featured.ts @@ -1,7 +1,7 @@ import rndstr from 'rndstr'; -import { Note } from '../../../models/entities/note'; -import { User } from '../../../models/entities/user'; -import { Notes, UserProfiles, NoteReactions } from '../../../models'; +import { Note } from '@/models/entities/note'; +import { User } from '@/models/entities/user'; +import { Notes, UserProfiles, NoteReactions } from '@/models/index'; import { generateMutedUserQuery } from './generate-muted-user-query'; import { generateBlockedUserQuery } from './generate-block-query'; diff --git a/src/server/api/common/inject-promo.ts b/src/server/api/common/inject-promo.ts index 2c16ca4cf..87767a65b 100644 --- a/src/server/api/common/inject-promo.ts +++ b/src/server/api/common/inject-promo.ts @@ -1,7 +1,7 @@ import rndstr from 'rndstr'; -import { Note } from '../../../models/entities/note'; -import { User } from '../../../models/entities/user'; -import { PromoReads, PromoNotes, Notes, Users } from '../../../models'; +import { Note } from '@/models/entities/note'; +import { User } from '@/models/entities/user'; +import { PromoReads, PromoNotes, Notes, Users } from '@/models/index'; export async function injectPromo(timeline: Note[], user?: User | null) { if (timeline.length < 5) return; diff --git a/src/server/api/common/read-messaging-message.ts b/src/server/api/common/read-messaging-message.ts index 6c9fcf973..1dce76d2a 100644 --- a/src/server/api/common/read-messaging-message.ts +++ b/src/server/api/common/read-messaging-message.ts @@ -1,17 +1,17 @@ -import { publishMainStream, publishGroupMessagingStream } from '../../../services/stream'; -import { publishMessagingStream } from '../../../services/stream'; -import { publishMessagingIndexStream } from '../../../services/stream'; -import { User, IRemoteUser } from '../../../models/entities/user'; -import { MessagingMessage } from '../../../models/entities/messaging-message'; -import { MessagingMessages, UserGroupJoinings, Users } from '../../../models'; +import { publishMainStream, publishGroupMessagingStream } from '@/services/stream'; +import { publishMessagingStream } from '@/services/stream'; +import { publishMessagingIndexStream } from '@/services/stream'; +import { User, IRemoteUser } from '@/models/entities/user'; +import { MessagingMessage } from '@/models/entities/messaging-message'; +import { MessagingMessages, UserGroupJoinings, Users } from '@/models/index'; import { In } from 'typeorm'; import { IdentifiableError } from '@/misc/identifiable-error'; -import { UserGroup } from '../../../models/entities/user-group'; -import { toArray } from '../../../prelude/array'; -import { renderReadActivity } from '../../../remote/activitypub/renderer/read'; -import { renderActivity } from '../../../remote/activitypub/renderer'; -import { deliver } from '../../../queue'; -import orderedCollection from '../../../remote/activitypub/renderer/ordered-collection'; +import { UserGroup } from '@/models/entities/user-group'; +import { toArray } from '@/prelude/array'; +import { renderReadActivity } from '@/remote/activitypub/renderer/read'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import { deliver } from '@/queue/index'; +import orderedCollection from '@/remote/activitypub/renderer/ordered-collection'; /** * Mark messages as read diff --git a/src/server/api/common/read-notification.ts b/src/server/api/common/read-notification.ts index effa61e8b..a4406c9ee 100644 --- a/src/server/api/common/read-notification.ts +++ b/src/server/api/common/read-notification.ts @@ -1,7 +1,7 @@ -import { publishMainStream } from '../../../services/stream'; -import { User } from '../../../models/entities/user'; -import { Notification } from '../../../models/entities/notification'; -import { Notifications, Users } from '../../../models'; +import { publishMainStream } from '@/services/stream'; +import { User } from '@/models/entities/user'; +import { Notification } from '@/models/entities/notification'; +import { Notifications, Users } from '@/models/index'; import { In } from 'typeorm'; export async function readNotification( diff --git a/src/server/api/common/signin.ts b/src/server/api/common/signin.ts index af09a7034..4c7aacf1c 100644 --- a/src/server/api/common/signin.ts +++ b/src/server/api/common/signin.ts @@ -1,10 +1,10 @@ import * as Koa from 'koa'; -import config from '@/config'; -import { ILocalUser } from '../../../models/entities/user'; -import { Signins } from '../../../models'; +import config from '@/config/index'; +import { ILocalUser } from '@/models/entities/user'; +import { Signins } from '@/models/index'; import { genId } from '@/misc/gen-id'; -import { publishMainStream } from '../../../services/stream'; +import { publishMainStream } from '@/services/stream'; export default function(ctx: Koa.Context, user: ILocalUser, redirect = false) { if (redirect) { diff --git a/src/server/api/common/signup.ts b/src/server/api/common/signup.ts index b8d197317..eb3aa09c8 100644 --- a/src/server/api/common/signup.ts +++ b/src/server/api/common/signup.ts @@ -1,15 +1,15 @@ import * as bcrypt from 'bcryptjs'; import { generateKeyPair } from 'crypto'; import generateUserToken from './generate-native-user-token'; -import { User } from '../../../models/entities/user'; -import { Users, UsedUsernames } from '../../../models'; -import { UserProfile } from '../../../models/entities/user-profile'; +import { User } from '@/models/entities/user'; +import { Users, UsedUsernames } from '@/models/index'; +import { UserProfile } from '@/models/entities/user-profile'; import { getConnection } from 'typeorm'; import { genId } from '@/misc/gen-id'; import { toPunyNullable } from '@/misc/convert-host'; -import { UserKeypair } from '../../../models/entities/user-keypair'; -import { usersChart } from '../../../services/chart'; -import { UsedUsername } from '../../../models/entities/used-username'; +import { UserKeypair } from '@/models/entities/user-keypair'; +import { usersChart } from '@/services/chart/index'; +import { UsedUsername } from '@/models/entities/used-username'; export async function signup(username: User['username'], password: UserProfile['password'], host: string | null = null) { // Validate username diff --git a/src/server/api/define.ts b/src/server/api/define.ts index cba69cfdc..4bd8f95e3 100644 --- a/src/server/api/define.ts +++ b/src/server/api/define.ts @@ -1,9 +1,9 @@ import * as fs from 'fs'; -import { ILocalUser } from '../../models/entities/user'; +import { ILocalUser } from '@/models/entities/user'; import { IEndpointMeta } from './endpoints'; import { ApiError } from './error'; import { SchemaType } from '@/misc/schema'; -import { AccessToken } from '../../models/entities/access-token'; +import { AccessToken } from '@/models/entities/access-token'; type NonOptional = T extends undefined ? never : T; diff --git a/src/server/api/endpoints.ts b/src/server/api/endpoints.ts index 24b58b873..640b14ed6 100644 --- a/src/server/api/endpoints.ts +++ b/src/server/api/endpoints.ts @@ -1,8 +1,14 @@ +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; import { Context } from 'cafy'; import * as path from 'path'; import * as glob from 'glob'; import { Schema } from '@/misc/schema'; +//const _filename = fileURLToPath(import.meta.url); +const _filename = __filename; +const _dirname = dirname(_filename); + export type Param = { validator: Context; transform?: any; @@ -102,7 +108,7 @@ export interface IEndpoint { } const files = glob.sync('**/*.js', { - cwd: path.resolve(__dirname + '/endpoints/') + cwd: path.resolve(_dirname + '/endpoints/') }); const endpoints: IEndpoint[] = files.map(f => { diff --git a/src/server/api/endpoints/admin/abuse-user-reports.ts b/src/server/api/endpoints/admin/abuse-user-reports.ts index 02291a3ed..403eb2419 100644 --- a/src/server/api/endpoints/admin/abuse-user-reports.ts +++ b/src/server/api/endpoints/admin/abuse-user-reports.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { AbuseUserReports } from '../../../../models'; +import { AbuseUserReports } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/admin/accounts/create.ts b/src/server/api/endpoints/admin/accounts/create.ts index bceb210a8..9691b9c7e 100644 --- a/src/server/api/endpoints/admin/accounts/create.ts +++ b/src/server/api/endpoints/admin/accounts/create.ts @@ -1,5 +1,5 @@ import define from '../../../define'; -import { Users } from '../../../../../models'; +import { Users } from '@/models/index'; import { signup } from '../../../common/signup'; export const meta = { diff --git a/src/server/api/endpoints/admin/ad/create.ts b/src/server/api/endpoints/admin/ad/create.ts index 337114a3f..27c7b5d31 100644 --- a/src/server/api/endpoints/admin/ad/create.ts +++ b/src/server/api/endpoints/admin/ad/create.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { Ads } from '../../../../../models'; +import { Ads } from '@/models/index'; import { genId } from '@/misc/gen-id'; export const meta = { diff --git a/src/server/api/endpoints/admin/ad/delete.ts b/src/server/api/endpoints/admin/ad/delete.ts index 6a5f92193..91934e1aa 100644 --- a/src/server/api/endpoints/admin/ad/delete.ts +++ b/src/server/api/endpoints/admin/ad/delete.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; import { ID } from '@/misc/cafy-id'; -import { Ads } from '../../../../../models'; +import { Ads } from '@/models/index'; import { ApiError } from '../../../error'; export const meta = { diff --git a/src/server/api/endpoints/admin/ad/list.ts b/src/server/api/endpoints/admin/ad/list.ts index a323f2a9e..000aaaba9 100644 --- a/src/server/api/endpoints/admin/ad/list.ts +++ b/src/server/api/endpoints/admin/ad/list.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; -import { Ads } from '../../../../../models'; +import { Ads } from '@/models/index'; import { makePaginationQuery } from '../../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/admin/ad/update.ts b/src/server/api/endpoints/admin/ad/update.ts index 71e6054a8..36c87895c 100644 --- a/src/server/api/endpoints/admin/ad/update.ts +++ b/src/server/api/endpoints/admin/ad/update.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; import { ID } from '@/misc/cafy-id'; -import { Ads } from '../../../../../models'; +import { Ads } from '@/models/index'; import { ApiError } from '../../../error'; export const meta = { diff --git a/src/server/api/endpoints/admin/announcements/create.ts b/src/server/api/endpoints/admin/announcements/create.ts index 794c35023..f1c07745f 100644 --- a/src/server/api/endpoints/admin/announcements/create.ts +++ b/src/server/api/endpoints/admin/announcements/create.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { Announcements } from '../../../../../models'; +import { Announcements } from '@/models/index'; import { genId } from '@/misc/gen-id'; export const meta = { diff --git a/src/server/api/endpoints/admin/announcements/delete.ts b/src/server/api/endpoints/admin/announcements/delete.ts index 6c28054da..7dbc05b4c 100644 --- a/src/server/api/endpoints/admin/announcements/delete.ts +++ b/src/server/api/endpoints/admin/announcements/delete.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; import { ID } from '@/misc/cafy-id'; -import { Announcements } from '../../../../../models'; +import { Announcements } from '@/models/index'; import { ApiError } from '../../../error'; export const meta = { diff --git a/src/server/api/endpoints/admin/announcements/list.ts b/src/server/api/endpoints/admin/announcements/list.ts index a14f0c0bd..4039bcd88 100644 --- a/src/server/api/endpoints/admin/announcements/list.ts +++ b/src/server/api/endpoints/admin/announcements/list.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; -import { Announcements, AnnouncementReads } from '../../../../../models'; +import { Announcements, AnnouncementReads } from '@/models/index'; import { makePaginationQuery } from '../../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/admin/announcements/update.ts b/src/server/api/endpoints/admin/announcements/update.ts index 6e9a43d34..343f37d62 100644 --- a/src/server/api/endpoints/admin/announcements/update.ts +++ b/src/server/api/endpoints/admin/announcements/update.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; import { ID } from '@/misc/cafy-id'; -import { Announcements } from '../../../../../models'; +import { Announcements } from '@/models/index'; import { ApiError } from '../../../error'; export const meta = { diff --git a/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts b/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts index 3d49689cd..988ab2955 100644 --- a/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts +++ b/src/server/api/endpoints/admin/delete-all-files-of-a-user.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; -import { deleteFile } from '../../../../services/drive/delete-file'; -import { DriveFiles } from '../../../../models'; +import { deleteFile } from '@/services/drive/delete-file'; +import { DriveFiles } from '@/models/index'; import { ID } from '@/misc/cafy-id'; export const meta = { diff --git a/src/server/api/endpoints/admin/delete-logs.ts b/src/server/api/endpoints/admin/delete-logs.ts index 410588bc0..9d37ceb43 100644 --- a/src/server/api/endpoints/admin/delete-logs.ts +++ b/src/server/api/endpoints/admin/delete-logs.ts @@ -1,5 +1,5 @@ import define from '../../define'; -import { Logs } from '../../../../models'; +import { Logs } from '@/models/index'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/drive/clean-remote-files.ts b/src/server/api/endpoints/admin/drive/clean-remote-files.ts index 5a5adb8a8..76a6acff5 100644 --- a/src/server/api/endpoints/admin/drive/clean-remote-files.ts +++ b/src/server/api/endpoints/admin/drive/clean-remote-files.ts @@ -1,5 +1,5 @@ import define from '../../../define'; -import { createCleanRemoteFilesJob } from '../../../../../queue'; +import { createCleanRemoteFilesJob } from '@/queue/index'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/drive/cleanup.ts b/src/server/api/endpoints/admin/drive/cleanup.ts index b76236a7f..8497478da 100644 --- a/src/server/api/endpoints/admin/drive/cleanup.ts +++ b/src/server/api/endpoints/admin/drive/cleanup.ts @@ -1,7 +1,7 @@ import { IsNull } from 'typeorm'; import define from '../../../define'; -import { deleteFile } from '../../../../../services/drive/delete-file'; -import { DriveFiles } from '../../../../../models'; +import { deleteFile } from '@/services/drive/delete-file'; +import { DriveFiles } from '@/models/index'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/drive/files.ts b/src/server/api/endpoints/admin/drive/files.ts index efeef83ca..c0788c8e0 100644 --- a/src/server/api/endpoints/admin/drive/files.ts +++ b/src/server/api/endpoints/admin/drive/files.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { DriveFiles } from '../../../../../models'; +import { DriveFiles } from '@/models/index'; import { makePaginationQuery } from '../../../common/make-pagination-query'; import { ID } from '@/misc/cafy-id'; diff --git a/src/server/api/endpoints/admin/drive/show-file.ts b/src/server/api/endpoints/admin/drive/show-file.ts index 3489e5c81..270b89c4f 100644 --- a/src/server/api/endpoints/admin/drive/show-file.ts +++ b/src/server/api/endpoints/admin/drive/show-file.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { DriveFiles } from '../../../../../models'; +import { DriveFiles } from '@/models/index'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/emoji/add.ts b/src/server/api/endpoints/admin/emoji/add.ts index 0d4550bf3..1af81fe46 100644 --- a/src/server/api/endpoints/admin/emoji/add.ts +++ b/src/server/api/endpoints/admin/emoji/add.ts @@ -1,13 +1,13 @@ import $ from 'cafy'; import define from '../../../define'; -import { Emojis, DriveFiles } from '../../../../../models'; +import { Emojis, DriveFiles } from '@/models/index'; import { genId } from '@/misc/gen-id'; import { getConnection } from 'typeorm'; -import { insertModerationLog } from '../../../../../services/insert-moderation-log'; +import { insertModerationLog } from '@/services/insert-moderation-log'; import { ApiError } from '../../../error'; import { ID } from '@/misc/cafy-id'; import rndstr from 'rndstr'; -import { publishBroadcastStream } from '../../../../../services/stream'; +import { publishBroadcastStream } from '@/services/stream'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/emoji/copy.ts b/src/server/api/endpoints/admin/emoji/copy.ts index 72c2b014a..4c8ab99f7 100644 --- a/src/server/api/endpoints/admin/emoji/copy.ts +++ b/src/server/api/endpoints/admin/emoji/copy.ts @@ -1,12 +1,12 @@ import $ from 'cafy'; import define from '../../../define'; -import { Emojis } from '../../../../../models'; +import { Emojis } from '@/models/index'; import { genId } from '@/misc/gen-id'; import { getConnection } from 'typeorm'; import { ApiError } from '../../../error'; -import { DriveFile } from '../../../../../models/entities/drive-file'; +import { DriveFile } from '@/models/entities/drive-file'; import { ID } from '@/misc/cafy-id'; -import uploadFromUrl from '../../../../../services/drive/upload-from-url'; +import uploadFromUrl from '@/services/drive/upload-from-url'; import { publishBroadcastStream } from '@/services/stream'; export const meta = { diff --git a/src/server/api/endpoints/admin/emoji/list-remote.ts b/src/server/api/endpoints/admin/emoji/list-remote.ts index 570db064e..3c8ca2217 100644 --- a/src/server/api/endpoints/admin/emoji/list-remote.ts +++ b/src/server/api/endpoints/admin/emoji/list-remote.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { Emojis } from '../../../../../models'; +import { Emojis } from '@/models/index'; import { toPuny } from '@/misc/convert-host'; import { makePaginationQuery } from '../../../common/make-pagination-query'; import { ID } from '@/misc/cafy-id'; diff --git a/src/server/api/endpoints/admin/emoji/list.ts b/src/server/api/endpoints/admin/emoji/list.ts index b864fed4b..cb1e79e0f 100644 --- a/src/server/api/endpoints/admin/emoji/list.ts +++ b/src/server/api/endpoints/admin/emoji/list.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import define from '../../../define'; -import { Emojis } from '../../../../../models'; +import { Emojis } from '@/models/index'; import { makePaginationQuery } from '../../../common/make-pagination-query'; import { ID } from '@/misc/cafy-id'; -import { Emoji } from '../../../../../models/entities/emoji'; +import { Emoji } from '@/models/entities/emoji'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/emoji/remove.ts b/src/server/api/endpoints/admin/emoji/remove.ts index 22bbc76e7..259950e36 100644 --- a/src/server/api/endpoints/admin/emoji/remove.ts +++ b/src/server/api/endpoints/admin/emoji/remove.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import define from '../../../define'; import { ID } from '@/misc/cafy-id'; -import { Emojis } from '../../../../../models'; +import { Emojis } from '@/models/index'; import { getConnection } from 'typeorm'; -import { insertModerationLog } from '../../../../../services/insert-moderation-log'; +import { insertModerationLog } from '@/services/insert-moderation-log'; import { ApiError } from '../../../error'; export const meta = { diff --git a/src/server/api/endpoints/admin/emoji/update.ts b/src/server/api/endpoints/admin/emoji/update.ts index 70589d5cf..3fd547d7e 100644 --- a/src/server/api/endpoints/admin/emoji/update.ts +++ b/src/server/api/endpoints/admin/emoji/update.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; import { ID } from '@/misc/cafy-id'; -import { Emojis } from '../../../../../models'; +import { Emojis } from '@/models/index'; import { getConnection } from 'typeorm'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/admin/federation/delete-all-files.ts b/src/server/api/endpoints/admin/federation/delete-all-files.ts index eef53cd92..82540c544 100644 --- a/src/server/api/endpoints/admin/federation/delete-all-files.ts +++ b/src/server/api/endpoints/admin/federation/delete-all-files.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; -import { deleteFile } from '../../../../../services/drive/delete-file'; -import { DriveFiles } from '../../../../../models'; +import { deleteFile } from '@/services/drive/delete-file'; +import { DriveFiles } from '@/models/index'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts b/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts index 65b3b6e26..65a6947ba 100644 --- a/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts +++ b/src/server/api/endpoints/admin/federation/refresh-remote-instance-metadata.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import define from '../../../define'; -import { Instances } from '../../../../../models'; +import { Instances } from '@/models/index'; import { toPuny } from '@/misc/convert-host'; -import { fetchInstanceMetadata } from '../../../../../services/fetch-instance-metadata'; +import { fetchInstanceMetadata } from '@/services/fetch-instance-metadata'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/federation/remove-all-following.ts b/src/server/api/endpoints/admin/federation/remove-all-following.ts index e59319355..7935eaa63 100644 --- a/src/server/api/endpoints/admin/federation/remove-all-following.ts +++ b/src/server/api/endpoints/admin/federation/remove-all-following.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; -import deleteFollowing from '../../../../../services/following/delete'; -import { Followings, Users } from '../../../../../models'; +import deleteFollowing from '@/services/following/delete'; +import { Followings, Users } from '@/models/index'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/federation/update-instance.ts b/src/server/api/endpoints/admin/federation/update-instance.ts index 2d559e43e..34eab27c7 100644 --- a/src/server/api/endpoints/admin/federation/update-instance.ts +++ b/src/server/api/endpoints/admin/federation/update-instance.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { Instances } from '../../../../../models'; +import { Instances } from '@/models/index'; import { toPuny } from '@/misc/convert-host'; export const meta = { diff --git a/src/server/api/endpoints/admin/invite.ts b/src/server/api/endpoints/admin/invite.ts index 141f27d95..2c69eec53 100644 --- a/src/server/api/endpoints/admin/invite.ts +++ b/src/server/api/endpoints/admin/invite.ts @@ -1,6 +1,6 @@ import rndstr from 'rndstr'; import define from '../../define'; -import { RegistrationTickets } from '../../../../models'; +import { RegistrationTickets } from '@/models/index'; import { genId } from '@/misc/gen-id'; export const meta = { diff --git a/src/server/api/endpoints/admin/logs.ts b/src/server/api/endpoints/admin/logs.ts index 1ec732039..776403a62 100644 --- a/src/server/api/endpoints/admin/logs.ts +++ b/src/server/api/endpoints/admin/logs.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { Logs } from '../../../../models'; +import { Logs } from '@/models/index'; import { Brackets } from 'typeorm'; export const meta = { diff --git a/src/server/api/endpoints/admin/moderators/add.ts b/src/server/api/endpoints/admin/moderators/add.ts index 2b4e8a801..2b87fc217 100644 --- a/src/server/api/endpoints/admin/moderators/add.ts +++ b/src/server/api/endpoints/admin/moderators/add.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; -import { Users } from '../../../../../models'; +import { Users } from '@/models/index'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/moderators/remove.ts b/src/server/api/endpoints/admin/moderators/remove.ts index fd6e29df5..cbb062522 100644 --- a/src/server/api/endpoints/admin/moderators/remove.ts +++ b/src/server/api/endpoints/admin/moderators/remove.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; -import { Users } from '../../../../../models'; +import { Users } from '@/models/index'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/promo/create.ts b/src/server/api/endpoints/admin/promo/create.ts index 8468ab654..3bdaaad4d 100644 --- a/src/server/api/endpoints/admin/promo/create.ts +++ b/src/server/api/endpoints/admin/promo/create.ts @@ -3,7 +3,7 @@ import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getNote } from '../../../common/getters'; -import { PromoNotes } from '../../../../../models'; +import { PromoNotes } from '@/models/index'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/queue/clear.ts b/src/server/api/endpoints/admin/queue/clear.ts index 0375f55f0..fedb7065a 100644 --- a/src/server/api/endpoints/admin/queue/clear.ts +++ b/src/server/api/endpoints/admin/queue/clear.ts @@ -1,6 +1,6 @@ import define from '../../../define'; -import { destroy } from '../../../../../queue'; -import { insertModerationLog } from '../../../../../services/insert-moderation-log'; +import { destroy } from '@/queue/index'; +import { insertModerationLog } from '@/services/insert-moderation-log'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/queue/inbox-delayed.ts b/src/server/api/endpoints/admin/queue/inbox-delayed.ts index 119976c68..59e5c834e 100644 --- a/src/server/api/endpoints/admin/queue/inbox-delayed.ts +++ b/src/server/api/endpoints/admin/queue/inbox-delayed.ts @@ -1,6 +1,6 @@ import { URL } from 'url'; import define from '../../../define'; -import { inboxQueue } from '../../../../../queue'; +import { inboxQueue } from '@/queue/index'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/relays/add.ts b/src/server/api/endpoints/admin/relays/add.ts index 54d292ad5..567035fd3 100644 --- a/src/server/api/endpoints/admin/relays/add.ts +++ b/src/server/api/endpoints/admin/relays/add.ts @@ -1,7 +1,7 @@ import { URL } from 'url'; import $ from 'cafy'; import define from '../../../define'; -import { addRelay } from '../../../../../services/relay'; +import { addRelay } from '@/services/relay'; import { ApiError } from '../../../error'; export const meta = { diff --git a/src/server/api/endpoints/admin/relays/list.ts b/src/server/api/endpoints/admin/relays/list.ts index 9f2474f10..031ebe85d 100644 --- a/src/server/api/endpoints/admin/relays/list.ts +++ b/src/server/api/endpoints/admin/relays/list.ts @@ -1,5 +1,5 @@ import define from '../../../define'; -import { listRelay } from '../../../../../services/relay'; +import { listRelay } from '@/services/relay'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/relays/remove.ts b/src/server/api/endpoints/admin/relays/remove.ts index 220efab40..c1c50f5dc 100644 --- a/src/server/api/endpoints/admin/relays/remove.ts +++ b/src/server/api/endpoints/admin/relays/remove.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { removeRelay } from '../../../../../services/relay'; +import { removeRelay } from '@/services/relay'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/reset-password.ts b/src/server/api/endpoints/admin/reset-password.ts index 6ff49d83d..0fc2c6a86 100644 --- a/src/server/api/endpoints/admin/reset-password.ts +++ b/src/server/api/endpoints/admin/reset-password.ts @@ -3,7 +3,7 @@ import { ID } from '@/misc/cafy-id'; import define from '../../define'; import * as bcrypt from 'bcryptjs'; import rndstr from 'rndstr'; -import { Users, UserProfiles } from '../../../../models'; +import { Users, UserProfiles } from '@/models/index'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/resolve-abuse-user-report.ts b/src/server/api/endpoints/admin/resolve-abuse-user-report.ts index 38a5e8137..7b71f8e00 100644 --- a/src/server/api/endpoints/admin/resolve-abuse-user-report.ts +++ b/src/server/api/endpoints/admin/resolve-abuse-user-report.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { AbuseUserReports } from '../../../../models'; +import { AbuseUserReports } from '@/models/index'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/resync-chart.ts b/src/server/api/endpoints/admin/resync-chart.ts index 84e19d37e..b0e687333 100644 --- a/src/server/api/endpoints/admin/resync-chart.ts +++ b/src/server/api/endpoints/admin/resync-chart.ts @@ -1,6 +1,6 @@ import define from '../../define'; -import { driveChart, notesChart, usersChart, instanceChart } from '../../../../services/chart'; -import { insertModerationLog } from '../../../../services/insert-moderation-log'; +import { driveChart, notesChart, usersChart, instanceChart } from '@/services/chart/index'; +import { insertModerationLog } from '@/services/insert-moderation-log'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/send-email.ts b/src/server/api/endpoints/admin/send-email.ts index c0e77e162..6f67b7854 100644 --- a/src/server/api/endpoints/admin/send-email.ts +++ b/src/server/api/endpoints/admin/send-email.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { sendEmail } from '../../../../services/send-email'; +import { sendEmail } from '@/services/send-email'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/show-moderation-logs.ts b/src/server/api/endpoints/admin/show-moderation-logs.ts index cfceab946..e9509568d 100644 --- a/src/server/api/endpoints/admin/show-moderation-logs.ts +++ b/src/server/api/endpoints/admin/show-moderation-logs.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { ModerationLogs } from '../../../../models'; +import { ModerationLogs } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/admin/show-user.ts b/src/server/api/endpoints/admin/show-user.ts index b1132ac20..963c12325 100644 --- a/src/server/api/endpoints/admin/show-user.ts +++ b/src/server/api/endpoints/admin/show-user.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { Users } from '../../../../models'; +import { Users } from '@/models/index'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/show-users.ts b/src/server/api/endpoints/admin/show-users.ts index 7ea0e0e86..20b63e7be 100644 --- a/src/server/api/endpoints/admin/show-users.ts +++ b/src/server/api/endpoints/admin/show-users.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { Users } from '../../../../models'; +import { Users } from '@/models/index'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/silence-user.ts b/src/server/api/endpoints/admin/silence-user.ts index 73f9d03b7..9bfed2310 100644 --- a/src/server/api/endpoints/admin/silence-user.ts +++ b/src/server/api/endpoints/admin/silence-user.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { Users } from '../../../../models'; -import { insertModerationLog } from '../../../../services/insert-moderation-log'; +import { Users } from '@/models/index'; +import { insertModerationLog } from '@/services/insert-moderation-log'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/suspend-user.ts b/src/server/api/endpoints/admin/suspend-user.ts index 912d6a516..364f258ce 100644 --- a/src/server/api/endpoints/admin/suspend-user.ts +++ b/src/server/api/endpoints/admin/suspend-user.ts @@ -1,11 +1,11 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import deleteFollowing from '../../../../services/following/delete'; -import { Users, Followings, Notifications } from '../../../../models'; -import { User } from '../../../../models/entities/user'; -import { insertModerationLog } from '../../../../services/insert-moderation-log'; -import { doPostSuspend } from '../../../../services/suspend-user'; +import deleteFollowing from '@/services/following/delete'; +import { Users, Followings, Notifications } from '@/models/index'; +import { User } from '@/models/entities/user'; +import { insertModerationLog } from '@/services/insert-moderation-log'; +import { doPostSuspend } from '@/services/suspend-user'; import { publishUserEvent } from '@/services/stream'; export const meta = { diff --git a/src/server/api/endpoints/admin/unsilence-user.ts b/src/server/api/endpoints/admin/unsilence-user.ts index 6083d87af..9994fbf46 100644 --- a/src/server/api/endpoints/admin/unsilence-user.ts +++ b/src/server/api/endpoints/admin/unsilence-user.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { Users } from '../../../../models'; -import { insertModerationLog } from '../../../../services/insert-moderation-log'; +import { Users } from '@/models/index'; +import { insertModerationLog } from '@/services/insert-moderation-log'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/unsuspend-user.ts b/src/server/api/endpoints/admin/unsuspend-user.ts index 6d015b51a..ab4c2d3df 100644 --- a/src/server/api/endpoints/admin/unsuspend-user.ts +++ b/src/server/api/endpoints/admin/unsuspend-user.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { Users } from '../../../../models'; -import { insertModerationLog } from '../../../../services/insert-moderation-log'; -import { doPostUnsuspend } from '../../../../services/unsuspend-user'; +import { Users } from '@/models/index'; +import { insertModerationLog } from '@/services/insert-moderation-log'; +import { doPostUnsuspend } from '@/services/unsuspend-user'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/admin/update-meta.ts b/src/server/api/endpoints/admin/update-meta.ts index 573f22822..5962dba98 100644 --- a/src/server/api/endpoints/admin/update-meta.ts +++ b/src/server/api/endpoints/admin/update-meta.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import define from '../../define'; import { getConnection } from 'typeorm'; -import { Meta } from '../../../../models/entities/meta'; -import { insertModerationLog } from '../../../../services/insert-moderation-log'; +import { Meta } from '@/models/entities/meta'; +import { insertModerationLog } from '@/services/insert-moderation-log'; import { DB_MAX_NOTE_TEXT_LENGTH } from '@/misc/hard-limits'; import { ID } from '@/misc/cafy-id'; diff --git a/src/server/api/endpoints/admin/vacuum.ts b/src/server/api/endpoints/admin/vacuum.ts index e041e6543..9a80d88c4 100644 --- a/src/server/api/endpoints/admin/vacuum.ts +++ b/src/server/api/endpoints/admin/vacuum.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; import { getConnection } from 'typeorm'; -import { insertModerationLog } from '../../../../services/insert-moderation-log'; +import { insertModerationLog } from '@/services/insert-moderation-log'; export const meta = { tags: ['admin'], diff --git a/src/server/api/endpoints/announcements.ts b/src/server/api/endpoints/announcements.ts index 124682909..a67737b2f 100644 --- a/src/server/api/endpoints/announcements.ts +++ b/src/server/api/endpoints/announcements.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../define'; -import { Announcements, AnnouncementReads } from '../../../models'; +import { Announcements, AnnouncementReads } from '@/models/index'; import { makePaginationQuery } from '../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/antennas/create.ts b/src/server/api/endpoints/antennas/create.ts index bff3c09f1..4bdae8cc3 100644 --- a/src/server/api/endpoints/antennas/create.ts +++ b/src/server/api/endpoints/antennas/create.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; import define from '../../define'; import { genId } from '@/misc/gen-id'; -import { Antennas, UserLists, UserGroupJoinings } from '../../../../models'; +import { Antennas, UserLists, UserGroupJoinings } from '@/models/index'; import { ID } from '@/misc/cafy-id'; import { ApiError } from '../../error'; -import { publishInternalEvent } from '../../../../services/stream'; +import { publishInternalEvent } from '@/services/stream'; export const meta = { tags: ['antennas'], diff --git a/src/server/api/endpoints/antennas/delete.ts b/src/server/api/endpoints/antennas/delete.ts index 10a212897..1cd136183 100644 --- a/src/server/api/endpoints/antennas/delete.ts +++ b/src/server/api/endpoints/antennas/delete.ts @@ -2,8 +2,8 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { Antennas } from '../../../../models'; -import { publishInternalEvent } from '../../../../services/stream'; +import { Antennas } from '@/models/index'; +import { publishInternalEvent } from '@/services/stream'; export const meta = { tags: ['antennas'], diff --git a/src/server/api/endpoints/antennas/list.ts b/src/server/api/endpoints/antennas/list.ts index 6ae3c0cbb..8baae8435 100644 --- a/src/server/api/endpoints/antennas/list.ts +++ b/src/server/api/endpoints/antennas/list.ts @@ -1,5 +1,5 @@ import define from '../../define'; -import { Antennas } from '../../../../models'; +import { Antennas } from '@/models/index'; export const meta = { tags: ['antennas', 'account'], diff --git a/src/server/api/endpoints/antennas/notes.ts b/src/server/api/endpoints/antennas/notes.ts index aadb4261e..3c8a4fbda 100644 --- a/src/server/api/endpoints/antennas/notes.ts +++ b/src/server/api/endpoints/antennas/notes.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { Antennas, Notes, AntennaNotes } from '../../../../models'; +import { Antennas, Notes, AntennaNotes } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { generateVisibilityQuery } from '../../common/generate-visibility-query'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; diff --git a/src/server/api/endpoints/antennas/show.ts b/src/server/api/endpoints/antennas/show.ts index 36045e47a..3cdf4dcb6 100644 --- a/src/server/api/endpoints/antennas/show.ts +++ b/src/server/api/endpoints/antennas/show.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { Antennas } from '../../../../models'; +import { Antennas } from '@/models/index'; export const meta = { tags: ['antennas', 'account'], diff --git a/src/server/api/endpoints/antennas/update.ts b/src/server/api/endpoints/antennas/update.ts index 9194c1479..ff13e89bc 100644 --- a/src/server/api/endpoints/antennas/update.ts +++ b/src/server/api/endpoints/antennas/update.ts @@ -2,8 +2,8 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { Antennas, UserLists, UserGroupJoinings } from '../../../../models'; -import { publishInternalEvent } from '../../../../services/stream'; +import { Antennas, UserLists, UserGroupJoinings } from '@/models/index'; +import { publishInternalEvent } from '@/services/stream'; export const meta = { tags: ['antennas'], diff --git a/src/server/api/endpoints/ap/get.ts b/src/server/api/endpoints/ap/get.ts index f2b4c2408..2cffce1f1 100644 --- a/src/server/api/endpoints/ap/get.ts +++ b/src/server/api/endpoints/ap/get.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import Resolver from '../../../../remote/activitypub/resolver'; +import Resolver from '@/remote/activitypub/resolver'; import { ApiError } from '../../error'; export const meta = { diff --git a/src/server/api/endpoints/ap/show.ts b/src/server/api/endpoints/ap/show.ts index 7f61055bf..aa0dae070 100644 --- a/src/server/api/endpoints/ap/show.ts +++ b/src/server/api/endpoints/ap/show.ts @@ -1,16 +1,16 @@ import $ from 'cafy'; import define from '../../define'; -import config from '@/config'; -import { createPerson } from '../../../../remote/activitypub/models/person'; -import { createNote } from '../../../../remote/activitypub/models/note'; -import Resolver from '../../../../remote/activitypub/resolver'; +import config from '@/config/index'; +import { createPerson } from '@/remote/activitypub/models/person'; +import { createNote } from '@/remote/activitypub/models/note'; +import Resolver from '@/remote/activitypub/resolver'; import { ApiError } from '../../error'; import { extractDbHost } from '@/misc/convert-host'; -import { Users, Notes } from '../../../../models'; -import { Note } from '../../../../models/entities/note'; -import { User } from '../../../../models/entities/user'; +import { Users, Notes } from '@/models/index'; +import { Note } from '@/models/entities/note'; +import { User } from '@/models/entities/user'; import { fetchMeta } from '@/misc/fetch-meta'; -import { isActor, isPost, getApId } from '../../../../remote/activitypub/type'; +import { isActor, isPost, getApId } from '@/remote/activitypub/type'; export const meta = { tags: ['federation'], diff --git a/src/server/api/endpoints/app/create.ts b/src/server/api/endpoints/app/create.ts index 500567bf2..c2ce943dc 100644 --- a/src/server/api/endpoints/app/create.ts +++ b/src/server/api/endpoints/app/create.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import define from '../../define'; -import { Apps } from '../../../../models'; +import { Apps } from '@/models/index'; import { genId } from '@/misc/gen-id'; -import { unique } from '../../../../prelude/array'; +import { unique } from '@/prelude/array'; import { secureRndstr } from '@/misc/secure-rndstr'; export const meta = { diff --git a/src/server/api/endpoints/app/show.ts b/src/server/api/endpoints/app/show.ts index 65f8c7798..27f12eb44 100644 --- a/src/server/api/endpoints/app/show.ts +++ b/src/server/api/endpoints/app/show.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { Apps } from '../../../../models'; +import { Apps } from '@/models/index'; export const meta = { tags: ['app'], diff --git a/src/server/api/endpoints/auth/accept.ts b/src/server/api/endpoints/auth/accept.ts index ee0d0421c..1d1d8ac22 100644 --- a/src/server/api/endpoints/auth/accept.ts +++ b/src/server/api/endpoints/auth/accept.ts @@ -2,7 +2,7 @@ import * as crypto from 'crypto'; import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; -import { AuthSessions, AccessTokens, Apps } from '../../../../models'; +import { AuthSessions, AccessTokens, Apps } from '@/models/index'; import { genId } from '@/misc/gen-id'; import { secureRndstr } from '@/misc/secure-rndstr'; diff --git a/src/server/api/endpoints/auth/session/generate.ts b/src/server/api/endpoints/auth/session/generate.ts index 42f9e25c7..859cf52ed 100644 --- a/src/server/api/endpoints/auth/session/generate.ts +++ b/src/server/api/endpoints/auth/session/generate.ts @@ -1,9 +1,9 @@ import { v4 as uuid } from 'uuid'; import $ from 'cafy'; -import config from '@/config'; +import config from '@/config/index'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { Apps, AuthSessions } from '../../../../../models'; +import { Apps, AuthSessions } from '@/models/index'; import { genId } from '@/misc/gen-id'; export const meta = { diff --git a/src/server/api/endpoints/auth/session/show.ts b/src/server/api/endpoints/auth/session/show.ts index fd20884c0..23f1a56a3 100644 --- a/src/server/api/endpoints/auth/session/show.ts +++ b/src/server/api/endpoints/auth/session/show.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { AuthSessions } from '../../../../../models'; +import { AuthSessions } from '@/models/index'; export const meta = { tags: ['auth'], diff --git a/src/server/api/endpoints/auth/session/userkey.ts b/src/server/api/endpoints/auth/session/userkey.ts index 7059aacbe..72201cb20 100644 --- a/src/server/api/endpoints/auth/session/userkey.ts +++ b/src/server/api/endpoints/auth/session/userkey.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { Apps, AuthSessions, AccessTokens, Users } from '../../../../../models'; +import { Apps, AuthSessions, AccessTokens, Users } from '@/models/index'; export const meta = { tags: ['auth'], diff --git a/src/server/api/endpoints/blocking/create.ts b/src/server/api/endpoints/blocking/create.ts index dd976a7bf..1bf5cf374 100644 --- a/src/server/api/endpoints/blocking/create.ts +++ b/src/server/api/endpoints/blocking/create.ts @@ -1,11 +1,11 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import * as ms from 'ms'; -import create from '../../../../services/blocking/create'; +import create from '@/services/blocking/create'; import define from '../../define'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; -import { Blockings, NoteWatchings, Users } from '../../../../models'; +import { Blockings, NoteWatchings, Users } from '@/models/index'; export const meta = { tags: ['account'], diff --git a/src/server/api/endpoints/blocking/delete.ts b/src/server/api/endpoints/blocking/delete.ts index c69c8b14a..a66e46fdf 100644 --- a/src/server/api/endpoints/blocking/delete.ts +++ b/src/server/api/endpoints/blocking/delete.ts @@ -1,11 +1,11 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import * as ms from 'ms'; -import deleteBlocking from '../../../../services/blocking/delete'; +import deleteBlocking from '@/services/blocking/delete'; import define from '../../define'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; -import { Blockings, Users } from '../../../../models'; +import { Blockings, Users } from '@/models/index'; export const meta = { tags: ['account'], diff --git a/src/server/api/endpoints/blocking/list.ts b/src/server/api/endpoints/blocking/list.ts index db849338a..fe25fdaba 100644 --- a/src/server/api/endpoints/blocking/list.ts +++ b/src/server/api/endpoints/blocking/list.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { Blockings } from '../../../../models'; +import { Blockings } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/channels/create.ts b/src/server/api/endpoints/channels/create.ts index c6dc68faf..0cedfd6c6 100644 --- a/src/server/api/endpoints/channels/create.ts +++ b/src/server/api/endpoints/channels/create.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; -import { Channels, DriveFiles } from '../../../../models'; -import { Channel } from '../../../../models/entities/channel'; +import { Channels, DriveFiles } from '@/models/index'; +import { Channel } from '@/models/entities/channel'; import { genId } from '@/misc/gen-id'; import { ID } from '@/misc/cafy-id'; diff --git a/src/server/api/endpoints/channels/featured.ts b/src/server/api/endpoints/channels/featured.ts index abb0a19e2..dc1f49f96 100644 --- a/src/server/api/endpoints/channels/featured.ts +++ b/src/server/api/endpoints/channels/featured.ts @@ -1,5 +1,5 @@ import define from '../../define'; -import { Channels } from '../../../../models'; +import { Channels } from '@/models/index'; export const meta = { tags: ['channels'], diff --git a/src/server/api/endpoints/channels/follow.ts b/src/server/api/endpoints/channels/follow.ts index b264f7451..d4664e699 100644 --- a/src/server/api/endpoints/channels/follow.ts +++ b/src/server/api/endpoints/channels/follow.ts @@ -2,9 +2,9 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { Channels, ChannelFollowings } from '../../../../models'; +import { Channels, ChannelFollowings } from '@/models/index'; import { genId } from '@/misc/gen-id'; -import { publishUserEvent } from '../../../../services/stream'; +import { publishUserEvent } from '@/services/stream'; export const meta = { tags: ['channels'], diff --git a/src/server/api/endpoints/channels/followed.ts b/src/server/api/endpoints/channels/followed.ts index 7f0cfe494..be239a01d 100644 --- a/src/server/api/endpoints/channels/followed.ts +++ b/src/server/api/endpoints/channels/followed.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { Channels, ChannelFollowings } from '../../../../models'; +import { Channels, ChannelFollowings } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/channels/owned.ts b/src/server/api/endpoints/channels/owned.ts index 4f538f651..4a2e9db17 100644 --- a/src/server/api/endpoints/channels/owned.ts +++ b/src/server/api/endpoints/channels/owned.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { Channels } from '../../../../models'; +import { Channels } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/channels/show.ts b/src/server/api/endpoints/channels/show.ts index d5f182da1..803ce6363 100644 --- a/src/server/api/endpoints/channels/show.ts +++ b/src/server/api/endpoints/channels/show.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { Channels } from '../../../../models'; +import { Channels } from '@/models/index'; export const meta = { tags: ['channels'], diff --git a/src/server/api/endpoints/channels/timeline.ts b/src/server/api/endpoints/channels/timeline.ts index 9e5ecdeeb..0ed057a11 100644 --- a/src/server/api/endpoints/channels/timeline.ts +++ b/src/server/api/endpoints/channels/timeline.ts @@ -2,9 +2,9 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { Notes, Channels } from '../../../../models'; +import { Notes, Channels } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; -import { activeUsersChart } from '../../../../services/chart'; +import { activeUsersChart } from '@/services/chart/index'; export const meta = { tags: ['notes', 'channels'], diff --git a/src/server/api/endpoints/channels/unfollow.ts b/src/server/api/endpoints/channels/unfollow.ts index 116af5033..700f8e93b 100644 --- a/src/server/api/endpoints/channels/unfollow.ts +++ b/src/server/api/endpoints/channels/unfollow.ts @@ -2,8 +2,8 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { Channels, ChannelFollowings } from '../../../../models'; -import { publishUserEvent } from '../../../../services/stream'; +import { Channels, ChannelFollowings } from '@/models/index'; +import { publishUserEvent } from '@/services/stream'; export const meta = { tags: ['channels'], diff --git a/src/server/api/endpoints/channels/update.ts b/src/server/api/endpoints/channels/update.ts index 1495297ee..9b447bd04 100644 --- a/src/server/api/endpoints/channels/update.ts +++ b/src/server/api/endpoints/channels/update.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { Channels, DriveFiles } from '../../../../models'; +import { Channels, DriveFiles } from '@/models/index'; export const meta = { tags: ['channels'], diff --git a/src/server/api/endpoints/charts/active-users.ts b/src/server/api/endpoints/charts/active-users.ts index fb177e5c9..c4878f7d6 100644 --- a/src/server/api/endpoints/charts/active-users.ts +++ b/src/server/api/endpoints/charts/active-users.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; -import { convertLog } from '../../../../services/chart/core'; -import { activeUsersChart } from '../../../../services/chart'; +import { convertLog } from '@/services/chart/core'; +import { activeUsersChart } from '@/services/chart/index'; export const meta = { tags: ['charts', 'users'], diff --git a/src/server/api/endpoints/charts/drive.ts b/src/server/api/endpoints/charts/drive.ts index ba6556c59..07bff82cf 100644 --- a/src/server/api/endpoints/charts/drive.ts +++ b/src/server/api/endpoints/charts/drive.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; -import { convertLog } from '../../../../services/chart/core'; -import { driveChart } from '../../../../services/chart'; +import { convertLog } from '@/services/chart/core'; +import { driveChart } from '@/services/chart/index'; export const meta = { tags: ['charts', 'drive'], diff --git a/src/server/api/endpoints/charts/federation.ts b/src/server/api/endpoints/charts/federation.ts index 46eb87ac0..9575f9a7b 100644 --- a/src/server/api/endpoints/charts/federation.ts +++ b/src/server/api/endpoints/charts/federation.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; -import { convertLog } from '../../../../services/chart/core'; -import { federationChart } from '../../../../services/chart'; +import { convertLog } from '@/services/chart/core'; +import { federationChart } from '@/services/chart/index'; export const meta = { tags: ['charts'], diff --git a/src/server/api/endpoints/charts/hashtag.ts b/src/server/api/endpoints/charts/hashtag.ts index 5c2875ddd..53dc61e51 100644 --- a/src/server/api/endpoints/charts/hashtag.ts +++ b/src/server/api/endpoints/charts/hashtag.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; -import { convertLog } from '../../../../services/chart/core'; -import { hashtagChart } from '../../../../services/chart'; +import { convertLog } from '@/services/chart/core'; +import { hashtagChart } from '@/services/chart/index'; export const meta = { tags: ['charts', 'hashtags'], diff --git a/src/server/api/endpoints/charts/instance.ts b/src/server/api/endpoints/charts/instance.ts index 9375992d2..183502318 100644 --- a/src/server/api/endpoints/charts/instance.ts +++ b/src/server/api/endpoints/charts/instance.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; -import { convertLog } from '../../../../services/chart/core'; -import { instanceChart } from '../../../../services/chart'; +import { convertLog } from '@/services/chart/core'; +import { instanceChart } from '@/services/chart/index'; export const meta = { tags: ['charts'], diff --git a/src/server/api/endpoints/charts/network.ts b/src/server/api/endpoints/charts/network.ts index d1fd40423..b524df93b 100644 --- a/src/server/api/endpoints/charts/network.ts +++ b/src/server/api/endpoints/charts/network.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; -import { convertLog } from '../../../../services/chart/core'; -import { networkChart } from '../../../../services/chart'; +import { convertLog } from '@/services/chart/core'; +import { networkChart } from '@/services/chart/index'; export const meta = { tags: ['charts'], diff --git a/src/server/api/endpoints/charts/notes.ts b/src/server/api/endpoints/charts/notes.ts index 7141fe3b0..676f30293 100644 --- a/src/server/api/endpoints/charts/notes.ts +++ b/src/server/api/endpoints/charts/notes.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; -import { convertLog } from '../../../../services/chart/core'; -import { notesChart } from '../../../../services/chart'; +import { convertLog } from '@/services/chart/core'; +import { notesChart } from '@/services/chart/index'; export const meta = { tags: ['charts', 'notes'], diff --git a/src/server/api/endpoints/charts/user/drive.ts b/src/server/api/endpoints/charts/user/drive.ts index bacb022c8..f2770e2df 100644 --- a/src/server/api/endpoints/charts/user/drive.ts +++ b/src/server/api/endpoints/charts/user/drive.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import define from '../../../define'; import { ID } from '@/misc/cafy-id'; -import { convertLog } from '../../../../../services/chart/core'; -import { perUserDriveChart } from '../../../../../services/chart'; +import { convertLog } from '@/services/chart/core'; +import { perUserDriveChart } from '@/services/chart/index'; export const meta = { tags: ['charts', 'drive', 'users'], diff --git a/src/server/api/endpoints/charts/user/following.ts b/src/server/api/endpoints/charts/user/following.ts index ce41c231b..8c97b63e8 100644 --- a/src/server/api/endpoints/charts/user/following.ts +++ b/src/server/api/endpoints/charts/user/following.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import define from '../../../define'; import { ID } from '@/misc/cafy-id'; -import { convertLog } from '../../../../../services/chart/core'; -import { perUserFollowingChart } from '../../../../../services/chart'; +import { convertLog } from '@/services/chart/core'; +import { perUserFollowingChart } from '@/services/chart/index'; export const meta = { tags: ['charts', 'users', 'following'], diff --git a/src/server/api/endpoints/charts/user/notes.ts b/src/server/api/endpoints/charts/user/notes.ts index 470b7274b..0d5f5a8b6 100644 --- a/src/server/api/endpoints/charts/user/notes.ts +++ b/src/server/api/endpoints/charts/user/notes.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import define from '../../../define'; import { ID } from '@/misc/cafy-id'; -import { convertLog } from '../../../../../services/chart/core'; -import { perUserNotesChart } from '../../../../../services/chart'; +import { convertLog } from '@/services/chart/core'; +import { perUserNotesChart } from '@/services/chart/index'; export const meta = { tags: ['charts', 'users', 'notes'], diff --git a/src/server/api/endpoints/charts/user/reactions.ts b/src/server/api/endpoints/charts/user/reactions.ts index 4ebe4623c..3cabe40d5 100644 --- a/src/server/api/endpoints/charts/user/reactions.ts +++ b/src/server/api/endpoints/charts/user/reactions.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import define from '../../../define'; import { ID } from '@/misc/cafy-id'; -import { convertLog } from '../../../../../services/chart/core'; -import { perUserReactionsChart } from '../../../../../services/chart'; +import { convertLog } from '@/services/chart/core'; +import { perUserReactionsChart } from '@/services/chart/index'; export const meta = { tags: ['charts', 'users', 'reactions'], diff --git a/src/server/api/endpoints/charts/users.ts b/src/server/api/endpoints/charts/users.ts index 4246a18e5..deac89b59 100644 --- a/src/server/api/endpoints/charts/users.ts +++ b/src/server/api/endpoints/charts/users.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; -import { convertLog } from '../../../../services/chart/core'; -import { usersChart } from '../../../../services/chart'; +import { convertLog } from '@/services/chart/core'; +import { usersChart } from '@/services/chart/index'; export const meta = { tags: ['charts', 'users'], diff --git a/src/server/api/endpoints/clips/add-note.ts b/src/server/api/endpoints/clips/add-note.ts index 3d72def4f..79d7b8add 100644 --- a/src/server/api/endpoints/clips/add-note.ts +++ b/src/server/api/endpoints/clips/add-note.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { ClipNotes, Clips } from '../../../../models'; +import { ClipNotes, Clips } from '@/models/index'; import { ApiError } from '../../error'; import { genId } from '@/misc/gen-id'; import { getNote } from '../../common/getters'; diff --git a/src/server/api/endpoints/clips/create.ts b/src/server/api/endpoints/clips/create.ts index fb2a77fe5..02d277370 100644 --- a/src/server/api/endpoints/clips/create.ts +++ b/src/server/api/endpoints/clips/create.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; import { genId } from '@/misc/gen-id'; -import { Clips } from '../../../../models'; +import { Clips } from '@/models/index'; export const meta = { tags: ['clips'], diff --git a/src/server/api/endpoints/clips/delete.ts b/src/server/api/endpoints/clips/delete.ts index 20b2addb7..ca489af3b 100644 --- a/src/server/api/endpoints/clips/delete.ts +++ b/src/server/api/endpoints/clips/delete.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { Clips } from '../../../../models'; +import { Clips } from '@/models/index'; export const meta = { tags: ['clips'], diff --git a/src/server/api/endpoints/clips/list.ts b/src/server/api/endpoints/clips/list.ts index 6b90b114d..1f6db9b97 100644 --- a/src/server/api/endpoints/clips/list.ts +++ b/src/server/api/endpoints/clips/list.ts @@ -1,5 +1,5 @@ import define from '../../define'; -import { Clips } from '../../../../models'; +import { Clips } from '@/models/index'; export const meta = { tags: ['clips', 'account'], diff --git a/src/server/api/endpoints/clips/notes.ts b/src/server/api/endpoints/clips/notes.ts index 4bece5a2c..5a9fed52f 100644 --- a/src/server/api/endpoints/clips/notes.ts +++ b/src/server/api/endpoints/clips/notes.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { ClipNotes, Clips, Notes } from '../../../../models'; +import { ClipNotes, Clips, Notes } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { generateVisibilityQuery } from '../../common/generate-visibility-query'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; diff --git a/src/server/api/endpoints/clips/show.ts b/src/server/api/endpoints/clips/show.ts index 43d271912..8f245cd18 100644 --- a/src/server/api/endpoints/clips/show.ts +++ b/src/server/api/endpoints/clips/show.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { Clips } from '../../../../models'; +import { Clips } from '@/models/index'; export const meta = { tags: ['clips', 'account'], diff --git a/src/server/api/endpoints/clips/update.ts b/src/server/api/endpoints/clips/update.ts index a368174e7..7f645560b 100644 --- a/src/server/api/endpoints/clips/update.ts +++ b/src/server/api/endpoints/clips/update.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { Clips } from '../../../../models'; +import { Clips } from '@/models/index'; export const meta = { tags: ['clips'], diff --git a/src/server/api/endpoints/drive.ts b/src/server/api/endpoints/drive.ts index 2feb72ae1..2974ccfab 100644 --- a/src/server/api/endpoints/drive.ts +++ b/src/server/api/endpoints/drive.ts @@ -1,6 +1,6 @@ import define from '../define'; import { fetchMeta } from '@/misc/fetch-meta'; -import { DriveFiles } from '../../../models'; +import { DriveFiles } from '@/models/index'; export const meta = { tags: ['drive', 'account'], diff --git a/src/server/api/endpoints/drive/files.ts b/src/server/api/endpoints/drive/files.ts index 1e821b008..95435e1e4 100644 --- a/src/server/api/endpoints/drive/files.ts +++ b/src/server/api/endpoints/drive/files.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { DriveFiles } from '../../../../models'; +import { DriveFiles } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/drive/files/attached-notes.ts b/src/server/api/endpoints/drive/files/attached-notes.ts index dafbf30fb..eec7d7877 100644 --- a/src/server/api/endpoints/drive/files/attached-notes.ts +++ b/src/server/api/endpoints/drive/files/attached-notes.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { DriveFiles, Notes } from '../../../../../models'; +import { DriveFiles, Notes } from '@/models/index'; export const meta = { tags: ['drive', 'notes'], diff --git a/src/server/api/endpoints/drive/files/check-existence.ts b/src/server/api/endpoints/drive/files/check-existence.ts index b20be4407..2c3607842 100644 --- a/src/server/api/endpoints/drive/files/check-existence.ts +++ b/src/server/api/endpoints/drive/files/check-existence.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { DriveFiles } from '../../../../../models'; +import { DriveFiles } from '@/models/index'; export const meta = { tags: ['drive'], diff --git a/src/server/api/endpoints/drive/files/create.ts b/src/server/api/endpoints/drive/files/create.ts index a8f6b9201..2abc104e6 100644 --- a/src/server/api/endpoints/drive/files/create.ts +++ b/src/server/api/endpoints/drive/files/create.ts @@ -1,11 +1,11 @@ import * as ms from 'ms'; import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import create from '../../../../../services/drive/add-file'; +import create from '@/services/drive/add-file'; import define from '../../../define'; import { apiLogger } from '../../../logger'; import { ApiError } from '../../../error'; -import { DriveFiles } from '../../../../../models'; +import { DriveFiles } from '@/models/index'; export const meta = { tags: ['drive'], diff --git a/src/server/api/endpoints/drive/files/delete.ts b/src/server/api/endpoints/drive/files/delete.ts index 520078948..038325694 100644 --- a/src/server/api/endpoints/drive/files/delete.ts +++ b/src/server/api/endpoints/drive/files/delete.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import { deleteFile } from '../../../../../services/drive/delete-file'; -import { publishDriveStream } from '../../../../../services/stream'; +import { deleteFile } from '@/services/drive/delete-file'; +import { publishDriveStream } from '@/services/stream'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { DriveFiles } from '../../../../../models'; +import { DriveFiles } from '@/models/index'; export const meta = { tags: ['drive'], diff --git a/src/server/api/endpoints/drive/files/find-by-hash.ts b/src/server/api/endpoints/drive/files/find-by-hash.ts index ef0077392..5fea7bbbb 100644 --- a/src/server/api/endpoints/drive/files/find-by-hash.ts +++ b/src/server/api/endpoints/drive/files/find-by-hash.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { DriveFiles } from '../../../../../models'; +import { DriveFiles } from '@/models/index'; export const meta = { tags: ['drive'], diff --git a/src/server/api/endpoints/drive/files/find.ts b/src/server/api/endpoints/drive/files/find.ts index b7f257145..dd419f4c0 100644 --- a/src/server/api/endpoints/drive/files/find.ts +++ b/src/server/api/endpoints/drive/files/find.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; -import { DriveFiles } from '../../../../../models'; +import { DriveFiles } from '@/models/index'; export const meta = { requireCredential: true as const, diff --git a/src/server/api/endpoints/drive/files/show.ts b/src/server/api/endpoints/drive/files/show.ts index 33e88fa81..a96ebaa12 100644 --- a/src/server/api/endpoints/drive/files/show.ts +++ b/src/server/api/endpoints/drive/files/show.ts @@ -2,8 +2,8 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { DriveFile } from '../../../../../models/entities/drive-file'; -import { DriveFiles } from '../../../../../models'; +import { DriveFile } from '@/models/entities/drive-file'; +import { DriveFiles } from '@/models/index'; export const meta = { tags: ['drive'], diff --git a/src/server/api/endpoints/drive/files/update.ts b/src/server/api/endpoints/drive/files/update.ts index 29b4ba7a4..1ef445625 100644 --- a/src/server/api/endpoints/drive/files/update.ts +++ b/src/server/api/endpoints/drive/files/update.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import { publishDriveStream } from '../../../../../services/stream'; +import { publishDriveStream } from '@/services/stream'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { DriveFiles, DriveFolders } from '../../../../../models'; +import { DriveFiles, DriveFolders } from '@/models/index'; export const meta = { tags: ['drive'], diff --git a/src/server/api/endpoints/drive/files/upload-from-url.ts b/src/server/api/endpoints/drive/files/upload-from-url.ts index 8dfc86e66..f37f316ef 100644 --- a/src/server/api/endpoints/drive/files/upload-from-url.ts +++ b/src/server/api/endpoints/drive/files/upload-from-url.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import * as ms from 'ms'; -import uploadFromUrl from '../../../../../services/drive/upload-from-url'; +import uploadFromUrl from '@/services/drive/upload-from-url'; import define from '../../../define'; -import { DriveFiles } from '../../../../../models'; -import { publishMainStream } from '../../../../../services/stream'; +import { DriveFiles } from '@/models/index'; +import { publishMainStream } from '@/services/stream'; export const meta = { tags: ['drive'], diff --git a/src/server/api/endpoints/drive/folders.ts b/src/server/api/endpoints/drive/folders.ts index c446d546c..6f16878b1 100644 --- a/src/server/api/endpoints/drive/folders.ts +++ b/src/server/api/endpoints/drive/folders.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { DriveFolders } from '../../../../models'; +import { DriveFolders } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/drive/folders/create.ts b/src/server/api/endpoints/drive/folders/create.ts index e39f8f2ce..80f96bd64 100644 --- a/src/server/api/endpoints/drive/folders/create.ts +++ b/src/server/api/endpoints/drive/folders/create.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import { publishDriveStream } from '../../../../../services/stream'; +import { publishDriveStream } from '@/services/stream'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { DriveFolders } from '../../../../../models'; +import { DriveFolders } from '@/models/index'; import { genId } from '@/misc/gen-id'; export const meta = { diff --git a/src/server/api/endpoints/drive/folders/delete.ts b/src/server/api/endpoints/drive/folders/delete.ts index 253563a3e..38b4aef10 100644 --- a/src/server/api/endpoints/drive/folders/delete.ts +++ b/src/server/api/endpoints/drive/folders/delete.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; -import { publishDriveStream } from '../../../../../services/stream'; +import { publishDriveStream } from '@/services/stream'; import { ApiError } from '../../../error'; -import { DriveFolders, DriveFiles } from '../../../../../models'; +import { DriveFolders, DriveFiles } from '@/models/index'; export const meta = { tags: ['drive'], diff --git a/src/server/api/endpoints/drive/folders/find.ts b/src/server/api/endpoints/drive/folders/find.ts index c8e7639e6..a6c5a4998 100644 --- a/src/server/api/endpoints/drive/folders/find.ts +++ b/src/server/api/endpoints/drive/folders/find.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; -import { DriveFolders } from '../../../../../models'; +import { DriveFolders } from '@/models/index'; export const meta = { tags: ['drive'], diff --git a/src/server/api/endpoints/drive/folders/show.ts b/src/server/api/endpoints/drive/folders/show.ts index fe1326da7..e907a24f0 100644 --- a/src/server/api/endpoints/drive/folders/show.ts +++ b/src/server/api/endpoints/drive/folders/show.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { DriveFolders } from '../../../../../models'; +import { DriveFolders } from '@/models/index'; export const meta = { tags: ['drive'], diff --git a/src/server/api/endpoints/drive/folders/update.ts b/src/server/api/endpoints/drive/folders/update.ts index 9dfe33517..612252e6d 100644 --- a/src/server/api/endpoints/drive/folders/update.ts +++ b/src/server/api/endpoints/drive/folders/update.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import { publishDriveStream } from '../../../../../services/stream'; +import { publishDriveStream } from '@/services/stream'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { DriveFolders } from '../../../../../models'; +import { DriveFolders } from '@/models/index'; export const meta = { tags: ['drive'], diff --git a/src/server/api/endpoints/drive/stream.ts b/src/server/api/endpoints/drive/stream.ts index ca88acf5f..141e02f74 100644 --- a/src/server/api/endpoints/drive/stream.ts +++ b/src/server/api/endpoints/drive/stream.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { DriveFiles } from '../../../../models'; +import { DriveFiles } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/federation/dns.ts b/src/server/api/endpoints/federation/dns.ts index a188f46ac..7ba566301 100644 --- a/src/server/api/endpoints/federation/dns.ts +++ b/src/server/api/endpoints/federation/dns.ts @@ -1,7 +1,7 @@ import { promises as dns } from 'dns'; import $ from 'cafy'; import define from '../../define'; -import { Instances } from '../../../../models'; +import { Instances } from '@/models/index'; import { toPuny } from '@/misc/convert-host'; const resolver = new dns.Resolver(); diff --git a/src/server/api/endpoints/federation/followers.ts b/src/server/api/endpoints/federation/followers.ts index 727eada68..655e7b7b9 100644 --- a/src/server/api/endpoints/federation/followers.ts +++ b/src/server/api/endpoints/federation/followers.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { Followings } from '../../../../models'; +import { Followings } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/federation/following.ts b/src/server/api/endpoints/federation/following.ts index c6bc71a98..5b283581a 100644 --- a/src/server/api/endpoints/federation/following.ts +++ b/src/server/api/endpoints/federation/following.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { Followings } from '../../../../models'; +import { Followings } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/federation/instances.ts b/src/server/api/endpoints/federation/instances.ts index 29515f0eb..cf5e44ebd 100644 --- a/src/server/api/endpoints/federation/instances.ts +++ b/src/server/api/endpoints/federation/instances.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; -import config from '@/config'; +import config from '@/config/index'; import define from '../../define'; -import { Instances } from '../../../../models'; +import { Instances } from '@/models/index'; import { fetchMeta } from '@/misc/fetch-meta'; export const meta = { diff --git a/src/server/api/endpoints/federation/show-instance.ts b/src/server/api/endpoints/federation/show-instance.ts index 549d7340f..f8352aefb 100644 --- a/src/server/api/endpoints/federation/show-instance.ts +++ b/src/server/api/endpoints/federation/show-instance.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { Instances } from '../../../../models'; +import { Instances } from '@/models/index'; import { toPuny } from '@/misc/convert-host'; export const meta = { diff --git a/src/server/api/endpoints/federation/update-remote-user.ts b/src/server/api/endpoints/federation/update-remote-user.ts index c4a6db0dd..580c3cb3d 100644 --- a/src/server/api/endpoints/federation/update-remote-user.ts +++ b/src/server/api/endpoints/federation/update-remote-user.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { getRemoteUser } from '../../common/getters'; -import { updatePerson } from '../../../../remote/activitypub/models/person'; +import { updatePerson } from '@/remote/activitypub/models/person'; export const meta = { tags: ['federation'], diff --git a/src/server/api/endpoints/federation/users.ts b/src/server/api/endpoints/federation/users.ts index 77d9e2e07..0e35df3e1 100644 --- a/src/server/api/endpoints/federation/users.ts +++ b/src/server/api/endpoints/federation/users.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { Users } from '../../../../models'; +import { Users } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/following/create.ts b/src/server/api/endpoints/following/create.ts index e4f9a86d9..ba9ca1092 100644 --- a/src/server/api/endpoints/following/create.ts +++ b/src/server/api/endpoints/following/create.ts @@ -1,11 +1,11 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import * as ms from 'ms'; -import create from '../../../../services/following/create'; +import create from '@/services/following/create'; import define from '../../define'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; -import { Followings, Users } from '../../../../models'; +import { Followings, Users } from '@/models/index'; export const meta = { tags: ['following', 'users'], diff --git a/src/server/api/endpoints/following/delete.ts b/src/server/api/endpoints/following/delete.ts index e164cb25c..0b0158b86 100644 --- a/src/server/api/endpoints/following/delete.ts +++ b/src/server/api/endpoints/following/delete.ts @@ -1,11 +1,11 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import * as ms from 'ms'; -import deleteFollowing from '../../../../services/following/delete'; +import deleteFollowing from '@/services/following/delete'; import define from '../../define'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; -import { Followings, Users } from '../../../../models'; +import { Followings, Users } from '@/models/index'; export const meta = { tags: ['following', 'users'], diff --git a/src/server/api/endpoints/following/requests/accept.ts b/src/server/api/endpoints/following/requests/accept.ts index aa7085c53..af39ea1d9 100644 --- a/src/server/api/endpoints/following/requests/accept.ts +++ b/src/server/api/endpoints/following/requests/accept.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import acceptFollowRequest from '../../../../../services/following/requests/accept'; +import acceptFollowRequest from '@/services/following/requests/accept'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; diff --git a/src/server/api/endpoints/following/requests/cancel.ts b/src/server/api/endpoints/following/requests/cancel.ts index 09056f262..b69c9d2fe 100644 --- a/src/server/api/endpoints/following/requests/cancel.ts +++ b/src/server/api/endpoints/following/requests/cancel.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import cancelFollowRequest from '../../../../../services/following/requests/cancel'; +import cancelFollowRequest from '@/services/following/requests/cancel'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; -import { Users } from '../../../../../models'; +import { Users } from '@/models/index'; export const meta = { tags: ['following', 'account'], diff --git a/src/server/api/endpoints/following/requests/list.ts b/src/server/api/endpoints/following/requests/list.ts index bf3bfc68f..84440ccac 100644 --- a/src/server/api/endpoints/following/requests/list.ts +++ b/src/server/api/endpoints/following/requests/list.ts @@ -1,5 +1,5 @@ import define from '../../../define'; -import { FollowRequests } from '../../../../../models'; +import { FollowRequests } from '@/models/index'; export const meta = { tags: ['following', 'account'], diff --git a/src/server/api/endpoints/following/requests/reject.ts b/src/server/api/endpoints/following/requests/reject.ts index 1685a8613..620324361 100644 --- a/src/server/api/endpoints/following/requests/reject.ts +++ b/src/server/api/endpoints/following/requests/reject.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import rejectFollowRequest from '../../../../../services/following/requests/reject'; +import rejectFollowRequest from '@/services/following/requests/reject'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; diff --git a/src/server/api/endpoints/gallery/featured.ts b/src/server/api/endpoints/gallery/featured.ts index d09000cc7..30ef8cede 100644 --- a/src/server/api/endpoints/gallery/featured.ts +++ b/src/server/api/endpoints/gallery/featured.ts @@ -1,5 +1,5 @@ import define from '../../define'; -import { GalleryPosts } from '../../../../models'; +import { GalleryPosts } from '@/models/index'; export const meta = { tags: ['gallery'], diff --git a/src/server/api/endpoints/gallery/popular.ts b/src/server/api/endpoints/gallery/popular.ts index e240b14d2..18449b965 100644 --- a/src/server/api/endpoints/gallery/popular.ts +++ b/src/server/api/endpoints/gallery/popular.ts @@ -1,5 +1,5 @@ import define from '../../define'; -import { GalleryPosts } from '../../../../models'; +import { GalleryPosts } from '@/models/index'; export const meta = { tags: ['gallery'], diff --git a/src/server/api/endpoints/gallery/posts.ts b/src/server/api/endpoints/gallery/posts.ts index 656765d80..53d3236d2 100644 --- a/src/server/api/endpoints/gallery/posts.ts +++ b/src/server/api/endpoints/gallery/posts.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { makePaginationQuery } from '../../common/make-pagination-query'; -import { GalleryPosts } from '../../../../models'; +import { GalleryPosts } from '@/models/index'; export const meta = { tags: ['gallery'], diff --git a/src/server/api/endpoints/gallery/posts/create.ts b/src/server/api/endpoints/gallery/posts/create.ts index ed24a45f8..38b487e6e 100644 --- a/src/server/api/endpoints/gallery/posts/create.ts +++ b/src/server/api/endpoints/gallery/posts/create.ts @@ -2,9 +2,9 @@ import $ from 'cafy'; import * as ms from 'ms'; import define from '../../../define'; import { ID } from '../../../../../misc/cafy-id'; -import { DriveFiles, GalleryPosts } from '../../../../../models'; +import { DriveFiles, GalleryPosts } from '@/models/index'; import { genId } from '../../../../../misc/gen-id'; -import { GalleryPost } from '../../../../../models/entities/gallery-post'; +import { GalleryPost } from '@/models/entities/gallery-post'; import { ApiError } from '../../../error'; import { DriveFile } from '@/models/entities/drive-file'; diff --git a/src/server/api/endpoints/gallery/posts/delete.ts b/src/server/api/endpoints/gallery/posts/delete.ts index 8b54828b2..e5b7c07f2 100644 --- a/src/server/api/endpoints/gallery/posts/delete.ts +++ b/src/server/api/endpoints/gallery/posts/delete.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { GalleryPosts } from '../../../../../models'; +import { GalleryPosts } from '@/models/index'; import { ID } from '@/misc/cafy-id'; export const meta = { diff --git a/src/server/api/endpoints/gallery/posts/like.ts b/src/server/api/endpoints/gallery/posts/like.ts index 3bf37c13e..81a25c0ad 100644 --- a/src/server/api/endpoints/gallery/posts/like.ts +++ b/src/server/api/endpoints/gallery/posts/like.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { GalleryPosts, GalleryLikes } from '../../../../../models'; +import { GalleryPosts, GalleryLikes } from '@/models/index'; import { genId } from '@/misc/gen-id'; export const meta = { diff --git a/src/server/api/endpoints/gallery/posts/show.ts b/src/server/api/endpoints/gallery/posts/show.ts index 17628544b..93852a5f8 100644 --- a/src/server/api/endpoints/gallery/posts/show.ts +++ b/src/server/api/endpoints/gallery/posts/show.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { GalleryPosts } from '@/models'; +import { GalleryPosts } from '@/models/index'; export const meta = { tags: ['gallery'], diff --git a/src/server/api/endpoints/gallery/posts/unlike.ts b/src/server/api/endpoints/gallery/posts/unlike.ts index 155949ae3..0347cdf79 100644 --- a/src/server/api/endpoints/gallery/posts/unlike.ts +++ b/src/server/api/endpoints/gallery/posts/unlike.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { GalleryPosts, GalleryLikes } from '../../../../../models'; +import { GalleryPosts, GalleryLikes } from '@/models/index'; export const meta = { tags: ['gallery'], diff --git a/src/server/api/endpoints/gallery/posts/update.ts b/src/server/api/endpoints/gallery/posts/update.ts index d9176ea40..54eea130d 100644 --- a/src/server/api/endpoints/gallery/posts/update.ts +++ b/src/server/api/endpoints/gallery/posts/update.ts @@ -2,8 +2,8 @@ import $ from 'cafy'; import * as ms from 'ms'; import define from '../../../define'; import { ID } from '../../../../../misc/cafy-id'; -import { DriveFiles, GalleryPosts } from '../../../../../models'; -import { GalleryPost } from '../../../../../models/entities/gallery-post'; +import { DriveFiles, GalleryPosts } from '@/models/index'; +import { GalleryPost } from '@/models/entities/gallery-post'; import { ApiError } from '../../../error'; import { DriveFile } from '@/models/entities/drive-file'; diff --git a/src/server/api/endpoints/games/reversi/games.ts b/src/server/api/endpoints/games/reversi/games.ts index 6ac150ef2..4db9ecb69 100644 --- a/src/server/api/endpoints/games/reversi/games.ts +++ b/src/server/api/endpoints/games/reversi/games.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; -import { ReversiGames } from '../../../../../models'; +import { ReversiGames } from '@/models/index'; import { makePaginationQuery } from '../../../common/make-pagination-query'; import { Brackets } from 'typeorm'; diff --git a/src/server/api/endpoints/games/reversi/games/show.ts b/src/server/api/endpoints/games/reversi/games/show.ts index a6fbdbaf6..93afffdb1 100644 --- a/src/server/api/endpoints/games/reversi/games/show.ts +++ b/src/server/api/endpoints/games/reversi/games/show.ts @@ -3,7 +3,7 @@ import { ID } from '@/misc/cafy-id'; import Reversi from '../../../../../../games/reversi/core'; import define from '../../../../define'; import { ApiError } from '../../../../error'; -import { ReversiGames } from '../../../../../../models'; +import { ReversiGames } from '@/models/index'; export const meta = { tags: ['games'], diff --git a/src/server/api/endpoints/games/reversi/games/surrender.ts b/src/server/api/endpoints/games/reversi/games/surrender.ts index 41896b4ab..00d58b19e 100644 --- a/src/server/api/endpoints/games/reversi/games/surrender.ts +++ b/src/server/api/endpoints/games/reversi/games/surrender.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import { publishReversiGameStream } from '../../../../../../services/stream'; +import { publishReversiGameStream } from '@/services/stream'; import define from '../../../../define'; import { ApiError } from '../../../../error'; -import { ReversiGames } from '../../../../../../models'; +import { ReversiGames } from '@/models/index'; export const meta = { tags: ['games'], diff --git a/src/server/api/endpoints/games/reversi/invitations.ts b/src/server/api/endpoints/games/reversi/invitations.ts index 6a73bdf0c..c8629377b 100644 --- a/src/server/api/endpoints/games/reversi/invitations.ts +++ b/src/server/api/endpoints/games/reversi/invitations.ts @@ -1,5 +1,5 @@ import define from '../../../define'; -import { ReversiMatchings } from '../../../../../models'; +import { ReversiMatchings } from '@/models/index'; export const meta = { tags: ['games'], diff --git a/src/server/api/endpoints/games/reversi/match.ts b/src/server/api/endpoints/games/reversi/match.ts index 55ff9225d..5ceb16c7d 100644 --- a/src/server/api/endpoints/games/reversi/match.ts +++ b/src/server/api/endpoints/games/reversi/match.ts @@ -1,14 +1,14 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import { publishMainStream, publishReversiStream } from '../../../../../services/stream'; +import { publishMainStream, publishReversiStream } from '@/services/stream'; import { eighteight } from '../../../../../games/reversi/maps'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; import { genId } from '@/misc/gen-id'; -import { ReversiMatchings, ReversiGames } from '../../../../../models'; -import { ReversiGame } from '../../../../../models/entities/games/reversi/game'; -import { ReversiMatching } from '../../../../../models/entities/games/reversi/matching'; +import { ReversiMatchings, ReversiGames } from '@/models/index'; +import { ReversiGame } from '@/models/entities/games/reversi/game'; +import { ReversiMatching } from '@/models/entities/games/reversi/matching'; export const meta = { tags: ['games'], diff --git a/src/server/api/endpoints/games/reversi/match/cancel.ts b/src/server/api/endpoints/games/reversi/match/cancel.ts index 0abd4b5c8..e4a138bb8 100644 --- a/src/server/api/endpoints/games/reversi/match/cancel.ts +++ b/src/server/api/endpoints/games/reversi/match/cancel.ts @@ -1,5 +1,5 @@ import define from '../../../../define'; -import { ReversiMatchings } from '../../../../../../models'; +import { ReversiMatchings } from '@/models/index'; export const meta = { tags: ['games'], diff --git a/src/server/api/endpoints/get-online-users-count.ts b/src/server/api/endpoints/get-online-users-count.ts index a13363055..5c80d588d 100644 --- a/src/server/api/endpoints/get-online-users-count.ts +++ b/src/server/api/endpoints/get-online-users-count.ts @@ -1,5 +1,5 @@ import { USER_ONLINE_THRESHOLD } from '@/const'; -import { Users } from '@/models'; +import { Users } from '@/models/index'; import { MoreThan } from 'typeorm'; import define from '../define'; diff --git a/src/server/api/endpoints/hashtags/list.ts b/src/server/api/endpoints/hashtags/list.ts index 6e37f909e..821016a50 100644 --- a/src/server/api/endpoints/hashtags/list.ts +++ b/src/server/api/endpoints/hashtags/list.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { Hashtags } from '../../../../models'; +import { Hashtags } from '@/models/index'; export const meta = { tags: ['hashtags'], diff --git a/src/server/api/endpoints/hashtags/search.ts b/src/server/api/endpoints/hashtags/search.ts index 372ccd508..fd0cac398 100644 --- a/src/server/api/endpoints/hashtags/search.ts +++ b/src/server/api/endpoints/hashtags/search.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { Hashtags } from '../../../../models'; +import { Hashtags } from '@/models/index'; export const meta = { tags: ['hashtags'], diff --git a/src/server/api/endpoints/hashtags/show.ts b/src/server/api/endpoints/hashtags/show.ts index 9e388ce14..f22edbfff 100644 --- a/src/server/api/endpoints/hashtags/show.ts +++ b/src/server/api/endpoints/hashtags/show.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; -import { Hashtags } from '../../../../models'; +import { Hashtags } from '@/models/index'; import { normalizeForSearch } from '@/misc/normalize-for-search'; export const meta = { diff --git a/src/server/api/endpoints/hashtags/trend.ts b/src/server/api/endpoints/hashtags/trend.ts index 5341c3e58..3d67241ab 100644 --- a/src/server/api/endpoints/hashtags/trend.ts +++ b/src/server/api/endpoints/hashtags/trend.ts @@ -1,8 +1,8 @@ import { Brackets } from 'typeorm'; import define from '../../define'; import { fetchMeta } from '@/misc/fetch-meta'; -import { Notes } from '../../../../models'; -import { Note } from '../../../../models/entities/note'; +import { Notes } from '@/models/index'; +import { Note } from '@/models/entities/note'; import { safeForSql } from '@/misc/safe-for-sql'; import { normalizeForSearch } from '@/misc/normalize-for-search'; diff --git a/src/server/api/endpoints/hashtags/users.ts b/src/server/api/endpoints/hashtags/users.ts index cecbc80cd..8c8cd1510 100644 --- a/src/server/api/endpoints/hashtags/users.ts +++ b/src/server/api/endpoints/hashtags/users.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { Users } from '../../../../models'; +import { Users } from '@/models/index'; import { normalizeForSearch } from '@/misc/normalize-for-search'; export const meta = { diff --git a/src/server/api/endpoints/i.ts b/src/server/api/endpoints/i.ts index c6b89124b..0568a962d 100644 --- a/src/server/api/endpoints/i.ts +++ b/src/server/api/endpoints/i.ts @@ -1,5 +1,5 @@ import define from '../define'; -import { Users } from '../../../models'; +import { Users } from '@/models/index'; export const meta = { tags: ['account'], diff --git a/src/server/api/endpoints/i/2fa/done.ts b/src/server/api/endpoints/i/2fa/done.ts index 9a74d7675..2bd2128cc 100644 --- a/src/server/api/endpoints/i/2fa/done.ts +++ b/src/server/api/endpoints/i/2fa/done.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import * as speakeasy from 'speakeasy'; import define from '../../../define'; -import { UserProfiles } from '../../../../../models'; +import { UserProfiles } from '@/models/index'; export const meta = { requireCredential: true as const, diff --git a/src/server/api/endpoints/i/2fa/key-done.ts b/src/server/api/endpoints/i/2fa/key-done.ts index 923a8b386..b4d3af235 100644 --- a/src/server/api/endpoints/i/2fa/key-done.ts +++ b/src/server/api/endpoints/i/2fa/key-done.ts @@ -8,10 +8,10 @@ import { UserSecurityKeys, AttestationChallenges, Users -} from '../../../../../models'; -import config from '@/config'; +} from '@/models/index'; +import config from '@/config/index'; import { procedures, hash } from '../../../2fa'; -import { publishMainStream } from '../../../../../services/stream'; +import { publishMainStream } from '@/services/stream'; const cborDecodeFirst = promisify(cbor.decodeFirst) as any; diff --git a/src/server/api/endpoints/i/2fa/password-less.ts b/src/server/api/endpoints/i/2fa/password-less.ts index ee0a065e4..064828b63 100644 --- a/src/server/api/endpoints/i/2fa/password-less.ts +++ b/src/server/api/endpoints/i/2fa/password-less.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { UserProfiles } from '../../../../../models'; +import { UserProfiles } from '@/models/index'; export const meta = { requireCredential: true as const, diff --git a/src/server/api/endpoints/i/2fa/register-key.ts b/src/server/api/endpoints/i/2fa/register-key.ts index 75f578fc5..1b385a10e 100644 --- a/src/server/api/endpoints/i/2fa/register-key.ts +++ b/src/server/api/endpoints/i/2fa/register-key.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import * as bcrypt from 'bcryptjs'; import define from '../../../define'; -import { UserProfiles, AttestationChallenges } from '../../../../../models'; +import { UserProfiles, AttestationChallenges } from '@/models/index'; import { promisify } from 'util'; import * as crypto from 'crypto'; import { genId } from '@/misc/gen-id'; diff --git a/src/server/api/endpoints/i/2fa/register.ts b/src/server/api/endpoints/i/2fa/register.ts index d40997d6e..b03b98188 100644 --- a/src/server/api/endpoints/i/2fa/register.ts +++ b/src/server/api/endpoints/i/2fa/register.ts @@ -2,9 +2,9 @@ import $ from 'cafy'; import * as bcrypt from 'bcryptjs'; import * as speakeasy from 'speakeasy'; import * as QRCode from 'qrcode'; -import config from '@/config'; +import config from '@/config/index'; import define from '../../../define'; -import { UserProfiles } from '../../../../../models'; +import { UserProfiles } from '@/models/index'; export const meta = { requireCredential: true as const, diff --git a/src/server/api/endpoints/i/2fa/remove-key.ts b/src/server/api/endpoints/i/2fa/remove-key.ts index 135f0eb28..dea56301a 100644 --- a/src/server/api/endpoints/i/2fa/remove-key.ts +++ b/src/server/api/endpoints/i/2fa/remove-key.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import * as bcrypt from 'bcryptjs'; import define from '../../../define'; -import { UserProfiles, UserSecurityKeys, Users } from '../../../../../models'; -import { publishMainStream } from '../../../../../services/stream'; +import { UserProfiles, UserSecurityKeys, Users } from '@/models/index'; +import { publishMainStream } from '@/services/stream'; export const meta = { requireCredential: true as const, diff --git a/src/server/api/endpoints/i/2fa/unregister.ts b/src/server/api/endpoints/i/2fa/unregister.ts index e809f40c7..af53033da 100644 --- a/src/server/api/endpoints/i/2fa/unregister.ts +++ b/src/server/api/endpoints/i/2fa/unregister.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import * as bcrypt from 'bcryptjs'; import define from '../../../define'; -import { UserProfiles } from '../../../../../models'; +import { UserProfiles } from '@/models/index'; export const meta = { requireCredential: true as const, diff --git a/src/server/api/endpoints/i/apps.ts b/src/server/api/endpoints/i/apps.ts index 69958f1ca..994528e5c 100644 --- a/src/server/api/endpoints/i/apps.ts +++ b/src/server/api/endpoints/i/apps.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { AccessTokens } from '../../../../models'; +import { AccessTokens } from '@/models/index'; export const meta = { requireCredential: true as const, diff --git a/src/server/api/endpoints/i/authorized-apps.ts b/src/server/api/endpoints/i/authorized-apps.ts index 050d079d9..042fcd14e 100644 --- a/src/server/api/endpoints/i/authorized-apps.ts +++ b/src/server/api/endpoints/i/authorized-apps.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { AccessTokens, Apps } from '../../../../models'; +import { AccessTokens, Apps } from '@/models/index'; export const meta = { requireCredential: true as const, diff --git a/src/server/api/endpoints/i/change-password.ts b/src/server/api/endpoints/i/change-password.ts index 0a8b86e66..7ea5f8c48 100644 --- a/src/server/api/endpoints/i/change-password.ts +++ b/src/server/api/endpoints/i/change-password.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import * as bcrypt from 'bcryptjs'; import define from '../../define'; -import { UserProfiles } from '../../../../models'; +import { UserProfiles } from '@/models/index'; export const meta = { requireCredential: true as const, diff --git a/src/server/api/endpoints/i/delete-account.ts b/src/server/api/endpoints/i/delete-account.ts index f5f0f32a4..77f11925c 100644 --- a/src/server/api/endpoints/i/delete-account.ts +++ b/src/server/api/endpoints/i/delete-account.ts @@ -1,9 +1,10 @@ import $ from 'cafy'; import * as bcrypt from 'bcryptjs'; import define from '../../define'; -import { Users, UserProfiles } from '../../../../models'; -import { doPostSuspend } from '../../../../services/suspend-user'; +import { UserProfiles, Users } from '@/models/index'; +import { doPostSuspend } from '@/services/suspend-user'; import { publishUserEvent } from '@/services/stream'; +import { createDeleteAccountJob } from '@/queue'; export const meta = { requireCredential: true as const, @@ -19,6 +20,10 @@ export const meta = { export default define(meta, async (ps, user) => { const profile = await UserProfiles.findOneOrFail(user.id); + const userDetailed = await Users.findOneOrFail(user.id); + if (userDetailed.isDeleted) { + return; + } // Compare password const same = await bcrypt.compare(ps.password, profile.password!); @@ -30,7 +35,11 @@ export default define(meta, async (ps, user) => { // 物理削除する前にDelete activityを送信する await doPostSuspend(user).catch(e => {}); - await Users.delete(user.id); + createDeleteAccountJob(user); + + await Users.update(user.id, { + isDeleted: true, + }); // Terminate streaming publishUserEvent(user.id, 'terminate', {}); diff --git a/src/server/api/endpoints/i/export-blocking.ts b/src/server/api/endpoints/i/export-blocking.ts index 87cf7655b..e4797da0c 100644 --- a/src/server/api/endpoints/i/export-blocking.ts +++ b/src/server/api/endpoints/i/export-blocking.ts @@ -1,6 +1,6 @@ import define from '../../define'; -import { createExportBlockingJob } from '../../../../queue'; -import ms = require('ms'); +import { createExportBlockingJob } from '@/queue/index'; +import * as ms from 'ms'; export const meta = { secure: true, diff --git a/src/server/api/endpoints/i/export-following.ts b/src/server/api/endpoints/i/export-following.ts index 9afc96a24..b0f154cda 100644 --- a/src/server/api/endpoints/i/export-following.ts +++ b/src/server/api/endpoints/i/export-following.ts @@ -1,6 +1,6 @@ import define from '../../define'; -import { createExportFollowingJob } from '../../../../queue'; -import ms = require('ms'); +import { createExportFollowingJob } from '@/queue/index'; +import * as ms from 'ms'; export const meta = { secure: true, diff --git a/src/server/api/endpoints/i/export-mute.ts b/src/server/api/endpoints/i/export-mute.ts index 7bb24f8f8..46d547fa5 100644 --- a/src/server/api/endpoints/i/export-mute.ts +++ b/src/server/api/endpoints/i/export-mute.ts @@ -1,6 +1,6 @@ import define from '../../define'; -import { createExportMuteJob } from '../../../../queue'; -import ms = require('ms'); +import { createExportMuteJob } from '@/queue/index'; +import * as ms from 'ms'; export const meta = { secure: true, diff --git a/src/server/api/endpoints/i/export-notes.ts b/src/server/api/endpoints/i/export-notes.ts index 368a34051..441bf1689 100644 --- a/src/server/api/endpoints/i/export-notes.ts +++ b/src/server/api/endpoints/i/export-notes.ts @@ -1,6 +1,6 @@ import define from '../../define'; -import { createExportNotesJob } from '../../../../queue'; -import ms = require('ms'); +import { createExportNotesJob } from '@/queue/index'; +import * as ms from 'ms'; export const meta = { secure: true, diff --git a/src/server/api/endpoints/i/export-user-lists.ts b/src/server/api/endpoints/i/export-user-lists.ts index e1de59f32..24043a862 100644 --- a/src/server/api/endpoints/i/export-user-lists.ts +++ b/src/server/api/endpoints/i/export-user-lists.ts @@ -1,6 +1,6 @@ import define from '../../define'; -import { createExportUserListsJob } from '../../../../queue'; -import ms = require('ms'); +import { createExportUserListsJob } from '@/queue/index'; +import * as ms from 'ms'; export const meta = { secure: true, diff --git a/src/server/api/endpoints/i/favorites.ts b/src/server/api/endpoints/i/favorites.ts index eb97e8bab..b79d68ae7 100644 --- a/src/server/api/endpoints/i/favorites.ts +++ b/src/server/api/endpoints/i/favorites.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { NoteFavorites } from '../../../../models'; +import { NoteFavorites } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/i/gallery/likes.ts b/src/server/api/endpoints/i/gallery/likes.ts index e569261fa..7a2935a5e 100644 --- a/src/server/api/endpoints/i/gallery/likes.ts +++ b/src/server/api/endpoints/i/gallery/likes.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; -import { GalleryLikes } from '../../../../../models'; +import { GalleryLikes } from '@/models/index'; import { makePaginationQuery } from '../../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/i/gallery/posts.ts b/src/server/api/endpoints/i/gallery/posts.ts index d7c2e96c1..21bb8759f 100644 --- a/src/server/api/endpoints/i/gallery/posts.ts +++ b/src/server/api/endpoints/i/gallery/posts.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; -import { GalleryPosts } from '../../../../../models'; +import { GalleryPosts } from '@/models/index'; import { makePaginationQuery } from '../../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/i/get-word-muted-notes-count.ts b/src/server/api/endpoints/i/get-word-muted-notes-count.ts index a69ebc286..6b9be9858 100644 --- a/src/server/api/endpoints/i/get-word-muted-notes-count.ts +++ b/src/server/api/endpoints/i/get-word-muted-notes-count.ts @@ -1,5 +1,5 @@ import define from '../../define'; -import { MutedNotes } from '../../../../models'; +import { MutedNotes } from '@/models/index'; export const meta = { tags: ['account'], diff --git a/src/server/api/endpoints/i/import-following.ts b/src/server/api/endpoints/i/import-following.ts index 034955107..b3de39766 100644 --- a/src/server/api/endpoints/i/import-following.ts +++ b/src/server/api/endpoints/i/import-following.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { createImportFollowingJob } from '../../../../queue'; -import ms = require('ms'); +import { createImportFollowingJob } from '@/queue/index'; +import * as ms from 'ms'; import { ApiError } from '../../error'; -import { DriveFiles } from '../../../../models'; +import { DriveFiles } from '@/models/index'; export const meta = { secure: true, diff --git a/src/server/api/endpoints/i/import-user-lists.ts b/src/server/api/endpoints/i/import-user-lists.ts index f40eb2745..9069a019a 100644 --- a/src/server/api/endpoints/i/import-user-lists.ts +++ b/src/server/api/endpoints/i/import-user-lists.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { createImportUserListsJob } from '../../../../queue'; -import ms = require('ms'); +import { createImportUserListsJob } from '@/queue/index'; +import * as ms from 'ms'; import { ApiError } from '../../error'; -import { DriveFiles } from '../../../../models'; +import { DriveFiles } from '@/models/index'; export const meta = { secure: true, diff --git a/src/server/api/endpoints/i/notifications.ts b/src/server/api/endpoints/i/notifications.ts index a16766c92..3c265a10c 100644 --- a/src/server/api/endpoints/i/notifications.ts +++ b/src/server/api/endpoints/i/notifications.ts @@ -3,7 +3,7 @@ import { ID } from '@/misc/cafy-id'; import { readNotification } from '../../common/read-notification'; import define from '../../define'; import { makePaginationQuery } from '../../common/make-pagination-query'; -import { Notifications, Followings, Mutings, Users } from '../../../../models'; +import { Notifications, Followings, Mutings, Users } from '@/models/index'; import { notificationTypes } from '../../../../types'; import read from '@/services/note/read'; diff --git a/src/server/api/endpoints/i/page-likes.ts b/src/server/api/endpoints/i/page-likes.ts index bb4149969..fa2bc3173 100644 --- a/src/server/api/endpoints/i/page-likes.ts +++ b/src/server/api/endpoints/i/page-likes.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { PageLikes } from '../../../../models'; +import { PageLikes } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/i/pages.ts b/src/server/api/endpoints/i/pages.ts index 981686adb..ee87fffa2 100644 --- a/src/server/api/endpoints/i/pages.ts +++ b/src/server/api/endpoints/i/pages.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { Pages } from '../../../../models'; +import { Pages } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/i/pin.ts b/src/server/api/endpoints/i/pin.ts index e1e065899..de94220ba 100644 --- a/src/server/api/endpoints/i/pin.ts +++ b/src/server/api/endpoints/i/pin.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import { addPinned } from '../../../../services/i/pin'; +import { addPinned } from '@/services/i/pin'; import define from '../../define'; import { ApiError } from '../../error'; -import { Users } from '../../../../models'; +import { Users } from '@/models/index'; export const meta = { tags: ['account', 'notes'], diff --git a/src/server/api/endpoints/i/read-all-messaging-messages.ts b/src/server/api/endpoints/i/read-all-messaging-messages.ts index dd26a10a7..9aca7611c 100644 --- a/src/server/api/endpoints/i/read-all-messaging-messages.ts +++ b/src/server/api/endpoints/i/read-all-messaging-messages.ts @@ -1,6 +1,6 @@ -import { publishMainStream } from '../../../../services/stream'; +import { publishMainStream } from '@/services/stream'; import define from '../../define'; -import { MessagingMessages, UserGroupJoinings } from '../../../../models'; +import { MessagingMessages, UserGroupJoinings } from '@/models/index'; export const meta = { tags: ['account', 'messaging'], diff --git a/src/server/api/endpoints/i/read-all-unread-notes.ts b/src/server/api/endpoints/i/read-all-unread-notes.ts index 64469a2ad..2a7102a59 100644 --- a/src/server/api/endpoints/i/read-all-unread-notes.ts +++ b/src/server/api/endpoints/i/read-all-unread-notes.ts @@ -1,6 +1,6 @@ -import { publishMainStream } from '../../../../services/stream'; +import { publishMainStream } from '@/services/stream'; import define from '../../define'; -import { NoteUnreads } from '../../../../models'; +import { NoteUnreads } from '@/models/index'; export const meta = { tags: ['account'], diff --git a/src/server/api/endpoints/i/read-announcement.ts b/src/server/api/endpoints/i/read-announcement.ts index 0f58b823f..2f5036f95 100644 --- a/src/server/api/endpoints/i/read-announcement.ts +++ b/src/server/api/endpoints/i/read-announcement.ts @@ -3,8 +3,8 @@ import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { genId } from '@/misc/gen-id'; -import { AnnouncementReads, Announcements, Users } from '../../../../models'; -import { publishMainStream } from '../../../../services/stream'; +import { AnnouncementReads, Announcements, Users } from '@/models/index'; +import { publishMainStream } from '@/services/stream'; export const meta = { tags: ['account'], diff --git a/src/server/api/endpoints/i/regenerate-token.ts b/src/server/api/endpoints/i/regenerate-token.ts index 3665ed053..1cce2d37b 100644 --- a/src/server/api/endpoints/i/regenerate-token.ts +++ b/src/server/api/endpoints/i/regenerate-token.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import * as bcrypt from 'bcryptjs'; -import { publishMainStream, publishUserEvent } from '../../../../services/stream'; +import { publishMainStream, publishUserEvent } from '@/services/stream'; import generateUserToken from '../../common/generate-native-user-token'; import define from '../../define'; -import { Users, UserProfiles } from '../../../../models'; +import { Users, UserProfiles } from '@/models/index'; export const meta = { requireCredential: true as const, diff --git a/src/server/api/endpoints/i/registry/get-all.ts b/src/server/api/endpoints/i/registry/get-all.ts index ce8653f22..c8eaf83a2 100644 --- a/src/server/api/endpoints/i/registry/get-all.ts +++ b/src/server/api/endpoints/i/registry/get-all.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { RegistryItems } from '../../../../../models'; +import { RegistryItems } from '@/models/index'; export const meta = { requireCredential: true as const, diff --git a/src/server/api/endpoints/i/registry/get-detail.ts b/src/server/api/endpoints/i/registry/get-detail.ts index 441833d3d..992800c44 100644 --- a/src/server/api/endpoints/i/registry/get-detail.ts +++ b/src/server/api/endpoints/i/registry/get-detail.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { RegistryItems } from '../../../../../models'; +import { RegistryItems } from '@/models/index'; import { ApiError } from '../../../error'; export const meta = { diff --git a/src/server/api/endpoints/i/registry/get.ts b/src/server/api/endpoints/i/registry/get.ts index 275e660cb..569c3a928 100644 --- a/src/server/api/endpoints/i/registry/get.ts +++ b/src/server/api/endpoints/i/registry/get.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { RegistryItems } from '../../../../../models'; +import { RegistryItems } from '@/models/index'; import { ApiError } from '../../../error'; export const meta = { diff --git a/src/server/api/endpoints/i/registry/keys-with-type.ts b/src/server/api/endpoints/i/registry/keys-with-type.ts index 06d77acbe..16a4fee37 100644 --- a/src/server/api/endpoints/i/registry/keys-with-type.ts +++ b/src/server/api/endpoints/i/registry/keys-with-type.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { RegistryItems } from '../../../../../models'; +import { RegistryItems } from '@/models/index'; export const meta = { requireCredential: true as const, diff --git a/src/server/api/endpoints/i/registry/keys.ts b/src/server/api/endpoints/i/registry/keys.ts index e4dd5044b..3a8aeaa19 100644 --- a/src/server/api/endpoints/i/registry/keys.ts +++ b/src/server/api/endpoints/i/registry/keys.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { RegistryItems } from '../../../../../models'; +import { RegistryItems } from '@/models/index'; export const meta = { requireCredential: true as const, diff --git a/src/server/api/endpoints/i/registry/remove.ts b/src/server/api/endpoints/i/registry/remove.ts index 4f04d653b..07bc23d4a 100644 --- a/src/server/api/endpoints/i/registry/remove.ts +++ b/src/server/api/endpoints/i/registry/remove.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { RegistryItems } from '../../../../../models'; +import { RegistryItems } from '@/models/index'; import { ApiError } from '../../../error'; export const meta = { diff --git a/src/server/api/endpoints/i/registry/scopes.ts b/src/server/api/endpoints/i/registry/scopes.ts index baf3ebdec..ecbdb05a8 100644 --- a/src/server/api/endpoints/i/registry/scopes.ts +++ b/src/server/api/endpoints/i/registry/scopes.ts @@ -1,5 +1,5 @@ import define from '../../../define'; -import { RegistryItems } from '../../../../../models'; +import { RegistryItems } from '@/models/index'; export const meta = { requireCredential: true as const, diff --git a/src/server/api/endpoints/i/registry/set.ts b/src/server/api/endpoints/i/registry/set.ts index 40f636801..f129ee1b7 100644 --- a/src/server/api/endpoints/i/registry/set.ts +++ b/src/server/api/endpoints/i/registry/set.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; -import { publishMainStream } from '../../../../../services/stream'; +import { publishMainStream } from '@/services/stream'; import define from '../../../define'; -import { RegistryItems } from '../../../../../models'; +import { RegistryItems } from '@/models/index'; import { genId } from '@/misc/gen-id'; export const meta = { diff --git a/src/server/api/endpoints/i/revoke-token.ts b/src/server/api/endpoints/i/revoke-token.ts index d22d9ca69..bed868def 100644 --- a/src/server/api/endpoints/i/revoke-token.ts +++ b/src/server/api/endpoints/i/revoke-token.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { AccessTokens } from '../../../../models'; +import { AccessTokens } from '@/models/index'; import { ID } from '@/misc/cafy-id'; import { publishUserEvent } from '@/services/stream'; diff --git a/src/server/api/endpoints/i/signin-history.ts b/src/server/api/endpoints/i/signin-history.ts index 039520614..a2c10148c 100644 --- a/src/server/api/endpoints/i/signin-history.ts +++ b/src/server/api/endpoints/i/signin-history.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { Signins } from '../../../../models'; +import { Signins } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/i/unpin.ts b/src/server/api/endpoints/i/unpin.ts index fe19b2090..dc79e255a 100644 --- a/src/server/api/endpoints/i/unpin.ts +++ b/src/server/api/endpoints/i/unpin.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import { removePinned } from '../../../../services/i/pin'; +import { removePinned } from '@/services/i/pin'; import define from '../../define'; import { ApiError } from '../../error'; -import { Users } from '../../../../models'; +import { Users } from '@/models/index'; export const meta = { tags: ['account', 'notes'], diff --git a/src/server/api/endpoints/i/update-email.ts b/src/server/api/endpoints/i/update-email.ts index cd0e989e5..14aedad88 100644 --- a/src/server/api/endpoints/i/update-email.ts +++ b/src/server/api/endpoints/i/update-email.ts @@ -1,12 +1,12 @@ import $ from 'cafy'; -import { publishMainStream } from '../../../../services/stream'; +import { publishMainStream } from '@/services/stream'; import define from '../../define'; import rndstr from 'rndstr'; -import config from '@/config'; +import config from '@/config/index'; import * as ms from 'ms'; import * as bcrypt from 'bcryptjs'; -import { Users, UserProfiles } from '../../../../models'; -import { sendEmail } from '../../../../services/send-email'; +import { Users, UserProfiles } from '@/models/index'; +import { sendEmail } from '@/services/send-email'; import { ApiError } from '../../error'; export const meta = { diff --git a/src/server/api/endpoints/i/update.ts b/src/server/api/endpoints/i/update.ts index 96955354a..fb7e12760 100644 --- a/src/server/api/endpoints/i/update.ts +++ b/src/server/api/endpoints/i/update.ts @@ -1,18 +1,18 @@ import $ from 'cafy'; import * as mfm from 'mfm-js'; import { ID } from '@/misc/cafy-id'; -import { publishMainStream, publishUserEvent } from '../../../../services/stream'; -import acceptAllFollowRequests from '../../../../services/following/requests/accept-all'; -import { publishToFollowers } from '../../../../services/i/update'; +import { publishMainStream, publishUserEvent } from '@/services/stream'; +import acceptAllFollowRequests from '@/services/following/requests/accept-all'; +import { publishToFollowers } from '@/services/i/update'; import define from '../../define'; import { extractCustomEmojisFromMfm } from '@/misc/extract-custom-emojis-from-mfm'; import { extractHashtags } from '@/misc/extract-hashtags'; import * as langmap from 'langmap'; -import { updateUsertags } from '../../../../services/update-hashtag'; +import { updateUsertags } from '@/services/update-hashtag'; import { ApiError } from '../../error'; -import { Users, DriveFiles, UserProfiles, Pages } from '../../../../models'; -import { User } from '../../../../models/entities/user'; -import { UserProfile } from '../../../../models/entities/user-profile'; +import { Users, DriveFiles, UserProfiles, Pages } from '@/models/index'; +import { User } from '@/models/entities/user'; +import { UserProfile } from '@/models/entities/user-profile'; import { notificationTypes } from '../../../../types'; import { normalizeForSearch } from '@/misc/normalize-for-search'; diff --git a/src/server/api/endpoints/i/user-group-invites.ts b/src/server/api/endpoints/i/user-group-invites.ts index 623274df9..1ebde243c 100644 --- a/src/server/api/endpoints/i/user-group-invites.ts +++ b/src/server/api/endpoints/i/user-group-invites.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { UserGroupInvitations } from '../../../../models'; +import { UserGroupInvitations } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/messaging/history.ts b/src/server/api/endpoints/messaging/history.ts index 5f4f02455..e44770354 100644 --- a/src/server/api/endpoints/messaging/history.ts +++ b/src/server/api/endpoints/messaging/history.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; -import { MessagingMessage } from '../../../../models/entities/messaging-message'; -import { MessagingMessages, Mutings, UserGroupJoinings } from '../../../../models'; +import { MessagingMessage } from '@/models/entities/messaging-message'; +import { MessagingMessages, Mutings, UserGroupJoinings } from '@/models/index'; import { Brackets } from 'typeorm'; export const meta = { diff --git a/src/server/api/endpoints/messaging/messages.ts b/src/server/api/endpoints/messaging/messages.ts index 087f5a7d6..6baa24609 100644 --- a/src/server/api/endpoints/messaging/messages.ts +++ b/src/server/api/endpoints/messaging/messages.ts @@ -3,7 +3,7 @@ import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; -import { MessagingMessages, UserGroups, UserGroupJoinings, Users } from '../../../../models'; +import { MessagingMessages, UserGroups, UserGroupJoinings, Users } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { Brackets } from 'typeorm'; import { readUserMessagingMessage, readGroupMessagingMessage, deliverReadActivity } from '../../common/read-messaging-message'; diff --git a/src/server/api/endpoints/messaging/messages/create.ts b/src/server/api/endpoints/messaging/messages/create.ts index a00513a24..df0b455cb 100644 --- a/src/server/api/endpoints/messaging/messages/create.ts +++ b/src/server/api/endpoints/messaging/messages/create.ts @@ -3,10 +3,10 @@ import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; -import { MessagingMessages, DriveFiles, UserGroups, UserGroupJoinings, Blockings } from '../../../../../models'; -import { User } from '../../../../../models/entities/user'; -import { UserGroup } from '../../../../../models/entities/user-group'; -import { createMessage } from '../../../../../services/messages/create'; +import { MessagingMessages, DriveFiles, UserGroups, UserGroupJoinings, Blockings } from '@/models/index'; +import { User } from '@/models/entities/user'; +import { UserGroup } from '@/models/entities/user-group'; +import { createMessage } from '@/services/messages/create'; export const meta = { tags: ['messaging'], diff --git a/src/server/api/endpoints/messaging/messages/delete.ts b/src/server/api/endpoints/messaging/messages/delete.ts index 5e5aa5fd1..bd4890fc8 100644 --- a/src/server/api/endpoints/messaging/messages/delete.ts +++ b/src/server/api/endpoints/messaging/messages/delete.ts @@ -3,8 +3,8 @@ import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import * as ms from 'ms'; import { ApiError } from '../../../error'; -import { MessagingMessages } from '../../../../../models'; -import { deleteMessage } from '../../../../../services/messages/delete'; +import { MessagingMessages } from '@/models/index'; +import { deleteMessage } from '@/services/messages/delete'; export const meta = { tags: ['messaging'], diff --git a/src/server/api/endpoints/messaging/messages/read.ts b/src/server/api/endpoints/messaging/messages/read.ts index b17927da3..a1747310d 100644 --- a/src/server/api/endpoints/messaging/messages/read.ts +++ b/src/server/api/endpoints/messaging/messages/read.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { MessagingMessages } from '../../../../../models'; +import { MessagingMessages } from '@/models/index'; import { readUserMessagingMessage, readGroupMessagingMessage } from '../../../common/read-messaging-message'; export const meta = { diff --git a/src/server/api/endpoints/meta.ts b/src/server/api/endpoints/meta.ts index 561d473d6..1c87952f6 100644 --- a/src/server/api/endpoints/meta.ts +++ b/src/server/api/endpoints/meta.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; -import config from '@/config'; +import config from '@/config/index'; import define from '../define'; import { fetchMeta } from '@/misc/fetch-meta'; -import { Ads, Emojis, Users } from '../../../models'; +import { Ads, Emojis, Users } from '@/models/index'; import { DB_MAX_NOTE_TEXT_LENGTH } from '@/misc/hard-limits'; import { MoreThan } from 'typeorm'; diff --git a/src/server/api/endpoints/miauth/gen-token.ts b/src/server/api/endpoints/miauth/gen-token.ts index 68ef00eb2..321fa42fc 100644 --- a/src/server/api/endpoints/miauth/gen-token.ts +++ b/src/server/api/endpoints/miauth/gen-token.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { AccessTokens } from '../../../../models'; +import { AccessTokens } from '@/models/index'; import { genId } from '@/misc/gen-id'; import { secureRndstr } from '@/misc/secure-rndstr'; diff --git a/src/server/api/endpoints/mute/create.ts b/src/server/api/endpoints/mute/create.ts index 7f018a359..5163ed63d 100644 --- a/src/server/api/endpoints/mute/create.ts +++ b/src/server/api/endpoints/mute/create.ts @@ -4,9 +4,9 @@ import define from '../../define'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; import { genId } from '@/misc/gen-id'; -import { Mutings, NoteWatchings } from '../../../../models'; -import { Muting } from '../../../../models/entities/muting'; -import { publishUserEvent } from '../../../../services/stream'; +import { Mutings, NoteWatchings } from '@/models/index'; +import { Muting } from '@/models/entities/muting'; +import { publishUserEvent } from '@/services/stream'; export const meta = { tags: ['account'], diff --git a/src/server/api/endpoints/mute/delete.ts b/src/server/api/endpoints/mute/delete.ts index bfb6a95e3..3ffd1f456 100644 --- a/src/server/api/endpoints/mute/delete.ts +++ b/src/server/api/endpoints/mute/delete.ts @@ -3,8 +3,8 @@ import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; -import { Mutings } from '../../../../models'; -import { publishUserEvent } from '../../../../services/stream'; +import { Mutings } from '@/models/index'; +import { publishUserEvent } from '@/services/stream'; export const meta = { tags: ['account'], diff --git a/src/server/api/endpoints/mute/list.ts b/src/server/api/endpoints/mute/list.ts index 45952ec72..ae4c3a719 100644 --- a/src/server/api/endpoints/mute/list.ts +++ b/src/server/api/endpoints/mute/list.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { makePaginationQuery } from '../../common/make-pagination-query'; -import { Mutings } from '../../../../models'; +import { Mutings } from '@/models/index'; export const meta = { tags: ['account'], diff --git a/src/server/api/endpoints/my/apps.ts b/src/server/api/endpoints/my/apps.ts index 908e24e1b..d91562b62 100644 --- a/src/server/api/endpoints/my/apps.ts +++ b/src/server/api/endpoints/my/apps.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { Apps } from '../../../../models'; +import { Apps } from '@/models/index'; export const meta = { tags: ['account', 'app'], diff --git a/src/server/api/endpoints/notes.ts b/src/server/api/endpoints/notes.ts index fdb8bad24..a3f6e187f 100644 --- a/src/server/api/endpoints/notes.ts +++ b/src/server/api/endpoints/notes.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../define'; import { makePaginationQuery } from '../common/make-pagination-query'; -import { Notes } from '../../../models'; +import { Notes } from '@/models/index'; export const meta = { tags: ['notes'], diff --git a/src/server/api/endpoints/notes/children.ts b/src/server/api/endpoints/notes/children.ts index f4d295881..68881fda9 100644 --- a/src/server/api/endpoints/notes/children.ts +++ b/src/server/api/endpoints/notes/children.ts @@ -5,7 +5,7 @@ import { makePaginationQuery } from '../../common/make-pagination-query'; import { generateVisibilityQuery } from '../../common/generate-visibility-query'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; import { Brackets } from 'typeorm'; -import { Notes } from '../../../../models'; +import { Notes } from '@/models/index'; import { generateBlockedUserQuery } from '../../common/generate-block-query'; export const meta = { diff --git a/src/server/api/endpoints/notes/clips.ts b/src/server/api/endpoints/notes/clips.ts index d116370b4..6b303d87e 100644 --- a/src/server/api/endpoints/notes/clips.ts +++ b/src/server/api/endpoints/notes/clips.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { ClipNotes, Clips } from '../../../../models'; +import { ClipNotes, Clips } from '@/models/index'; import { getNote } from '../../common/getters'; import { ApiError } from '../../error'; import { In } from 'typeorm'; diff --git a/src/server/api/endpoints/notes/conversation.ts b/src/server/api/endpoints/notes/conversation.ts index 0fd10df07..0fe323ea0 100644 --- a/src/server/api/endpoints/notes/conversation.ts +++ b/src/server/api/endpoints/notes/conversation.ts @@ -3,8 +3,8 @@ import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { getNote } from '../../common/getters'; -import { Note } from '../../../../models/entities/note'; -import { Notes } from '../../../../models'; +import { Note } from '@/models/entities/note'; +import { Notes } from '@/models/index'; export const meta = { tags: ['notes'], diff --git a/src/server/api/endpoints/notes/create.ts b/src/server/api/endpoints/notes/create.ts index 9c055683f..751673f95 100644 --- a/src/server/api/endpoints/notes/create.ts +++ b/src/server/api/endpoints/notes/create.ts @@ -1,18 +1,18 @@ import $ from 'cafy'; import * as ms from 'ms'; import { length } from 'stringz'; -import create from '../../../../services/note/create'; +import create from '@/services/note/create'; import define from '../../define'; import { fetchMeta } from '@/misc/fetch-meta'; import { ApiError } from '../../error'; import { ID } from '@/misc/cafy-id'; -import { User } from '../../../../models/entities/user'; -import { Users, DriveFiles, Notes, Channels, Blockings } from '../../../../models'; -import { DriveFile } from '../../../../models/entities/drive-file'; -import { Note } from '../../../../models/entities/note'; +import { User } from '@/models/entities/user'; +import { Users, DriveFiles, Notes, Channels, Blockings } from '@/models/index'; +import { DriveFile } from '@/models/entities/drive-file'; +import { Note } from '@/models/entities/note'; import { DB_MAX_NOTE_TEXT_LENGTH } from '@/misc/hard-limits'; import { noteVisibilities } from '../../../../types'; -import { Channel } from '../../../../models/entities/channel'; +import { Channel } from '@/models/entities/channel'; let maxNoteTextLength = 500; diff --git a/src/server/api/endpoints/notes/delete.ts b/src/server/api/endpoints/notes/delete.ts index 6a0652312..7163a2b9d 100644 --- a/src/server/api/endpoints/notes/delete.ts +++ b/src/server/api/endpoints/notes/delete.ts @@ -1,11 +1,11 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import deleteNote from '../../../../services/note/delete'; +import deleteNote from '@/services/note/delete'; import define from '../../define'; import * as ms from 'ms'; import { getNote } from '../../common/getters'; import { ApiError } from '../../error'; -import { Users } from '../../../../models'; +import { Users } from '@/models/index'; export const meta = { tags: ['notes'], diff --git a/src/server/api/endpoints/notes/favorites/create.ts b/src/server/api/endpoints/notes/favorites/create.ts index b77b5d48f..1bb25edd7 100644 --- a/src/server/api/endpoints/notes/favorites/create.ts +++ b/src/server/api/endpoints/notes/favorites/create.ts @@ -3,7 +3,7 @@ import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getNote } from '../../../common/getters'; -import { NoteFavorites } from '../../../../../models'; +import { NoteFavorites } from '@/models/index'; import { genId } from '@/misc/gen-id'; export const meta = { diff --git a/src/server/api/endpoints/notes/favorites/delete.ts b/src/server/api/endpoints/notes/favorites/delete.ts index 4a1fc71a0..75eb9a359 100644 --- a/src/server/api/endpoints/notes/favorites/delete.ts +++ b/src/server/api/endpoints/notes/favorites/delete.ts @@ -3,7 +3,7 @@ import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getNote } from '../../../common/getters'; -import { NoteFavorites } from '../../../../../models'; +import { NoteFavorites } from '@/models/index'; export const meta = { tags: ['notes', 'favorites'], diff --git a/src/server/api/endpoints/notes/featured.ts b/src/server/api/endpoints/notes/featured.ts index 44c0fb23a..8d33c0e73 100644 --- a/src/server/api/endpoints/notes/featured.ts +++ b/src/server/api/endpoints/notes/featured.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; -import { Notes } from '../../../../models'; +import { Notes } from '@/models/index'; import { generateBlockedUserQuery } from '../../common/generate-block-query'; export const meta = { diff --git a/src/server/api/endpoints/notes/global-timeline.ts b/src/server/api/endpoints/notes/global-timeline.ts index 96bfde5aa..5902c0415 100644 --- a/src/server/api/endpoints/notes/global-timeline.ts +++ b/src/server/api/endpoints/notes/global-timeline.ts @@ -4,9 +4,9 @@ import define from '../../define'; import { fetchMeta } from '@/misc/fetch-meta'; import { ApiError } from '../../error'; import { makePaginationQuery } from '../../common/make-pagination-query'; -import { Notes } from '../../../../models'; +import { Notes } from '@/models/index'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; -import { activeUsersChart } from '../../../../services/chart'; +import { activeUsersChart } from '@/services/chart/index'; import { generateRepliesQuery } from '../../common/generate-replies-query'; import { generateMutedNoteQuery } from '../../common/generate-muted-note-query'; import { generateBlockedUserQuery } from '../../common/generate-block-query'; diff --git a/src/server/api/endpoints/notes/hybrid-timeline.ts b/src/server/api/endpoints/notes/hybrid-timeline.ts index 91a36fd0c..47f08f208 100644 --- a/src/server/api/endpoints/notes/hybrid-timeline.ts +++ b/src/server/api/endpoints/notes/hybrid-timeline.ts @@ -4,11 +4,11 @@ import define from '../../define'; import { fetchMeta } from '@/misc/fetch-meta'; import { ApiError } from '../../error'; import { makePaginationQuery } from '../../common/make-pagination-query'; -import { Followings, Notes } from '../../../../models'; +import { Followings, Notes } from '@/models/index'; import { Brackets } from 'typeorm'; import { generateVisibilityQuery } from '../../common/generate-visibility-query'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; -import { activeUsersChart } from '../../../../services/chart'; +import { activeUsersChart } from '@/services/chart/index'; import { generateRepliesQuery } from '../../common/generate-replies-query'; import { generateMutedNoteQuery } from '../../common/generate-muted-note-query'; import { generateChannelQuery } from '../../common/generate-channel-query'; diff --git a/src/server/api/endpoints/notes/local-timeline.ts b/src/server/api/endpoints/notes/local-timeline.ts index 4f481b599..f670d478b 100644 --- a/src/server/api/endpoints/notes/local-timeline.ts +++ b/src/server/api/endpoints/notes/local-timeline.ts @@ -3,11 +3,11 @@ import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { fetchMeta } from '@/misc/fetch-meta'; import { ApiError } from '../../error'; -import { Notes } from '../../../../models'; +import { Notes } from '@/models/index'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { generateVisibilityQuery } from '../../common/generate-visibility-query'; -import { activeUsersChart } from '../../../../services/chart'; +import { activeUsersChart } from '@/services/chart/index'; import { Brackets } from 'typeorm'; import { generateRepliesQuery } from '../../common/generate-replies-query'; import { generateMutedNoteQuery } from '../../common/generate-muted-note-query'; diff --git a/src/server/api/endpoints/notes/mentions.ts b/src/server/api/endpoints/notes/mentions.ts index 6a2358228..74f7911bf 100644 --- a/src/server/api/endpoints/notes/mentions.ts +++ b/src/server/api/endpoints/notes/mentions.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import read from '../../../../services/note/read'; -import { Notes, Followings } from '../../../../models'; +import read from '@/services/note/read'; +import { Notes, Followings } from '@/models/index'; import { generateVisibilityQuery } from '../../common/generate-visibility-query'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/notes/polls/recommendation.ts b/src/server/api/endpoints/notes/polls/recommendation.ts index af8a52739..0763f0c8f 100644 --- a/src/server/api/endpoints/notes/polls/recommendation.ts +++ b/src/server/api/endpoints/notes/polls/recommendation.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { Polls, Mutings, Notes, PollVotes } from '../../../../../models'; +import { Polls, Mutings, Notes, PollVotes } from '@/models/index'; import { Brackets, In } from 'typeorm'; export const meta = { diff --git a/src/server/api/endpoints/notes/polls/vote.ts b/src/server/api/endpoints/notes/polls/vote.ts index 6f2892960..f67050138 100644 --- a/src/server/api/endpoints/notes/polls/vote.ts +++ b/src/server/api/endpoints/notes/polls/vote.ts @@ -1,17 +1,17 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import { publishNoteStream } from '../../../../../services/stream'; -import { createNotification } from '../../../../../services/create-notification'; +import { publishNoteStream } from '@/services/stream'; +import { createNotification } from '@/services/create-notification'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getNote } from '../../../common/getters'; -import { deliver } from '../../../../../queue'; -import { renderActivity } from '../../../../../remote/activitypub/renderer'; -import renderVote from '../../../../../remote/activitypub/renderer/vote'; -import { deliverQuestionUpdate } from '../../../../../services/note/polls/update'; -import { PollVotes, NoteWatchings, Users, Polls, Blockings } from '../../../../../models'; +import { deliver } from '@/queue/index'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import renderVote from '@/remote/activitypub/renderer/vote'; +import { deliverQuestionUpdate } from '@/services/note/polls/update'; +import { PollVotes, NoteWatchings, Users, Polls, Blockings } from '@/models/index'; import { Not } from 'typeorm'; -import { IRemoteUser } from '../../../../../models/entities/user'; +import { IRemoteUser } from '@/models/entities/user'; import { genId } from '@/misc/gen-id'; export const meta = { diff --git a/src/server/api/endpoints/notes/reactions.ts b/src/server/api/endpoints/notes/reactions.ts index df780bfa0..09dd6b600 100644 --- a/src/server/api/endpoints/notes/reactions.ts +++ b/src/server/api/endpoints/notes/reactions.ts @@ -3,9 +3,9 @@ import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { getNote } from '../../common/getters'; import { ApiError } from '../../error'; -import { NoteReactions } from '../../../../models'; +import { NoteReactions } from '@/models/index'; import { DeepPartial } from 'typeorm'; -import { NoteReaction } from '../../../../models/entities/note-reaction'; +import { NoteReaction } from '@/models/entities/note-reaction'; export const meta = { tags: ['notes', 'reactions'], diff --git a/src/server/api/endpoints/notes/reactions/create.ts b/src/server/api/endpoints/notes/reactions/create.ts index 3243332c5..24a73a8d4 100644 --- a/src/server/api/endpoints/notes/reactions/create.ts +++ b/src/server/api/endpoints/notes/reactions/create.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import createReaction from '../../../../../services/note/reaction/create'; +import createReaction from '@/services/note/reaction/create'; import define from '../../../define'; import { getNote } from '../../../common/getters'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/notes/reactions/delete.ts b/src/server/api/endpoints/notes/reactions/delete.ts index b18cb533d..69550f96d 100644 --- a/src/server/api/endpoints/notes/reactions/delete.ts +++ b/src/server/api/endpoints/notes/reactions/delete.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import * as ms from 'ms'; -import deleteReaction from '../../../../../services/note/reaction/delete'; +import deleteReaction from '@/services/note/reaction/delete'; import { getNote } from '../../../common/getters'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/notes/renotes.ts b/src/server/api/endpoints/notes/renotes.ts index 5e3b3ccbc..26bfc1657 100644 --- a/src/server/api/endpoints/notes/renotes.ts +++ b/src/server/api/endpoints/notes/renotes.ts @@ -6,7 +6,7 @@ import { ApiError } from '../../error'; import { generateVisibilityQuery } from '../../common/generate-visibility-query'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; import { makePaginationQuery } from '../../common/make-pagination-query'; -import { Notes } from '../../../../models'; +import { Notes } from '@/models/index'; import { generateBlockedUserQuery } from '../../common/generate-block-query'; export const meta = { diff --git a/src/server/api/endpoints/notes/replies.ts b/src/server/api/endpoints/notes/replies.ts index 7960078c8..0bb62413a 100644 --- a/src/server/api/endpoints/notes/replies.ts +++ b/src/server/api/endpoints/notes/replies.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { Notes } from '../../../../models'; +import { Notes } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { generateVisibilityQuery } from '../../common/generate-visibility-query'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; diff --git a/src/server/api/endpoints/notes/search-by-tag.ts b/src/server/api/endpoints/notes/search-by-tag.ts index 39d99baba..40e149973 100644 --- a/src/server/api/endpoints/notes/search-by-tag.ts +++ b/src/server/api/endpoints/notes/search-by-tag.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { makePaginationQuery } from '../../common/make-pagination-query'; -import { Notes } from '../../../../models'; +import { Notes } from '@/models/index'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; import { generateVisibilityQuery } from '../../common/generate-visibility-query'; import { Brackets } from 'typeorm'; diff --git a/src/server/api/endpoints/notes/search.ts b/src/server/api/endpoints/notes/search.ts index 0e0eaa06a..eb832a6b3 100644 --- a/src/server/api/endpoints/notes/search.ts +++ b/src/server/api/endpoints/notes/search.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; import es from '../../../../db/elasticsearch'; import define from '../../define'; -import { Notes } from '../../../../models'; +import { Notes } from '@/models/index'; import { In } from 'typeorm'; import { ID } from '@/misc/cafy-id'; -import config from '@/config'; +import config from '@/config/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { generateVisibilityQuery } from '../../common/generate-visibility-query'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; diff --git a/src/server/api/endpoints/notes/show.ts b/src/server/api/endpoints/notes/show.ts index fc8e30788..fad63d648 100644 --- a/src/server/api/endpoints/notes/show.ts +++ b/src/server/api/endpoints/notes/show.ts @@ -3,7 +3,7 @@ import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { getNote } from '../../common/getters'; import { ApiError } from '../../error'; -import { Notes } from '../../../../models'; +import { Notes } from '@/models/index'; export const meta = { tags: ['notes'], diff --git a/src/server/api/endpoints/notes/state.ts b/src/server/api/endpoints/notes/state.ts index 8af09f07d..489902435 100644 --- a/src/server/api/endpoints/notes/state.ts +++ b/src/server/api/endpoints/notes/state.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { NoteFavorites, NoteWatchings } from '../../../../models'; +import { NoteFavorites, NoteWatchings } from '@/models/index'; export const meta = { tags: ['notes'], diff --git a/src/server/api/endpoints/notes/timeline.ts b/src/server/api/endpoints/notes/timeline.ts index 5f0340091..1bd0e57d3 100644 --- a/src/server/api/endpoints/notes/timeline.ts +++ b/src/server/api/endpoints/notes/timeline.ts @@ -2,10 +2,10 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { makePaginationQuery } from '../../common/make-pagination-query'; -import { Notes, Followings } from '../../../../models'; +import { Notes, Followings } from '@/models/index'; import { generateVisibilityQuery } from '../../common/generate-visibility-query'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; -import { activeUsersChart } from '../../../../services/chart'; +import { activeUsersChart } from '@/services/chart/index'; import { Brackets } from 'typeorm'; import { generateRepliesQuery } from '../../common/generate-replies-query'; import { generateMutedNoteQuery } from '../../common/generate-muted-note-query'; diff --git a/src/server/api/endpoints/notes/translate.ts b/src/server/api/endpoints/notes/translate.ts index 67c02432c..a5fdf70ce 100644 --- a/src/server/api/endpoints/notes/translate.ts +++ b/src/server/api/endpoints/notes/translate.ts @@ -4,7 +4,7 @@ import define from '../../define'; import { getNote } from '../../common/getters'; import { ApiError } from '../../error'; import fetch from 'node-fetch'; -import config from '@/config'; +import config from '@/config/index'; import { getAgentByUrl } from '@/misc/fetch'; import { URLSearchParams } from 'url'; import { fetchMeta } from '@/misc/fetch-meta'; diff --git a/src/server/api/endpoints/notes/unrenote.ts b/src/server/api/endpoints/notes/unrenote.ts index 5e016f293..dce43d9d9 100644 --- a/src/server/api/endpoints/notes/unrenote.ts +++ b/src/server/api/endpoints/notes/unrenote.ts @@ -1,11 +1,11 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import deleteNote from '../../../../services/note/delete'; +import deleteNote from '@/services/note/delete'; import define from '../../define'; import * as ms from 'ms'; import { getNote } from '../../common/getters'; import { ApiError } from '../../error'; -import { Notes, Users } from '../../../../models'; +import { Notes, Users } from '@/models/index'; export const meta = { tags: ['notes'], diff --git a/src/server/api/endpoints/notes/user-list-timeline.ts b/src/server/api/endpoints/notes/user-list-timeline.ts index e160fff25..32c370004 100644 --- a/src/server/api/endpoints/notes/user-list-timeline.ts +++ b/src/server/api/endpoints/notes/user-list-timeline.ts @@ -2,10 +2,10 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { UserLists, UserListJoinings, Notes } from '../../../../models'; +import { UserLists, UserListJoinings, Notes } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { generateVisibilityQuery } from '../../common/generate-visibility-query'; -import { activeUsersChart } from '../../../../services/chart'; +import { activeUsersChart } from '@/services/chart/index'; import { Brackets } from 'typeorm'; export const meta = { diff --git a/src/server/api/endpoints/notes/watching/create.ts b/src/server/api/endpoints/notes/watching/create.ts index 74d31fe1a..4d182d371 100644 --- a/src/server/api/endpoints/notes/watching/create.ts +++ b/src/server/api/endpoints/notes/watching/create.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; -import watch from '../../../../../services/note/watch'; +import watch from '@/services/note/watch'; import { getNote } from '../../../common/getters'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/notes/watching/delete.ts b/src/server/api/endpoints/notes/watching/delete.ts index a91d72be0..dd58c52b5 100644 --- a/src/server/api/endpoints/notes/watching/delete.ts +++ b/src/server/api/endpoints/notes/watching/delete.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; -import unwatch from '../../../../../services/note/unwatch'; +import unwatch from '@/services/note/unwatch'; import { getNote } from '../../../common/getters'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/notifications/create.ts b/src/server/api/endpoints/notifications/create.ts index 6267699e9..8003c497e 100644 --- a/src/server/api/endpoints/notifications/create.ts +++ b/src/server/api/endpoints/notifications/create.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { createNotification } from '../../../../services/create-notification'; +import { createNotification } from '@/services/create-notification'; export const meta = { tags: ['notifications'], diff --git a/src/server/api/endpoints/notifications/mark-all-as-read.ts b/src/server/api/endpoints/notifications/mark-all-as-read.ts index cce54587c..8d4e51275 100644 --- a/src/server/api/endpoints/notifications/mark-all-as-read.ts +++ b/src/server/api/endpoints/notifications/mark-all-as-read.ts @@ -1,6 +1,6 @@ -import { publishMainStream } from '../../../../services/stream'; +import { publishMainStream } from '@/services/stream'; import define from '../../define'; -import { Notifications } from '../../../../models'; +import { Notifications } from '@/models/index'; export const meta = { tags: ['notifications', 'account'], diff --git a/src/server/api/endpoints/notifications/read.ts b/src/server/api/endpoints/notifications/read.ts index fe8e5ba44..66bbc4efd 100644 --- a/src/server/api/endpoints/notifications/read.ts +++ b/src/server/api/endpoints/notifications/read.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import { publishMainStream } from '../../../../services/stream'; +import { publishMainStream } from '@/services/stream'; import define from '../../define'; -import { Notifications } from '../../../../models'; +import { Notifications } from '@/models/index'; import { readNotification } from '../../common/read-notification'; import { ApiError } from '../../error'; diff --git a/src/server/api/endpoints/page-push.ts b/src/server/api/endpoints/page-push.ts index 9ec9f9184..a0412e89f 100644 --- a/src/server/api/endpoints/page-push.ts +++ b/src/server/api/endpoints/page-push.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import define from '../define'; import { ID } from '@/misc/cafy-id'; -import { publishMainStream } from '../../../services/stream'; -import { Users, Pages } from '../../../models'; +import { publishMainStream } from '@/services/stream'; +import { Users, Pages } from '@/models/index'; import { ApiError } from '../error'; export const meta = { diff --git a/src/server/api/endpoints/pages/create.ts b/src/server/api/endpoints/pages/create.ts index 07e0969bd..c23978f09 100644 --- a/src/server/api/endpoints/pages/create.ts +++ b/src/server/api/endpoints/pages/create.ts @@ -2,9 +2,9 @@ import $ from 'cafy'; import * as ms from 'ms'; import define from '../../define'; import { ID } from '@/misc/cafy-id'; -import { Pages, DriveFiles } from '../../../../models'; +import { Pages, DriveFiles } from '@/models/index'; import { genId } from '@/misc/gen-id'; -import { Page } from '../../../../models/entities/page'; +import { Page } from '@/models/entities/page'; import { ApiError } from '../../error'; export const meta = { diff --git a/src/server/api/endpoints/pages/delete.ts b/src/server/api/endpoints/pages/delete.ts index 12a3360e4..b1f8c8a70 100644 --- a/src/server/api/endpoints/pages/delete.ts +++ b/src/server/api/endpoints/pages/delete.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; -import { Pages } from '../../../../models'; +import { Pages } from '@/models/index'; import { ID } from '@/misc/cafy-id'; export const meta = { diff --git a/src/server/api/endpoints/pages/featured.ts b/src/server/api/endpoints/pages/featured.ts index 19802d044..f891c45f0 100644 --- a/src/server/api/endpoints/pages/featured.ts +++ b/src/server/api/endpoints/pages/featured.ts @@ -1,5 +1,5 @@ import define from '../../define'; -import { Pages } from '../../../../models'; +import { Pages } from '@/models/index'; export const meta = { tags: ['pages'], diff --git a/src/server/api/endpoints/pages/like.ts b/src/server/api/endpoints/pages/like.ts index bed8e975e..a95a37780 100644 --- a/src/server/api/endpoints/pages/like.ts +++ b/src/server/api/endpoints/pages/like.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { Pages, PageLikes } from '../../../../models'; +import { Pages, PageLikes } from '@/models/index'; import { genId } from '@/misc/gen-id'; export const meta = { diff --git a/src/server/api/endpoints/pages/show.ts b/src/server/api/endpoints/pages/show.ts index d4d04bccf..7c55d4a9e 100644 --- a/src/server/api/endpoints/pages/show.ts +++ b/src/server/api/endpoints/pages/show.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; -import { Pages, Users } from '../../../../models'; +import { Pages, Users } from '@/models/index'; import { ID } from '@/misc/cafy-id'; -import { Page } from '../../../../models/entities/page'; +import { Page } from '@/models/entities/page'; export const meta = { tags: ['pages'], diff --git a/src/server/api/endpoints/pages/unlike.ts b/src/server/api/endpoints/pages/unlike.ts index a5e22a2c7..facf2d6d5 100644 --- a/src/server/api/endpoints/pages/unlike.ts +++ b/src/server/api/endpoints/pages/unlike.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { Pages, PageLikes } from '../../../../models'; +import { Pages, PageLikes } from '@/models/index'; export const meta = { tags: ['pages'], diff --git a/src/server/api/endpoints/pages/update.ts b/src/server/api/endpoints/pages/update.ts index 6d1ae4c6f..b3a7f2696 100644 --- a/src/server/api/endpoints/pages/update.ts +++ b/src/server/api/endpoints/pages/update.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import * as ms from 'ms'; import define from '../../define'; import { ApiError } from '../../error'; -import { Pages, DriveFiles } from '../../../../models'; +import { Pages, DriveFiles } from '@/models/index'; import { ID } from '@/misc/cafy-id'; import { Not } from 'typeorm'; diff --git a/src/server/api/endpoints/pinned-users.ts b/src/server/api/endpoints/pinned-users.ts index bcef072fe..e88dfbd53 100644 --- a/src/server/api/endpoints/pinned-users.ts +++ b/src/server/api/endpoints/pinned-users.ts @@ -1,8 +1,8 @@ import define from '../define'; -import { Users } from '../../../models'; +import { Users } from '@/models/index'; import { fetchMeta } from '@/misc/fetch-meta'; import { parseAcct } from '@/misc/acct'; -import { User } from '../../../models/entities/user'; +import { User } from '@/models/entities/user'; export const meta = { tags: ['users'], diff --git a/src/server/api/endpoints/promo/read.ts b/src/server/api/endpoints/promo/read.ts index 32b543295..ae57bf9cf 100644 --- a/src/server/api/endpoints/promo/read.ts +++ b/src/server/api/endpoints/promo/read.ts @@ -3,7 +3,7 @@ import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { getNote } from '../../common/getters'; -import { PromoReads } from '../../../../models'; +import { PromoReads } from '@/models/index'; import { genId } from '@/misc/gen-id'; export const meta = { diff --git a/src/server/api/endpoints/request-reset-password.ts b/src/server/api/endpoints/request-reset-password.ts index c880df752..f9928c2ee 100644 --- a/src/server/api/endpoints/request-reset-password.ts +++ b/src/server/api/endpoints/request-reset-password.ts @@ -1,11 +1,11 @@ import $ from 'cafy'; -import { publishMainStream } from '../../../services/stream'; +import { publishMainStream } from '@/services/stream'; import define from '../define'; import rndstr from 'rndstr'; -import config from '@/config'; +import config from '@/config/index'; import * as ms from 'ms'; -import { Users, UserProfiles, PasswordResetRequests } from '../../../models'; -import { sendEmail } from '../../../services/send-email'; +import { Users, UserProfiles, PasswordResetRequests } from '@/models/index'; +import { sendEmail } from '@/services/send-email'; import { ApiError } from '../error'; import { genId } from '@/misc/gen-id'; import { IsNull } from 'typeorm'; diff --git a/src/server/api/endpoints/reset-password.ts b/src/server/api/endpoints/reset-password.ts index 5f79bdbd0..53b0bfde0 100644 --- a/src/server/api/endpoints/reset-password.ts +++ b/src/server/api/endpoints/reset-password.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import * as bcrypt from 'bcryptjs'; -import { publishMainStream } from '../../../services/stream'; +import { publishMainStream } from '@/services/stream'; import define from '../define'; -import { Users, UserProfiles, PasswordResetRequests } from '../../../models'; +import { Users, UserProfiles, PasswordResetRequests } from '@/models/index'; import { ApiError } from '../error'; export const meta = { diff --git a/src/server/api/endpoints/room/show.ts b/src/server/api/endpoints/room/show.ts index 85cd57aef..a6461d4a6 100644 --- a/src/server/api/endpoints/room/show.ts +++ b/src/server/api/endpoints/room/show.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; -import { Users, UserProfiles } from '../../../../models'; +import { Users, UserProfiles } from '@/models/index'; import { ID } from '@/misc/cafy-id'; import { toPunyNullable } from '@/misc/convert-host'; diff --git a/src/server/api/endpoints/room/update.ts b/src/server/api/endpoints/room/update.ts index af8b80be9..8c4cfbdea 100644 --- a/src/server/api/endpoints/room/update.ts +++ b/src/server/api/endpoints/room/update.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; -import { publishMainStream } from '../../../../services/stream'; +import { publishMainStream } from '@/services/stream'; import define from '../../define'; -import { Users, UserProfiles } from '../../../../models'; +import { Users, UserProfiles } from '@/models/index'; export const meta = { tags: ['room'], diff --git a/src/server/api/endpoints/stats.ts b/src/server/api/endpoints/stats.ts index f9c17f86e..15c800174 100644 --- a/src/server/api/endpoints/stats.ts +++ b/src/server/api/endpoints/stats.ts @@ -1,6 +1,6 @@ import define from '../define'; -import { NoteReactions, Notes, Users } from '../../../models'; -import { federationChart, driveChart } from '../../../services/chart'; +import { NoteReactions, Notes, Users } from '@/models/index'; +import { federationChart, driveChart } from '@/services/chart/index'; export const meta = { requireCredential: false as const, diff --git a/src/server/api/endpoints/sw/register.ts b/src/server/api/endpoints/sw/register.ts index 43d4118df..6e14ba266 100644 --- a/src/server/api/endpoints/sw/register.ts +++ b/src/server/api/endpoints/sw/register.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import define from '../../define'; import { fetchMeta } from '@/misc/fetch-meta'; import { genId } from '@/misc/gen-id'; -import { SwSubscriptions } from '../../../../models'; +import { SwSubscriptions } from '@/models/index'; export const meta = { tags: ['account'], diff --git a/src/server/api/endpoints/sw/unregister.ts b/src/server/api/endpoints/sw/unregister.ts new file mode 100644 index 000000000..817ad1f51 --- /dev/null +++ b/src/server/api/endpoints/sw/unregister.ts @@ -0,0 +1,22 @@ +import $ from 'cafy'; +import define from '../../define'; +import { SwSubscriptions } from '../../../../models'; + +export const meta = { + tags: ['account'], + + requireCredential: true as const, + + params: { + endpoint: { + validator: $.str + }, + } +}; + +export default define(meta, async (ps, user) => { + await SwSubscriptions.delete({ + userId: user.id, + endpoint: ps.endpoint, + }); +}); diff --git a/src/server/api/endpoints/username/available.ts b/src/server/api/endpoints/username/available.ts index cd434b582..1ae75448e 100644 --- a/src/server/api/endpoints/username/available.ts +++ b/src/server/api/endpoints/username/available.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { Users, UsedUsernames } from '../../../../models'; +import { Users, UsedUsernames } from '@/models/index'; export const meta = { tags: ['users'], diff --git a/src/server/api/endpoints/users.ts b/src/server/api/endpoints/users.ts index 3c30f459d..930dcc761 100644 --- a/src/server/api/endpoints/users.ts +++ b/src/server/api/endpoints/users.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import define from '../define'; -import { Users } from '../../../models'; +import { Users } from '@/models/index'; import { generateMutedUserQueryForUsers } from '../common/generate-muted-user-query'; -import { generateBlockedUserQuery } from '../common/generate-block-query'; +import { generateBlockQueryForUsers } from '../common/generate-block-query'; export const meta = { tags: ['users'], @@ -90,7 +90,7 @@ export default define(meta, async (ps, me) => { } if (me) generateMutedUserQueryForUsers(query, me); - if (me) generateBlockedUserQuery(query, me); + if (me) generateBlockQueryForUsers(query, me); query.take(ps.limit!); query.skip(ps.offset); diff --git a/src/server/api/endpoints/users/clips.ts b/src/server/api/endpoints/users/clips.ts index 12aa96403..8feca9422 100644 --- a/src/server/api/endpoints/users/clips.ts +++ b/src/server/api/endpoints/users/clips.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { Clips } from '../../../../models'; +import { Clips } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/users/followers.ts b/src/server/api/endpoints/users/followers.ts index c9fe36e4e..e54b6078e 100644 --- a/src/server/api/endpoints/users/followers.ts +++ b/src/server/api/endpoints/users/followers.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { Users, Followings } from '../../../../models'; +import { Users, Followings } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { toPunyNullable } from '@/misc/convert-host'; diff --git a/src/server/api/endpoints/users/following.ts b/src/server/api/endpoints/users/following.ts index c3dd90ff7..f2ef7f47e 100644 --- a/src/server/api/endpoints/users/following.ts +++ b/src/server/api/endpoints/users/following.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { Users, Followings } from '../../../../models'; +import { Users, Followings } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { toPunyNullable } from '@/misc/convert-host'; diff --git a/src/server/api/endpoints/users/gallery/posts.ts b/src/server/api/endpoints/users/gallery/posts.ts index 1da6bced5..845de1089 100644 --- a/src/server/api/endpoints/users/gallery/posts.ts +++ b/src/server/api/endpoints/users/gallery/posts.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; -import { GalleryPosts } from '../../../../../models'; +import { GalleryPosts } from '@/models/index'; import { makePaginationQuery } from '../../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/users/get-frequently-replied-users.ts b/src/server/api/endpoints/users/get-frequently-replied-users.ts index bdfb7772a..32ebfd683 100644 --- a/src/server/api/endpoints/users/get-frequently-replied-users.ts +++ b/src/server/api/endpoints/users/get-frequently-replied-users.ts @@ -1,11 +1,11 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { maximum } from '../../../../prelude/array'; +import { maximum } from '@/prelude/array'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; import { Not, In, IsNull } from 'typeorm'; -import { Notes, Users } from '../../../../models'; +import { Notes, Users } from '@/models/index'; export const meta = { tags: ['users'], diff --git a/src/server/api/endpoints/users/groups/create.ts b/src/server/api/endpoints/users/groups/create.ts index 2cd0653ba..dc1ee3879 100644 --- a/src/server/api/endpoints/users/groups/create.ts +++ b/src/server/api/endpoints/users/groups/create.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import define from '../../../define'; -import { UserGroups, UserGroupJoinings } from '../../../../../models'; +import { UserGroups, UserGroupJoinings } from '@/models/index'; import { genId } from '@/misc/gen-id'; -import { UserGroup } from '../../../../../models/entities/user-group'; -import { UserGroupJoining } from '../../../../../models/entities/user-group-joining'; +import { UserGroup } from '@/models/entities/user-group'; +import { UserGroupJoining } from '@/models/entities/user-group-joining'; export const meta = { tags: ['groups'], diff --git a/src/server/api/endpoints/users/groups/delete.ts b/src/server/api/endpoints/users/groups/delete.ts index 4c4a8c15b..7da1b4a27 100644 --- a/src/server/api/endpoints/users/groups/delete.ts +++ b/src/server/api/endpoints/users/groups/delete.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { UserGroups } from '../../../../../models'; +import { UserGroups } from '@/models/index'; export const meta = { tags: ['groups'], diff --git a/src/server/api/endpoints/users/groups/invitations/accept.ts b/src/server/api/endpoints/users/groups/invitations/accept.ts index 943d15866..09e6ae264 100644 --- a/src/server/api/endpoints/users/groups/invitations/accept.ts +++ b/src/server/api/endpoints/users/groups/invitations/accept.ts @@ -2,9 +2,9 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../../define'; import { ApiError } from '../../../../error'; -import { UserGroupJoinings, UserGroupInvitations } from '../../../../../../models'; +import { UserGroupJoinings, UserGroupInvitations } from '@/models/index'; import { genId } from '@/misc/gen-id'; -import { UserGroupJoining } from '../../../../../../models/entities/user-group-joining'; +import { UserGroupJoining } from '@/models/entities/user-group-joining'; export const meta = { tags: ['groups', 'users'], diff --git a/src/server/api/endpoints/users/groups/invitations/reject.ts b/src/server/api/endpoints/users/groups/invitations/reject.ts index 4bc902ae5..741fcefb3 100644 --- a/src/server/api/endpoints/users/groups/invitations/reject.ts +++ b/src/server/api/endpoints/users/groups/invitations/reject.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../../define'; import { ApiError } from '../../../../error'; -import { UserGroupInvitations } from '../../../../../../models'; +import { UserGroupInvitations } from '@/models/index'; export const meta = { tags: ['groups', 'users'], diff --git a/src/server/api/endpoints/users/groups/invite.ts b/src/server/api/endpoints/users/groups/invite.ts index 688b18f69..f1ee8bf8b 100644 --- a/src/server/api/endpoints/users/groups/invite.ts +++ b/src/server/api/endpoints/users/groups/invite.ts @@ -3,10 +3,10 @@ import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; -import { UserGroups, UserGroupJoinings, UserGroupInvitations } from '../../../../../models'; +import { UserGroups, UserGroupJoinings, UserGroupInvitations } from '@/models/index'; import { genId } from '@/misc/gen-id'; -import { UserGroupInvitation } from '../../../../../models/entities/user-group-invitation'; -import { createNotification } from '../../../../../services/create-notification'; +import { UserGroupInvitation } from '@/models/entities/user-group-invitation'; +import { createNotification } from '@/services/create-notification'; export const meta = { tags: ['groups', 'users'], diff --git a/src/server/api/endpoints/users/groups/joined.ts b/src/server/api/endpoints/users/groups/joined.ts index b25341c85..d5e8fe403 100644 --- a/src/server/api/endpoints/users/groups/joined.ts +++ b/src/server/api/endpoints/users/groups/joined.ts @@ -1,5 +1,5 @@ import define from '../../../define'; -import { UserGroups, UserGroupJoinings } from '../../../../../models'; +import { UserGroups, UserGroupJoinings } from '@/models/index'; import { Not, In } from 'typeorm'; export const meta = { diff --git a/src/server/api/endpoints/users/groups/owned.ts b/src/server/api/endpoints/users/groups/owned.ts index e0b003c9e..17de370db 100644 --- a/src/server/api/endpoints/users/groups/owned.ts +++ b/src/server/api/endpoints/users/groups/owned.ts @@ -1,5 +1,5 @@ import define from '../../../define'; -import { UserGroups } from '../../../../../models'; +import { UserGroups } from '@/models/index'; export const meta = { tags: ['groups', 'account'], diff --git a/src/server/api/endpoints/users/groups/pull.ts b/src/server/api/endpoints/users/groups/pull.ts index d93a16bd9..ce4d2e288 100644 --- a/src/server/api/endpoints/users/groups/pull.ts +++ b/src/server/api/endpoints/users/groups/pull.ts @@ -3,7 +3,7 @@ import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; -import { UserGroups, UserGroupJoinings } from '../../../../../models'; +import { UserGroups, UserGroupJoinings } from '@/models/index'; export const meta = { tags: ['groups', 'users'], diff --git a/src/server/api/endpoints/users/groups/show.ts b/src/server/api/endpoints/users/groups/show.ts index 1b71933c2..3c030bf3a 100644 --- a/src/server/api/endpoints/users/groups/show.ts +++ b/src/server/api/endpoints/users/groups/show.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { UserGroups, UserGroupJoinings } from '../../../../../models'; +import { UserGroups, UserGroupJoinings } from '@/models/index'; export const meta = { tags: ['groups', 'account'], diff --git a/src/server/api/endpoints/users/groups/transfer.ts b/src/server/api/endpoints/users/groups/transfer.ts index d6376993c..17c42e112 100644 --- a/src/server/api/endpoints/users/groups/transfer.ts +++ b/src/server/api/endpoints/users/groups/transfer.ts @@ -3,7 +3,7 @@ import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; -import { UserGroups, UserGroupJoinings } from '../../../../../models'; +import { UserGroups, UserGroupJoinings } from '@/models/index'; export const meta = { tags: ['groups', 'users'], diff --git a/src/server/api/endpoints/users/groups/update.ts b/src/server/api/endpoints/users/groups/update.ts index a403152b4..127bbc47a 100644 --- a/src/server/api/endpoints/users/groups/update.ts +++ b/src/server/api/endpoints/users/groups/update.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { UserGroups } from '../../../../../models'; +import { UserGroups } from '@/models/index'; export const meta = { tags: ['groups'], diff --git a/src/server/api/endpoints/users/lists/create.ts b/src/server/api/endpoints/users/lists/create.ts index c52413008..e0bfe611f 100644 --- a/src/server/api/endpoints/users/lists/create.ts +++ b/src/server/api/endpoints/users/lists/create.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import define from '../../../define'; -import { UserLists } from '../../../../../models'; +import { UserLists } from '@/models/index'; import { genId } from '@/misc/gen-id'; -import { UserList } from '../../../../../models/entities/user-list'; +import { UserList } from '@/models/entities/user-list'; export const meta = { tags: ['lists'], diff --git a/src/server/api/endpoints/users/lists/delete.ts b/src/server/api/endpoints/users/lists/delete.ts index ecae5641c..5fe3bfb03 100644 --- a/src/server/api/endpoints/users/lists/delete.ts +++ b/src/server/api/endpoints/users/lists/delete.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { UserLists } from '../../../../../models'; +import { UserLists } from '@/models/index'; export const meta = { tags: ['lists'], diff --git a/src/server/api/endpoints/users/lists/list.ts b/src/server/api/endpoints/users/lists/list.ts index 154820871..cf0c92bb8 100644 --- a/src/server/api/endpoints/users/lists/list.ts +++ b/src/server/api/endpoints/users/lists/list.ts @@ -1,5 +1,5 @@ import define from '../../../define'; -import { UserLists } from '../../../../../models'; +import { UserLists } from '@/models/index'; export const meta = { tags: ['lists', 'account'], diff --git a/src/server/api/endpoints/users/lists/pull.ts b/src/server/api/endpoints/users/lists/pull.ts index f8b5df0fc..d4357fc5e 100644 --- a/src/server/api/endpoints/users/lists/pull.ts +++ b/src/server/api/endpoints/users/lists/pull.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; -import { publishUserListStream } from '../../../../../services/stream'; +import { publishUserListStream } from '@/services/stream'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; -import { UserLists, UserListJoinings, Users } from '../../../../../models'; +import { UserLists, UserListJoinings, Users } from '@/models/index'; export const meta = { tags: ['lists', 'users'], diff --git a/src/server/api/endpoints/users/lists/push.ts b/src/server/api/endpoints/users/lists/push.ts index 7bb6fc7f7..8e21059d3 100644 --- a/src/server/api/endpoints/users/lists/push.ts +++ b/src/server/api/endpoints/users/lists/push.ts @@ -3,8 +3,8 @@ import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; -import { pushUserToUserList } from '../../../../../services/user-list/push'; -import { UserLists, UserListJoinings, Blockings } from '../../../../../models'; +import { pushUserToUserList } from '@/services/user-list/push'; +import { UserLists, UserListJoinings, Blockings } from '@/models/index'; export const meta = { tags: ['lists', 'users'], diff --git a/src/server/api/endpoints/users/lists/show.ts b/src/server/api/endpoints/users/lists/show.ts index ff9ed001f..f9a35cdab 100644 --- a/src/server/api/endpoints/users/lists/show.ts +++ b/src/server/api/endpoints/users/lists/show.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { UserLists } from '../../../../../models'; +import { UserLists } from '@/models/index'; export const meta = { tags: ['lists', 'account'], diff --git a/src/server/api/endpoints/users/lists/update.ts b/src/server/api/endpoints/users/lists/update.ts index eaa420a5b..1185af504 100644 --- a/src/server/api/endpoints/users/lists/update.ts +++ b/src/server/api/endpoints/users/lists/update.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; -import { UserLists } from '../../../../../models'; +import { UserLists } from '@/models/index'; export const meta = { tags: ['lists'], diff --git a/src/server/api/endpoints/users/notes.ts b/src/server/api/endpoints/users/notes.ts index 836c3c97b..0afbad9d0 100644 --- a/src/server/api/endpoints/users/notes.ts +++ b/src/server/api/endpoints/users/notes.ts @@ -5,7 +5,7 @@ import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { generateVisibilityQuery } from '../../common/generate-visibility-query'; -import { Notes } from '../../../../models'; +import { Notes } from '@/models/index'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; import { Brackets } from 'typeorm'; import { generateBlockedUserQuery } from '../../common/generate-block-query'; diff --git a/src/server/api/endpoints/users/pages.ts b/src/server/api/endpoints/users/pages.ts index b9f37f321..24e9e207f 100644 --- a/src/server/api/endpoints/users/pages.ts +++ b/src/server/api/endpoints/users/pages.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { Pages } from '../../../../models'; +import { Pages } from '@/models/index'; import { makePaginationQuery } from '../../common/make-pagination-query'; export const meta = { diff --git a/src/server/api/endpoints/users/recommendation.ts b/src/server/api/endpoints/users/recommendation.ts index fba4f4f68..dde6bb103 100644 --- a/src/server/api/endpoints/users/recommendation.ts +++ b/src/server/api/endpoints/users/recommendation.ts @@ -1,7 +1,7 @@ import * as ms from 'ms'; import $ from 'cafy'; import define from '../../define'; -import { Users, Followings } from '../../../../models'; +import { Users, Followings } from '@/models/index'; import { generateMutedUserQueryForUsers } from '../../common/generate-muted-user-query'; import { generateBlockedUserQuery, generateBlockQueryForUsers } from '../../common/generate-block-query'; diff --git a/src/server/api/endpoints/users/relation.ts b/src/server/api/endpoints/users/relation.ts index 18ec5d44b..32d76a532 100644 --- a/src/server/api/endpoints/users/relation.ts +++ b/src/server/api/endpoints/users/relation.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; import { ID } from '@/misc/cafy-id'; -import { Users } from '../../../../models'; +import { Users } from '@/models/index'; export const meta = { tags: ['users'], diff --git a/src/server/api/endpoints/users/report-abuse.ts b/src/server/api/endpoints/users/report-abuse.ts index 776d68370..2c8672cd4 100644 --- a/src/server/api/endpoints/users/report-abuse.ts +++ b/src/server/api/endpoints/users/report-abuse.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { publishAdminStream } from '../../../../services/stream'; +import { publishAdminStream } from '@/services/stream'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; -import { AbuseUserReports, Users } from '../../../../models'; +import { AbuseUserReports, Users } from '@/models/index'; import { genId } from '@/misc/gen-id'; export const meta = { diff --git a/src/server/api/endpoints/users/search-by-username-and-host.ts b/src/server/api/endpoints/users/search-by-username-and-host.ts index 13c5a18db..b9fbf48fb 100644 --- a/src/server/api/endpoints/users/search-by-username-and-host.ts +++ b/src/server/api/endpoints/users/search-by-username-and-host.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { Users } from '../../../../models'; +import { Users } from '@/models/index'; export const meta = { tags: ['users'], diff --git a/src/server/api/endpoints/users/search.ts b/src/server/api/endpoints/users/search.ts index c183194c4..8011d90b3 100644 --- a/src/server/api/endpoints/users/search.ts +++ b/src/server/api/endpoints/users/search.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; -import { UserProfiles, Users } from '../../../../models'; -import { User } from '../../../../models/entities/user'; +import { UserProfiles, Users } from '@/models/index'; +import { User } from '@/models/entities/user'; export const meta = { tags: ['users'], diff --git a/src/server/api/endpoints/users/show.ts b/src/server/api/endpoints/users/show.ts index fde2b5a14..f05698363 100644 --- a/src/server/api/endpoints/users/show.ts +++ b/src/server/api/endpoints/users/show.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; -import { resolveUser } from '../../../../remote/resolve-user'; +import { resolveUser } from '@/remote/resolve-user'; import define from '../../define'; import { apiLogger } from '../../logger'; import { ApiError } from '../../error'; import { ID } from '@/misc/cafy-id'; -import { Users } from '../../../../models'; +import { Users } from '@/models/index'; import { In } from 'typeorm'; import { User } from '@/models/entities/user'; diff --git a/src/server/api/endpoints/users/stats.ts b/src/server/api/endpoints/users/stats.ts index 6763c1774..ef8afd562 100644 --- a/src/server/api/endpoints/users/stats.ts +++ b/src/server/api/endpoints/users/stats.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; import { ID } from '@/misc/cafy-id'; -import { DriveFiles, Followings, NoteFavorites, NoteReactions, Notes, PageLikes, PollVotes, ReversiGames, Users } from '../../../../models'; +import { DriveFiles, Followings, NoteFavorites, NoteReactions, Notes, PageLikes, PollVotes, ReversiGames, Users } from '@/models/index'; export const meta = { tags: ['users'], diff --git a/src/server/api/index.ts b/src/server/api/index.ts index aec4a9737..55083261e 100644 --- a/src/server/api/index.ts +++ b/src/server/api/index.ts @@ -15,7 +15,7 @@ import signin from './private/signin'; import discord from './service/discord'; import github from './service/github'; import twitter from './service/twitter'; -import { Instances, AccessTokens, Users } from '../../models'; +import { Instances, AccessTokens, Users } from '@/models/index'; // Init app const app = new Koa(); diff --git a/src/server/api/limiter.ts b/src/server/api/limiter.ts index 540ca2499..e677aad0b 100644 --- a/src/server/api/limiter.ts +++ b/src/server/api/limiter.ts @@ -2,8 +2,8 @@ import * as Limiter from 'ratelimiter'; import { redisClient } from '../../db/redis'; import { IEndpoint } from './endpoints'; import { getAcct } from '@/misc/acct'; -import { User } from '../../models/entities/user'; -import Logger from '../../services/logger'; +import { User } from '@/models/entities/user'; +import Logger from '@/services/logger'; const logger = new Logger('limiter'); diff --git a/src/server/api/logger.ts b/src/server/api/logger.ts index dde4b0d5f..750defe54 100644 --- a/src/server/api/logger.ts +++ b/src/server/api/logger.ts @@ -1,3 +1,3 @@ -import Logger from '../../services/logger'; +import Logger from '@/services/logger'; export const apiLogger = new Logger('api'); diff --git a/src/server/api/openapi/description.ts b/src/server/api/openapi/description.ts index 6306920b7..e51b31225 100644 --- a/src/server/api/openapi/description.ts +++ b/src/server/api/openapi/description.ts @@ -1,5 +1,5 @@ import endpoints from '../endpoints'; -import * as locale from '../../../../locales/'; +import * as locale from '../../../../locales/index'; import { kinds as kindsList } from '@/misc/api-permissions'; export interface IKindInfo { diff --git a/src/server/api/openapi/gen-spec.ts b/src/server/api/openapi/gen-spec.ts index adac3bda2..9db47c6df 100644 --- a/src/server/api/openapi/gen-spec.ts +++ b/src/server/api/openapi/gen-spec.ts @@ -1,6 +1,6 @@ import endpoints from '../endpoints'; import { Context } from 'cafy'; -import config from '@/config'; +import config from '@/config/index'; import { errors as basicErrors } from './errors'; import { schemas, convertSchemaToOpenApiSchema } from './schemas'; import { getDescription } from './description'; diff --git a/src/server/api/openapi/schemas.ts b/src/server/api/openapi/schemas.ts index ee2773fe4..5402dc6f4 100644 --- a/src/server/api/openapi/schemas.ts +++ b/src/server/api/openapi/schemas.ts @@ -1,25 +1,25 @@ -import { packedUserSchema } from '../../../models/repositories/user'; +import { packedUserSchema } from '@/models/repositories/user'; import { Schema } from '@/misc/schema'; -import { packedNoteSchema } from '../../../models/repositories/note'; -import { packedUserListSchema } from '../../../models/repositories/user-list'; -import { packedAppSchema } from '../../../models/repositories/app'; -import { packedMessagingMessageSchema } from '../../../models/repositories/messaging-message'; -import { packedNotificationSchema } from '../../../models/repositories/notification'; -import { packedDriveFileSchema } from '../../../models/repositories/drive-file'; -import { packedDriveFolderSchema } from '../../../models/repositories/drive-folder'; -import { packedFollowingSchema } from '../../../models/repositories/following'; -import { packedMutingSchema } from '../../../models/repositories/muting'; -import { packedBlockingSchema } from '../../../models/repositories/blocking'; -import { packedNoteReactionSchema } from '../../../models/repositories/note-reaction'; -import { packedHashtagSchema } from '../../../models/repositories/hashtag'; -import { packedPageSchema } from '../../../models/repositories/page'; -import { packedUserGroupSchema } from '../../../models/repositories/user-group'; -import { packedNoteFavoriteSchema } from '../../../models/repositories/note-favorite'; -import { packedChannelSchema } from '../../../models/repositories/channel'; -import { packedAntennaSchema } from '../../../models/repositories/antenna'; -import { packedClipSchema } from '../../../models/repositories/clip'; -import { packedFederationInstanceSchema } from '../../../models/repositories/federation-instance'; -import { packedQueueCountSchema } from '../../../models/repositories/queue'; +import { packedNoteSchema } from '@/models/repositories/note'; +import { packedUserListSchema } from '@/models/repositories/user-list'; +import { packedAppSchema } from '@/models/repositories/app'; +import { packedMessagingMessageSchema } from '@/models/repositories/messaging-message'; +import { packedNotificationSchema } from '@/models/repositories/notification'; +import { packedDriveFileSchema } from '@/models/repositories/drive-file'; +import { packedDriveFolderSchema } from '@/models/repositories/drive-folder'; +import { packedFollowingSchema } from '@/models/repositories/following'; +import { packedMutingSchema } from '@/models/repositories/muting'; +import { packedBlockingSchema } from '@/models/repositories/blocking'; +import { packedNoteReactionSchema } from '@/models/repositories/note-reaction'; +import { packedHashtagSchema } from '@/models/repositories/hashtag'; +import { packedPageSchema } from '@/models/repositories/page'; +import { packedUserGroupSchema } from '@/models/repositories/user-group'; +import { packedNoteFavoriteSchema } from '@/models/repositories/note-favorite'; +import { packedChannelSchema } from '@/models/repositories/channel'; +import { packedAntennaSchema } from '@/models/repositories/antenna'; +import { packedClipSchema } from '@/models/repositories/clip'; +import { packedFederationInstanceSchema } from '@/models/repositories/federation-instance'; +import { packedQueueCountSchema } from '@/models/repositories/queue'; import { packedGalleryPostSchema } from '@/models/repositories/gallery-post'; export function convertSchemaToOpenApiSchema(schema: Schema) { diff --git a/src/server/api/private/signin.ts b/src/server/api/private/signin.ts index c01c1f265..fff1037ff 100644 --- a/src/server/api/private/signin.ts +++ b/src/server/api/private/signin.ts @@ -2,9 +2,9 @@ import * as Koa from 'koa'; import * as bcrypt from 'bcryptjs'; import * as speakeasy from 'speakeasy'; import signin from '../common/signin'; -import config from '@/config'; -import { Users, Signins, UserProfiles, UserSecurityKeys, AttestationChallenges } from '../../../models'; -import { ILocalUser } from '../../../models/entities/user'; +import config from '@/config/index'; +import { Users, Signins, UserProfiles, UserSecurityKeys, AttestationChallenges } from '@/models/index'; +import { ILocalUser } from '@/models/entities/user'; import { genId } from '@/misc/gen-id'; import { verifyLogin, hash } from '../2fa'; import { randomBytes } from 'crypto'; diff --git a/src/server/api/private/signup.ts b/src/server/api/private/signup.ts index f0cf75797..ef61767f6 100644 --- a/src/server/api/private/signup.ts +++ b/src/server/api/private/signup.ts @@ -1,7 +1,7 @@ import * as Koa from 'koa'; import { fetchMeta } from '@/misc/fetch-meta'; import { verifyHcaptcha, verifyRecaptcha } from '@/misc/captcha'; -import { Users, RegistrationTickets } from '../../../models'; +import { Users, RegistrationTickets } from '@/models/index'; import { signup } from '../common/signup'; export default async (ctx: Koa.Context) => { diff --git a/src/server/api/service/discord.ts b/src/server/api/service/discord.ts index a684e71fc..dd52a2337 100644 --- a/src/server/api/service/discord.ts +++ b/src/server/api/service/discord.ts @@ -2,14 +2,14 @@ import * as Koa from 'koa'; import * as Router from '@koa/router'; import { getJson } from '@/misc/fetch'; import { OAuth2 } from 'oauth'; -import config from '@/config'; -import { publishMainStream } from '../../../services/stream'; +import config from '@/config/index'; +import { publishMainStream } from '@/services/stream'; import { redisClient } from '../../../db/redis'; import { v4 as uuid } from 'uuid'; import signin from '../common/signin'; import { fetchMeta } from '@/misc/fetch-meta'; -import { Users, UserProfiles } from '../../../models'; -import { ILocalUser } from '../../../models/entities/user'; +import { Users, UserProfiles } from '@/models/index'; +import { ILocalUser } from '@/models/entities/user'; function getUserToken(ctx: Koa.Context) { return ((ctx.headers['cookie'] || '').match(/igi=(\w+)/) || [null, null])[1]; diff --git a/src/server/api/service/github.ts b/src/server/api/service/github.ts index 12435b7e8..0616f3f77 100644 --- a/src/server/api/service/github.ts +++ b/src/server/api/service/github.ts @@ -2,14 +2,14 @@ import * as Koa from 'koa'; import * as Router from '@koa/router'; import { getJson } from '@/misc/fetch'; import { OAuth2 } from 'oauth'; -import config from '@/config'; -import { publishMainStream } from '../../../services/stream'; +import config from '@/config/index'; +import { publishMainStream } from '@/services/stream'; import { redisClient } from '../../../db/redis'; import { v4 as uuid } from 'uuid'; import signin from '../common/signin'; import { fetchMeta } from '@/misc/fetch-meta'; -import { Users, UserProfiles } from '../../../models'; -import { ILocalUser } from '../../../models/entities/user'; +import { Users, UserProfiles } from '@/models/index'; +import { ILocalUser } from '@/models/entities/user'; function getUserToken(ctx: Koa.Context) { return ((ctx.headers['cookie'] || '').match(/igi=(\w+)/) || [null, null])[1]; diff --git a/src/server/api/service/twitter.ts b/src/server/api/service/twitter.ts index 8520a5656..8a6a58aee 100644 --- a/src/server/api/service/twitter.ts +++ b/src/server/api/service/twitter.ts @@ -3,12 +3,12 @@ import * as Router from '@koa/router'; import { v4 as uuid } from 'uuid'; import autwh from 'autwh'; import { redisClient } from '../../../db/redis'; -import { publishMainStream } from '../../../services/stream'; -import config from '@/config'; +import { publishMainStream } from '@/services/stream'; +import config from '@/config/index'; import signin from '../common/signin'; import { fetchMeta } from '@/misc/fetch-meta'; -import { Users, UserProfiles } from '../../../models'; -import { ILocalUser } from '../../../models/entities/user'; +import { Users, UserProfiles } from '@/models/index'; +import { ILocalUser } from '@/models/entities/user'; function getUserToken(ctx: Koa.Context) { return ((ctx.headers['cookie'] || '').match(/igi=(\w+)/) || [null, null])[1]; diff --git a/src/server/api/stream/channels/antenna.ts b/src/server/api/stream/channels/antenna.ts index db4fab841..bf9c53c45 100644 --- a/src/server/api/stream/channels/antenna.ts +++ b/src/server/api/stream/channels/antenna.ts @@ -1,6 +1,6 @@ import autobind from 'autobind-decorator'; import Channel from '../channel'; -import { Notes } from '../../../../models'; +import { Notes } from '@/models/index'; import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import { isBlockerUserRelated } from '@/misc/is-blocker-user-related'; diff --git a/src/server/api/stream/channels/channel.ts b/src/server/api/stream/channels/channel.ts index 7910f0f2f..e6a9a6c69 100644 --- a/src/server/api/stream/channels/channel.ts +++ b/src/server/api/stream/channels/channel.ts @@ -1,10 +1,10 @@ import autobind from 'autobind-decorator'; import Channel from '../channel'; -import { Notes, Users } from '../../../../models'; +import { Notes, Users } from '@/models/index'; import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import { isBlockerUserRelated } from '@/misc/is-blocker-user-related'; -import { PackedNote } from '../../../../models/repositories/note'; -import { User } from '../../../../models/entities/user'; +import { PackedNote } from '@/models/repositories/note'; +import { User } from '@/models/entities/user'; export default class extends Channel { public readonly chName = 'channel'; diff --git a/src/server/api/stream/channels/games/reversi-game.ts b/src/server/api/stream/channels/games/reversi-game.ts index e1c2116ac..bfdbf1d26 100644 --- a/src/server/api/stream/channels/games/reversi-game.ts +++ b/src/server/api/stream/channels/games/reversi-game.ts @@ -1,12 +1,12 @@ import autobind from 'autobind-decorator'; import * as CRC32 from 'crc-32'; -import { publishReversiGameStream } from '../../../../../services/stream'; +import { publishReversiGameStream } from '@/services/stream'; import Reversi from '../../../../../games/reversi/core'; import * as maps from '../../../../../games/reversi/maps'; import Channel from '../../channel'; -import { ReversiGame } from '../../../../../models/entities/games/reversi/game'; -import { ReversiGames, Users } from '../../../../../models'; -import { User } from '../../../../../models/entities/user'; +import { ReversiGame } from '@/models/entities/games/reversi/game'; +import { ReversiGames, Users } from '@/models/index'; +import { User } from '@/models/entities/user'; export default class extends Channel { public readonly chName = 'gamesReversiGame'; diff --git a/src/server/api/stream/channels/games/reversi.ts b/src/server/api/stream/channels/games/reversi.ts index e0e41d9ac..3b89aac35 100644 --- a/src/server/api/stream/channels/games/reversi.ts +++ b/src/server/api/stream/channels/games/reversi.ts @@ -1,7 +1,7 @@ import autobind from 'autobind-decorator'; -import { publishMainStream } from '../../../../../services/stream'; +import { publishMainStream } from '@/services/stream'; import Channel from '../../channel'; -import { ReversiMatchings } from '../../../../../models'; +import { ReversiMatchings } from '@/models/index'; export default class extends Channel { public readonly chName = 'gamesReversi'; diff --git a/src/server/api/stream/channels/global-timeline.ts b/src/server/api/stream/channels/global-timeline.ts index 02792bffa..2cb138966 100644 --- a/src/server/api/stream/channels/global-timeline.ts +++ b/src/server/api/stream/channels/global-timeline.ts @@ -2,8 +2,8 @@ import autobind from 'autobind-decorator'; import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import Channel from '../channel'; import { fetchMeta } from '@/misc/fetch-meta'; -import { Notes } from '../../../../models'; -import { PackedNote } from '../../../../models/repositories/note'; +import { Notes } from '@/models/index'; +import { PackedNote } from '@/models/repositories/note'; import { checkWordMute } from '@/misc/check-word-mute'; import { isBlockerUserRelated } from '@/misc/is-blocker-user-related'; diff --git a/src/server/api/stream/channels/hashtag.ts b/src/server/api/stream/channels/hashtag.ts index 4cabd4db6..997ab75f6 100644 --- a/src/server/api/stream/channels/hashtag.ts +++ b/src/server/api/stream/channels/hashtag.ts @@ -1,8 +1,8 @@ import autobind from 'autobind-decorator'; import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import Channel from '../channel'; -import { Notes } from '../../../../models'; -import { PackedNote } from '../../../../models/repositories/note'; +import { Notes } from '@/models/index'; +import { PackedNote } from '@/models/repositories/note'; import { normalizeForSearch } from '@/misc/normalize-for-search'; import { isBlockerUserRelated } from '@/misc/is-blocker-user-related'; diff --git a/src/server/api/stream/channels/home-timeline.ts b/src/server/api/stream/channels/home-timeline.ts index 7659b5ffa..c7a972874 100644 --- a/src/server/api/stream/channels/home-timeline.ts +++ b/src/server/api/stream/channels/home-timeline.ts @@ -1,8 +1,8 @@ import autobind from 'autobind-decorator'; import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import Channel from '../channel'; -import { Notes } from '../../../../models'; -import { PackedNote } from '../../../../models/repositories/note'; +import { Notes } from '@/models/index'; +import { PackedNote } from '@/models/repositories/note'; import { checkWordMute } from '@/misc/check-word-mute'; import { isBlockerUserRelated } from '@/misc/is-blocker-user-related'; diff --git a/src/server/api/stream/channels/hybrid-timeline.ts b/src/server/api/stream/channels/hybrid-timeline.ts index 664435f67..5c454764e 100644 --- a/src/server/api/stream/channels/hybrid-timeline.ts +++ b/src/server/api/stream/channels/hybrid-timeline.ts @@ -2,9 +2,9 @@ import autobind from 'autobind-decorator'; import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import Channel from '../channel'; import { fetchMeta } from '@/misc/fetch-meta'; -import { Notes } from '../../../../models'; -import { PackedNote } from '../../../../models/repositories/note'; -import { PackedUser } from '../../../../models/repositories/user'; +import { Notes } from '@/models/index'; +import { PackedNote } from '@/models/repositories/note'; +import { PackedUser } from '@/models/repositories/user'; import { checkWordMute } from '@/misc/check-word-mute'; import { isBlockerUserRelated } from '@/misc/is-blocker-user-related'; diff --git a/src/server/api/stream/channels/local-timeline.ts b/src/server/api/stream/channels/local-timeline.ts index 528059dab..4bf0d02ed 100644 --- a/src/server/api/stream/channels/local-timeline.ts +++ b/src/server/api/stream/channels/local-timeline.ts @@ -2,9 +2,9 @@ import autobind from 'autobind-decorator'; import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import Channel from '../channel'; import { fetchMeta } from '@/misc/fetch-meta'; -import { Notes } from '../../../../models'; -import { PackedNote } from '../../../../models/repositories/note'; -import { PackedUser } from '../../../../models/repositories/user'; +import { Notes } from '@/models/index'; +import { PackedNote } from '@/models/repositories/note'; +import { PackedUser } from '@/models/repositories/user'; import { checkWordMute } from '@/misc/check-word-mute'; import { isBlockerUserRelated } from '@/misc/is-blocker-user-related'; diff --git a/src/server/api/stream/channels/main.ts b/src/server/api/stream/channels/main.ts index 780bc0b89..b99cb931d 100644 --- a/src/server/api/stream/channels/main.ts +++ b/src/server/api/stream/channels/main.ts @@ -1,6 +1,6 @@ import autobind from 'autobind-decorator'; import Channel from '../channel'; -import { Notes } from '../../../../models'; +import { Notes } from '@/models/index'; export default class extends Channel { public readonly chName = 'main'; diff --git a/src/server/api/stream/channels/messaging.ts b/src/server/api/stream/channels/messaging.ts index 58427e277..015b0a765 100644 --- a/src/server/api/stream/channels/messaging.ts +++ b/src/server/api/stream/channels/messaging.ts @@ -1,8 +1,8 @@ import autobind from 'autobind-decorator'; import { readUserMessagingMessage, readGroupMessagingMessage, deliverReadActivity } from '../../common/read-messaging-message'; import Channel from '../channel'; -import { UserGroupJoinings, Users, MessagingMessages } from '../../../../models'; -import { User, ILocalUser, IRemoteUser } from '../../../../models/entities/user'; +import { UserGroupJoinings, Users, MessagingMessages } from '@/models/index'; +import { User, ILocalUser, IRemoteUser } from '@/models/entities/user'; export default class extends Channel { public readonly chName = 'messaging'; diff --git a/src/server/api/stream/channels/user-list.ts b/src/server/api/stream/channels/user-list.ts index 1f42fbe49..0ca83cd65 100644 --- a/src/server/api/stream/channels/user-list.ts +++ b/src/server/api/stream/channels/user-list.ts @@ -1,9 +1,9 @@ import autobind from 'autobind-decorator'; import Channel from '../channel'; -import { Notes, UserListJoinings, UserLists } from '../../../../models'; +import { Notes, UserListJoinings, UserLists } from '@/models/index'; import { isMutedUserRelated } from '@/misc/is-muted-user-related'; -import { User } from '../../../../models/entities/user'; -import { PackedNote } from '../../../../models/repositories/note'; +import { User } from '@/models/entities/user'; +import { PackedNote } from '@/models/repositories/note'; import { isBlockerUserRelated } from '@/misc/is-blocker-user-related'; export default class extends Channel { diff --git a/src/server/api/stream/index.ts b/src/server/api/stream/index.ts index 96d4194a7..469f28f11 100644 --- a/src/server/api/stream/index.ts +++ b/src/server/api/stream/index.ts @@ -2,19 +2,19 @@ import autobind from 'autobind-decorator'; import * as websocket from 'websocket'; import { readNotification } from '../common/read-notification'; import call from '../call'; -import readNote from '../../../services/note/read'; +import readNote from '@/services/note/read'; import Channel from './channel'; -import channels from './channels'; +import channels from './channels/index'; import { EventEmitter } from 'events'; -import { User } from '../../../models/entities/user'; -import { Channel as ChannelModel } from '../../../models/entities/channel'; -import { Users, Followings, Mutings, UserProfiles, ChannelFollowings, Blockings } from '../../../models'; +import { User } from '@/models/entities/user'; +import { Channel as ChannelModel } from '@/models/entities/channel'; +import { Users, Followings, Mutings, UserProfiles, ChannelFollowings, Blockings } from '@/models/index'; import { ApiError } from '../error'; -import { AccessToken } from '../../../models/entities/access-token'; -import { UserProfile } from '../../../models/entities/user-profile'; -import { publishChannelStream, publishGroupMessagingStream, publishMessagingStream } from '../../../services/stream'; -import { UserGroup } from '../../../models/entities/user-group'; -import { PackedNote } from '../../../models/repositories/note'; +import { AccessToken } from '@/models/entities/access-token'; +import { UserProfile } from '@/models/entities/user-profile'; +import { publishChannelStream, publishGroupMessagingStream, publishMessagingStream } from '@/services/stream'; +import { UserGroup } from '@/models/entities/user-group'; +import { PackedNote } from '@/models/repositories/note'; /** * Main stream connection diff --git a/src/server/api/streaming.ts b/src/server/api/streaming.ts index b431bc5ad..8808bc986 100644 --- a/src/server/api/streaming.ts +++ b/src/server/api/streaming.ts @@ -1,12 +1,12 @@ import * as http from 'http'; import * as websocket from 'websocket'; -import MainStreamConnection from './stream'; +import MainStreamConnection from './stream/index'; import { ParsedUrlQuery } from 'querystring'; import authenticate from './authenticate'; import { EventEmitter } from 'events'; import { subsdcriber as redisClient } from '../../db/redis'; -import { Users } from '@/models'; +import { Users } from '@/models/index'; module.exports = (server: http.Server) => { // Init websocket server diff --git a/src/server/file/index.ts b/src/server/file/index.ts index 0410efb99..9b5d8f726 100644 --- a/src/server/file/index.ts +++ b/src/server/file/index.ts @@ -3,11 +3,17 @@ */ import * as fs from 'fs'; +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; import * as Koa from 'koa'; import * as cors from '@koa/cors'; import * as Router from '@koa/router'; import sendDriveFile from './send-drive-file'; +//const _filename = fileURLToPath(import.meta.url); +const _filename = __filename; +const _dirname = dirname(_filename); + // Init app const app = new Koa(); app.use(cors()); @@ -16,7 +22,7 @@ app.use(cors()); const router = new Router(); router.get('/app-default.jpg', ctx => { - const file = fs.createReadStream(`${__dirname}/assets/dummy.png`); + const file = fs.createReadStream(`${_dirname}/assets/dummy.png`); ctx.body = file; ctx.set('Content-Type', 'image/jpeg'); ctx.set('Cache-Control', 'max-age=31536000, immutable'); diff --git a/src/server/file/send-drive-file.ts b/src/server/file/send-drive-file.ts index 9745b1201..c455de644 100644 --- a/src/server/file/send-drive-file.ts +++ b/src/server/file/send-drive-file.ts @@ -1,18 +1,24 @@ +import * as fs from 'fs'; +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; import * as Koa from 'koa'; import * as send from 'koa-send'; import * as rename from 'rename'; import * as tmp from 'tmp'; -import * as fs from 'fs'; -import { serverLogger } from '..'; +import { serverLogger } from '../index'; import { contentDisposition } from '@/misc/content-disposition'; -import { DriveFiles } from '../../models'; -import { InternalStorage } from '../../services/drive/internal-storage'; +import { DriveFiles } from '@/models/index'; +import { InternalStorage } from '@/services/drive/internal-storage'; import { downloadUrl } from '@/misc/download-url'; import { detectType } from '@/misc/get-file-info'; -import { convertToJpeg, convertToPngOrJpeg } from '../../services/drive/image-processor'; -import { GenerateVideoThumbnail } from '../../services/drive/generate-video-thumbnail'; +import { convertToJpeg, convertToPngOrJpeg } from '@/services/drive/image-processor'; +import { GenerateVideoThumbnail } from '@/services/drive/generate-video-thumbnail'; -const assets = `${__dirname}/../../server/file/assets/`; +//const _filename = fileURLToPath(import.meta.url); +const _filename = __filename; +const _dirname = dirname(_filename); + +const assets = `${_dirname}/../../server/file/assets/`; const commonReadableHandlerGenerator = (ctx: Koa.Context) => (e: Error): void => { serverLogger.error(e); diff --git a/src/server/index.ts b/src/server/index.ts index 3b43aa767..fb4e48c1c 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -16,16 +16,16 @@ import * as slow from 'koa-slow'; import activityPub from './activitypub'; import nodeinfo from './nodeinfo'; import wellKnown from './well-known'; -import config from '@/config'; -import apiServer from './api'; -import { sum } from '../prelude/array'; -import Logger from '../services/logger'; +import config from '@/config/index'; +import apiServer from './api/index'; +import { sum } from '@/prelude/array'; +import Logger from '@/services/logger'; import { program } from '../argv'; -import { UserProfiles, Users } from '../models'; -import { networkChart } from '../services/chart'; +import { UserProfiles, Users } from '@/models/index'; +import { networkChart } from '@/services/chart/index'; import { genAvatar } from '@/misc/gen-avatar'; import { createTemp } from '@/misc/create-temp'; -import { publishMainStream } from '../services/stream'; +import { publishMainStream } from '@/services/stream'; export const serverLogger = new Logger('server', 'gray', false); diff --git a/src/server/nodeinfo.ts b/src/server/nodeinfo.ts index 7a1d5b629..dec261508 100644 --- a/src/server/nodeinfo.ts +++ b/src/server/nodeinfo.ts @@ -1,7 +1,7 @@ import * as Router from '@koa/router'; -import config from '@/config'; +import config from '@/config/index'; import { fetchMeta } from '@/misc/fetch-meta'; -import { Users } from '../models'; +import { Users } from '@/models/index'; // import User from '../models/user'; // import Note from '../models/note'; diff --git a/src/server/proxy/proxy-media.ts b/src/server/proxy/proxy-media.ts index f91df5562..fb38a5c07 100644 --- a/src/server/proxy/proxy-media.ts +++ b/src/server/proxy/proxy-media.ts @@ -1,7 +1,7 @@ import * as fs from 'fs'; import * as Koa from 'koa'; -import { serverLogger } from '..'; -import { IImage, convertToPng, convertToJpeg } from '../../services/drive/image-processor'; +import { serverLogger } from '../index'; +import { IImage, convertToPng, convertToJpeg } from '@/services/drive/image-processor'; import { createTemp } from '@/misc/create-temp'; import { downloadUrl } from '@/misc/download-url'; import { detectType } from '@/misc/get-file-info'; diff --git a/src/server/web/feed.ts b/src/server/web/feed.ts index d4792c63a..4b6de517b 100644 --- a/src/server/web/feed.ts +++ b/src/server/web/feed.ts @@ -1,7 +1,7 @@ import { Feed } from 'feed'; -import config from '@/config'; -import { User } from '../../models/entities/user'; -import { Notes, DriveFiles, UserProfiles } from '../../models'; +import config from '@/config/index'; +import { User } from '@/models/entities/user'; +import { Notes, DriveFiles, UserProfiles } from '@/models/index'; import { In } from 'typeorm'; export default async function(user: User) { diff --git a/src/server/web/index.ts b/src/server/web/index.ts index 44ab2a997..8f9b6add6 100644 --- a/src/server/web/index.ts +++ b/src/server/web/index.ts @@ -4,7 +4,9 @@ import * as os from 'os'; import * as fs from 'fs'; -import ms = require('ms'); +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; +import * as ms from 'ms'; import * as Koa from 'koa'; import * as Router from '@koa/router'; import * as send from 'koa-send'; @@ -16,34 +18,38 @@ import * as MarkdownIt from 'markdown-it'; import packFeed from './feed'; import { fetchMeta } from '@/misc/fetch-meta'; import { genOpenapiSpec } from '../api/openapi/gen-spec'; -import config from '@/config'; -import { Users, Notes, Emojis, UserProfiles, Pages, Channels, Clips, GalleryPosts } from '../../models'; +import config from '@/config/index'; +import { Users, Notes, Emojis, UserProfiles, Pages, Channels, Clips, GalleryPosts } from '@/models/index'; import { parseAcct } from '@/misc/acct'; import { getNoteSummary } from '@/misc/get-note-summary'; import { getConnection } from 'typeorm'; import { redisClient } from '../../db/redis'; -import locales = require('../../../locales'); +import * as locales from '../../../locales/index'; + +//const _filename = fileURLToPath(import.meta.url); +const _filename = __filename; +const _dirname = dirname(_filename); const markdown = MarkdownIt({ html: true }); -const changelog = fs.readFileSync(`${__dirname}/../../../CHANGELOG.md`, { encoding: 'utf8' }); +const changelog = fs.readFileSync(`${_dirname}/../../../CHANGELOG.md`, { encoding: 'utf8' }); function genDoc(path: string): string { let md = fs.readFileSync(path, { encoding: 'utf8' }); md = md.replace('', changelog); return md; } -const staticAssets = `${__dirname}/../../../assets/`; -const docAssets = `${__dirname}/../../../src/docs/`; -const assets = `${__dirname}/../../assets/`; +const staticAssets = `${_dirname}/../../../assets/`; +const docAssets = `${_dirname}/../../../src/docs/`; +const assets = `${_dirname}/../../assets/`; // Init app const app = new Koa(); // Init renderer -app.use(views(__dirname + '/views', { +app.use(views(_dirname + '/views', { extension: 'pug', options: { version: config.version, @@ -52,7 +58,7 @@ app.use(views(__dirname + '/views', { })); // Serve favicon -app.use(favicon(`${__dirname}/../../../assets/favicon.ico`)); +app.use(favicon(`${_dirname}/../../../assets/favicon.ico`)); // Common request handler app.use(async (ctx, next) => { @@ -75,7 +81,7 @@ router.get('/static-assets/(.*)', async ctx => { router.get('/doc-assets/(.*)', async ctx => { if (ctx.path.includes('..')) return; - const path = `${__dirname}/../../../src/docs/${ctx.path.replace('/doc-assets/', '')}`; + const path = `${_dirname}/../../../src/docs/${ctx.path.replace('/doc-assets/', '')}`; const doc = genDoc(path); ctx.set('Content-Type', 'text/plain; charset=utf-8'); ctx.body = doc; @@ -134,7 +140,7 @@ router.get('/docs.json', async ctx => { ctx.body = []; return; } - const dirPath = `${__dirname}/../../../src/docs/${lang}`.replace(/\\/g, '/'); + const dirPath = `${_dirname}/../../../src/docs/${lang}`.replace(/\\/g, '/'); const paths = glob.sync(`${dirPath}/**/*.md`); const docs: { path: string; title: string; summary: string; }[] = []; for (const path of paths) { diff --git a/src/server/web/url-preview.ts b/src/server/web/url-preview.ts index 1ba8e0034..1375420c0 100644 --- a/src/server/web/url-preview.ts +++ b/src/server/web/url-preview.ts @@ -1,9 +1,9 @@ import * as Koa from 'koa'; import summaly from 'summaly'; import { fetchMeta } from '@/misc/fetch-meta'; -import Logger from '../../services/logger'; -import config from '@/config'; -import { query } from '../../prelude/url'; +import Logger from '@/services/logger'; +import config from '@/config/index'; +import { query } from '@/prelude/url'; import { getJson } from '@/misc/fetch'; const logger = new Logger('url-preview'); diff --git a/src/server/well-known.ts b/src/server/well-known.ts index 5771db91d..a2e6bc0bc 100644 --- a/src/server/well-known.ts +++ b/src/server/well-known.ts @@ -1,11 +1,11 @@ import * as Router from '@koa/router'; -import config from '@/config'; +import config from '@/config/index'; import { parseAcct, Acct } from '@/misc/acct'; import { links } from './nodeinfo'; -import { escapeAttribute, escapeValue } from '../prelude/xml'; -import { Users } from '../models'; -import { User } from '../models/entities/user'; +import { escapeAttribute, escapeValue } from '@/prelude/xml'; +import { Users } from '@/models/index'; +import { User } from '@/models/entities/user'; // Init router const router = new Router(); diff --git a/src/services/add-note-to-antenna.ts b/src/services/add-note-to-antenna.ts index 56d014915..3aedbd2c3 100644 --- a/src/services/add-note-to-antenna.ts +++ b/src/services/add-note-to-antenna.ts @@ -1,10 +1,10 @@ -import { Antenna } from '../models/entities/antenna'; -import { Note } from '../models/entities/note'; -import { AntennaNotes, Mutings, Notes } from '../models'; +import { Antenna } from '@/models/entities/antenna'; +import { Note } from '@/models/entities/note'; +import { AntennaNotes, Mutings, Notes } from '@/models/index'; import { genId } from '@/misc/gen-id'; import { isMutedUserRelated } from '@/misc/is-muted-user-related'; -import { publishAntennaStream, publishMainStream } from './stream'; -import { User } from '../models/entities/user'; +import { publishAntennaStream, publishMainStream } from '@/services/stream'; +import { User } from '@/models/entities/user'; export async function addNoteToAntenna(antenna: Antenna, note: Note, noteUser: { id: User['id']; }) { // 通知しない設定になっているか、自分自身の投稿なら既読にする diff --git a/src/services/blocking/create.ts b/src/services/blocking/create.ts index d92856689..76c4bda9d 100644 --- a/src/services/blocking/create.ts +++ b/src/services/blocking/create.ts @@ -1,13 +1,13 @@ -import { publishMainStream, publishUserEvent } from '../stream'; -import { renderActivity } from '../../remote/activitypub/renderer'; -import renderFollow from '../../remote/activitypub/renderer/follow'; -import renderUndo from '../../remote/activitypub/renderer/undo'; -import renderBlock from '../../remote/activitypub/renderer/block'; -import { deliver } from '../../queue'; -import renderReject from '../../remote/activitypub/renderer/reject'; -import { User } from '../../models/entities/user'; -import { Blockings, Users, FollowRequests, Followings, UserListJoinings, UserLists } from '../../models'; -import { perUserFollowingChart } from '../chart'; +import { publishMainStream, publishUserEvent } from '@/services/stream'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import renderFollow from '@/remote/activitypub/renderer/follow'; +import renderUndo from '@/remote/activitypub/renderer/undo'; +import renderBlock from '@/remote/activitypub/renderer/block'; +import { deliver } from '@/queue/index'; +import renderReject from '@/remote/activitypub/renderer/reject'; +import { User } from '@/models/entities/user'; +import { Blockings, Users, FollowRequests, Followings, UserListJoinings, UserLists } from '@/models/index'; +import { perUserFollowingChart } from '@/services/chart/index'; import { genId } from '@/misc/gen-id'; export default async function(blocker: User, blockee: User) { diff --git a/src/services/blocking/delete.ts b/src/services/blocking/delete.ts index 2c05cb7f3..de7efb155 100644 --- a/src/services/blocking/delete.ts +++ b/src/services/blocking/delete.ts @@ -1,10 +1,10 @@ -import { renderActivity } from '../../remote/activitypub/renderer'; -import renderBlock from '../../remote/activitypub/renderer/block'; -import renderUndo from '../../remote/activitypub/renderer/undo'; -import { deliver } from '../../queue'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import renderBlock from '@/remote/activitypub/renderer/block'; +import renderUndo from '@/remote/activitypub/renderer/undo'; +import { deliver } from '@/queue/index'; import Logger from '../logger'; -import { User } from '../../models/entities/user'; -import { Blockings, Users } from '../../models'; +import { User } from '@/models/entities/user'; +import { Blockings, Users } from '@/models/index'; const logger = new Logger('blocking/delete'); diff --git a/src/services/chart/charts/classes/active-users.ts b/src/services/chart/charts/classes/active-users.ts index e732b25d2..f80d8a332 100644 --- a/src/services/chart/charts/classes/active-users.ts +++ b/src/services/chart/charts/classes/active-users.ts @@ -1,8 +1,8 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; -import { User } from '../../../../models/entities/user'; +import { User } from '@/models/entities/user'; import { SchemaType } from '@/misc/schema'; -import { Users } from '../../../../models'; +import { Users } from '@/models/index'; import { name, schema } from '../schemas/active-users'; type ActiveUsersLog = SchemaType; diff --git a/src/services/chart/charts/classes/drive.ts b/src/services/chart/charts/classes/drive.ts index 18537918f..93eabf309 100644 --- a/src/services/chart/charts/classes/drive.ts +++ b/src/services/chart/charts/classes/drive.ts @@ -1,9 +1,9 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; import { SchemaType } from '@/misc/schema'; -import { DriveFiles } from '../../../../models'; +import { DriveFiles } from '@/models/index'; import { Not, IsNull } from 'typeorm'; -import { DriveFile } from '../../../../models/entities/drive-file'; +import { DriveFile } from '@/models/entities/drive-file'; import { name, schema } from '../schemas/drive'; type DriveLog = SchemaType; diff --git a/src/services/chart/charts/classes/federation.ts b/src/services/chart/charts/classes/federation.ts index e593a53cf..5f918b294 100644 --- a/src/services/chart/charts/classes/federation.ts +++ b/src/services/chart/charts/classes/federation.ts @@ -1,7 +1,7 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; import { SchemaType } from '@/misc/schema'; -import { Instances } from '../../../../models'; +import { Instances } from '@/models/index'; import { name, schema } from '../schemas/federation'; type FederationLog = SchemaType; diff --git a/src/services/chart/charts/classes/hashtag.ts b/src/services/chart/charts/classes/hashtag.ts index 98d5421c9..f7f5e17de 100644 --- a/src/services/chart/charts/classes/hashtag.ts +++ b/src/services/chart/charts/classes/hashtag.ts @@ -1,8 +1,8 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; -import { User } from '../../../../models/entities/user'; +import { User } from '@/models/entities/user'; import { SchemaType } from '@/misc/schema'; -import { Users } from '../../../../models'; +import { Users } from '@/models/index'; import { name, schema } from '../schemas/hashtag'; type HashtagLog = SchemaType; diff --git a/src/services/chart/charts/classes/instance.ts b/src/services/chart/charts/classes/instance.ts index f93da58d6..1032de7bc 100644 --- a/src/services/chart/charts/classes/instance.ts +++ b/src/services/chart/charts/classes/instance.ts @@ -1,10 +1,10 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; import { SchemaType } from '@/misc/schema'; -import { DriveFiles, Followings, Users, Notes } from '../../../../models'; -import { DriveFile } from '../../../../models/entities/drive-file'; +import { DriveFiles, Followings, Users, Notes } from '@/models/index'; +import { DriveFile } from '@/models/entities/drive-file'; import { name, schema } from '../schemas/instance'; -import { Note } from '../../../../models/entities/note'; +import { Note } from '@/models/entities/note'; import { toPuny } from '@/misc/convert-host'; type InstanceLog = SchemaType; diff --git a/src/services/chart/charts/classes/notes.ts b/src/services/chart/charts/classes/notes.ts index a6eb653b7..0675d346d 100644 --- a/src/services/chart/charts/classes/notes.ts +++ b/src/services/chart/charts/classes/notes.ts @@ -1,9 +1,9 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; import { SchemaType } from '@/misc/schema'; -import { Notes } from '../../../../models'; +import { Notes } from '@/models/index'; import { Not, IsNull } from 'typeorm'; -import { Note } from '../../../../models/entities/note'; +import { Note } from '@/models/entities/note'; import { name, schema } from '../schemas/notes'; type NotesLog = SchemaType; diff --git a/src/services/chart/charts/classes/per-user-drive.ts b/src/services/chart/charts/classes/per-user-drive.ts index 182e5927e..f28987191 100644 --- a/src/services/chart/charts/classes/per-user-drive.ts +++ b/src/services/chart/charts/classes/per-user-drive.ts @@ -1,8 +1,8 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; import { SchemaType } from '@/misc/schema'; -import { DriveFiles } from '../../../../models'; -import { DriveFile } from '../../../../models/entities/drive-file'; +import { DriveFiles } from '@/models/index'; +import { DriveFile } from '@/models/entities/drive-file'; import { name, schema } from '../schemas/per-user-drive'; type PerUserDriveLog = SchemaType; diff --git a/src/services/chart/charts/classes/per-user-following.ts b/src/services/chart/charts/classes/per-user-following.ts index 5972d3759..08a9ad1d2 100644 --- a/src/services/chart/charts/classes/per-user-following.ts +++ b/src/services/chart/charts/classes/per-user-following.ts @@ -1,9 +1,9 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; import { SchemaType } from '@/misc/schema'; -import { Followings, Users } from '../../../../models'; +import { Followings, Users } from '@/models/index'; import { Not, IsNull } from 'typeorm'; -import { User } from '../../../../models/entities/user'; +import { User } from '@/models/entities/user'; import { name, schema } from '../schemas/per-user-following'; type PerUserFollowingLog = SchemaType; diff --git a/src/services/chart/charts/classes/per-user-notes.ts b/src/services/chart/charts/classes/per-user-notes.ts index 7f93965ad..0e808766f 100644 --- a/src/services/chart/charts/classes/per-user-notes.ts +++ b/src/services/chart/charts/classes/per-user-notes.ts @@ -1,9 +1,9 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; -import { User } from '../../../../models/entities/user'; +import { User } from '@/models/entities/user'; import { SchemaType } from '@/misc/schema'; -import { Notes } from '../../../../models'; -import { Note } from '../../../../models/entities/note'; +import { Notes } from '@/models/index'; +import { Note } from '@/models/entities/note'; import { name, schema } from '../schemas/per-user-notes'; type PerUserNotesLog = SchemaType; diff --git a/src/services/chart/charts/classes/per-user-reactions.ts b/src/services/chart/charts/classes/per-user-reactions.ts index 69ed81cd4..e71bcb71c 100644 --- a/src/services/chart/charts/classes/per-user-reactions.ts +++ b/src/services/chart/charts/classes/per-user-reactions.ts @@ -1,9 +1,9 @@ import autobind from 'autobind-decorator'; import Chart, { DeepPartial } from '../../core'; -import { User } from '../../../../models/entities/user'; -import { Note } from '../../../../models/entities/note'; +import { User } from '@/models/entities/user'; +import { Note } from '@/models/entities/note'; import { SchemaType } from '@/misc/schema'; -import { Users } from '../../../../models'; +import { Users } from '@/models/index'; import { name, schema } from '../schemas/per-user-reactions'; type PerUserReactionsLog = SchemaType; diff --git a/src/services/chart/charts/classes/users.ts b/src/services/chart/charts/classes/users.ts index 8f208de6d..89b480ef7 100644 --- a/src/services/chart/charts/classes/users.ts +++ b/src/services/chart/charts/classes/users.ts @@ -1,9 +1,9 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; import { SchemaType } from '@/misc/schema'; -import { Users } from '../../../../models'; +import { Users } from '@/models/index'; import { Not, IsNull } from 'typeorm'; -import { User } from '../../../../models/entities/user'; +import { User } from '@/models/entities/user'; import { name, schema } from '../schemas/users'; type UsersLog = SchemaType; diff --git a/src/services/chart/core.ts b/src/services/chart/core.ts index 3c0526d2e..eee7d20ef 100644 --- a/src/services/chart/core.ts +++ b/src/services/chart/core.ts @@ -9,7 +9,7 @@ import autobind from 'autobind-decorator'; import Logger from '../logger'; import { Schema } from '@/misc/schema'; import { EntitySchema, getRepository, Repository, LessThan, Between } from 'typeorm'; -import { dateUTC, isTimeSame, isTimeBefore, subtractTime, addTime } from '../../prelude/time'; +import { dateUTC, isTimeSame, isTimeBefore, subtractTime, addTime } from '@/prelude/time'; import { getChartInsertLock } from '@/misc/app-lock'; const logger = new Logger('chart', 'white', process.env.NODE_ENV !== 'test'); diff --git a/src/services/chart/entities.ts b/src/services/chart/entities.ts index e3d5e6f8c..23a97607e 100644 --- a/src/services/chart/entities.ts +++ b/src/services/chart/entities.ts @@ -1,7 +1,13 @@ +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; import Chart from './core'; +//const _filename = fileURLToPath(import.meta.url); +const _filename = __filename; +const _dirname = dirname(_filename); + export const entities = Object.values(require('require-all')({ - dirname: __dirname + '/charts/schemas', + dirname: _dirname + '/charts/schemas', filter: /^.+\.[jt]s$/, resolve: (x: any) => { return Chart.schemaToEntity(x.name, x.schema); diff --git a/src/services/create-notification.ts b/src/services/create-notification.ts index 7d2726971..5398d486c 100644 --- a/src/services/create-notification.ts +++ b/src/services/create-notification.ts @@ -1,9 +1,9 @@ -import { publishMainStream } from './stream'; +import { publishMainStream } from '@/services/stream'; import pushSw from './push-notification'; -import { Notifications, Mutings, UserProfiles, Users } from '../models'; +import { Notifications, Mutings, UserProfiles, Users } from '@/models/index'; import { genId } from '@/misc/gen-id'; -import { User } from '../models/entities/user'; -import { Notification } from '../models/entities/notification'; +import { User } from '@/models/entities/user'; +import { Notification } from '@/models/entities/notification'; import { sendEmailNotification } from './send-email-notification'; export async function createNotification( diff --git a/src/services/create-system-user.ts b/src/services/create-system-user.ts index 052ceb6c9..71be8d4ab 100644 --- a/src/services/create-system-user.ts +++ b/src/services/create-system-user.ts @@ -2,12 +2,12 @@ import * as bcrypt from 'bcryptjs'; import { v4 as uuid } from 'uuid'; import generateNativeUserToken from '../server/api/common/generate-native-user-token'; import { genRsaKeyPair } from '@/misc/gen-key-pair'; -import { User } from '../models/entities/user'; -import { UserProfile } from '../models/entities/user-profile'; +import { User } from '@/models/entities/user'; +import { UserProfile } from '@/models/entities/user-profile'; import { getConnection } from 'typeorm'; import { genId } from '@/misc/gen-id'; -import { UserKeypair } from '../models/entities/user-keypair'; -import { UsedUsername } from '../models/entities/used-username'; +import { UserKeypair } from '@/models/entities/user-keypair'; +import { UsedUsername } from '@/models/entities/used-username'; export async function createSystemUser(username: string) { const password = uuid(); diff --git a/src/services/drive/add-file.ts b/src/services/drive/add-file.ts index 2356a23cb..6c5fefd4a 100644 --- a/src/services/drive/add-file.ts +++ b/src/services/drive/add-file.ts @@ -2,7 +2,7 @@ import * as fs from 'fs'; import { v4 as uuid } from 'uuid'; -import { publishMainStream, publishDriveStream } from '../stream'; +import { publishMainStream, publishDriveStream } from '@/services/stream'; import { deleteFile } from './delete-file'; import { fetchMeta } from '@/misc/fetch-meta'; import { GenerateVideoThumbnail } from './generate-video-thumbnail'; @@ -10,11 +10,11 @@ import { driveLogger } from './logger'; import { IImage, convertSharpToJpeg, convertSharpToWebp, convertSharpToPng, convertSharpToPngOrJpeg } from './image-processor'; import { contentDisposition } from '@/misc/content-disposition'; import { getFileInfo } from '@/misc/get-file-info'; -import { DriveFiles, DriveFolders, Users, Instances, UserProfiles } from '../../models'; +import { DriveFiles, DriveFolders, Users, Instances, UserProfiles } from '@/models/index'; import { InternalStorage } from './internal-storage'; -import { DriveFile } from '../../models/entities/drive-file'; -import { IRemoteUser, User } from '../../models/entities/user'; -import { driveChart, perUserDriveChart, instanceChart } from '../chart'; +import { DriveFile } from '@/models/entities/drive-file'; +import { IRemoteUser, User } from '@/models/entities/user'; +import { driveChart, perUserDriveChart, instanceChart } from '@/services/chart/index'; import { genId } from '@/misc/gen-id'; import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error'; import * as S3 from 'aws-sdk/clients/s3'; diff --git a/src/services/drive/delete-file.ts b/src/services/drive/delete-file.ts index 2dd244532..2eab17ac1 100644 --- a/src/services/drive/delete-file.ts +++ b/src/services/drive/delete-file.ts @@ -1,17 +1,17 @@ -import { DriveFile } from '../../models/entities/drive-file'; +import { DriveFile } from '@/models/entities/drive-file'; import { InternalStorage } from './internal-storage'; -import { DriveFiles, Instances, Notes, Users } from '../../models'; -import { driveChart, perUserDriveChart, instanceChart } from '../chart'; -import { createDeleteObjectStorageFileJob } from '../../queue'; +import { DriveFiles, Instances, Notes, Users } from '@/models/index'; +import { driveChart, perUserDriveChart, instanceChart } from '@/services/chart/index'; +import { createDeleteObjectStorageFileJob } from '@/queue/index'; import { fetchMeta } from '@/misc/fetch-meta'; import { getS3 } from './s3'; import { v4 as uuid } from 'uuid'; -import { Note } from '../../models/entities/note'; -import { renderActivity } from '../../remote/activitypub/renderer'; -import renderDelete from '../../remote/activitypub/renderer/delete'; -import renderTombstone from '../../remote/activitypub/renderer/tombstone'; -import config from '@/config'; -import { deliverToFollowers } from '../../remote/activitypub/deliver-manager'; +import { Note } from '@/models/entities/note'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import renderDelete from '@/remote/activitypub/renderer/delete'; +import renderTombstone from '@/remote/activitypub/renderer/tombstone'; +import config from '@/config/index'; +import { deliverToFollowers } from '@/remote/activitypub/deliver-manager'; import { Brackets } from 'typeorm'; import { deliverToRelays } from '../relay'; diff --git a/src/services/drive/internal-storage.ts b/src/services/drive/internal-storage.ts index 5ec563584..deaf3dc83 100644 --- a/src/services/drive/internal-storage.ts +++ b/src/services/drive/internal-storage.ts @@ -1,9 +1,15 @@ import * as fs from 'fs'; import * as Path from 'path'; -import config from '@/config'; +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; +import config from '@/config/index'; + +//const _filename = fileURLToPath(import.meta.url); +const _filename = __filename; +const _dirname = dirname(_filename); export class InternalStorage { - private static readonly path = Path.resolve(__dirname, '../../../files'); + private static readonly path = Path.resolve(_dirname, '../../../files'); public static resolvePath = (key: string) => Path.resolve(InternalStorage.path, key); diff --git a/src/services/drive/s3.ts b/src/services/drive/s3.ts index e75937861..f473c4a20 100644 --- a/src/services/drive/s3.ts +++ b/src/services/drive/s3.ts @@ -1,6 +1,6 @@ import { URL } from 'url'; import * as S3 from 'aws-sdk/clients/s3'; -import { Meta } from '../../models/entities/meta'; +import { Meta } from '@/models/entities/meta'; import { getAgentByUrl } from '@/misc/fetch'; export function getS3(meta: Meta) { diff --git a/src/services/drive/upload-from-url.ts b/src/services/drive/upload-from-url.ts index 2f660d903..29788c4af 100644 --- a/src/services/drive/upload-from-url.ts +++ b/src/services/drive/upload-from-url.ts @@ -1,12 +1,12 @@ import { URL } from 'url'; import create from './add-file'; -import { User } from '../../models/entities/user'; +import { User } from '@/models/entities/user'; import { driveLogger } from './logger'; import { createTemp } from '@/misc/create-temp'; import { downloadUrl } from '@/misc/download-url'; -import { DriveFolder } from '../../models/entities/drive-folder'; -import { DriveFile } from '../../models/entities/drive-file'; -import { DriveFiles } from '../../models'; +import { DriveFolder } from '@/models/entities/drive-folder'; +import { DriveFile } from '@/models/entities/drive-file'; +import { DriveFiles } from '@/models/index'; const logger = driveLogger.createSubLogger('downloader'); diff --git a/src/services/fetch-instance-metadata.ts b/src/services/fetch-instance-metadata.ts index e016e73a6..2c401508a 100644 --- a/src/services/fetch-instance-metadata.ts +++ b/src/services/fetch-instance-metadata.ts @@ -1,8 +1,8 @@ import { DOMWindow, JSDOM } from 'jsdom'; import fetch from 'node-fetch'; import { getJson, getHtml, getAgentByUrl } from '@/misc/fetch'; -import { Instance } from '../models/entities/instance'; -import { Instances } from '../models'; +import { Instance } from '@/models/entities/instance'; +import { Instances } from '@/models/index'; import { getFetchInstanceMetadataLock } from '@/misc/app-lock'; import Logger from './logger'; import { URL } from 'url'; diff --git a/src/services/following/create.ts b/src/services/following/create.ts index de12285fc..4d0754b50 100644 --- a/src/services/following/create.ts +++ b/src/services/following/create.ts @@ -1,16 +1,16 @@ -import { publishMainStream, publishUserEvent } from '../stream'; -import { renderActivity } from '../../remote/activitypub/renderer'; -import renderFollow from '../../remote/activitypub/renderer/follow'; -import renderAccept from '../../remote/activitypub/renderer/accept'; -import renderReject from '../../remote/activitypub/renderer/reject'; -import { deliver } from '../../queue'; +import { publishMainStream, publishUserEvent } from '@/services/stream'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import renderFollow from '@/remote/activitypub/renderer/follow'; +import renderAccept from '@/remote/activitypub/renderer/accept'; +import renderReject from '@/remote/activitypub/renderer/reject'; +import { deliver } from '@/queue/index'; import createFollowRequest from './requests/create'; import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc'; import Logger from '../logger'; import { IdentifiableError } from '@/misc/identifiable-error'; -import { User } from '../../models/entities/user'; -import { Followings, Users, FollowRequests, Blockings, Instances, UserProfiles } from '../../models'; -import { instanceChart, perUserFollowingChart } from '../chart'; +import { User } from '@/models/entities/user'; +import { Followings, Users, FollowRequests, Blockings, Instances, UserProfiles } from '@/models/index'; +import { instanceChart, perUserFollowingChart } from '@/services/chart/index'; import { genId } from '@/misc/gen-id'; import { createNotification } from '../create-notification'; import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error'; diff --git a/src/services/following/delete.ts b/src/services/following/delete.ts index d0df0de6a..29e3372b6 100644 --- a/src/services/following/delete.ts +++ b/src/services/following/delete.ts @@ -1,13 +1,13 @@ -import { publishMainStream, publishUserEvent } from '../stream'; -import { renderActivity } from '../../remote/activitypub/renderer'; -import renderFollow from '../../remote/activitypub/renderer/follow'; -import renderUndo from '../../remote/activitypub/renderer/undo'; -import { deliver } from '../../queue'; +import { publishMainStream, publishUserEvent } from '@/services/stream'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import renderFollow from '@/remote/activitypub/renderer/follow'; +import renderUndo from '@/remote/activitypub/renderer/undo'; +import { deliver } from '@/queue/index'; import Logger from '../logger'; import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc'; -import { User } from '../../models/entities/user'; -import { Followings, Users, Instances } from '../../models'; -import { instanceChart, perUserFollowingChart } from '../chart'; +import { User } from '@/models/entities/user'; +import { Followings, Users, Instances } from '@/models/index'; +import { instanceChart, perUserFollowingChart } from '@/services/chart/index'; const logger = new Logger('following/delete'); diff --git a/src/services/following/requests/accept-all.ts b/src/services/following/requests/accept-all.ts index 5fc70fcf1..23b4fd0a4 100644 --- a/src/services/following/requests/accept-all.ts +++ b/src/services/following/requests/accept-all.ts @@ -1,6 +1,6 @@ import accept from './accept'; -import { User } from '../../../models/entities/user'; -import { FollowRequests, Users } from '../../../models'; +import { User } from '@/models/entities/user'; +import { FollowRequests, Users } from '@/models/index'; /** * 指定したユーザー宛てのフォローリクエストをすべて承認 diff --git a/src/services/following/requests/accept.ts b/src/services/following/requests/accept.ts index 4277a1a1e..316a6f1c1 100644 --- a/src/services/following/requests/accept.ts +++ b/src/services/following/requests/accept.ts @@ -1,11 +1,11 @@ -import { renderActivity } from '../../../remote/activitypub/renderer'; -import renderFollow from '../../../remote/activitypub/renderer/follow'; -import renderAccept from '../../../remote/activitypub/renderer/accept'; -import { deliver } from '../../../queue'; -import { publishMainStream } from '../../stream'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import renderFollow from '@/remote/activitypub/renderer/follow'; +import renderAccept from '@/remote/activitypub/renderer/accept'; +import { deliver } from '@/queue/index'; +import { publishMainStream } from '@/services/stream'; import { insertFollowingDoc } from '../create'; -import { User, ILocalUser } from '../../../models/entities/user'; -import { FollowRequests, Users } from '../../../models'; +import { User, ILocalUser } from '@/models/entities/user'; +import { FollowRequests, Users } from '@/models/index'; import { IdentifiableError } from '@/misc/identifiable-error'; export default async function(followee: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox']; }, follower: User) { diff --git a/src/services/following/requests/cancel.ts b/src/services/following/requests/cancel.ts index 53c20088c..889584985 100644 --- a/src/services/following/requests/cancel.ts +++ b/src/services/following/requests/cancel.ts @@ -1,11 +1,11 @@ -import { renderActivity } from '../../../remote/activitypub/renderer'; -import renderFollow from '../../../remote/activitypub/renderer/follow'; -import renderUndo from '../../../remote/activitypub/renderer/undo'; -import { deliver } from '../../../queue'; -import { publishMainStream } from '../../stream'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import renderFollow from '@/remote/activitypub/renderer/follow'; +import renderUndo from '@/remote/activitypub/renderer/undo'; +import { deliver } from '@/queue/index'; +import { publishMainStream } from '@/services/stream'; import { IdentifiableError } from '@/misc/identifiable-error'; -import { User, ILocalUser } from '../../../models/entities/user'; -import { Users, FollowRequests } from '../../../models'; +import { User, ILocalUser } from '@/models/entities/user'; +import { Users, FollowRequests } from '@/models/index'; export default async function(followee: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox'] }, follower: { id: User['id']; host: User['host']; uri: User['host'] }) { if (Users.isRemoteUser(followee)) { diff --git a/src/services/following/requests/create.ts b/src/services/following/requests/create.ts index 584591b00..507cb2b7d 100644 --- a/src/services/following/requests/create.ts +++ b/src/services/following/requests/create.ts @@ -1,9 +1,9 @@ -import { publishMainStream } from '../../stream'; -import { renderActivity } from '../../../remote/activitypub/renderer'; -import renderFollow from '../../../remote/activitypub/renderer/follow'; -import { deliver } from '../../../queue'; -import { User } from '../../../models/entities/user'; -import { Blockings, FollowRequests, Users } from '../../../models'; +import { publishMainStream } from '@/services/stream'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import renderFollow from '@/remote/activitypub/renderer/follow'; +import { deliver } from '@/queue/index'; +import { User } from '@/models/entities/user'; +import { Blockings, FollowRequests, Users } from '@/models/index'; import { genId } from '@/misc/gen-id'; import { createNotification } from '../../create-notification'; diff --git a/src/services/following/requests/reject.ts b/src/services/following/requests/reject.ts index 45effc580..41cebd9e4 100644 --- a/src/services/following/requests/reject.ts +++ b/src/services/following/requests/reject.ts @@ -1,10 +1,10 @@ -import { renderActivity } from '../../../remote/activitypub/renderer'; -import renderFollow from '../../../remote/activitypub/renderer/follow'; -import renderReject from '../../../remote/activitypub/renderer/reject'; -import { deliver } from '../../../queue'; -import { publishMainStream, publishUserEvent } from '../../stream'; -import { User, ILocalUser } from '../../../models/entities/user'; -import { Users, FollowRequests, Followings } from '../../../models'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import renderFollow from '@/remote/activitypub/renderer/follow'; +import renderReject from '@/remote/activitypub/renderer/reject'; +import { deliver } from '@/queue/index'; +import { publishMainStream, publishUserEvent } from '@/services/stream'; +import { User, ILocalUser } from '@/models/entities/user'; +import { Users, FollowRequests, Followings } from '@/models/index'; import { decrementFollowing } from '../delete'; export default async function(followee: { id: User['id']; host: User['host']; uri: User['host'] }, follower: User) { diff --git a/src/services/i/pin.ts b/src/services/i/pin.ts index e3a73b5b9..b31beb6e1 100644 --- a/src/services/i/pin.ts +++ b/src/services/i/pin.ts @@ -1,14 +1,14 @@ -import config from '@/config'; -import renderAdd from '../../remote/activitypub/renderer/add'; -import renderRemove from '../../remote/activitypub/renderer/remove'; -import { renderActivity } from '../../remote/activitypub/renderer'; +import config from '@/config/index'; +import renderAdd from '@/remote/activitypub/renderer/add'; +import renderRemove from '@/remote/activitypub/renderer/remove'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; import { IdentifiableError } from '@/misc/identifiable-error'; -import { User } from '../../models/entities/user'; -import { Note } from '../../models/entities/note'; -import { Notes, UserNotePinings, Users } from '../../models'; -import { UserNotePining } from '../../models/entities/user-note-pining'; +import { User } from '@/models/entities/user'; +import { Note } from '@/models/entities/note'; +import { Notes, UserNotePinings, Users } from '@/models/index'; +import { UserNotePining } from '@/models/entities/user-note-pining'; import { genId } from '@/misc/gen-id'; -import { deliverToFollowers } from '../../remote/activitypub/deliver-manager'; +import { deliverToFollowers } from '@/remote/activitypub/deliver-manager'; import { deliverToRelays } from '../relay'; /** diff --git a/src/services/i/update.ts b/src/services/i/update.ts index 8d40b08a8..f700d9b48 100644 --- a/src/services/i/update.ts +++ b/src/services/i/update.ts @@ -1,9 +1,9 @@ -import renderUpdate from '../../remote/activitypub/renderer/update'; -import { renderActivity } from '../../remote/activitypub/renderer'; -import { Users } from '../../models'; -import { User } from '../../models/entities/user'; -import { renderPerson } from '../../remote/activitypub/renderer/person'; -import { deliverToFollowers } from '../../remote/activitypub/deliver-manager'; +import renderUpdate from '@/remote/activitypub/renderer/update'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import { Users } from '@/models/index'; +import { User } from '@/models/entities/user'; +import { renderPerson } from '@/remote/activitypub/renderer/person'; +import { deliverToFollowers } from '@/remote/activitypub/deliver-manager'; import { deliverToRelays } from '../relay'; export async function publishToFollowers(userId: User['id']) { diff --git a/src/services/insert-moderation-log.ts b/src/services/insert-moderation-log.ts index 8ba64fa34..00397652e 100644 --- a/src/services/insert-moderation-log.ts +++ b/src/services/insert-moderation-log.ts @@ -1,4 +1,4 @@ -import { ModerationLogs } from '../models'; +import { ModerationLogs } from '@/models/index'; import { genId } from '@/misc/gen-id'; import { User } from '@/models/entities/user'; diff --git a/src/services/instance-actor.ts b/src/services/instance-actor.ts index 9b9c74606..b3625226c 100644 --- a/src/services/instance-actor.ts +++ b/src/services/instance-actor.ts @@ -1,6 +1,6 @@ import { createSystemUser } from './create-system-user'; -import { ILocalUser } from '../models/entities/user'; -import { Users } from '../models'; +import { ILocalUser } from '@/models/entities/user'; +import { Users } from '@/models/index'; import { Cache } from '@/misc/cache'; const ACTOR_USERNAME = 'instance.actor' as const; diff --git a/src/services/logger.ts b/src/services/logger.ts index de62b3aca..229be891e 100644 --- a/src/services/logger.ts +++ b/src/services/logger.ts @@ -4,11 +4,11 @@ import * as chalk from 'chalk'; import * as dateformat from 'dateformat'; import { program } from '../argv'; import { getRepository } from 'typeorm'; -import { Log } from '../models/entities/log'; +import { Log } from '@/models/entities/log'; import { genId } from '@/misc/gen-id'; -import config from '@/config'; +import config from '@/config/index'; -const SyslogPro = require('syslog-pro'); +import * as SyslogPro from 'syslog-pro'; type Domain = { name: string; diff --git a/src/services/messages/create.ts b/src/services/messages/create.ts index f84729cde..948b6726b 100644 --- a/src/services/messages/create.ts +++ b/src/services/messages/create.ts @@ -1,17 +1,17 @@ -import { User } from '../../models/entities/user'; -import { UserGroup } from '../../models/entities/user-group'; -import { DriveFile } from '../../models/entities/drive-file'; -import { MessagingMessages, UserGroupJoinings, Mutings, Users } from '../../models'; +import { User } from '@/models/entities/user'; +import { UserGroup } from '@/models/entities/user-group'; +import { DriveFile } from '@/models/entities/drive-file'; +import { MessagingMessages, UserGroupJoinings, Mutings, Users } from '@/models/index'; import { genId } from '@/misc/gen-id'; -import { MessagingMessage } from '../../models/entities/messaging-message'; -import { publishMessagingStream, publishMessagingIndexStream, publishMainStream, publishGroupMessagingStream } from '../stream'; +import { MessagingMessage } from '@/models/entities/messaging-message'; +import { publishMessagingStream, publishMessagingIndexStream, publishMainStream, publishGroupMessagingStream } from '@/services/stream'; import pushNotification from '../push-notification'; import { Not } from 'typeorm'; -import { Note } from '../../models/entities/note'; -import renderNote from '../../remote/activitypub/renderer/note'; -import renderCreate from '../../remote/activitypub/renderer/create'; -import { renderActivity } from '../../remote/activitypub/renderer'; -import { deliver } from '../../queue'; +import { Note } from '@/models/entities/note'; +import renderNote from '@/remote/activitypub/renderer/note'; +import renderCreate from '@/remote/activitypub/renderer/create'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import { deliver } from '@/queue/index'; export async function createMessage(user: { id: User['id']; host: User['host']; }, recipientUser: User | undefined, recipientGroup: UserGroup | undefined, text: string | undefined, file: DriveFile | null, uri?: string) { const message = { diff --git a/src/services/messages/delete.ts b/src/services/messages/delete.ts index 522815e55..5c299c9a5 100644 --- a/src/services/messages/delete.ts +++ b/src/services/messages/delete.ts @@ -1,11 +1,11 @@ -import config from '@/config'; -import { MessagingMessages, Users } from '../../models'; -import { MessagingMessage } from '../../models/entities/messaging-message'; -import { publishGroupMessagingStream, publishMessagingStream } from '../stream'; -import { renderActivity } from '../../remote/activitypub/renderer'; -import renderDelete from '../../remote/activitypub/renderer/delete'; -import renderTombstone from '../../remote/activitypub/renderer/tombstone'; -import { deliver } from '../../queue'; +import config from '@/config/index'; +import { MessagingMessages, Users } from '@/models/index'; +import { MessagingMessage } from '@/models/entities/messaging-message'; +import { publishGroupMessagingStream, publishMessagingStream } from '@/services/stream'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import renderDelete from '@/remote/activitypub/renderer/delete'; +import renderTombstone from '@/remote/activitypub/renderer/tombstone'; +import { deliver } from '@/queue/index'; export async function deleteMessage(message: MessagingMessage) { await MessagingMessages.delete(message.id); diff --git a/src/services/note/create.ts b/src/services/note/create.ts index 13d612cf8..8c996bdba 100644 --- a/src/services/note/create.ts +++ b/src/services/note/create.ts @@ -1,29 +1,29 @@ import * as mfm from 'mfm-js'; import es from '../../db/elasticsearch'; -import { publishMainStream, publishNotesStream } from '../stream'; -import DeliverManager from '../../remote/activitypub/deliver-manager'; -import renderNote from '../../remote/activitypub/renderer/note'; -import renderCreate from '../../remote/activitypub/renderer/create'; -import renderAnnounce from '../../remote/activitypub/renderer/announce'; -import { renderActivity } from '../../remote/activitypub/renderer'; -import { resolveUser } from '../../remote/resolve-user'; -import config from '@/config'; +import { publishMainStream, publishNotesStream } from '@/services/stream'; +import DeliverManager from '@/remote/activitypub/deliver-manager'; +import renderNote from '@/remote/activitypub/renderer/note'; +import renderCreate from '@/remote/activitypub/renderer/create'; +import renderAnnounce from '@/remote/activitypub/renderer/announce'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import { resolveUser } from '@/remote/resolve-user'; +import config from '@/config/index'; import { updateHashtags } from '../update-hashtag'; -import { concat } from '../../prelude/array'; +import { concat } from '@/prelude/array'; import insertNoteUnread from './unread'; import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc'; import { extractMentions } from '@/misc/extract-mentions'; import { extractCustomEmojisFromMfm } from '@/misc/extract-custom-emojis-from-mfm'; import { extractHashtags } from '@/misc/extract-hashtags'; -import { Note, IMentionedRemoteUsers } from '../../models/entities/note'; -import { Mutings, Users, NoteWatchings, Notes, Instances, UserProfiles, Antennas, Followings, MutedNotes, Channels, ChannelFollowings, Blockings } from '../../models'; -import { DriveFile } from '../../models/entities/drive-file'; -import { App } from '../../models/entities/app'; +import { Note, IMentionedRemoteUsers } from '@/models/entities/note'; +import { Mutings, Users, NoteWatchings, Notes, Instances, UserProfiles, Antennas, Followings, MutedNotes, Channels, ChannelFollowings, Blockings } from '@/models/index'; +import { DriveFile } from '@/models/entities/drive-file'; +import { App } from '@/models/entities/app'; import { Not, getConnection, In } from 'typeorm'; -import { User, ILocalUser, IRemoteUser } from '../../models/entities/user'; +import { User, ILocalUser, IRemoteUser } from '@/models/entities/user'; import { genId } from '@/misc/gen-id'; -import { notesChart, perUserNotesChart, activeUsersChart, instanceChart } from '../chart'; -import { Poll, IPoll } from '../../models/entities/poll'; +import { notesChart, perUserNotesChart, activeUsersChart, instanceChart } from '@/services/chart/index'; +import { Poll, IPoll } from '@/models/entities/poll'; import { createNotification } from '../create-notification'; import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error'; import { checkHitAntenna } from '@/misc/check-hit-antenna'; @@ -31,7 +31,7 @@ import { checkWordMute } from '@/misc/check-word-mute'; import { addNoteToAntenna } from '../add-note-to-antenna'; import { countSameRenotes } from '@/misc/count-same-renotes'; import { deliverToRelays } from '../relay'; -import { Channel } from '../../models/entities/channel'; +import { Channel } from '@/models/entities/channel'; import { normalizeForSearch } from '@/misc/normalize-for-search'; import { getAntennas } from '@/misc/antenna-cache'; diff --git a/src/services/note/delete.ts b/src/services/note/delete.ts index a7ac86e10..a14d84e7b 100644 --- a/src/services/note/delete.ts +++ b/src/services/note/delete.ts @@ -1,16 +1,16 @@ -import { publishNoteStream } from '../stream'; -import renderDelete from '../../remote/activitypub/renderer/delete'; -import renderAnnounce from '../../remote/activitypub/renderer/announce'; -import renderUndo from '../../remote/activitypub/renderer/undo'; -import { renderActivity } from '../../remote/activitypub/renderer'; -import renderTombstone from '../../remote/activitypub/renderer/tombstone'; -import config from '@/config'; +import { publishNoteStream } from '@/services/stream'; +import renderDelete from '@/remote/activitypub/renderer/delete'; +import renderAnnounce from '@/remote/activitypub/renderer/announce'; +import renderUndo from '@/remote/activitypub/renderer/undo'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import renderTombstone from '@/remote/activitypub/renderer/tombstone'; +import config from '@/config/index'; import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc'; -import { User, ILocalUser, IRemoteUser } from '../../models/entities/user'; -import { Note, IMentionedRemoteUsers } from '../../models/entities/note'; -import { Notes, Users, Instances } from '../../models'; -import { notesChart, perUserNotesChart, instanceChart } from '../chart'; -import { deliverToFollowers, deliverToUser } from '../../remote/activitypub/deliver-manager'; +import { User, ILocalUser, IRemoteUser } from '@/models/entities/user'; +import { Note, IMentionedRemoteUsers } from '@/models/entities/note'; +import { Notes, Users, Instances } from '@/models/index'; +import { notesChart, perUserNotesChart, instanceChart } from '@/services/chart/index'; +import { deliverToFollowers, deliverToUser } from '@/remote/activitypub/deliver-manager'; import { countSameRenotes } from '@/misc/count-same-renotes'; import { deliverToRelays } from '../relay'; import { Brackets, In } from 'typeorm'; diff --git a/src/services/note/polls/update.ts b/src/services/note/polls/update.ts index a33efab66..a22ce8e37 100644 --- a/src/services/note/polls/update.ts +++ b/src/services/note/polls/update.ts @@ -1,9 +1,9 @@ -import renderUpdate from '../../../remote/activitypub/renderer/update'; -import { renderActivity } from '../../../remote/activitypub/renderer'; -import renderNote from '../../../remote/activitypub/renderer/note'; -import { Users, Notes } from '../../../models'; -import { Note } from '../../../models/entities/note'; -import { deliverToFollowers } from '../../../remote/activitypub/deliver-manager'; +import renderUpdate from '@/remote/activitypub/renderer/update'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import renderNote from '@/remote/activitypub/renderer/note'; +import { Users, Notes } from '@/models/index'; +import { Note } from '@/models/entities/note'; +import { deliverToFollowers } from '@/remote/activitypub/deliver-manager'; import { deliverToRelays } from '../../relay'; export async function deliverQuestionUpdate(noteId: Note['id']) { diff --git a/src/services/note/polls/vote.ts b/src/services/note/polls/vote.ts index d3cf9f211..886a09dde 100644 --- a/src/services/note/polls/vote.ts +++ b/src/services/note/polls/vote.ts @@ -1,7 +1,7 @@ -import { publishNoteStream } from '../../stream'; -import { User } from '../../../models/entities/user'; -import { Note } from '../../../models/entities/note'; -import { PollVotes, NoteWatchings, Polls, Blockings } from '../../../models'; +import { publishNoteStream } from '@/services/stream'; +import { User } from '@/models/entities/user'; +import { Note } from '@/models/entities/note'; +import { PollVotes, NoteWatchings, Polls, Blockings } from '@/models/index'; import { Not } from 'typeorm'; import { genId } from '@/misc/gen-id'; import { createNotification } from '../../create-notification'; diff --git a/src/services/note/reaction/create.ts b/src/services/note/reaction/create.ts index b8a8d172f..308bd4dff 100644 --- a/src/services/note/reaction/create.ts +++ b/src/services/note/reaction/create.ts @@ -1,18 +1,18 @@ -import { publishNoteStream } from '../../stream'; -import { renderLike } from '../../../remote/activitypub/renderer/like'; -import DeliverManager from '../../../remote/activitypub/deliver-manager'; -import { renderActivity } from '../../../remote/activitypub/renderer'; +import { publishNoteStream } from '@/services/stream'; +import { renderLike } from '@/remote/activitypub/renderer/like'; +import DeliverManager from '@/remote/activitypub/deliver-manager'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; import { toDbReaction, decodeReaction } from '@/misc/reaction-lib'; -import { User, IRemoteUser } from '../../../models/entities/user'; -import { Note } from '../../../models/entities/note'; -import { NoteReactions, Users, NoteWatchings, Notes, Emojis, Blockings } from '../../../models'; +import { User, IRemoteUser } from '@/models/entities/user'; +import { Note } from '@/models/entities/note'; +import { NoteReactions, Users, NoteWatchings, Notes, Emojis, Blockings } from '@/models/index'; import { Not } from 'typeorm'; -import { perUserReactionsChart } from '../../chart'; +import { perUserReactionsChart } from '@/services/chart/index'; import { genId } from '@/misc/gen-id'; import { createNotification } from '../../create-notification'; import deleteReaction from './delete'; import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error'; -import { NoteReaction } from '../../../models/entities/note-reaction'; +import { NoteReaction } from '@/models/entities/note-reaction'; import { IdentifiableError } from '@/misc/identifiable-error'; export default async (user: { id: User['id']; host: User['host']; }, note: Note, reaction?: string) => { diff --git a/src/services/note/reaction/delete.ts b/src/services/note/reaction/delete.ts index 712031fa8..062dbad6f 100644 --- a/src/services/note/reaction/delete.ts +++ b/src/services/note/reaction/delete.ts @@ -1,12 +1,12 @@ -import { publishNoteStream } from '../../stream'; -import { renderLike } from '../../../remote/activitypub/renderer/like'; -import renderUndo from '../../../remote/activitypub/renderer/undo'; -import { renderActivity } from '../../../remote/activitypub/renderer'; -import DeliverManager from '../../../remote/activitypub/deliver-manager'; +import { publishNoteStream } from '@/services/stream'; +import { renderLike } from '@/remote/activitypub/renderer/like'; +import renderUndo from '@/remote/activitypub/renderer/undo'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import DeliverManager from '@/remote/activitypub/deliver-manager'; import { IdentifiableError } from '@/misc/identifiable-error'; -import { User, IRemoteUser } from '../../../models/entities/user'; -import { Note } from '../../../models/entities/note'; -import { NoteReactions, Users, Notes } from '../../../models'; +import { User, IRemoteUser } from '@/models/entities/user'; +import { Note } from '@/models/entities/note'; +import { NoteReactions, Users, Notes } from '@/models/index'; import { decodeReaction } from '@/misc/reaction-lib'; export default async (user: { id: User['id']; host: User['host']; }, note: Note) => { diff --git a/src/services/note/read.ts b/src/services/note/read.ts index a661c0a9d..2e221d553 100644 --- a/src/services/note/read.ts +++ b/src/services/note/read.ts @@ -1,12 +1,12 @@ -import { publishMainStream } from '../stream'; -import { Note } from '../../models/entities/note'; -import { User } from '../../models/entities/user'; -import { NoteUnreads, AntennaNotes, Users, Followings, ChannelFollowings } from '../../models'; +import { publishMainStream } from '@/services/stream'; +import { Note } from '@/models/entities/note'; +import { User } from '@/models/entities/user'; +import { NoteUnreads, AntennaNotes, Users, Followings, ChannelFollowings } from '@/models/index'; import { Not, IsNull, In } from 'typeorm'; -import { Channel } from '../../models/entities/channel'; +import { Channel } from '@/models/entities/channel'; import { checkHitAntenna } from '@/misc/check-hit-antenna'; import { getAntennas } from '@/misc/antenna-cache'; -import { PackedNote } from '../../models/repositories/note'; +import { PackedNote } from '@/models/repositories/note'; import { readNotificationByQuery } from '@/server/api/common/read-notification'; /** diff --git a/src/services/note/unread.ts b/src/services/note/unread.ts index 5cfba0f34..4a9df6083 100644 --- a/src/services/note/unread.ts +++ b/src/services/note/unread.ts @@ -1,7 +1,7 @@ -import { Note } from '../../models/entities/note'; -import { publishMainStream } from '../stream'; -import { User } from '../../models/entities/user'; -import { Mutings, NoteUnreads } from '../../models'; +import { Note } from '@/models/entities/note'; +import { publishMainStream } from '@/services/stream'; +import { User } from '@/models/entities/user'; +import { Mutings, NoteUnreads } from '@/models/index'; import { genId } from '@/misc/gen-id'; export default async function(userId: User['id'], note: Note, params: { diff --git a/src/services/note/unwatch.ts b/src/services/note/unwatch.ts index 047ac343b..8ea02fe33 100644 --- a/src/services/note/unwatch.ts +++ b/src/services/note/unwatch.ts @@ -1,6 +1,6 @@ -import { User } from '../../models/entities/user'; -import { NoteWatchings } from '../../models'; -import { Note } from '../../models/entities/note'; +import { User } from '@/models/entities/user'; +import { NoteWatchings } from '@/models/index'; +import { Note } from '@/models/entities/note'; export default async (me: User['id'], note: Note) => { await NoteWatchings.delete({ diff --git a/src/services/note/watch.ts b/src/services/note/watch.ts index e333f0428..e457191d9 100644 --- a/src/services/note/watch.ts +++ b/src/services/note/watch.ts @@ -1,8 +1,8 @@ -import { User } from '../../models/entities/user'; -import { Note } from '../../models/entities/note'; -import { NoteWatchings } from '../../models'; +import { User } from '@/models/entities/user'; +import { Note } from '@/models/entities/note'; +import { NoteWatchings } from '@/models/index'; import { genId } from '@/misc/gen-id'; -import { NoteWatching } from '../../models/entities/note-watching'; +import { NoteWatching } from '@/models/entities/note-watching'; export default async (me: User['id'], note: Note) => { // 自分の投稿はwatchできない diff --git a/src/services/push-notification.ts b/src/services/push-notification.ts index 6c0b77c31..5bd749969 100644 --- a/src/services/push-notification.ts +++ b/src/services/push-notification.ts @@ -1,6 +1,6 @@ import * as push from 'web-push'; -import config from '@/config'; -import { SwSubscriptions } from '../models'; +import config from '@/config/index'; +import { SwSubscriptions } from '@/models/index'; import { fetchMeta } from '@/misc/fetch-meta'; import { PackedNotification } from '../models/repositories/notification'; import { PackedMessagingMessage } from '../models/repositories/messaging-message'; diff --git a/src/services/register-or-fetch-instance-doc.ts b/src/services/register-or-fetch-instance-doc.ts index 2edf85fd9..a548ab049 100644 --- a/src/services/register-or-fetch-instance-doc.ts +++ b/src/services/register-or-fetch-instance-doc.ts @@ -1,6 +1,6 @@ -import { Instance } from '../models/entities/instance'; -import { Instances } from '../models'; -import { federationChart } from './chart'; +import { Instance } from '@/models/entities/instance'; +import { Instances } from '@/models/index'; +import { federationChart } from '@/services/chart/index'; import { genId } from '@/misc/gen-id'; import { toPuny } from '@/misc/convert-host'; import { Cache } from '@/misc/cache'; diff --git a/src/services/relay.ts b/src/services/relay.ts index a2cc711bd..04775524f 100644 --- a/src/services/relay.ts +++ b/src/services/relay.ts @@ -1,10 +1,10 @@ import { createSystemUser } from './create-system-user'; -import { renderFollowRelay } from '../remote/activitypub/renderer/follow-relay'; -import { renderActivity, attachLdSignature } from '../remote/activitypub/renderer'; -import renderUndo from '../remote/activitypub/renderer/undo'; -import { deliver } from '../queue'; -import { ILocalUser, User } from '../models/entities/user'; -import { Users, Relays } from '../models'; +import { renderFollowRelay } from '@/remote/activitypub/renderer/follow-relay'; +import { renderActivity, attachLdSignature } from '@/remote/activitypub/renderer/index'; +import renderUndo from '@/remote/activitypub/renderer/undo'; +import { deliver } from '@/queue/index'; +import { ILocalUser, User } from '@/models/entities/user'; +import { Users, Relays } from '@/models/index'; import { genId } from '@/misc/gen-id'; const ACTOR_USERNAME = 'relay.actor' as const; diff --git a/src/services/send-email-notification.ts b/src/services/send-email-notification.ts index ad1742951..519d56a06 100644 --- a/src/services/send-email-notification.ts +++ b/src/services/send-email-notification.ts @@ -1,7 +1,7 @@ -import { UserProfiles } from '../models'; -import { User } from '../models/entities/user'; +import { UserProfiles } from '@/models/index'; +import { User } from '@/models/entities/user'; import { sendEmail } from './send-email'; -import * as locales from '../../locales/'; +import * as locales from '../../locales/index'; import { I18n } from '@/misc/i18n'; import { getAcct } from '@/misc/acct'; diff --git a/src/services/send-email.ts b/src/services/send-email.ts index 4784ba551..d24168ec4 100644 --- a/src/services/send-email.ts +++ b/src/services/send-email.ts @@ -1,7 +1,7 @@ import * as nodemailer from 'nodemailer'; import { fetchMeta } from '@/misc/fetch-meta'; import Logger from './logger'; -import config from '@/config'; +import config from '@/config/index'; export const logger = new Logger('email'); diff --git a/src/services/stream.ts b/src/services/stream.ts index 6258dc5a7..4db1a7739 100644 --- a/src/services/stream.ts +++ b/src/services/stream.ts @@ -1,12 +1,12 @@ import { redisClient } from '../db/redis'; -import { User } from '../models/entities/user'; -import { Note } from '../models/entities/note'; -import { UserList } from '../models/entities/user-list'; -import { ReversiGame } from '../models/entities/games/reversi/game'; -import { UserGroup } from '../models/entities/user-group'; -import config from '@/config'; -import { Antenna } from '../models/entities/antenna'; -import { Channel } from '../models/entities/channel'; +import { User } from '@/models/entities/user'; +import { Note } from '@/models/entities/note'; +import { UserList } from '@/models/entities/user-list'; +import { ReversiGame } from '@/models/entities/games/reversi/game'; +import { UserGroup } from '@/models/entities/user-group'; +import config from '@/config/index'; +import { Antenna } from '@/models/entities/antenna'; +import { Channel } from '@/models/entities/channel'; class Publisher { private publish = (channel: string, type: string | null, value?: any): void => { diff --git a/src/services/suspend-user.ts b/src/services/suspend-user.ts index c868c0130..55be63172 100644 --- a/src/services/suspend-user.ts +++ b/src/services/suspend-user.ts @@ -1,9 +1,9 @@ -import renderDelete from '../remote/activitypub/renderer/delete'; -import { renderActivity } from '../remote/activitypub/renderer'; -import { deliver } from '../queue'; -import config from '@/config'; -import { User } from '../models/entities/user'; -import { Users, Followings } from '../models'; +import renderDelete from '@/remote/activitypub/renderer/delete'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import { deliver } from '@/queue/index'; +import config from '@/config/index'; +import { User } from '@/models/entities/user'; +import { Users, Followings } from '@/models/index'; import { Not, IsNull } from 'typeorm'; export async function doPostSuspend(user: { id: User['id']; host: User['host'] }) { diff --git a/src/services/unsuspend-user.ts b/src/services/unsuspend-user.ts index 5bc4bba42..bfffa036e 100644 --- a/src/services/unsuspend-user.ts +++ b/src/services/unsuspend-user.ts @@ -1,10 +1,10 @@ -import renderDelete from '../remote/activitypub/renderer/delete'; -import renderUndo from '../remote/activitypub/renderer/undo'; -import { renderActivity } from '../remote/activitypub/renderer'; -import { deliver } from '../queue'; -import config from '@/config'; -import { User } from '../models/entities/user'; -import { Users, Followings } from '../models'; +import renderDelete from '@/remote/activitypub/renderer/delete'; +import renderUndo from '@/remote/activitypub/renderer/undo'; +import { renderActivity } from '@/remote/activitypub/renderer/index'; +import { deliver } from '@/queue/index'; +import config from '@/config/index'; +import { User } from '@/models/entities/user'; +import { Users, Followings } from '@/models/index'; import { Not, IsNull } from 'typeorm'; export async function doPostUnsuspend(user: User) { diff --git a/src/services/update-hashtag.ts b/src/services/update-hashtag.ts index 6b7208f00..e8504f6ff 100644 --- a/src/services/update-hashtag.ts +++ b/src/services/update-hashtag.ts @@ -1,8 +1,8 @@ -import { User } from '../models/entities/user'; -import { Hashtags, Users } from '../models'; -import { hashtagChart } from './chart'; +import { User } from '@/models/entities/user'; +import { Hashtags, Users } from '@/models/index'; +import { hashtagChart } from '@/services/chart/index'; import { genId } from '@/misc/gen-id'; -import { Hashtag } from '../models/entities/hashtag'; +import { Hashtag } from '@/models/entities/hashtag'; import { normalizeForSearch } from '@/misc/normalize-for-search'; export async function updateHashtags(user: { id: User['id']; host: User['host']; }, tags: string[]) { diff --git a/src/services/user-list/push.ts b/src/services/user-list/push.ts index 3dd9a8576..29d561b51 100644 --- a/src/services/user-list/push.ts +++ b/src/services/user-list/push.ts @@ -1,8 +1,8 @@ -import { publishUserListStream } from '../stream'; -import { User } from '../../models/entities/user'; -import { UserList } from '../../models/entities/user-list'; -import { UserListJoinings, Users } from '../../models'; -import { UserListJoining } from '../../models/entities/user-list-joining'; +import { publishUserListStream } from '@/services/stream'; +import { User } from '@/models/entities/user'; +import { UserList } from '@/models/entities/user-list'; +import { UserListJoinings, Users } from '@/models/index'; +import { UserListJoining } from '@/models/entities/user-list-joining'; import { genId } from '@/misc/gen-id'; import { fetchProxyAccount } from '@/misc/fetch-proxy-account'; import createFollowing from '../following/create'; diff --git a/src/tools/accept-migration.ts b/src/tools/accept-migration.ts index 062286939..2e54fc129 100644 --- a/src/tools/accept-migration.ts +++ b/src/tools/accept-migration.ts @@ -1,7 +1,7 @@ // ex) node built/tools/accept-migration Yo 1000000000001 import { createConnection } from 'typeorm'; -import config from '@/config'; +import config from '@/config/index'; createConnection({ type: 'postgres', diff --git a/src/tools/add-emoji.ts b/src/tools/add-emoji.ts index ca25d1348..9ffe7dfa8 100644 --- a/src/tools/add-emoji.ts +++ b/src/tools/add-emoji.ts @@ -1,4 +1,4 @@ -import { Emojis } from '../models'; +import { Emojis } from '@/models/index'; import { genId } from '@/misc/gen-id'; async function main(name: string, url: string, alias?: string): Promise { diff --git a/src/tools/demote-admin.ts b/src/tools/demote-admin.ts index 5e3e64bff..d7c6d1cec 100644 --- a/src/tools/demote-admin.ts +++ b/src/tools/demote-admin.ts @@ -1,6 +1,6 @@ import { initDb } from '../db/postgre'; import { getRepository } from 'typeorm'; -import { User } from '../models/entities/user'; +import { User } from '@/models/entities/user'; async function main(username: string) { if (!username) throw `username required`; diff --git a/src/tools/mark-admin.ts b/src/tools/mark-admin.ts index 5844bb464..62ed0f09e 100644 --- a/src/tools/mark-admin.ts +++ b/src/tools/mark-admin.ts @@ -1,6 +1,6 @@ import { initDb } from '../db/postgre'; import { getRepository } from 'typeorm'; -import { User } from '../models/entities/user'; +import { User } from '@/models/entities/user'; async function main(username: string) { if (!username) throw `username required`; diff --git a/src/tools/refresh-question.ts b/src/tools/refresh-question.ts index 83d71ff30..98a3c2865 100644 --- a/src/tools/refresh-question.ts +++ b/src/tools/refresh-question.ts @@ -1,4 +1,4 @@ -import { updateQuestion } from '../remote/activitypub/models/question'; +import { updateQuestion } from '@/remote/activitypub/models/question'; async function main(uri: string): Promise { return await updateQuestion(uri); diff --git a/src/tools/resync-remote-user.ts b/src/tools/resync-remote-user.ts index ad2e231eb..bc43e250c 100644 --- a/src/tools/resync-remote-user.ts +++ b/src/tools/resync-remote-user.ts @@ -3,7 +3,7 @@ import { parseAcct } from '@/misc/acct'; async function main(acct: string): Promise { await initDb(); - const { resolveUser } = await import('../remote/resolve-user'); + const { resolveUser } = await import('@/remote/resolve-user'); const { username, host } = parseAcct(acct); await resolveUser(username, host, {}, true); diff --git a/src/tools/show-signin-history.ts b/src/tools/show-signin-history.ts index fd7cd39e3..ad9231631 100644 --- a/src/tools/show-signin-history.ts +++ b/src/tools/show-signin-history.ts @@ -1,4 +1,4 @@ -import { Users, Signins } from '../models'; +import { Users, Signins } from '@/models/index'; // node built/tools/show-signin-history username // => {Success} {Date} {IPAddrsss} diff --git a/src/tsconfig.json b/src/tsconfig.json index 9389008ee..4a03a1743 100644 --- a/src/tsconfig.json +++ b/src/tsconfig.json @@ -12,6 +12,7 @@ "target": "es2017", "module": "commonjs", "moduleResolution": "node", + "allowSyntheticDefaultImports": true, "removeComments": false, "noLib": false, "strict": true, diff --git a/test/activitypub.ts b/test/activitypub.ts index 24b8d13b8..777e7f355 100644 --- a/test/activitypub.ts +++ b/test/activitypub.ts @@ -1,12 +1,3 @@ -/* - * Tests for ActivityPub - * - * How to run the tests: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT="./test/tsconfig.json" mocha test/activitypub.ts --require ts-node/register - * - * To specify test: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT="./test/tsconfig.json" npx mocha test/activitypub.ts --require ts-node/register -g 'test name' - */ process.env.NODE_ENV = 'test'; import rndstr from 'rndstr'; diff --git a/test/api-visibility.ts b/test/api-visibility.ts index 6548146c7..ade7b730b 100644 --- a/test/api-visibility.ts +++ b/test/api-visibility.ts @@ -1,13 +1,3 @@ -/* - * Tests of API (visibility) - * - * How to run the tests: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/api-visibility.ts --require ts-node/register - * - * To specify test: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/api-visibility.ts --require ts-node/register -g 'test name' - */ - process.env.NODE_ENV = 'test'; import * as assert from 'assert'; diff --git a/test/api.ts b/test/api.ts index 68ab2aa17..99fb196dc 100644 --- a/test/api.ts +++ b/test/api.ts @@ -1,12 +1,3 @@ -/* - * Tests of API - * - * How to run the tests: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/api.ts --require ts-node/register - * - * To specify test: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/api.ts --require ts-node/register -g 'test name' - */ /* process.env.NODE_ENV = 'test'; diff --git a/test/block.ts b/test/block.ts index 408b218a7..6d9efb77b 100644 --- a/test/block.ts +++ b/test/block.ts @@ -1,13 +1,3 @@ -/* - * Tests of block - * - * How to run the tests: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/block.ts --require ts-node/register - * - * To specify test: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/block.ts --require ts-node/register -g 'test name' - */ - process.env.NODE_ENV = 'test'; import * as assert from 'assert'; diff --git a/test/chart.ts b/test/chart.ts index 4a40b2553..935ac9d8e 100644 --- a/test/chart.ts +++ b/test/chart.ts @@ -1,13 +1,3 @@ -/* - * Tests of chart engine - * - * How to run the tests: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/chart.ts --require ts-node/register - * - * To specify test: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/chart.ts --require ts-node/register -g 'test name' - */ - process.env.NODE_ENV = 'test'; import * as assert from 'assert'; diff --git a/test/fetch-resource.ts b/test/fetch-resource.ts index 31308b08f..6efe76d8b 100644 --- a/test/fetch-resource.ts +++ b/test/fetch-resource.ts @@ -1,13 +1,3 @@ -/* - * Tests for Fetch resource - * - * How to run the tests: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/fetch-resource.ts --require ts-node/register - * - * To specify test: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/fetch-resource.ts --require ts-node/register -g 'test name' - */ - process.env.NODE_ENV = 'test'; import * as assert from 'assert'; diff --git a/test/get-file-info.ts b/test/get-file-info.ts index 57c021fea..cc9eefbfc 100644 --- a/test/get-file-info.ts +++ b/test/get-file-info.ts @@ -1,13 +1,3 @@ -/* - * Tests for detection of file information - * - * How to run the tests: - * > npx cross-env TS_NODE_FILES=true npx mocha test/get-file-info.ts --require ts-node/register - * - * To specify test: - * > npx cross-env TS_NODE_FILES=true npx mocha test/get-file-info.ts --require ts-node/register -g 'test name' - */ - import * as assert from 'assert'; import { async } from './utils'; import { getFileInfo } from '../src/misc/get-file-info'; diff --git a/test/mfm.ts b/test/mfm.ts index 3f997878b..d9b98cdac 100644 --- a/test/mfm.ts +++ b/test/mfm.ts @@ -1,13 +1,3 @@ -/* - * Tests of MFM - * - * How to run the tests: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/mfm.ts --require ts-node/register - * - * To specify test: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/mfm.ts --require ts-node/register -g 'test name' - */ - import * as assert from 'assert'; import * as mfm from 'mfm-js'; diff --git a/test/mute.ts b/test/mute.ts index 632f60fa4..ecac31075 100644 --- a/test/mute.ts +++ b/test/mute.ts @@ -1,13 +1,3 @@ -/* - * Tests of mute - * - * How to run the tests: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/mute.ts --require ts-node/register - * - * To specify test: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/mute.ts --require ts-node/register -g 'test name' - */ - process.env.NODE_ENV = 'test'; import * as assert from 'assert'; diff --git a/test/note.ts b/test/note.ts index 31aaf00da..ab8b6b190 100644 --- a/test/note.ts +++ b/test/note.ts @@ -1,13 +1,3 @@ -/* - * Tests of Note - * - * How to run the tests: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/note.ts --require ts-node/register - * - * To specify test: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/note.ts --require ts-node/register -g 'test name' - */ - process.env.NODE_ENV = 'test'; import * as assert from 'assert'; diff --git a/test/prelude/maybe.ts b/test/prelude/maybe.ts index d3f17481f..2687a739a 100644 --- a/test/prelude/maybe.ts +++ b/test/prelude/maybe.ts @@ -1,13 +1,3 @@ -/* - * Tests of Maybe - * - * How to run the tests: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/prelude/maybe.ts --require ts-node/register - * - * To specify test: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/prelude/maybe.ts --require ts-node/register -g 'test name' - */ - import * as assert from 'assert'; import { just, nothing } from '../../src/prelude/maybe'; diff --git a/test/reaction-lib.ts b/test/reaction-lib.ts index 5837b5be1..59c07de00 100644 --- a/test/reaction-lib.ts +++ b/test/reaction-lib.ts @@ -1,13 +1,3 @@ -/* - * Tests of MFM - * - * How to run the tests: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/reaction-lib.ts --require ts-node/register - * - * To specify test: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/reaction-lib.ts --require ts-node/register -g 'test name' - */ - /* import * as assert from 'assert'; diff --git a/test/streaming.ts b/test/streaming.ts index cc3168e98..e4b651aa9 100644 --- a/test/streaming.ts +++ b/test/streaming.ts @@ -1,13 +1,3 @@ -/* - * Tests of streaming API - * - * How to run the tests: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/streaming.ts --require ts-node/register - * - * To specify test: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/streaming.ts --require ts-node/register -g 'test name' - */ - process.env.NODE_ENV = 'test'; import * as assert from 'assert'; diff --git a/test/tsconfig.json b/test/tsconfig.json index 31a537805..9f9e724ea 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -12,6 +12,7 @@ "target": "es2017", "module": "commonjs", "moduleResolution": "node", + "allowSyntheticDefaultImports": true, "removeComments": false, "noLib": false, "strict": true, diff --git a/test/user-notes.ts b/test/user-notes.ts index 30589f814..c90c07d75 100644 --- a/test/user-notes.ts +++ b/test/user-notes.ts @@ -1,13 +1,3 @@ -/* - * Tests of Note - * - * How to run the tests: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/user-notes.ts --require ts-node/register - * - * To specify test: - * > npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true npx mocha test/user-notes.ts --require ts-node/register -g 'test name' - */ - process.env.NODE_ENV = 'test'; import * as assert from 'assert'; diff --git a/yarn.lock b/yarn.lock index ecb0ff973..ccfee7655 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,118 +9,18 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13": +"@babel/code-frame@^7.0.0": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== dependencies: "@babel/highlight" "^7.12.13" -"@babel/compat-data@^7.13.0": - version "7.13.6" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.6.tgz#11972d07db4c2317afdbf41d6feb3a730301ef4e" - integrity sha512-VhgqKOWYVm7lQXlvbJnWOzwfAQATd2nV52koT0HZ/LdDH0m4DUDwkKYsH+IwpXb+bKPyBJzawA4I6nBKqZcpQw== - -"@babel/compat-data@^7.13.11": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.15.tgz#7e8eea42d0b64fda2b375b22d06c605222e848f4" - integrity sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA== - -"@babel/generator@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.0.tgz#bd00d4394ca22f220390c56a0b5b85568ec1ec0c" - integrity sha512-zBZfgvBB/ywjx0Rgc2+BwoH/3H+lDtlgD4hBOpEv5LxRnYsm/753iRuLepqnYlynpjC3AdQxtxsoeHJoEEwOAw== - dependencies: - "@babel/types" "^7.13.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-compilation-targets@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.0.tgz#c9cf29b82a76fd637f0faa35544c4ace60a155a1" - integrity sha512-SOWD0JK9+MMIhTQiUVd4ng8f3NXhPVQvTv7D3UN4wbp/6cAHnB2EmMaU1zZA2Hh1gwme+THBrVSqTFxHczTh0Q== - dependencies: - "@babel/compat-data" "^7.13.0" - "@babel/helper-validator-option" "^7.12.17" - browserslist "^4.14.5" - semver "7.0.0" - -"@babel/helper-define-polyfill-provider@^0.2.2": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" - integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== - dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" - integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== - dependencies: - "@babel/helper-get-function-arity" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/helper-get-function-arity@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" - integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-module-imports@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0" - integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-module-imports@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" - integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-plugin-utils@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" - integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== - -"@babel/helper-plugin-utils@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" - integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== - -"@babel/helper-split-export-declaration@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" - integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== - dependencies: - "@babel/types" "^7.12.13" - "@babel/helper-validator-identifier@^7.12.11": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== -"@babel/helper-validator-identifier@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" - integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== - -"@babel/helper-validator-option@^7.12.17": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" - integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== - "@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c" @@ -130,7 +30,7 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.12.0", "@babel/parser@^7.12.13", "@babel/parser@^7.13.0", "@babel/parser@^7.6.0", "@babel/parser@^7.9.6": +"@babel/parser@^7.12.0", "@babel/parser@^7.6.0", "@babel/parser@^7.9.6": version "7.13.9" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.9.tgz#ca34cb95e1c2dd126863a84465ae8ef66114be99" integrity sha512-nEUfRiARCcaVo3ny3ZQjURjHQZUo/JkEw7rLlSZy/psWGnvwXFtPcr6jb7Yb41DVW5LTe6KRq9LGleRNsg1Frw== @@ -140,18 +40,6 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.13.tgz#42f03862f4aed50461e543270916b47dd501f0df" integrity sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw== -"@babel/plugin-transform-runtime@7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.5.tgz#30491dad49c6059f8f8fa5ee8896a0089e987523" - integrity sha512-fPMBhh1AV8ZyneiCIA+wYYUH1arzlXR1UMcApjvchDhfKxhy2r2lReJv8uHEyihi4IFIGlr1Pdx7S5fkESDQsg== - dependencies: - "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - babel-plugin-polyfill-corejs2 "^0.2.2" - babel-plugin-polyfill-corejs3 "^0.2.2" - babel-plugin-polyfill-regenerator "^0.2.2" - semver "^6.3.0" - "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.13.tgz#0a21452352b02542db0ffb928ac2d3ca7cb6d66d" @@ -159,31 +47,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" - integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/parser" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/traverse@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.0.tgz#6d95752475f86ee7ded06536de309a65fc8966cc" - integrity sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.0" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.13.0" - "@babel/types" "^7.13.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.19" - -"@babel/types@^7.12.0", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.6.1", "@babel/types@^7.9.6": +"@babel/types@^7.12.0", "@babel/types@^7.13.0", "@babel/types@^7.6.1", "@babel/types@^7.9.6": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.0.tgz#74424d2816f0171b4100f0ab34e9a374efdf7f80" integrity sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== @@ -192,14 +56,6 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" -"@babel/types@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.5.tgz#3bb997ba829a2104cedb20689c4a5b8121d383ff" - integrity sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg== - dependencies: - "@babel/helper-validator-identifier" "^7.14.5" - to-fast-properties "^2.0.0" - "@cspotcode/source-map-consumer@0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz#33bf4b7b39c178821606f669bbc447a6a629786b" @@ -385,26 +241,26 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@redocly/ajv@^6.12.3": - version "6.12.4" - resolved "https://registry.yarnpkg.com/@redocly/ajv/-/ajv-6.12.4.tgz#b131c9c11d1bdaa5564f69bcaefe10a4c9a5aa65" - integrity sha512-RB6vWO78v6c+SW/3bZh+XZMr4nGdJKAiPGsBALuUZnLuCiQ7aXCT1AuFHqnfS2gyXbEUEj+kw8p4ux8KdAfs3A== +"@redocly/ajv@^8.6.2": + version "8.6.2" + resolved "https://registry.yarnpkg.com/@redocly/ajv/-/ajv-8.6.2.tgz#8c4e485e72f7864f91fae40093bed548ec2619b2" + integrity sha512-tU8fQs0D76ZKhJ2cWtnfQthWqiZgGBx0gH0+5D8JvaBEBaqA8foPPBt3Nonwr3ygyv5xrw2IzKWgIY86BlGs+w== dependencies: fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" uri-js "^4.2.2" -"@redocly/openapi-core@1.0.0-beta.44": - version "1.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@redocly/openapi-core/-/openapi-core-1.0.0-beta.44.tgz#e9a6c50ee2bb18e93b3439ed92c53e440de3aa7a" - integrity sha512-9HNnh1MzvMsLK1liuidFBqWiAsZ2Yg3RY58fcEsy0QruSMdDbn7SoeI1qnXe6O+BkBS+vAP4oVzZDMHCMKGsOQ== +"@redocly/openapi-core@1.0.0-beta.54": + version "1.0.0-beta.54" + resolved "https://registry.yarnpkg.com/@redocly/openapi-core/-/openapi-core-1.0.0-beta.54.tgz#42575a849c4dd54b9d0c6413fb8ca547e087cd11" + integrity sha512-uYs0N1Trjkh7u8IMIuCU2VxCXhMyGWSZUkP/WNdTR1OgBUtvNdF9C32zoQV+hyCIH4gVu42ROHkjisy333ZX+w== dependencies: - "@redocly/ajv" "^6.12.3" + "@redocly/ajv" "^8.6.2" "@types/node" "^14.11.8" colorette "^1.2.0" js-levenshtein "^1.1.6" - js-yaml "^3.14.0" + js-yaml "^3.14.1" lodash.isequal "^4.5.0" minimatch "^3.0.4" node-fetch "^2.6.1" @@ -616,11 +472,6 @@ dependencies: cbor "*" -"@types/chai@4.2.16": - version "4.2.16" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.16.tgz#f09cc36e18d28274f942e7201147cce34d97e8c8" - integrity sha512-vI5iOAsez9+roLS3M3+Xx7w+WRuDtSmF8bQkrbcIJ2sC1PcDgVoA0WGpa+bIrJ+y8zqY2oi//fUctkxtIcXJCw== - "@types/cheerio@0.22.18": version "0.22.18" resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.18.tgz#19018dceae691509901e339d63edf1e935978fe6" @@ -1013,31 +864,16 @@ "@types/node" "*" form-data "^3.0.0" -"@types/node@*": - version "14.14.31" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz#72286bd33d137aa0d152d47ec7c1762563d34055" - integrity sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g== +"@types/node@*", "@types/node@16.6.2": + version "16.6.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.6.2.tgz#331b7b9f8621c638284787c5559423822fdffc50" + integrity sha512-LSw8TZt12ZudbpHc6EkIyDM3nHVWKYrAvGy6EAJfNfjusbwnThqjqxUKKRwuV3iWYeW/LYMzNgaq3MaLffQ2xA== -"@types/node@16.6.0": - version "16.6.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.6.0.tgz#0d5685f85066f94e97f19e8a67fe003c5fadacc4" - integrity sha512-OyiZPohMMjZEYqcVo/UJ04GyAxXOJEZO/FpzyXxcH4r/ArrVoXHf4MbUrkLp0Tz7/p1mMKpo5zJ6ZHl8XBNthQ== - -"@types/node@^14.11.8": - version "14.14.44" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.44.tgz#df7503e6002847b834371c004b372529f3f85215" - integrity sha512-+gaugz6Oce6ZInfI/tK4Pq5wIIkJMEJUu92RB3Eu93mtj4wjjjz9EB5mLp5s1pSsLXdC/CPut/xF20ZzAQJbTA== - -"@types/node@^14.14.31": +"@types/node@^14.11.8", "@types/node@^14.14.31", "@types/node@^14.14.41": version "14.17.9" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.9.tgz#b97c057e6138adb7b720df2bd0264b03c9f504fd" integrity sha512-CMjgRNsks27IDwI785YMY0KLt3co/c0cQ5foxHYv/shC2w8oOnVwz5Ubq1QG5KzrcW+AXk6gzdnxIkDnTvzu3g== -"@types/node@^14.14.41": - version "14.17.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.0.tgz#3ba770047723b3eeb8dc9fca02cce8a7fb6378da" - integrity sha512-w8VZUN/f7SSbvVReb9SWp6cJFevxb4/nkG65yLAya//98WgocKm5PLDAtSs5CtJJJM+kHmJjO/6mmYW4MHShZA== - "@types/nodemailer@6.4.4": version "6.4.4" resolved "https://registry.yarnpkg.com/@types/nodemailer/-/nodemailer-6.4.4.tgz#c265f7e7a51df587597b3a49a023acaf0c741f4b" @@ -1163,10 +999,10 @@ dependencies: "@types/node" "*" -"@types/rimraf@3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-3.0.1.tgz#1bbc106f0978742289103e080d4b41b3b4656e58" - integrity sha512-CAoSlbco40aKZ0CkelBF2g3JeN6aioRaTVnqSX5pWsn/WApm6IDxI4e4tD9D0dY/meCkyyleP1IQDVN13F4maA== +"@types/rimraf@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-3.0.2.tgz#a63d175b331748e5220ad48c901d7bbf1f44eef8" + integrity sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ== dependencies: "@types/glob" "*" "@types/node" "*" @@ -1355,48 +1191,48 @@ resolved "https://registry.yarnpkg.com/@types/zen-observable/-/zen-observable-0.8.2.tgz#808c9fa7e4517274ed555fa158f2de4b4f468e71" integrity sha512-HrCIVMLjE1MOozVoD86622S7aunluLb2PJdPfb3nYiEtohm8mIB/vyv0Fd37AdeMFrTUQXEunw78YloMA3Qilg== -"@typescript-eslint/parser@4.29.1": - version "4.29.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.1.tgz#17dfbb45c9032ffa0fe15881d20fbc2a4bdeb02d" - integrity sha512-3fL5iN20hzX3Q4OkG7QEPFjZV2qsVGiDhEwwh+EkmE/w7oteiOvUNzmpu5eSwGJX/anCryONltJ3WDmAzAoCMg== +"@typescript-eslint/parser@4.29.2": + version "4.29.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.29.2.tgz#1c7744f4c27aeb74610c955d3dce9250e95c370a" + integrity sha512-WQ6BPf+lNuwteUuyk1jD/aHKqMQ9jrdCn7Gxt9vvBnzbpj7aWEf+aZsJ1zvTjx5zFxGCt000lsbD9tQPEL8u6g== dependencies: - "@typescript-eslint/scope-manager" "4.29.1" - "@typescript-eslint/types" "4.29.1" - "@typescript-eslint/typescript-estree" "4.29.1" + "@typescript-eslint/scope-manager" "4.29.2" + "@typescript-eslint/types" "4.29.2" + "@typescript-eslint/typescript-estree" "4.29.2" debug "^4.3.1" -"@typescript-eslint/scope-manager@4.29.1": - version "4.29.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.1.tgz#f25da25bc6512812efa2ce5ebd36619d68e61358" - integrity sha512-Hzv/uZOa9zrD/W5mftZa54Jd5Fed3tL6b4HeaOpwVSabJK8CJ+2MkDasnX/XK4rqP5ZTWngK1ZDeCi6EnxPQ7A== +"@typescript-eslint/scope-manager@4.29.2": + version "4.29.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.29.2.tgz#442b0f029d981fa402942715b1718ac7fcd5aa1b" + integrity sha512-mfHmvlQxmfkU8D55CkZO2sQOueTxLqGvzV+mG6S/6fIunDiD2ouwsAoiYCZYDDK73QCibYjIZmGhpvKwAB5BOA== dependencies: - "@typescript-eslint/types" "4.29.1" - "@typescript-eslint/visitor-keys" "4.29.1" + "@typescript-eslint/types" "4.29.2" + "@typescript-eslint/visitor-keys" "4.29.2" -"@typescript-eslint/types@4.29.1": - version "4.29.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.1.tgz#94cce6cf7cc83451df03339cda99d326be2feaf5" - integrity sha512-Jj2yu78IRfw4nlaLtKjVaGaxh/6FhofmQ/j8v3NXmAiKafbIqtAPnKYrf0sbGjKdj0hS316J8WhnGnErbJ4RCA== +"@typescript-eslint/types@4.29.2": + version "4.29.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.29.2.tgz#fc0489c6b89773f99109fb0aa0aaddff21f52fcd" + integrity sha512-K6ApnEXId+WTGxqnda8z4LhNMa/pZmbTFkDxEBLQAbhLZL50DjeY0VIDCml/0Y3FlcbqXZrABqrcKxq+n0LwzQ== -"@typescript-eslint/typescript-estree@4.29.1": - version "4.29.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.1.tgz#7b32a25ff8e51f2671ccc6b26cdbee3b1e6c5e7f" - integrity sha512-lIkkrR9E4lwZkzPiRDNq0xdC3f2iVCUjw/7WPJ4S2Sl6C3nRWkeE1YXCQ0+KsiaQRbpY16jNaokdWnm9aUIsfw== +"@typescript-eslint/typescript-estree@4.29.2": + version "4.29.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.2.tgz#a0ea8b98b274adbb2577100ba545ddf8bf7dc219" + integrity sha512-TJ0/hEnYxapYn9SGn3dCnETO0r+MjaxtlWZ2xU+EvytF0g4CqTpZL48SqSNn2hXsPolnewF30pdzR9a5Lj3DNg== dependencies: - "@typescript-eslint/types" "4.29.1" - "@typescript-eslint/visitor-keys" "4.29.1" + "@typescript-eslint/types" "4.29.2" + "@typescript-eslint/visitor-keys" "4.29.2" debug "^4.3.1" globby "^11.0.3" is-glob "^4.0.1" semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/visitor-keys@4.29.1": - version "4.29.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.1.tgz#0615be8b55721f5e854f3ee99f1a714f2d093e5d" - integrity sha512-zLqtjMoXvgdZY/PG6gqA73V8BjqPs4af1v2kiiETBObp+uC6gRYnJLmJHxC0QyUrrHDLJPIWNYxoBV3wbcRlag== +"@typescript-eslint/visitor-keys@4.29.2": + version "4.29.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.2.tgz#d2da7341f3519486f50655159f4e5ecdcb2cd1df" + integrity sha512-bDgJLQ86oWHJoZ1ai4TZdgXzJxsea3Ee9u9wsTAvjChdj2WLcVsgWYAPeY7RQMn16tKrlQaBnpKv7KBfs4EQag== dependencies: - "@typescript-eslint/types" "4.29.1" + "@typescript-eslint/types" "4.29.2" eslint-visitor-keys "^2.0.0" "@ungap/promise-all-settled@1.1.2": @@ -1404,37 +1240,37 @@ resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== -"@vue/compiler-core@3.2.3": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.3.tgz#96aa6692ad3819127f9f6256757f67f1c400ceb4" - integrity sha512-qQpACs40hClYqghS209OBh6NDArKPrS5emWMOH/hzDy0KtOV7Kfyy2ILWRfamIsygq8mg+xHcqtVXOjr21WvQw== +"@vue/compiler-core@3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.4.tgz#a98d295771998c1e8dccc4ee3d52feb14b02aea9" + integrity sha512-c8NuQq7mUXXxA4iqD5VUKpyVeklK53+DMbojYMyZ0VPPrb0BUWrZWFiqSDT+MFDv0f6Hv3QuLiHWb1BWMXBbrw== dependencies: "@babel/parser" "^7.12.0" "@babel/types" "^7.12.0" - "@vue/shared" "3.2.3" + "@vue/shared" "3.2.4" estree-walker "^2.0.1" source-map "^0.6.1" -"@vue/compiler-dom@3.2.3": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.3.tgz#2576959b979dd8a765171943cfa5409437eb1e80" - integrity sha512-hEKd+h9eIT+et/l0Nmiup5CWFHC4KuhUcrdAIPLcv1uskVQA3gSDAAx9UGB/G9cRB2gmBpFONHEi8zKrlnsaWQ== +"@vue/compiler-dom@3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.4.tgz#3a43de243eba127abbe57e796a0b969d2df78c08" + integrity sha512-uj1nwO4794fw2YsYas5QT+FU/YGrXbS0Qk+1c7Kp1kV7idhZIghWLTjyvYibpGoseFbYLPd+sW2/noJG5H04EQ== dependencies: - "@vue/compiler-core" "3.2.3" - "@vue/shared" "3.2.3" + "@vue/compiler-core" "3.2.4" + "@vue/shared" "3.2.4" -"@vue/compiler-sfc@3.2.3": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.3.tgz#49195959e168cd7fbecb6c46badb5756b8edaf10" - integrity sha512-TlaDOChFUzt3lqqaFNRD2XI0lrRWYA0/jTgWKUrCLVEPZ0tNP8Vyjmml3+1QlAo4pyjaOjYacq0OS4eCGVFJ3w== +"@vue/compiler-sfc@3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.4.tgz#9807868cc950291f163c3930a81bb16e870df097" + integrity sha512-GM+ouDdDzhqgkLmBH4bgq4kiZxJQArSppJiZHWHIx9XRaefHLmc1LBNPmN8ivm4SVfi2i7M2t9k8ZnjsScgzPQ== dependencies: "@babel/parser" "^7.13.9" "@babel/types" "^7.13.0" "@types/estree" "^0.0.48" - "@vue/compiler-core" "3.2.3" - "@vue/compiler-dom" "3.2.3" - "@vue/compiler-ssr" "3.2.3" - "@vue/shared" "3.2.3" + "@vue/compiler-core" "3.2.4" + "@vue/compiler-dom" "3.2.4" + "@vue/compiler-ssr" "3.2.4" + "@vue/shared" "3.2.4" consolidate "^0.16.0" estree-walker "^2.0.1" hash-sum "^2.0.0" @@ -1446,42 +1282,42 @@ postcss-selector-parser "^6.0.4" source-map "^0.6.1" -"@vue/compiler-ssr@3.2.3": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.3.tgz#75518e43e52c3d50db2e06cbdf37b981d3b4e711" - integrity sha512-VMYXYBXPohxlPvg42tT8Gcc58Wo1fPP4IE+aLgpmnNmMFuTsGEKOBK4mZqtNpv9dxgF6ooro9gQlA6BfOy3lGg== +"@vue/compiler-ssr@3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.4.tgz#be51f219c2042b3e530373e60bc126ada6bb1cc0" + integrity sha512-bKZuXu9/4XwsFHFWIKQK+5kN7mxIIWmMmT2L4VVek7cvY/vm3p4WTsXYDGZJy0htOTXvM2ifr6sflg012T0hsw== dependencies: - "@vue/compiler-dom" "3.2.3" - "@vue/shared" "3.2.3" + "@vue/compiler-dom" "3.2.4" + "@vue/shared" "3.2.4" -"@vue/reactivity@3.2.3": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.3.tgz#df466543542a2ae20553dea1efd57bec1da634f3" - integrity sha512-HGmciaVNb3VKn4f4wCswFWLXBcopKQbO1oEs+WunBtt5tym0SS2wFNEGvWfW0dzzlXRbM507ys09m68L+JTa/Q== +"@vue/reactivity@3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.4.tgz#a020ad7e50f674219a07764b105b5922e61597ea" + integrity sha512-ljWTR0hr8Tn09hM2tlmWxZzCBPlgGLnq/k8K8X6EcJhtV+C8OzFySnbWqMWataojbrQOocThwsC8awKthSl2uQ== dependencies: - "@vue/shared" "3.2.3" + "@vue/shared" "3.2.4" -"@vue/runtime-core@3.2.3": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.3.tgz#6f34ec620d6d75c255a1e75e64a4b6f90a4a2039" - integrity sha512-yn6FL2fCKi5dauJYm8u6iiGs7VoXoIWdr+icIFtEW4eObUKOzDwYpBaqCf8orhI1LEnyZO7rLplbfoJJColBwg== +"@vue/runtime-core@3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.4.tgz#da5dde3dc1e48df99dd31ea9a972f5c02acdc3f5" + integrity sha512-W6PtEOs8P8jKYPo3JwaMAozZQivxInUleGfNwI2pK1t8ZLZIxn4kAf7p4VF4jJdQB8SZBzpfWdLUc06j7IOmpQ== dependencies: - "@vue/reactivity" "3.2.3" - "@vue/shared" "3.2.3" + "@vue/reactivity" "3.2.4" + "@vue/shared" "3.2.4" -"@vue/runtime-dom@3.2.3": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.3.tgz#4f0930681efd9d11d99a593221bcae9423f69fcb" - integrity sha512-YpulzSn0ydzgbfE1i9O1MJAspUHTA9q6AmqRrDLIR5AP9jmoGA//TmnB90IhA7OOGpuSVm4f1VUZ+gm/URPPgA== +"@vue/runtime-dom@3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.4.tgz#1025595f2ae99a12fe0e1e6bce8df6761efec24b" + integrity sha512-HcVtLyn2SGwsf6BFPwkvDPDOhOqkOKcfHDpBp5R1coX+qMsOFrY8lJnGXIY+JnxqFjND00E9+u+lq5cs/W7ooA== dependencies: - "@vue/runtime-core" "3.2.3" - "@vue/shared" "3.2.3" + "@vue/runtime-core" "3.2.4" + "@vue/shared" "3.2.4" csstype "^2.6.8" -"@vue/shared@3.2.3": - version "3.2.3" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.3.tgz#89e338a5524450c876d3512b4cc6ba80a4205e2c" - integrity sha512-1f8kyoabSgoga0E89itGIoaCo2Ayr6i6jQq/kHhhYrrBxoK7LNNwuWQghW0k/bapimyIzQiN891XzquYP78aqg== +"@vue/shared@3.2.4": + version "3.2.4" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.4.tgz#ba2a09527afff27b28d08f921b4a597e9504ca7a" + integrity sha512-j2j1MRmjalVKr3YBTxl/BClSIc8UQ8NnPpLYclxerK65JIowI4O7n8O8lElveEtEoHxy1d7BelPUDI0Q4bumqg== "@webassemblyjs/ast@1.11.0": version "1.11.0" @@ -1737,10 +1573,10 @@ dependencies: envinfo "^7.7.3" -"@webpack-cli/serve@^1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.5.1.tgz#b5fde2f0f79c1e120307c415a4c1d5eb15a6f278" - integrity sha512-4vSVUiOPJLmr45S8rMGy7WDvpWxfFxfP/Qx/cxZFCfvoypTYpPPL1X8VIZMe0WTA+Jr7blUxwUSEZNkjoMTgSw== +"@webpack-cli/serve@^1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.5.2.tgz#ea584b637ff63c5a477f6f21604b5a205b72c9ec" + integrity sha512-vgJ5OLWadI8aKjDlOH3rb+dYyPd2GTZuQC/Tihjct6F9GpXGZINo3Y/IVuZVTM1eDQB+/AOsjPUWH/WySDaXvw== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -2155,11 +1991,6 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -assertion-error@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" - integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== - assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -2280,30 +2111,6 @@ axios@^0.21.1: dependencies: follow-redirects "^1.10.0" -babel-plugin-polyfill-corejs2@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" - integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== - dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.2.2" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.2.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz#72add68cf08a8bf139ba6e6dfc0b1d504098e57b" - integrity sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.2" - core-js-compat "^3.14.0" - -babel-plugin-polyfill-regenerator@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" - integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.2" - babel-walk@3.0.0-canary-5: version "3.0.0-canary-5" resolved "https://registry.yarnpkg.com/babel-walk/-/babel-walk-3.0.0-canary-5.tgz#f66ecd7298357aee44955f235a6ef54219104b11" @@ -2415,10 +2222,10 @@ bluebird@3.7.2, bluebird@^3.7.2: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -blurhash@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/blurhash/-/blurhash-1.1.3.tgz#dc325af7da836d07a0861d830bdd63694382483e" - integrity sha512-yUhPJvXexbqbyijCIE/T2NCXcj9iNPhWmOKbPTuR/cm7Q5snXYIfnVnz6m7MWOXxODMz/Cr3UcVkRdHiuDVRDw== +blurhash@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/blurhash/-/blurhash-1.1.4.tgz#a7010ceb3019cd2c9809b17c910ebf6175d29244" + integrity sha512-MXIPz6zwYUKayju+Uidf83KhH0vodZfeRl6Ich8Gu+KGl0JgKiFq9LsfqV7cVU5fKD/AotmduZqvOfrGKOfTaA== bn.js@^4.0.0: version "4.11.8" @@ -2461,10 +2268,10 @@ braces@^3.0.1, braces@~3.0.2: dependencies: fill-range "^7.0.1" -broadcast-channel@3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/broadcast-channel/-/broadcast-channel-3.7.0.tgz#2dfa5c7b4289547ac3f6705f9c00af8723889937" - integrity sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg== +broadcast-channel@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/broadcast-channel/-/broadcast-channel-4.2.0.tgz#9ca93a23a31036266c2c9b0f8f55bd21594b8f82" + integrity sha512-XX9yNnIy/v2T+HR5EKIH7ziM2mYTefsrzZ2lkCmFZxwCDG7Ns7HLIooUXA114sCeFRJ4MEXEgdMapxfPDh9Xkg== dependencies: "@babel/runtime" "^7.7.2" detect-node "^2.1.0" @@ -2606,10 +2413,10 @@ builtin-modules@^1.1.1: resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= -bull@3.26.0: - version "3.26.0" - resolved "https://registry.yarnpkg.com/bull/-/bull-3.26.0.tgz#c6198cf4f3a2fa5f3044cbe462b452c77a3df94f" - integrity sha512-W1ohwMBApLW9dhKHEwgzr8YnpScTOGC9KtKP2DrvjnWTQFWbaEnKlrDHKp3SJwvAB0C3jDsO579O/Hys/UmAiQ== +bull@3.28.1: + version "3.28.1" + resolved "https://registry.yarnpkg.com/bull/-/bull-3.28.1.tgz#33bc7bbe640e71258a2a800935a692a24a2d7236" + integrity sha512-TasVWD1410Q8druRG6SIAN5hwAT3F4QICcGszReD859qAerq+VwbW3vPg6lV60reJkWyWBK11FHa2FsQ8iDBmQ== dependencies: cron-parser "^2.13.0" debuglog "^1.0.0" @@ -2719,14 +2526,6 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camel-case@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" - integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M= - dependencies: - no-case "^2.2.0" - upper-case "^1.1.1" - camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" @@ -2812,18 +2611,6 @@ cbor@8.0.0: dependencies: nofilter "^3.0.2" -chai@4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz#b55e655b31e1eac7099be4c08c21964fce2e6c49" - integrity sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^3.0.1" - get-func-name "^2.0.0" - pathval "^1.1.1" - type-detect "^4.0.5" - chalk@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.0.0.tgz#6e98081ed2d17faab615eb52ac66ec1fe6209e72" @@ -2903,11 +2690,6 @@ chartjs-color@^2.1.0: chartjs-color-string "^0.6.0" color-convert "^1.9.3" -check-error@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" - integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= - check-more-types@2.24.0, check-more-types@^2.24.0: version "2.24.0" resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" @@ -2996,11 +2778,6 @@ ci-info@^3.1.1: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== -clamp@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/clamp/-/clamp-1.0.1.tgz#66a0e64011816e37196828fdc8c8c147312c8634" - integrity sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ= - clap@^1.0.9: version "1.2.3" resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" @@ -3018,13 +2795,6 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -clean-css@^4.2.1: - version "4.2.3" - resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" - integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== - dependencies: - source-map "~0.6.0" - clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" @@ -3037,7 +2807,7 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-highlight@2.1.11: +cli-highlight@2.1.11, cli-highlight@^2.1.11: version "2.1.11" resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.11.tgz#49736fa452f0aaf4fae580e30acb26828d2dc1bf" integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== @@ -3049,18 +2819,6 @@ cli-highlight@2.1.11: parse5-htmlparser2-tree-adapter "^6.0.0" yargs "^16.0.0" -cli-highlight@^2.1.10: - version "2.1.10" - resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.10.tgz#26a087da9209dce4fcb8cf5427dc97cd96ac173a" - integrity sha512-CcPFD3JwdQ2oSzy+AMG6j3LRTkNjM82kzcSKzoVw6cLanDCJNlsLjeqVTOTfOfucnWv5F0rmBemVf1m9JiIasw== - dependencies: - chalk "^4.0.0" - highlight.js "^10.0.0" - mz "^2.4.0" - parse5 "^5.1.1" - parse5-htmlparser2-tree-adapter "^6.0.0" - yargs "^16.0.0" - cli-table3@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" @@ -3219,7 +2977,7 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.3.0, color-convert@^1.9.0, color-convert@^1.9.1, color-convert@^1.9.3: +color-convert@^1.3.0, color-convert@^1.9.0, color-convert@^1.9.3: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -3250,10 +3008,10 @@ color-string@^0.3.0: dependencies: color-name "^1.0.0" -color-string@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" - integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw== +color-string@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312" + integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" @@ -3272,19 +3030,24 @@ color@^0.11.0: color-convert "^1.3.0" color-string "^0.3.0" -color@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" - integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== +color@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/color/-/color-4.0.1.tgz#21df44cd10245a91b1ccf5ba031609b0e10e7d67" + integrity sha512-rpZjOKN5O7naJxkH2Rx1sZzzBgaiWECc6BYXjeCE6kF0kcASJYbUq02u7JqIHwCb/j3NhV+QhRL2683aICeGZA== dependencies: - color-convert "^1.9.1" - color-string "^1.5.4" + color-convert "^2.0.1" + color-string "^1.6.0" colord@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/colord/-/colord-2.0.1.tgz#1e7fb1f9fa1cf74f42c58cb9c20320bab8435aa0" integrity sha512-vm5YpaWamD0Ov6TSG0GGmUIwstrWcfKQV/h2CmbR7PbNu41+qdB5PW9lpzhjedrpm08uuYvcXi0Oel1RLZIJuA== +colord@^2.6: + version "2.7.0" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.7.0.tgz#706ea36fe0cd651b585eb142fe64b6480185270e" + integrity sha512-pZJBqsHz+pYyw3zpX6ZRXWoCHM1/cvFikY9TV8G3zcejCaKE0lhankoj8iScyrrePA8C7yJ5FStfA9zbcOnw7Q== + colorette@^1.2.0, colorette@^1.2.1, colorette@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" @@ -3316,12 +3079,12 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" -commander@7.2.0, commander@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== +commander@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-8.1.0.tgz#db36e3e66edf24ff591d639862c6ab2c52664362" + integrity sha512-mf45ldcuHSYShkplHHGKWb4TrmwQadxOn7v4WuhDJy0ZVoY5JFajaRDKD0PNe5qXzBX0rhovjTnP6Kz9LETcuA== -commander@^2.12.1, commander@^2.19.0, commander@^2.20.0, commander@~2.20.3: +commander@^2.12.1, commander@^2.19.0, commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -3341,6 +3104,11 @@ commander@^7.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.0.0.tgz#3e2bbfd8bb6724760980988fb5b22b7ee6b71ab2" integrity sha512-ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA== +commander@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + comment-json@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-4.1.0.tgz#09d08f0fbc4ad5eeccbac20f469adbb967dcbd2c" @@ -3357,11 +3125,6 @@ common-tags@^1.8.0: resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== -commondir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" - integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= - compare-versions@3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" @@ -3387,10 +3150,10 @@ concat-stream@^1.5.2, concat-stream@^1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" -concurrently@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-6.2.0.tgz#587e2cb8afca7234172d8ea55176088632c4c56d" - integrity sha512-v9I4Y3wFoXCSY2L73yYgwA9ESrQMpRn80jMcqMgHx720Hecz2GZAvTI6bREVST6lkddNypDKRN22qhK0X8Y00g== +concurrently@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-6.2.1.tgz#d880fc1d77559084732fa514092a3d5109a0d5bf" + integrity sha512-emgwhH+ezkuYKSHZQ+AkgEpoUZZlbpPVYCVv7YZx0r+T7fny1H03r2nYRebpi2DudHR4n1Rgbo2YTxKOxVJ4+g== dependencies: chalk "^4.1.0" date-fns "^2.16.1" @@ -3484,19 +3247,6 @@ copy-to@^2.0.1: resolved "https://registry.yarnpkg.com/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5" integrity sha1-JoD7uAaKSNCGVrYJgJK9r8kG9KU= -core-js-compat@^3.14.0: - version "3.15.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.15.2.tgz#47272fbb479880de14b4e6081f71f3492f5bd3cb" - integrity sha512-Wp+BJVvwopjI+A1EFqm2dwUmWYXrvucmtIB2LgXn/Rb+gWPKYxtmb4GKHGKG/KGF1eK9jfjzT38DITbTOCX/SQ== - dependencies: - browserslist "^4.16.6" - semver "7.0.0" - -core-js@3.16.1: - version "3.16.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.16.1.tgz#f4485ce5c9f3c6a7cb18fa80488e08d362097249" - integrity sha512-AAkP8i35EbefU+JddyWi12AWE9f2N/qr/pwnDtWz4nyUIBGMJPX99ANFFRSw6FefM374lDujdtLDyhN2A/btHw== - core-util-is@1.0.2, core-util-is@^1.0.2, 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" @@ -3550,7 +3300,7 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -css-color-names@0.0.4, css-color-names@^0.0.4: +css-color-names@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= @@ -3661,10 +3411,10 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.3.tgz#caa54183a8c8df03124a9e23f374ab89df5a9a99" - integrity sha512-qo9tX+t4yAAZ/yagVV3b+QBKeLklQbmgR3wI7mccrDcR+bEk9iHgZN1E7doX68y9ThznLya3RDmR+nc7l6/2WQ== +cssnano-preset-default@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.4.tgz#359943bf00c5c8e05489f12dd25f3006f2c1cbd2" + integrity sha512-sPpQNDQBI3R/QsYxQvfB4mXeEcWuw0wGtKtmS5eg8wudyStYMgKOQT39G07EbW1LB56AOYrinRS9f0ig4Y3MhQ== dependencies: css-declaration-sorter "^6.0.3" cssnano-utils "^2.0.1" @@ -3678,7 +3428,7 @@ cssnano-preset-default@^5.1.3: postcss-merge-longhand "^5.0.2" postcss-merge-rules "^5.0.2" postcss-minify-font-values "^5.0.1" - postcss-minify-gradients "^5.0.1" + postcss-minify-gradients "^5.0.2" postcss-minify-params "^5.0.1" postcss-minify-selectors "^5.1.0" postcss-normalize-charset "^5.0.1" @@ -3701,12 +3451,12 @@ cssnano-utils@^2.0.1: resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.1.tgz#8660aa2b37ed869d2e2f22918196a9a8b6498ce2" integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== -cssnano@5.0.7: - version "5.0.7" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.7.tgz#e81894bdf31aa01a0ca3d1d0eee47be18f7f3012" - integrity sha512-7C0tbb298hef3rq+TtBbMuezBQ9VrFtrQEsPNuBKNVgWny/67vdRsnq8EoNu7TRjAHURgYvWlRIpCUmcMZkRzw== +cssnano@5.0.8: + version "5.0.8" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.8.tgz#39ad166256980fcc64faa08c9bb18bb5789ecfa9" + integrity sha512-Lda7geZU0Yu+RZi2SGpjYuQz4HI4/1Y+BhdD0jL7NXAQ5larCzVn+PUGuZbDMYz904AXXCOgO5L1teSvgu7aFg== dependencies: - cssnano-preset-default "^5.1.3" + cssnano-preset-default "^5.1.4" is-resolvable "^1.1.0" lilconfig "^2.0.3" yaml "^1.10.2" @@ -3793,10 +3543,10 @@ csstype@^2.6.8: resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f" integrity sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A== -cypress@8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-8.2.0.tgz#1e4e9f6218324e82a95c1b9cad7f3965ba663d7f" - integrity sha512-jg7S5VxxslwsgEyAkCE9ZCkFADxOUY1bSWScp1cWnga88K0TZgFQ0zdxyG9Mw/4spLGuvkriIZ62am+TR6C04w== +cypress@8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-8.3.0.tgz#ba906d2170888073ad94b2be1b994a749bbb7c7d" + integrity sha512-zA5Rcq8AZIfRfPXU0CCcauofF+YpaU9HYbfqkunFTmFV0Kdlo14tNjH2E3++MkjXKFnv3/pXq+HgxWtw8CSe8Q== dependencies: "@cypress/request" "^2.88.5" "@cypress/xvfb" "^1.2.4" @@ -3965,13 +3715,6 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== - dependencies: - type-detect "^4.0.0" - deep-equal@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" @@ -4078,11 +3821,6 @@ detect-file@^1.0.0: resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= -detect-indent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" - integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= - detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" @@ -4128,14 +3866,6 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -diskusage@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/diskusage/-/diskusage-1.1.3.tgz#680d7dbf1b679168a195c9240eb3552cbd2c067b" - integrity sha512-EAyaxl8hy4Ph07kzlzGTfpbZMNAAAHXSZtNEMwdlnSd1noHzvA6HsgKt4fEMSvaEXQYLSphe5rPMxN4WOj0hcQ== - dependencies: - es6-promise "^4.2.5" - nan "^2.14.0" - doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" @@ -4460,11 +4190,6 @@ es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.3: es5-ext "^0.10.35" es6-symbol "^3.1.1" -es6-promise@^4.2.5: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - es6-symbol@^3.1.1, es6-symbol@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" @@ -4978,15 +4703,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -find-cache-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== - dependencies: - commondir "^1.0.1" - make-dir "^2.0.0" - pkg-dir "^3.0.0" - find-node-modules@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/find-node-modules/-/find-node-modules-2.1.2.tgz#57565a3455baf671b835bc6b2134a9b938b9c53c" @@ -5254,11 +4970,6 @@ get-caller-file@^2.0.1, 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-func-name@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" - integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= - get-paths@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/get-paths/-/get-paths-0.0.7.tgz#15331086752077cf130166ccd233a1cdbeefcf38" @@ -5413,11 +5124,6 @@ global-prefix@^1.0.1: is-windows "^1.0.1" which "^1.2.14" -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - globals@^13.6.0: version "13.7.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.7.0.tgz#aed3bcefd80ad3ec0f0be2cf0c895110c0591795" @@ -5591,25 +5297,6 @@ har-validator@~5.1.3: ajv "^6.5.5" har-schema "^2.0.0" -hard-source-webpack-plugin@0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/hard-source-webpack-plugin/-/hard-source-webpack-plugin-0.13.1.tgz#a99071e25b232f1438a5bc3c99f10a3869e4428e" - integrity sha512-r9zf5Wq7IqJHdVAQsZ4OP+dcUSvoHqDMxJlIzaE2J0TZWn3UjMMrHqwDHR8Jr/pzPfG7XxSe36E7Y8QGNdtuAw== - dependencies: - chalk "^2.4.1" - find-cache-dir "^2.0.0" - graceful-fs "^4.1.11" - lodash "^4.15.0" - mkdirp "^0.5.1" - node-object-hash "^1.2.0" - parse-json "^4.0.0" - pkg-dir "^3.0.0" - rimraf "^2.6.2" - semver "^5.6.0" - tapable "^1.0.0-beta.5" - webpack-sources "^1.0.1" - write-json-file "^2.3.0" - has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -5700,16 +5387,6 @@ he@1.2.0, he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -highlight.js@^10.0.0: - version "10.4.1" - resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.4.1.tgz#d48fbcf4a9971c4361b3f95f302747afe19dbad0" - integrity sha512-yR5lWvNz7c85OhVAEAeFhVCc/GV4C30Fjzc/rCP0aCWzc1UUOPUk55dK/qdwTZHBvMZo+eZ2jpk62ndX/xMFlg== - highlight.js@^10.7.1: version "10.7.2" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.7.2.tgz#89319b861edc66c48854ed1e6da21ea89f847360" @@ -5737,16 +5414,6 @@ hpagent@^0.1.1: resolved "https://registry.yarnpkg.com/hpagent/-/hpagent-0.1.1.tgz#66f67f16e5c7a8b59a068e40c2658c2c749ad5e2" integrity sha512-IxJWQiY0vmEjetHdoE9HZjD4Cx+mYTr25tR7JCxXaiI3QxW0YqYyM11KyZbHufoa/piWhMb2+D3FGpMgmA2cFQ== -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - html-comment-regex@^1.1.0: version "1.1.2" resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" @@ -5764,19 +5431,6 @@ html-entities@2.3.2: resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== -html-minifier@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-4.0.0.tgz#cca9aad8bce1175e02e17a8c33e46d8988889f56" - integrity sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig== - dependencies: - camel-case "^3.0.0" - clean-css "^4.2.1" - commander "^2.19.0" - he "^1.2.0" - param-case "^2.1.1" - relateurl "^0.2.7" - uglify-js "^3.5.1" - htmlparser2@^3.9.1: version "3.10.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" @@ -6159,18 +5813,6 @@ is-ci@^3.0.0: dependencies: ci-info "^3.1.1" -is-color-stop@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - is-core-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.0.0.tgz#58531b70aed1db7c0e8d4eb1a0a2d1ddd64bd12d" @@ -6383,11 +6025,6 @@ is-resolvable@^1.1.0: resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== -is-root@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" - integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== - is-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" @@ -6585,15 +6222,7 @@ js-yaml@4.1.0, js-yaml@^4.0.0: dependencies: argparse "^2.0.1" -js-yaml@^3.13.1: - version "3.14.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^3.14.0: +js-yaml@^3.13.1, js-yaml@^3.14.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== @@ -6652,17 +6281,12 @@ jsdom@16.7.0: ws "^7.4.6" xml-name-validator "^3.0.0" -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - json-buffer@3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== @@ -7156,11 +6780,6 @@ lodash.clonedeep@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= - lodash.defaults@^4.0.1, lodash.defaults@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" @@ -7241,11 +6860,6 @@ lodash.sortby@^4.7.0: resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= -lodash.throttle@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" - integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= - lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" @@ -7256,7 +6870,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.15.0, lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.7.0: +lodash@^4.17.14, lodash@^4.17.19, lodash@^4.17.21, lodash@^4.7.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -7286,11 +6900,6 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" -lower-case@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" - integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= - lowercase-keys@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" @@ -7325,21 +6934,6 @@ magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.4" -make-dir@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" - integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== - dependencies: - pify "^3.0.0" - -make-dir@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== - dependencies: - pify "^4.0.1" - semver "^5.6.0" - make-error@^1.1.1: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" @@ -7428,11 +7022,6 @@ matchdep@^2.0.0: resolve "^1.4.0" stack-trace "0.0.10" -material-colors@^1.0.0: - version "1.2.6" - resolved "https://registry.yarnpkg.com/material-colors/-/material-colors-1.2.6.tgz#6d1958871126992ceecc72f4bcc4d8f010865f46" - integrity sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg== - math-expression-evaluator@^1.2.14: version "1.3.7" resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.3.7.tgz#1b62225db86af06f7ea1fd9576a34af605a5b253" @@ -7680,7 +7269,7 @@ mkdirp-classic@^0.5.3: resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@~0.5.1: +mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -7723,13 +7312,6 @@ mocha@8.4.0: yargs-parser "20.2.4" yargs-unparser "2.0.0" -moji@0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/moji/-/moji-0.5.1.tgz#088eecd1c22c8f31a240adcf9c95e54f33eb54fb" - integrity sha1-CI7s0cIsjzGiQK3PnJXlTzPrVPs= - dependencies: - object-assign "^3.0.0" - moment-timezone@^0.5.25: version "0.5.28" resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.28.tgz#f093d789d091ed7b055d82aa81a82467f72e4338" @@ -7785,7 +7367,7 @@ mz@^2.4.0, mz@^2.7.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nan@^2.14.0, nan@^2.14.2: +nan@^2.14.2: version "2.14.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== @@ -7868,13 +7450,6 @@ next-tick@~1.0.0: resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= -no-case@^2.2.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" - integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ== - dependencies: - lower-case "^1.1.1" - node-abi@^2.21.0: version "2.21.0" resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.21.0.tgz#c2dc9ebad6f4f53d6ea9b531e7b8faad81041d48" @@ -7882,10 +7457,10 @@ node-abi@^2.21.0: dependencies: semver "^5.4.1" -node-addon-api@^3.2.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" - integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== +node-addon-api@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.0.0.tgz#ac128f43eff7fac4b5f5ef2f39d6d7c2709efead" + integrity sha512-ALmRVBFzfwldBfk3SbKfl6+PVMXiCPKZBEfsJqB/EjXAMAI+MfFrEHR+GMRBuI162DihZ1QjEZ8ieYKuRCJ8Hg== node-fetch@2.6.1, node-fetch@^2.6.1: version "2.6.1" @@ -7921,11 +7496,6 @@ node-gyp@^8.0.0: tar "^6.1.0" which "^2.0.2" -node-object-hash@^1.2.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/node-object-hash/-/node-object-hash-1.4.2.tgz#385833d85b229902b75826224f6077be969a9e94" - integrity sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ== - node-releases@^1.1.70, node-releases@^1.1.71: version "1.1.71" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" @@ -7948,11 +7518,6 @@ nofilter@^3.0.2: resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.0.3.tgz#3ff3b142efdccb403434ccae4a0c2c835cb9b522" integrity sha512-TN/MCrQmXQk5DyUJ8TGUq1Il8rv4fTsjddLmMopV006QP8DMkglmGgYfQKD5620vXLRXfr8iGI6ZZ4/ZWld2cQ== -noop-logger@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" - integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= - nopt@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" @@ -8078,16 +7643,6 @@ oauth@0.9.15: resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" integrity sha1-vR/vr2hslrdUda7VGWQS/2DPucE= -object-assign-deep@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/object-assign-deep/-/object-assign-deep-0.4.0.tgz#43505d3679abb9686ab359b97ac14cc837a9d143" - integrity sha512-54Uvn3s+4A/cMWx9tlRez1qtc7pN7pbQ+Yi7mjLjcBpWLlP+XbSHiHbQW6CElDiV4OvuzqnMrBdkgxI1mT8V/Q== - -object-assign@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" - integrity sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I= - object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -8382,13 +7937,6 @@ packet-reader@1.0.0: resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== -param-case@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" - integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc= - dependencies: - no-case "^2.2.0" - parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -8417,14 +7965,6 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - parse-json@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" @@ -8545,11 +8085,6 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pathval@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" - integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== - pause-stream@0.0.11: version "0.0.11" resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" @@ -8582,10 +8117,10 @@ pg-int8@1.0.1: resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== -pg-pool@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.3.0.tgz#12d5c7f65ea18a6e99ca9811bd18129071e562fc" - integrity sha512-0O5huCql8/D6PIRFAlmccjphLYWC+JIzvUhSzXSpGaf+tjTZc4nn+Lr7mLXBbFJfvwbP0ywDv73EiaBsxn7zdg== +pg-pool@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.4.1.tgz#0e71ce2c67b442a5e862a9c182172c37eda71e9c" + integrity sha512-TVHxR/gf3MeJRvchgNHxsYsTCHQ+4wm3VIHSS19z8NC0+gioEhq1okDY1sm/TYbfoP6JLFx01s0ShvZ3puP/iQ== pg-protocol@^1.5.0: version "1.5.0" @@ -8603,15 +8138,15 @@ pg-types@^2.1.0: postgres-date "~1.0.4" postgres-interval "^1.1.0" -pg@8.6.0: - version "8.6.0" - resolved "https://registry.yarnpkg.com/pg/-/pg-8.6.0.tgz#e222296b0b079b280cce106ea991703335487db2" - integrity sha512-qNS9u61lqljTDFvmk/N66EeGq3n6Ujzj0FFyNMGQr6XuEv4tgNTXvJQTfJdcvGit5p5/DWPu+wj920hAJFI+QQ== +pg@8.7.1: + version "8.7.1" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.7.1.tgz#9ea9d1ec225980c36f94e181d009ab9f4ce4c471" + integrity sha512-7bdYcv7V6U3KAtWjpQJJBww0UEsWuh4yQ/EjNf2HeO/NnvKjpvhEIe/A/TleP6wtmSKnUnghs5A9jUoK6iDdkA== dependencies: buffer-writer "2.0.0" packet-reader "1.0.0" pg-connection-string "^2.5.0" - pg-pool "^3.3.0" + pg-pool "^3.4.1" pg-protocol "^1.5.0" pg-types "^2.1.0" pgpass "1.x" @@ -8633,11 +8168,6 @@ pify@^2.0.0, pify@^2.2.0: resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" @@ -8655,13 +8185,6 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= -pkg-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== - dependencies: - find-up "^3.0.0" - pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" @@ -8896,13 +8419,13 @@ postcss-minify-gradients@^1.0.1: postcss "^5.0.12" postcss-value-parser "^3.3.0" -postcss-minify-gradients@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.1.tgz#2dc79fd1a1afcb72a9e727bc549ce860f93565d2" - integrity sha512-odOwBFAIn2wIv+XYRpoN2hUV3pPQlgbJ10XeXPq8UY2N+9ZG42xu45lTn/g9zZ+d70NKSQD6EOi6UiCMu3FN7g== +postcss-minify-gradients@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.2.tgz#7c175c108f06a5629925d698b3c4cf7bd3864ee5" + integrity sha512-7Do9JP+wqSD6Prittitt2zDLrfzP9pqKs2EcLX7HJYxsxCOwrrcLt4x/ctQTsiOw+/8HYotAoqNkrzItL19SdQ== dependencies: + colord "^2.6" cssnano-utils "^2.0.1" - is-color-stop "^1.1.0" postcss-value-parser "^4.1.0" postcss-minify-params@^1.0.4: @@ -9267,10 +8790,10 @@ postgres-interval@^1.1.0: dependencies: xtend "^4.0.0" -prebuild-install@^6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.2.tgz#6ce5fc5978feba5d3cbffedca0682b136a0b5bff" - integrity sha512-PzYWIKZeP+967WuKYXlTOhYBgGOvTRSfaKI89XnfJ0ansRAH7hDU45X+K+FZeI1Wb/7p/NnuctPH3g0IqKUuSQ== +prebuild-install@^6.1.4: + version "6.1.4" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f" + integrity sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ== dependencies: detect-libc "^1.0.3" expand-template "^2.0.3" @@ -9279,7 +8802,6 @@ prebuild-install@^6.1.2: mkdirp-classic "^0.5.3" napi-build-utils "^1.0.1" node-abi "^2.21.0" - noop-logger "^0.1.1" npmlog "^4.0.1" pump "^3.0.0" rc "^1.2.7" @@ -9376,11 +8898,6 @@ promise-retry@^2.0.1: err-code "^2.0.2" retry "^0.12.0" -promise-sequential@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/promise-sequential/-/promise-sequential-1.1.1.tgz#f79e8950ef86e7a7a85bf320452643592f6d2fb2" - integrity sha1-956JUO+G56eoW/MgRSZDWS9tL7I= - promise.prototype.finally@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/promise.prototype.finally/-/promise.prototype.finally-3.1.2.tgz#b8af89160c9c673cefe3b4c4435b53cfd0287067" @@ -9770,7 +9287,7 @@ rechoir@^0.7.0: dependencies: resolve "^1.9.0" -reconnecting-websocket@4.4.0, reconnecting-websocket@^4.4.0: +reconnecting-websocket@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/reconnecting-websocket/-/reconnecting-websocket-4.4.0.tgz#3b0e5b96ef119e78a03135865b8bb0af1b948783" integrity sha512-D2E33ceRPga0NvTDhJmphEgJ7FUYF0v4lr1ki0csq06OdlxKfugGzN0dSkxM/NfqCxYELK4KcaTOUOjTV6Dcng== @@ -9828,11 +9345,6 @@ reflect-metadata@0.1.13, 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== -regenerator-runtime@0.13.9: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - regenerator-runtime@^0.13.4: version "0.13.7" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" @@ -9851,11 +9363,6 @@ regexpp@^3.1.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== -relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= - remove-bom-buffer@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" @@ -10058,7 +9565,7 @@ resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.4.0, is-core-module "^2.0.0" path-parse "^1.0.6" -resolve@^1.14.2, resolve@^1.15.1: +resolve@^1.15.1: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -10096,16 +9603,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -10113,13 +9610,6 @@ rimraf@3.0.2, rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" -rimraf@^2.6.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - rndstr@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/rndstr/-/rndstr-1.0.0.tgz#77e66fa8f9b4836853fdd91e50719591bb67d349" @@ -10204,10 +9694,10 @@ sass-loader@12.1.0: klona "^2.0.4" neo-async "^2.6.2" -sass@1.37.5: - version "1.37.5" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.37.5.tgz#f6838351f7cc814c4fcfe1d9a20e0cabbd1e7b3c" - integrity sha512-Cx3ewxz9QB/ErnVIiWg2cH0kiYZ0FPvheDTVC6BsiEGBTZKKZJ1Gq5Kq6jy3PKtL6+EJ8NIoaBW/RSd2R6cZOA== +sass@1.38.0: + version "1.38.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.38.0.tgz#2f3e60a1efdcdc910586fa79dc89d3399a145b4f" + integrity sha512-WBccZeMigAGKoI+NgD7Adh0ab1HUq+6BmyBUEaGxtErbUtWUevEbdgo5EZiJQofLUGcKtlNaO2IdN73AHEua5g== dependencies: chokidar ">=3.0.0 <4.0.0" @@ -10273,12 +9763,7 @@ semver-greatest-satisfied-range@^1.1.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: +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== @@ -10356,15 +9841,15 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" -sharp@0.28.3: - version "0.28.3" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.28.3.tgz#ecd74cefd020bee4891bb137c9850ee2ce277a8b" - integrity sha512-21GEP45Rmr7q2qcmdnjDkNP04Ooh5v0laGS5FDpojOO84D1DJwUijLiSq8XNNM6e8aGXYtoYRh3sVNdm8NodMA== +sharp@0.29.0: + version "0.29.0" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.29.0.tgz#1fa302bd5f60292138c823aa0905609f64d710ba" + integrity sha512-mdN1Up0eN+SwyForPls59dWO0nx64J1XRQYy5ZiKSADAccGYCB10UAGJHSVG9VObzJdhHqrVJzQcq6gx8USyoA== dependencies: - color "^3.1.3" + color "^4.0.1" detect-libc "^1.0.3" - node-addon-api "^3.2.0" - prebuild-install "^6.1.2" + node-addon-api "^4.0.0" + prebuild-install "^6.1.4" semver "^7.3.5" simple-get "^3.1.0" tar-fs "^2.1.1" @@ -10495,19 +9980,12 @@ sort-keys@^1.0.0: dependencies: is-plain-obj "^1.0.0" -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= - dependencies: - is-plain-obj "^1.0.0" - sortablejs@1.10.2: version "1.10.2" resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.10.2.tgz#6e40364d913f98b85a14f6678f92b5c1221f5290" integrity sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A== -source-list-map@^2.0.0, source-list-map@^2.0.1: +source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== @@ -10541,12 +10019,12 @@ source-map-url@^0.4.0: resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= -source-map@^0.5.0, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6: +source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -11098,11 +10576,6 @@ table@^6.0.9: string-width "^4.2.0" strip-ansi "^6.0.0" -tapable@^1.0.0-beta.5: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - tapable@^2.1.1, tapable@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" @@ -11307,7 +10780,7 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= -tinycolor2@1.4.2, tinycolor2@^1.1.2: +tinycolor2@1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.2.tgz#3f6a4d1071ad07676d7fa472e1fac40a719d8803" integrity sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== @@ -11433,10 +10906,10 @@ ts-loader@9.2.5: micromatch "^4.0.0" semver "^7.3.4" -ts-node@10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.2.0.tgz#f1e88249a00e26aa95e9a93c50f70241a8a1c4bb" - integrity sha512-FstYHtQz6isj8rBtYMN4bZdnXN1vq4HCbqn9vdNQcInRqtB86PePJQIxE6es0PhxKWhj2PHuwbG40H+bxkZPmg== +ts-node@10.2.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.2.1.tgz#4cc93bea0a7aba2179497e65bb08ddfc198b3ab5" + integrity sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw== dependencies: "@cspotcode/source-map-support" "0.6.1" "@tsconfig/node10" "^1.0.7" @@ -11451,10 +10924,10 @@ ts-node@10.2.0: make-error "^1.1.1" yn "3.1.1" -tsc-alias@1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/tsc-alias/-/tsc-alias-1.3.8.tgz#8dc670cf217b04a4f3f9e1c56def9cfda1f7759d" - integrity sha512-Ss0jjDjq5inr6ZJEw0IAS3/UxWMLgq4/tsH/yAbXJQHL5yccX+uaU5e2jSYy4VUsxWdZjKXFsUwcslk/4BWfgA== +tsc-alias@1.3.9: + version "1.3.9" + resolved "https://registry.yarnpkg.com/tsc-alias/-/tsc-alias-1.3.9.tgz#0c9d1dd571c0a97af8159d20e7cd4ce6aaab1799" + integrity sha512-PXNsdsuygWpvQrt41D7CBndJyZ+8Juf2BDvQ1OJNqq0QsMR4i+A4rfniY/NVwb70gW4nMDJBvNxxvzLJjakXtQ== dependencies: "@jfonx/console-utils" "^1.0.3" "@jfonx/file-utils" "^3.0.1" @@ -11574,7 +11047,7 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: +type-detect@4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== @@ -11629,16 +11102,16 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typeorm@0.2.32: - version "0.2.32" - resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.2.32.tgz#544dbfdfe0cd0887548d9bcbd28527ea4f4b3c9b" - integrity sha512-LOBZKZ9As3f8KRMPCUT2H0JZbZfWfkcUnO3w/1BFAbL/X9+cADTF6bczDGGaKVENJ3P8SaKheKmBgpt5h1x+EQ== +typeorm@0.2.37: + version "0.2.37" + resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.2.37.tgz#1a5e59216077640694d27c04c99ed3f968d15dc8" + integrity sha512-7rkW0yCgFC24I5T0f3S/twmLSuccPh1SQmxET/oDWn2sSDVzbyWdnItSdKy27CdJGTlKHYtUVeOcMYw5LRsXVw== dependencies: "@sqltools/formatter" "^1.2.2" app-root-path "^3.0.0" buffer "^6.0.3" chalk "^4.1.0" - cli-highlight "^2.1.10" + cli-highlight "^2.1.11" debug "^4.3.1" dotenv "^8.2.0" glob "^7.1.6" @@ -11649,7 +11122,7 @@ typeorm@0.2.32: tslib "^2.1.0" xml2js "^0.4.23" yargonaut "^1.1.4" - yargs "^16.2.0" + yargs "^17.0.1" zen-observable-ts "^1.0.0" typescript@4.3.5: @@ -11662,13 +11135,6 @@ uc.micro@^1.0.1, uc.micro@^1.0.5: resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== -uglify-js@^3.5.1: - version "3.9.1" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.9.1.tgz#a56a71c8caa2d36b5556cc1fd57df01ae3491539" - integrity sha512-JUPoL1jHsc9fOjVFHdQIhqEEJsQvfKDjlubcCilu8U26uZ73qOg8VsN8O1jbuei44ZPlwL7kmbAdM4tzaUvqnA== - dependencies: - commander "~2.20.3" - ulid@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/ulid/-/ulid-2.3.0.tgz#93063522771a9774121a84d126ecd3eb9804071f" @@ -11782,11 +11248,6 @@ untildify@^4.0.0: resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== -upper-case@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" - integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg= - uri-js@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" @@ -11902,11 +11363,6 @@ value-or-function@^3.0.0: resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= -vanilla-tilt@1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/vanilla-tilt/-/vanilla-tilt-1.7.1.tgz#4f5f3a29707551f532e3766bc0062023c3eec186" - integrity sha512-S3qZcTqMEVthgdnxhOW1BDcXJ0kCzrhF/zQYPTwtRMeETn9DW3BEvQrfAMsMN02mi3TMytWR+ODuNrcfO7OGWw== - vary@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -11986,16 +11442,6 @@ void-elements@^3.1.0: resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-3.1.0.tgz#614f7fbf8d801f0bb5f0661f5b2f5785750e4f09" integrity sha1-YU9/v42AHwu18GYfWy9XhXUOTwk= -vue-color@2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/vue-color/-/vue-color-2.8.1.tgz#a090f3dcf8ed6f07afdb865cac84b19a73302e70" - integrity sha512-BoLCEHisXi2QgwlhZBg9UepvzZZmi4176vbr+31Shen5WWZwSLVgdScEPcB+yrAtuHAz42309C0A4+WiL9lNBw== - dependencies: - clamp "^1.0.1" - lodash.throttle "^4.0.0" - material-colors "^1.0.0" - tinycolor2 "^1.1.2" - vue-eslint-parser@^7.10.0: version "7.10.0" resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.10.0.tgz#ea4e4b10fd10aa35c8a79ac783488d8abcd29be8" @@ -12009,11 +11455,6 @@ vue-eslint-parser@^7.10.0: lodash "^4.17.21" semver "^6.3.0" -vue-json-pretty@1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/vue-json-pretty/-/vue-json-pretty-1.8.1.tgz#538bb57fc718544152105aef659b4c88475365ee" - integrity sha512-GHi8q6QLx8fw8XDhAgztlC6emupptpmV5a+yd4UxteEoPqGHXwpgscTbTTxwH2GEdmYXHAt+GLg5tAsenLZKDA== - vue-loader@16.5.0: version "16.5.0" resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-16.5.0.tgz#09c4e0712466899e34b99a686524f19165fb2892" @@ -12050,14 +11491,14 @@ vue-svg-loader@0.17.0-beta.2: semver "^7.3.2" svgo "^1.3.2" -vue@3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.3.tgz#7717e69ab6e8c7ae7ee12baa50a7ab5cab8a1c31" - integrity sha512-z3/maZr+As43eL42pJTLWG+mnOTXpdPvbhFN7cDs8ZpJgMWtKlbjInLcyOD2XRyH424yulupYhyEFITfybcKnw== +vue@3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.4.tgz#d94d88675e41c050d3a722d0848a7063b5e87a60" + integrity sha512-rNCFmoewm8IwmTK0nj3ysKq53iRpNEFKoBJ4inar6tIh7Oj7juubS39RI8UI+VE7x+Cs2z6PBsadtZu7z2qppg== dependencies: - "@vue/compiler-dom" "3.2.3" - "@vue/runtime-dom" "3.2.3" - "@vue/shared" "3.2.3" + "@vue/compiler-dom" "3.2.4" + "@vue/runtime-dom" "3.2.4" + "@vue/shared" "3.2.4" vuedraggable@4.0.1: version "4.0.1" @@ -12129,15 +11570,15 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -webpack-cli@4.7.2: - version "4.7.2" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.7.2.tgz#a718db600de6d3906a4357e059ae584a89f4c1a5" - integrity sha512-mEoLmnmOIZQNiRl0ebnjzQ74Hk0iKS5SiEEnpq3dRezoyR3yPaeQZCMCe+db4524pj1Pd5ghZXjT41KLzIhSLw== +webpack-cli@4.8.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.8.0.tgz#5fc3c8b9401d3c8a43e2afceacfa8261962338d1" + integrity sha512-+iBSWsX16uVna5aAYN6/wjhJy1q/GKk4KjKvfg90/6hykCTSgozbfz5iRgDTSJt/LgSbYxdBX3KBHeobIs+ZEw== dependencies: "@discoveryjs/json-ext" "^0.5.0" "@webpack-cli/configtest" "^1.0.4" "@webpack-cli/info" "^1.3.0" - "@webpack-cli/serve" "^1.5.1" + "@webpack-cli/serve" "^1.5.2" colorette "^1.2.1" commander "^7.0.0" execa "^5.0.0" @@ -12156,14 +11597,6 @@ webpack-merge@^5.7.3: clone-deep "^4.0.1" wildcard "^2.0.0" -webpack-sources@^1.0.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - webpack-sources@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" @@ -12177,10 +11610,10 @@ webpack-sources@^3.2.0: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.0.tgz#b16973bcf844ebcdb3afde32eda1c04d0b90f89d" integrity sha512-fahN08Et7P9trej8xz/Z7eRu8ltyiygEo/hnRi9KqBUs80KeDcnf96ZJo++ewWd84fEf3xSX9bp4ZS9hbw0OBw== -webpack@5.50.0: - version "5.50.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.50.0.tgz#5562d75902a749eb4d75131f5627eac3a3192527" - integrity sha512-hqxI7t/KVygs0WRv/kTgUW8Kl3YC81uyWQSo/7WUs5LsuRw0htH/fCwbVBGCuiX/t4s7qzjXFcf41O8Reiypag== +webpack@5.51.0: + version "5.51.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.51.0.tgz#b6683d92e4bd84db588bacb6ade6441d9c5fd2f3" + integrity sha512-oySQoKUuf5r0JaPIYi8q90c/GmU9fGdSbZ0cAjFq3OWx57wniRTWvta1T9t+e5WZ6H6mHrxksNatkqfIEuTWGg== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.50" @@ -12379,31 +11812,10 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^2.0.0: - version "2.4.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - -write-json-file@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-2.3.0.tgz#2b64c8a33004d54b8698c76d585a77ceb61da32f" - integrity sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8= - dependencies: - detect-indent "^5.0.0" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - pify "^3.0.0" - sort-keys "^2.0.0" - write-file-atomic "^2.0.0" - -ws@8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.1.0.tgz#75e5ec608f66d3d3934ec6dbc4ebc8a34a68638c" - integrity sha512-0UWlCD2s3RSclw8FN+D0zDTUyMO+1kHwJQQJzkgUh16S8d3NYON0AKCEQPffE0ez4JyRFu76QDA9KR5bOG/7jw== +ws@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.0.tgz#0b738cd484bfc9303421914b11bb4011e07615bb" + integrity sha512-uYhVJ/m9oXwEI04iIVmgLmugh2qrZihkywG9y5FfZV2ATeLIzHf93qs+tUNqlttbQK957/VX3mtwAS+UfIwA4g== ws@^7.4.6: version "7.5.3" @@ -12587,6 +11999,19 @@ yargs@^13.2.4: y18n "^4.0.0" yargs-parser "^13.1.2" +yargs@^17.0.1: + version "17.1.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.1.1.tgz#c2a8091564bdb196f7c0a67c1d12e5b85b8067ba" + integrity sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yargs@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8"