diff --git a/.mocharc.json b/.mocharc.json index 867402688c107da2f0339b18815152659e53b82a..fc7fee2154aa98283686e04ce25f90840483c3b7 100644 --- a/.mocharc.json +++ b/.mocharc.json @@ -1,6 +1,6 @@ { "extension": ["ts","js","cjs","mjs"], - "require": "ts-node/register", + "require": ["ts-node/register", "tsconfig-paths/register"], "slow": 1000, "timeout": 30000, "exit": true diff --git a/gulpfile.ts b/gulpfile.ts index 771a5c0e322d98da6554e2c15033ff0eb411aadd..bcd50890e28d3c01cf548a78b513adfac2fe2ee4 100644 --- a/gulpfile.ts +++ b/gulpfile.ts @@ -4,7 +4,6 @@ import * as fs from 'fs'; import * as gulp from 'gulp'; -import * as ts from 'gulp-typescript'; import * as rimraf from 'rimraf'; import * as replace from 'gulp-replace'; const terser = require('gulp-terser'); @@ -13,16 +12,6 @@ const cssnano = require('gulp-cssnano'); const locales: { [x: string]: any } = require('./locales'); const meta = require('./package.json'); -gulp.task('build:ts', () => { - const tsProject = ts.createProject('./src/tsconfig.json'); - - return tsProject - .src() - .pipe(tsProject()) - .on('error', () => {}) - .pipe(gulp.dest('./built/')); -}); - gulp.task('build:copy:views', () => gulp.src('./src/server/web/views/**/*').pipe(gulp.dest('./built/server/web/views')) ); @@ -78,7 +67,6 @@ gulp.task('cleanall', gulp.parallel('clean', cb => )); gulp.task('build', gulp.parallel( - 'build:ts', 'build:copy', )); diff --git a/package.json b/package.json index 0f40837a6fd6fcea61a2ae5f624d43dc940d8b3b..ba41f0ddf5b74d5c483c1bb7baffb91d4c31c60f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "misskey", "author": "syuilo <syuilotan@yahoo.co.jp>", - "version": "12.75.0", + "version": "12.75.1", "codename": "indigo", "repository": { "type": "git", @@ -15,11 +15,13 @@ "ormconfig": "node ./built/ormconfig.js", "migrate": "ts-node ./node_modules/typeorm/cli.js migration:run", "migrateandstart": "npm run migrate && npm run start", - "build": "npm run build-webpack && npm run build-gulp", + "build": "npm run build-webpack && npm run build-ts && npm run build-gulp", "build-webpack": "webpack", + "build-ts": "tsc -p src/tsconfig.json || echo done. && tsc-alias -p src/tsconfig.json", "build-gulp": "gulp build", "watch": "concurrently \"npm:watch-*\"", "watch-webpack": "webpack --watch", + "watch-ts": "tsc -w -p src/tsconfig.json && tsc-alias -w -p src/tsconfig.json", "watch-gulp": "gulp watch", "clean": "gulp clean", "cleanall": "gulp cleanall", @@ -148,7 +150,6 @@ "gulp-replace": "1.0.0", "gulp-terser": "2.0.1", "gulp-tslint": "8.1.4", - "gulp-typescript": "6.0.0-alpha.1", "hard-source-webpack-plugin": "0.13.1", "html-minifier": "4.0.0", "http-proxy-agent": "4.0.1", @@ -234,12 +235,13 @@ "tmp": "0.2.1", "ts-loader": "8.0.18", "ts-node": "9.1.1", + "tsc-alias": "1.2.8", + "tsconfig-paths": "3.9.0", "tslint": "6.1.3", "tslint-sonarts": "1.9.0", "typeorm": "0.2.31", "typescript": "4.2.3", "ulid": "2.3.0", - "url-loader": "4.1.1", "uuid": "8.3.2", "v-debounce": "0.1.2", "vanilla-tilt": "1.7.0", @@ -252,7 +254,7 @@ "vue-style-loader": "4.1.3", "vuedraggable": "4.0.1", "web-push": "3.4.4", - "webpack": "5.26.3", + "webpack": "5.27.2", "webpack-cli": "4.5.0", "websocket": "1.0.33", "ws": "7.4.4", diff --git a/src/@types/meta.json.d.ts b/src/@types/meta.json.d.ts deleted file mode 100644 index ab812682b6baa448db25206ea4a8dfbd772c6171..0000000000000000000000000000000000000000 --- a/src/@types/meta.json.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare module '*/meta.json' { - const version: string; -} diff --git a/src/argv.ts b/src/argv.ts index a92338f867a6e81f73e82da79b5302e8616dc85f..9c69a450db13166b131c9a5fa7d5e23f8fea1bf7 100644 --- a/src/argv.ts +++ b/src/argv.ts @@ -1,5 +1,5 @@ import * as program from 'commander'; -import config from './config'; +import config from '@/config'; program .version(config.version) diff --git a/src/boot/master.ts b/src/boot/master.ts index aded1029123aac8483c2b936e9b7e7283c2944b5..ef8692b308e1c8c79b004f400593ceade2f04123 100644 --- a/src/boot/master.ts +++ b/src/boot/master.ts @@ -6,13 +6,13 @@ import * as isRoot from 'is-root'; import { getConnection } from 'typeorm'; import Logger from '../services/logger'; -import loadConfig from '../config/load'; -import { Config } from '../config/types'; +import loadConfig from '@/config/load'; +import { Config } from '@/config/types'; import { lessThan } from '../prelude/array'; import { program } from '../argv'; -import { showMachineInfo } from '../misc/show-machine-info'; +import { showMachineInfo } from '@/misc/show-machine-info'; import { initDb } from '../db/postgre'; -import * as meta from '../meta.json'; +const meta = require('../meta.json'); const logger = new Logger('core', 'cyan'); const bootLogger = logger.createSubLogger('boot', 'magenta', false); diff --git a/src/client/account.ts b/src/client/account.ts index e5b451cf14316aa8e9efef62b153de88b7eee3ae..6f06ee0f32004280329954225c4a7b344dcbf125 100644 --- a/src/client/account.ts +++ b/src/client/account.ts @@ -1,7 +1,7 @@ import { reactive } from 'vue'; -import { apiUrl } from '@/config'; -import { waiting } from '@/os'; -import { unisonReload } from '@/scripts/unison-reload'; +import { apiUrl } from '@client/config'; +import { waiting } from '@client/os'; +import { unisonReload } from '@client/scripts/unison-reload'; // TODO: ä»–ã®ã‚¿ãƒ–ã¨æ°¸ç¶šåŒ–ã•ã‚ŒãŸstateã‚’åŒæœŸ diff --git a/src/client/components/abuse-report-window.vue b/src/client/components/abuse-report-window.vue index 98578ee44fbe27400274ae71539172010e396f32..7dbb9657bdcb42d31582862fc80ca1fbfaf3c9ee 100644 --- a/src/client/components/abuse-report-window.vue +++ b/src/client/components/abuse-report-window.vue @@ -29,10 +29,10 @@ <script lang="ts"> import { defineComponent, markRaw } from 'vue'; import { faExclamationCircle } from '@fortawesome/free-solid-svg-icons'; -import XWindow from '@/components/ui/window.vue'; -import MkTextarea from '@/components/ui/textarea.vue'; -import MkButton from '@/components/ui/button.vue'; -import * as os from '@/os'; +import XWindow from '@client/components/ui/window.vue'; +import MkTextarea from '@client/components/ui/textarea.vue'; +import MkButton from '@client/components/ui/button.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/components/analog-clock.vue b/src/client/components/analog-clock.vue index 04d98508bb7eba127da022425a3b5910707b49b2..8aa51898bc093574b648af68ae3e51c03ec4825a 100644 --- a/src/client/components/analog-clock.vue +++ b/src/client/components/analog-clock.vue @@ -36,7 +36,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import * as tinycolor from 'tinycolor2'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ data() { diff --git a/src/client/components/autocomplete.vue b/src/client/components/autocomplete.vue index ae742610f7f004c914ef6e63087ded241a955d7b..35cfb7730118bfd0697f3bb76af5eef8fbdf61b9 100644 --- a/src/client/components/autocomplete.vue +++ b/src/client/components/autocomplete.vue @@ -29,12 +29,12 @@ <script lang="ts"> import { defineComponent, markRaw } from 'vue'; -import { emojilist } from '../../misc/emojilist'; -import contains from '@/scripts/contains'; -import { twemojiSvgBase } from '../../misc/twemoji-base'; -import { getStaticImageUrl } from '@/scripts/get-static-image-url'; -import { acct } from '@/filters/user'; -import * as os from '@/os'; +import { emojilist } from '@/misc/emojilist'; +import contains from '@client/scripts/contains'; +import { twemojiSvgBase } from '@/misc/twemoji-base'; +import { getStaticImageUrl } from '@client/scripts/get-static-image-url'; +import { acct } from '@client/filters/user'; +import * as os from '@client/os'; type EmojiDef = { emoji: string; diff --git a/src/client/components/avatars.vue b/src/client/components/avatars.vue index 8bf64d79b5d61cb8a87ed9390b8000cd738dbe5e..cac95e6d40557ba2c239b4d8ee630b66a2906531 100644 --- a/src/client/components/avatars.vue +++ b/src/client/components/avatars.vue @@ -8,7 +8,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ props: { diff --git a/src/client/components/channel-follow-button.vue b/src/client/components/channel-follow-button.vue index 17770a6f36845dc73b312a28cbfe9c1dc89466be..dc0c0faa1f9b4ba7e0641f4304d9de7fdf71091a 100644 --- a/src/client/components/channel-follow-button.vue +++ b/src/client/components/channel-follow-button.vue @@ -21,7 +21,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faSpinner, faPlus, faMinus, } from '@fortawesome/free-solid-svg-icons'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ props: { diff --git a/src/client/components/dialog.vue b/src/client/components/dialog.vue index a34f7f7947b17efed153ff48f4c06d59919e5202..ef30715343d86bb0dc9503dac78378a611cf123b 100644 --- a/src/client/components/dialog.vue +++ b/src/client/components/dialog.vue @@ -40,10 +40,10 @@ import { defineComponent } from 'vue'; import { faSpinner, faInfoCircle, faExclamationTriangle, faCheck } from '@fortawesome/free-solid-svg-icons'; import { faTimesCircle, faQuestionCircle } from '@fortawesome/free-regular-svg-icons'; -import MkModal from '@/components/ui/modal.vue'; -import MkButton from '@/components/ui/button.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkSelect from '@/components/ui/select.vue'; +import MkModal from '@client/components/ui/modal.vue'; +import MkButton from '@client/components/ui/button.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkSelect from '@client/components/ui/select.vue'; export default defineComponent({ components: { diff --git a/src/client/components/drive-file-thumbnail.vue b/src/client/components/drive-file-thumbnail.vue index e669da6a90535f485285cd2b07a7e7bb8a39cb14..91f57d1f49bff900679de1a96bc24fbd5cc4ae26 100644 --- a/src/client/components/drive-file-thumbnail.vue +++ b/src/client/components/drive-file-thumbnail.vue @@ -27,7 +27,7 @@ import { faFilm } from '@fortawesome/free-solid-svg-icons'; import ImgWithBlurhash from './img-with-blurhash.vue'; -import { ColdDeviceStorage } from '@/store'; +import { ColdDeviceStorage } from '@client/store'; export default defineComponent({ components: { diff --git a/src/client/components/drive-select-dialog.vue b/src/client/components/drive-select-dialog.vue index f9a40254524c7b7d2b9d18f8e5cdb27f5e813e0b..ce6e2fa789e6ae0cdc77d51d5d9a5c4fdf9345e0 100644 --- a/src/client/components/drive-select-dialog.vue +++ b/src/client/components/drive-select-dialog.vue @@ -20,8 +20,8 @@ <script lang="ts"> import { defineComponent } from 'vue'; import XDrive from './drive.vue'; -import XModalWindow from '@/components/ui/modal-window.vue'; -import number from '@/filters/number'; +import XModalWindow from '@client/components/ui/modal-window.vue'; +import number from '@client/filters/number'; export default defineComponent({ components: { diff --git a/src/client/components/drive-window.vue b/src/client/components/drive-window.vue index 43f07ebe76b1551a9fb76e47c654f9f9a7d65d27..30b04091bee17e25ca76924f7a8ee751ce2864a0 100644 --- a/src/client/components/drive-window.vue +++ b/src/client/components/drive-window.vue @@ -15,7 +15,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import XDrive from './drive.vue'; -import XWindow from '@/components/ui/window.vue'; +import XWindow from '@client/components/ui/window.vue'; export default defineComponent({ components: { diff --git a/src/client/components/drive.file.vue b/src/client/components/drive.file.vue index 5075b574c448fe177cf0a3851b2c319a5034c248..03f2da008d0bef71338a10df417776d2cc366ba9 100644 --- a/src/client/components/drive.file.vue +++ b/src/client/components/drive.file.vue @@ -34,10 +34,10 @@ import { defineComponent } from 'vue'; import { faEye, faEyeSlash } from '@fortawesome/free-regular-svg-icons'; import { faDownload, faLink, faICursor, faTrashAlt } from '@fortawesome/free-solid-svg-icons'; -import copyToClipboard from '@/scripts/copy-to-clipboard'; +import copyToClipboard from '@client/scripts/copy-to-clipboard'; import MkDriveFileThumbnail from './drive-file-thumbnail.vue'; -import bytes from '@/filters/bytes'; -import * as os from '@/os'; +import bytes from '@client/filters/bytes'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/components/drive.folder.vue b/src/client/components/drive.folder.vue index 745b6018daaaba3e2fe1133112063594e598fbd0..2822c85680a192e562ee2ca558319e91674e0b7e 100644 --- a/src/client/components/drive.folder.vue +++ b/src/client/components/drive.folder.vue @@ -29,7 +29,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faFolder, faFolderOpen, faTrashAlt, faWindowRestore } from '@fortawesome/free-regular-svg-icons'; -import * as os from '@/os'; +import * as os from '@client/os'; import { faICursor } from '@fortawesome/free-solid-svg-icons'; export default defineComponent({ diff --git a/src/client/components/drive.nav-folder.vue b/src/client/components/drive.nav-folder.vue index 881330529c278acbf0541fc5867ba65937f159de..89a267b19f1b6bc390de3979c68547b80ba0adc0 100644 --- a/src/client/components/drive.nav-folder.vue +++ b/src/client/components/drive.nav-folder.vue @@ -15,7 +15,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faCloud } from '@fortawesome/free-solid-svg-icons'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ props: { diff --git a/src/client/components/drive.vue b/src/client/components/drive.vue index b9d93ee4ccfe0088c80af92a169b434b27c03cd9..150d0d877424a86a1fde3829eaa075f3fb86b438 100644 --- a/src/client/components/drive.vue +++ b/src/client/components/drive.vue @@ -52,7 +52,7 @@ import XNavFolder from './drive.nav-folder.vue'; import XFolder from './drive.folder.vue'; import XFile from './drive.file.vue'; import MkButton from './ui/button.vue'; -import * as os from '@/os'; +import * as os from '@client/os'; import { faTrashAlt } from '@fortawesome/free-regular-svg-icons'; export default defineComponent({ diff --git a/src/client/components/emoji-picker-dialog.vue b/src/client/components/emoji-picker-dialog.vue index 4b165d9f91bde7ccc181a4fb184cb2800fb7009d..5bdbc330adf195a12b166e2df5dcca30a4854109 100644 --- a/src/client/components/emoji-picker-dialog.vue +++ b/src/client/components/emoji-picker-dialog.vue @@ -6,8 +6,8 @@ <script lang="ts"> import { defineComponent, markRaw } from 'vue'; -import MkModal from '@/components/ui/modal.vue'; -import MkEmojiPicker from '@/components/emoji-picker.vue'; +import MkModal from '@client/components/ui/modal.vue'; +import MkEmojiPicker from '@client/components/emoji-picker.vue'; export default defineComponent({ components: { diff --git a/src/client/components/emoji-picker-window.vue b/src/client/components/emoji-picker-window.vue index fb6a5a9072ef05e4e37422780a4bd11612c4f144..5504eaecd6999d946a001f41dfcb3f51ef74f672 100644 --- a/src/client/components/emoji-picker-window.vue +++ b/src/client/components/emoji-picker-window.vue @@ -13,8 +13,8 @@ <script lang="ts"> import { defineComponent, markRaw } from 'vue'; -import MkWindow from '@/components/ui/window.vue'; -import MkEmojiPicker from '@/components/emoji-picker.vue'; +import MkWindow from '@client/components/ui/window.vue'; +import MkEmojiPicker from '@client/components/emoji-picker.vue'; export default defineComponent({ components: { diff --git a/src/client/components/emoji-picker.section.vue b/src/client/components/emoji-picker.section.vue index a12493ce0d754d5379f02741f65ec85da9361484..944c507bdcfe03b0e1db8487fdea0bed1f11bace 100644 --- a/src/client/components/emoji-picker.section.vue +++ b/src/client/components/emoji-picker.section.vue @@ -18,7 +18,7 @@ <script lang="ts"> import { defineComponent, markRaw } from 'vue'; import { faChevronUp, faChevronDown } from '@fortawesome/free-solid-svg-icons'; -import { getStaticImageUrl } from '@/scripts/get-static-image-url'; +import { getStaticImageUrl } from '@client/scripts/get-static-image-url'; export default defineComponent({ props: { diff --git a/src/client/components/emoji-picker.vue b/src/client/components/emoji-picker.vue index 99d6c8a330db7021ad54d0a58038a88bb93baa8f..573833b9d375bb6f43dbf042369a07b2c4d35320 100644 --- a/src/client/components/emoji-picker.vue +++ b/src/client/components/emoji-picker.vue @@ -74,15 +74,15 @@ <script lang="ts"> import { defineComponent, markRaw } from 'vue'; -import { emojilist } from '../../misc/emojilist'; -import { getStaticImageUrl } from '@/scripts/get-static-image-url'; +import { emojilist } from '@/misc/emojilist'; +import { getStaticImageUrl } from '@client/scripts/get-static-image-url'; import { faAsterisk, faLeaf, faUtensils, faFutbol, faCity, faDice, faGlobe, faClock, faUser, faChevronDown, faShapes, faBicycle, faHashtag } from '@fortawesome/free-solid-svg-icons'; import { faHeart, faFlag, faLaugh } from '@fortawesome/free-regular-svg-icons'; -import Particle from '@/components/particle.vue'; -import * as os from '@/os'; -import { isDeviceTouch } from '@/scripts/is-device-touch'; -import { isMobile } from '@/scripts/is-mobile'; -import { emojiCategories } from '@/instance'; +import Particle from '@client/components/particle.vue'; +import * as os from '@client/os'; +import { isDeviceTouch } from '@client/scripts/is-device-touch'; +import { isMobile } from '@client/scripts/is-mobile'; +import { emojiCategories } from '@client/instance'; import XSection from './emoji-picker.section.vue'; export default defineComponent({ diff --git a/src/client/components/featured-photos.vue b/src/client/components/featured-photos.vue index d0eb775cd0490458687d748edc84853b1ebebf4e..daa2190feb56661f9c3b2cb80cf57cbc6b33d473 100644 --- a/src/client/components/featured-photos.vue +++ b/src/client/components/featured-photos.vue @@ -6,7 +6,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/components/file-type-icon.vue b/src/client/components/file-type-icon.vue index ec29d5c8824db8f8fc100589c502998e05fe5c6d..2da9ba0cbda55bf52d9e8fe85bab7f9729e8f870 100644 --- a/src/client/components/file-type-icon.vue +++ b/src/client/components/file-type-icon.vue @@ -7,7 +7,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faFileImage } from '@fortawesome/free-solid-svg-icons'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ props: { diff --git a/src/client/components/follow-button.vue b/src/client/components/follow-button.vue index 1234649e5ac0d3eeba6d208feefaac820c97d269..d2dc9223bdf6314a34ff0a6a329c733374341c00 100644 --- a/src/client/components/follow-button.vue +++ b/src/client/components/follow-button.vue @@ -30,7 +30,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faSpinner, faPlus, faMinus, faHourglassHalf } from '@fortawesome/free-solid-svg-icons'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ props: { diff --git a/src/client/components/form-dialog.vue b/src/client/components/form-dialog.vue index 7620abcd766fe6d6c1e7d81a7ccd66b98c741b4c..d6a7e39d45ef1328dd273f588679ccdffc861f13 100644 --- a/src/client/components/form-dialog.vue +++ b/src/client/components/form-dialog.vue @@ -48,7 +48,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import XModalWindow from '@/components/ui/modal-window.vue'; +import XModalWindow from '@client/components/ui/modal-window.vue'; import FormBase from './form/base.vue'; import FormInput from './form/input.vue'; import FormTextarea from './form/textarea.vue'; diff --git a/src/client/components/form/pagination.vue b/src/client/components/form/pagination.vue index df65d9684dcdb7983211382b1e918e50f04b80d1..0a2f1ff0e13c141ce1e64a6ff1247308144bcf3d 100644 --- a/src/client/components/form/pagination.vue +++ b/src/client/components/form/pagination.vue @@ -16,7 +16,7 @@ import { defineComponent } from 'vue'; import FormButton from './button.vue'; import FormGroup from './group.vue'; -import paging from '@/scripts/paging'; +import paging from '@client/scripts/paging'; export default defineComponent({ components: { diff --git a/src/client/components/form/radios.vue b/src/client/components/form/radios.vue index 4c7f405cacedc83e3a0dcfb892e02ec6bdf34f78..4561df32e18bf4ec43a376de0dfce85e05db2f3c 100644 --- a/src/client/components/form/radios.vue +++ b/src/client/components/form/radios.vue @@ -1,6 +1,6 @@ <script lang="ts"> import { defineComponent, h } from 'vue'; -import MkRadio from '@/components/ui/radio.vue'; +import MkRadio from '@client/components/ui/radio.vue'; import './form.scss'; export default defineComponent({ diff --git a/src/client/components/formula-core.vue b/src/client/components/formula-core.vue index 29c049297efa9f80940ce55cd104f3a40a607178..6e35295ff5bb04564ba4cdbf76ac442ace1fc31b 100644 --- a/src/client/components/formula-core.vue +++ b/src/client/components/formula-core.vue @@ -6,7 +6,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import * as katex from 'katex';import * as os from '@/os'; +import * as katex from 'katex';import * as os from '@client/os'; export default defineComponent({ props: { diff --git a/src/client/components/formula.vue b/src/client/components/formula.vue index fbb40bace76a66adc90afa3e843b42d956567861..6722ce38a153be81b14c2d1809c773e931a2b434 100644 --- a/src/client/components/formula.vue +++ b/src/client/components/formula.vue @@ -3,7 +3,7 @@ </template> <script lang="ts"> -import { defineComponent, defineAsyncComponent } from 'vue';import * as os from '@/os'; +import { defineComponent, defineAsyncComponent } from 'vue';import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/components/global/a.vue b/src/client/components/global/a.vue index d293cb571f8706b3e53dd41205a889626d57230d..a8a597b2bbfff8856ee3dab693f4da40884ba8cb 100644 --- a/src/client/components/global/a.vue +++ b/src/client/components/global/a.vue @@ -7,12 +7,12 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faExpandAlt, faColumns, faExternalLinkAlt, faLink, faWindowMaximize } from '@fortawesome/free-solid-svg-icons'; -import * as os from '@/os'; -import copyToClipboard from '@/scripts/copy-to-clipboard'; -import { router } from '@/router'; -import { url } from '@/config'; -import { popout } from '@/scripts/popout'; -import { ColdDeviceStorage } from '@/store'; +import * as os from '@client/os'; +import copyToClipboard from '@client/scripts/copy-to-clipboard'; +import { router } from '@client/router'; +import { url } from '@client/config'; +import { popout } from '@client/scripts/popout'; +import { ColdDeviceStorage } from '@client/store'; export default defineComponent({ inject: { diff --git a/src/client/components/global/acct.vue b/src/client/components/global/acct.vue index cad906524e34329a4b30671dbec8c33e800d8715..a969636a7edd86633781e62f4e676dcaf1fd2596 100644 --- a/src/client/components/global/acct.vue +++ b/src/client/components/global/acct.vue @@ -8,7 +8,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { toUnicode } from 'punycode'; -import { host } from '@/config'; +import { host } from '@client/config'; export default defineComponent({ props: ['user', 'detail'], diff --git a/src/client/components/global/avatar.vue b/src/client/components/global/avatar.vue index d2f25fa41e64b2f2cac870e2cee3e5fa9c19b3ac..83675a155c9e7f2f561e933b6ef95a0822b24947 100644 --- a/src/client/components/global/avatar.vue +++ b/src/client/components/global/avatar.vue @@ -9,9 +9,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import { getStaticImageUrl } from '@/scripts/get-static-image-url'; -import { extractAvgColorFromBlurhash } from '@/scripts/extract-avg-color-from-blurhash'; -import { acct, userPage } from '@/filters/user'; +import { getStaticImageUrl } from '@client/scripts/get-static-image-url'; +import { extractAvgColorFromBlurhash } from '@client/scripts/extract-avg-color-from-blurhash'; +import { acct, userPage } from '@client/filters/user'; export default defineComponent({ props: { diff --git a/src/client/components/global/emoji.vue b/src/client/components/global/emoji.vue index c072b8431bb4ed21438ff1e61f64d7f1b2e356b8..f4ebd5f3b38a7e0cf42f72458636062acca0f8ea 100644 --- a/src/client/components/global/emoji.vue +++ b/src/client/components/global/emoji.vue @@ -7,8 +7,8 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import { getStaticImageUrl } from '@/scripts/get-static-image-url'; -import { twemojiSvgBase } from '@/../misc/twemoji-base'; +import { getStaticImageUrl } from '@client/scripts/get-static-image-url'; +import { twemojiSvgBase } from '@client/../misc/twemoji-base'; export default defineComponent({ props: { diff --git a/src/client/components/global/error.vue b/src/client/components/global/error.vue index b78973ff82d58bb69703912eb4fee57e82b7f9a5..af989b1c57419d288e333167f166badff7e650c8 100644 --- a/src/client/components/global/error.vue +++ b/src/client/components/global/error.vue @@ -11,7 +11,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; -import MkButton from '@/components/ui/button.vue'; +import MkButton from '@client/components/ui/button.vue'; export default defineComponent({ components: { diff --git a/src/client/components/global/loading.vue b/src/client/components/global/loading.vue index b4693258b9af3eacad5206d4baf0062d040f2e19..5d0c10c08665209016564ec5f36af880f2a89c21 100644 --- a/src/client/components/global/loading.vue +++ b/src/client/components/global/loading.vue @@ -6,7 +6,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ props: { diff --git a/src/client/components/global/misskey-flavored-markdown.vue b/src/client/components/global/misskey-flavored-markdown.vue index a3f443d5d865c9d6ddaf76ed5596b0449b29ecfc..988cf9cf47b4a157238ae539be39883f27dfd8ef 100644 --- a/src/client/components/global/misskey-flavored-markdown.vue +++ b/src/client/components/global/misskey-flavored-markdown.vue @@ -4,7 +4,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import MfmCore from '@/components/mfm'; +import MfmCore from '@client/components/mfm'; export default defineComponent({ components: { diff --git a/src/client/components/global/url.vue b/src/client/components/global/url.vue index 2650cd33fde14e3358fe05b17e586d1695fbbf07..c89536ebdb87d0844826ec25eec08f6ce75a3b94 100644 --- a/src/client/components/global/url.vue +++ b/src/client/components/global/url.vue @@ -23,9 +23,9 @@ import { defineComponent } from 'vue'; import { faExternalLinkSquareAlt } from '@fortawesome/free-solid-svg-icons'; import { toUnicode as decodePunycode } from 'punycode'; -import { url as local } from '@/config'; -import { isDeviceTouch } from '@/scripts/is-device-touch'; -import * as os from '@/os'; +import { url as local } from '@client/config'; +import { isDeviceTouch } from '@client/scripts/is-device-touch'; +import * as os from '@client/os'; export default defineComponent({ props: { @@ -72,7 +72,7 @@ export default defineComponent({ if (!document.body.contains(this.$el)) return; if (this.close) return; - const { dispose } = await os.popup(import('@/components/url-preview-popup.vue'), { + const { dispose } = await os.popup(import('@client/components/url-preview-popup.vue'), { url: this.url, source: this.$el }); diff --git a/src/client/components/google.vue b/src/client/components/google.vue index fe692a9255c632ebeff85a3b3708e4b5dafeb0d3..20dc1f825a72cff999abbcdc926d5b2b39784466 100644 --- a/src/client/components/google.vue +++ b/src/client/components/google.vue @@ -8,7 +8,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faSearch } from '@fortawesome/free-solid-svg-icons'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ props: ['q'], diff --git a/src/client/components/image-viewer.vue b/src/client/components/image-viewer.vue index 320df30506f79c89ae203541bd4b14880d8d6e56..ec22bd98ecd8dffd447d65de6b4697f73f7d9b81 100644 --- a/src/client/components/image-viewer.vue +++ b/src/client/components/image-viewer.vue @@ -14,9 +14,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import bytes from '@/filters/bytes'; -import number from '@/filters/number'; -import MkModal from '@/components/ui/modal.vue'; +import bytes from '@client/filters/bytes'; +import number from '@client/filters/number'; +import MkModal from '@client/components/ui/modal.vue'; export default defineComponent({ components: { diff --git a/src/client/components/instance-stats.vue b/src/client/components/instance-stats.vue index e9b496180a89def187010a981e2adf49be6bf1a4..75abefc2fe69168cfbe7b37c82013f048e006363 100644 --- a/src/client/components/instance-stats.vue +++ b/src/client/components/instance-stats.vue @@ -126,7 +126,7 @@ import { defineComponent, markRaw } from 'vue'; import { faChartBar, faUser, faPencilAlt, faSync } from '@fortawesome/free-solid-svg-icons'; import Chart from 'chart.js'; import MkSelect from './ui/select.vue'; -import number from '@/filters/number'; +import number from '@client/filters/number'; const sum = (...arr) => arr.reduce((r, a) => r.map((b, i) => a[i] + b)); const negate = arr => arr.map(x => -x); @@ -137,7 +137,7 @@ const alpha = (hex, a) => { const b = parseInt(result[3], 16); return `rgba(${r}, ${g}, ${b}, ${a})`; }; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/components/instance-ticker.vue b/src/client/components/instance-ticker.vue index 1ce5a1c2c19e2e650c58572223d08739c44c4d06..5674174558fe52bb92dccaf77806462bd1fb684f 100644 --- a/src/client/components/instance-ticker.vue +++ b/src/client/components/instance-ticker.vue @@ -7,7 +7,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import { instanceName } from '@/config'; +import { instanceName } from '@client/config'; export default defineComponent({ props: { diff --git a/src/client/components/launch-pad.vue b/src/client/components/launch-pad.vue index 4d2a3b2c7737fdb2fc3fb72db42bac7bb0702b3d..a81320954c0c4daf35ceeae933a3395561dcb981 100644 --- a/src/client/components/launch-pad.vue +++ b/src/client/components/launch-pad.vue @@ -36,9 +36,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faQuestionCircle, faInfoCircle, faCircle } from '@fortawesome/free-solid-svg-icons'; -import MkModal from '@/components/ui/modal.vue'; -import { sidebarDef } from '@/sidebar'; -import { instanceName } from '@/config'; +import MkModal from '@client/components/ui/modal.vue'; +import { sidebarDef } from '@client/sidebar'; +import { instanceName } from '@client/config'; export default defineComponent({ components: { diff --git a/src/client/components/link.vue b/src/client/components/link.vue index f51773dc4b134faf6e8d4ff37aae7e6dcb96d576..cc7db8c2f57e9824cf95243c17bba0ac04f451d7 100644 --- a/src/client/components/link.vue +++ b/src/client/components/link.vue @@ -12,9 +12,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faExternalLinkSquareAlt } from '@fortawesome/free-solid-svg-icons'; -import { url as local } from '@/config'; -import { isDeviceTouch } from '@/scripts/is-device-touch'; -import * as os from '@/os'; +import { url as local } from '@client/config'; +import { isDeviceTouch } from '@client/scripts/is-device-touch'; +import * as os from '@client/os'; export default defineComponent({ props: { @@ -46,7 +46,7 @@ export default defineComponent({ if (!document.body.contains(this.$el)) return; if (this.close) return; - const { dispose } = await os.popup(import('@/components/url-preview-popup.vue'), { + const { dispose } = await os.popup(import('@client/components/url-preview-popup.vue'), { url: this.url, source: this.$el }); diff --git a/src/client/components/media-banner.vue b/src/client/components/media-banner.vue index a2e1776d09815ea089ae8188db72476ea5fca5bb..29d7c727f600dcde52c3a7803dd8417ee0961c54 100644 --- a/src/client/components/media-banner.vue +++ b/src/client/components/media-banner.vue @@ -28,8 +28,8 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; -import * as os from '@/os'; -import { ColdDeviceStorage } from '@/store'; +import * as os from '@client/os'; +import { ColdDeviceStorage } from '@client/store'; export default defineComponent({ props: { diff --git a/src/client/components/media-image.vue b/src/client/components/media-image.vue index 9f3898ec56815e3cd088bef6c7da4d7ae4c08f57..41760d98d7bef6ff72339942febc584b6bfd1f8d 100644 --- a/src/client/components/media-image.vue +++ b/src/client/components/media-image.vue @@ -24,11 +24,11 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faExclamationTriangle, faEyeSlash } from '@fortawesome/free-solid-svg-icons'; -import { getStaticImageUrl } from '@/scripts/get-static-image-url'; -import { extractAvgColorFromBlurhash } from '@/scripts/extract-avg-color-from-blurhash'; +import { getStaticImageUrl } from '@client/scripts/get-static-image-url'; +import { extractAvgColorFromBlurhash } from '@client/scripts/extract-avg-color-from-blurhash'; import ImageViewer from './image-viewer.vue'; import ImgWithBlurhash from './img-with-blurhash.vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/components/media-list.vue b/src/client/components/media-list.vue index 36fbb4bd06078b1c3cdb8119f537a95ad3464776..71767a0f9f31a7ee348855f85374e61c33857b1e 100644 --- a/src/client/components/media-list.vue +++ b/src/client/components/media-list.vue @@ -17,7 +17,7 @@ import { defineComponent } from 'vue'; import XBanner from './media-banner.vue'; import XImage from './media-image.vue'; import XVideo from './media-video.vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/components/media-video.vue b/src/client/components/media-video.vue index bdd3983e1e8fe737e246e1c504d852b59b0c7adf..b6f63cb65d1f8fa8c87d5c22a203bbaad8e01315 100644 --- a/src/client/components/media-video.vue +++ b/src/client/components/media-video.vue @@ -25,7 +25,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faExclamationTriangle, faEyeSlash } from '@fortawesome/free-solid-svg-icons'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ props: { diff --git a/src/client/components/mention.vue b/src/client/components/mention.vue index 12a620af9d03b0c7360f8e925bb55a8c3370289e..322e56d957d9a4a1d9a2b1de20eca5af6d951fc6 100644 --- a/src/client/components/mention.vue +++ b/src/client/components/mention.vue @@ -17,9 +17,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { toUnicode } from 'punycode'; -import { host as localHost } from '@/config'; +import { host as localHost } from '@client/config'; import { wellKnownServices } from '../../well-known-services'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ props: { diff --git a/src/client/components/mfm.ts b/src/client/components/mfm.ts index bca469a1594a65c73cfc636ad46f5517c860caf7..28ac9b8942653d10c4ce87b0b877cb54d7f19344 100644 --- a/src/client/components/mfm.ts +++ b/src/client/components/mfm.ts @@ -1,16 +1,16 @@ import { VNode, defineComponent, h } from 'vue'; -import { MfmForest } from '@/../mfm/prelude'; -import { parse, parsePlain } from '@/../mfm/parse'; -import MkUrl from '@/components/global/url.vue'; -import MkLink from '@/components/link.vue'; -import MkMention from '@/components/mention.vue'; -import MkEmoji from '@/components/global/emoji.vue'; -import { concat } from '@/../prelude/array'; -import MkFormula from '@/components/formula.vue'; -import MkCode from '@/components/code.vue'; -import MkGoogle from '@/components/google.vue'; -import MkA from '@/components/global/a.vue'; -import { host } from '@/config'; +import { MfmForest } from '@client/../mfm/prelude'; +import { parse, parsePlain } from '@client/../mfm/parse'; +import MkUrl from '@client/components/global/url.vue'; +import MkLink from '@client/components/link.vue'; +import MkMention from '@client/components/mention.vue'; +import MkEmoji from '@client/components/global/emoji.vue'; +import { concat } from '@client/../prelude/array'; +import MkFormula from '@client/components/formula.vue'; +import MkCode from '@client/components/code.vue'; +import MkGoogle from '@client/components/google.vue'; +import MkA from '@client/components/global/a.vue'; +import { host } from '@client/config'; export default defineComponent({ props: { diff --git a/src/client/components/mini-chart.vue b/src/client/components/mini-chart.vue index 2eb9ae8cbeba6b36005ba3772ad5b3b8f10ba702..0d01e4e4b59a6a0c8e6dd74d6b325630c177bba5 100644 --- a/src/client/components/mini-chart.vue +++ b/src/client/components/mini-chart.vue @@ -32,7 +32,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { v4 as uuid } from 'uuid'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ props: { diff --git a/src/client/components/note-detailed.vue b/src/client/components/note-detailed.vue index ea26d31100e6cec8fbd288c4ccd2ba47f571fb6c..fb4f9502b35f61a698fdd225923fca8af67cccf2 100644 --- a/src/client/components/note-detailed.vue +++ b/src/client/components/note-detailed.vue @@ -132,15 +132,15 @@ import XReactionsViewer from './reactions-viewer.vue'; import XMediaList from './media-list.vue'; import XCwButton from './cw-button.vue'; import XPoll from './poll.vue'; -import { pleaseLogin } from '@/scripts/please-login'; -import { focusPrev, focusNext } from '@/scripts/focus'; -import { url } from '@/config'; -import copyToClipboard from '@/scripts/copy-to-clipboard'; -import { checkWordMute } from '@/scripts/check-word-mute'; -import { userPage } from '@/filters/user'; -import * as os from '@/os'; -import { noteActions, noteViewInterruptors } from '@/store'; -import { reactionPicker } from '@/scripts/reaction-picker'; +import { pleaseLogin } from '@client/scripts/please-login'; +import { focusPrev, focusNext } from '@client/scripts/focus'; +import { url } from '@client/config'; +import copyToClipboard from '@client/scripts/copy-to-clipboard'; +import { checkWordMute } from '@client/scripts/check-word-mute'; +import { userPage } from '@client/filters/user'; +import * as os from '@client/os'; +import { noteActions, noteViewInterruptors } from '@client/store'; +import { reactionPicker } from '@client/scripts/reaction-picker'; function markRawAll(...xs) { for (const x of xs) { @@ -160,8 +160,8 @@ export default defineComponent({ XMediaList, XCwButton, XPoll, - MkUrlPreview: defineAsyncComponent(() => import('@/components/url-preview.vue')), - MkInstanceTicker: defineAsyncComponent(() => import('@/components/instance-ticker.vue')), + MkUrlPreview: defineAsyncComponent(() => import('@client/components/url-preview.vue')), + MkInstanceTicker: defineAsyncComponent(() => import('@client/components/instance-ticker.vue')), }, inject: { @@ -687,7 +687,7 @@ export default defineComponent({ text: this.$ts.reportAbuse, action: () => { const u = `${url}/notes/${this.appearNote.id}`; - os.popup(import('@/components/abuse-report-window.vue'), { + os.popup(import('@client/components/abuse-report-window.vue'), { user: this.appearNote.user, initialComment: `Note: ${u}\n-----\n` }, {}, 'closed'); diff --git a/src/client/components/note-header.vue b/src/client/components/note-header.vue index 1f7a07bac3bc78b94c1cebeba674e8e8ba86fec2..a6e9b6fe568c6e2018319e3ef761a31eb8b40e3a 100644 --- a/src/client/components/note-header.vue +++ b/src/client/components/note-header.vue @@ -28,7 +28,7 @@ import { faHome, faUnlock, faEnvelope, faMobileAlt, faBookmark, faBiohazard } fr import { faBookmark as farBookmark } from '@fortawesome/free-regular-svg-icons'; import notePage from '../filters/note'; import { userPage } from '../filters/user'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ props: { diff --git a/src/client/components/note-preview.vue b/src/client/components/note-preview.vue index 4ea97d17ee05e59573b22d4ab3437697893d7609..fcae4c4368645302c76cc5a5dcae5b1191d62f4b 100644 --- a/src/client/components/note-preview.vue +++ b/src/client/components/note-preview.vue @@ -21,7 +21,7 @@ import { defineComponent } from 'vue'; import XNoteHeader from './note-header.vue'; import XSubNoteContent from './sub-note-content.vue'; import XCwButton from './cw-button.vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/components/note.sub.vue b/src/client/components/note.sub.vue index 28553ea4a7e9787cd09798f551d31a48087bbdfe..853d481406845fdc4fecb680551ce684b234f489 100644 --- a/src/client/components/note.sub.vue +++ b/src/client/components/note.sub.vue @@ -24,7 +24,7 @@ import { defineComponent } from 'vue'; import XNoteHeader from './note-header.vue'; import XSubNoteContent from './sub-note-content.vue'; import XCwButton from './cw-button.vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ name: 'XSub', diff --git a/src/client/components/note.vue b/src/client/components/note.vue index 70f49fef7e4a310b29ffdbdb4c6aab6406f54099..b54cadfc8052cb5e4fc5f2ab7ea146c4a95afba8 100644 --- a/src/client/components/note.vue +++ b/src/client/components/note.vue @@ -114,15 +114,15 @@ import XReactionsViewer from './reactions-viewer.vue'; import XMediaList from './media-list.vue'; import XCwButton from './cw-button.vue'; import XPoll from './poll.vue'; -import { pleaseLogin } from '@/scripts/please-login'; -import { focusPrev, focusNext } from '@/scripts/focus'; -import { url } from '@/config'; -import copyToClipboard from '@/scripts/copy-to-clipboard'; -import { checkWordMute } from '@/scripts/check-word-mute'; -import { userPage } from '@/filters/user'; -import * as os from '@/os'; -import { noteActions, noteViewInterruptors } from '@/store'; -import { reactionPicker } from '@/scripts/reaction-picker'; +import { pleaseLogin } from '@client/scripts/please-login'; +import { focusPrev, focusNext } from '@client/scripts/focus'; +import { url } from '@client/config'; +import copyToClipboard from '@client/scripts/copy-to-clipboard'; +import { checkWordMute } from '@client/scripts/check-word-mute'; +import { userPage } from '@client/filters/user'; +import * as os from '@client/os'; +import { noteActions, noteViewInterruptors } from '@client/store'; +import { reactionPicker } from '@client/scripts/reaction-picker'; function markRawAll(...xs) { for (const x of xs) { @@ -141,8 +141,8 @@ export default defineComponent({ XMediaList, XCwButton, XPoll, - MkUrlPreview: defineAsyncComponent(() => import('@/components/url-preview.vue')), - MkInstanceTicker: defineAsyncComponent(() => import('@/components/instance-ticker.vue')), + MkUrlPreview: defineAsyncComponent(() => import('@client/components/url-preview.vue')), + MkInstanceTicker: defineAsyncComponent(() => import('@client/components/instance-ticker.vue')), }, inject: { @@ -662,7 +662,7 @@ export default defineComponent({ text: this.$ts.reportAbuse, action: () => { const u = `${url}/notes/${this.appearNote.id}`; - os.popup(import('@/components/abuse-report-window.vue'), { + os.popup(import('@client/components/abuse-report-window.vue'), { user: this.appearNote.user, initialComment: `Note: ${u}\n-----\n` }, {}, 'closed'); diff --git a/src/client/components/notes.vue b/src/client/components/notes.vue index 332f00e5db6872bd656d625f66e81d5271c21110..80a9502d5f6160265933be3d71e9b89c7f6c3d6e 100644 --- a/src/client/components/notes.vue +++ b/src/client/components/notes.vue @@ -29,10 +29,10 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import paging from '@/scripts/paging'; +import paging from '@client/scripts/paging'; import XNote from './note.vue'; import XList from './date-separated-list.vue'; -import MkButton from '@/components/ui/button.vue'; +import MkButton from '@client/components/ui/button.vue'; export default defineComponent({ components: { diff --git a/src/client/components/notification-setting-window.vue b/src/client/components/notification-setting-window.vue index 1c19de9ff9b2debdd0e35f9e4bbaa2eb3d060c69..a3e221f7b273281f8e527f9f2e31a757b6f3df2e 100644 --- a/src/client/components/notification-setting-window.vue +++ b/src/client/components/notification-setting-window.vue @@ -26,7 +26,7 @@ <script lang="ts"> import { defineComponent, PropType } from 'vue'; -import XModalWindow from '@/components/ui/modal-window.vue'; +import XModalWindow from '@client/components/ui/modal-window.vue'; import MkSwitch from './ui/switch.vue'; import MkInfo from './ui/info.vue'; import MkButton from './ui/button.vue'; diff --git a/src/client/components/notification.vue b/src/client/components/notification.vue index 2fe85008914ffb95f601705b078af903bf59f12f..2b8b440ced0b09942a9cbfa2013a333a3e8a8883 100644 --- a/src/client/components/notification.vue +++ b/src/client/components/notification.vue @@ -61,13 +61,13 @@ import { defineComponent } from 'vue'; import { faIdCardAlt, faPlus, faQuoteLeft, faQuoteRight, faRetweet, faReply, faAt, faCheck, faPollH } from '@fortawesome/free-solid-svg-icons'; import { faClock } from '@fortawesome/free-regular-svg-icons'; -import { getNoteSummary } from '../../misc/get-note-summary'; +import { getNoteSummary } from '@/misc/get-note-summary'; import XReactionIcon from './reaction-icon.vue'; import MkFollowButton from './follow-button.vue'; import notePage from '../filters/note'; import { userPage } from '../filters/user'; -import { i18n } from '@/i18n'; -import * as os from '@/os'; +import { i18n } from '@client/i18n'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/components/notifications.vue b/src/client/components/notifications.vue index 56dbfd5bdfea82d4c049ba14d7ef67a59f84e830..01b3ae43964b43e42b79a86428c0f3d9855aaca8 100644 --- a/src/client/components/notifications.vue +++ b/src/client/components/notifications.vue @@ -18,12 +18,12 @@ <script lang="ts"> import { defineComponent, PropType } from 'vue'; -import paging from '@/scripts/paging'; +import paging from '@client/scripts/paging'; import XNotification from './notification.vue'; import XList from './date-separated-list.vue'; import XNote from './note.vue'; import { notificationTypes } from '../../types'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/components/page-preview.vue b/src/client/components/page-preview.vue index d59813e00de1ffc28531d04177afd9bb2f133c62..2125ddc534823bb2e0eb93cc446604d9cab5b363 100644 --- a/src/client/components/page-preview.vue +++ b/src/client/components/page-preview.vue @@ -17,7 +17,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { userName } from '../filters/user'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ props: { diff --git a/src/client/components/page-window.vue b/src/client/components/page-window.vue index 37342c403bc8211c40b7f553d0c74b6278ce77b7..ca6f4dd73e054924e91052ba2221a0184593ece3 100644 --- a/src/client/components/page-window.vue +++ b/src/client/components/page-window.vue @@ -23,12 +23,12 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faExternalLinkAlt, faExpandAlt, faLink, faChevronLeft, faColumns } from '@fortawesome/free-solid-svg-icons'; -import XWindow from '@/components/ui/window.vue'; -import XHeader from '@/ui/_common_/header.vue'; -import { popout } from '@/scripts/popout'; -import copyToClipboard from '@/scripts/copy-to-clipboard'; -import { resolve } from '@/router'; -import { url } from '@/config'; +import XWindow from '@client/components/ui/window.vue'; +import XHeader from '@client/ui/_common_/header.vue'; +import { popout } from '@client/scripts/popout'; +import copyToClipboard from '@client/scripts/copy-to-clipboard'; +import { resolve } from '@client/router'; +import { url } from '@client/config'; export default defineComponent({ components: { diff --git a/src/client/components/page/page.block.vue b/src/client/components/page/page.block.vue index 54b8b30276a5f38d599dcc2a4c6d99e6e1f919a0..ffd9ce89f9fa7173031492a7bfd49f9511ea268c 100644 --- a/src/client/components/page/page.block.vue +++ b/src/client/components/page/page.block.vue @@ -19,8 +19,8 @@ import XCounter from './page.counter.vue'; import XRadioButton from './page.radio-button.vue'; import XCanvas from './page.canvas.vue'; import XNote from './page.note.vue'; -import { Hpml } from '@/scripts/hpml/evaluator'; -import { Block } from '@/scripts/hpml/block'; +import { Hpml } from '@client/scripts/hpml/evaluator'; +import { Block } from '@client/scripts/hpml/block'; export default defineComponent({ components: { diff --git a/src/client/components/page/page.button.vue b/src/client/components/page/page.button.vue index 51da84bd490741912bef341dbbf36377a0b37086..c6ae67521232b21eb95c939bacf475d78011d6d1 100644 --- a/src/client/components/page/page.button.vue +++ b/src/client/components/page/page.button.vue @@ -7,9 +7,9 @@ <script lang="ts"> import { defineComponent, PropType, unref } from 'vue'; import MkButton from '../ui/button.vue'; -import * as os from '@/os'; -import { ButtonBlock } from '@/scripts/hpml/block'; -import { Hpml } from '@/scripts/hpml/evaluator'; +import * as os from '@client/os'; +import { ButtonBlock } from '@client/scripts/hpml/block'; +import { Hpml } from '@client/scripts/hpml/evaluator'; export default defineComponent({ components: { diff --git a/src/client/components/page/page.canvas.vue b/src/client/components/page/page.canvas.vue index 8f49b88e5e216574a33f4e088b13267d13975040..e26db597f26be7c8664fd52fe91a250be1f38888 100644 --- a/src/client/components/page/page.canvas.vue +++ b/src/client/components/page/page.canvas.vue @@ -6,9 +6,9 @@ <script lang="ts"> import { defineComponent, onMounted, PropType, Ref, ref } from 'vue'; -import * as os from '@/os'; -import { CanvasBlock } from '@/scripts/hpml/block'; -import { Hpml } from '@/scripts/hpml/evaluator'; +import * as os from '@client/os'; +import { CanvasBlock } from '@client/scripts/hpml/block'; +import { Hpml } from '@client/scripts/hpml/evaluator'; export default defineComponent({ props: { diff --git a/src/client/components/page/page.counter.vue b/src/client/components/page/page.counter.vue index b1af8954b011bf5779daacf01d223d591cae3df6..dad7ac3da00e75174541857c03c8e8ab5753556f 100644 --- a/src/client/components/page/page.counter.vue +++ b/src/client/components/page/page.counter.vue @@ -7,9 +7,9 @@ <script lang="ts"> import { computed, defineComponent, PropType } from 'vue'; import MkButton from '../ui/button.vue'; -import * as os from '@/os'; -import { CounterVarBlock } from '@/scripts/hpml/block'; -import { Hpml } from '@/scripts/hpml/evaluator'; +import * as os from '@client/os'; +import { CounterVarBlock } from '@client/scripts/hpml/block'; +import { Hpml } from '@client/scripts/hpml/evaluator'; export default defineComponent({ components: { diff --git a/src/client/components/page/page.if.vue b/src/client/components/page/page.if.vue index ec25332db0a890605f005e589bffaf802065bb08..a70525e07c7d67fdaf73b085164a56ab89067135 100644 --- a/src/client/components/page/page.if.vue +++ b/src/client/components/page/page.if.vue @@ -5,8 +5,8 @@ </template> <script lang="ts"> -import { IfBlock } from '@/scripts/hpml/block'; -import { Hpml } from '@/scripts/hpml/evaluator'; +import { IfBlock } from '@client/scripts/hpml/block'; +import { Hpml } from '@client/scripts/hpml/evaluator'; import { defineComponent, defineAsyncComponent, PropType } from 'vue'; export default defineComponent({ diff --git a/src/client/components/page/page.image.vue b/src/client/components/page/page.image.vue index 04ce74bd7cb8425caa58363b0a4e78b5bcd21897..14dedc98a04ec89eadf72484154fd9944cb493fd 100644 --- a/src/client/components/page/page.image.vue +++ b/src/client/components/page/page.image.vue @@ -6,9 +6,9 @@ <script lang="ts"> import { defineComponent, PropType } from 'vue'; -import * as os from '@/os'; -import { ImageBlock } from '@/scripts/hpml/block'; -import { Hpml } from '@/scripts/hpml/evaluator'; +import * as os from '@client/os'; +import { ImageBlock } from '@client/scripts/hpml/block'; +import { Hpml } from '@client/scripts/hpml/evaluator'; export default defineComponent({ props: { diff --git a/src/client/components/page/page.note.vue b/src/client/components/page/page.note.vue index 925844c1bd6b12da336042a4196595293c427649..7a3f88bb1f3cc3f53589cb90f68b56f9696e65fa 100644 --- a/src/client/components/page/page.note.vue +++ b/src/client/components/page/page.note.vue @@ -7,10 +7,10 @@ <script lang="ts"> import { defineComponent, onMounted, PropType, Ref, ref } from 'vue'; -import XNote from '@/components/note.vue'; -import XNoteDetailed from '@/components/note-detailed.vue'; -import * as os from '@/os'; -import { NoteBlock } from '@/scripts/hpml/block'; +import XNote from '@client/components/note.vue'; +import XNoteDetailed from '@client/components/note-detailed.vue'; +import * as os from '@client/os'; +import { NoteBlock } from '@client/scripts/hpml/block'; export default defineComponent({ components: { diff --git a/src/client/components/page/page.number-input.vue b/src/client/components/page/page.number-input.vue index 7b7d79933020529fce0bb3ae320b3c1fb8facdb1..1970ee62a9ef28368e7996f0a09416e27f9d9423 100644 --- a/src/client/components/page/page.number-input.vue +++ b/src/client/components/page/page.number-input.vue @@ -7,9 +7,9 @@ <script lang="ts"> import { computed, defineComponent, PropType } from 'vue'; import MkInput from '../ui/input.vue'; -import * as os from '@/os'; -import { Hpml } from '@/scripts/hpml/evaluator'; -import { NumberInputVarBlock } from '@/scripts/hpml/block'; +import * as os from '@client/os'; +import { Hpml } from '@client/scripts/hpml/evaluator'; +import { NumberInputVarBlock } from '@client/scripts/hpml/block'; export default defineComponent({ components: { diff --git a/src/client/components/page/page.post.vue b/src/client/components/page/page.post.vue index 33c6e6b14c5c60af96866a97a6f1702e0c4aab37..926d06ae808d473a919b331d841c55b2098a7f13 100644 --- a/src/client/components/page/page.post.vue +++ b/src/client/components/page/page.post.vue @@ -10,10 +10,10 @@ import { defineComponent, PropType } from 'vue'; import { faCheck, faPaperPlane } from '@fortawesome/free-solid-svg-icons'; import MkTextarea from '../ui/textarea.vue'; import MkButton from '../ui/button.vue'; -import { apiUrl } from '@/config'; -import * as os from '@/os'; -import { PostBlock } from '@/scripts/hpml/block'; -import { Hpml } from '@/scripts/hpml/evaluator'; +import { apiUrl } from '@client/config'; +import * as os from '@client/os'; +import { PostBlock } from '@client/scripts/hpml/block'; +import { Hpml } from '@client/scripts/hpml/evaluator'; export default defineComponent({ components: { diff --git a/src/client/components/page/page.radio-button.vue b/src/client/components/page/page.radio-button.vue index def6ee8885b8c6f14f2ef28ca1476f7c075d0a2b..f6f146b52f25717f76f548605d64341e746ed4d5 100644 --- a/src/client/components/page/page.radio-button.vue +++ b/src/client/components/page/page.radio-button.vue @@ -8,9 +8,9 @@ <script lang="ts"> import { computed, defineComponent, PropType } from 'vue'; import MkRadio from '../ui/radio.vue'; -import * as os from '@/os'; -import { Hpml } from '@/scripts/hpml/evaluator'; -import { RadioButtonVarBlock } from '@/scripts/hpml/block'; +import * as os from '@client/os'; +import { Hpml } from '@client/scripts/hpml/evaluator'; +import { RadioButtonVarBlock } from '@client/scripts/hpml/block'; export default defineComponent({ components: { diff --git a/src/client/components/page/page.section.vue b/src/client/components/page/page.section.vue index d32f5dc7327e87cef30dc57e3542a12a696a42db..81cab125013a5fc25e51433dc8a79307b2823993 100644 --- a/src/client/components/page/page.section.vue +++ b/src/client/components/page/page.section.vue @@ -10,9 +10,9 @@ <script lang="ts"> import { defineComponent, defineAsyncComponent, PropType } from 'vue'; -import * as os from '@/os'; -import { SectionBlock } from '@/scripts/hpml/block'; -import { Hpml } from '@/scripts/hpml/evaluator'; +import * as os from '@client/os'; +import { SectionBlock } from '@client/scripts/hpml/block'; +import { Hpml } from '@client/scripts/hpml/evaluator'; export default defineComponent({ components: { diff --git a/src/client/components/page/page.switch.vue b/src/client/components/page/page.switch.vue index 9c3fb5feaad653992d7d4d9e3d96716c61e4ecfc..a928c22bee788555e0ffe3f7347f215f4a51a020 100644 --- a/src/client/components/page/page.switch.vue +++ b/src/client/components/page/page.switch.vue @@ -7,9 +7,9 @@ <script lang="ts"> import { computed, defineComponent, PropType } from 'vue'; import MkSwitch from '../ui/switch.vue'; -import * as os from '@/os'; -import { Hpml } from '@/scripts/hpml/evaluator'; -import { SwitchVarBlock } from '@/scripts/hpml/block'; +import * as os from '@client/os'; +import { Hpml } from '@client/scripts/hpml/evaluator'; +import { SwitchVarBlock } from '@client/scripts/hpml/block'; export default defineComponent({ components: { diff --git a/src/client/components/page/page.text-input.vue b/src/client/components/page/page.text-input.vue index e67814af16e4b6ebcfa0bc9556defeef693b79fd..8bf3e1c88e12de78e81e685106928a53294c20ad 100644 --- a/src/client/components/page/page.text-input.vue +++ b/src/client/components/page/page.text-input.vue @@ -7,9 +7,9 @@ <script lang="ts"> import { computed, defineComponent, PropType } from 'vue'; import MkInput from '../ui/input.vue'; -import * as os from '@/os'; -import { Hpml } from '@/scripts/hpml/evaluator'; -import { TextInputVarBlock } from '@/scripts/hpml/block'; +import * as os from '@client/os'; +import { Hpml } from '@client/scripts/hpml/evaluator'; +import { TextInputVarBlock } from '@client/scripts/hpml/block'; export default defineComponent({ components: { diff --git a/src/client/components/page/page.text.vue b/src/client/components/page/page.text.vue index 1896d00f423f789c088741a5f21d5dd8667b7da2..491c62be26514d529a362224fa942646a601175e 100644 --- a/src/client/components/page/page.text.vue +++ b/src/client/components/page/page.text.vue @@ -6,15 +6,15 @@ </template> <script lang="ts"> -import { TextBlock } from '@/scripts/hpml/block'; -import { Hpml } from '@/scripts/hpml/evaluator'; +import { TextBlock } from '@client/scripts/hpml/block'; +import { Hpml } from '@client/scripts/hpml/evaluator'; import { defineAsyncComponent, defineComponent, PropType } from 'vue'; import { parse } from '../../../mfm/parse'; import { unique } from '../../../prelude/array'; export default defineComponent({ components: { - MkUrlPreview: defineAsyncComponent(() => import('@/components/url-preview.vue')), + MkUrlPreview: defineAsyncComponent(() => import('@client/components/url-preview.vue')), }, props: { block: { diff --git a/src/client/components/page/page.textarea-input.vue b/src/client/components/page/page.textarea-input.vue index 085c2ba57942ab50ba6ea9bb3a6a1598a6628ce3..9951cef2de6737478e2d5c92ea27fc0d2b285a1d 100644 --- a/src/client/components/page/page.textarea-input.vue +++ b/src/client/components/page/page.textarea-input.vue @@ -7,10 +7,10 @@ <script lang="ts"> import { computed, defineComponent, PropType } from 'vue'; import MkTextarea from '../ui/textarea.vue'; -import * as os from '@/os'; -import { Hpml } from '@/scripts/hpml/evaluator'; -import { HpmlTextInput } from '@/scripts/hpml'; -import { TextInputVarBlock } from '@/scripts/hpml/block'; +import * as os from '@client/os'; +import { Hpml } from '@client/scripts/hpml/evaluator'; +import { HpmlTextInput } from '@client/scripts/hpml'; +import { TextInputVarBlock } from '@client/scripts/hpml/block'; export default defineComponent({ components: { diff --git a/src/client/components/page/page.textarea.vue b/src/client/components/page/page.textarea.vue index 97d688368afdd4ad3ed1a8255ee1287685f16de8..612bbe41b9c99a3d4ef338b27c894484c036bd50 100644 --- a/src/client/components/page/page.textarea.vue +++ b/src/client/components/page/page.textarea.vue @@ -3,8 +3,8 @@ </template> <script lang="ts"> -import { TextBlock } from '@/scripts/hpml/block'; -import { Hpml } from '@/scripts/hpml/evaluator'; +import { TextBlock } from '@client/scripts/hpml/block'; +import { Hpml } from '@client/scripts/hpml/evaluator'; import { defineComponent, PropType } from 'vue'; import MkTextarea from '../ui/textarea.vue'; diff --git a/src/client/components/page/page.vue b/src/client/components/page/page.vue index 6d1c419a402c0cbc3efb2bc99d1e914aafb44b1d..f125365c3d91dc2655ea07d08213ada6efe9d6dc 100644 --- a/src/client/components/page/page.vue +++ b/src/client/components/page/page.vue @@ -8,10 +8,10 @@ import { defineComponent, onMounted, nextTick, onUnmounted, PropType } from 'vue'; import { parse } from '@syuilo/aiscript'; import XBlock from './page.block.vue'; -import { Hpml } from '@/scripts/hpml/evaluator'; -import { url } from '@/config'; -import { $i } from '@/account'; -import { defaultStore } from '@/store'; +import { Hpml } from '@client/scripts/hpml/evaluator'; +import { url } from '@client/config'; +import { $i } from '@client/account'; +import { defaultStore } from '@client/store'; export default defineComponent({ components: { diff --git a/src/client/components/poll-editor.vue b/src/client/components/poll-editor.vue index 49454f23c39f4cf510bad9bc6c4d7a715587c7c8..3503d3df7165edd0a7caf86acdadca016ef70eb3 100644 --- a/src/client/components/poll-editor.vue +++ b/src/client/components/poll-editor.vue @@ -52,7 +52,7 @@ import { defineComponent } from 'vue'; import { faExclamationTriangle, faTimes } from '@fortawesome/free-solid-svg-icons'; import { addTime } from '../../prelude/time'; -import { formatDateTimeString } from '../../misc/format-time-string'; +import { formatDateTimeString } from '@/misc/format-time-string'; import MkInput from './ui/input.vue'; import MkSelect from './ui/select.vue'; import MkSwitch from './ui/switch.vue'; diff --git a/src/client/components/poll.vue b/src/client/components/poll.vue index 7f13e135aa758816433577710168a4cc6e7186db..af3b3804abcc458b61a9d80c6e37c9b8bc9ddb74 100644 --- a/src/client/components/poll.vue +++ b/src/client/components/poll.vue @@ -25,7 +25,7 @@ import { defineComponent } from 'vue'; import { faCheck } from '@fortawesome/free-solid-svg-icons'; import { sum } from '../../prelude/array'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ props: { diff --git a/src/client/components/post-form-attaches.vue b/src/client/components/post-form-attaches.vue index 230c944de1699c31cd4bd4ce387784215ee47583..f2eed304419527d0bfc86855ca726247752e9c17 100644 --- a/src/client/components/post-form-attaches.vue +++ b/src/client/components/post-form-attaches.vue @@ -19,7 +19,7 @@ import { defineComponent, defineAsyncComponent } from 'vue'; import { faTimesCircle, faEye, faEyeSlash } from '@fortawesome/free-regular-svg-icons'; import { faExclamationTriangle, faICursor } from '@fortawesome/free-solid-svg-icons'; import MkDriveFileThumbnail from './drive-file-thumbnail.vue' -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/components/post-form-dialog.vue b/src/client/components/post-form-dialog.vue index ae1cd7f01ee0885b054d441f9d275f85eb25678e..aa23e3891ec5fcc07d40ac871320786d52c5a656 100644 --- a/src/client/components/post-form-dialog.vue +++ b/src/client/components/post-form-dialog.vue @@ -6,8 +6,8 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import MkModal from '@/components/ui/modal.vue'; -import MkPostForm from '@/components/post-form.vue'; +import MkModal from '@client/components/ui/modal.vue'; +import MkPostForm from '@client/components/post-form.vue'; export default defineComponent({ components: { diff --git a/src/client/components/post-form.vue b/src/client/components/post-form.vue index 9b5adf9cc16d30784a7bc91c93e61fa8b5b8c5c7..7d2355c190de6517659cdd2ade5c385f594d30da 100644 --- a/src/client/components/post-form.vue +++ b/src/client/components/post-form.vue @@ -59,17 +59,17 @@ import { length } from 'stringz'; import { toASCII } from 'punycode'; import XNotePreview from './note-preview.vue'; import { parse } from '../../mfm/parse'; -import { host, url } from '@/config'; +import { host, url } from '@client/config'; import { erase, unique } from '../../prelude/array'; -import extractMentions from '../../misc/extract-mentions'; -import getAcct from '../../misc/acct/render'; -import { formatTimeString } from '../../misc/format-time-string'; -import { Autocomplete } from '@/scripts/autocomplete'; +import extractMentions from '@/misc/extract-mentions'; +import getAcct from '@/misc/acct/render'; +import { formatTimeString } from '@/misc/format-time-string'; +import { Autocomplete } from '@client/scripts/autocomplete'; import { noteVisibilities } from '../../types'; -import * as os from '@/os'; -import { selectFile } from '@/scripts/select-file'; -import { notePostInterruptors, postFormActions } from '@/store'; -import { isMobile } from '@/scripts/is-mobile'; +import * as os from '@client/os'; +import { selectFile } from '@client/scripts/select-file'; +import { notePostInterruptors, postFormActions } from '@client/store'; +import { isMobile } from '@client/scripts/is-mobile'; import { throttle } from 'throttle-debounce'; export default defineComponent({ diff --git a/src/client/components/reactions-viewer.reaction.vue b/src/client/components/reactions-viewer.reaction.vue index a67b24601b50d09ee305f9bd09dc24d611d39857..99b4d50c52e8cd7bbd48980e3adbb7726ab84950 100644 --- a/src/client/components/reactions-viewer.reaction.vue +++ b/src/client/components/reactions-viewer.reaction.vue @@ -18,9 +18,9 @@ <script lang="ts"> import { defineComponent, ref } from 'vue'; -import XDetails from '@/components/reactions-viewer.details.vue'; -import XReactionIcon from '@/components/reaction-icon.vue'; -import * as os from '@/os'; +import XDetails from '@client/components/reactions-viewer.details.vue'; +import XReactionIcon from '@client/components/reaction-icon.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/components/remote-caution.vue b/src/client/components/remote-caution.vue index 3af601f627163898a68c81058daab914c348c80f..98c7aaaa6ed116045f1673b9b830e5337baf383f 100644 --- a/src/client/components/remote-caution.vue +++ b/src/client/components/remote-caution.vue @@ -5,7 +5,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ props: { diff --git a/src/client/components/sample.vue b/src/client/components/sample.vue index 0f29fc69bb7e8cf836f418f653a3bd6d0d0a6890..70949ea3570992e852b94b900719200b6776a582 100644 --- a/src/client/components/sample.vue +++ b/src/client/components/sample.vue @@ -29,13 +29,13 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import MkButton from '@/components/ui/button.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkSwitch from '@/components/ui/switch.vue'; -import MkTextarea from '@/components/ui/textarea.vue'; -import MkRadio from '@/components/ui/radio.vue'; -import * as os from '@/os'; -import * as config from '@/config'; +import MkButton from '@client/components/ui/button.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkSwitch from '@client/components/ui/switch.vue'; +import MkTextarea from '@client/components/ui/textarea.vue'; +import MkRadio from '@client/components/ui/radio.vue'; +import * as os from '@client/os'; +import * as config from '@client/config'; export default defineComponent({ components: { diff --git a/src/client/components/sidebar.vue b/src/client/components/sidebar.vue index f7c50a2ba57e434a7aa0f819b6786b4afbd36a65..61439781b4c2600b21d2a3066fe4e1dbca1f4560 100644 --- a/src/client/components/sidebar.vue +++ b/src/client/components/sidebar.vue @@ -48,11 +48,11 @@ import { defineComponent } from 'vue'; import { faGripVertical, faChevronLeft, faHashtag, faBroadcastTower, faFireAlt, faEllipsisH, faPencilAlt, faBars, faTimes, faSearch, faUserCog, faCog, faUser, faHome, faStar, faCircle, faAt, faListUl, faPlus, faUserClock, faUsers, faTachometerAlt, faExchangeAlt, faGlobe, faChartBar, faCloud, faServer, faInfoCircle, faQuestionCircle, faProjectDiagram, faStream, faExclamationCircle } from '@fortawesome/free-solid-svg-icons'; import { faBell, faEnvelope, faLaugh, faComments } from '@fortawesome/free-regular-svg-icons'; -import { host } from '@/config'; -import { search } from '@/scripts/search'; -import * as os from '@/os'; -import { sidebarDef } from '@/sidebar'; -import { getAccounts, addAccount, login } from '@/account'; +import { host } from '@client/config'; +import { search } from '@client/scripts/search'; +import * as os from '@client/os'; +import { sidebarDef } from '@client/sidebar'; +import { getAccounts, addAccount, login } from '@client/account'; export default defineComponent({ props: { diff --git a/src/client/components/signin-dialog.vue b/src/client/components/signin-dialog.vue index 2edd10f539dfc45a4fca3cf24b5fcb5d3f8b7ca4..6c38c07d78f61912a22de60e67ece5227f16c6ae 100644 --- a/src/client/components/signin-dialog.vue +++ b/src/client/components/signin-dialog.vue @@ -13,7 +13,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import XModalWindow from '@/components/ui/modal-window.vue'; +import XModalWindow from '@client/components/ui/modal-window.vue'; import MkSignin from './signin.vue'; export default defineComponent({ diff --git a/src/client/components/signin.vue b/src/client/components/signin.vue index 3384fff96d190d06cafefcaac784b03ef442d188..120da63f30f03d5790214ba447308c53d1ce2b9f 100755 --- a/src/client/components/signin.vue +++ b/src/client/components/signin.vue @@ -53,10 +53,10 @@ import { faLock, faGavel } from '@fortawesome/free-solid-svg-icons'; import { faTwitter, faDiscord, faGithub } from '@fortawesome/free-brands-svg-icons'; import MkButton from './ui/button.vue'; import MkInput from './ui/input.vue'; -import { apiUrl, host } from '@/config'; -import { byteify, hexify } from '@/scripts/2fa'; -import * as os from '@/os'; -import { login } from '@/account'; +import { apiUrl, host } from '@client/config'; +import { byteify, hexify } from '@client/scripts/2fa'; +import * as os from '@client/os'; +import { login } from '@client/account'; export default defineComponent({ components: { diff --git a/src/client/components/signup-dialog.vue b/src/client/components/signup-dialog.vue index 74566fbce3ade5207722bd902ff08ed74117cd47..072a5ac19f55f7876b4f1b961855010f83b016b4 100644 --- a/src/client/components/signup-dialog.vue +++ b/src/client/components/signup-dialog.vue @@ -15,7 +15,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import XModalWindow from '@/components/ui/modal-window.vue'; +import XModalWindow from '@client/components/ui/modal-window.vue'; import XSignup from './signup.vue'; export default defineComponent({ diff --git a/src/client/components/signup.vue b/src/client/components/signup.vue index 91d0f2c96fabc21d19a6b09348670b7c1dc74ce7..1ce9fc27890189386297a92e5cb9e833291a3949 100644 --- a/src/client/components/signup.vue +++ b/src/client/components/signup.vue @@ -56,12 +56,12 @@ import { defineComponent, defineAsyncComponent } from 'vue'; import { faLock, faExclamationTriangle, faSpinner, faCheck, faKey } from '@fortawesome/free-solid-svg-icons'; const getPasswordStrength = require('syuilo-password-strength'); import { toUnicode } from 'punycode'; -import { host, url } from '@/config'; +import { host, url } from '@client/config'; import MkButton from './ui/button.vue'; import MkInput from './ui/input.vue'; import MkSwitch from './ui/switch.vue'; -import * as os from '@/os'; -import { login } from '@/account'; +import * as os from '@client/os'; +import { login } from '@client/account'; export default defineComponent({ components: { diff --git a/src/client/components/sub-note-content.vue b/src/client/components/sub-note-content.vue index ceb25e0967f4aa2e8cfaf847dec49402d0c689cf..384bcb4563c0f53c1017c3d80e7f018216898ae7 100644 --- a/src/client/components/sub-note-content.vue +++ b/src/client/components/sub-note-content.vue @@ -23,7 +23,7 @@ import { defineComponent } from 'vue'; import { faReply } from '@fortawesome/free-solid-svg-icons'; import XPoll from './poll.vue'; import XMediaList from './media-list.vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/components/taskmanager.api-window.vue b/src/client/components/taskmanager.api-window.vue index ec685462c9ed61df6df13e9f157a8cbf7bf3601f..9b6c3f16d09f291badf0a43ccecab1dd0de53ad7 100644 --- a/src/client/components/taskmanager.api-window.vue +++ b/src/client/components/taskmanager.api-window.vue @@ -23,8 +23,8 @@ <script lang="ts"> import { defineComponent } from 'vue'; import * as JSON5 from 'json5'; -import XWindow from '@/components/ui/window.vue'; -import MkTab from '@/components/tab.vue'; +import XWindow from '@client/components/ui/window.vue'; +import MkTab from '@client/components/tab.vue'; export default defineComponent({ components: { diff --git a/src/client/components/taskmanager.vue b/src/client/components/taskmanager.vue index 1ed8c8bd5e6bf07dfbc69db9c20f2114bb526be0..af9033178ec11bf1a1a2c95d441496c071850b85 100644 --- a/src/client/components/taskmanager.vue +++ b/src/client/components/taskmanager.vue @@ -79,11 +79,11 @@ <script lang="ts"> import { defineComponent, markRaw, onBeforeUnmount, ref, shallowRef } from 'vue'; import { faTerminal } from '@fortawesome/free-solid-svg-icons'; -import XWindow from '@/components/ui/window.vue'; -import MkTab from '@/components/tab.vue'; -import MkButton from '@/components/ui/button.vue'; -import follow from '@/directives/follow-append'; -import * as os from '@/os'; +import XWindow from '@client/components/ui/window.vue'; +import MkTab from '@client/components/tab.vue'; +import MkButton from '@client/components/ui/button.vue'; +import follow from '@client/directives/follow-append'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/components/timeline.vue b/src/client/components/timeline.vue index 9a3d3232cf0df03904d5e1686a22b284b77eb812..c2ab0b005dd378b385e899310877a3cea89d04c3 100644 --- a/src/client/components/timeline.vue +++ b/src/client/components/timeline.vue @@ -5,8 +5,8 @@ <script lang="ts"> import { defineComponent } from 'vue'; import XNotes from './notes.vue'; -import * as os from '@/os'; -import * as sound from '@/scripts/sound'; +import * as os from '@client/os'; +import * as sound from '@client/scripts/sound'; export default defineComponent({ components: { diff --git a/src/client/components/token-generate-window.vue b/src/client/components/token-generate-window.vue index 844c20eb089139aed5f06e1b252d30b4c7c82576..87a76931e45cc532c69cd3553c27f41e9dd12cac 100644 --- a/src/client/components/token-generate-window.vue +++ b/src/client/components/token-generate-window.vue @@ -27,8 +27,8 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import { kinds } from '../../misc/api-permissions'; -import XModalWindow from '@/components/ui/modal-window.vue'; +import { kinds } from '@/misc/api-permissions'; +import XModalWindow from '@client/components/ui/modal-window.vue'; import MkInput from './ui/input.vue'; import MkTextarea from './ui/textarea.vue'; import MkSwitch from './ui/switch.vue'; diff --git a/src/client/components/ui/context-menu.vue b/src/client/components/ui/context-menu.vue index 561099cbe0bf10c3f537479db197b1ac331eb7aa..61f5d3bf08e0dbfcf14dff9a4e4b95830fcb1145 100644 --- a/src/client/components/ui/context-menu.vue +++ b/src/client/components/ui/context-menu.vue @@ -8,7 +8,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import contains from '@/scripts/contains'; +import contains from '@client/scripts/contains'; import MkMenu from './menu.vue'; export default defineComponent({ diff --git a/src/client/components/ui/hr.vue b/src/client/components/ui/hr.vue index 6b075cb440f82f5a72ed25fe01ae9dcc59a5785d..fb12b4985f3999fa386c68c7b52c119ea30c8aee 100644 --- a/src/client/components/ui/hr.vue +++ b/src/client/components/ui/hr.vue @@ -3,7 +3,7 @@ </template> <script lang="ts"> -import { defineComponent } from 'vue';import * as os from '@/os'; +import { defineComponent } from 'vue';import * as os from '@client/os'; export default defineComponent({}); </script> diff --git a/src/client/components/ui/info.vue b/src/client/components/ui/info.vue index 5c71b14a0a7bb8ac7e35cff1869c1041e3febcbf..12b3dbcfd1e4d08f79614ac84dca1593390555aa 100644 --- a/src/client/components/ui/info.vue +++ b/src/client/components/ui/info.vue @@ -9,7 +9,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faInfoCircle, faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ props: { diff --git a/src/client/components/ui/input.vue b/src/client/components/ui/input.vue index 1c5222f8f2aba3c925bfc038e655d61539cb4a20..302d96d026899beaac99f70e4b50950f08d2ac65 100644 --- a/src/client/components/ui/input.vue +++ b/src/client/components/ui/input.vue @@ -57,7 +57,7 @@ import { defineComponent, onMounted, onUnmounted, nextTick, ref, watch, computed, toRefs } from 'vue'; import debounce from 'v-debounce'; import { faExclamationCircle } from '@fortawesome/free-solid-svg-icons'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ directives: { diff --git a/src/client/components/ui/menu.vue b/src/client/components/ui/menu.vue index c2033402e396be0f81f69c7b4e21894ae3148e32..1550fe40c7361b0dc8cc7be5ee2b41826baabaac 100644 --- a/src/client/components/ui/menu.vue +++ b/src/client/components/ui/menu.vue @@ -43,8 +43,8 @@ <script lang="ts"> import { defineComponent, ref } from 'vue'; import { faCircle } from '@fortawesome/free-solid-svg-icons'; -import { focusPrev, focusNext } from '@/scripts/focus'; -import contains from '@/scripts/contains'; +import { focusPrev, focusNext } from '@client/scripts/focus'; +import contains from '@client/scripts/contains'; export default defineComponent({ props: { diff --git a/src/client/components/ui/pagination.vue b/src/client/components/ui/pagination.vue index d9588a03731d184d03302f7bcc9929226f01eb48..13181d39e23ec96ab15dff81cabab15922de73fe 100644 --- a/src/client/components/ui/pagination.vue +++ b/src/client/components/ui/pagination.vue @@ -16,7 +16,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import MkButton from './button.vue'; -import paging from '@/scripts/paging'; +import paging from '@client/scripts/paging'; export default defineComponent({ components: { diff --git a/src/client/components/ui/radios.vue b/src/client/components/ui/radios.vue index ea40ba47b45928d5f82c1e196ecbd5e9f7c0417d..547e616ea52d65b2088ffd70b7e5ed51ae6ed0aa 100644 --- a/src/client/components/ui/radios.vue +++ b/src/client/components/ui/radios.vue @@ -1,6 +1,6 @@ <script lang="ts"> import { defineComponent, h } from 'vue'; -import MkRadio from '@/components/ui/radio.vue'; +import MkRadio from '@client/components/ui/radio.vue'; export default defineComponent({ components: { diff --git a/src/client/components/ui/window.vue b/src/client/components/ui/window.vue index 501a3bf8ee22edef22f3095b505027088ebfceca..1613644c87e16370db0c01d9f5fede164ec102d6 100644 --- a/src/client/components/ui/window.vue +++ b/src/client/components/ui/window.vue @@ -39,8 +39,8 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faTimes, faCheck } from '@fortawesome/free-solid-svg-icons'; -import contains from '@/scripts/contains'; -import * as os from '@/os'; +import contains from '@client/scripts/contains'; +import * as os from '@client/os'; const minHeight = 50; const minWidth = 250; diff --git a/src/client/components/url-preview-popup.vue b/src/client/components/url-preview-popup.vue index 0a402f793f45580fe80dc102dd1abff22be79892..b5e0fce20724f2d3f4d3b0a7cd2a2fa57033212a 100644 --- a/src/client/components/url-preview-popup.vue +++ b/src/client/components/url-preview-popup.vue @@ -9,7 +9,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import MkUrlPreview from './url-preview.vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/components/url-preview.vue b/src/client/components/url-preview.vue index 7a590687107d66ab67fa37a2e7ec5952461035f1..7495da6f24745a6e74e76c9adee7b0d6249c879d 100644 --- a/src/client/components/url-preview.vue +++ b/src/client/components/url-preview.vue @@ -36,8 +36,8 @@ import { defineComponent } from 'vue'; import { faPlayCircle } from '@fortawesome/free-regular-svg-icons'; import { faTwitter } from '@fortawesome/free-brands-svg-icons'; -import { url as local, lang } from '@/config'; -import * as os from '@/os'; +import { url as local, lang } from '@client/config'; +import * as os from '@client/os'; export default defineComponent({ props: { diff --git a/src/client/components/user-info.vue b/src/client/components/user-info.vue index 711e36741138a08784fccb60e8568014c639182c..34ea38c3b4f656a8d8c200d10c236332bcf72389 100644 --- a/src/client/components/user-info.vue +++ b/src/client/components/user-info.vue @@ -29,7 +29,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import parseAcct from '../../misc/acct/parse'; +import parseAcct from '@/misc/acct/parse'; import MkFollowButton from './follow-button.vue'; import { userPage } from '../filters/user'; diff --git a/src/client/components/user-list.vue b/src/client/components/user-list.vue index 7a57ff7168633809112cd503f0b69217d1230b11..418c4127d90f7317435ffea1c8d4dff5528aa894 100644 --- a/src/client/components/user-list.vue +++ b/src/client/components/user-list.vue @@ -16,7 +16,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import paging from '@/scripts/paging'; +import paging from '@client/scripts/paging'; import MkUserInfo from './user-info.vue'; import { userPage } from '../filters/user'; diff --git a/src/client/components/user-preview.vue b/src/client/components/user-preview.vue index c4588e478a7019116da6ad3ffd168b4e35e7584c..b2b335837491eec38adcf3bc3194b12e553f071f 100644 --- a/src/client/components/user-preview.vue +++ b/src/client/components/user-preview.vue @@ -33,10 +33,10 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import parseAcct from '../../misc/acct/parse'; +import parseAcct from '@/misc/acct/parse'; import MkFollowButton from './follow-button.vue'; import { userPage } from '../filters/user'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/components/user-select-dialog.vue b/src/client/components/user-select-dialog.vue index c67c985fdc29c0555138d3b39a51a50cecd6942b..e21deea1780e4e024f7df1bf730534e03140cdd4 100644 --- a/src/client/components/user-select-dialog.vue +++ b/src/client/components/user-select-dialog.vue @@ -46,8 +46,8 @@ import { defineComponent } from 'vue'; import { faTimes, faCheck } from '@fortawesome/free-solid-svg-icons'; import MkInput from './ui/input.vue'; -import XModalWindow from '@/components/ui/modal-window.vue'; -import * as os from '@/os'; +import XModalWindow from '@client/components/ui/modal-window.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/components/users-dialog.vue b/src/client/components/users-dialog.vue index 014748adc6d8fce22affc2bf530c60b8e47789f7..381aa609115cfc482070bea43a6c7cb313ad6f8f 100644 --- a/src/client/components/users-dialog.vue +++ b/src/client/components/users-dialog.vue @@ -28,7 +28,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faTimes } from '@fortawesome/free-solid-svg-icons'; -import paging from '@/scripts/paging'; +import paging from '@client/scripts/paging'; import { userPage } from '../filters/user'; export default defineComponent({ diff --git a/src/client/components/visibility-picker.vue b/src/client/components/visibility-picker.vue index e518f48d0d9153b9b63a36a2d31f11c9aed2e242..0b98d30b9d4650b54b28764b883a475678d0678a 100644 --- a/src/client/components/visibility-picker.vue +++ b/src/client/components/visibility-picker.vue @@ -46,7 +46,7 @@ import { defineComponent } from 'vue'; import { faGlobe, faUnlock, faHome, faBiohazard, faToggleOn, faToggleOff } from '@fortawesome/free-solid-svg-icons'; import { faEnvelope } from '@fortawesome/free-regular-svg-icons'; -import MkModal from '@/components/ui/modal.vue'; +import MkModal from '@client/components/ui/modal.vue'; export default defineComponent({ components: { diff --git a/src/client/components/waiting-dialog.vue b/src/client/components/waiting-dialog.vue index 7e8ebeaec0013b57225b116adabd1e68b5267728..c3a265af9cf3e9aebe9fa03b6e0bad4c270b3e09 100644 --- a/src/client/components/waiting-dialog.vue +++ b/src/client/components/waiting-dialog.vue @@ -11,7 +11,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faCheck, faSpinner } from '@fortawesome/free-solid-svg-icons'; -import MkModal from '@/components/ui/modal.vue'; +import MkModal from '@client/components/ui/modal.vue'; export default defineComponent({ components: { diff --git a/src/client/components/widgets.vue b/src/client/components/widgets.vue index 23fce7d71499edcac644e2966938307a0796ba9b..993b843cb1a4c317def1f65bdfa96677b41a6ede 100644 --- a/src/client/components/widgets.vue +++ b/src/client/components/widgets.vue @@ -31,9 +31,9 @@ import { defineComponent, defineAsyncComponent } from 'vue'; import { v4 as uuid } from 'uuid'; import { faTimes, faCog, faPlus } from '@fortawesome/free-solid-svg-icons'; -import MkSelect from '@/components/ui/select.vue'; -import MkButton from '@/components/ui/button.vue'; -import { widgets as widgetDefs } from '@/widgets'; +import MkSelect from '@client/components/ui/select.vue'; +import MkButton from '@client/components/ui/button.vue'; +import { widgets as widgetDefs } from '@client/widgets'; export default defineComponent({ components: { diff --git a/src/client/directives/follow-append.ts b/src/client/directives/follow-append.ts index b0e99628b0be39559f81a2dff8785691fd02ef16..ef3f9af43f9c259b36caf7cda9b4a7c5439b92c7 100644 --- a/src/client/directives/follow-append.ts +++ b/src/client/directives/follow-append.ts @@ -1,5 +1,5 @@ import { Directive } from 'vue'; -import { getScrollContainer, getScrollPosition } from '@/scripts/scroll'; +import { getScrollContainer, getScrollPosition } from '@client/scripts/scroll'; export default { mounted(src, binding, vn) { diff --git a/src/client/directives/particle.ts b/src/client/directives/particle.ts index c90df89a5ed6e4376906df1b33b72d04b3743077..1676e1182e01c2d04ae6bd634927b4069bae5f80 100644 --- a/src/client/directives/particle.ts +++ b/src/client/directives/particle.ts @@ -1,5 +1,5 @@ -import Particle from '@/components/particle.vue'; -import { popup } from '@/os'; +import Particle from '@client/components/particle.vue'; +import { popup } from '@client/os'; export default { mounted(el, binding, vn) { diff --git a/src/client/directives/tooltip.ts b/src/client/directives/tooltip.ts index 2a0a13663ccaa5cef59538b4b87d665ef5259aab..90247eacb2b44ffa4db04b0f367d61ad28e21a72 100644 --- a/src/client/directives/tooltip.ts +++ b/src/client/directives/tooltip.ts @@ -1,6 +1,6 @@ import { Directive, ref } from 'vue'; -import { isDeviceTouch } from '@/scripts/is-device-touch'; -import { popup } from '@/os'; +import { isDeviceTouch } from '@client/scripts/is-device-touch'; +import { popup } from '@client/os'; const start = isDeviceTouch ? 'touchstart' : 'mouseover'; const end = isDeviceTouch ? 'touchend' : 'mouseleave'; @@ -30,7 +30,7 @@ export default { if (self.text == null) return; const showing = ref(true); - popup(import('@/components/ui/tooltip.vue'), { + popup(import('@client/components/ui/tooltip.vue'), { showing, text: self.text, source: el diff --git a/src/client/directives/user-preview.ts b/src/client/directives/user-preview.ts index 68d9e2816cad717910b0a49cfee39477befcd147..26d6c5efb3d595054f8cae67f070cf1a5437ac33 100644 --- a/src/client/directives/user-preview.ts +++ b/src/client/directives/user-preview.ts @@ -1,6 +1,6 @@ import { Directive, ref } from 'vue'; import autobind from 'autobind-decorator'; -import { popup } from '@/os'; +import { popup } from '@client/os'; export class UserPreview { private el; @@ -24,7 +24,7 @@ export class UserPreview { const showing = ref(true); - popup(import('@/components/user-preview.vue'), { + popup(import('@client/components/user-preview.vue'), { showing, q: this.user, source: this.el diff --git a/src/client/filters/user.ts b/src/client/filters/user.ts index 34ea488d98edd2eb3e1b0bee5e13219b36d58d93..ad4663cb92c59e5e669d2a45e5977fd681381ec4 100644 --- a/src/client/filters/user.ts +++ b/src/client/filters/user.ts @@ -1,6 +1,6 @@ -import getAcct from '../../misc/acct/render'; -import getUserName from '../../misc/get-user-name'; -import { url } from '@/config'; +import getAcct from '@/misc/acct/render'; +import getUserName from '@/misc/get-user-name'; +import { url } from '@client/config'; export const acct = user => { return getAcct(user); diff --git a/src/client/i18n.ts b/src/client/i18n.ts index 6c29ef153ffc469570fd7107dcfc27d82f3579a9..dc2367647412723d4c4b69d3ac5f70ca817023ff 100644 --- a/src/client/i18n.ts +++ b/src/client/i18n.ts @@ -1,6 +1,6 @@ import { markRaw } from 'vue'; -import { locale } from '@/config'; -import { I18n } from '../misc/i18n'; +import { locale } from '@client/config'; +import { I18n } from '@/misc/i18n'; export const i18n = markRaw(new I18n(locale)); diff --git a/src/client/init.ts b/src/client/init.ts index 2a2b6a2f862ba96eee3703ea336e9b47479ae9a0..bacc839c29faec0615cf4b43dcb0db780dbf9c01 100644 --- a/src/client/init.ts +++ b/src/client/init.ts @@ -2,33 +2,33 @@ * Client entry point */ -import '@/style.scss'; +import '@client/style.scss'; import * as Sentry from '@sentry/browser'; import { Integrations } from '@sentry/tracing'; import { createApp, watch } from 'vue'; import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'; -import widgets from '@/widgets'; -import directives from '@/directives'; -import components from '@/components'; -import { version, ui, lang, host } from '@/config'; -import { router } from '@/router'; -import { applyTheme } from '@/scripts/theme'; -import { isDeviceDarkmode } from '@/scripts/is-device-darkmode'; -import { i18n } from '@/i18n'; -import { stream, dialog, post } from '@/os'; -import * as sound from '@/scripts/sound'; -import { $i, refreshAccount, login, updateAccount, signout } from '@/account'; -import { defaultStore, ColdDeviceStorage } from '@/store'; -import { fetchInstance, instance } from '@/instance'; -import { makeHotkey } from '@/scripts/hotkey'; -import { search } from '@/scripts/search'; -import { isMobile } from '@/scripts/is-mobile'; -import { getThemes } from '@/theme-store'; -import { initializeSw } from '@/scripts/initialize-sw'; -import { reloadChannel } from '@/scripts/unison-reload'; -import { reactionPicker } from '@/scripts/reaction-picker'; +import widgets from '@client/widgets'; +import directives from '@client/directives'; +import components from '@client/components'; +import { version, ui, lang, host } from '@client/config'; +import { router } from '@client/router'; +import { applyTheme } from '@client/scripts/theme'; +import { isDeviceDarkmode } from '@client/scripts/is-device-darkmode'; +import { i18n } from '@client/i18n'; +import { stream, dialog, post } from '@client/os'; +import * as sound from '@client/scripts/sound'; +import { $i, refreshAccount, login, updateAccount, signout } from '@client/account'; +import { defaultStore, ColdDeviceStorage } from '@client/store'; +import { fetchInstance, instance } from '@client/instance'; +import { makeHotkey } from '@client/scripts/hotkey'; +import { search } from '@client/scripts/search'; +import { isMobile } from '@client/scripts/is-mobile'; +import { getThemes } from '@client/theme-store'; +import { initializeSw } from '@client/scripts/initialize-sw'; +import { reloadChannel } from '@client/scripts/unison-reload'; +import { reactionPicker } from '@client/scripts/reaction-picker'; console.info(`Misskey v${version}`); @@ -156,12 +156,12 @@ fetchInstance().then(() => { stream.init($i); const app = createApp(await ( - window.location.search === '?zen' ? import('@/ui/zen.vue') : - !$i ? import('@/ui/visitor.vue') : - ui === 'deck' ? import('@/ui/deck.vue') : - ui === 'desktop' ? import('@/ui/desktop.vue') : - ui === 'chat' ? import('@/ui/chat/index.vue') : - import('@/ui/default.vue') + window.location.search === '?zen' ? import('@client/ui/zen.vue') : + !$i ? import('@client/ui/visitor.vue') : + ui === 'deck' ? import('@client/ui/deck.vue') : + ui === 'desktop' ? import('@client/ui/desktop.vue') : + ui === 'chat' ? import('@client/ui/chat/index.vue') : + import('@client/ui/default.vue') ).then(x => x.default)); if (_DEV_) { @@ -204,7 +204,7 @@ if (splash) { } watch(defaultStore.reactiveState.darkMode, (darkMode) => { - import('@/scripts/theme').then(({ builtinThemes }) => { + import('@client/scripts/theme').then(({ builtinThemes }) => { const themes = builtinThemes.concat(getThemes()); applyTheme(themes.find(x => x.id === (darkMode ? ColdDeviceStorage.get('darkTheme') : ColdDeviceStorage.get('lightTheme')))); }); diff --git a/src/client/os.ts b/src/client/os.ts index 9be45e6c6d40b3af92f7cd9935a0f333bbaf20af..e1707531deeece2e0049d99ecc1f51e98748619c 100644 --- a/src/client/os.ts +++ b/src/client/os.ts @@ -4,13 +4,13 @@ import { Component, defineAsyncComponent, markRaw, reactive, Ref, ref } from 'vu import { EventEmitter } from 'eventemitter3'; import insertTextAtCursor from 'insert-text-at-cursor'; import * as Sentry from '@sentry/browser'; -import Stream from '@/scripts/stream'; -import { apiUrl, debug } from '@/config'; -import MkPostFormDialog from '@/components/post-form-dialog.vue'; -import MkWaitingDialog from '@/components/waiting-dialog.vue'; -import { resolve } from '@/router'; -import { $i } from '@/account'; -import { defaultStore } from '@/store'; +import Stream from '@client/scripts/stream'; +import { apiUrl, debug } from '@client/config'; +import MkPostFormDialog from '@client/components/post-form-dialog.vue'; +import MkWaitingDialog from '@client/components/waiting-dialog.vue'; +import { resolve } from '@client/router'; +import { $i } from '@client/account'; +import { defaultStore } from '@client/store'; export const stream = markRaw(new Stream()); @@ -196,7 +196,7 @@ export async function popup(component: Component | typeof import('*.vue') | Prom export function pageWindow(path: string) { const { component, props } = resolve(path); - popup(import('@/components/page-window.vue'), { + popup(import('@client/components/page-window.vue'), { initialPath: path, initialComponent: markRaw(component), initialProps: props, @@ -205,7 +205,7 @@ export function pageWindow(path: string) { export function dialog(props: Record<string, any>) { return new Promise((resolve, reject) => { - popup(import('@/components/dialog.vue'), props, { + popup(import('@client/components/dialog.vue'), props, { done: result => { resolve(result ? result : { canceled: true }); }, @@ -219,7 +219,7 @@ export function success() { setTimeout(() => { showing.value = false; }, 1000); - popup(import('@/components/waiting-dialog.vue'), { + popup(import('@client/components/waiting-dialog.vue'), { success: true, showing: showing }, { @@ -231,7 +231,7 @@ export function success() { export function waiting() { return new Promise((resolve, reject) => { const showing = ref(true); - popup(import('@/components/waiting-dialog.vue'), { + popup(import('@client/components/waiting-dialog.vue'), { success: false, showing: showing }, { @@ -242,7 +242,7 @@ export function waiting() { export function form(title, form) { return new Promise((resolve, reject) => { - popup(import('@/components/form-dialog.vue'), { title, form }, { + popup(import('@client/components/form-dialog.vue'), { title, form }, { done: result => { resolve(result); }, @@ -252,7 +252,7 @@ export function form(title, form) { export async function selectUser() { return new Promise((resolve, reject) => { - popup(import('@/components/user-select-dialog.vue'), {}, { + popup(import('@client/components/user-select-dialog.vue'), {}, { ok: user => { resolve(user); }, @@ -262,7 +262,7 @@ export async function selectUser() { export async function selectDriveFile(multiple: boolean) { return new Promise((resolve, reject) => { - popup(import('@/components/drive-select-dialog.vue'), { + popup(import('@client/components/drive-select-dialog.vue'), { type: 'file', multiple }, { @@ -277,7 +277,7 @@ export async function selectDriveFile(multiple: boolean) { export async function selectDriveFolder(multiple: boolean) { return new Promise((resolve, reject) => { - popup(import('@/components/drive-select-dialog.vue'), { + popup(import('@client/components/drive-select-dialog.vue'), { type: 'folder', multiple }, { @@ -292,7 +292,7 @@ export async function selectDriveFolder(multiple: boolean) { export async function pickEmoji(src?: HTMLElement, opts) { return new Promise((resolve, reject) => { - popup(import('@/components/emoji-picker-dialog.vue'), { + popup(import('@client/components/emoji-picker-dialog.vue'), { src, ...opts }, { @@ -342,7 +342,7 @@ export async function openEmojiPicker(src?: HTMLElement, opts, initialTextarea: characterData: false, }); - openingEmojiPicker = await popup(import('@/components/emoji-picker-window.vue'), { + openingEmojiPicker = await popup(import('@client/components/emoji-picker-window.vue'), { src, ...opts }, { @@ -360,7 +360,7 @@ export async function openEmojiPicker(src?: HTMLElement, opts, initialTextarea: export function modalMenu(items: any[], src?: HTMLElement, options?: { align?: string; viaKeyboard?: boolean }) { return new Promise((resolve, reject) => { let dispose; - popup(import('@/components/ui/modal-menu.vue'), { + popup(import('@client/components/ui/modal-menu.vue'), { items, src, align: options?.align, @@ -380,7 +380,7 @@ export function contextMenu(items: any[], ev: MouseEvent) { ev.preventDefault(); return new Promise((resolve, reject) => { let dispose; - popup(import('@/components/ui/context-menu.vue'), { + popup(import('@client/components/ui/context-menu.vue'), { items, ev, }, { diff --git a/src/client/pages/_error_.vue b/src/client/pages/_error_.vue index 29a62d72ba76e254a5c32c582f3eff9605700865..b31791558935d7492d3a9fe50e3d6bad888941b4 100644 --- a/src/client/pages/_error_.vue +++ b/src/client/pages/_error_.vue @@ -13,7 +13,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; -import MkButton from '@/components/ui/button.vue'; +import MkButton from '@client/components/ui/button.vue'; export default defineComponent({ components: { diff --git a/src/client/pages/_loading_.vue b/src/client/pages/_loading_.vue index 05c6af1cd7bf27ba2d6a4ce5fed014d4e7ad31b2..34ecaf9b33fb1cde3980bd142018cca6b629682d 100644 --- a/src/client/pages/_loading_.vue +++ b/src/client/pages/_loading_.vue @@ -4,7 +4,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({}); </script> diff --git a/src/client/pages/about-misskey.vue b/src/client/pages/about-misskey.vue index a52678e3cdcb773e7df956a023976a848200eef9..2d1da88fa141393547a5ea803b63e6629a7aa91d 100644 --- a/src/client/pages/about-misskey.vue +++ b/src/client/pages/about-misskey.vue @@ -55,14 +55,14 @@ import { defineComponent } from 'vue'; import { faInfoCircle, faCode, faLanguage, faHandHoldingMedical, } from '@fortawesome/free-solid-svg-icons'; import VanillaTilt from 'vanilla-tilt'; -import { version } from '@/config'; -import FormLink from '@/components/form/link.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormKeyValueView from '@/components/form/key-value-view.vue'; -import MkLink from '@/components/link.vue'; -import { physics } from '@/scripts/physics.ts'; -import * as os from '@/os'; +import { version } from '@client/config'; +import FormLink from '@client/components/form/link.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormKeyValueView from '@client/components/form/key-value-view.vue'; +import MkLink from '@client/components/link.vue'; +import { physics } from '@client/scripts/physics.ts'; +import * as os from '@client/os'; const patrons = [ 'Satsuki Yanagi', diff --git a/src/client/pages/about.vue b/src/client/pages/about.vue index 6ec74bc9623aa826cd26beddcd9e27f319ec8e7e..911fc0bc629d3444cff22972154d58aa7eb278a3 100644 --- a/src/client/pages/about.vue +++ b/src/client/pages/about.vue @@ -41,13 +41,13 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faInfoCircle } from '@fortawesome/free-solid-svg-icons'; -import { version, instanceName } from '@/config'; -import FormLink from '@/components/form/link.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormKeyValueView from '@/components/form/key-value-view.vue'; -import * as os from '@/os'; -import number from '@/filters/number'; +import { version, instanceName } from '@client/config'; +import FormLink from '@client/components/form/link.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormKeyValueView from '@client/components/form/key-value-view.vue'; +import * as os from '@client/os'; +import number from '@client/filters/number'; export default defineComponent({ components: { diff --git a/src/client/pages/advanced-theme-editor.vue b/src/client/pages/advanced-theme-editor.vue index 8326c5529c2e18fc1aa8bfba1e9c392b88eed57e..fb00c8c8ac7648d5934e33fe47df52eb6171d933 100644 --- a/src/client/pages/advanced-theme-editor.vue +++ b/src/client/pages/advanced-theme-editor.vue @@ -96,19 +96,19 @@ import { faPalette, faChevronDown, faKeyboard } from '@fortawesome/free-solid-sv import * as JSON5 from 'json5'; import { toUnicode } from 'punycode'; -import MkRadio from '@/components/ui/radio.vue'; -import MkButton from '@/components/ui/button.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkTextarea from '@/components/ui/textarea.vue'; -import MkSelect from '@/components/ui/select.vue'; -import MkSample from '@/components/sample.vue'; +import MkRadio from '@client/components/ui/radio.vue'; +import MkButton from '@client/components/ui/button.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkTextarea from '@client/components/ui/textarea.vue'; +import MkSelect from '@client/components/ui/select.vue'; +import MkSample from '@client/components/sample.vue'; -import { convertToMisskeyTheme, ThemeValue, convertToViewModel, ThemeViewModel } from '@/scripts/theme-editor'; -import { Theme, applyTheme, lightTheme, darkTheme, themeProps, validateTheme } from '@/scripts/theme'; -import { host } from '@/config'; -import * as os from '@/os'; -import { ColdDeviceStorage } from '@/store'; -import { addTheme } from '@/theme-store'; +import { convertToMisskeyTheme, ThemeValue, convertToViewModel, ThemeViewModel } from '@client/scripts/theme-editor'; +import { Theme, applyTheme, lightTheme, darkTheme, themeProps, validateTheme } from '@client/scripts/theme'; +import { host } from '@client/config'; +import * as os from '@client/os'; +import { ColdDeviceStorage } from '@client/store'; +import { addTheme } from '@client/theme-store'; export default defineComponent({ components: { diff --git a/src/client/pages/announcements.vue b/src/client/pages/announcements.vue index 4fbb3475637bbaead8decb7764509f947195047a..7c8ab28d8e0141c72fe6c8deff697ee4d2eff65a 100644 --- a/src/client/pages/announcements.vue +++ b/src/client/pages/announcements.vue @@ -18,9 +18,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faCheck, faBroadcastTower } from '@fortawesome/free-solid-svg-icons'; -import MkPagination from '@/components/ui/pagination.vue'; -import MkButton from '@/components/ui/button.vue'; -import * as os from '@/os'; +import MkPagination from '@client/components/ui/pagination.vue'; +import MkButton from '@client/components/ui/button.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/api-console.vue b/src/client/pages/api-console.vue index dd5cacaeec77652932a17ce23dfd39c710bf336d..f5b4dceb2622d5524be5b071c82e37c85715e8d5 100644 --- a/src/client/pages/api-console.vue +++ b/src/client/pages/api-console.vue @@ -27,11 +27,11 @@ import { defineComponent } from 'vue'; import { faTerminal, faPaperPlane } from '@fortawesome/free-solid-svg-icons'; import * as JSON5 from 'json5'; -import MkButton from '@/components/ui/button.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkTextarea from '@/components/ui/textarea.vue'; -import MkSwitch from '@/components/ui/switch.vue'; -import * as os from '@/os'; +import MkButton from '@client/components/ui/button.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkTextarea from '@client/components/ui/textarea.vue'; +import MkSwitch from '@client/components/ui/switch.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/auth.form.vue b/src/client/pages/auth.form.vue index 8b2adc3e07b509fabfc9c7f11820d6a2ffa313a4..10c466c73c1dff7e1ddce4e1e93ee62d70c9779d 100644 --- a/src/client/pages/auth.form.vue +++ b/src/client/pages/auth.form.vue @@ -21,8 +21,8 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import MkButton from '@/components/ui/button.vue'; -import * as os from '@/os'; +import MkButton from '@client/components/ui/button.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/auth.vue b/src/client/pages/auth.vue index 522bd4cdf852e95c1220f0ffefed60c7c516a318..3656d48c424ae65c66ca968a95af1f7135ec8bfd 100755 --- a/src/client/pages/auth.vue +++ b/src/client/pages/auth.vue @@ -31,9 +31,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; import XForm from './auth.form.vue'; -import MkSignin from '@/components/signin.vue'; -import * as os from '@/os'; -import { login } from '@/account'; +import MkSignin from '@client/components/signin.vue'; +import * as os from '@client/os'; +import { login } from '@client/account'; export default defineComponent({ components: { diff --git a/src/client/pages/channel-editor.vue b/src/client/pages/channel-editor.vue index 983e76d500ef8373028b518b61bb9b342761d01d..f5b8a66a6f87fa8c43293e1903c5da9748b6d107 100644 --- a/src/client/pages/channel-editor.vue +++ b/src/client/pages/channel-editor.vue @@ -25,11 +25,11 @@ import { computed, defineComponent } from 'vue'; import { faPlus, faSatelliteDish } from '@fortawesome/free-solid-svg-icons'; import { faSave, faTrashAlt } from '@fortawesome/free-regular-svg-icons'; -import MkTextarea from '@/components/ui/textarea.vue'; -import MkButton from '@/components/ui/button.vue'; -import MkInput from '@/components/ui/input.vue'; -import { selectFile } from '@/scripts/select-file'; -import * as os from '@/os'; +import MkTextarea from '@client/components/ui/textarea.vue'; +import MkButton from '@client/components/ui/button.vue'; +import MkInput from '@client/components/ui/input.vue'; +import { selectFile } from '@client/scripts/select-file'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/channel.vue b/src/client/pages/channel.vue index 93044f4ab4242e7138672b221ed847822b7ab03c..d2ddebb4a8efe1a2f346fca434411ceb933d8f76 100644 --- a/src/client/pages/channel.vue +++ b/src/client/pages/channel.vue @@ -30,11 +30,11 @@ import { computed, defineComponent } from 'vue'; import { faSatelliteDish, faUsers, faPencilAlt, faAngleUp, faAngleDown } from '@fortawesome/free-solid-svg-icons'; import { } from '@fortawesome/free-regular-svg-icons'; -import MkContainer from '@/components/ui/container.vue'; -import XPostForm from '@/components/post-form.vue'; -import XTimeline from '@/components/timeline.vue'; -import XChannelFollowButton from '@/components/channel-follow-button.vue'; -import * as os from '@/os'; +import MkContainer from '@client/components/ui/container.vue'; +import XPostForm from '@client/components/post-form.vue'; +import XTimeline from '@client/components/timeline.vue'; +import XChannelFollowButton from '@client/components/channel-follow-button.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/channels.vue b/src/client/pages/channels.vue index fcedc28db12fb02e1a561063abf1ba4bc9ebceb3..d75c4e5ba65c55be1a6d0ee617ac5bb2283e511a 100644 --- a/src/client/pages/channels.vue +++ b/src/client/pages/channels.vue @@ -35,10 +35,10 @@ import { defineComponent } from 'vue'; import { faSatelliteDish, faPlus, faEdit, faFireAlt } from '@fortawesome/free-solid-svg-icons'; import { faHeart } from '@fortawesome/free-regular-svg-icons'; -import MkChannelPreview from '@/components/channel-preview.vue'; -import MkPagination from '@/components/ui/pagination.vue'; -import MkButton from '@/components/ui/button.vue'; -import MkTab from '@/components/tab.vue'; +import MkChannelPreview from '@client/components/channel-preview.vue'; +import MkPagination from '@client/components/ui/pagination.vue'; +import MkButton from '@client/components/ui/button.vue'; +import MkTab from '@client/components/tab.vue'; export default defineComponent({ components: { diff --git a/src/client/pages/clip.vue b/src/client/pages/clip.vue index 2b61813fd84912ec322b272941dd74624487993c..c6e46a98341cb70871f57ecd7d9a087133e6947f 100644 --- a/src/client/pages/clip.vue +++ b/src/client/pages/clip.vue @@ -16,10 +16,10 @@ <script lang="ts"> import { computed, defineComponent } from 'vue'; import { faEllipsisH, faPaperclip, faPencilAlt, faTrashAlt } from '@fortawesome/free-solid-svg-icons'; -import MkContainer from '@/components/ui/container.vue'; -import XPostForm from '@/components/post-form.vue'; -import XNotes from '@/components/notes.vue'; -import * as os from '@/os'; +import MkContainer from '@client/components/ui/container.vue'; +import XPostForm from '@client/components/post-form.vue'; +import XNotes from '@client/components/notes.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/doc.vue b/src/client/pages/doc.vue index ed4eae4d02e3e0ab3f7f38a63faeec6207e95e47..7155cc156375f0d4b63db906787b2ae4df5382c7 100644 --- a/src/client/pages/doc.vue +++ b/src/client/pages/doc.vue @@ -13,8 +13,8 @@ import { computed, defineComponent } from 'vue'; import { faQuestionCircle } from '@fortawesome/free-solid-svg-icons' import MarkdownIt from 'markdown-it'; import MarkdownItAnchor from 'markdown-it-anchor'; -import { url, lang } from '@/config'; -import MkLink from '@/components/link.vue'; +import { url, lang } from '@client/config'; +import MkLink from '@client/components/link.vue'; const markdown = MarkdownIt({ html: true diff --git a/src/client/pages/docs.vue b/src/client/pages/docs.vue index 59d23efcb7272c4c2eda61a18b4dbaccf5496f6e..f57be3d32329e70533eac70dc67949edb11c308b 100644 --- a/src/client/pages/docs.vue +++ b/src/client/pages/docs.vue @@ -15,7 +15,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faQuestionCircle } from '@fortawesome/free-solid-svg-icons' -import { url, lang } from '@/config'; +import { url, lang } from '@client/config'; export default defineComponent({ data() { diff --git a/src/client/pages/drive.vue b/src/client/pages/drive.vue index 63b0e7ba7dd7a46f2150947e26f8d0007f4087b4..754581a8b6ac38d98a9071ddd291e56e98e07f6f 100644 --- a/src/client/pages/drive.vue +++ b/src/client/pages/drive.vue @@ -7,8 +7,8 @@ <script lang="ts"> import { computed, defineComponent } from 'vue'; import { faCloud, faEllipsisH } from '@fortawesome/free-solid-svg-icons'; -import XDrive from '@/components/drive.vue'; -import * as os from '@/os'; +import XDrive from '@client/components/drive.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/explore.vue b/src/client/pages/explore.vue index b78a3707efe6a3aaf8177334711fe2285dc4b4e9..da2eaffb84a54d6208e1884ca8b30c8d39bffbdb 100644 --- a/src/client/pages/explore.vue +++ b/src/client/pages/explore.vue @@ -70,11 +70,11 @@ import { computed, defineComponent } from 'vue'; import { faChartLine, faPlus, faHashtag, faRocket, faSearch } from '@fortawesome/free-solid-svg-icons'; import { faBookmark, faCommentAlt } from '@fortawesome/free-regular-svg-icons'; -import XUserList from '@/components/user-list.vue'; -import MkFolder from '@/components/ui/folder.vue'; -import MkInput from '@/components/ui/input.vue'; -import number from '@/filters/number'; -import * as os from '@/os'; +import XUserList from '@client/components/user-list.vue'; +import MkFolder from '@client/components/ui/folder.vue'; +import MkInput from '@client/components/ui/input.vue'; +import number from '@client/filters/number'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/favorites.vue b/src/client/pages/favorites.vue index 35c5942398580cc9e36fc226c508214eed874b28..c87855484d12696fd14afb68b9838ea4e9626868 100644 --- a/src/client/pages/favorites.vue +++ b/src/client/pages/favorites.vue @@ -7,9 +7,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faStar } from '@fortawesome/free-solid-svg-icons'; -import Progress from '@/scripts/loading'; -import XNotes from '@/components/notes.vue'; -import * as os from '@/os'; +import Progress from '@client/scripts/loading'; +import XNotes from '@client/components/notes.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/featured.vue b/src/client/pages/featured.vue index c1e612ef8d17360891aa87c231d46f2bf951afeb..3866c4b4890bb1093d0b1d49229fa8a51f4f99bc 100644 --- a/src/client/pages/featured.vue +++ b/src/client/pages/featured.vue @@ -7,8 +7,8 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faFireAlt } from '@fortawesome/free-solid-svg-icons'; -import Progress from '@/scripts/loading'; -import XNotes from '@/components/notes.vue'; +import Progress from '@client/scripts/loading'; +import XNotes from '@client/components/notes.vue'; export default defineComponent({ components: { diff --git a/src/client/pages/follow-requests.vue b/src/client/pages/follow-requests.vue index 04d739088f3f853f857597069f7c5f838cb9bf5f..64e6fa03e6a285d310163da9deb579649dd00069 100644 --- a/src/client/pages/follow-requests.vue +++ b/src/client/pages/follow-requests.vue @@ -32,9 +32,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faUserClock, faCheck, faTimes } from '@fortawesome/free-solid-svg-icons'; -import MkPagination from '@/components/ui/pagination.vue'; +import MkPagination from '@client/components/ui/pagination.vue'; import { userPage, acct } from '../filters/user'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/follow.vue b/src/client/pages/follow.vue index f999f48c5dad10b25fb225db9f9f51ff5eb4192b..f5afdf0892a6c91a0a2d387535b0e14cbc142d11 100644 --- a/src/client/pages/follow.vue +++ b/src/client/pages/follow.vue @@ -5,8 +5,8 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import * as os from '@/os'; -import parseAcct from '../../misc/acct/parse'; +import * as os from '@client/os'; +import parseAcct from '@/misc/acct/parse'; export default defineComponent({ created() { diff --git a/src/client/pages/instance/abuses.vue b/src/client/pages/instance/abuses.vue index 030f5ae15772f01ed33d250c2d55c9f7dbe08eeb..d7d7697ebd95bbed0633ff31343bf4ea4dfeaca8 100644 --- a/src/client/pages/instance/abuses.vue +++ b/src/client/pages/instance/abuses.vue @@ -65,13 +65,13 @@ import { defineComponent } from 'vue'; import { faPlus, faUsers, faSearch, faBookmark, faMicrophoneSlash, faExclamationCircle } from '@fortawesome/free-solid-svg-icons'; import { faSnowflake, faBookmark as farBookmark } from '@fortawesome/free-regular-svg-icons'; -import parseAcct from '../../../misc/acct/parse'; -import MkButton from '@/components/ui/button.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkSelect from '@/components/ui/select.vue'; -import MkPagination from '@/components/ui/pagination.vue'; +import parseAcct from '@/misc/acct/parse'; +import MkButton from '@client/components/ui/button.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkSelect from '@client/components/ui/select.vue'; +import MkPagination from '@client/components/ui/pagination.vue'; import { acct } from '../../filters/user'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/instance/announcements.vue b/src/client/pages/instance/announcements.vue index b859aae2ec4ff02c80c33c351a9119094956f413..15e5f389bcf76b8eb73d37f81d327d0e87b22307 100644 --- a/src/client/pages/instance/announcements.vue +++ b/src/client/pages/instance/announcements.vue @@ -30,10 +30,10 @@ import { defineComponent } from 'vue'; import { faBroadcastTower, faPlus } from '@fortawesome/free-solid-svg-icons'; import { faSave, faTrashAlt } from '@fortawesome/free-regular-svg-icons'; -import MkButton from '@/components/ui/button.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkTextarea from '@/components/ui/textarea.vue'; -import * as os from '@/os'; +import MkButton from '@client/components/ui/button.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkTextarea from '@client/components/ui/textarea.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/instance/emoji-edit-dialog.vue b/src/client/pages/instance/emoji-edit-dialog.vue index 179057d51957609feeccc0753e2e110d58ac542f..34eca47b4e18147595510db3d1e23bfe1db38189 100644 --- a/src/client/pages/instance/emoji-edit-dialog.vue +++ b/src/client/pages/instance/emoji-edit-dialog.vue @@ -24,10 +24,10 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faTrashAlt } from '@fortawesome/free-regular-svg-icons'; -import XModalWindow from '@/components/ui/modal-window.vue'; -import MkButton from '@/components/ui/button.vue'; -import MkInput from '@/components/ui/input.vue'; -import * as os from '@/os'; +import XModalWindow from '@client/components/ui/modal-window.vue'; +import MkButton from '@client/components/ui/button.vue'; +import MkInput from '@client/components/ui/input.vue'; +import * as os from '@client/os'; import { unique } from '../../../prelude/array'; export default defineComponent({ diff --git a/src/client/pages/instance/emojis.vue b/src/client/pages/instance/emojis.vue index 6a51813bb268f4e31e6dcaa496a200bb532172dc..01e207f491bbf56a16b284035023fc8b244496c3 100644 --- a/src/client/pages/instance/emojis.vue +++ b/src/client/pages/instance/emojis.vue @@ -53,12 +53,12 @@ import { computed, defineComponent } from 'vue'; import { faPlus, faSave, faSearch } from '@fortawesome/free-solid-svg-icons'; import { faTrashAlt, faLaugh } from '@fortawesome/free-regular-svg-icons'; -import MkButton from '@/components/ui/button.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkPagination from '@/components/ui/pagination.vue'; -import MkTab from '@/components/tab.vue'; -import { selectFile } from '@/scripts/select-file'; -import * as os from '@/os'; +import MkButton from '@client/components/ui/button.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkPagination from '@client/components/ui/pagination.vue'; +import MkTab from '@client/components/tab.vue'; +import { selectFile } from '@client/scripts/select-file'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/instance/federation.vue b/src/client/pages/instance/federation.vue index fe8ce8c2f4b09be8a957fa3444a94b749e94cfb5..ba452c54581b4717ec212af8b01c63d62346fcc2 100644 --- a/src/client/pages/instance/federation.vue +++ b/src/client/pages/instance/federation.vue @@ -61,12 +61,12 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faGlobe, faCircle, faExchangeAlt, faCaretDown, faCaretUp, faTrafficLight } from '@fortawesome/free-solid-svg-icons'; -import MkButton from '@/components/ui/button.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkSelect from '@/components/ui/select.vue'; -import MkPagination from '@/components/ui/pagination.vue'; +import MkButton from '@client/components/ui/button.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkSelect from '@client/components/ui/select.vue'; +import MkPagination from '@client/components/ui/pagination.vue'; import MkInstanceInfo from './instance.vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/instance/file-dialog.vue b/src/client/pages/instance/file-dialog.vue index 87fcdb59ef1a00b979379c9344b99e605a74c619..85c03e3dcea58f41710f471d7c34939e44ce6790 100644 --- a/src/client/pages/instance/file-dialog.vue +++ b/src/client/pages/instance/file-dialog.vue @@ -38,13 +38,13 @@ import { computed, defineComponent } from 'vue'; import { faTimes, faBookmark, faKey, faSync, faMicrophoneSlash, faExternalLinkSquareAlt } from '@fortawesome/free-solid-svg-icons'; import { faSnowflake, faTrashAlt, faBookmark as farBookmark } from '@fortawesome/free-regular-svg-icons'; -import MkButton from '@/components/ui/button.vue'; -import MkSwitch from '@/components/ui/switch.vue'; -import XModalWindow from '@/components/ui/modal-window.vue'; -import MkDriveFileThumbnail from '@/components/drive-file-thumbnail.vue'; -import Progress from '@/scripts/loading'; -import bytes from '@/filters/bytes'; -import * as os from '@/os'; +import MkButton from '@client/components/ui/button.vue'; +import MkSwitch from '@client/components/ui/switch.vue'; +import XModalWindow from '@client/components/ui/modal-window.vue'; +import MkDriveFileThumbnail from '@client/components/drive-file-thumbnail.vue'; +import Progress from '@client/scripts/loading'; +import bytes from '@client/filters/bytes'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/instance/files.vue b/src/client/pages/instance/files.vue index f19e3fcd4516935fb9ec9dbd8d7ec45a2ba14671..aa667137899a4c1481a7758b95a55e483a23044d 100644 --- a/src/client/pages/instance/files.vue +++ b/src/client/pages/instance/files.vue @@ -64,13 +64,13 @@ import { defineComponent } from 'vue'; import { faCloud, faSearch } from '@fortawesome/free-solid-svg-icons'; import { faTrashAlt } from '@fortawesome/free-regular-svg-icons'; -import MkButton from '@/components/ui/button.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkSelect from '@/components/ui/select.vue'; -import MkPagination from '@/components/ui/pagination.vue'; -import MkDriveFileThumbnail from '@/components/drive-file-thumbnail.vue'; -import bytes from '@/filters/bytes'; -import * as os from '@/os'; +import MkButton from '@client/components/ui/button.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkSelect from '@client/components/ui/select.vue'; +import MkPagination from '@client/components/ui/pagination.vue'; +import MkDriveFileThumbnail from '@client/components/drive-file-thumbnail.vue'; +import bytes from '@client/filters/bytes'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/instance/index.metrics.vue b/src/client/pages/instance/index.metrics.vue index 9d990c2244a72ec5144d373b80423d4d95fc5376..b467ce06f570ccfa061f1c5dc399f2e69c118115 100644 --- a/src/client/pages/instance/index.metrics.vue +++ b/src/client/pages/instance/index.metrics.vue @@ -103,13 +103,13 @@ import { defineComponent, markRaw } from 'vue'; import { faPlay, faPause, faDatabase, faServer, faExchangeAlt, faMicrochip, faHdd, faStream, faTrashAlt, faInfoCircle, faExclamationTriangle, faTachometerAlt, faHeartbeat, faClipboardList } from '@fortawesome/free-solid-svg-icons'; import Chart from 'chart.js'; -import MkButton from '@/components/ui/button.vue'; -import MkSelect from '@/components/ui/select.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkContainer from '@/components/ui/container.vue'; -import MkFolder from '@/components/ui/folder.vue'; +import MkButton from '@client/components/ui/button.vue'; +import MkSelect from '@client/components/ui/select.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkContainer from '@client/components/ui/container.vue'; +import MkFolder from '@client/components/ui/folder.vue'; import MkwFederation from '../../widgets/federation.vue'; -import { version, url } from '@/config'; +import { version, url } from '@client/config'; import bytes from '../../filters/bytes'; import number from '../../filters/number'; import MkInstanceInfo from './instance.vue'; @@ -121,7 +121,7 @@ const alpha = (hex, a) => { const b = parseInt(result[3], 16); return `rgba(${r}, ${g}, ${b}, ${a})`; }; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/instance/index.vue b/src/client/pages/instance/index.vue index e519ce743e2f0547d905e139357d78e599880d0a..5a35309ed4d0e329d45d9b11d97b832ea7d235b0 100644 --- a/src/client/pages/instance/index.vue +++ b/src/client/pages/instance/index.vue @@ -58,18 +58,18 @@ import { computed, defineComponent, markRaw } from 'vue'; import { faPlay, faPause, faDatabase, faServer, faExchangeAlt, faMicrochip, faHdd, faStream, faTrashAlt, faInfoCircle, faExclamationTriangle, faTachometerAlt, faHeartbeat, faClipboardList } from '@fortawesome/free-solid-svg-icons'; import VueJsonPretty from 'vue-json-pretty'; -import MkInstanceStats from '@/components/instance-stats.vue'; -import MkButton from '@/components/ui/button.vue'; -import MkSelect from '@/components/ui/select.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkContainer from '@/components/ui/container.vue'; -import MkFolder from '@/components/ui/folder.vue'; -import { version, url } from '@/config'; +import MkInstanceStats from '@client/components/instance-stats.vue'; +import MkButton from '@client/components/ui/button.vue'; +import MkSelect from '@client/components/ui/select.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkContainer from '@client/components/ui/container.vue'; +import MkFolder from '@client/components/ui/folder.vue'; +import { version, url } from '@client/config'; import bytes from '../../filters/bytes'; import number from '../../filters/number'; import MkInstanceInfo from './instance.vue'; import XMetrics from './index.metrics.vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/instance/instance.vue b/src/client/pages/instance/instance.vue index bcf18cfff0b9ad99ea62ef74634fe43017297637..118e8eae6e0500c60147b1197286fd54e12eecd2 100644 --- a/src/client/pages/instance/instance.vue +++ b/src/client/pages/instance/instance.vue @@ -126,15 +126,15 @@ import { defineComponent } from 'vue'; import Chart from 'chart.js'; import { faTimes, faCrosshairs, faCloudDownloadAlt, faCloudUploadAlt, faUsers, faPencilAlt, faFileImage, faDatabase, faTrafficLight, faLongArrowAltUp, faLongArrowAltDown, faMinusCircle, faTrashAlt } from '@fortawesome/free-solid-svg-icons'; -import XModalWindow from '@/components/ui/modal-window.vue'; -import MkUsersDialog from '@/components/users-dialog.vue'; -import MkSelect from '@/components/ui/select.vue'; -import MkButton from '@/components/ui/button.vue'; -import MkSwitch from '@/components/ui/switch.vue'; -import MkInfo from '@/components/ui/info.vue'; +import XModalWindow from '@client/components/ui/modal-window.vue'; +import MkUsersDialog from '@client/components/users-dialog.vue'; +import MkSelect from '@client/components/ui/select.vue'; +import MkButton from '@client/components/ui/button.vue'; +import MkSwitch from '@client/components/ui/switch.vue'; +import MkInfo from '@client/components/ui/info.vue'; import bytes from '../../filters/bytes'; import number from '../../filters/number'; -import * as os from '@/os'; +import * as os from '@client/os'; const chartLimit = 90; const sum = (...arr) => arr.reduce((r, a) => r.map((b, i) => a[i] + b)); diff --git a/src/client/pages/instance/logs.vue b/src/client/pages/instance/logs.vue index 73862e9da51fa07ebe47a7393cccd7f71d9759ea..de1e81750f0c4600060c6afe380d9441c4b48b0a 100644 --- a/src/client/pages/instance/logs.vue +++ b/src/client/pages/instance/logs.vue @@ -32,11 +32,11 @@ import { defineComponent } from 'vue'; import { faStream } from '@fortawesome/free-solid-svg-icons'; import { faTrashAlt } from '@fortawesome/free-regular-svg-icons'; -import MkButton from '@/components/ui/button.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkSelect from '@/components/ui/select.vue'; -import MkTextarea from '@/components/ui/textarea.vue'; -import * as os from '@/os'; +import MkButton from '@client/components/ui/button.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkSelect from '@client/components/ui/select.vue'; +import MkTextarea from '@client/components/ui/textarea.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/instance/queue.chart.vue b/src/client/pages/instance/queue.chart.vue index 2a8259b9df881a21a409bd80e878880177fec63a..0eb70debfba8ce117df9875616f3427375f40e66 100644 --- a/src/client/pages/instance/queue.chart.vue +++ b/src/client/pages/instance/queue.chart.vue @@ -36,7 +36,7 @@ const alpha = (hex, a) => { const b = parseInt(result[3], 16); return `rgba(${r}, ${g}, ${b}, ${a})`; }; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ props: { diff --git a/src/client/pages/instance/queue.vue b/src/client/pages/instance/queue.vue index b8ad875683d9ca4715ad615c786a8fce74381118..17c8430a019ac171e7b9b015e6765b45a41abe8c 100644 --- a/src/client/pages/instance/queue.vue +++ b/src/client/pages/instance/queue.vue @@ -18,9 +18,9 @@ import { defineComponent } from 'vue'; import { faExchangeAlt } from '@fortawesome/free-solid-svg-icons'; import { faTrashAlt } from '@fortawesome/free-regular-svg-icons'; -import MkButton from '@/components/ui/button.vue'; +import MkButton from '@client/components/ui/button.vue'; import XQueue from './queue.chart.vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/instance/relays.vue b/src/client/pages/instance/relays.vue index f1c98355d304c7b05fccfcc806f4df23e57a2443..ef11366a144bece6e0b4917243952db1308cbfc5 100644 --- a/src/client/pages/instance/relays.vue +++ b/src/client/pages/instance/relays.vue @@ -25,9 +25,9 @@ import { defineComponent } from 'vue'; import { faPlus, faProjectDiagram } from '@fortawesome/free-solid-svg-icons'; import { faSave, faTrashAlt } from '@fortawesome/free-regular-svg-icons'; -import MkButton from '@/components/ui/button.vue'; -import MkInput from '@/components/ui/input.vue'; -import * as os from '@/os'; +import MkButton from '@client/components/ui/button.vue'; +import MkInput from '@client/components/ui/input.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/instance/settings.vue b/src/client/pages/instance/settings.vue index cea621ba2d953a4b0e963e9c37b9112e7a110c4f..891eba3cf04f0b19262ef05f0d5ac63fddd09449 100644 --- a/src/client/pages/instance/settings.vue +++ b/src/client/pages/instance/settings.vue @@ -252,15 +252,15 @@ import { defineComponent, defineAsyncComponent } from 'vue'; import { faPencilAlt, faShareAlt, faGhost, faCog, faPlus, faCloud, faInfoCircle, faBan, faSave, faServer, faLink, faThumbtack, faUser, faShieldAlt, faKey, faBolt, faArchway } from '@fortawesome/free-solid-svg-icons'; import { faTrashAlt, faEnvelope } from '@fortawesome/free-regular-svg-icons'; import { faTwitter, faDiscord, faGithub } from '@fortawesome/free-brands-svg-icons'; -import MkButton from '@/components/ui/button.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkTextarea from '@/components/ui/textarea.vue'; -import MkSwitch from '@/components/ui/switch.vue'; -import MkInfo from '@/components/ui/info.vue'; -import { url } from '@/config'; -import getAcct from '../../../misc/acct/render'; -import * as os from '@/os'; -import { fetchInstance } from '@/instance'; +import MkButton from '@client/components/ui/button.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkTextarea from '@client/components/ui/textarea.vue'; +import MkSwitch from '@client/components/ui/switch.vue'; +import MkInfo from '@client/components/ui/info.vue'; +import { url } from '@client/config'; +import getAcct from '@/misc/acct/render'; +import * as os from '@client/os'; +import { fetchInstance } from '@client/instance'; export default defineComponent({ components: { @@ -269,7 +269,7 @@ export default defineComponent({ MkTextarea, MkSwitch, MkInfo, - Captcha: defineAsyncComponent(() => import('@/components/captcha.vue')), + Captcha: defineAsyncComponent(() => import('@client/components/captcha.vue')), }, data() { diff --git a/src/client/pages/instance/user-dialog.vue b/src/client/pages/instance/user-dialog.vue index b690826d27bc9ca762ad6cc2cc9c8e4ac311d20b..fb0e766c5a8a8b4b9cef567eb742db2f1c88e860 100644 --- a/src/client/pages/instance/user-dialog.vue +++ b/src/client/pages/instance/user-dialog.vue @@ -50,12 +50,12 @@ import { computed, defineComponent } from 'vue'; import { faTimes, faBookmark, faKey, faSync, faMicrophoneSlash, faExternalLinkSquareAlt } from '@fortawesome/free-solid-svg-icons'; import { faSnowflake, faTrashAlt, faBookmark as farBookmark } from '@fortawesome/free-regular-svg-icons'; -import MkButton from '@/components/ui/button.vue'; -import MkSwitch from '@/components/ui/switch.vue'; -import XModalWindow from '@/components/ui/modal-window.vue'; -import Progress from '@/scripts/loading'; +import MkButton from '@client/components/ui/button.vue'; +import MkSwitch from '@client/components/ui/switch.vue'; +import XModalWindow from '@client/components/ui/modal-window.vue'; +import Progress from '@client/scripts/loading'; import { acct, userPage } from '../../filters/user'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/instance/users.vue b/src/client/pages/instance/users.vue index b2465991d86c0209979df22f70a6319bff60f5a6..013eed3971d7d887913cc0713fd54e07acc7d9e1 100644 --- a/src/client/pages/instance/users.vue +++ b/src/client/pages/instance/users.vue @@ -82,13 +82,13 @@ import { defineComponent } from 'vue'; import { faPlus, faUsers, faSearch, faBookmark, faMicrophoneSlash } from '@fortawesome/free-solid-svg-icons'; import { faSnowflake, faBookmark as farBookmark } from '@fortawesome/free-regular-svg-icons'; -import parseAcct from '../../../misc/acct/parse'; -import MkButton from '@/components/ui/button.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkSelect from '@/components/ui/select.vue'; -import MkPagination from '@/components/ui/pagination.vue'; +import parseAcct from '@/misc/acct/parse'; +import MkButton from '@client/components/ui/button.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkSelect from '@client/components/ui/select.vue'; +import MkPagination from '@client/components/ui/pagination.vue'; import { acct } from '../../filters/user'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/mentions.vue b/src/client/pages/mentions.vue index 943a0e868e25777b1d544708bd968c895afad215..5bd051453a5d3a828b61c7a953bd1a5161787140 100644 --- a/src/client/pages/mentions.vue +++ b/src/client/pages/mentions.vue @@ -7,8 +7,8 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faAt } from '@fortawesome/free-solid-svg-icons'; -import Progress from '@/scripts/loading'; -import XNotes from '@/components/notes.vue'; +import Progress from '@client/scripts/loading'; +import XNotes from '@client/components/notes.vue'; export default defineComponent({ components: { diff --git a/src/client/pages/messages.vue b/src/client/pages/messages.vue index 60621fcc1d3073e1352b2b7a8378aceba7f4eb4d..02aa9c6fd3b6d44bc19c3593f7811e8d08e50f93 100644 --- a/src/client/pages/messages.vue +++ b/src/client/pages/messages.vue @@ -7,8 +7,8 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faEnvelope } from '@fortawesome/free-solid-svg-icons'; -import Progress from '@/scripts/loading'; -import XNotes from '@/components/notes.vue'; +import Progress from '@client/scripts/loading'; +import XNotes from '@client/components/notes.vue'; export default defineComponent({ components: { diff --git a/src/client/pages/messaging/index.vue b/src/client/pages/messaging/index.vue index afb240c051e9f58e0f8b15a4ba439f7745153b31..c906b968a4bfee45b325ab918ff5d322105b1196 100644 --- a/src/client/pages/messaging/index.vue +++ b/src/client/pages/messaging/index.vue @@ -41,10 +41,10 @@ <script lang="ts"> import { defineAsyncComponent, defineComponent } from 'vue'; import { faUser, faUsers, faComments, faPlus } from '@fortawesome/free-solid-svg-icons'; -import getAcct from '../../../misc/acct/render'; -import MkButton from '@/components/ui/button.vue'; +import getAcct from '@/misc/acct/render'; +import MkButton from '@client/components/ui/button.vue'; import { acct } from '../../filters/user'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/messaging/messaging-room.form.vue b/src/client/pages/messaging/messaging-room.form.vue index 5e675a3f12aba119da2726c376b1a66a973225f0..5826b8d0d23ea6713fdabe9412b0a6bb3ce10142 100644 --- a/src/client/pages/messaging/messaging-room.form.vue +++ b/src/client/pages/messaging/messaging-room.form.vue @@ -26,10 +26,10 @@ import { defineComponent, defineAsyncComponent } from 'vue'; import { faPaperPlane, faPhotoVideo, faLaughSquint } from '@fortawesome/free-solid-svg-icons'; import insertTextAtCursor from 'insert-text-at-cursor'; import * as autosize from 'autosize'; -import { formatTimeString } from '../../../misc/format-time-string'; -import { selectFile } from '@/scripts/select-file'; -import * as os from '@/os'; -import { Autocomplete } from '@/scripts/autocomplete'; +import { formatTimeString } from '@/misc/format-time-string'; +import { selectFile } from '@client/scripts/select-file'; +import * as os from '@client/os'; +import { Autocomplete } from '@client/scripts/autocomplete'; import { throttle } from 'throttle-debounce'; export default defineComponent({ diff --git a/src/client/pages/messaging/messaging-room.message.vue b/src/client/pages/messaging/messaging-room.message.vue index 6d4ed96044c25b372fd7a1421b33b5201e417aab..a6d142bd347767d8f3579057bfcb48ff0e45e3fc 100644 --- a/src/client/pages/messaging/messaging-room.message.vue +++ b/src/client/pages/messaging/messaging-room.message.vue @@ -39,8 +39,8 @@ import { defineComponent } from 'vue'; import { parse } from '../../../mfm/parse'; import { unique } from '../../../prelude/array'; -import MkUrlPreview from '@/components/url-preview.vue'; -import * as os from '@/os'; +import MkUrlPreview from '@client/components/url-preview.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/messaging/messaging-room.vue b/src/client/pages/messaging/messaging-room.vue index 3921a081d1220de4e90b212cd38faa8f59f754e3..8473bb36c20d7c36f80a38124c821d8df0576de3 100644 --- a/src/client/pages/messaging/messaging-room.vue +++ b/src/client/pages/messaging/messaging-room.vue @@ -39,14 +39,14 @@ import { computed, defineComponent } from 'vue'; import { faArrowCircleDown, faFlag, faUsers, faInfoCircle, faEllipsisH, faExternalLinkAlt } from '@fortawesome/free-solid-svg-icons'; import { faWindowMaximize } from '@fortawesome/free-regular-svg-icons'; -import XList from '@/components/date-separated-list.vue'; +import XList from '@client/components/date-separated-list.vue'; import XMessage from './messaging-room.message.vue'; import XForm from './messaging-room.form.vue'; -import parseAcct from '../../../misc/acct/parse'; -import { isBottom, onScrollBottom, scroll } from '@/scripts/scroll'; -import * as os from '@/os'; -import { popout } from '@/scripts/popout'; -import * as sound from '@/scripts/sound'; +import parseAcct from '@/misc/acct/parse'; +import { isBottom, onScrollBottom, scroll } from '@client/scripts/scroll'; +import * as os from '@client/os'; +import { popout } from '@client/scripts/popout'; +import * as sound from '@client/scripts/sound'; const Component = defineComponent({ components: { diff --git a/src/client/pages/mfm-cheat-sheet.vue b/src/client/pages/mfm-cheat-sheet.vue index 0d599e4583dc4d947053fe25492495d5eef72895..4452604e4ed01a6320919b28c40138a1256e43ba 100644 --- a/src/client/pages/mfm-cheat-sheet.vue +++ b/src/client/pages/mfm-cheat-sheet.vue @@ -271,7 +271,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faQuestionCircle } from '@fortawesome/free-regular-svg-icons'; -import MkTextarea from '@/components/ui/textarea.vue'; +import MkTextarea from '@client/components/ui/textarea.vue'; export default defineComponent({ components: { diff --git a/src/client/pages/miauth.vue b/src/client/pages/miauth.vue index 6430588c4665ab4aaad7ce1982b83c8fc7263c0a..39cd832838a306896db734366e9d27cf44be0c48 100644 --- a/src/client/pages/miauth.vue +++ b/src/client/pages/miauth.vue @@ -38,10 +38,10 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import MkSignin from '@/components/signin.vue'; -import MkButton from '@/components/ui/button.vue'; -import * as os from '@/os'; -import { login } from '@/account'; +import MkSignin from '@client/components/signin.vue'; +import MkButton from '@client/components/ui/button.vue'; +import * as os from '@client/os'; +import { login } from '@client/account'; export default defineComponent({ components: { diff --git a/src/client/pages/my-antennas/index.antenna.vue b/src/client/pages/my-antennas/index.antenna.vue index b664af91b5281ba0be493f4486108583c98d4696..d7050d08c46217be5e87180790d9ae304b08021c 100644 --- a/src/client/pages/my-antennas/index.antenna.vue +++ b/src/client/pages/my-antennas/index.antenna.vue @@ -48,13 +48,13 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faSave, faTrash } from '@fortawesome/free-solid-svg-icons'; -import MkButton from '@/components/ui/button.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkTextarea from '@/components/ui/textarea.vue'; -import MkSelect from '@/components/ui/select.vue'; -import MkSwitch from '@/components/ui/switch.vue'; -import getAcct from '../../../misc/acct/render'; -import * as os from '@/os'; +import MkButton from '@client/components/ui/button.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkTextarea from '@client/components/ui/textarea.vue'; +import MkSelect from '@client/components/ui/select.vue'; +import MkSwitch from '@client/components/ui/switch.vue'; +import getAcct from '@/misc/acct/render'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/my-antennas/index.vue b/src/client/pages/my-antennas/index.vue index ebab025b49739281b037d54341a4275274783da6..f4d5f4aad657e7f68074efaaab81d073445c8b2b 100644 --- a/src/client/pages/my-antennas/index.vue +++ b/src/client/pages/my-antennas/index.vue @@ -15,8 +15,8 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faSatellite, faPlus } from '@fortawesome/free-solid-svg-icons'; -import MkPagination from '@/components/ui/pagination.vue'; -import MkButton from '@/components/ui/button.vue'; +import MkPagination from '@client/components/ui/pagination.vue'; +import MkButton from '@client/components/ui/button.vue'; import XAntenna from './index.antenna.vue'; export default defineComponent({ diff --git a/src/client/pages/my-clips/index.vue b/src/client/pages/my-clips/index.vue index b1fdb8e62a8a38a78053f32b4111dcc3a29fcd97..b724dfb6b75749f615946dbf5bc9ab3cb9c857cf 100644 --- a/src/client/pages/my-clips/index.vue +++ b/src/client/pages/my-clips/index.vue @@ -16,9 +16,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faPlus, faPaperclip } from '@fortawesome/free-solid-svg-icons'; -import MkPagination from '@/components/ui/pagination.vue'; -import MkButton from '@/components/ui/button.vue'; -import * as os from '@/os'; +import MkPagination from '@client/components/ui/pagination.vue'; +import MkButton from '@client/components/ui/button.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/my-groups/group.vue b/src/client/pages/my-groups/group.vue index ab6dc85399e0c54c013276ad36c9372c00348fac..8d0d8716c76ef6e05bb12d599fe8477fc1eed52b 100644 --- a/src/client/pages/my-groups/group.vue +++ b/src/client/pages/my-groups/group.vue @@ -36,9 +36,9 @@ <script lang="ts"> import { computed, defineComponent } from 'vue'; import { faTimes, faUsers } from '@fortawesome/free-solid-svg-icons'; -import Progress from '@/scripts/loading'; -import MkButton from '@/components/ui/button.vue'; -import * as os from '@/os'; +import Progress from '@client/scripts/loading'; +import MkButton from '@client/components/ui/button.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/my-groups/index.vue b/src/client/pages/my-groups/index.vue index 99f7b1e68f00098b3c5ee39b39367974070a5051..2bc0d36b988e5a4e1d457ba75598457292963eb8 100644 --- a/src/client/pages/my-groups/index.vue +++ b/src/client/pages/my-groups/index.vue @@ -48,12 +48,12 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faUsers, faPlus, faEnvelopeOpenText } from '@fortawesome/free-solid-svg-icons'; -import MkPagination from '@/components/ui/pagination.vue'; -import MkButton from '@/components/ui/button.vue'; -import MkContainer from '@/components/ui/container.vue'; -import MkAvatars from '@/components/avatars.vue'; -import MkTab from '@/components/tab.vue'; -import * as os from '@/os'; +import MkPagination from '@client/components/ui/pagination.vue'; +import MkButton from '@client/components/ui/button.vue'; +import MkContainer from '@client/components/ui/container.vue'; +import MkAvatars from '@client/components/avatars.vue'; +import MkTab from '@client/components/tab.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/my-lists/index.vue b/src/client/pages/my-lists/index.vue index bb23be664db7e8f0f3010d87484fa44596c4830f..bbb2192aa115e632fe0bc27bd64efc0501f843e9 100644 --- a/src/client/pages/my-lists/index.vue +++ b/src/client/pages/my-lists/index.vue @@ -13,9 +13,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faListUl, faPlus } from '@fortawesome/free-solid-svg-icons'; -import MkPagination from '@/components/ui/pagination.vue'; -import MkButton from '@/components/ui/button.vue'; -import * as os from '@/os'; +import MkPagination from '@client/components/ui/pagination.vue'; +import MkButton from '@client/components/ui/button.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/my-lists/list.vue b/src/client/pages/my-lists/list.vue index 70c01dced17f243193089ebd9f9a8dbd6cb66475..dcaae222ccb81bc891fc6bf020ff9496914a8556 100644 --- a/src/client/pages/my-lists/list.vue +++ b/src/client/pages/my-lists/list.vue @@ -35,9 +35,9 @@ <script lang="ts"> import { computed, defineComponent } from 'vue'; import { faTimes, faListUl } from '@fortawesome/free-solid-svg-icons'; -import Progress from '@/scripts/loading'; -import MkButton from '@/components/ui/button.vue'; -import * as os from '@/os'; +import Progress from '@client/scripts/loading'; +import MkButton from '@client/components/ui/button.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/not-found.vue b/src/client/pages/not-found.vue index ec707c2beb3737fd5e31777b3996d1d9d8cb0efb..61ca3870c5bca500630d5f6dd210a996f0cc64c1 100644 --- a/src/client/pages/not-found.vue +++ b/src/client/pages/not-found.vue @@ -10,7 +10,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ data() { diff --git a/src/client/pages/note.vue b/src/client/pages/note.vue index 8756ba5a080cebcb48f6bf0e35db5c826f02aab8..eb46c49d8b5dcf73ad9a1be89443fd9c8b498411 100644 --- a/src/client/pages/note.vue +++ b/src/client/pages/note.vue @@ -38,12 +38,12 @@ <script lang="ts"> import { computed, defineComponent } from 'vue'; import { faChevronUp, faChevronDown } from '@fortawesome/free-solid-svg-icons'; -import XNote from '@/components/note.vue'; -import XNoteDetailed from '@/components/note-detailed.vue'; -import XNotes from '@/components/notes.vue'; -import MkRemoteCaution from '@/components/remote-caution.vue'; -import MkButton from '@/components/ui/button.vue'; -import * as os from '@/os'; +import XNote from '@client/components/note.vue'; +import XNoteDetailed from '@client/components/note-detailed.vue'; +import XNotes from '@client/components/notes.vue'; +import MkRemoteCaution from '@client/components/remote-caution.vue'; +import MkButton from '@client/components/ui/button.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/notifications.vue b/src/client/pages/notifications.vue index 4b4f22e6424a1851cf89b6451bf6a7ad7c58c8cd..a6d73b4290be8b7feb0ea0ae1c666ce6422e4a3c 100644 --- a/src/client/pages/notifications.vue +++ b/src/client/pages/notifications.vue @@ -9,9 +9,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faBell } from '@fortawesome/free-solid-svg-icons'; -import Progress from '@/scripts/loading'; -import XNotifications from '@/components/notifications.vue'; -import * as os from '@/os'; +import Progress from '@client/scripts/loading'; +import XNotifications from '@client/components/notifications.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/page-editor/els/page-editor.el.button.vue b/src/client/pages/page-editor/els/page-editor.el.button.vue index 846e3f644d34910cc1c3e05a917d1155073ad85e..1515187676e24da4e50a0ad7cda6a33dc944a616 100644 --- a/src/client/pages/page-editor/els/page-editor.el.button.vue +++ b/src/client/pages/page-editor/els/page-editor.el.button.vue @@ -41,10 +41,10 @@ import { defineComponent } from 'vue'; import { faBolt } from '@fortawesome/free-solid-svg-icons'; import XContainer from '../page-editor.container.vue'; -import MkSelect from '@/components/ui/select.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkSwitch from '@/components/ui/switch.vue'; -import * as os from '@/os'; +import MkSelect from '@client/components/ui/select.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkSwitch from '@client/components/ui/switch.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/page-editor/els/page-editor.el.canvas.vue b/src/client/pages/page-editor/els/page-editor.el.canvas.vue index 83b7f376dd55f0e164914ede38b793d1ba628056..9d4b4c76d2699b1cc23197c34d4d6a2dd26cba12 100644 --- a/src/client/pages/page-editor/els/page-editor.el.canvas.vue +++ b/src/client/pages/page-editor/els/page-editor.el.canvas.vue @@ -14,8 +14,8 @@ import { defineComponent } from 'vue'; import { faPaintBrush, faMagic } from '@fortawesome/free-solid-svg-icons'; import XContainer from '../page-editor.container.vue'; -import MkInput from '@/components/ui/input.vue'; -import * as os from '@/os'; +import MkInput from '@client/components/ui/input.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/page-editor/els/page-editor.el.counter.vue b/src/client/pages/page-editor/els/page-editor.el.counter.vue index 81f0462343a3dec46608ca94c30d94f83eda6019..e16962aee92845d5d7798a58cae6e64fd27cb912 100644 --- a/src/client/pages/page-editor/els/page-editor.el.counter.vue +++ b/src/client/pages/page-editor/els/page-editor.el.counter.vue @@ -14,8 +14,8 @@ import { defineComponent } from 'vue'; import { faBolt, faMagic } from '@fortawesome/free-solid-svg-icons'; import XContainer from '../page-editor.container.vue'; -import MkInput from '@/components/ui/input.vue'; -import * as os from '@/os'; +import MkInput from '@client/components/ui/input.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/page-editor/els/page-editor.el.if.vue b/src/client/pages/page-editor/els/page-editor.el.if.vue index 8cc2f401cc577e88362d2179875b13fd9dfdb239..0cbfaa7eb859dc30fd3efbaa956a597ecec24873 100644 --- a/src/client/pages/page-editor/els/page-editor.el.if.vue +++ b/src/client/pages/page-editor/els/page-editor.el.if.vue @@ -29,8 +29,8 @@ import { defineComponent, defineAsyncComponent } from 'vue'; import { v4 as uuid } from 'uuid'; import { faPlus, faQuestion } from '@fortawesome/free-solid-svg-icons'; import XContainer from '../page-editor.container.vue'; -import MkSelect from '@/components/ui/select.vue'; -import * as os from '@/os'; +import MkSelect from '@client/components/ui/select.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/page-editor/els/page-editor.el.image.vue b/src/client/pages/page-editor/els/page-editor.el.image.vue index b711d00763ffe378bd6425002e43578d07efe800..1a96e42679e873d1d5e2ecf11c0846618f113abb 100644 --- a/src/client/pages/page-editor/els/page-editor.el.image.vue +++ b/src/client/pages/page-editor/els/page-editor.el.image.vue @@ -18,8 +18,8 @@ import { defineComponent } from 'vue'; import { faPencilAlt } from '@fortawesome/free-solid-svg-icons'; import { faImage, faFolderOpen } from '@fortawesome/free-regular-svg-icons'; import XContainer from '../page-editor.container.vue'; -import MkDriveFileThumbnail from '@/components/drive-file-thumbnail.vue'; -import * as os from '@/os'; +import MkDriveFileThumbnail from '@client/components/drive-file-thumbnail.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/page-editor/els/page-editor.el.note.vue b/src/client/pages/page-editor/els/page-editor.el.note.vue index 4f45f3b5fd4124bdab423b6ff334e48936b617b9..3f7eaf7572984cf48752bf4f688e98e1fbfa76da 100644 --- a/src/client/pages/page-editor/els/page-editor.el.note.vue +++ b/src/client/pages/page-editor/els/page-editor.el.note.vue @@ -19,11 +19,11 @@ import { defineComponent } from 'vue'; import { faStickyNote } from '@fortawesome/free-solid-svg-icons'; import XContainer from '../page-editor.container.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkSwitch from '@/components/ui/switch.vue'; -import XNote from '@/components/note.vue'; -import XNoteDetailed from '@/components/note-detailed.vue'; -import * as os from '@/os'; +import MkInput from '@client/components/ui/input.vue'; +import MkSwitch from '@client/components/ui/switch.vue'; +import XNote from '@client/components/note.vue'; +import XNoteDetailed from '@client/components/note-detailed.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/page-editor/els/page-editor.el.number-input.vue b/src/client/pages/page-editor/els/page-editor.el.number-input.vue index 37a4d6031ca7f169066d3fe519e07f3b8f9cdb06..76c35d4406fb15d4ec2e77ee678d6cc8ae8df228 100644 --- a/src/client/pages/page-editor/els/page-editor.el.number-input.vue +++ b/src/client/pages/page-editor/els/page-editor.el.number-input.vue @@ -14,8 +14,8 @@ import { defineComponent } from 'vue'; import { faBolt, faMagic } from '@fortawesome/free-solid-svg-icons'; import XContainer from '../page-editor.container.vue'; -import MkInput from '@/components/ui/input.vue'; -import * as os from '@/os'; +import MkInput from '@client/components/ui/input.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/page-editor/els/page-editor.el.post.vue b/src/client/pages/page-editor/els/page-editor.el.post.vue index 3866f51c16384a6ce4f91127d1b13a76da8a207e..51c5481d54ac0c854174b5800a2a5ab76ed43d50 100644 --- a/src/client/pages/page-editor/els/page-editor.el.post.vue +++ b/src/client/pages/page-editor/els/page-editor.el.post.vue @@ -14,10 +14,10 @@ import { defineComponent } from 'vue'; import { faPaperPlane } from '@fortawesome/free-regular-svg-icons'; import XContainer from '../page-editor.container.vue'; -import MkTextarea from '@/components/ui/textarea.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkSwitch from '@/components/ui/switch.vue'; -import * as os from '@/os'; +import MkTextarea from '@client/components/ui/textarea.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkSwitch from '@client/components/ui/switch.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/page-editor/els/page-editor.el.radio-button.vue b/src/client/pages/page-editor/els/page-editor.el.radio-button.vue index d1e8545b2e06ba14695964c5a619912573f3ca0a..82b09a62901be83c52e667e7fab92d000d2ff814 100644 --- a/src/client/pages/page-editor/els/page-editor.el.radio-button.vue +++ b/src/client/pages/page-editor/els/page-editor.el.radio-button.vue @@ -15,9 +15,9 @@ import { defineComponent } from 'vue'; import { faBolt, faMagic } from '@fortawesome/free-solid-svg-icons'; import XContainer from '../page-editor.container.vue'; -import MkTextarea from '@/components/ui/textarea.vue'; -import MkInput from '@/components/ui/input.vue'; -import * as os from '@/os'; +import MkTextarea from '@client/components/ui/textarea.vue'; +import MkInput from '@client/components/ui/input.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/page-editor/els/page-editor.el.section.vue b/src/client/pages/page-editor/els/page-editor.el.section.vue index e08540351c9c5954eec627eb8313f39cd7f9afe6..96f468b13aa8e789cee5b28227c659402fd0502f 100644 --- a/src/client/pages/page-editor/els/page-editor.el.section.vue +++ b/src/client/pages/page-editor/els/page-editor.el.section.vue @@ -22,7 +22,7 @@ import { v4 as uuid } from 'uuid'; import { faPlus, faPencilAlt } from '@fortawesome/free-solid-svg-icons'; import { faStickyNote } from '@fortawesome/free-regular-svg-icons'; import XContainer from '../page-editor.container.vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/page-editor/els/page-editor.el.switch.vue b/src/client/pages/page-editor/els/page-editor.el.switch.vue index 26142399324f57b67bab64a21c31805ef0746959..56b9f1561cbed15961e4e12b855808c830874377 100644 --- a/src/client/pages/page-editor/els/page-editor.el.switch.vue +++ b/src/client/pages/page-editor/els/page-editor.el.switch.vue @@ -14,9 +14,9 @@ import { defineComponent } from 'vue'; import { faBolt, faMagic } from '@fortawesome/free-solid-svg-icons'; import XContainer from '../page-editor.container.vue'; -import MkSwitch from '@/components/ui/switch.vue'; -import MkInput from '@/components/ui/input.vue'; -import * as os from '@/os'; +import MkSwitch from '@client/components/ui/switch.vue'; +import MkInput from '@client/components/ui/input.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/page-editor/els/page-editor.el.text-input.vue b/src/client/pages/page-editor/els/page-editor.el.text-input.vue index 335d1ab40871b11cb7088e6c0f3a5117a04aa44f..cb8cb83aa71ac399c044beb1563a9fc5762f113e 100644 --- a/src/client/pages/page-editor/els/page-editor.el.text-input.vue +++ b/src/client/pages/page-editor/els/page-editor.el.text-input.vue @@ -14,8 +14,8 @@ import { defineComponent } from 'vue'; import { faBolt, faMagic } from '@fortawesome/free-solid-svg-icons'; import XContainer from '../page-editor.container.vue'; -import MkInput from '@/components/ui/input.vue'; -import * as os from '@/os'; +import MkInput from '@client/components/ui/input.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/page-editor/els/page-editor.el.text.vue b/src/client/pages/page-editor/els/page-editor.el.text.vue index 452eedba6b77ae9dffdb3ab7a1c26c9f2e2d5522..bd2c9c46dc3ecbb36eb6f052bfbdaf5ed6b542f5 100644 --- a/src/client/pages/page-editor/els/page-editor.el.text.vue +++ b/src/client/pages/page-editor/els/page-editor.el.text.vue @@ -12,7 +12,7 @@ import { defineComponent } from 'vue'; import { faAlignLeft } from '@fortawesome/free-solid-svg-icons'; import XContainer from '../page-editor.container.vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/page-editor/els/page-editor.el.textarea-input.vue b/src/client/pages/page-editor/els/page-editor.el.textarea-input.vue index afedbe6f6d0b481ebc8d3c14f7572478a5198471..8c4ff234089ca633862c7e13ee5b6f11d4b11b15 100644 --- a/src/client/pages/page-editor/els/page-editor.el.textarea-input.vue +++ b/src/client/pages/page-editor/els/page-editor.el.textarea-input.vue @@ -14,9 +14,9 @@ import { defineComponent } from 'vue'; import { faBolt, faMagic } from '@fortawesome/free-solid-svg-icons'; import XContainer from '../page-editor.container.vue'; -import MkTextarea from '@/components/ui/textarea.vue'; -import MkInput from '@/components/ui/input.vue'; -import * as os from '@/os'; +import MkTextarea from '@client/components/ui/textarea.vue'; +import MkInput from '@client/components/ui/input.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/page-editor/els/page-editor.el.textarea.vue b/src/client/pages/page-editor/els/page-editor.el.textarea.vue index e5f29b37d287eb69dd07f8b944b1dc496b217176..042b2837315f315c32a0474c5715d049f7755d43 100644 --- a/src/client/pages/page-editor/els/page-editor.el.textarea.vue +++ b/src/client/pages/page-editor/els/page-editor.el.textarea.vue @@ -12,7 +12,7 @@ import { defineComponent } from 'vue'; import { faAlignLeft } from '@fortawesome/free-solid-svg-icons'; import XContainer from '../page-editor.container.vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/page-editor/page-editor.blocks.vue b/src/client/pages/page-editor/page-editor.blocks.vue index ccaa715111685ca51929dc02e517a33b0ca2f61a..0065b16c8cc85e558353264168e93da3f44e0452 100644 --- a/src/client/pages/page-editor/page-editor.blocks.vue +++ b/src/client/pages/page-editor/page-editor.blocks.vue @@ -23,7 +23,7 @@ import XCounter from './els/page-editor.el.counter.vue'; import XRadioButton from './els/page-editor.el.radio-button.vue'; import XCanvas from './els/page-editor.el.canvas.vue'; import XNote from './els/page-editor.el.note.vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/page-editor/page-editor.script-block.vue b/src/client/pages/page-editor/page-editor.script-block.vue index 68bc1b50c168a8a06304033e36887c2794a870c3..10d5311cde3858a8d3ff9458fd2bffdf90c6677c 100644 --- a/src/client/pages/page-editor/page-editor.script-block.vue +++ b/src/client/pages/page-editor/page-editor.script-block.vue @@ -60,11 +60,11 @@ import { defineAsyncComponent, defineComponent } from 'vue'; import { faPencilAlt, faPlug } from '@fortawesome/free-solid-svg-icons'; import { v4 as uuid } from 'uuid'; import XContainer from './page-editor.container.vue'; -import MkTextarea from '@/components/ui/textarea.vue'; -import { blockDefs } from '@/scripts/hpml/index'; -import * as os from '@/os'; -import { isLiteralValue } from '@/scripts/hpml/expr'; -import { funcDefs } from '@/scripts/hpml/lib'; +import MkTextarea from '@client/components/ui/textarea.vue'; +import { blockDefs } from '@client/scripts/hpml/index'; +import * as os from '@client/os'; +import { isLiteralValue } from '@client/scripts/hpml/expr'; +import { funcDefs } from '@client/scripts/hpml/lib'; export default defineComponent({ components: { diff --git a/src/client/pages/page-editor/page-editor.vue b/src/client/pages/page-editor/page-editor.vue index 08856ebfe47ce3b87cf45e3f62ccdeb1622032ac..762ee774edbc50b09ddd20a222760e07677fa3ce 100644 --- a/src/client/pages/page-editor/page-editor.vue +++ b/src/client/pages/page-editor/page-editor.vue @@ -98,18 +98,18 @@ import { faSave, faStickyNote, faTrashAlt } from '@fortawesome/free-regular-svg- import { v4 as uuid } from 'uuid'; import XVariable from './page-editor.script-block.vue'; import XBlocks from './page-editor.blocks.vue'; -import MkTextarea from '@/components/ui/textarea.vue'; -import MkContainer from '@/components/ui/container.vue'; -import MkButton from '@/components/ui/button.vue'; -import MkSelect from '@/components/ui/select.vue'; -import MkSwitch from '@/components/ui/switch.vue'; -import MkInput from '@/components/ui/input.vue'; -import { blockDefs } from '@/scripts/hpml/index'; -import { HpmlTypeChecker } from '@/scripts/hpml/type-checker'; -import { url } from '@/config'; -import { collectPageVars } from '@/scripts/collect-page-vars'; -import * as os from '@/os'; -import { selectFile } from '@/scripts/select-file'; +import MkTextarea from '@client/components/ui/textarea.vue'; +import MkContainer from '@client/components/ui/container.vue'; +import MkButton from '@client/components/ui/button.vue'; +import MkSelect from '@client/components/ui/select.vue'; +import MkSwitch from '@client/components/ui/switch.vue'; +import MkInput from '@client/components/ui/input.vue'; +import { blockDefs } from '@client/scripts/hpml/index'; +import { HpmlTypeChecker } from '@client/scripts/hpml/type-checker'; +import { url } from '@client/config'; +import { collectPageVars } from '@client/scripts/collect-page-vars'; +import * as os from '@client/os'; +import { selectFile } from '@client/scripts/select-file'; export default defineComponent({ components: { diff --git a/src/client/pages/page.vue b/src/client/pages/page.vue index 0b0b421ea2accc87613f8943c848a1d7cdfe70c4..121383a7a6eedf3022f68f470bb52556a9e16436 100644 --- a/src/client/pages/page.vue +++ b/src/client/pages/page.vue @@ -35,8 +35,8 @@ import { computed, defineComponent } from 'vue'; import { faHeart as faHeartS } from '@fortawesome/free-solid-svg-icons'; import { faHeart as faHeartR } from '@fortawesome/free-regular-svg-icons'; -import XPage from '@/components/page/page.vue'; -import * as os from '@/os'; +import XPage from '@client/components/page/page.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/pages.vue b/src/client/pages/pages.vue index 29960351d35400fd9270b509fd39ff0a68ce4475..9bedda04ef47988f735e44005281365c5e3d0856 100644 --- a/src/client/pages/pages.vue +++ b/src/client/pages/pages.vue @@ -33,10 +33,10 @@ import { defineComponent } from 'vue'; import { faPlus, faEdit, faFireAlt } from '@fortawesome/free-solid-svg-icons'; import { faStickyNote, faHeart } from '@fortawesome/free-regular-svg-icons'; -import MkPagePreview from '@/components/page-preview.vue'; -import MkPagination from '@/components/ui/pagination.vue'; -import MkButton from '@/components/ui/button.vue'; -import MkTab from '@/components/tab.vue'; +import MkPagePreview from '@client/components/page-preview.vue'; +import MkPagination from '@client/components/ui/pagination.vue'; +import MkButton from '@client/components/ui/button.vue'; +import MkTab from '@client/components/tab.vue'; export default defineComponent({ components: { diff --git a/src/client/pages/preview.vue b/src/client/pages/preview.vue index 912f891d8a473e48cda2fcb80da368c7fb0fa6ec..0b0293f69af9a6a651466cbb12226299036e3277 100644 --- a/src/client/pages/preview.vue +++ b/src/client/pages/preview.vue @@ -7,7 +7,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faEye } from '@fortawesome/free-solid-svg-icons'; -import MkSample from '@/components/sample.vue'; +import MkSample from '@client/components/sample.vue'; export default defineComponent({ components: { diff --git a/src/client/pages/reversi/game.board.vue b/src/client/pages/reversi/game.board.vue index 8ce232af07f8e68a23ef97be451b04494ddbddc2..a466527c012e6280a930ae16037e4db63f08ee3d 100644 --- a/src/client/pages/reversi/game.board.vue +++ b/src/client/pages/reversi/game.board.vue @@ -90,11 +90,11 @@ import { faCircle as fasCircle } from '@fortawesome/free-solid-svg-icons'; import { faCircle as farCircle } from '@fortawesome/free-regular-svg-icons'; import * as CRC32 from 'crc-32'; import Reversi, { Color } from '../../../games/reversi/core'; -import { url } from '@/config'; -import MkButton from '@/components/ui/button.vue'; -import { userPage } from '@/filters/user'; -import * as os from '@/os'; -import * as sound from '@/scripts/sound'; +import { url } from '@client/config'; +import MkButton from '@client/components/ui/button.vue'; +import { userPage } from '@client/filters/user'; +import * as os from '@client/os'; +import * as sound from '@client/scripts/sound'; export default defineComponent({ components: { diff --git a/src/client/pages/reversi/game.setting.vue b/src/client/pages/reversi/game.setting.vue index 404e560a06cc33ef03809d91a3fd093015e34e70..c7c2937ba838d1beb8621832d94218c96013bf24 100644 --- a/src/client/pages/reversi/game.setting.vue +++ b/src/client/pages/reversi/game.setting.vue @@ -128,9 +128,9 @@ import { defineComponent } from 'vue'; import { faCircle as fasCircle } from '@fortawesome/free-solid-svg-icons'; import { faCircle as farCircle } from '@fortawesome/free-regular-svg-icons'; import * as maps from '../../../games/reversi/maps'; -import MkButton from '@/components/ui/button.vue'; -import MkSwitch from '@/components/ui/switch.vue'; -import MkRadio from '@/components/ui/radio.vue'; +import MkButton from '@client/components/ui/button.vue'; +import MkSwitch from '@client/components/ui/switch.vue'; +import MkRadio from '@client/components/ui/radio.vue'; export default defineComponent({ components: { diff --git a/src/client/pages/reversi/game.vue b/src/client/pages/reversi/game.vue index ba750f43c7a286fb5129775ceb6ae651779cf24e..3a88b02583cd7c2327ee20f984c8a2254249a70b 100644 --- a/src/client/pages/reversi/game.vue +++ b/src/client/pages/reversi/game.vue @@ -8,7 +8,7 @@ import { defineComponent } from 'vue'; import GameSetting from './game.setting.vue'; import GameBoard from './game.board.vue'; -import * as os from '@/os'; +import * as os from '@client/os'; import { faGamepad } from '@fortawesome/free-solid-svg-icons'; export default defineComponent({ diff --git a/src/client/pages/reversi/index.vue b/src/client/pages/reversi/index.vue index 4b5d783f9ef6cde7259fdea40abb7c029b626e0b..f40990b37c5ee03cc950d10581b000f20c8e4bd3 100644 --- a/src/client/pages/reversi/index.vue +++ b/src/client/pages/reversi/index.vue @@ -61,9 +61,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import * as os from '@/os'; -import MkButton from '@/components/ui/button.vue'; -import MkFolder from '@/components/ui/folder.vue'; +import * as os from '@client/os'; +import MkButton from '@client/components/ui/button.vue'; +import MkFolder from '@client/components/ui/folder.vue'; import { faGamepad } from '@fortawesome/free-solid-svg-icons'; export default defineComponent({ diff --git a/src/client/pages/room/preview.vue b/src/client/pages/room/preview.vue index b0e600d4fb8543204577d98208505536fdca8852..0cb6bcf04cf5019bd792f342daa9e17f124c388a 100644 --- a/src/client/pages/room/preview.vue +++ b/src/client/pages/room/preview.vue @@ -5,7 +5,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import * as THREE from 'three'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ data() { diff --git a/src/client/pages/room/room.vue b/src/client/pages/room/room.vue index 25dfda1d14ad0360de198008ad85f60ca1f4db83..e6e2809725bf153c8b5e6c787bb5d180032a3ba2 100644 --- a/src/client/pages/room/room.vue +++ b/src/client/pages/room/room.vue @@ -51,18 +51,18 @@ <script lang="ts"> import { computed, defineComponent } from 'vue'; -import { Room } from '@/scripts/room/room'; -import parseAcct from '../../../misc/acct/parse'; +import { Room } from '@client/scripts/room/room'; +import parseAcct from '@/misc/acct/parse'; import XPreview from './preview.vue'; -const storeItems = require('@/scripts/room/furnitures.json5'); +const storeItems = require('@client/scripts/room/furnitures.json5'); import { faBoxOpen, faUndo, faArrowsAlt, faBan, faBroom } from '@fortawesome/free-solid-svg-icons'; import { faSave, faTrashAlt } from '@fortawesome/free-regular-svg-icons'; import { query as urlQuery } from '../../../prelude/url'; -import MkButton from '@/components/ui/button.vue'; -import MkSelect from '@/components/ui/select.vue'; -import { selectFile } from '@/scripts/select-file'; -import * as os from '@/os'; -import { ColdDeviceStorage } from '@/store'; +import MkButton from '@client/components/ui/button.vue'; +import MkSelect from '@client/components/ui/select.vue'; +import { selectFile } from '@client/scripts/select-file'; +import * as os from '@client/os'; +import { ColdDeviceStorage } from '@client/store'; let room: Room; diff --git a/src/client/pages/scratchpad.vue b/src/client/pages/scratchpad.vue index 6ee7ec02fcf754873754956c11a0e169815a0727..febc9c50161093c16605d21a30fc1021b1558cfa 100644 --- a/src/client/pages/scratchpad.vue +++ b/src/client/pages/scratchpad.vue @@ -29,10 +29,10 @@ import 'prismjs/themes/prism-okaidia.css'; import { PrismEditor } from 'vue-prism-editor'; import 'vue-prism-editor/dist/prismeditor.min.css'; import { AiScript, parse, utils, values } from '@syuilo/aiscript'; -import MkContainer from '@/components/ui/container.vue'; -import MkButton from '@/components/ui/button.vue'; -import { createAiScriptEnv } from '@/scripts/aiscript/api'; -import * as os from '@/os'; +import MkContainer from '@client/components/ui/container.vue'; +import MkButton from '@client/components/ui/button.vue'; +import { createAiScriptEnv } from '@client/scripts/aiscript/api'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/search.vue b/src/client/pages/search.vue index 5e79531b20e3184e92d3b1727b06e5f593a64961..28d2aec9923490a6002fc25f11ca56513205a048 100644 --- a/src/client/pages/search.vue +++ b/src/client/pages/search.vue @@ -9,8 +9,8 @@ <script lang="ts"> import { computed, defineComponent } from 'vue'; import { faSearch } from '@fortawesome/free-solid-svg-icons'; -import Progress from '@/scripts/loading'; -import XNotes from '@/components/notes.vue'; +import Progress from '@client/scripts/loading'; +import XNotes from '@client/components/notes.vue'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/2fa.vue b/src/client/pages/settings/2fa.vue index e7f97725af5379b937a9531413a467aee7a2fd25..48f1bc6e7bb649c1a3350377e364ec7d1ee1695b 100644 --- a/src/client/pages/settings/2fa.vue +++ b/src/client/pages/settings/2fa.vue @@ -69,16 +69,16 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faLock } from '@fortawesome/free-solid-svg-icons'; -import { hostname } from '@/config'; -import { byteify, hexify, stringify } from '@/scripts/2fa'; -import MkButton from '@/components/ui/button.vue'; -import MkInfo from '@/components/ui/info.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkSwitch from '@/components/ui/switch.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormButton from '@/components/form/button.vue'; -import * as os from '@/os'; +import { hostname } from '@client/config'; +import { byteify, hexify, stringify } from '@client/scripts/2fa'; +import MkButton from '@client/components/ui/button.vue'; +import MkInfo from '@client/components/ui/info.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkSwitch from '@client/components/ui/switch.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormButton from '@client/components/form/button.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/account-info.vue b/src/client/pages/settings/account-info.vue index f231bea22e0190f08d99df834830e8ab76936be3..1b8baadf4409fc01d6fb93a39e8271e240893f9a 100644 --- a/src/client/pages/settings/account-info.vue +++ b/src/client/pages/settings/account-info.vue @@ -133,16 +133,16 @@ <script lang="ts"> import { defineAsyncComponent, defineComponent } from 'vue'; import { faInfoCircle } from '@fortawesome/free-solid-svg-icons'; -import FormSwitch from '@/components/form/switch.vue'; -import FormSelect from '@/components/form/select.vue'; -import FormLink from '@/components/form/link.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormButton from '@/components/form/button.vue'; -import FormKeyValueView from '@/components/form/key-value-view.vue'; -import * as os from '@/os'; -import number from '@/filters/number'; -import bytes from '@/filters/bytes'; +import FormSwitch from '@client/components/form/switch.vue'; +import FormSelect from '@client/components/form/select.vue'; +import FormLink from '@client/components/form/link.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormButton from '@client/components/form/button.vue'; +import FormKeyValueView from '@client/components/form/key-value-view.vue'; +import * as os from '@client/os'; +import number from '@client/filters/number'; +import bytes from '@client/filters/bytes'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/api.vue b/src/client/pages/settings/api.vue index b02a33b3f11844568a04f2df86726894f0e76134..da9ed88b55a9e3b6490147547d18c3c53b0cb68b 100644 --- a/src/client/pages/settings/api.vue +++ b/src/client/pages/settings/api.vue @@ -9,13 +9,13 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faKey } from '@fortawesome/free-solid-svg-icons'; -import FormSwitch from '@/components/form/switch.vue'; -import FormSelect from '@/components/form/select.vue'; -import FormLink from '@/components/form/link.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormButton from '@/components/form/button.vue'; -import * as os from '@/os'; +import FormSwitch from '@client/components/form/switch.vue'; +import FormSelect from '@client/components/form/select.vue'; +import FormLink from '@client/components/form/link.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormButton from '@client/components/form/button.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { @@ -42,7 +42,7 @@ export default defineComponent({ methods: { generateToken() { - os.popup(import('@/components/token-generate-window.vue'), {}, { + os.popup(import('@client/components/token-generate-window.vue'), {}, { done: async result => { const { name, permissions } = result; const { token } = await os.api('miauth/gen-token', { diff --git a/src/client/pages/settings/apps.vue b/src/client/pages/settings/apps.vue index 3eb31ab5208e65801fe221ae7bb289c40a98ba66..d0fcacfaedd8f2319952fe292044347f04cb694a 100644 --- a/src/client/pages/settings/apps.vue +++ b/src/client/pages/settings/apps.vue @@ -40,13 +40,13 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faTrashAlt, faPlug } from '@fortawesome/free-solid-svg-icons'; -import FormPagination from '@/components/form/pagination.vue'; -import FormSelect from '@/components/form/select.vue'; -import FormLink from '@/components/form/link.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormButton from '@/components/form/button.vue'; -import * as os from '@/os'; +import FormPagination from '@client/components/form/pagination.vue'; +import FormSelect from '@client/components/form/select.vue'; +import FormLink from '@client/components/form/link.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormButton from '@client/components/form/button.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/deck.vue b/src/client/pages/settings/deck.vue index cbc5edca940d15f45706855b08717211396f481c..ce4099db2e813f9d5e737e94ac3f4757cdd654fa 100644 --- a/src/client/pages/settings/deck.vue +++ b/src/client/pages/settings/deck.vue @@ -32,15 +32,15 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faImage, faCog, faColumns } from '@fortawesome/free-solid-svg-icons'; -import FormSwitch from '@/components/form/switch.vue'; -import FormLink from '@/components/form/link.vue'; -import FormRadios from '@/components/form/radios.vue'; -import FormInput from '@/components/form/input.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import { deckStore } from '@/ui/deck/deck-store'; -import * as os from '@/os'; -import { unisonReload } from '@/scripts/unison-reload'; +import FormSwitch from '@client/components/form/switch.vue'; +import FormLink from '@client/components/form/link.vue'; +import FormRadios from '@client/components/form/radios.vue'; +import FormInput from '@client/components/form/input.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import { deckStore } from '@client/ui/deck/deck-store'; +import * as os from '@client/os'; +import { unisonReload } from '@client/scripts/unison-reload'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/drive.vue b/src/client/pages/settings/drive.vue index 8ca8bc9eec96c9da1d56af098fe39a1bd923a3d2..4684d3b5544c9e25e0594e30957954e9c42bf36c 100644 --- a/src/client/pages/settings/drive.vue +++ b/src/client/pages/settings/drive.vue @@ -38,12 +38,12 @@ import * as tinycolor from 'tinycolor2'; import ApexCharts from 'apexcharts'; import { faCloud, faFolderOpen } from '@fortawesome/free-solid-svg-icons'; import { faClock, faEyeSlash, faTrashAlt } from '@fortawesome/free-regular-svg-icons'; -import FormButton from '@/components/form/button.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormKeyValueView from '@/components/form/key-value-view.vue'; -import FormBase from '@/components/form/base.vue'; -import * as os from '@/os'; -import bytes from '@/filters/bytes'; +import FormButton from '@client/components/form/button.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormKeyValueView from '@client/components/form/key-value-view.vue'; +import FormBase from '@client/components/form/base.vue'; +import * as os from '@client/os'; +import bytes from '@client/filters/bytes'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/email-address.vue b/src/client/pages/settings/email-address.vue index 8ca0f119c5d18fc15b8e213629044c60345bed63..56e9973aeba6bdd7e46b18b476f98e9c5abfe556 100644 --- a/src/client/pages/settings/email-address.vue +++ b/src/client/pages/settings/email-address.vue @@ -15,11 +15,11 @@ import { defineComponent } from 'vue'; import { faCog } from '@fortawesome/free-solid-svg-icons'; import { faBell, faEnvelope } from '@fortawesome/free-regular-svg-icons'; -import FormButton from '@/components/form/button.vue'; -import FormInput from '@/components/form/input.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import * as os from '@/os'; +import FormButton from '@client/components/form/button.vue'; +import FormInput from '@client/components/form/input.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/email-notification.vue b/src/client/pages/settings/email-notification.vue index de2cfd39129307bd04a569c0bd53c05b6f3551f8..5894b8475c3f20994572233d9df13976f55877ad 100644 --- a/src/client/pages/settings/email-notification.vue +++ b/src/client/pages/settings/email-notification.vue @@ -27,11 +27,11 @@ import { defineComponent } from 'vue'; import { faCog } from '@fortawesome/free-solid-svg-icons'; import { faBell, faEnvelope } from '@fortawesome/free-regular-svg-icons'; -import FormButton from '@/components/form/button.vue'; -import FormSwitch from '@/components/form/switch.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import * as os from '@/os'; +import FormButton from '@client/components/form/button.vue'; +import FormSwitch from '@client/components/form/switch.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/email.vue b/src/client/pages/settings/email.vue index e334e23cbd7d3fcb7f3b840a168334594ca90c5f..bd2e4634d191fc0520719b07bf75c281855ddb7c 100644 --- a/src/client/pages/settings/email.vue +++ b/src/client/pages/settings/email.vue @@ -24,12 +24,12 @@ import { defineComponent } from 'vue'; import { faCog, faExclamationTriangle, faCheck } from '@fortawesome/free-solid-svg-icons'; import { faBell, faEnvelope } from '@fortawesome/free-regular-svg-icons'; -import FormButton from '@/components/form/button.vue'; -import FormLink from '@/components/form/link.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormSwitch from '@/components/form/switch.vue'; -import * as os from '@/os'; +import FormButton from '@client/components/form/button.vue'; +import FormLink from '@client/components/form/link.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormSwitch from '@client/components/form/switch.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/experimental-features.vue b/src/client/pages/settings/experimental-features.vue index 39f1683af5f941700e9ee02264a63c359445e1a3..1cbda219d7fe3b1b6444332ba1465837cde4cbe0 100644 --- a/src/client/pages/settings/experimental-features.vue +++ b/src/client/pages/settings/experimental-features.vue @@ -7,14 +7,14 @@ <script lang="ts"> import { defineAsyncComponent, defineComponent } from 'vue'; import { faFlask } from '@fortawesome/free-solid-svg-icons'; -import FormSwitch from '@/components/form/switch.vue'; -import FormSelect from '@/components/form/select.vue'; -import FormLink from '@/components/form/link.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormButton from '@/components/form/button.vue'; -import FormKeyValueView from '@/components/form/key-value-view.vue'; -import * as os from '@/os'; +import FormSwitch from '@client/components/form/switch.vue'; +import FormSelect from '@client/components/form/select.vue'; +import FormLink from '@client/components/form/link.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormButton from '@client/components/form/button.vue'; +import FormKeyValueView from '@client/components/form/key-value-view.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/general.vue b/src/client/pages/settings/general.vue index 90ff3e2c2081988098831d9d418e44d03ffa07d7..6612fc0ca21ece8aae565833b7f3fb281187e669 100644 --- a/src/client/pages/settings/general.vue +++ b/src/client/pages/settings/general.vue @@ -85,19 +85,19 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faImage, faCog, faColumns, faCogs } from '@fortawesome/free-solid-svg-icons'; -import FormSwitch from '@/components/form/switch.vue'; -import FormSelect from '@/components/form/select.vue'; -import FormRadios from '@/components/form/radios.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormLink from '@/components/form/link.vue'; -import FormButton from '@/components/form/button.vue'; -import MkLink from '@/components/link.vue'; -import { langs } from '@/config'; -import { defaultStore } from '@/store'; -import { ColdDeviceStorage } from '@/store'; -import * as os from '@/os'; -import { unisonReload } from '@/scripts/unison-reload'; +import FormSwitch from '@client/components/form/switch.vue'; +import FormSelect from '@client/components/form/select.vue'; +import FormRadios from '@client/components/form/radios.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormLink from '@client/components/form/link.vue'; +import FormButton from '@client/components/form/button.vue'; +import MkLink from '@client/components/link.vue'; +import { langs } from '@client/config'; +import { defaultStore } from '@client/store'; +import { ColdDeviceStorage } from '@client/store'; +import * as os from '@client/os'; +import { unisonReload } from '@client/scripts/unison-reload'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/import-export.vue b/src/client/pages/settings/import-export.vue index 2e384bb7649e4874dbfbaf98b56e465db1474c23..2f80ef0c6df9bce9d8e8abf0f8347d2d4f732f16 100644 --- a/src/client/pages/settings/import-export.vue +++ b/src/client/pages/settings/import-export.vue @@ -28,12 +28,12 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faDownload, faUpload, faBoxes } from '@fortawesome/free-solid-svg-icons'; -import FormSelect from '@/components/form/select.vue'; -import FormButton from '@/components/form/button.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import * as os from '@/os'; -import { selectFile } from '@/scripts/select-file'; +import FormSelect from '@client/components/form/select.vue'; +import FormButton from '@client/components/form/button.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import * as os from '@client/os'; +import { selectFile } from '@client/scripts/select-file'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/index.vue b/src/client/pages/settings/index.vue index 1b4aa70eca34cda7be12b4a6acd5039ec892027c..300035671340941a18890f6cea219b7701ca7fb2 100644 --- a/src/client/pages/settings/index.vue +++ b/src/client/pages/settings/index.vue @@ -45,14 +45,14 @@ import { computed, defineAsyncComponent, defineComponent, nextTick, onMounted, reactive, ref, watch } from 'vue'; import { faCog, faPalette, faPlug, faUser, faListUl, faLock, faCommentSlash, faMusic, faCogs, faEllipsisH, faBan, faShareAlt, faLockOpen, faKey, faBoxes, faCloud } from '@fortawesome/free-solid-svg-icons'; import { faLaugh, faBell, faEnvelope } from '@fortawesome/free-regular-svg-icons'; -import { i18n } from '@/i18n'; -import FormLink from '@/components/form/link.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormBase from '@/components/form/base.vue'; -import FormButton from '@/components/form/button.vue'; -import { scroll } from '@/scripts/scroll'; -import { signout } from '@/account'; -import { unisonReload } from '@/scripts/unison-reload'; +import { i18n } from '@client/i18n'; +import FormLink from '@client/components/form/link.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormButton from '@client/components/form/button.vue'; +import { scroll } from '@client/scripts/scroll'; +import { signout } from '@client/account'; +import { unisonReload } from '@client/scripts/unison-reload'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/integration.vue b/src/client/pages/settings/integration.vue index 2e4d186bc461741150a48250aadc9a262ccb7b1e..e2ab11841eb6f3355e0151e09ce23e99a014d4ac 100644 --- a/src/client/pages/settings/integration.vue +++ b/src/client/pages/settings/integration.vue @@ -33,10 +33,10 @@ import { defineComponent } from 'vue'; import { faShareAlt } from '@fortawesome/free-solid-svg-icons'; import { faTwitter, faDiscord, faGithub } from '@fortawesome/free-brands-svg-icons'; -import { apiUrl } from '@/config'; -import FormBase from '@/components/form/base.vue'; -import MkButton from '@/components/ui/button.vue'; -import * as os from '@/os'; +import { apiUrl } from '@client/config'; +import FormBase from '@client/components/form/base.vue'; +import MkButton from '@client/components/ui/button.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/mute-block.vue b/src/client/pages/settings/mute-block.vue index fc735cae109fe52f5ec26de2cdd1c40da206b277..f7eebbb9cce8ecfa25ba1bce96397e2ff4e1e893 100644 --- a/src/client/pages/settings/mute-block.vue +++ b/src/client/pages/settings/mute-block.vue @@ -34,14 +34,14 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faBan } from '@fortawesome/free-solid-svg-icons'; -import MkPagination from '@/components/ui/pagination.vue'; -import MkTab from '@/components/tab.vue'; -import MkInfo from '@/components/ui/info.vue'; -import FormLink from '@/components/form/link.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import { userPage } from '@/filters/user'; -import * as os from '@/os'; +import MkPagination from '@client/components/ui/pagination.vue'; +import MkTab from '@client/components/tab.vue'; +import MkInfo from '@client/components/ui/info.vue'; +import FormLink from '@client/components/form/link.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import { userPage } from '@client/filters/user'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/notifications.vue b/src/client/pages/settings/notifications.vue index c3b7ecae11516bb894d86ff6dc3895ed7b232a41..b26c2805aded963089a85efdd983de01e305c92c 100644 --- a/src/client/pages/settings/notifications.vue +++ b/src/client/pages/settings/notifications.vue @@ -13,12 +13,12 @@ import { defineComponent } from 'vue'; import { faCog } from '@fortawesome/free-solid-svg-icons'; import { faBell } from '@fortawesome/free-regular-svg-icons'; -import FormButton from '@/components/form/button.vue'; -import FormLink from '@/components/form/link.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; +import FormButton from '@client/components/form/button.vue'; +import FormLink from '@client/components/form/link.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; import { notificationTypes } from '../../../types'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { @@ -59,7 +59,7 @@ export default defineComponent({ configure() { const includingTypes = notificationTypes.filter(x => !this.$i.mutingNotificationTypes.includes(x)); - os.popup(import('@/components/notification-setting-window.vue'), { + os.popup(import('@client/components/notification-setting-window.vue'), { includingTypes, showGlobalToggle: false, }, { diff --git a/src/client/pages/settings/other.vue b/src/client/pages/settings/other.vue index a14e101328dbb72ca4a600719b4e52258afc6977..e5cfc5ee1e7948d7bf1bd8509e864cccc64079ee 100644 --- a/src/client/pages/settings/other.vue +++ b/src/client/pages/settings/other.vue @@ -33,17 +33,17 @@ <script lang="ts"> import { defineAsyncComponent, defineComponent } from 'vue'; import { faEllipsisH, faCogs, faDoorOpen } from '@fortawesome/free-solid-svg-icons'; -import FormSwitch from '@/components/form/switch.vue'; -import FormSelect from '@/components/form/select.vue'; -import FormLink from '@/components/form/link.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormButton from '@/components/form/button.vue'; -import * as os from '@/os'; -import { debug } from '@/config'; -import { defaultStore } from '@/store'; -import { signout } from '@/account'; -import { unisonReload } from '@/scripts/unison-reload'; +import FormSwitch from '@client/components/form/switch.vue'; +import FormSelect from '@client/components/form/select.vue'; +import FormLink from '@client/components/form/link.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +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'; export default defineComponent({ components: { @@ -90,7 +90,7 @@ export default defineComponent({ }, taskmanager() { - os.popup(import('@/components/taskmanager.vue'), { + os.popup(import('@client/components/taskmanager.vue'), { }, {}, 'closed'); }, diff --git a/src/client/pages/settings/plugin.install.vue b/src/client/pages/settings/plugin.install.vue index 0f6393f73c24dd4dba449700c484d7d9c66c3764..70c302b36e590eb89ed2afe4d779e908d94b4d82 100644 --- a/src/client/pages/settings/plugin.install.vue +++ b/src/client/pages/settings/plugin.install.vue @@ -18,17 +18,17 @@ import { faPalette, faDownload, faFolderOpen, faCheck, faTrashAlt, faEye } from import { AiScript, parse } from '@syuilo/aiscript'; import { serialize } from '@syuilo/aiscript/built/serializer'; import { v4 as uuid } from 'uuid'; -import FormTextarea from '@/components/form/textarea.vue'; -import FormSelect from '@/components/form/select.vue'; -import FormRadios from '@/components/form/radios.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormLink from '@/components/form/link.vue'; -import FormButton from '@/components/form/button.vue'; -import MkInfo from '@/components/ui/info.vue'; -import * as os from '@/os'; -import { ColdDeviceStorage } from '@/store'; -import { unisonReload } from '@/scripts/unison-reload'; +import FormTextarea from '@client/components/form/textarea.vue'; +import FormSelect from '@client/components/form/select.vue'; +import FormRadios from '@client/components/form/radios.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormLink from '@client/components/form/link.vue'; +import FormButton from '@client/components/form/button.vue'; +import MkInfo from '@client/components/ui/info.vue'; +import * as os from '@client/os'; +import { ColdDeviceStorage } from '@client/store'; +import { unisonReload } from '@client/scripts/unison-reload'; export default defineComponent({ components: { @@ -108,7 +108,7 @@ export default defineComponent({ } const token = permissions == null || permissions.length === 0 ? null : await new Promise((res, rej) => { - os.popup(import('@/components/token-generate-window.vue'), { + os.popup(import('@client/components/token-generate-window.vue'), { title: this.$ts.tokenRequested, information: this.$ts.pluginTokenRequestedDescription, initialName: name, diff --git a/src/client/pages/settings/plugin.manage.vue b/src/client/pages/settings/plugin.manage.vue index 5fd93d8b72aa3b301c8b030c0bc44570e30c699f..0bc04493a79fd556a45925108d33b7242e78e74c 100644 --- a/src/client/pages/settings/plugin.manage.vue +++ b/src/client/pages/settings/plugin.manage.vue @@ -33,15 +33,15 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faPlug, faSave, faTrashAlt, faFolderOpen, faDownload, faCog } from '@fortawesome/free-solid-svg-icons'; -import MkButton from '@/components/ui/button.vue'; -import MkTextarea from '@/components/ui/textarea.vue'; -import MkSelect from '@/components/ui/select.vue'; -import MkInfo from '@/components/ui/info.vue'; -import FormSwitch from '@/components/form/switch.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import * as os from '@/os'; -import { ColdDeviceStorage } from '@/store'; +import MkButton from '@client/components/ui/button.vue'; +import MkTextarea from '@client/components/ui/textarea.vue'; +import MkSelect from '@client/components/ui/select.vue'; +import MkInfo from '@client/components/ui/info.vue'; +import FormSwitch from '@client/components/form/switch.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import * as os from '@client/os'; +import { ColdDeviceStorage } from '@client/store'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/plugin.vue b/src/client/pages/settings/plugin.vue index fecb99bfe149dd178f95e332c35ed8e0712828e1..b101420d0dae2179bad6c76550ad79d283831de4 100644 --- a/src/client/pages/settings/plugin.vue +++ b/src/client/pages/settings/plugin.vue @@ -8,11 +8,11 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faPlug, faSave, faTrashAlt, faFolderOpen, faDownload, faCog } from '@fortawesome/free-solid-svg-icons'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormLink from '@/components/form/link.vue'; -import * as os from '@/os'; -import { ColdDeviceStorage } from '@/store'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormLink from '@client/components/form/link.vue'; +import * as os from '@client/os'; +import { ColdDeviceStorage } from '@client/store'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/privacy.vue b/src/client/pages/settings/privacy.vue index 9c5fb0850c04180ed312e1d14588f64e631f2b92..f58faab0b582a431823e0872977e3e1acab76c29 100644 --- a/src/client/pages/settings/privacy.vue +++ b/src/client/pages/settings/privacy.vue @@ -30,12 +30,12 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faLockOpen } from '@fortawesome/free-solid-svg-icons'; -import FormSwitch from '@/components/form/switch.vue'; -import FormSelect from '@/components/form/select.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import * as os from '@/os'; -import { defaultStore } from '@/store'; +import FormSwitch from '@client/components/form/switch.vue'; +import FormSelect from '@client/components/form/select.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import * as os from '@client/os'; +import { defaultStore } from '@client/store'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/profile.vue b/src/client/pages/settings/profile.vue index e9bffc3b0037cbed83b59497bbaf10659069f829..61f0a8e1987831da9dd68fb6c092d10bfae7367e 100644 --- a/src/client/pages/settings/profile.vue +++ b/src/client/pages/settings/profile.vue @@ -49,16 +49,16 @@ import { defineComponent } from 'vue'; import { faUnlockAlt, faCogs, faUser, faMapMarkerAlt, faBirthdayCake } from '@fortawesome/free-solid-svg-icons'; import { faSave } from '@fortawesome/free-regular-svg-icons'; -import FormButton from '@/components/form/button.vue'; -import FormInput from '@/components/form/input.vue'; -import FormTextarea from '@/components/form/textarea.vue'; -import FormSwitch from '@/components/form/switch.vue'; -import FormSelect from '@/components/form/select.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import { host, langs } from '@/config'; -import { selectFile } from '@/scripts/select-file'; -import * as os from '@/os'; +import FormButton from '@client/components/form/button.vue'; +import FormInput from '@client/components/form/input.vue'; +import FormTextarea from '@client/components/form/textarea.vue'; +import FormSwitch from '@client/components/form/switch.vue'; +import FormSelect from '@client/components/form/select.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import { host, langs } from '@client/config'; +import { selectFile } from '@client/scripts/select-file'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/reaction.vue b/src/client/pages/settings/reaction.vue index 4488e50051283677ab43d9a5ecb746d6a1dbbe95..170f8c9a0aa8ceedc8ee7a03fdc49ebfd120ff7a 100644 --- a/src/client/pages/settings/reaction.vue +++ b/src/client/pages/settings/reaction.vue @@ -39,12 +39,12 @@ import { defineComponent } from 'vue'; import { faLaugh, faSave, faEye } from '@fortawesome/free-regular-svg-icons'; import { faUndo, faPlus } from '@fortawesome/free-solid-svg-icons'; import XDraggable from 'vuedraggable'; -import FormInput from '@/components/form/input.vue'; -import FormRadios from '@/components/form/radios.vue'; -import FormBase from '@/components/form/base.vue'; -import FormButton from '@/components/form/button.vue'; -import * as os from '@/os'; -import { defaultStore } from '@/store'; +import FormInput from '@client/components/form/input.vue'; +import FormRadios from '@client/components/form/radios.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormButton from '@client/components/form/button.vue'; +import * as os from '@client/os'; +import { defaultStore } from '@client/store'; export default defineComponent({ components: { @@ -105,7 +105,7 @@ export default defineComponent({ }, preview(ev) { - os.popup(import('@/components/emoji-picker-dialog.vue'), { + os.popup(import('@client/components/emoji-picker-dialog.vue'), { asReactionPicker: true, src: ev.currentTarget || ev.target, }, {}, 'closed'); diff --git a/src/client/pages/settings/registry.keys.vue b/src/client/pages/settings/registry.keys.vue index c7a90fb4618f5920762b746b39b2cade6da0b885..243672000b77b664dc128833a5eac3f9642b5ede 100644 --- a/src/client/pages/settings/registry.keys.vue +++ b/src/client/pages/settings/registry.keys.vue @@ -24,15 +24,15 @@ import { defineAsyncComponent, defineComponent } from 'vue'; import { faCogs } from '@fortawesome/free-solid-svg-icons'; import * as JSON5 from 'json5'; -import MkInfo from '@/components/ui/info.vue'; -import FormSwitch from '@/components/form/switch.vue'; -import FormSelect from '@/components/form/select.vue'; -import FormLink from '@/components/form/link.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormButton from '@/components/form/button.vue'; -import FormKeyValueView from '@/components/form/key-value-view.vue'; -import * as os from '@/os'; +import MkInfo from '@client/components/ui/info.vue'; +import FormSwitch from '@client/components/form/switch.vue'; +import FormSelect from '@client/components/form/select.vue'; +import FormLink from '@client/components/form/link.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormButton from '@client/components/form/button.vue'; +import FormKeyValueView from '@client/components/form/key-value-view.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/registry.value.vue b/src/client/pages/settings/registry.value.vue index 943ededd21b28ae89012a86d20c0743131c81fb0..e760e4b1e50e5f65ca29429f1d063531ec9d325a 100644 --- a/src/client/pages/settings/registry.value.vue +++ b/src/client/pages/settings/registry.value.vue @@ -39,15 +39,15 @@ import { defineAsyncComponent, defineComponent } from 'vue'; import { faCogs, faSave, faTrash } from '@fortawesome/free-solid-svg-icons'; import * as JSON5 from 'json5'; -import MkInfo from '@/components/ui/info.vue'; -import FormSwitch from '@/components/form/switch.vue'; -import FormSelect from '@/components/form/select.vue'; -import FormTextarea from '@/components/form/textarea.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormButton from '@/components/form/button.vue'; -import FormKeyValueView from '@/components/form/key-value-view.vue'; -import * as os from '@/os'; +import MkInfo from '@client/components/ui/info.vue'; +import FormSwitch from '@client/components/form/switch.vue'; +import FormSelect from '@client/components/form/select.vue'; +import FormTextarea from '@client/components/form/textarea.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormButton from '@client/components/form/button.vue'; +import FormKeyValueView from '@client/components/form/key-value-view.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/registry.vue b/src/client/pages/settings/registry.vue index a43c98e730be8cb4b73e3b6175a6bff41b50cbd2..5e061f95f889d427585baa1a7bd0247ef88684b3 100644 --- a/src/client/pages/settings/registry.vue +++ b/src/client/pages/settings/registry.vue @@ -12,15 +12,15 @@ import { defineAsyncComponent, defineComponent } from 'vue'; import { faCogs } from '@fortawesome/free-solid-svg-icons'; import * as JSON5 from 'json5'; -import MkInfo from '@/components/ui/info.vue'; -import FormSwitch from '@/components/form/switch.vue'; -import FormSelect from '@/components/form/select.vue'; -import FormLink from '@/components/form/link.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormButton from '@/components/form/button.vue'; -import FormKeyValueView from '@/components/form/key-value-view.vue'; -import * as os from '@/os'; +import MkInfo from '@client/components/ui/info.vue'; +import FormSwitch from '@client/components/form/switch.vue'; +import FormSelect from '@client/components/form/select.vue'; +import FormLink from '@client/components/form/link.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormButton from '@client/components/form/button.vue'; +import FormKeyValueView from '@client/components/form/key-value-view.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/security.vue b/src/client/pages/settings/security.vue index cdb5705c0b094a904956dc7b4918b3196ccdff7a..7d6aaa652f6aff40485d4609710932675fdf41a7 100644 --- a/src/client/pages/settings/security.vue +++ b/src/client/pages/settings/security.vue @@ -26,12 +26,12 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faCheck, faTimesCircle, faLock, faSyncAlt, faMobileAlt } from '@fortawesome/free-solid-svg-icons'; -import FormBase from '@/components/form/base.vue'; -import FormLink from '@/components/form/link.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormButton from '@/components/form/button.vue'; -import FormPagination from '@/components/form/pagination.vue'; -import * as os from '@/os'; +import FormBase from '@client/components/form/base.vue'; +import FormLink from '@client/components/form/link.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormButton from '@client/components/form/button.vue'; +import FormPagination from '@client/components/form/pagination.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/sidebar.vue b/src/client/pages/settings/sidebar.vue index 51f2ba17e1c9f75f57147b2b49250c6939fb28bc..bbb1b43afbf81b60350adfb487242e6426f2e157 100644 --- a/src/client/pages/settings/sidebar.vue +++ b/src/client/pages/settings/sidebar.vue @@ -20,15 +20,15 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faListUl, faSave, faRedo } from '@fortawesome/free-solid-svg-icons'; -import FormSwitch from '@/components/form/switch.vue'; -import FormTextarea from '@/components/form/textarea.vue'; -import FormRadios from '@/components/form/radios.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormButton from '@/components/form/button.vue'; -import * as os from '@/os'; -import { sidebarDef } from '@/sidebar'; -import { defaultStore } from '@/store'; +import FormSwitch from '@client/components/form/switch.vue'; +import FormTextarea from '@client/components/form/textarea.vue'; +import FormRadios from '@client/components/form/radios.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormButton from '@client/components/form/button.vue'; +import * as os from '@client/os'; +import { sidebarDef } from '@client/sidebar'; +import { defaultStore } from '@client/store'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/sounds.vue b/src/client/pages/settings/sounds.vue index c53968da4b6e3f805e57efb209df9f87edbcd981..830574410931081331b21e06208f7d848ad476ed 100644 --- a/src/client/pages/settings/sounds.vue +++ b/src/client/pages/settings/sounds.vue @@ -20,14 +20,14 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faMusic, faPlay, faVolumeUp, faVolumeMute, faChevronDown, faRedo } from '@fortawesome/free-solid-svg-icons'; -import FormRange from '@/components/form/range.vue'; -import FormSelect from '@/components/form/select.vue'; -import FormBase from '@/components/form/base.vue'; -import FormButton from '@/components/form/button.vue'; -import FormGroup from '@/components/form/group.vue'; -import * as os from '@/os'; -import { ColdDeviceStorage } from '@/store'; -import { playFile } from '@/scripts/sound'; +import FormRange from '@client/components/form/range.vue'; +import FormSelect from '@client/components/form/select.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormButton from '@client/components/form/button.vue'; +import FormGroup from '@client/components/form/group.vue'; +import * as os from '@client/os'; +import { ColdDeviceStorage } from '@client/store'; +import { playFile } from '@client/scripts/sound'; const soundsTypes = [ null, diff --git a/src/client/pages/settings/theme.install.vue b/src/client/pages/settings/theme.install.vue index 852d39f78b1e78022e284fc27d25c3f2e0c2cf54..61843836576457c7bb00e7994f81e725e1782f91 100644 --- a/src/client/pages/settings/theme.install.vue +++ b/src/client/pages/settings/theme.install.vue @@ -15,17 +15,17 @@ import { defineComponent } from 'vue'; import { faPalette, faDownload, faFolderOpen, faCheck, faTrashAlt, faEye } from '@fortawesome/free-solid-svg-icons'; import * as JSON5 from 'json5'; -import FormTextarea from '@/components/form/textarea.vue'; -import FormSelect from '@/components/form/select.vue'; -import FormRadios from '@/components/form/radios.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormLink from '@/components/form/link.vue'; -import FormButton from '@/components/form/button.vue'; -import { applyTheme, validateTheme } from '@/scripts/theme'; -import * as os from '@/os'; -import { ColdDeviceStorage } from '@/store'; -import { addTheme, getThemes } from '@/theme-store'; +import FormTextarea from '@client/components/form/textarea.vue'; +import FormSelect from '@client/components/form/select.vue'; +import FormRadios from '@client/components/form/radios.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormLink from '@client/components/form/link.vue'; +import FormButton from '@client/components/form/button.vue'; +import { applyTheme, validateTheme } from '@client/scripts/theme'; +import * as os from '@client/os'; +import { ColdDeviceStorage } from '@client/store'; +import { addTheme, getThemes } from '@client/theme-store'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/theme.manage.vue b/src/client/pages/settings/theme.manage.vue index f08c3547189a9046f7420f0e1888a5f979d263a8..da7bb27030cddfc7b7a6e956153575ad87b1c650 100644 --- a/src/client/pages/settings/theme.manage.vue +++ b/src/client/pages/settings/theme.manage.vue @@ -26,18 +26,18 @@ import { defineComponent } from 'vue'; import { faPalette, faDownload, faFolderOpen, faCheck, faTrashAlt, faEye } from '@fortawesome/free-solid-svg-icons'; import * as JSON5 from 'json5'; -import FormTextarea from '@/components/form/textarea.vue'; -import FormSelect from '@/components/form/select.vue'; -import FormRadios from '@/components/form/radios.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormInput from '@/components/form/input.vue'; -import FormButton from '@/components/form/button.vue'; -import { Theme, builtinThemes } from '@/scripts/theme'; -import copyToClipboard from '@/scripts/copy-to-clipboard'; -import * as os from '@/os'; -import { ColdDeviceStorage } from '@/store'; -import { getThemes, removeTheme } from '@/theme-store'; +import FormTextarea from '@client/components/form/textarea.vue'; +import FormSelect from '@client/components/form/select.vue'; +import FormRadios from '@client/components/form/radios.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormInput from '@client/components/form/input.vue'; +import FormButton from '@client/components/form/button.vue'; +import { Theme, builtinThemes } from '@client/scripts/theme'; +import copyToClipboard from '@client/scripts/copy-to-clipboard'; +import * as os from '@client/os'; +import { ColdDeviceStorage } from '@client/store'; +import { getThemes, removeTheme } from '@client/theme-store'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/theme.vue b/src/client/pages/settings/theme.vue index ac57c51df4826a8b78430f38f1b6412b66bfc6fd..14cdb533ac4c164ccfb49f3eb54fc4c5aa04a496 100644 --- a/src/client/pages/settings/theme.vue +++ b/src/client/pages/settings/theme.vue @@ -65,19 +65,19 @@ <script lang="ts"> import { computed, defineComponent, onMounted, ref, watch } from 'vue'; import { faPalette, faDownload, faFolderOpen, faCheck, faTrashAlt, faEye, faGlobe, faPaintRoller } from '@fortawesome/free-solid-svg-icons'; -import FormSwitch from '@/components/form/switch.vue'; -import FormSelect from '@/components/form/select.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormLink from '@/components/form/link.vue'; -import FormButton from '@/components/form/button.vue'; -import { builtinThemes, applyTheme } from '@/scripts/theme'; -import { selectFile } from '@/scripts/select-file'; -import { isDeviceDarkmode } from '@/scripts/is-device-darkmode'; -import { ColdDeviceStorage } from '@/store'; -import { i18n } from '@/i18n'; -import { defaultStore } from '@/store'; -import { fetchThemes, getThemes } from '@/theme-store'; +import FormSwitch from '@client/components/form/switch.vue'; +import FormSelect from '@client/components/form/select.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormLink from '@client/components/form/link.vue'; +import FormButton from '@client/components/form/button.vue'; +import { builtinThemes, applyTheme } from '@client/scripts/theme'; +import { selectFile } from '@client/scripts/select-file'; +import { isDeviceDarkmode } from '@client/scripts/is-device-darkmode'; +import { ColdDeviceStorage } from '@client/store'; +import { i18n } from '@client/i18n'; +import { defaultStore } from '@client/store'; +import { fetchThemes, getThemes } from '@client/theme-store'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/update.vue b/src/client/pages/settings/update.vue index d172ceb10a4261be47431caac43cae01704d3d5a..a8da8bf11c8bf29eba26a1ffe13c934566b7954d 100644 --- a/src/client/pages/settings/update.vue +++ b/src/client/pages/settings/update.vue @@ -31,16 +31,16 @@ <script lang="ts"> import { defineAsyncComponent, defineComponent } from 'vue'; import { faInfoCircle, faSyncAlt } from '@fortawesome/free-solid-svg-icons'; -import FormSwitch from '@/components/form/switch.vue'; -import FormSelect from '@/components/form/select.vue'; -import FormLink from '@/components/form/link.vue'; -import FormBase from '@/components/form/base.vue'; -import FormGroup from '@/components/form/group.vue'; -import FormButton from '@/components/form/button.vue'; -import FormKeyValueView from '@/components/form/key-value-view.vue'; -import MkInfo from '@/components/ui/info.vue'; -import * as os from '@/os'; -import { version, instanceName } from '@/config'; +import FormSwitch from '@client/components/form/switch.vue'; +import FormSelect from '@client/components/form/select.vue'; +import FormLink from '@client/components/form/link.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormGroup from '@client/components/form/group.vue'; +import FormButton from '@client/components/form/button.vue'; +import FormKeyValueView from '@client/components/form/key-value-view.vue'; +import MkInfo from '@client/components/ui/info.vue'; +import * as os from '@client/os'; +import { version, instanceName } from '@client/config'; export default defineComponent({ components: { diff --git a/src/client/pages/settings/word-mute.vue b/src/client/pages/settings/word-mute.vue index 38dbc2c6297a3b60e8170fc025f0ce914f54bdcb..26cc7a3d853a0a2a43be399abb34428b83a1f108 100644 --- a/src/client/pages/settings/word-mute.vue +++ b/src/client/pages/settings/word-mute.vue @@ -33,14 +33,14 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faCommentSlash, faSave } from '@fortawesome/free-solid-svg-icons'; -import FormTextarea from '@/components/form/textarea.vue'; -import FormBase from '@/components/form/base.vue'; -import FormKeyValueView from '@/components/form/key-value-view.vue'; -import FormButton from '@/components/form/button.vue'; -import MkTab from '@/components/tab.vue'; -import MkInfo from '@/components/ui/info.vue'; -import * as os from '@/os'; -import number from '@/filters/number'; +import FormTextarea from '@client/components/form/textarea.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormKeyValueView from '@client/components/form/key-value-view.vue'; +import FormButton from '@client/components/form/button.vue'; +import MkTab from '@client/components/tab.vue'; +import MkInfo from '@client/components/ui/info.vue'; +import * as os from '@client/os'; +import number from '@client/filters/number'; export default defineComponent({ components: { diff --git a/src/client/pages/share.vue b/src/client/pages/share.vue index 7912e5421fbb1fb70db1e43491196645db988a76..41ce4d21f7d6c232b58315e7da60db9c8bb6ecef 100644 --- a/src/client/pages/share.vue +++ b/src/client/pages/share.vue @@ -14,9 +14,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faShareAlt } from '@fortawesome/free-solid-svg-icons'; -import MkButton from '@/components/ui/button.vue'; -import XPostForm from '@/components/post-form.vue'; -import * as os from '@/os'; +import MkButton from '@client/components/ui/button.vue'; +import XPostForm from '@client/components/post-form.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/tag.vue b/src/client/pages/tag.vue index 910e7cd02884fa8222fe7418d1bcda3fa00456c9..7561eba2ed84b0367b563192b18b4e97534de28b 100644 --- a/src/client/pages/tag.vue +++ b/src/client/pages/tag.vue @@ -7,8 +7,8 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faHashtag } from '@fortawesome/free-solid-svg-icons'; -import Progress from '@/scripts/loading'; -import XNotes from '@/components/notes.vue'; +import Progress from '@client/scripts/loading'; +import XNotes from '@client/components/notes.vue'; export default defineComponent({ components: { diff --git a/src/client/pages/test.vue b/src/client/pages/test.vue index 2f890e78a68eeb56a9859cc7aa21a057a75dfb61..af8395b2c3761b9e857ac9ea6f5ab56e3fb4483d 100644 --- a/src/client/pages/test.vue +++ b/src/client/pages/test.vue @@ -133,12 +133,12 @@ <script lang="ts"> import { defineComponent, defineAsyncComponent } from 'vue'; import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; -import MkButton from '@/components/ui/button.vue'; -import MkInput from '@/components/ui/input.vue'; -import MkSwitch from '@/components/ui/switch.vue'; -import MkTextarea from '@/components/ui/textarea.vue'; -import MkRadio from '@/components/ui/radio.vue'; -import * as os from '@/os'; +import MkButton from '@client/components/ui/button.vue'; +import MkInput from '@client/components/ui/input.vue'; +import MkSwitch from '@client/components/ui/switch.vue'; +import MkTextarea from '@client/components/ui/textarea.vue'; +import MkRadio from '@client/components/ui/radio.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/theme-editor.vue b/src/client/pages/theme-editor.vue index 2bf0a4383ec21d2e0fa8cff21b16ef60c30c001e..5ee0a704b04bb9ce5f3cffcab3e70ef3159df3eb 100644 --- a/src/client/pages/theme-editor.vue +++ b/src/client/pages/theme-editor.vue @@ -57,16 +57,16 @@ import * as tinycolor from 'tinycolor2'; import { v4 as uuid} from 'uuid'; import * as JSON5 from 'json5'; -import FormBase from '@/components/form/base.vue'; -import FormButton from '@/components/form/button.vue'; -import FormTextarea from '@/components/form/textarea.vue'; -import FormGroup from '@/components/form/group.vue'; +import FormBase from '@client/components/form/base.vue'; +import FormButton from '@client/components/form/button.vue'; +import FormTextarea from '@client/components/form/textarea.vue'; +import FormGroup from '@client/components/form/group.vue'; -import { Theme, applyTheme, validateTheme, darkTheme, lightTheme } from '@/scripts/theme'; -import { host } from '@/config'; -import * as os from '@/os'; -import { ColdDeviceStorage } from '@/store'; -import { addTheme } from '@/theme-store'; +import { Theme, applyTheme, validateTheme, darkTheme, lightTheme } from '@client/scripts/theme'; +import { host } from '@client/config'; +import * as os from '@client/os'; +import { ColdDeviceStorage } from '@client/store'; +import { addTheme } from '@client/theme-store'; export default defineComponent({ components: { diff --git a/src/client/pages/timeline.tutorial.vue b/src/client/pages/timeline.tutorial.vue index 203527ef0a065eb11f76d553d70dd183232cd629..bcbf16acc76b5466c39c1da05bb7f450fdb97e8d 100644 --- a/src/client/pages/timeline.tutorial.vue +++ b/src/client/pages/timeline.tutorial.vue @@ -68,7 +68,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faInfoCircle, faChevronLeft, faChevronRight, faCheck } from '@fortawesome/free-solid-svg-icons' -import MkButton from '@/components/ui/button.vue'; +import MkButton from '@client/components/ui/button.vue'; export default defineComponent({ components: { diff --git a/src/client/pages/timeline.vue b/src/client/pages/timeline.vue index cb3ec2a7efad8ec18dd3b983d60e0767e8331254..e0c0b2995a40a6c463dbea0490288d1a99703066 100644 --- a/src/client/pages/timeline.vue +++ b/src/client/pages/timeline.vue @@ -41,11 +41,11 @@ import { defineComponent, defineAsyncComponent, computed } from 'vue'; import { faAngleDown, faAngleUp, faHome, faShareAlt, faGlobe, faListUl, faSatellite, faSatelliteDish, faCircle, faEllipsisH, faPencilAlt, faAt } from '@fortawesome/free-solid-svg-icons'; import { faComments, faEnvelope } from '@fortawesome/free-regular-svg-icons'; -import Progress from '@/scripts/loading'; -import XTimeline from '@/components/timeline.vue'; -import XPostForm from '@/components/post-form.vue'; -import { scroll } from '@/scripts/scroll'; -import * as os from '@/os'; +import Progress from '@client/scripts/loading'; +import XTimeline from '@client/components/timeline.vue'; +import XPostForm from '@client/components/post-form.vue'; +import { scroll } from '@client/scripts/scroll'; +import * as os from '@client/os'; export default defineComponent({ name: 'timeline', diff --git a/src/client/pages/user/clips.vue b/src/client/pages/user/clips.vue index 2a66b6752debdef2b5683ba34d72341d289a8400..cf713d6daa0801d9c163acfdca3edd8bf4128d7e 100644 --- a/src/client/pages/user/clips.vue +++ b/src/client/pages/user/clips.vue @@ -11,7 +11,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import MkPagination from '@/components/ui/pagination.vue'; +import MkPagination from '@client/components/ui/pagination.vue'; import { userPage, acct } from '../../filters/user'; export default defineComponent({ diff --git a/src/client/pages/user/follow-list.vue b/src/client/pages/user/follow-list.vue index 90a67e9a8e7456c5a6f1c0f22db6e40f411ae469..eef8409a064c0ceb391f3d985b9b878b206ccbdb 100644 --- a/src/client/pages/user/follow-list.vue +++ b/src/client/pages/user/follow-list.vue @@ -10,8 +10,8 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import MkUserInfo from '@/components/user-info.vue'; -import MkPagination from '@/components/ui/pagination.vue'; +import MkUserInfo from '@client/components/user-info.vue'; +import MkPagination from '@client/components/ui/pagination.vue'; import { userPage, acct } from '../../filters/user'; export default defineComponent({ diff --git a/src/client/pages/user/index.activity.vue b/src/client/pages/user/index.activity.vue index 838fbc223f589898705bc9cd07534f9986ae5346..3eca1ab210aa767a215f1a1667b505a3d0d78b71 100644 --- a/src/client/pages/user/index.activity.vue +++ b/src/client/pages/user/index.activity.vue @@ -12,8 +12,8 @@ import { defineComponent } from 'vue'; import ApexCharts from 'apexcharts'; import { faChartBar } from '@fortawesome/free-solid-svg-icons'; -import * as os from '@/os'; -import MkContainer from '@/components/ui/container.vue'; +import * as os from '@client/os'; +import MkContainer from '@client/components/ui/container.vue'; export default defineComponent({ components: { diff --git a/src/client/pages/user/index.photos.vue b/src/client/pages/user/index.photos.vue index d0c6f19349f8e985f66c94af4732acecbbc40abc..54796bccbce70300c41c30c77f3f1b35c25f28e5 100644 --- a/src/client/pages/user/index.photos.vue +++ b/src/client/pages/user/index.photos.vue @@ -18,10 +18,10 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faImage } from '@fortawesome/free-solid-svg-icons'; -import { getStaticImageUrl } from '@/scripts/get-static-image-url'; +import { getStaticImageUrl } from '@client/scripts/get-static-image-url'; import notePage from '../../filters/note'; -import * as os from '@/os'; -import MkContainer from '@/components/ui/container.vue'; +import * as os from '@client/os'; +import MkContainer from '@client/components/ui/container.vue'; export default defineComponent({ components: { diff --git a/src/client/pages/user/index.timeline.vue b/src/client/pages/user/index.timeline.vue index f16297e21fbcbe952d49632a4bad3d1c9a9e74f9..8c824a2111b2a50e142b2a40b5b5c914f7520533 100644 --- a/src/client/pages/user/index.timeline.vue +++ b/src/client/pages/user/index.timeline.vue @@ -11,9 +11,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import XNotes from '@/components/notes.vue'; -import MkTab from '@/components/tab.vue'; -import * as os from '@/os'; +import XNotes from '@client/components/notes.vue'; +import MkTab from '@client/components/tab.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/user/index.vue b/src/client/pages/user/index.vue index 5229db9ee3b51d7f7081868a4be4d3de84bd68c9..5ca29a3e4122856c8ed0d1a872e346a70186232f 100644 --- a/src/client/pages/user/index.vue +++ b/src/client/pages/user/index.vue @@ -221,19 +221,19 @@ import { faExclamationTriangle, faEllipsisH, faRobot, faLock, faBookmark, faChar import { faCalendarAlt, faBookmark as farBookmark, faCommentAlt } from '@fortawesome/free-regular-svg-icons'; import * as age from 's-age'; import XUserTimeline from './index.timeline.vue'; -import XNote from '@/components/note.vue'; -import MkFollowButton from '@/components/follow-button.vue'; -import MkContainer from '@/components/ui/container.vue'; -import MkFolder from '@/components/ui/folder.vue'; -import MkRemoteCaution from '@/components/remote-caution.vue'; -import MkTab from '@/components/tab.vue'; -import Progress from '@/scripts/loading'; -import parseAcct from '../../../misc/acct/parse'; -import { getScrollPosition } from '@/scripts/scroll'; -import { getUserMenu } from '@/scripts/get-user-menu'; +import XNote from '@client/components/note.vue'; +import MkFollowButton from '@client/components/follow-button.vue'; +import MkContainer from '@client/components/ui/container.vue'; +import MkFolder from '@client/components/ui/folder.vue'; +import MkRemoteCaution from '@client/components/remote-caution.vue'; +import MkTab from '@client/components/tab.vue'; +import Progress from '@client/scripts/loading'; +import parseAcct from '@/misc/acct/parse'; +import { getScrollPosition } from '@client/scripts/scroll'; +import { getUserMenu } from '@client/scripts/get-user-menu'; import number from '../../filters/number'; import { userPage, acct as getAcct } from '../../filters/user'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/user/pages.vue b/src/client/pages/user/pages.vue index 66658ac57d3766ac2d765195b73afe3914013c2e..1d2e96b351c8d7a0b1a17d8ea32bbbe2d1da7f0b 100644 --- a/src/client/pages/user/pages.vue +++ b/src/client/pages/user/pages.vue @@ -8,8 +8,8 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import MkPagePreview from '@/components/page-preview.vue'; -import MkPagination from '@/components/ui/pagination.vue'; +import MkPagePreview from '@client/components/page-preview.vue'; +import MkPagination from '@client/components/ui/pagination.vue'; import { userPage, acct } from '../../filters/user'; export default defineComponent({ diff --git a/src/client/pages/v.vue b/src/client/pages/v.vue index f456a299931210d41c217881d094c3319339d23f..a9deea24b4be69e50e2d4fed791156fa49656780 100644 --- a/src/client/pages/v.vue +++ b/src/client/pages/v.vue @@ -13,7 +13,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faInfoCircle } from '@fortawesome/free-solid-svg-icons'; -import { version } from '@/config'; +import { version } from '@client/config'; export default defineComponent({ data() { diff --git a/src/client/pages/welcome.entrance.a.vue b/src/client/pages/welcome.entrance.a.vue index fa69c1a124f86eb972ffdd56c3a1e6cfe013242b..9a24f868b6405ee1fa4d5f4f3540d349b6fa6e41 100644 --- a/src/client/pages/welcome.entrance.a.vue +++ b/src/client/pages/welcome.entrance.a.vue @@ -54,15 +54,15 @@ import { defineComponent } from 'vue'; import { faEllipsisH, faInfoCircle, faQuestionCircle } from '@fortawesome/free-solid-svg-icons'; import { toUnicode } from 'punycode'; -import XSigninDialog from '@/components/signin-dialog.vue'; -import XSignupDialog from '@/components/signup-dialog.vue'; -import MkButton from '@/components/ui/button.vue'; -import XNote from '@/components/note.vue'; -import MkFeaturedPhotos from '@/components/featured-photos.vue'; +import XSigninDialog from '@client/components/signin-dialog.vue'; +import XSignupDialog from '@client/components/signup-dialog.vue'; +import MkButton from '@client/components/ui/button.vue'; +import XNote from '@client/components/note.vue'; +import MkFeaturedPhotos from '@client/components/featured-photos.vue'; import XTimeline from './welcome.timeline.vue'; -import { host, instanceName } from '@/config'; -import * as os from '@/os'; -import number from '@/filters/number'; +import { host, instanceName } from '@client/config'; +import * as os from '@client/os'; +import number from '@client/filters/number'; export default defineComponent({ components: { diff --git a/src/client/pages/welcome.entrance.b.vue b/src/client/pages/welcome.entrance.b.vue index 203618f17e51c11a496d9a327e81d907e0975eba..6e93f1740407c2612276b41264d20cbdbb20ff20 100644 --- a/src/client/pages/welcome.entrance.b.vue +++ b/src/client/pages/welcome.entrance.b.vue @@ -38,15 +38,15 @@ import { defineComponent } from 'vue'; import { faEllipsisH, faInfoCircle, faQuestionCircle } from '@fortawesome/free-solid-svg-icons'; import { toUnicode } from 'punycode'; -import XSigninDialog from '@/components/signin-dialog.vue'; -import XSignupDialog from '@/components/signup-dialog.vue'; -import MkButton from '@/components/ui/button.vue'; -import XNote from '@/components/note.vue'; -import MkFeaturedPhotos from '@/components/featured-photos.vue'; +import XSigninDialog from '@client/components/signin-dialog.vue'; +import XSignupDialog from '@client/components/signup-dialog.vue'; +import MkButton from '@client/components/ui/button.vue'; +import XNote from '@client/components/note.vue'; +import MkFeaturedPhotos from '@client/components/featured-photos.vue'; import XTimeline from './welcome.timeline.vue'; -import { host, instanceName } from '@/config'; -import * as os from '@/os'; -import number from '@/filters/number'; +import { host, instanceName } from '@client/config'; +import * as os from '@client/os'; +import number from '@client/filters/number'; export default defineComponent({ components: { diff --git a/src/client/pages/welcome.entrance.c.vue b/src/client/pages/welcome.entrance.c.vue index 4c98baf8ea604027f52ab713b9c3fabb11cc6676..cefe239da9442a8be836894674f33ae906890c25 100644 --- a/src/client/pages/welcome.entrance.c.vue +++ b/src/client/pages/welcome.entrance.c.vue @@ -58,15 +58,15 @@ import { defineComponent } from 'vue'; import { faEllipsisH, faInfoCircle, faQuestionCircle } from '@fortawesome/free-solid-svg-icons'; import { toUnicode } from 'punycode'; -import XSigninDialog from '@/components/signin-dialog.vue'; -import XSignupDialog from '@/components/signup-dialog.vue'; -import MkButton from '@/components/ui/button.vue'; -import XNote from '@/components/note.vue'; -import MkFeaturedPhotos from '@/components/featured-photos.vue'; +import XSigninDialog from '@client/components/signin-dialog.vue'; +import XSignupDialog from '@client/components/signup-dialog.vue'; +import MkButton from '@client/components/ui/button.vue'; +import XNote from '@client/components/note.vue'; +import MkFeaturedPhotos from '@client/components/featured-photos.vue'; import XTimeline from './welcome.timeline.vue'; -import { host, instanceName } from '@/config'; -import * as os from '@/os'; -import number from '@/filters/number'; +import { host, instanceName } from '@client/config'; +import * as os from '@client/os'; +import number from '@client/filters/number'; export default defineComponent({ components: { diff --git a/src/client/pages/welcome.setup.vue b/src/client/pages/welcome.setup.vue index bc994099ac45cd8348f09aa1f600ef5274d9a507..db64f6b1944e14c78fd0e224fbae11f70cfca81e 100644 --- a/src/client/pages/welcome.setup.vue +++ b/src/client/pages/welcome.setup.vue @@ -22,11 +22,11 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faLock } from '@fortawesome/free-solid-svg-icons'; -import MkButton from '@/components/ui/button.vue'; -import MkInput from '@/components/ui/input.vue'; -import { host } from '@/config'; -import * as os from '@/os'; -import { login } from '@/account'; +import MkButton from '@client/components/ui/button.vue'; +import MkInput from '@client/components/ui/input.vue'; +import { host } from '@client/config'; +import * as os from '@client/os'; +import { login } from '@client/account'; export default defineComponent({ components: { diff --git a/src/client/pages/welcome.timeline.vue b/src/client/pages/welcome.timeline.vue index a498b578e248c4fbbbe24248c7020204ca98c5c2..12c8a4d4f4ce4a416ffbb57bef7895c9bf1a3d58 100644 --- a/src/client/pages/welcome.timeline.vue +++ b/src/client/pages/welcome.timeline.vue @@ -11,8 +11,8 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import XReactionsViewer from '@/components/reactions-viewer.vue'; -import * as os from '@/os'; +import XReactionsViewer from '@client/components/reactions-viewer.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/pages/welcome.vue b/src/client/pages/welcome.vue index 99560eea21971577b91c90e561269a18b9f553bc..845a304854a90593e2d49ed69af20d944ab576c0 100644 --- a/src/client/pages/welcome.vue +++ b/src/client/pages/welcome.vue @@ -9,8 +9,8 @@ import { defineComponent } from 'vue'; import XSetup from './welcome.setup.vue'; import XEntrance from './welcome.entrance.a.vue'; -import { instanceName } from '@/config'; -import * as os from '@/os'; +import { instanceName } from '@client/config'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/plugin.ts b/src/client/plugin.ts index c56ee1eb25d26fc1aabeb06c11ca8037916cad89..6bdc4fe4d57189502b4a9dcaebf894bcbe0bbca7 100644 --- a/src/client/plugin.ts +++ b/src/client/plugin.ts @@ -1,9 +1,9 @@ import { AiScript, utils, values } from '@syuilo/aiscript'; import { deserialize } from '@syuilo/aiscript/built/serializer'; import { jsToVal } from '@syuilo/aiscript/built/interpreter/util'; -import { createAiScriptEnv } from '@/scripts/aiscript/api'; -import { dialog } from '@/os'; -import { noteActions, notePostInterruptors, noteViewInterruptors, postFormActions, userActions } from '@/store'; +import { createAiScriptEnv } from '@client/scripts/aiscript/api'; +import { dialog } from '@client/os'; +import { noteActions, notePostInterruptors, noteViewInterruptors, postFormActions, userActions } from '@client/store'; const pluginContexts = new Map<string, AiScript>(); diff --git a/src/client/router.ts b/src/client/router.ts index d3cfead2583c2cea193f1bbb96a96a1a4caaa5d8..53516db97b95b07d8f00476b9ab8739d57090521 100644 --- a/src/client/router.ts +++ b/src/client/router.ts @@ -1,8 +1,8 @@ import { defineAsyncComponent, markRaw } from 'vue'; import { createRouter, createWebHistory } from 'vue-router'; -import MkLoading from '@/pages/_loading_.vue'; -import MkError from '@/pages/_error_.vue'; -import MkTimeline from '@/pages/timeline.vue'; +import MkLoading from '@client/pages/_loading_.vue'; +import MkError from '@client/pages/_error_.vue'; +import MkTimeline from '@client/pages/timeline.vue'; import { $i } from './account'; const page = (path: string) => defineAsyncComponent({ diff --git a/src/client/scripts/aiscript/api.ts b/src/client/scripts/aiscript/api.ts index 20c15d809e10757077a08ef70d893759fcdeed01..5dd08f34ac4b807a280ea115840193b630a1992d 100644 --- a/src/client/scripts/aiscript/api.ts +++ b/src/client/scripts/aiscript/api.ts @@ -1,6 +1,6 @@ import { utils, values } from '@syuilo/aiscript'; -import * as os from '@/os'; -import { $i } from '@/account'; +import * as os from '@client/os'; +import { $i } from '@client/account'; export function createAiScriptEnv(opts) { let apiRequests = 0; diff --git a/src/client/scripts/autocomplete.ts b/src/client/scripts/autocomplete.ts index 83ceece5df2b09bc1fc51d08cd41ce25ca116c23..eab893a386ff932b3d2c3a78f387f2de516ab4fe 100644 --- a/src/client/scripts/autocomplete.ts +++ b/src/client/scripts/autocomplete.ts @@ -1,7 +1,7 @@ import { Ref, ref } from 'vue'; import * as getCaretCoordinates from 'textarea-caret'; import { toASCII } from 'punycode'; -import { popup } from '@/os'; +import { popup } from '@client/os'; export class Autocomplete { private suggestion: { @@ -150,7 +150,7 @@ export class Autocomplete { const _y = ref(y); const _q = ref(q); - const { dispose } = await popup(import('@/components/autocomplete.vue'), { + const { dispose } = await popup(import('@client/components/autocomplete.vue'), { textarea: this.textarea, close: this.close, type: type, diff --git a/src/client/scripts/gen-search-query.ts b/src/client/scripts/gen-search-query.ts index 670d915104bc83d16c80652a83219c23fd0973c9..a1db2671230e20ac54d8f8f1ca348554d7a27ed0 100644 --- a/src/client/scripts/gen-search-query.ts +++ b/src/client/scripts/gen-search-query.ts @@ -1,5 +1,5 @@ -import parseAcct from '../../misc/acct/parse'; -import { host as localHost } from '@/config'; +import parseAcct from '@/misc/acct/parse'; +import { host as localHost } from '@client/config'; export async function genSearchQuery(v: any, q: string) { let host: string; diff --git a/src/client/scripts/get-static-image-url.ts b/src/client/scripts/get-static-image-url.ts index e932eb6da5fa06385be4a1b423a0f58360e17c64..e2728d73f4fb111bda4540f4ee53e21ac10b63c8 100644 --- a/src/client/scripts/get-static-image-url.ts +++ b/src/client/scripts/get-static-image-url.ts @@ -1,4 +1,4 @@ -import { url as instanceUrl } from '@/config'; +import { url as instanceUrl } from '@client/config'; import * as url from '../../prelude/url'; export function getStaticImageUrl(baseUrl: string): string { diff --git a/src/client/scripts/get-user-menu.ts b/src/client/scripts/get-user-menu.ts index 0e4e4af5d36cd9a8c7e651087f6b81ceff957af5..163eff619c66ab112e8c4a7d1f2b17ae2625a5e3 100644 --- a/src/client/scripts/get-user-menu.ts +++ b/src/client/scripts/get-user-menu.ts @@ -1,13 +1,13 @@ import { faAt, faListUl, faEye, faEyeSlash, faBan, faPencilAlt, faComments, faUsers, faMicrophoneSlash, faPlug, faExclamationCircle } from '@fortawesome/free-solid-svg-icons'; import { faSnowflake, faEnvelope } from '@fortawesome/free-regular-svg-icons'; -import { i18n } from '@/i18n'; -import copyToClipboard from '@/scripts/copy-to-clipboard'; -import { host } from '@/config'; -import getAcct from '../../misc/acct/render'; -import * as os from '@/os'; -import { userActions } from '@/store'; -import { router } from '@/router'; -import { $i } from '@/account'; +import { i18n } from '@client/i18n'; +import copyToClipboard from '@client/scripts/copy-to-clipboard'; +import { host } from '@client/config'; +import getAcct from '@/misc/acct/render'; +import * as os from '@client/os'; +import { userActions } from '@client/store'; +import { router } from '@client/router'; +import { $i } from '@client/account'; export function getUserMenu(user) { const meId = $i ? $i.id : null; @@ -104,7 +104,7 @@ export function getUserMenu(user) { } function reportAbuse() { - os.popup(import('@/components/abuse-report-window.vue'), { + os.popup(import('@client/components/abuse-report-window.vue'), { user: user, }, {}, 'closed'); } diff --git a/src/client/scripts/hpml/evaluator.ts b/src/client/scripts/hpml/evaluator.ts index 20261d333d712d330378bb79299bdf71dfa3d398..68d140ff508d57cdb22be13c85291da5fad51ec6 100644 --- a/src/client/scripts/hpml/evaluator.ts +++ b/src/client/scripts/hpml/evaluator.ts @@ -1,11 +1,11 @@ import autobind from 'autobind-decorator'; import { PageVar, envVarsDef, Fn, HpmlScope, HpmlError } from '.'; -import { version } from '@/config'; +import { version } from '@client/config'; import { AiScript, utils, values } from '@syuilo/aiscript'; import { createAiScriptEnv } from '../aiscript/api'; import { collectPageVars } from '../collect-page-vars'; import { initHpmlLib, initAiLib } from './lib'; -import * as os from '@/os'; +import * as os from '@client/os'; import { markRaw, ref, Ref, unref } from 'vue'; import { Expr, isLiteralValue, Variable } from './expr'; diff --git a/src/client/scripts/initialize-sw.ts b/src/client/scripts/initialize-sw.ts index d6dbd5dbd42e29bfdd0388c5ba1cc4dfa7a0f2ad..6f1874572ade6bc3a18c2d7ea551bd750916b3cf 100644 --- a/src/client/scripts/initialize-sw.ts +++ b/src/client/scripts/initialize-sw.ts @@ -1,7 +1,7 @@ -import { instance } from '@/instance'; -import { $i } from '@/account'; -import { api } from '@/os'; -import { lang } from '@/config'; +import { instance } from '@client/instance'; +import { $i } from '@client/account'; +import { api } from '@client/os'; +import { lang } from '@client/config'; export async function initializeSw() { if (instance.swPublickey && diff --git a/src/client/scripts/paging.ts b/src/client/scripts/paging.ts index 6e3da941247ac790303606e35d720a3a06b4d3aa..2e49f1a64cd5c1324c9db91e72af6f38bdd33a68 100644 --- a/src/client/scripts/paging.ts +++ b/src/client/scripts/paging.ts @@ -1,5 +1,5 @@ import { markRaw } from 'vue'; -import * as os from '@/os'; +import * as os from '@client/os'; import { onScrollTop, isTopVisible, getScrollPosition, getScrollContainer } from './scroll'; const SECOND_FETCH_LIMIT = 30; diff --git a/src/client/scripts/please-login.ts b/src/client/scripts/please-login.ts index 928f6ec0f44e3a68731ecac7b214a093718b6dca..a584e9fa9671077e2b1d39c89b757ba3a33203a2 100644 --- a/src/client/scripts/please-login.ts +++ b/src/client/scripts/please-login.ts @@ -1,6 +1,6 @@ -import { $i } from '@/account'; -import { i18n } from '@/i18n'; -import { dialog } from '@/os'; +import { $i } from '@client/account'; +import { i18n } from '@client/i18n'; +import { dialog } from '@client/os'; export function pleaseLogin() { if ($i) return; diff --git a/src/client/scripts/popout.ts b/src/client/scripts/popout.ts index 51b8d72868deaaf230f767a0f347a40eb5fff407..6d92af4a05c34c424c261ce78ceb26dc5db5bb6c 100644 --- a/src/client/scripts/popout.ts +++ b/src/client/scripts/popout.ts @@ -1,4 +1,4 @@ -import * as config from '@/config'; +import * as config from '@client/config'; export function popout(path: string, w?: HTMLElement) { let url = path.startsWith('http://') || path.startsWith('https://') ? path : config.url + path; diff --git a/src/client/scripts/reaction-picker.ts b/src/client/scripts/reaction-picker.ts index e923326ece960648de9f2da3e50a1d7cabe0bed5..38699c0979fca94328888928c95bbbea7545d9df 100644 --- a/src/client/scripts/reaction-picker.ts +++ b/src/client/scripts/reaction-picker.ts @@ -1,5 +1,5 @@ import { Ref, ref } from 'vue'; -import { popup } from '@/os'; +import { popup } from '@client/os'; class ReactionPicker { private src: Ref<HTMLElement | null> = ref(null); @@ -12,7 +12,7 @@ class ReactionPicker { } public async init() { - await popup(import('@/components/emoji-picker-dialog.vue'), { + await popup(import('@client/components/emoji-picker-dialog.vue'), { src: this.src, asReactionPicker: true, manualShowing: this.manualShowing diff --git a/src/client/scripts/search.ts b/src/client/scripts/search.ts index 3e442cb94d1458f7cb6bdabaaf5c39f5fc6acb49..829065534c3e3f3e020ca2c0f2f7af7bcc93692e 100644 --- a/src/client/scripts/search.ts +++ b/src/client/scripts/search.ts @@ -1,7 +1,7 @@ import { faHistory } from '@fortawesome/free-solid-svg-icons'; -import * as os from '@/os'; -import { i18n } from '@/i18n'; -import { router } from '@/router'; +import * as os from '@client/os'; +import { i18n } from '@client/i18n'; +import { router } from '@client/router'; export async function search() { const { canceled, result: query } = await os.dialog({ diff --git a/src/client/scripts/select-file.ts b/src/client/scripts/select-file.ts index c083e1ef88957dba93482d86315b7c23af8dc4da..03ac863aa0c61de7bf4bfce1b32c97ff3a1e2ae9 100644 --- a/src/client/scripts/select-file.ts +++ b/src/client/scripts/select-file.ts @@ -1,6 +1,6 @@ import { faUpload, faCloud, faLink } from '@fortawesome/free-solid-svg-icons'; -import * as os from '@/os'; -import { i18n } from '@/i18n'; +import * as os from '@client/os'; +import { i18n } from '@client/i18n'; export function selectFile(src: any, label: string | null, multiple = false) { return new Promise((res, rej) => { diff --git a/src/client/scripts/sound.ts b/src/client/scripts/sound.ts index 9b7061d5fc789bf2a04f160a18e31f7c9b49e26b..d3422bfff291d86662e597ac6df5860cf3c3db82 100644 --- a/src/client/scripts/sound.ts +++ b/src/client/scripts/sound.ts @@ -1,4 +1,4 @@ -import { ColdDeviceStorage } from '@/store'; +import { ColdDeviceStorage } from '@client/store'; const cache = new Map<string, HTMLAudioElement>(); diff --git a/src/client/scripts/stream.ts b/src/client/scripts/stream.ts index 7330a2f8bbc6ac36fcb3fa870d9371e69b1b98b7..065059221d44006f9f20ba1267530b2bf5a2bc36 100644 --- a/src/client/scripts/stream.ts +++ b/src/client/scripts/stream.ts @@ -2,7 +2,7 @@ import autobind from 'autobind-decorator'; import { EventEmitter } from 'eventemitter3'; import ReconnectingWebsocket from 'reconnecting-websocket'; import { markRaw } from 'vue'; -import { debug, wsUrl } from '@/config'; +import { debug, wsUrl } from '@client/config'; import { query as urlQuery } from '../../prelude/url'; /** diff --git a/src/client/sidebar.ts b/src/client/sidebar.ts index 6bc786fdc0309c7d2a906cba9723416ca481a0c5..97036042cff88c31d9988e958bdd9abc30ef5a33 100644 --- a/src/client/sidebar.ts +++ b/src/client/sidebar.ts @@ -1,11 +1,11 @@ import { faBell, faComments, faEnvelope } from '@fortawesome/free-regular-svg-icons'; import { faAt, faBroadcastTower, faCloud, faColumns, faDoorClosed, faFileAlt, faFireAlt, faGamepad, faHashtag, faListUl, faPaperclip, faSatellite, faSatelliteDish, faSearch, faStar, faTerminal, faUserClock, faUsers } from '@fortawesome/free-solid-svg-icons'; import { computed } from 'vue'; -import { search } from '@/scripts/search'; -import * as os from '@/os'; -import { i18n } from '@/i18n'; +import { search } from '@client/scripts/search'; +import * as os from '@client/os'; +import { i18n } from '@client/i18n'; import { $i } from './account'; -import { unisonReload } from '@/scripts/unison-reload'; +import { unisonReload } from '@client/scripts/unison-reload'; export const sidebarDef = { notifications: { diff --git a/src/client/sw/compose-notification.ts b/src/client/sw/compose-notification.ts index e9586dd57425dde3abd7e5f89afcf44018e3b658..7ed0a95359027207637716efcd60a2f561672b46 100644 --- a/src/client/sw/compose-notification.ts +++ b/src/client/sw/compose-notification.ts @@ -3,8 +3,8 @@ */ declare var self: ServiceWorkerGlobalScope; -import { getNoteSummary } from '../../misc/get-note-summary'; -import getUserName from '../../misc/get-user-name'; +import { getNoteSummary } from '@/misc/get-note-summary'; +import getUserName from '@/misc/get-user-name'; export default async function(type, data, i18n): Promise<[string, NotificationOptions] | null | undefined> { if (!i18n) { diff --git a/src/client/sw/sw.ts b/src/client/sw/sw.ts index ec4de17551c216d9e09e8d93a0d0f93bf40d1b9d..5be4eb97708a96a8d128361e1b7a12feb86cccc6 100644 --- a/src/client/sw/sw.ts +++ b/src/client/sw/sw.ts @@ -4,8 +4,8 @@ declare var self: ServiceWorkerGlobalScope; import { get, set } from 'idb-keyval'; -import composeNotification from '@/sw/compose-notification'; -import { I18n } from '../../misc/i18n'; +import composeNotification from '@client/sw/compose-notification'; +import { I18n } from '@/misc/i18n'; //#region Variables const version = _VERSION_; diff --git a/src/client/theme-store.ts b/src/client/theme-store.ts index 8e21af70fcdd80680b87992e8582f55f4cdd0df9..3793debb9e46fe880723fd97f9de8698b6fdf556 100644 --- a/src/client/theme-store.ts +++ b/src/client/theme-store.ts @@ -1,5 +1,5 @@ -import { api } from '@/os'; -import { $i } from '@/account'; +import { api } from '@client/os'; +import { $i } from '@client/account'; import { ColdDeviceStorage } from './store'; import { Theme } from './scripts/theme'; diff --git a/src/client/tsconfig.json b/src/client/tsconfig.json index 01a77cec3ac2ecd1ce786c9e09b4e0265b5c400a..ac7ef7ddfcafd68d1952aedf3377a7a429b7b416 100644 --- a/src/client/tsconfig.json +++ b/src/client/tsconfig.json @@ -20,7 +20,8 @@ "resolveJsonModule": true, "baseUrl": ".", "paths": { - "@/*": ["./*"] + "@/*": ["../*"], + "@client/*": ["./*"] }, "typeRoots": [ "node_modules/@types", diff --git a/src/client/ui/_common_/common.vue b/src/client/ui/_common_/common.vue index e5cdaca235691871d6e4fa5a0360a760fd87c652..785b1631dbe3b745ae340743fa4ff559587241df 100644 --- a/src/client/ui/_common_/common.vue +++ b/src/client/ui/_common_/common.vue @@ -15,9 +15,9 @@ <script lang="ts"> import { defineAsyncComponent, defineComponent } from 'vue'; -import { stream, popup, popups, uploads, pendingApiRequestsCount } from '@/os'; -import * as sound from '@/scripts/sound'; -import { $i } from '@/account'; +import { stream, popup, popups, uploads, pendingApiRequestsCount } from '@client/os'; +import * as sound from '@client/scripts/sound'; +import { $i } from '@client/account'; export default defineComponent({ components: { @@ -34,7 +34,7 @@ export default defineComponent({ id: notification.id }); - popup(import('@/components/toast.vue'), { + popup(import('@client/components/toast.vue'), { notification }, {}, 'closed'); } diff --git a/src/client/ui/_common_/stream-indicator.vue b/src/client/ui/_common_/stream-indicator.vue index 8b1b4b567ce01e37b4a4c20705a0f365b09b997b..23f2357d8566d5a75cdd998767cb79e184c2d8e9 100644 --- a/src/client/ui/_common_/stream-indicator.vue +++ b/src/client/ui/_common_/stream-indicator.vue @@ -10,7 +10,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ data() { diff --git a/src/client/ui/_common_/upload.vue b/src/client/ui/_common_/upload.vue index c1986737d744098b3bb6e0e501328f6c73ba40c0..bd3b2cd6848a876397b76b0af5b755e7c46386d3 100644 --- a/src/client/ui/_common_/upload.vue +++ b/src/client/ui/_common_/upload.vue @@ -20,7 +20,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faSpinner } from '@fortawesome/free-solid-svg-icons'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ data() { diff --git a/src/client/ui/chat/header-clock.vue b/src/client/ui/chat/header-clock.vue index 3488289c2145c67ccb816f4b17dba0d75eda0cdb..69ec3cb64b58e8ac6143c1a5bbe732333918021f 100644 --- a/src/client/ui/chat/header-clock.vue +++ b/src/client/ui/chat/header-clock.vue @@ -15,7 +15,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ data() { diff --git a/src/client/ui/chat/index.vue b/src/client/ui/chat/index.vue index 26c81a1aa904842cd938730837b8cfcdd9f1c72a..91d3fb5c9dd3105baaddbc464f78de673f293079 100644 --- a/src/client/ui/chat/index.vue +++ b/src/client/ui/chat/index.vue @@ -135,18 +135,18 @@ import { defineComponent, defineAsyncComponent } from 'vue'; import { faLayerGroup, faBars, faHome, faCircle, faWindowMaximize, faColumns, faPencilAlt, faShareAlt, faSatelliteDish, faListUl, faSatellite, faCog, faSearch, faPlus, faStar, faAt, faLink, faEllipsisH, faGlobe } from '@fortawesome/free-solid-svg-icons'; import { faBell, faStar as farStar, faEnvelope, faComments, faCalendarAlt } from '@fortawesome/free-regular-svg-icons'; -import { instanceName, url } from '@/config'; -import XSidebar from '@/components/sidebar.vue'; +import { instanceName, url } from '@client/config'; +import XSidebar from '@client/components/sidebar.vue'; import XWidgets from './widgets.vue'; import XCommon from '../_common_/common.vue'; import XSide from './side.vue'; import XTimeline from './timeline.vue'; import XHeaderClock from './header-clock.vue'; -import * as os from '@/os'; -import { router } from '@/router'; -import { sidebarDef } from '@/sidebar'; -import { search } from '@/scripts/search'; -import copyToClipboard from '@/scripts/copy-to-clipboard'; +import * as os from '@client/os'; +import { router } from '@client/router'; +import { sidebarDef } from '@client/sidebar'; +import { search } from '@client/scripts/search'; +import copyToClipboard from '@client/scripts/copy-to-clipboard'; import { store } from './store'; export default defineComponent({ diff --git a/src/client/ui/chat/note-header.vue b/src/client/ui/chat/note-header.vue index cda8ae00e2a1126d6bc2f14de3a769e280661073..55228c4c382230b79bb10d30d6ed76cde1b8c551 100644 --- a/src/client/ui/chat/note-header.vue +++ b/src/client/ui/chat/note-header.vue @@ -26,9 +26,9 @@ import { defineComponent } from 'vue'; import { faHome, faUnlock, faEnvelope, faMobileAlt, faBookmark, faBiohazard } from '@fortawesome/free-solid-svg-icons'; import { faBookmark as farBookmark } from '@fortawesome/free-regular-svg-icons'; -import notePage from '@/filters/note'; -import { userPage } from '@/filters/user'; -import * as os from '@/os'; +import notePage from '@client/filters/note'; +import { userPage } from '@client/filters/user'; +import * as os from '@client/os'; export default defineComponent({ props: { diff --git a/src/client/ui/chat/note-preview.vue b/src/client/ui/chat/note-preview.vue index 48614737016c3f55b7459f22977c074ad091a1c3..77949e314ba6dabb01875390cfcfe3418ea4e135 100644 --- a/src/client/ui/chat/note-preview.vue +++ b/src/client/ui/chat/note-preview.vue @@ -20,8 +20,8 @@ import { defineComponent } from 'vue'; import XNoteHeader from './note-header.vue'; import XSubNoteContent from './sub-note-content.vue'; -import XCwButton from '@/components/cw-button.vue'; -import * as os from '@/os'; +import XCwButton from '@client/components/cw-button.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/ui/chat/note.sub.vue b/src/client/ui/chat/note.sub.vue index 6f365c29e9e910f6678420ea2d8d6d242c556f7b..6c778d14687e9f37cc3d86f1a8f84b299e3c06b8 100644 --- a/src/client/ui/chat/note.sub.vue +++ b/src/client/ui/chat/note.sub.vue @@ -23,8 +23,8 @@ import { defineComponent } from 'vue'; import XNoteHeader from './note-header.vue'; import XSubNoteContent from './sub-note-content.vue'; -import XCwButton from '@/components/cw-button.vue'; -import * as os from '@/os'; +import XCwButton from '@client/components/cw-button.vue'; +import * as os from '@client/os'; export default defineComponent({ name: 'XSub', diff --git a/src/client/ui/chat/note.vue b/src/client/ui/chat/note.vue index 97275875ca8ba374f18bd4935e1939db4f696072..4afd7989e11d0675eadce1846427a1e85547bac6 100644 --- a/src/client/ui/chat/note.vue +++ b/src/client/ui/chat/note.vue @@ -109,19 +109,19 @@ import { sum, unique } from '../../../prelude/array'; import XSub from './note.sub.vue'; import XNoteHeader from './note-header.vue'; import XNotePreview from './note-preview.vue'; -import XReactionsViewer from '@/components/reactions-viewer.vue'; -import XMediaList from '@/components/media-list.vue'; -import XCwButton from '@/components/cw-button.vue'; -import XPoll from '@/components/poll.vue'; -import { pleaseLogin } from '@/scripts/please-login'; -import { focusPrev, focusNext } from '@/scripts/focus'; -import { url } from '@/config'; -import copyToClipboard from '@/scripts/copy-to-clipboard'; -import { checkWordMute } from '@/scripts/check-word-mute'; -import { userPage } from '@/filters/user'; -import * as os from '@/os'; -import { noteActions, noteViewInterruptors } from '@/store'; -import { reactionPicker } from '@/scripts/reaction-picker'; +import XReactionsViewer from '@client/components/reactions-viewer.vue'; +import XMediaList from '@client/components/media-list.vue'; +import XCwButton from '@client/components/cw-button.vue'; +import XPoll from '@client/components/poll.vue'; +import { pleaseLogin } from '@client/scripts/please-login'; +import { focusPrev, focusNext } from '@client/scripts/focus'; +import { url } from '@client/config'; +import copyToClipboard from '@client/scripts/copy-to-clipboard'; +import { checkWordMute } from '@client/scripts/check-word-mute'; +import { userPage } from '@client/filters/user'; +import * as os from '@client/os'; +import { noteActions, noteViewInterruptors } from '@client/store'; +import { reactionPicker } from '@client/scripts/reaction-picker'; function markRawAll(...xs) { for (const x of xs) { @@ -140,8 +140,8 @@ export default defineComponent({ XMediaList, XCwButton, XPoll, - MkUrlPreview: defineAsyncComponent(() => import('@/components/url-preview.vue')), - MkInstanceTicker: defineAsyncComponent(() => import('@/components/instance-ticker.vue')), + MkUrlPreview: defineAsyncComponent(() => import('@client/components/url-preview.vue')), + MkInstanceTicker: defineAsyncComponent(() => import('@client/components/instance-ticker.vue')), }, inject: { @@ -669,7 +669,7 @@ export default defineComponent({ text: this.$ts.reportAbuse, action: () => { const u = `${url}/notes/${this.appearNote.id}`; - os.popup(import('@/components/abuse-report-window.vue'), { + os.popup(import('@client/components/abuse-report-window.vue'), { user: this.appearNote.user, initialComment: `Note: ${u}\n-----\n` }, {}, 'closed'); diff --git a/src/client/ui/chat/notes.vue b/src/client/ui/chat/notes.vue index 3a169cc20ab5a86b76be704895c979e9462bf3d0..45c2bd17a12684445265e6e33e0012b18928634e 100644 --- a/src/client/ui/chat/notes.vue +++ b/src/client/ui/chat/notes.vue @@ -29,10 +29,10 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import paging from '@/scripts/paging'; +import paging from '@client/scripts/paging'; import XNote from './note.vue'; import XList from './date-separated-list.vue'; -import MkButton from '@/components/ui/button.vue'; +import MkButton from '@client/components/ui/button.vue'; export default defineComponent({ components: { diff --git a/src/client/ui/chat/post-form.vue b/src/client/ui/chat/post-form.vue index 9388989d5d38c30bcdcde05963f5c17f7c591376..5bb1a04d580de91828d8c3b5e8e69ed870010103 100644 --- a/src/client/ui/chat/post-form.vue +++ b/src/client/ui/chat/post-form.vue @@ -54,23 +54,23 @@ import insertTextAtCursor from 'insert-text-at-cursor'; import { length } from 'stringz'; import { toASCII } from 'punycode'; import { parse } from '../../../mfm/parse'; -import { host, url } from '@/config'; +import { host, url } from '@client/config'; import { erase, unique } from '../../../prelude/array'; -import extractMentions from '../../../misc/extract-mentions'; -import getAcct from '../../../misc/acct/render'; -import { formatTimeString } from '../../../misc/format-time-string'; -import { Autocomplete } from '@/scripts/autocomplete'; +import extractMentions from '@/misc/extract-mentions'; +import getAcct from '@/misc/acct/render'; +import { formatTimeString } from '@/misc/format-time-string'; +import { Autocomplete } from '@client/scripts/autocomplete'; import { noteVisibilities } from '../../../types'; -import * as os from '@/os'; -import { selectFile } from '@/scripts/select-file'; -import { notePostInterruptors, postFormActions } from '@/store'; -import { isMobile } from '@/scripts/is-mobile'; +import * as os from '@client/os'; +import { selectFile } from '@client/scripts/select-file'; +import { notePostInterruptors, postFormActions } from '@client/store'; +import { isMobile } from '@client/scripts/is-mobile'; import { throttle } from 'throttle-debounce'; export default defineComponent({ components: { - XPostFormAttaches: defineAsyncComponent(() => import('@/components/post-form-attaches.vue')), - XPollEditor: defineAsyncComponent(() => import('@/components/poll-editor.vue')) + XPostFormAttaches: defineAsyncComponent(() => import('@client/components/post-form-attaches.vue')), + XPollEditor: defineAsyncComponent(() => import('@client/components/poll-editor.vue')) }, props: { @@ -387,7 +387,7 @@ export default defineComponent({ return; } - os.popup(import('@/components/visibility-picker.vue'), { + os.popup(import('@client/components/visibility-picker.vue'), { currentVisibility: this.visibility, currentLocalOnly: this.localOnly, src: this.$refs.visibilityButton diff --git a/src/client/ui/chat/side.vue b/src/client/ui/chat/side.vue index 0003158e5381da605603eef2d4b58eeaf8d9d9b3..2645874ce4a79fd5f17e191d71230b632d35efdd 100644 --- a/src/client/ui/chat/side.vue +++ b/src/client/ui/chat/side.vue @@ -13,10 +13,10 @@ import { defineComponent } from 'vue'; import { faTimes, faChevronLeft, faExpandAlt, faWindowMaximize, faExternalLinkAlt, faLink } from '@fortawesome/free-solid-svg-icons'; import XHeader from '../_common_/header.vue'; -import * as os from '@/os'; -import copyToClipboard from '@/scripts/copy-to-clipboard'; -import { resolve } from '@/router'; -import { url } from '@/config'; +import * as os from '@client/os'; +import copyToClipboard from '@client/scripts/copy-to-clipboard'; +import { resolve } from '@client/router'; +import { url } from '@client/config'; export default defineComponent({ components: { diff --git a/src/client/ui/chat/sub-note-content.vue b/src/client/ui/chat/sub-note-content.vue index 7e742b8e54dc48e2255b98cef06304eec92e6289..e530a88172e94f946808e34e435cd2634b598f2c 100644 --- a/src/client/ui/chat/sub-note-content.vue +++ b/src/client/ui/chat/sub-note-content.vue @@ -21,9 +21,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faReply } from '@fortawesome/free-solid-svg-icons'; -import XPoll from '@/components/poll.vue'; -import XMediaList from '@/components/media-list.vue'; -import * as os from '@/os'; +import XPoll from '@client/components/poll.vue'; +import XMediaList from '@client/components/media-list.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/ui/chat/timeline.vue b/src/client/ui/chat/timeline.vue index 232e749c1cd87c2ee805cd7145115a1a85d3d622..13032cce0975158069fc40c1387f672413d0de3d 100644 --- a/src/client/ui/chat/timeline.vue +++ b/src/client/ui/chat/timeline.vue @@ -25,12 +25,12 @@ <script lang="ts"> import { defineComponent } from 'vue'; import XNotes from './notes.vue'; -import * as os from '@/os'; -import * as sound from '@/scripts/sound'; -import { scrollToBottom, getScrollPosition, getScrollContainer } from '@/scripts/scroll'; -import follow from '@/directives/follow-append'; +import * as os from '@client/os'; +import * as sound from '@client/scripts/sound'; +import { scrollToBottom, getScrollPosition, getScrollContainer } from '@client/scripts/scroll'; +import follow from '@client/directives/follow-append'; import XPostForm from './post-form.vue'; -import MkInfo from '@/components/ui/info.vue'; +import MkInfo from '@client/components/ui/info.vue'; export default defineComponent({ components: { diff --git a/src/client/ui/chat/widgets.vue b/src/client/ui/chat/widgets.vue index 6b12f9dac9e63079ec2a928a0e7db5c1d7909f30..4d1865f616d7cec5b5c017384d7bb1e3fa93067b 100644 --- a/src/client/ui/chat/widgets.vue +++ b/src/client/ui/chat/widgets.vue @@ -9,7 +9,7 @@ <script lang="ts"> import { defineComponent, defineAsyncComponent } from 'vue'; -import XWidgets from '@/components/widgets.vue'; +import XWidgets from '@client/components/widgets.vue'; import { store } from './store'; export default defineComponent({ diff --git a/src/client/ui/deck.vue b/src/client/ui/deck.vue index a074629ddd51650f769c3ff1f5dfd784e8db119c..a63db17b01adcb24ebce1da410f65688322f1d12 100644 --- a/src/client/ui/deck.vue +++ b/src/client/ui/deck.vue @@ -34,12 +34,12 @@ import { defineComponent } from 'vue'; import { faPlus, faPencilAlt, faChevronLeft, faBars, faCircle } from '@fortawesome/free-solid-svg-icons'; import { } from '@fortawesome/free-regular-svg-icons'; import { v4 as uuid } from 'uuid'; -import { host } from '@/config'; -import DeckColumnCore from '@/ui/deck/column-core.vue'; -import XSidebar from '@/components/sidebar.vue'; -import { getScrollContainer } from '@/scripts/scroll'; -import * as os from '@/os'; -import { sidebarDef } from '@/sidebar'; +import { host } from '@client/config'; +import DeckColumnCore from '@client/ui/deck/column-core.vue'; +import XSidebar from '@client/components/sidebar.vue'; +import { getScrollContainer } from '@client/scripts/scroll'; +import * as os from '@client/os'; +import { sidebarDef } from '@client/sidebar'; import XCommon from './_common_/common.vue'; import { deckStore, addColumn, loadDeck } from './deck/deck-store'; diff --git a/src/client/ui/deck/antenna-column.vue b/src/client/ui/deck/antenna-column.vue index c6aa201e40b6977910bf4ef7ee83cf65a347c238..0de870233a4bae79a01d2c4f94349272f67d9428 100644 --- a/src/client/ui/deck/antenna-column.vue +++ b/src/client/ui/deck/antenna-column.vue @@ -12,8 +12,8 @@ import { defineComponent } from 'vue'; import { faSatellite, faCog } from '@fortawesome/free-solid-svg-icons'; import XColumn from './column.vue'; -import XTimeline from '@/components/timeline.vue'; -import * as os from '@/os'; +import XTimeline from '@client/components/timeline.vue'; +import * as os from '@client/os'; import { updateColumn } from './deck-store'; export default defineComponent({ diff --git a/src/client/ui/deck/column.vue b/src/client/ui/deck/column.vue index d0a39965b1ac5e457d5a7afacfd2e7643ecc51d6..6a242c691acb9d354f2771dfe92e9ed09828d7e9 100644 --- a/src/client/ui/deck/column.vue +++ b/src/client/ui/deck/column.vue @@ -34,7 +34,7 @@ import { defineComponent } from 'vue'; import { faArrowUp, faArrowDown, faAngleUp, faAngleDown, faCaretDown, faArrowRight, faArrowLeft, faPencilAlt, faCog } from '@fortawesome/free-solid-svg-icons'; import { faWindowMaximize, faTrashAlt, faWindowRestore } from '@fortawesome/free-regular-svg-icons'; -import * as os from '@/os'; +import * as os from '@client/os'; import { updateColumn, swapLeftColumn, swapRightColumn, swapUpColumn, swapDownColumn, stackLeftColumn, popRightColumn, removeColumn, swapColumn } from './deck-store'; import { deckStore } from './deck-store'; diff --git a/src/client/ui/deck/deck-store.ts b/src/client/ui/deck/deck-store.ts index 025d5d70f4b2bc25490f278244918faa1bb896f1..aa389d76104bd6911b722dcbefea185eebcc1f1b 100644 --- a/src/client/ui/deck/deck-store.ts +++ b/src/client/ui/deck/deck-store.ts @@ -1,6 +1,6 @@ import { throttle } from 'throttle-debounce'; -import { i18n } from '@/i18n'; -import { api } from '@/os'; +import { i18n } from '@client/i18n'; +import { api } from '@client/os'; import { markRaw, watch } from 'vue'; import { Storage } from '../../pizzax'; diff --git a/src/client/ui/deck/direct-column.vue b/src/client/ui/deck/direct-column.vue index 2ffbed562d71ae47f77ca28c1a0ea62c9a3e32ca..6fceae4ed7ac5815dcd2e49fea0b1398e8ba30b6 100644 --- a/src/client/ui/deck/direct-column.vue +++ b/src/client/ui/deck/direct-column.vue @@ -9,10 +9,10 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faEnvelope } from '@fortawesome/free-solid-svg-icons'; -import Progress from '@/scripts/loading'; +import Progress from '@client/scripts/loading'; import XColumn from './column.vue'; -import XNotes from '@/components/notes.vue'; -import * as os from '@/os'; +import XNotes from '@client/components/notes.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/ui/deck/list-column.vue b/src/client/ui/deck/list-column.vue index 32807aabc912aa6c39043c3c0b171beee28ec36d..c70abc9f6e466ffaaed2978e26cecb3f9e772f58 100644 --- a/src/client/ui/deck/list-column.vue +++ b/src/client/ui/deck/list-column.vue @@ -12,8 +12,8 @@ import { defineComponent } from 'vue'; import { faListUl, faCog } from '@fortawesome/free-solid-svg-icons'; import XColumn from './column.vue'; -import XTimeline from '@/components/timeline.vue'; -import * as os from '@/os'; +import XTimeline from '@client/components/timeline.vue'; +import * as os from '@client/os'; import { updateColumn } from './deck-store'; export default defineComponent({ diff --git a/src/client/ui/deck/main-column.vue b/src/client/ui/deck/main-column.vue index 6d798c130c1ab7e775a987091fe9b7a37e958fe8..4577b0b533b1e06e80c84ba5957a24a212cf117f 100644 --- a/src/client/ui/deck/main-column.vue +++ b/src/client/ui/deck/main-column.vue @@ -18,10 +18,10 @@ import { defineComponent } from 'vue'; import { faWindowMaximize } from '@fortawesome/free-solid-svg-icons'; import XColumn from './column.vue'; -import XNotes from '@/components/notes.vue'; -import XHeader from '@/ui/_common_/header.vue'; -import { deckStore } from '@/ui/deck/deck-store'; -import * as os from '@/os'; +import XNotes from '@client/components/notes.vue'; +import XHeader from '@client/ui/_common_/header.vue'; +import { deckStore } from '@client/ui/deck/deck-store'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/ui/deck/mentions-column.vue b/src/client/ui/deck/mentions-column.vue index e79a9eb245b0c1664aa679774a5cb2e3b243c289..996123cb1f05815773e9cc3f57235ac8e552855c 100644 --- a/src/client/ui/deck/mentions-column.vue +++ b/src/client/ui/deck/mentions-column.vue @@ -9,10 +9,10 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faAt } from '@fortawesome/free-solid-svg-icons'; -import Progress from '@/scripts/loading'; +import Progress from '@client/scripts/loading'; import XColumn from './column.vue'; -import XNotes from '@/components/notes.vue'; -import * as os from '@/os'; +import XNotes from '@client/components/notes.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/ui/deck/notifications-column.vue b/src/client/ui/deck/notifications-column.vue index 5feab8bab5b16f4df6e3b9d7425c9bc35476f933..1b29a2d54f00230956adb93ab3f543cb53cf3658 100644 --- a/src/client/ui/deck/notifications-column.vue +++ b/src/client/ui/deck/notifications-column.vue @@ -11,8 +11,8 @@ import { defineComponent } from 'vue'; import { faCog } from '@fortawesome/free-solid-svg-icons'; import { faBell } from '@fortawesome/free-regular-svg-icons'; import XColumn from './column.vue'; -import XNotifications from '@/components/notifications.vue'; -import * as os from '@/os'; +import XNotifications from '@client/components/notifications.vue'; +import * as os from '@client/os'; import { updateColumn } from './deck-store'; export default defineComponent({ @@ -40,7 +40,7 @@ export default defineComponent({ methods: { func() { - os.popup(import('@/components/notification-setting-window.vue'), { + os.popup(import('@client/components/notification-setting-window.vue'), { includingTypes: this.column.includingTypes, }, { done: async (res) => { diff --git a/src/client/ui/deck/tl-column.vue b/src/client/ui/deck/tl-column.vue index 02af6a33110dd9b2710ba71e53590b8e2796cded..d4908d0edfae2bff82604ad6a459284e0b08294c 100644 --- a/src/client/ui/deck/tl-column.vue +++ b/src/client/ui/deck/tl-column.vue @@ -23,8 +23,8 @@ import { defineComponent } from 'vue'; import { faMinusCircle, faHome, faComments, faShareAlt, faGlobe, faCog } from '@fortawesome/free-solid-svg-icons'; import XColumn from './column.vue'; -import XTimeline from '@/components/timeline.vue'; -import * as os from '@/os'; +import XTimeline from '@client/components/timeline.vue'; +import * as os from '@client/os'; import { removeColumn, updateColumn } from './deck-store'; export default defineComponent({ diff --git a/src/client/ui/deck/widgets-column.vue b/src/client/ui/deck/widgets-column.vue index b7740c270d9d24acb3b85ccb457402561de6529f..992845ff7eacb029d7788789d4c4b8c4cb34af25 100644 --- a/src/client/ui/deck/widgets-column.vue +++ b/src/client/ui/deck/widgets-column.vue @@ -11,7 +11,7 @@ <script lang="ts"> import { defineComponent, defineAsyncComponent } from 'vue'; import { faWindowMaximize, faTimes, faCog, faPlus } from '@fortawesome/free-solid-svg-icons'; -import XWidgets from '@/components/widgets.vue'; +import XWidgets from '@client/components/widgets.vue'; import XColumn from './column.vue'; import { addColumnWidget, removeColumnWidget, setColumnWidgets, updateColumnWidget } from './deck-store'; diff --git a/src/client/ui/default.side.vue b/src/client/ui/default.side.vue index b58c339f2b933fbca4f150e66527049d4ddb62bd..995f987a6a13ef7e3ca3d74817e03604d51fe5aa 100644 --- a/src/client/ui/default.side.vue +++ b/src/client/ui/default.side.vue @@ -16,10 +16,10 @@ import { defineComponent } from 'vue'; import { faTimes, faChevronLeft, faExpandAlt, faWindowMaximize, faExternalLinkAlt, faLink } from '@fortawesome/free-solid-svg-icons'; import XHeader from './_common_/header.vue'; -import * as os from '@/os'; -import copyToClipboard from '@/scripts/copy-to-clipboard'; -import { resolve } from '@/router'; -import { url } from '@/config'; +import * as os from '@client/os'; +import copyToClipboard from '@client/scripts/copy-to-clipboard'; +import { resolve } from '@client/router'; +import { url } from '@client/config'; export default defineComponent({ components: { diff --git a/src/client/ui/default.vue b/src/client/ui/default.vue index 220dee9d6d7665a1bec45afd1b432221a61a3255..38f98f6365ec92290cf9a9f4aa2692d639b1ee35 100644 --- a/src/client/ui/default.vue +++ b/src/client/ui/default.vue @@ -57,14 +57,14 @@ import { defineComponent, defineAsyncComponent } from 'vue'; import { faLayerGroup, faBars, faHome, faCircle, faWindowMaximize, faColumns, faPencilAlt } from '@fortawesome/free-solid-svg-icons'; import { faBell } from '@fortawesome/free-regular-svg-icons'; -import { instanceName } from '@/config'; -import { StickySidebar } from '@/scripts/sticky-sidebar'; -import XSidebar from '@/components/sidebar.vue'; +import { instanceName } from '@client/config'; +import { StickySidebar } from '@client/scripts/sticky-sidebar'; +import XSidebar from '@client/components/sidebar.vue'; import XCommon from './_common_/common.vue'; import XHeader from './_common_/header.vue'; import XSide from './default.side.vue'; -import * as os from '@/os'; -import { sidebarDef } from '@/sidebar'; +import * as os from '@client/os'; +import { sidebarDef } from '@client/sidebar'; const DESKTOP_THRESHOLD = 1100; diff --git a/src/client/ui/default.widgets.vue b/src/client/ui/default.widgets.vue index ff7cdf11400db578e1370b988e751aa3a50b8582..35d3442bb2f9f9e0be6bdd1676214371cf1ef9df 100644 --- a/src/client/ui/default.widgets.vue +++ b/src/client/ui/default.widgets.vue @@ -10,8 +10,8 @@ <script lang="ts"> import { defineComponent, defineAsyncComponent } from 'vue'; import { faPencilAlt, faPlus, faBars, faTimes, faCheck } from '@fortawesome/free-solid-svg-icons'; -import XWidgets from '@/components/widgets.vue'; -import * as os from '@/os'; +import XWidgets from '@client/components/widgets.vue'; +import * as os from '@client/os'; export default defineComponent({ components: { diff --git a/src/client/ui/desktop.vue b/src/client/ui/desktop.vue index a1f58af5cc8fd313cd70d0ebe3a3431f32713af8..1480fd18401fe6702a9a134876345a69e4b30448 100644 --- a/src/client/ui/desktop.vue +++ b/src/client/ui/desktop.vue @@ -8,13 +8,13 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import { host } from '@/config'; -import { search } from '@/scripts/search'; +import { host } from '@client/config'; +import { search } from '@client/scripts/search'; import XCommon from './_common_/common.vue'; -import * as os from '@/os'; -import XSidebar from '@/components/sidebar.vue'; -import { sidebarDef } from '@/sidebar'; -import { ColdDeviceStorage } from '@/store'; +import * as os from '@client/os'; +import XSidebar from '@client/components/sidebar.vue'; +import { sidebarDef } from '@client/sidebar'; +import { ColdDeviceStorage } from '@client/store'; export default defineComponent({ components: { diff --git a/src/client/ui/visitor/a.vue b/src/client/ui/visitor/a.vue index d25b5591ef37393e8319077a2a698794bf716a91..2aed50100cb793d466cc14ae71823f90054f09f5 100644 --- a/src/client/ui/visitor/a.vue +++ b/src/client/ui/visitor/a.vue @@ -42,13 +42,13 @@ <script lang="ts"> import { defineComponent, defineAsyncComponent } from 'vue'; import { } from '@fortawesome/free-solid-svg-icons'; -import { host, instanceName } from '@/config'; -import { search } from '@/scripts/search'; -import * as os from '@/os'; -import MkPagination from '@/components/ui/pagination.vue'; -import MkButton from '@/components/ui/button.vue'; +import { host, instanceName } from '@client/config'; +import { search } from '@client/scripts/search'; +import * as os from '@client/os'; +import MkPagination from '@client/components/ui/pagination.vue'; +import MkButton from '@client/components/ui/button.vue'; import XHeader from './header.vue'; -import { ColdDeviceStorage } from '@/store'; +import { ColdDeviceStorage } from '@client/store'; const DESKTOP_THRESHOLD = 1100; diff --git a/src/client/ui/visitor/b.vue b/src/client/ui/visitor/b.vue index 1f559c89178978d95ad5a5cb8e153226a2ae8c97..bd00773c5734199dadd57a408bf5208ac35ead42 100644 --- a/src/client/ui/visitor/b.vue +++ b/src/client/ui/visitor/b.vue @@ -51,16 +51,16 @@ <script lang="ts"> import { defineComponent, defineAsyncComponent } from 'vue'; import { } from '@fortawesome/free-solid-svg-icons'; -import { host, instanceName } from '@/config'; -import { search } from '@/scripts/search'; -import * as os from '@/os'; -import MkPagination from '@/components/ui/pagination.vue'; -import XSigninDialog from '@/components/signin-dialog.vue'; -import XSignupDialog from '@/components/signup-dialog.vue'; -import MkButton from '@/components/ui/button.vue'; +import { host, instanceName } from '@client/config'; +import { search } from '@client/scripts/search'; +import * as os from '@client/os'; +import MkPagination from '@client/components/ui/pagination.vue'; +import XSigninDialog from '@client/components/signin-dialog.vue'; +import XSignupDialog from '@client/components/signup-dialog.vue'; +import MkButton from '@client/components/ui/button.vue'; import XHeader from './header.vue'; import XKanban from './kanban.vue'; -import { ColdDeviceStorage } from '@/store'; +import { ColdDeviceStorage } from '@client/store'; const DESKTOP_THRESHOLD = 1100; diff --git a/src/client/ui/visitor/header.vue b/src/client/ui/visitor/header.vue index 9a7bf96fc003e31bea4bfce4a40981f1844c3833..a66c4d5fb00867e6eb86158529f73c25d2d44e44 100644 --- a/src/client/ui/visitor/header.vue +++ b/src/client/ui/visitor/header.vue @@ -42,10 +42,10 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faSearch, faHome, faFireAlt, faHashtag, faSatelliteDish, faBars } from '@fortawesome/free-solid-svg-icons'; -import XSigninDialog from '@/components/signin-dialog.vue'; -import XSignupDialog from '@/components/signup-dialog.vue'; -import * as os from '@/os'; -import { search } from '@/scripts/search'; +import XSigninDialog from '@client/components/signin-dialog.vue'; +import XSignupDialog from '@client/components/signup-dialog.vue'; +import * as os from '@client/os'; +import { search } from '@client/scripts/search'; export default defineComponent({ props: { diff --git a/src/client/ui/visitor/kanban.vue b/src/client/ui/visitor/kanban.vue index 6a4bcd1adb430993adddb843e67906eed262a91c..8317f24402dc0b3fc81f7b696508c06d0130cb0e 100644 --- a/src/client/ui/visitor/kanban.vue +++ b/src/client/ui/visitor/kanban.vue @@ -39,12 +39,12 @@ <script lang="ts"> import { defineComponent, defineAsyncComponent } from 'vue'; import { } from '@fortawesome/free-solid-svg-icons'; -import { host, instanceName } from '@/config'; -import * as os from '@/os'; -import MkPagination from '@/components/ui/pagination.vue'; -import XSigninDialog from '@/components/signin-dialog.vue'; -import XSignupDialog from '@/components/signup-dialog.vue'; -import MkButton from '@/components/ui/button.vue'; +import { host, instanceName } from '@client/config'; +import * as os from '@client/os'; +import MkPagination from '@client/components/ui/pagination.vue'; +import XSigninDialog from '@client/components/signin-dialog.vue'; +import XSignupDialog from '@client/components/signup-dialog.vue'; +import MkButton from '@client/components/ui/button.vue'; export default defineComponent({ components: { diff --git a/src/client/ui/zen.vue b/src/client/ui/zen.vue index ab9e08e768d6b39493c38e19a3d296ea39644b87..9215a639b0cdb9d4e60442393b56c59c63e91585 100644 --- a/src/client/ui/zen.vue +++ b/src/client/ui/zen.vue @@ -25,7 +25,7 @@ import { defineComponent, defineAsyncComponent } from 'vue'; import { faLayerGroup, faBars, faHome, faCircle } from '@fortawesome/free-solid-svg-icons'; import { faBell } from '@fortawesome/free-regular-svg-icons'; -import { host } from '@/config'; +import { host } from '@client/config'; import XHeader from './_common_/header.vue'; import XCommon from './_common_/common.vue'; diff --git a/src/client/widgets/activity.calendar.vue b/src/client/widgets/activity.calendar.vue index b833bd65cad17d0ca61cdb549854b180d80fd813..ff767190f61706fadc66aa57a2a9eb9fc709bd40 100644 --- a/src/client/widgets/activity.calendar.vue +++ b/src/client/widgets/activity.calendar.vue @@ -25,7 +25,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import * as os from '@/os'; +import * as os from '@client/os'; export default defineComponent({ props: ['data'], diff --git a/src/client/widgets/activity.chart.vue b/src/client/widgets/activity.chart.vue index 9702d66663d2e41a10a153ab25cf64871b1aef50..ee5bc25113df9d9a1563c497ead180e6ad54aab1 100644 --- a/src/client/widgets/activity.chart.vue +++ b/src/client/widgets/activity.chart.vue @@ -26,7 +26,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import * as os from '@/os'; +import * as os from '@client/os'; function dragListen(fn) { window.addEventListener('mousemove', fn); diff --git a/src/client/widgets/activity.vue b/src/client/widgets/activity.vue index a92644e0abde3fc8971ea48bc59276569d596694..9623765e40a9f7f839c310b38adf023f7e0d632d 100644 --- a/src/client/widgets/activity.vue +++ b/src/client/widgets/activity.vue @@ -16,11 +16,11 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faChartBar, faSort } from '@fortawesome/free-solid-svg-icons'; -import MkContainer from '@/components/ui/container.vue'; +import MkContainer from '@client/components/ui/container.vue'; import define from './define'; import XCalendar from './activity.calendar.vue'; import XChart from './activity.chart.vue'; -import * as os from '@/os'; +import * as os from '@client/os'; const widget = define({ name: 'activity', diff --git a/src/client/widgets/aiscript.vue b/src/client/widgets/aiscript.vue index f885db886be85e851ae48d488ee406aa60477a99..84390866bd16045ddef142c4225531034699d4ef 100644 --- a/src/client/widgets/aiscript.vue +++ b/src/client/widgets/aiscript.vue @@ -15,11 +15,11 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faTerminal } from '@fortawesome/free-solid-svg-icons'; -import MkContainer from '@/components/ui/container.vue'; +import MkContainer from '@client/components/ui/container.vue'; import define from './define'; -import * as os from '@/os'; +import * as os from '@client/os'; import { AiScript, parse, utils } from '@syuilo/aiscript'; -import { createAiScriptEnv } from '@/scripts/aiscript/api'; +import { createAiScriptEnv } from '@client/scripts/aiscript/api'; const widget = define({ name: 'aiscript', diff --git a/src/client/widgets/button.vue b/src/client/widgets/button.vue index 3417181d0c245ab02819bf06fd631bb21c5c9be2..af6718c50792dbf627def000bf8b64330430444f 100644 --- a/src/client/widgets/button.vue +++ b/src/client/widgets/button.vue @@ -9,10 +9,10 @@ <script lang="ts"> import { defineComponent } from 'vue'; import define from './define'; -import MkButton from '@/components/ui/button.vue'; -import * as os from '@/os'; +import MkButton from '@client/components/ui/button.vue'; +import * as os from '@client/os'; import { AiScript, parse, utils } from '@syuilo/aiscript'; -import { createAiScriptEnv } from '@/scripts/aiscript/api'; +import { createAiScriptEnv } from '@client/scripts/aiscript/api'; const widget = define({ name: 'button', diff --git a/src/client/widgets/calendar.vue b/src/client/widgets/calendar.vue index 545072e87be6d00f1af784ada8cec09dca5f1a1a..fe39145f0d37c7ada41e7ebb2f763caaba080b05 100644 --- a/src/client/widgets/calendar.vue +++ b/src/client/widgets/calendar.vue @@ -34,7 +34,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import define from './define'; -import * as os from '@/os'; +import * as os from '@client/os'; const widget = define({ name: 'calendar', diff --git a/src/client/widgets/clock.vue b/src/client/widgets/clock.vue index 2aad24baec6c65828fed6c92cfb8087fe4b0b662..e0689a294f9860bc5aa2d1c4cda1f5219c7c94e1 100644 --- a/src/client/widgets/clock.vue +++ b/src/client/widgets/clock.vue @@ -9,9 +9,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; import define from './define'; -import MkContainer from '@/components/ui/container.vue'; -import MkAnalogClock from '@/components/analog-clock.vue'; -import * as os from '@/os'; +import MkContainer from '@client/components/ui/container.vue'; +import MkAnalogClock from '@client/components/analog-clock.vue'; +import * as os from '@client/os'; const widget = define({ name: 'clock', diff --git a/src/client/widgets/define.ts b/src/client/widgets/define.ts index 08a346d97c40568f150ae13bd72a2b6fd604a4ec..22b7fb30a1e2befe875e1890e33dcdc15050f5d6 100644 --- a/src/client/widgets/define.ts +++ b/src/client/widgets/define.ts @@ -1,7 +1,7 @@ import { defineComponent } from 'vue'; import { throttle } from 'throttle-debounce'; -import { Form } from '@/scripts/form'; -import * as os from '@/os'; +import { Form } from '@client/scripts/form'; +import * as os from '@client/os'; export default function <T extends Form>(data: { name: string; diff --git a/src/client/widgets/digital-clock.vue b/src/client/widgets/digital-clock.vue index 9d32e8b9fe9a935b441284c9f9e7ffbd9ec1929b..2202c9ed4b3382927298372436aaeff245bb48c0 100644 --- a/src/client/widgets/digital-clock.vue +++ b/src/client/widgets/digital-clock.vue @@ -15,7 +15,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import define from './define'; -import * as os from '@/os'; +import * as os from '@client/os'; const widget = define({ name: 'digitalClock', diff --git a/src/client/widgets/federation.vue b/src/client/widgets/federation.vue index 6e76bc40e910f5c0a874b14e845fe3496297fe57..6eb656ce05136d41c9dbc398809e83e0047414d4 100644 --- a/src/client/widgets/federation.vue +++ b/src/client/widgets/federation.vue @@ -21,10 +21,10 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faGlobe } from '@fortawesome/free-solid-svg-icons'; -import MkContainer from '@/components/ui/container.vue'; +import MkContainer from '@client/components/ui/container.vue'; import define from './define'; -import MkMiniChart from '@/components/mini-chart.vue'; -import * as os from '@/os'; +import MkMiniChart from '@client/components/mini-chart.vue'; +import * as os from '@client/os'; const widget = define({ name: 'federation', diff --git a/src/client/widgets/job-queue.vue b/src/client/widgets/job-queue.vue index b7bfb6de27bbca78913de50eaded5f6e148a9134..aaf2b2fc8f49d629d7437ae2c5317c39f6cccb07 100644 --- a/src/client/widgets/job-queue.vue +++ b/src/client/widgets/job-queue.vue @@ -49,8 +49,8 @@ import { defineComponent } from 'vue'; import { faExclamationTriangle } from '@fortawesome/free-solid-svg-icons'; import define from './define'; -import * as os from '@/os'; -import number from '@/filters/number'; +import * as os from '@client/os'; +import number from '@client/filters/number'; const widget = define({ name: 'jobQueue', diff --git a/src/client/widgets/memo.vue b/src/client/widgets/memo.vue index 3512429e0db7c8aab60a0f7d86e5bbfa153272ad..4a7786312adfa145da8bd6f789b1732111fd130a 100644 --- a/src/client/widgets/memo.vue +++ b/src/client/widgets/memo.vue @@ -12,9 +12,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faStickyNote } from '@fortawesome/free-solid-svg-icons'; -import MkContainer from '@/components/ui/container.vue'; +import MkContainer from '@client/components/ui/container.vue'; import define from './define'; -import * as os from '@/os'; +import * as os from '@client/os'; const widget = define({ name: 'memo', diff --git a/src/client/widgets/notifications.vue b/src/client/widgets/notifications.vue index c3eb6ee79a119b67ceec2039855b2e0b09b9d6de..b4c2201862723ee2bde68bd4dc52845a32a74425 100644 --- a/src/client/widgets/notifications.vue +++ b/src/client/widgets/notifications.vue @@ -12,10 +12,10 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faBell, faCog } from '@fortawesome/free-solid-svg-icons'; -import MkContainer from '@/components/ui/container.vue'; -import XNotifications from '@/components/notifications.vue'; +import MkContainer from '@client/components/ui/container.vue'; +import XNotifications from '@client/components/notifications.vue'; import define from './define'; -import * as os from '@/os'; +import * as os from '@client/os'; const widget = define({ name: 'notifications', @@ -52,7 +52,7 @@ export default defineComponent({ methods: { configure() { - os.popup(import('@/components/notification-setting-window.vue'), { + os.popup(import('@client/components/notification-setting-window.vue'), { includingTypes: this.props.includingTypes, }, { done: async (res) => { diff --git a/src/client/widgets/online-users.vue b/src/client/widgets/online-users.vue index 5b889f4816b0ff757b34bb46783169332a2c8d4a..37060fca43e7c414d197213a8158b26552ed8302 100644 --- a/src/client/widgets/online-users.vue +++ b/src/client/widgets/online-users.vue @@ -9,7 +9,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; import define from './define'; -import * as os from '@/os'; +import * as os from '@client/os'; const widget = define({ name: 'onlineUsers', diff --git a/src/client/widgets/photos.vue b/src/client/widgets/photos.vue index ada15486badafb53f327475435641f735379fe17..f1041b4ec258936e974fe9ed46ecaa828ead220f 100644 --- a/src/client/widgets/photos.vue +++ b/src/client/widgets/photos.vue @@ -17,10 +17,10 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faCamera } from '@fortawesome/free-solid-svg-icons'; -import MkContainer from '@/components/ui/container.vue'; +import MkContainer from '@client/components/ui/container.vue'; import define from './define'; -import { getStaticImageUrl } from '@/scripts/get-static-image-url'; -import * as os from '@/os'; +import { getStaticImageUrl } from '@client/scripts/get-static-image-url'; +import * as os from '@client/os'; const widget = define({ name: 'photos', diff --git a/src/client/widgets/post-form.vue b/src/client/widgets/post-form.vue index 5ecaa67b5a4888c38a90673c436d1023507ab482..1f260c20d9ca715d74724a5d4df89ffb41b682a4 100644 --- a/src/client/widgets/post-form.vue +++ b/src/client/widgets/post-form.vue @@ -4,7 +4,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import XPostForm from '@/components/post-form.vue'; +import XPostForm from '@client/components/post-form.vue'; import define from './define'; const widget = define({ diff --git a/src/client/widgets/rss.vue b/src/client/widgets/rss.vue index 1140a4252f63e18698e5c52b669c1e4c080a07b5..78ad390d275fb2f0b25f654ebbf84209761a1631 100644 --- a/src/client/widgets/rss.vue +++ b/src/client/widgets/rss.vue @@ -15,9 +15,9 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faRssSquare, faCog } from '@fortawesome/free-solid-svg-icons'; -import MkContainer from '@/components/ui/container.vue'; +import MkContainer from '@client/components/ui/container.vue'; import define from './define'; -import * as os from '@/os'; +import * as os from '@client/os'; const widget = define({ name: 'rss', diff --git a/src/client/widgets/server-metric/disk.vue b/src/client/widgets/server-metric/disk.vue index 41f967d29107d373ee9c34df557f1fbcce8285c2..fa5933e7b900e3d2cd1aa91b098b435025239e93 100644 --- a/src/client/widgets/server-metric/disk.vue +++ b/src/client/widgets/server-metric/disk.vue @@ -14,7 +14,7 @@ import { defineComponent } from 'vue'; import { faHdd } from '@fortawesome/free-solid-svg-icons'; import XPie from './pie.vue'; -import bytes from '@/filters/bytes'; +import bytes from '@client/filters/bytes'; export default defineComponent({ components: { diff --git a/src/client/widgets/server-metric/index.vue b/src/client/widgets/server-metric/index.vue index 2ce87ba4168efa036a13ccb2c9c34b6ab8790a20..7f2aea6b49f6ce5dacda0f5d1a8dacab08002f0b 100644 --- a/src/client/widgets/server-metric/index.vue +++ b/src/client/widgets/server-metric/index.vue @@ -17,13 +17,13 @@ import { defineComponent } from 'vue'; import { faServer, faSort } from '@fortawesome/free-solid-svg-icons'; import define from '../define'; -import MkContainer from '@/components/ui/container.vue'; +import MkContainer from '@client/components/ui/container.vue'; import XCpuMemory from './cpu-mem.vue'; import XNet from './net.vue'; import XCpu from './cpu.vue'; import XMemory from './mem.vue'; import XDisk from './disk.vue'; -import * as os from '@/os'; +import * as os from '@client/os'; const widget = define({ name: 'serverMetric', diff --git a/src/client/widgets/server-metric/mem.vue b/src/client/widgets/server-metric/mem.vue index 83aa71aa09c064ea1efbabc402ead071ca125b22..89fa8fef43945fdc74c5cb5ee5640bbcf0672e4a 100644 --- a/src/client/widgets/server-metric/mem.vue +++ b/src/client/widgets/server-metric/mem.vue @@ -14,7 +14,7 @@ import { defineComponent } from 'vue'; import { faMemory } from '@fortawesome/free-solid-svg-icons'; import XPie from './pie.vue'; -import bytes from '@/filters/bytes'; +import bytes from '@client/filters/bytes'; export default defineComponent({ components: { diff --git a/src/client/widgets/server-metric/net.vue b/src/client/widgets/server-metric/net.vue index 23c148eeb6ba0677b9ebf0a32f3755c75ad5e757..569c15b58bcd0414daf5cb48a1f44b2216f70dee 100644 --- a/src/client/widgets/server-metric/net.vue +++ b/src/client/widgets/server-metric/net.vue @@ -45,7 +45,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import bytes from '@/filters/bytes'; +import bytes from '@client/filters/bytes'; export default defineComponent({ props: { diff --git a/src/client/widgets/slideshow.vue b/src/client/widgets/slideshow.vue index 5d2e2b1ebd3109bc0c9824457a4bf6bbdf1d70fc..69c5cc01b2c6e6ba4411d8b0c8eb68c3c35d7729 100644 --- a/src/client/widgets/slideshow.vue +++ b/src/client/widgets/slideshow.vue @@ -16,7 +16,7 @@ import { defineComponent } from 'vue'; import { } from '@fortawesome/free-solid-svg-icons'; import define from './define'; -import * as os from '@/os'; +import * as os from '@client/os'; const widget = define({ name: 'slideshow', diff --git a/src/client/widgets/timeline.vue b/src/client/widgets/timeline.vue index ee60790cb612e9e523236f4034880ec35d79d94a..f1ddc9cb801f6cf69990a9198ac1546c3eda0f86 100644 --- a/src/client/widgets/timeline.vue +++ b/src/client/widgets/timeline.vue @@ -23,10 +23,10 @@ import { defineComponent } from 'vue'; import { faAngleDown, faAngleUp, faHome, faShareAlt, faGlobe, faListUl, faSatellite } from '@fortawesome/free-solid-svg-icons'; import { faComments } from '@fortawesome/free-regular-svg-icons'; -import MkContainer from '@/components/ui/container.vue'; -import XTimeline from '@/components/timeline.vue'; +import MkContainer from '@client/components/ui/container.vue'; +import XTimeline from '@client/components/timeline.vue'; import define from './define'; -import * as os from '@/os'; +import * as os from '@client/os'; const widget = define({ name: 'timeline', diff --git a/src/client/widgets/trends.vue b/src/client/widgets/trends.vue index 3734573e3cd1c99e038791152f3e5ad16a83d2db..300e3b31de74cbe9e4e7049a9f031d0bddf44449 100644 --- a/src/client/widgets/trends.vue +++ b/src/client/widgets/trends.vue @@ -20,10 +20,10 @@ <script lang="ts"> import { defineComponent } from 'vue'; import { faHashtag } from '@fortawesome/free-solid-svg-icons'; -import MkContainer from '@/components/ui/container.vue'; +import MkContainer from '@client/components/ui/container.vue'; import define from './define'; -import MkMiniChart from '@/components/mini-chart.vue'; -import * as os from '@/os'; +import MkMiniChart from '@client/components/mini-chart.vue'; +import * as os from '@client/os'; const widget = define({ name: 'hashtags', diff --git a/src/config/load.ts b/src/config/load.ts index 558bc68e1064d84762775392ff42c9f84a2c8a66..0929e8041455a7200dfaaa1e8ada18fcd6953297 100644 --- a/src/config/load.ts +++ b/src/config/load.ts @@ -5,7 +5,7 @@ import * as fs from 'fs'; import * as yaml from 'js-yaml'; import { Source, Mixin } from './types'; -import * as meta from '../meta.json'; +const meta = require('../meta.json'); /** * Path of configuration directory diff --git a/src/db/elasticsearch.ts b/src/db/elasticsearch.ts index 048e399bdfd57b7dbb2b6dda546e18db4af95cdf..58455b510d835339154715e0550e22f4f52bcaf4 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'; const index = { settings: { diff --git a/src/db/postgre.ts b/src/db/postgre.ts index 831e5e05923d22bacee4e46ff9be7d42ab6f98b7..d53d315f7ba281b1873da206ae5725314d672380 100644 --- a/src/db/postgre.ts +++ b/src/db/postgre.ts @@ -3,7 +3,7 @@ const types = require('pg').types; types.setTypeParser(20, Number); import { createConnection, Logger, getConnection } from 'typeorm'; -import config from '../config'; +import config from '@/config'; import { entities as charts } from '../services/chart/entities'; import { dbLogger } from './logger'; import * as highlight from 'cli-highlight'; diff --git a/src/db/redis.ts b/src/db/redis.ts index 41d030149c3d117441edad1b3feb08701f973322..a10422846ffe6fc2fd1e25ea3896cb7448e51aca 100644 --- a/src/db/redis.ts +++ b/src/db/redis.ts @@ -1,12 +1,19 @@ import * as redis from 'redis'; -import config from '../config'; +import config from '@/config'; -export default redis.createClient( - config.redis.port, - config.redis.host, - { - password: config.redis.pass, - prefix: config.redis.prefix, - db: config.redis.db || 0 - } -); +export function createConnection() { + return redis.createClient( + config.redis.port, + config.redis.host, + { + password: config.redis.pass, + prefix: config.redis.prefix, + db: config.redis.db || 0 + } + ); +} + +export const subsdcriber = createConnection(); +subsdcriber.subscribe(config.host); + +export const redisClient = createConnection(); diff --git a/src/mfm/language.ts b/src/mfm/language.ts index cf00f063249498a9c37243843cc3bee167e3a3e2..bad7b10a0d9c4d764c25b985b71ee3bcf7c5d8f4 100644 --- a/src/mfm/language.ts +++ b/src/mfm/language.ts @@ -1,9 +1,9 @@ import * as P from 'parsimmon'; import { createLeaf, createTree, urlRegex } from './prelude'; import { takeWhile, cumulativeSum } from '../prelude/array'; -import parseAcct from '../misc/acct/parse'; +import parseAcct from '@/misc/acct/parse'; import { toUnicode } from 'punycode'; -import { emojiRegex } from '../misc/emoji-regex'; +import { emojiRegex } from '@/misc/emoji-regex'; export function removeOrphanedBrackets(s: string): string { const openBrackets = ['(', '「', '[']; diff --git a/src/mfm/to-html.ts b/src/mfm/to-html.ts index c09272caad0d2b88bc9bd516f15a78e93c0686c5..66015d539f825432909e57af69ecc20bbf9929d8 100644 --- a/src/mfm/to-html.ts +++ b/src/mfm/to-html.ts @@ -1,5 +1,5 @@ import { JSDOM } from 'jsdom'; -import config from '../config'; +import config from '@/config'; import { intersperse } from '../prelude/array'; import { MfmForest, MfmTree } from './prelude'; import { IMentionedRemoteUsers } from '../models/entities/note'; diff --git a/src/mfm/to-string.ts b/src/mfm/to-string.ts index b70b99cbda9c3f47fb9fc59d65a8d1c680faa86e..347c94c247ba270980cdeb5571a36c3a33009939 100644 --- a/src/mfm/to-string.ts +++ b/src/mfm/to-string.ts @@ -1,5 +1,5 @@ import { MfmForest, MfmTree } from './prelude'; -import { nyaize } from '../misc/nyaize'; +import { nyaize } from '@/misc/nyaize'; export type RestoreOptions = { doNyaize?: boolean; diff --git a/src/misc/antenna-cache.ts b/src/misc/antenna-cache.ts new file mode 100644 index 0000000000000000000000000000000000000000..6be1c18db555dd66aa8acaf924bbc40e721cd6f3 --- /dev/null +++ b/src/misc/antenna-cache.ts @@ -0,0 +1,36 @@ +import { Antennas } from '../models'; +import { Antenna } from '../models/entities/antenna'; +import { subsdcriber } from '../db/redis'; + +let antennasFetched = false; +let antennas: Antenna[] = []; + +export async function getAntennas() { + if (!antennasFetched) { + antennas = await Antennas.find(); + antennasFetched = true; + } + + return antennas; +} + +subsdcriber.on('message', async (_, data) => { + const obj = JSON.parse(data); + + if (obj.channel === 'internal') { + const { type, body } = obj.message; + switch (type) { + case 'antennaCreated': + antennas.push(body); + break; + case 'antennaUpdated': + antennas[antennas.findIndex(a => a.id === body.id)] = body; + break; + case 'antennaDeleted': + antennas = antennas.filter(a => a.id !== body.id); + break; + default: + break; + } + } +}); diff --git a/src/misc/app-lock.ts b/src/misc/app-lock.ts index 847299b46da215bed8f75d4f3d8a6588dba0f6f8..9ae2cba47831cc3247b869b128e23956f54fe9e1 100644 --- a/src/misc/app-lock.ts +++ b/src/misc/app-lock.ts @@ -1,4 +1,4 @@ -import redis from '../db/redis'; +import { redisClient } from '../db/redis'; import { promisify } from 'util'; /** @@ -7,8 +7,8 @@ import { promisify } from 'util'; const retryDelay = 100; const lock: (key: string, timeout?: number) => Promise<() => void> - = redis - ? promisify(require('redis-lock')(redis, retryDelay)) + = redisClient + ? promisify(require('redis-lock')(redisClient, retryDelay)) : async () => () => { }; /** diff --git a/src/misc/captcha.ts b/src/misc/captcha.ts index 87ec143ca89a3494b031b1ad29680ce13bd041db..727c86af0fd951876659696449b3c83cf2a47b14 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'; 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 0464f141316be781db526dd7f7eee0f246ce24a2..9897dd414eebc14af5198c5e12327745fbb47e2f 100644 --- a/src/misc/check-hit-antenna.ts +++ b/src/misc/check-hit-antenna.ts @@ -4,18 +4,24 @@ import { User } from '../models/entities/user'; import { UserListJoinings, UserGroupJoinings } from '../models'; import parseAcct from './acct/parse'; import { getFullApAccount } from './convert-host'; +import { PackedNote } from '../models/repositories/note'; -export async function checkHitAntenna(antenna: Antenna, note: Note, noteUser: User, followers: User['id'][]): Promise<boolean> { +/** + * noteUserFollowers / antennaUserFollowing ã¯ã©ã¡ã‚‰ã‹ä¸€æ–¹ãŒæŒ‡å®šã•ã‚Œã¦ã„ã‚Œã°ã‚ˆã„ + */ +export async function checkHitAntenna(antenna: Antenna, note: (Note | PackedNote), noteUser: { username: string; host: string | null; }, noteUserFollowers?: User['id'][], antennaUserFollowing?: User['id'][]): Promise<boolean> { if (note.visibility === 'specified') return false; if (note.visibility === 'followers') { - if (!followers.includes(antenna.userId)) return false; + if (noteUserFollowers && !noteUserFollowers.includes(antenna.userId)) return false; + if (antennaUserFollowing && !antennaUserFollowing.includes(note.userId)) return false; } if (!antenna.withReplies && note.replyId != null) return false; if (antenna.src === 'home') { - if (!followers.includes(antenna.userId)) return false; + if (noteUserFollowers && !noteUserFollowers.includes(antenna.userId)) return false; + if (antennaUserFollowing && !antennaUserFollowing.includes(note.userId)) return false; } else if (antenna.src === 'list') { const listUsers = (await UserListJoinings.find({ userListId: antenna.userListId! @@ -75,7 +81,7 @@ export async function checkHitAntenna(antenna: Antenna, note: Note, noteUser: Us } if (antenna.withFile) { - if (note.fileIds.length === 0) return false; + if (note.fileIds && note.fileIds.length === 0) return false; } // TODO: eval expression diff --git a/src/misc/convert-host.ts b/src/misc/convert-host.ts index ad52e1258839338e13e8911b8741a19a61868a05..f8957a64a8c5ba369152f39a895c8b1f97b0e7e2 100644 --- a/src/misc/convert-host.ts +++ b/src/misc/convert-host.ts @@ -1,4 +1,5 @@ -import config from '../config'; +import { URL } from 'url'; +import config from '@/config'; import { toASCII } from 'punycode'; export function getFullApAccount(username: string, host: string | null) { diff --git a/src/misc/download-url.ts b/src/misc/download-url.ts index aaba302a5c187b64672cd2c1f49f6c7b7a4e6dcb..dafeff6fc83e48963c6818c0c90d1f701fbf61ac 100644 --- a/src/misc/download-url.ts +++ b/src/misc/download-url.ts @@ -1,10 +1,11 @@ import * as fs from 'fs'; import * as stream from 'stream'; import * as util from 'util'; +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'; import * as chalk from 'chalk'; import Logger from '../services/logger'; diff --git a/src/misc/fetch.ts b/src/misc/fetch.ts index 90d89a4392e836222ea6d05a2de66b1b8018fd99..ee671f59be9826a828c05ad6666d246d5a597ec9 100644 --- a/src/misc/fetch.ts +++ b/src/misc/fetch.ts @@ -4,7 +4,7 @@ import * as cache from 'lookup-dns-cache'; import fetch, { HeadersInit } from 'node-fetch'; import { HttpProxyAgent } from 'http-proxy-agent'; import { HttpsProxyAgent } from 'https-proxy-agent'; -import config from '../config'; +import config from '@/config'; import { URL } from 'url'; export async function getJson(url: string, accept = 'application/json, */*', timeout = 10000, headers?: HeadersInit) { diff --git a/src/misc/gen-id.ts b/src/misc/gen-id.ts index 8562767bf84bf582492f5bdce9fce637e8794356..8e7e0b611392b9161ea2e1a92a828267838c5826 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'; const metohd = config.id.toLowerCase(); diff --git a/src/models/repositories/antenna.ts b/src/models/repositories/antenna.ts index 84e082bd25c623433833eee0310a36dc41a2cf47..787e5c8e2b43a3eb7994b7cf1b348e93681ce15d 100644 --- a/src/models/repositories/antenna.ts +++ b/src/models/repositories/antenna.ts @@ -1,6 +1,6 @@ import { EntityRepository, Repository } from 'typeorm'; import { Antenna } from '../entities/antenna'; -import { SchemaType } from '../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { AntennaNotes, UserGroupJoinings } from '..'; export type PackedAntenna = SchemaType<typeof packedAntennaSchema>; diff --git a/src/models/repositories/app.ts b/src/models/repositories/app.ts index 33e0f411566bddeb7608105d65f660d554ebbf0c..c919a9bdb18ff9f2d251d74e7003b35ed23789a9 100644 --- a/src/models/repositories/app.ts +++ b/src/models/repositories/app.ts @@ -1,7 +1,7 @@ import { EntityRepository, Repository } from 'typeorm'; import { App } from '../entities/app'; import { AccessTokens } from '..'; -import { SchemaType } from '../../misc/schema'; +import { SchemaType } from '@/misc/schema'; export type PackedApp = SchemaType<typeof packedAppSchema>; @@ -9,7 +9,7 @@ export type PackedApp = SchemaType<typeof packedAppSchema>; export class AppRepository extends Repository<App> { public async pack( src: App['id'] | App, - me?: any, + me?: { id: User['id'] } | null | undefined, options?: { detail?: boolean, includeSecret?: boolean, diff --git a/src/models/repositories/auth-session.ts b/src/models/repositories/auth-session.ts index e985d6925fc1a369b47e637dcd4fe3393dc739af..f513357e1b8c9c67e9365cddbcc47d690982d359 100644 --- a/src/models/repositories/auth-session.ts +++ b/src/models/repositories/auth-session.ts @@ -2,12 +2,13 @@ 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'; @EntityRepository(AuthSession) export class AuthSessionRepository extends Repository<AuthSession> { public async pack( src: AuthSession['id'] | AuthSession, - me?: any + me?: { id: User['id'] } | null | undefined ) { const session = typeof src === 'object' ? src : await this.findOneOrFail(src); diff --git a/src/models/repositories/blocking.ts b/src/models/repositories/blocking.ts index 314f459e65d261c4adb0aac5188506fa08c032ec..60b43fae3e3937eeb997ebd9675f82b01ff50c33 100644 --- a/src/models/repositories/blocking.ts +++ b/src/models/repositories/blocking.ts @@ -2,7 +2,8 @@ import { EntityRepository, Repository } from 'typeorm'; import { Users } from '..'; import { Blocking } from '../entities/blocking'; import { awaitAll } from '../../prelude/await-all'; -import { SchemaType } from '../../misc/schema'; +import { SchemaType } from '@/misc/schema'; +import { User } from '../entities/user'; export type PackedBlocking = SchemaType<typeof packedBlockingSchema>; @@ -10,7 +11,7 @@ export type PackedBlocking = SchemaType<typeof packedBlockingSchema>; export class BlockingRepository extends Repository<Blocking> { public async pack( src: Blocking['id'] | Blocking, - me?: any + me?: { id: User['id'] } | null | undefined ): Promise<PackedBlocking> { const blocking = typeof src === 'object' ? src : await this.findOneOrFail(src); @@ -26,7 +27,7 @@ export class BlockingRepository extends Repository<Blocking> { public packMany( blockings: any[], - me: any + me: { id: User['id'] } ) { return Promise.all(blockings.map(x => this.pack(x, me))); } diff --git a/src/models/repositories/channel.ts b/src/models/repositories/channel.ts index 2654c9d6f34cf56f3cdf70dd94c90cbd4d871af2..a1c85f2bd734bbc1f4145a21bd333bdd4def3f78 100644 --- a/src/models/repositories/channel.ts +++ b/src/models/repositories/channel.ts @@ -1,6 +1,6 @@ import { EntityRepository, Repository } from 'typeorm'; import { Channel } from '../entities/channel'; -import { SchemaType } from '../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { DriveFiles, ChannelFollowings, NoteUnreads } from '..'; import { User } from '../entities/user'; @@ -10,19 +10,19 @@ export type PackedChannel = SchemaType<typeof packedChannelSchema>; export class ChannelRepository extends Repository<Channel> { public async pack( src: Channel['id'] | Channel, - me?: User['id'] | User | null | undefined, + me?: { id: User['id'] } | null | undefined, ): Promise<PackedChannel> { const channel = typeof src === 'object' ? src : await this.findOneOrFail(src); - const meId = me ? typeof me === 'string' ? me : me.id : null; + const meId = me ? me.id : null; const banner = channel.bannerId ? await DriveFiles.findOne(channel.bannerId) : null; - const hasUnreadNote = me ? (await NoteUnreads.findOne({ noteChannelId: channel.id, userId: meId })) != null : undefined; + const hasUnreadNote = meId ? (await NoteUnreads.findOne({ noteChannelId: channel.id, userId: meId })) != null : undefined; - const following = await ChannelFollowings.findOne({ + const following = meId ? await ChannelFollowings.findOne({ followerId: meId, followeeId: channel.id, - }); + }) : null; return { id: channel.id, diff --git a/src/models/repositories/clip.ts b/src/models/repositories/clip.ts index 84891a4372396e80d213b246cb2f8d4b0bc63930..8d1f63c44b38a9ff378a70571c29a223a749264b 100644 --- a/src/models/repositories/clip.ts +++ b/src/models/repositories/clip.ts @@ -1,6 +1,6 @@ import { EntityRepository, Repository } from 'typeorm'; import { Clip } from '../entities/clip'; -import { SchemaType } from '../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { Users } from '..'; import { awaitAll } from '../../prelude/await-all'; diff --git a/src/models/repositories/drive-file.ts b/src/models/repositories/drive-file.ts index 61d24bd24ee96470ba075455f171f7a135f205d6..590079fe4a0480abc2a583da4f67fbe36d30ed08 100644 --- a/src/models/repositories/drive-file.ts +++ b/src/models/repositories/drive-file.ts @@ -2,13 +2,13 @@ import { EntityRepository, Repository } from 'typeorm'; import { DriveFile } from '../entities/drive-file'; import { Users, DriveFolders } from '..'; import { User } from '../entities/user'; -import { toPuny } from '../../misc/convert-host'; +import { toPuny } from '@/misc/convert-host'; import { awaitAll } from '../../prelude/await-all'; -import { SchemaType } from '../../misc/schema'; -import config from '../../config'; +import { SchemaType } from '@/misc/schema'; +import config from '@/config'; import { query, appendQuery } from '../../prelude/url'; import { Meta } from '../entities/meta'; -import { fetchMeta } from '../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; export type PackedDriveFile = SchemaType<typeof packedDriveFileSchema>; @@ -53,7 +53,7 @@ export class DriveFileRepository extends Repository<DriveFile> { return thumbnail ? (file.thumbnailUrl || (isImage ? (file.webpublicUrl || file.url) : null)) : (file.webpublicUrl || file.url); } - public async calcDriveUsageOf(user: User['id'] | User): Promise<number> { + public async calcDriveUsageOf(user: User['id'] | { id: User['id'] }): Promise<number> { const id = typeof user === 'object' ? user.id : user; const { sum } = await this diff --git a/src/models/repositories/drive-folder.ts b/src/models/repositories/drive-folder.ts index 2a18220384be2565018fca9e25bd761ecdde1d40..cc07c56675b3115ab96e7c5678a654d6444d3a3f 100644 --- a/src/models/repositories/drive-folder.ts +++ b/src/models/repositories/drive-folder.ts @@ -2,7 +2,7 @@ import { EntityRepository, Repository } from 'typeorm'; import { DriveFolders, DriveFiles } from '..'; import { DriveFolder } from '../entities/drive-folder'; import { awaitAll } from '../../prelude/await-all'; -import { SchemaType } from '../../misc/schema'; +import { SchemaType } from '@/misc/schema'; export type PackedDriveFolder = SchemaType<typeof packedDriveFolderSchema>; diff --git a/src/models/repositories/federation-instance.ts b/src/models/repositories/federation-instance.ts index c6b08dc101eaec8f051a2fd9cce6670d2dd0d61d..15e8023ee90c4249b2a08a11082ad5e0495ba29a 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'; export const packedFederationInstanceSchema = { type: 'object' as const, diff --git a/src/models/repositories/follow-request.ts b/src/models/repositories/follow-request.ts index 0d96b8eb53db564acd82f262322feddfcb3ef34f..31e5fb2d90a4c115ed17074920bf50141b6f5c69 100644 --- a/src/models/repositories/follow-request.ts +++ b/src/models/repositories/follow-request.ts @@ -1,12 +1,13 @@ import { EntityRepository, Repository } from 'typeorm'; import { FollowRequest } from '../entities/follow-request'; import { Users } from '..'; +import { User } from '../entities/user'; @EntityRepository(FollowRequest) export class FollowRequestRepository extends Repository<FollowRequest> { public async pack( src: FollowRequest['id'] | FollowRequest, - me?: any + me?: { id: User['id'] } | null | undefined ) { const request = typeof src === 'object' ? src : await this.findOneOrFail(src); diff --git a/src/models/repositories/following.ts b/src/models/repositories/following.ts index 986f107e7df928ad3c4925f40dfae9d573d9e5ea..b886432978cfa477c946ff6fb1a025f0852d98cf 100644 --- a/src/models/repositories/following.ts +++ b/src/models/repositories/following.ts @@ -2,7 +2,8 @@ import { EntityRepository, Repository } from 'typeorm'; import { Users } from '..'; import { Following } from '../entities/following'; import { awaitAll } from '../../prelude/await-all'; -import { SchemaType } from '../../misc/schema'; +import { SchemaType } from '@/misc/schema'; +import { User } from '../entities/user'; type LocalFollowerFollowing = Following & { followerHost: null; @@ -50,7 +51,7 @@ export class FollowingRepository extends Repository<Following> { public async pack( src: Following['id'] | Following, - me?: any, + me?: { id: User['id'] } | null | undefined, opts?: { populateFollowee?: boolean; populateFollower?: boolean; @@ -76,7 +77,7 @@ export class FollowingRepository extends Repository<Following> { public packMany( followings: any[], - me?: any, + me?: { id: User['id'] } | null | undefined, opts?: { populateFollowee?: boolean; populateFollower?: boolean; diff --git a/src/models/repositories/games/reversi/game.ts b/src/models/repositories/games/reversi/game.ts index e23247f6649e9a117ecec37fd343025c01ad4899..344cf7b20e0ed4cbb1761b54ec02db423ef5e0c5 100644 --- a/src/models/repositories/games/reversi/game.ts +++ b/src/models/repositories/games/reversi/game.ts @@ -1,3 +1,4 @@ +import { User } from '@/models/entities/user'; import { EntityRepository, Repository } from 'typeorm'; import { Users } from '../../..'; import { ReversiGame } from '../../../entities/games/reversi/game'; @@ -6,7 +7,7 @@ import { ReversiGame } from '../../../entities/games/reversi/game'; export class ReversiGameRepository extends Repository<ReversiGame> { public async pack( src: ReversiGame['id'] | ReversiGame, - me?: any, + me?: { id: User['id'] } | null | undefined, options?: { detail?: boolean } @@ -16,7 +17,6 @@ export class ReversiGameRepository extends Repository<ReversiGame> { }, options); const game = typeof src === 'object' ? src : await this.findOneOrFail(src); - const meId = me ? typeof me === 'string' ? me : me.id : null; return { id: game.id, @@ -30,10 +30,10 @@ export class ReversiGameRepository extends Repository<ReversiGame> { user2Accepted: game.user2Accepted, user1Id: game.user1Id, user2Id: game.user2Id, - user1: await Users.pack(game.user1Id, meId), - user2: await Users.pack(game.user2Id, meId), + user1: await Users.pack(game.user1Id, me), + user2: await Users.pack(game.user2Id, me), winnerId: game.winnerId, - winner: game.winnerId ? await Users.pack(game.winnerId, meId) : null, + winner: game.winnerId ? await Users.pack(game.winnerId, me) : null, surrendered: game.surrendered, black: game.black, bw: game.bw, diff --git a/src/models/repositories/games/reversi/matching.ts b/src/models/repositories/games/reversi/matching.ts index 51f17c9a4e2b3493385a7429fdf5dd45d5d74e82..013021eb90539531c20bd5b9856660295fb1374c 100644 --- a/src/models/repositories/games/reversi/matching.ts +++ b/src/models/repositories/games/reversi/matching.ts @@ -2,12 +2,13 @@ import { EntityRepository, Repository } from 'typeorm'; import { ReversiMatching } from '../../../entities/games/reversi/matching'; import { Users } from '../../..'; import { awaitAll } from '../../../../prelude/await-all'; +import { User } from '@/models/entities/user'; @EntityRepository(ReversiMatching) export class ReversiMatchingRepository extends Repository<ReversiMatching> { public async pack( src: ReversiMatching['id'] | ReversiMatching, - me: any + me: { id: User['id'] } ) { const matching = typeof src === 'object' ? src : await this.findOneOrFail(src); diff --git a/src/models/repositories/hashtag.ts b/src/models/repositories/hashtag.ts index fb54a12e136867a1b5806baf1fdd3f5f25a7d91d..0089ab50dbf73eaa38ed0b676dea71038fd87d3f 100644 --- a/src/models/repositories/hashtag.ts +++ b/src/models/repositories/hashtag.ts @@ -1,6 +1,6 @@ import { EntityRepository, Repository } from 'typeorm'; import { Hashtag } from '../entities/hashtag'; -import { SchemaType } from '../../misc/schema'; +import { SchemaType } from '@/misc/schema'; export type PackedHashtag = SchemaType<typeof packedHashtagSchema>; diff --git a/src/models/repositories/messaging-message.ts b/src/models/repositories/messaging-message.ts index 0e04c258647d067c6ec5656db418b4a1613fd241..8d6d03a23699a77a1e32567e5d321c0521aa0df5 100644 --- a/src/models/repositories/messaging-message.ts +++ b/src/models/repositories/messaging-message.ts @@ -1,7 +1,8 @@ import { EntityRepository, Repository } from 'typeorm'; import { MessagingMessage } from '../entities/messaging-message'; import { Users, DriveFiles, UserGroups } from '..'; -import { SchemaType } from '../../misc/schema'; +import { SchemaType } from '@/misc/schema'; +import { User } from '../entities/user'; export type PackedMessagingMessage = SchemaType<typeof packedMessagingMessageSchema>; @@ -13,7 +14,7 @@ export class MessagingMessageRepository extends Repository<MessagingMessage> { public async pack( src: MessagingMessage['id'] | MessagingMessage, - me?: any, + me?: { id: User['id'] } | null | undefined, options?: { populateRecipient?: boolean, populateGroup?: boolean, diff --git a/src/models/repositories/muting.ts b/src/models/repositories/muting.ts index 5fd409df787b360d34aeef27f6e0669d50b4ab7c..b5bbe8a0a30178a3881167b81937a3d954069e4a 100644 --- a/src/models/repositories/muting.ts +++ b/src/models/repositories/muting.ts @@ -2,7 +2,8 @@ import { EntityRepository, Repository } from 'typeorm'; import { Users } from '..'; import { Muting } from '../entities/muting'; import { awaitAll } from '../../prelude/await-all'; -import { SchemaType } from '../../misc/schema'; +import { SchemaType } from '@/misc/schema'; +import { User } from '../entities/user'; export type PackedMuting = SchemaType<typeof packedMutingSchema>; @@ -10,7 +11,7 @@ export type PackedMuting = SchemaType<typeof packedMutingSchema>; export class MutingRepository extends Repository<Muting> { public async pack( src: Muting['id'] | Muting, - me?: any + me?: { id: User['id'] } | null | undefined ): Promise<PackedMuting> { const muting = typeof src === 'object' ? src : await this.findOneOrFail(src); @@ -26,7 +27,7 @@ export class MutingRepository extends Repository<Muting> { public packMany( mutings: any[], - me: any + me: { id: User['id'] } ) { return Promise.all(mutings.map(x => this.pack(x, me))); } diff --git a/src/models/repositories/note-favorite.ts b/src/models/repositories/note-favorite.ts index eb2ffff4c1f90e928fa1ca34552f96beb2bde253..316ebdff351be19468bfe700e572deb7751719b0 100644 --- a/src/models/repositories/note-favorite.ts +++ b/src/models/repositories/note-favorite.ts @@ -1,12 +1,13 @@ import { EntityRepository, Repository } from 'typeorm'; import { NoteFavorite } from '../entities/note-favorite'; import { Notes } from '..'; +import { User } from '../entities/user'; @EntityRepository(NoteFavorite) export class NoteFavoriteRepository extends Repository<NoteFavorite> { public async pack( src: NoteFavorite['id'] | NoteFavorite, - me?: any + me?: { id: User['id'] } | null | undefined ) { const favorite = typeof src === 'object' ? src : await this.findOneOrFail(src); @@ -20,7 +21,7 @@ export class NoteFavoriteRepository extends Repository<NoteFavorite> { public packMany( favorites: any[], - me: any + me: { id: User['id'] } ) { return Promise.all(favorites.map(x => this.pack(x, me))); } diff --git a/src/models/repositories/note-reaction.ts b/src/models/repositories/note-reaction.ts index 785a876bf8a605e338ba3a5e6fe7314c2d58a00c..4c568096030942f4ea3b1f670d99d8aa150d7e63 100644 --- a/src/models/repositories/note-reaction.ts +++ b/src/models/repositories/note-reaction.ts @@ -1,8 +1,9 @@ import { EntityRepository, Repository } from 'typeorm'; import { NoteReaction } from '../entities/note-reaction'; import { Users } from '..'; -import { SchemaType } from '../../misc/schema'; -import { convertLegacyReaction } from '../../misc/reaction-lib'; +import { SchemaType } from '@/misc/schema'; +import { convertLegacyReaction } from '@/misc/reaction-lib'; +import { User } from '../entities/user'; export type PackedNoteReaction = SchemaType<typeof packedNoteReactionSchema>; @@ -10,7 +11,7 @@ export type PackedNoteReaction = SchemaType<typeof packedNoteReactionSchema>; export class NoteReactionRepository extends Repository<NoteReaction> { public async pack( src: NoteReaction['id'] | NoteReaction, - me?: any + me?: { id: User['id'] } | null | undefined ): Promise<PackedNoteReaction> { const reaction = typeof src === 'object' ? src : await this.findOneOrFail(src); diff --git a/src/models/repositories/note.ts b/src/models/repositories/note.ts index 73e18f6c5b62089e03004dd39689ffb20f92547e..3642a03c2cbe8d3844cecaf0531a20b89f256647 100644 --- a/src/models/repositories/note.ts +++ b/src/models/repositories/note.ts @@ -2,13 +2,13 @@ import { EntityRepository, Repository, In } from 'typeorm'; import { Note } from '../entities/note'; import { User } from '../entities/user'; import { Users, PollVotes, DriveFiles, NoteReactions, Followings, Polls, Channels } from '..'; -import { SchemaType } from '../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { awaitAll } from '../../prelude/await-all'; -import { convertLegacyReaction, convertLegacyReactions, decodeReaction } from '../../misc/reaction-lib'; +import { convertLegacyReaction, convertLegacyReactions, decodeReaction } from '@/misc/reaction-lib'; import { toString } from '../../mfm/to-string'; import { parse } from '../../mfm/parse'; import { NoteReaction } from '../entities/note-reaction'; -import { aggregateNoteEmojis, populateEmojis, prefetchEmojis } from '../../misc/populate-emojis'; +import { aggregateNoteEmojis, populateEmojis, prefetchEmojis } from '@/misc/populate-emojis'; export type PackedNote = SchemaType<typeof packedNoteSchema>; @@ -79,7 +79,7 @@ export class NoteRepository extends Repository<Note> { public async pack( src: Note['id'] | Note, - me?: User['id'] | User | null | undefined, + me?: { id: User['id'] } | null | undefined, options?: { detail?: boolean; skipHide?: boolean; @@ -93,7 +93,7 @@ export class NoteRepository extends Repository<Note> { skipHide: false }, options); - const meId = me ? typeof me === 'string' ? me : me.id : null; + const meId = me ? me.id : null; const note = typeof src === 'object' ? src : await this.findOneOrFail(src); const host = note.userHost; @@ -174,7 +174,7 @@ export class NoteRepository extends Repository<Note> { id: note.id, createdAt: note.createdAt.toISOString(), userId: note.userId, - user: Users.pack(note.user || note.userId, meId, { + user: Users.pack(note.user || note.userId, me, { detail: false, }), text: text, @@ -204,12 +204,12 @@ export class NoteRepository extends Repository<Note> { _prId_: (note as any)._prId_ || undefined, ...(opts.detail ? { - reply: note.replyId ? this.pack(note.reply || note.replyId, meId, { + reply: note.replyId ? this.pack(note.reply || note.replyId, me, { detail: false, _hint_: options?._hint_ }) : undefined, - renote: note.renoteId ? this.pack(note.renote || note.renoteId, meId, { + renote: note.renoteId ? this.pack(note.renote || note.renoteId, me, { detail: true, _hint_: options?._hint_ }) : undefined, @@ -236,7 +236,7 @@ export class NoteRepository extends Repository<Note> { public async packMany( notes: Note[], - me?: User['id'] | User | null | undefined, + me?: { id: User['id'] } | null | undefined, options?: { detail?: boolean; skipHide?: boolean; @@ -244,7 +244,7 @@ export class NoteRepository extends Repository<Note> { ) { if (notes.length === 0) return []; - const meId = me ? typeof me === 'string' ? me : me.id : null; + const meId = me ? me.id : null; const myReactionsMap = new Map<Note['id'], NoteReaction | null>(); if (meId) { const renoteIds = notes.filter(n => n.renoteId != null).map(n => n.renoteId!); diff --git a/src/models/repositories/notification.ts b/src/models/repositories/notification.ts index 83fe11d5f7da350467b9ef14077064846a6f2ac0..abadea4632940ca26407fe46c25e2a0071996795 100644 --- a/src/models/repositories/notification.ts +++ b/src/models/repositories/notification.ts @@ -2,11 +2,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 { SchemaType } from '../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { Note } from '../entities/note'; import { NoteReaction } from '../entities/note-reaction'; import { User } from '../entities/user'; -import { aggregateNoteEmojis, prefetchEmojis } from '../../misc/populate-emojis'; +import { aggregateNoteEmojis, prefetchEmojis } from '@/misc/populate-emojis'; export type PackedNotification = SchemaType<typeof packedNotificationSchema>; @@ -31,38 +31,38 @@ export class NotificationRepository extends Repository<Notification> { userId: notification.notifierId, user: notification.notifierId ? Users.pack(notification.notifier || notification.notifierId) : null, ...(notification.type === 'mention' ? { - note: Notes.pack(notification.note || notification.noteId!, notification.notifieeId, { + note: Notes.pack(notification.note || notification.noteId!, { id: notification.notifieeId }, { detail: true, _hint_: options._hintForEachNotes_ }), } : {}), ...(notification.type === 'reply' ? { - note: Notes.pack(notification.note || notification.noteId!, notification.notifieeId, { + note: Notes.pack(notification.note || notification.noteId!, { id: notification.notifieeId }, { detail: true, _hint_: options._hintForEachNotes_ }), } : {}), ...(notification.type === 'renote' ? { - note: Notes.pack(notification.note || notification.noteId!, notification.notifieeId, { + note: Notes.pack(notification.note || notification.noteId!, { id: notification.notifieeId }, { detail: true, _hint_: options._hintForEachNotes_ }), } : {}), ...(notification.type === 'quote' ? { - note: Notes.pack(notification.note || notification.noteId!, notification.notifieeId, { + note: Notes.pack(notification.note || notification.noteId!, { id: notification.notifieeId }, { detail: true, _hint_: options._hintForEachNotes_ }), } : {}), ...(notification.type === 'reaction' ? { - note: Notes.pack(notification.note || notification.noteId!, notification.notifieeId, { + note: Notes.pack(notification.note || notification.noteId!, { id: notification.notifieeId }, { detail: true, _hint_: options._hintForEachNotes_ }), reaction: notification.reaction } : {}), ...(notification.type === 'pollVote' ? { - note: Notes.pack(notification.note || notification.noteId!, notification.notifieeId, { + note: Notes.pack(notification.note || notification.noteId!, { id: notification.notifieeId }, { detail: true, _hint_: options._hintForEachNotes_ }), diff --git a/src/models/repositories/page-like.ts b/src/models/repositories/page-like.ts index 94b1685e5ed8fb09d4002e03fbcfff2abc953926..cfef950f3bfecda57626a25524a1c9ba9f6a7fe7 100644 --- a/src/models/repositories/page-like.ts +++ b/src/models/repositories/page-like.ts @@ -1,12 +1,13 @@ import { EntityRepository, Repository } from 'typeorm'; import { PageLike } from '../entities/page-like'; import { Pages } from '..'; +import { User } from '../entities/user'; @EntityRepository(PageLike) export class PageLikeRepository extends Repository<PageLike> { public async pack( src: PageLike['id'] | PageLike, - me?: any + me?: { id: User['id'] } | null | undefined ) { const like = typeof src === 'object' ? src : await this.findOneOrFail(src); @@ -18,7 +19,7 @@ export class PageLikeRepository extends Repository<PageLike> { public packMany( likes: any[], - me: any + me: { id: User['id'] } ) { return Promise.all(likes.map(x => this.pack(x, me))); } diff --git a/src/models/repositories/page.ts b/src/models/repositories/page.ts index 1b30b6645b980f8636a0075b6dbfd3509b50621b..a162a503211ea39a3f16c11d3d1b778d6ec67829 100644 --- a/src/models/repositories/page.ts +++ b/src/models/repositories/page.ts @@ -1,6 +1,6 @@ import { EntityRepository, Repository } from 'typeorm'; import { Page } from '../entities/page'; -import { SchemaType } from '../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { Users, DriveFiles, PageLikes } from '..'; import { awaitAll } from '../../prelude/await-all'; import { DriveFile } from '../entities/drive-file'; @@ -12,9 +12,9 @@ export type PackedPage = SchemaType<typeof packedPageSchema>; export class PageRepository extends Repository<Page> { public async pack( src: Page['id'] | Page, - me?: User['id'] | User | null | undefined, + me?: { id: User['id'] } | null | undefined, ): Promise<PackedPage> { - const meId = me ? typeof me === 'string' ? me : me.id : null; + const meId = me ? me.id : null; const page = typeof src === 'object' ? src : await this.findOneOrFail(src); const attachedFiles: Promise<DriveFile | undefined>[] = []; @@ -84,7 +84,7 @@ export class PageRepository extends Repository<Page> { public packMany( pages: Page[], - me?: User['id'] | User | null | undefined, + me?: { id: User['id'] } | null | undefined, ) { return Promise.all(pages.map(x => this.pack(x, me))); } diff --git a/src/models/repositories/user-group.ts b/src/models/repositories/user-group.ts index a1b226f154e5c015d362148248451665369c070b..9861b23356bc977e705c2eaf8b7073bb302a3d06 100644 --- a/src/models/repositories/user-group.ts +++ b/src/models/repositories/user-group.ts @@ -1,7 +1,7 @@ import { EntityRepository, Repository } from 'typeorm'; import { UserGroup } from '../entities/user-group'; import { UserGroupJoinings } from '..'; -import { SchemaType } from '../../misc/schema'; +import { SchemaType } from '@/misc/schema'; export type PackedUserGroup = SchemaType<typeof packedUserGroupSchema>; diff --git a/src/models/repositories/user-list.ts b/src/models/repositories/user-list.ts index 9421aeb0c7b9c18eb2dd6f8ab1ab8f718113cc78..094abace63d1725eb140bf053df778a9e06152a4 100644 --- a/src/models/repositories/user-list.ts +++ b/src/models/repositories/user-list.ts @@ -1,7 +1,7 @@ import { EntityRepository, Repository } from 'typeorm'; import { UserList } from '../entities/user-list'; import { UserListJoinings } from '..'; -import { SchemaType } from '../../misc/schema'; +import { SchemaType } from '@/misc/schema'; export type PackedUserList = SchemaType<typeof packedUserListSchema>; diff --git a/src/models/repositories/user.ts b/src/models/repositories/user.ts index 53c06f3f165ff652356d116f9f3a168c9a53f340..bb084f024578dae5e59f3b4e9760a63c91abd0fd 100644 --- a/src/models/repositories/user.ts +++ b/src/models/repositories/user.ts @@ -2,10 +2,11 @@ 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 { SchemaType } from '../../misc/schema'; +import config from '@/config'; +import { SchemaType } from '@/misc/schema'; import { awaitAll } from '../../prelude/await-all'; -import { populateEmojis } from '../../misc/populate-emojis'; +import { populateEmojis } from '@/misc/populate-emojis'; +import { getAntennas } from '@/misc/antenna-cache'; export type PackedUser = SchemaType<typeof packedUserSchema>; @@ -97,10 +98,10 @@ export class UserRepository extends Repository<User> { } public async getHasUnreadAntenna(userId: User['id']): Promise<boolean> { - const antennas = await Antennas.find({ userId }); + const myAntennas = (await getAntennas()).filter(a => a.userId === userId); - const unread = antennas.length > 0 ? await AntennaNotes.findOne({ - antennaId: In(antennas.map(x => x.id)), + const unread = myAntennas.length > 0 ? await AntennaNotes.findOne({ + antennaId: In(myAntennas.map(x => x.id)), read: false }) : null; @@ -146,7 +147,7 @@ export class UserRepository extends Repository<User> { public async pack( src: User['id'] | User, - me?: User['id'] | User | null | undefined, + me?: { id: User['id'] } | null | undefined, options?: { detail?: boolean, includeSecrets?: boolean, @@ -158,7 +159,7 @@ export class UserRepository extends Repository<User> { }, options); const user = typeof src === 'object' ? src : await this.findOneOrFail(src); - const meId = me ? typeof me === 'string' ? me : me.id : null; + const meId = me ? me.id : null; const relation = meId && (meId !== user.id) && opts.detail ? await this.getRelation(meId, user.id) : null; const pins = opts.detail ? await UserNotePinings.createQueryBuilder('pin') @@ -212,11 +213,11 @@ export class UserRepository extends Repository<User> { followingCount: user.followingCount, notesCount: user.notesCount, pinnedNoteIds: pins.map(pin => pin.noteId), - pinnedNotes: Notes.packMany(pins.map(pin => pin.note!), meId, { + pinnedNotes: Notes.packMany(pins.map(pin => pin.note!), me, { detail: true }), pinnedPageId: profile!.pinnedPageId, - pinnedPage: profile!.pinnedPageId ? Pages.pack(profile!.pinnedPageId, meId) : null, + pinnedPage: profile!.pinnedPageId ? Pages.pack(profile!.pinnedPageId, me) : null, twoFactorEnabled: profile!.twoFactorEnabled, usePasswordLessLogin: profile!.usePasswordLessLogin, securityKeys: profile!.twoFactorEnabled @@ -285,7 +286,7 @@ export class UserRepository extends Repository<User> { public packMany( users: (User['id'] | User)[], - me?: User['id'] | User | null | undefined, + me?: { id: User['id'] } | null | undefined, options?: { detail?: boolean, includeSecrets?: boolean, @@ -294,11 +295,15 @@ export class UserRepository extends Repository<User> { return Promise.all(users.map(u => this.pack(u, me, options))); } - public isLocalUser(user: User): user is ILocalUser { + public isLocalUser(user: User): user is ILocalUser; + public isLocalUser<T extends { host: User['host'] }>(user: T): user is T & { host: null; }; + public isLocalUser(user: User | { host: User['host'] }): boolean { return user.host == null; } - public isRemoteUser(user: User): user is IRemoteUser { + public isRemoteUser(user: User): user is IRemoteUser; + public isRemoteUser<T extends { host: User['host'] }>(user: T): user is T & { host: string; }; + public isRemoteUser(user: User | { host: User['host'] }): boolean { return !this.isLocalUser(user); } diff --git a/src/queue/index.ts b/src/queue/index.ts index 9fb4595a350299f1cc47239a83267a5c26f01009..201b663799a1672e8715a94ddd5afac22ef0580b 100644 --- a/src/queue/index.ts +++ b/src/queue/index.ts @@ -1,7 +1,7 @@ import * as httpSignature from 'http-signature'; -import config from '../config'; -import { ILocalUser } from '../models/entities/user'; +import config from '@/config'; +import { User } from '../models/entities/user'; import { program } from '../argv'; import processDeliver from './processors/deliver'; @@ -65,7 +65,7 @@ objectStorageQueue .on('error', (job: any, err: Error) => objectStorageLogger.error(`error ${err}`, { job, e: renderError(err) })) .on('stalled', (job) => objectStorageLogger.warn(`stalled id=${job.id}`)); -export function deliver(user: ILocalUser, content: any, to: any) { +export function deliver(user: { id: User['id']; host: null; }, content: any, to: any) { if (content == null) return null; const data = { @@ -102,7 +102,7 @@ export function inbox(activity: any, signature: httpSignature.IParsedSignature) }); } -export function createDeleteDriveFilesJob(user: ILocalUser) { +export function createDeleteDriveFilesJob(user: { id: User['id'] }) { return dbQueue.add('deleteDriveFiles', { user: user }, { @@ -111,7 +111,7 @@ export function createDeleteDriveFilesJob(user: ILocalUser) { }); } -export function createExportNotesJob(user: ILocalUser) { +export function createExportNotesJob(user: { id: User['id'] }) { return dbQueue.add('exportNotes', { user: user }, { @@ -120,7 +120,7 @@ export function createExportNotesJob(user: ILocalUser) { }); } -export function createExportFollowingJob(user: ILocalUser) { +export function createExportFollowingJob(user: { id: User['id'] }) { return dbQueue.add('exportFollowing', { user: user }, { @@ -129,7 +129,7 @@ export function createExportFollowingJob(user: ILocalUser) { }); } -export function createExportMuteJob(user: ILocalUser) { +export function createExportMuteJob(user: { id: User['id'] }) { return dbQueue.add('exportMute', { user: user }, { @@ -138,7 +138,7 @@ export function createExportMuteJob(user: ILocalUser) { }); } -export function createExportBlockingJob(user: ILocalUser) { +export function createExportBlockingJob(user: { id: User['id'] }) { return dbQueue.add('exportBlocking', { user: user }, { @@ -147,7 +147,7 @@ export function createExportBlockingJob(user: ILocalUser) { }); } -export function createExportUserListsJob(user: ILocalUser) { +export function createExportUserListsJob(user: { id: User['id'] }) { return dbQueue.add('exportUserLists', { user: user }, { @@ -156,7 +156,7 @@ export function createExportUserListsJob(user: ILocalUser) { }); } -export function createImportFollowingJob(user: ILocalUser, fileId: DriveFile['id']) { +export function createImportFollowingJob(user: { id: User['id'] }, fileId: DriveFile['id']) { return dbQueue.add('importFollowing', { user: user, fileId: fileId @@ -166,7 +166,7 @@ export function createImportFollowingJob(user: ILocalUser, fileId: DriveFile['id }); } -export function createImportUserListsJob(user: ILocalUser, fileId: DriveFile['id']) { +export function createImportUserListsJob(user: { id: User['id'] }, fileId: DriveFile['id']) { return dbQueue.add('importUserLists', { user: user, fileId: fileId diff --git a/src/queue/initialize.ts b/src/queue/initialize.ts index 92579531e434e48ed1fa986a49e4ab1b698704ab..941fe4bc330efe8a6aa36f1efc92912a6efe8bad 100644 --- a/src/queue/initialize.ts +++ b/src/queue/initialize.ts @@ -1,5 +1,5 @@ import * as Queue from 'bull'; -import config from '../config'; +import config from '@/config'; export function initialize(name: string, limitPerSec = -1) { return new Queue(name, { diff --git a/src/queue/processors/db/export-blocking.ts b/src/queue/processors/db/export-blocking.ts index 0504ab8c30526d680bedc6dc0e33e22a27b5d780..9bbc9b2f12d95574a75ca62fe3b621f987692cbc 100644 --- a/src/queue/processors/db/export-blocking.ts +++ b/src/queue/processors/db/export-blocking.ts @@ -5,7 +5,7 @@ import * as fs from 'fs'; import { queueLogger } from '../../logger'; import addFile from '../../../services/drive/add-file'; import dateFormat = require('dateformat'); -import { getFullApAccount } from '../../../misc/convert-host'; +import { getFullApAccount } from '@/misc/convert-host'; import { Users, Blockings } from '../../../models'; import { MoreThan } from 'typeorm'; diff --git a/src/queue/processors/db/export-following.ts b/src/queue/processors/db/export-following.ts index 996ef6310db8ccb0c087d97577c00e441bcccf5e..79df2298d898a845ac57eeb60bc78a226e02c829 100644 --- a/src/queue/processors/db/export-following.ts +++ b/src/queue/processors/db/export-following.ts @@ -5,7 +5,7 @@ import * as fs from 'fs'; import { queueLogger } from '../../logger'; import addFile from '../../../services/drive/add-file'; import dateFormat = require('dateformat'); -import { getFullApAccount } from '../../../misc/convert-host'; +import { getFullApAccount } from '@/misc/convert-host'; import { Users, Followings } from '../../../models'; import { MoreThan } from 'typeorm'; diff --git a/src/queue/processors/db/export-mute.ts b/src/queue/processors/db/export-mute.ts index 553155322041514c3018d8addaa4f09b855f345c..c10556f88244e1750bf829bc3bf079cd7e8a545e 100644 --- a/src/queue/processors/db/export-mute.ts +++ b/src/queue/processors/db/export-mute.ts @@ -5,7 +5,7 @@ import * as fs from 'fs'; import { queueLogger } from '../../logger'; import addFile from '../../../services/drive/add-file'; import dateFormat = require('dateformat'); -import { getFullApAccount } from '../../../misc/convert-host'; +import { getFullApAccount } from '@/misc/convert-host'; import { Users, Mutings } from '../../../models'; import { MoreThan } from 'typeorm'; diff --git a/src/queue/processors/db/export-user-lists.ts b/src/queue/processors/db/export-user-lists.ts index 447cdaa17489a6569da75361a6d7a4efc7cf36b9..b6c527fc78e602943ab762f709c7eb3255e805ce 100644 --- a/src/queue/processors/db/export-user-lists.ts +++ b/src/queue/processors/db/export-user-lists.ts @@ -5,7 +5,7 @@ import * as fs from 'fs'; import { queueLogger } from '../../logger'; import addFile from '../../../services/drive/add-file'; import dateFormat = require('dateformat'); -import { getFullApAccount } from '../../../misc/convert-host'; +import { getFullApAccount } from '@/misc/convert-host'; import { Users, UserLists, UserListJoinings } from '../../../models'; import { In } from 'typeorm'; diff --git a/src/queue/processors/db/import-following.ts b/src/queue/processors/db/import-following.ts index ff4ff6b6ab4d665b76b2e3cf39e08ac5a65b3932..554337849ebc386f5c1406aaa69705424794823b 100644 --- a/src/queue/processors/db/import-following.ts +++ b/src/queue/processors/db/import-following.ts @@ -2,10 +2,10 @@ import * as Bull from 'bull'; import { queueLogger } from '../../logger'; import follow from '../../../services/following/create'; -import parseAcct from '../../../misc/acct/parse'; +import parseAcct from '@/misc/acct/parse'; import { resolveUser } from '../../../remote/resolve-user'; -import { downloadTextFile } from '../../../misc/download-text-file'; -import { isSelfHost, toPuny } from '../../../misc/convert-host'; +import { downloadTextFile } from '@/misc/download-text-file'; +import { isSelfHost, toPuny } from '@/misc/convert-host'; import { Users, DriveFiles } from '../../../models'; 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 4692d8cf49ec2f994286ac5b8713041d99ebab4b..2fe023da7d4f601d340879a7f6049d7bea52438e 100644 --- a/src/queue/processors/db/import-user-lists.ts +++ b/src/queue/processors/db/import-user-lists.ts @@ -1,13 +1,13 @@ import * as Bull from 'bull'; import { queueLogger } from '../../logger'; -import parseAcct from '../../../misc/acct/parse'; +import parseAcct from '@/misc/acct/parse'; 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 { downloadTextFile } from '@/misc/download-text-file'; +import { isSelfHost, toPuny } from '@/misc/convert-host'; import { DriveFiles, Users, UserLists, UserListJoinings } from '../../../models'; -import { genId } from '../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; const logger = queueLogger.createSubLogger('import-user-lists'); diff --git a/src/queue/processors/deliver.ts b/src/queue/processors/deliver.ts index a8b4ed4fe3c709714b188c0e2f75429745e2d151..b167154fcdeb09621c3e6dedde6d9de1933d98b0 100644 --- a/src/queue/processors/deliver.ts +++ b/src/queue/processors/deliver.ts @@ -1,3 +1,4 @@ +import { URL } from 'url'; import * as Bull from 'bull'; import request from '../../remote/activitypub/request'; import { registerOrFetchInstanceDoc } from '../../services/register-or-fetch-instance-doc'; @@ -5,9 +6,9 @@ import Logger from '../../services/logger'; import { Instances } from '../../models'; import { instanceChart } from '../../services/chart'; 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 { fetchMeta } from '@/misc/fetch-meta'; +import { toPuny } from '@/misc/convert-host'; +import { Cache } from '@/misc/cache'; import { Instance } from '../../models/entities/instance'; const logger = new Logger('deliver'); diff --git a/src/queue/processors/inbox.ts b/src/queue/processors/inbox.ts index a5822ff25f6ddb7774462be51f0271c9ccff0f8a..7c746eb25d25d446b89e59e734f765e3f796788e 100644 --- a/src/queue/processors/inbox.ts +++ b/src/queue/processors/inbox.ts @@ -1,3 +1,4 @@ +import { URL } from 'url'; import * as Bull from 'bull'; import * as httpSignature from 'http-signature'; import perform from '../../remote/activitypub/perform'; @@ -5,8 +6,8 @@ import Logger from '../../services/logger'; import { registerOrFetchInstanceDoc } from '../../services/register-or-fetch-instance-doc'; import { Instances } from '../../models'; import { instanceChart } from '../../services/chart'; -import { fetchMeta } from '../../misc/fetch-meta'; -import { toPuny, extractDbHost } from '../../misc/convert-host'; +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 { InboxJobData } from '..'; diff --git a/src/queue/queues.ts b/src/queue/queues.ts index d589d9f7dac3f509e1239c42bf12135d8e0dbe7c..819bcf31d8ec22728fe663b4e4128e7303600e9f 100644 --- a/src/queue/queues.ts +++ b/src/queue/queues.ts @@ -1,4 +1,4 @@ -import config from '../config'; +import config from '@/config'; import { initialize as initializeQueue } from './initialize'; export const deliverQueue = initializeQueue('deliver', config.deliverJobPerSec || 128); diff --git a/src/remote/activitypub/db-resolver.ts b/src/remote/activitypub/db-resolver.ts index 26162b6b23a13a19023ee1bd9a484ef288b3c04f..dba1f0f0b1ede2e06c48cfa74a0db660f2b76f07 100644 --- a/src/remote/activitypub/db-resolver.ts +++ b/src/remote/activitypub/db-resolver.ts @@ -1,4 +1,4 @@ -import config from '../../config'; +import config from '@/config'; import { Note } from '../../models/entities/note'; import { User, IRemoteUser } from '../../models/entities/user'; import { UserPublickey } from '../../models/entities/user-publickey'; diff --git a/src/remote/activitypub/deliver-manager.ts b/src/remote/activitypub/deliver-manager.ts index 92721f552581b5947e79c5e227d317006603356a..f112b02b4f50774880e39cbd2b4c4044685a5c71 100644 --- a/src/remote/activitypub/deliver-manager.ts +++ b/src/remote/activitypub/deliver-manager.ts @@ -1,5 +1,5 @@ import { Users, Followings } from '../../models'; -import { ILocalUser, IRemoteUser } from '../../models/entities/user'; +import { ILocalUser, IRemoteUser, User } from '../../models/entities/user'; import { deliver } from '../../queue'; //#region types @@ -24,7 +24,7 @@ const isDirect = (recipe: any): recipe is IDirectRecipe => //#endregion export default class DeliverManager { - private actor: ILocalUser; + private actor: { id: User['id']; host: null; }; private activity: any; private recipes: IRecipe[] = []; @@ -33,7 +33,7 @@ export default class DeliverManager { * @param actor Actor * @param activity Activity to deliver */ - constructor(actor: ILocalUser, activity: any) { + constructor(actor: { id: User['id']; host: null; }, activity: any) { this.actor = actor; this.activity = activity; } diff --git a/src/remote/activitypub/kernel/announce/note.ts b/src/remote/activitypub/kernel/announce/note.ts index 765180742aec691f7ac97cdc640c025c8b8d3e85..d5176897bc058200c8b7f77d841e7f3f9e2b1a3c 100644 --- a/src/remote/activitypub/kernel/announce/note.ts +++ b/src/remote/activitypub/kernel/announce/note.ts @@ -4,9 +4,9 @@ import { IRemoteUser } from '../../../../models/entities/user'; import { IAnnounce, getApId } from '../../type'; import { fetchNote, resolveNote } from '../../models/note'; import { apLogger } from '../../logger'; -import { extractDbHost } from '../../../../misc/convert-host'; -import { fetchMeta } from '../../../../misc/fetch-meta'; -import { getApLock } from '../../../../misc/app-lock'; +import { extractDbHost } from '@/misc/convert-host'; +import { fetchMeta } from '@/misc/fetch-meta'; +import { getApLock } from '@/misc/app-lock'; import { parseAudience } from '../../audience'; const logger = apLogger; diff --git a/src/remote/activitypub/kernel/create/note.ts b/src/remote/activitypub/kernel/create/note.ts index f4fb8e5647520840a1e8184ba583624fdf5a4eaa..69499d303e16053132ddc389ad5289bd8d85a246 100644 --- a/src/remote/activitypub/kernel/create/note.ts +++ b/src/remote/activitypub/kernel/create/note.ts @@ -2,8 +2,8 @@ import Resolver from '../../resolver'; import { IRemoteUser } from '../../../../models/entities/user'; import { createNote, fetchNote } from '../../models/note'; import { getApId, IObject, ICreate } from '../../type'; -import { getApLock } from '../../../../misc/app-lock'; -import { extractDbHost } from '../../../../misc/convert-host'; +import { getApLock } from '@/misc/app-lock'; +import { extractDbHost } from '@/misc/convert-host'; /** * 投稿作æˆã‚¢ã‚¯ãƒ†ã‚£ãƒ“ティをæŒãã¾ã™ diff --git a/src/remote/activitypub/kernel/delete/note.ts b/src/remote/activitypub/kernel/delete/note.ts index 8fa2285dba87f278361e8bc83f7f1e5d115b1241..1a7844f68b44dd7482815e378de489d62e318870 100644 --- a/src/remote/activitypub/kernel/delete/note.ts +++ b/src/remote/activitypub/kernel/delete/note.ts @@ -2,7 +2,7 @@ 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 { getApLock } from '@/misc/app-lock'; 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 46ea789b4b8ec3d29a1c8374a5ff4de192a69af7..5f5357a3ede94604ac31dc869491e807374e944c 100644 --- a/src/remote/activitypub/kernel/flag/index.ts +++ b/src/remote/activitypub/kernel/flag/index.ts @@ -1,9 +1,9 @@ import { IRemoteUser } from '../../../../models/entities/user'; -import config from '../../../../config'; +import config from '@/config'; import { IFlag, getApIds } from '../../type'; import { AbuseUserReports, Users } from '../../../../models'; import { In } from 'typeorm'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export default async (actor: IRemoteUser, activity: IFlag): Promise<string> => { // object㯠`(User|Note) | (User|Note)[]` ã ã‘ã©ã€å…¨ãƒ‘ターンDBスã‚ーマã¨å¯¾å¿œã•ã›ã‚‰ã‚Œãªã„ã®ã§ diff --git a/src/remote/activitypub/kernel/read.ts b/src/remote/activitypub/kernel/read.ts index e4049fa7ef53157ef794385a26bb8916c5156c5b..edbc8e68edb441ea61a62b471b109b1db64fd76f 100644 --- a/src/remote/activitypub/kernel/read.ts +++ b/src/remote/activitypub/kernel/read.ts @@ -1,6 +1,6 @@ import { IRemoteUser } from '../../../models/entities/user'; import { IRead, getApId } from '../type'; -import { isSelfHost, extractDbHost } from '../../../misc/convert-host'; +import { isSelfHost, extractDbHost } from '@/misc/convert-host'; import { MessagingMessages } from '../../../models'; import { readUserMessagingMessage } from '../../../server/api/common/read-messaging-message'; diff --git a/src/remote/activitypub/misc/ld-signature.ts b/src/remote/activitypub/misc/ld-signature.ts index 070e39edfbef68722f76e502cd36c920612d7129..dec07ea81b8695bc8f86b90b6e390f7ae29996d5 100644 --- a/src/remote/activitypub/misc/ld-signature.ts +++ b/src/remote/activitypub/misc/ld-signature.ts @@ -2,7 +2,7 @@ import * as crypto from 'crypto'; import * as jsonld from 'jsonld'; import { CONTEXTS } from './contexts'; import fetch from 'node-fetch'; -import { httpAgent, httpsAgent } from '../../../misc/fetch'; +import { httpAgent, httpsAgent } from '@/misc/fetch'; // RsaSignature2017 based from https://github.com/transmute-industries/RsaSignature2017 diff --git a/src/remote/activitypub/models/image.ts b/src/remote/activitypub/models/image.ts index dd8086cbeb7e2bce35b25770ff8ad4d9edd22319..79fc2bf4a697572b2f1e1b006a22d08943391a23 100644 --- a/src/remote/activitypub/models/image.ts +++ b/src/remote/activitypub/models/image.ts @@ -1,7 +1,7 @@ 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 { fetchMeta } from '@/misc/fetch-meta'; import { apLogger } from '../logger'; import { DriveFile } from '../../../models/entities/drive-file'; import { DriveFiles } from '../../../models'; diff --git a/src/remote/activitypub/models/note.ts b/src/remote/activitypub/models/note.ts index e3488800ca397f021e471778c6eecf27757ba005..09e066708f658b02ae9c0077b7500d051ad6328a 100644 --- a/src/remote/activitypub/models/note.ts +++ b/src/remote/activitypub/models/note.ts @@ -1,6 +1,6 @@ import * as promiseLimit from 'promise-limit'; -import config from '../../../config'; +import config from '@/config'; import Resolver from '../resolver'; import post from '../../../services/note/create'; import { resolvePerson, updatePerson } from './person'; @@ -14,14 +14,14 @@ 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 { extractDbHost, toPuny } from '../../../misc/convert-host'; +import { extractDbHost, toPuny } from '@/misc/convert-host'; import { Emojis, Polls, MessagingMessages } from '../../../models'; import { Note } from '../../../models/entities/note'; import { IObject, getOneApId, getApId, getOneApHrefNullable, validPost, IPost, isEmoji } from '../type'; 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 { genId } from '@/misc/gen-id'; +import { fetchMeta } from '@/misc/fetch-meta'; +import { getApLock } from '@/misc/app-lock'; import { createMessage } from '../../../services/messages/create'; import { parseAudience } from '../audience'; import { extractApMentions } from './mention'; diff --git a/src/remote/activitypub/models/person.ts b/src/remote/activitypub/models/person.ts index 93e95df0a4a96a264ab018a2e44137af1d4b97aa..5b032d9d9c9bc77c57048e5b47e7d93890e560ce 100644 --- a/src/remote/activitypub/models/person.ts +++ b/src/remote/activitypub/models/person.ts @@ -1,6 +1,7 @@ +import { URL } from 'url'; import * as promiseLimit from 'promise-limit'; -import config from '../../../config'; +import config from '@/config'; import Resolver from '../resolver'; import { resolveImage } from './image'; import { isCollectionOrOrderedCollection, isCollection, IPerson, getApId, getOneApHrefNullable, IObject, isPropertyValue, IApPropertyValue } from '../type'; @@ -16,17 +17,17 @@ import { Users, Instances, DriveFiles, Followings, UserProfiles, UserPublickeys 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 { genId } from '@/misc/gen-id'; import { instanceChart, usersChart } from '../../../services/chart'; import { UserPublickey } from '../../../models/entities/user-publickey'; -import { isDuplicateKeyValueError } from '../../../misc/is-duplicate-key-value-error'; -import { toPuny } from '../../../misc/convert-host'; +import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error'; +import { toPuny } from '@/misc/convert-host'; import { UserProfile } from '../../../models/entities/user-profile'; import { validActor } from '../../../remote/activitypub/type'; import { getConnection } from 'typeorm'; import { toArray } from '../../../prelude/array'; import { fetchInstanceMetadata } from '../../../services/fetch-instance-metadata'; -import { normalizeForSearch } from '../../../misc/normalize-for-search'; +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 6b6749894ab0ceec5e1598c844963a83f0d128f7..966b15af11e2b0dd08a6e33f70e84937748a6405 100644 --- a/src/remote/activitypub/models/question.ts +++ b/src/remote/activitypub/models/question.ts @@ -1,4 +1,4 @@ -import config from '../../../config'; +import config from '@/config'; import Resolver from '../resolver'; import { IObject, IQuestion, isQuestion, } from '../type'; import { apLogger } from '../logger'; diff --git a/src/remote/activitypub/renderer/accept.ts b/src/remote/activitypub/renderer/accept.ts index 21b462907455a4c4f8d0d78db9240056df192684..8725a30e7cdd17f564b7d8fb478b91a7b42774ee 100644 --- a/src/remote/activitypub/renderer/accept.ts +++ b/src/remote/activitypub/renderer/accept.ts @@ -1,7 +1,7 @@ -import config from '../../../config'; -import { ILocalUser } from '../../../models/entities/user'; +import config from '@/config'; +import { User } from '@/models/entities/user'; -export default (object: any, user: ILocalUser) => ({ +export default (object: any, user: { id: User['id']; host: null }) => ({ type: 'Accept', actor: `${config.url}/users/${user.id}`, object diff --git a/src/remote/activitypub/renderer/add.ts b/src/remote/activitypub/renderer/add.ts index 46f937f61dbe6d017c2dc45fb13757bea0b70576..18f9ccacf508199671ee1eca35a4eb3ec40eeecd 100644 --- a/src/remote/activitypub/renderer/add.ts +++ b/src/remote/activitypub/renderer/add.ts @@ -1,4 +1,4 @@ -import config from '../../../config'; +import config from '@/config'; import { ILocalUser } from '../../../models/entities/user'; export default (user: ILocalUser, target: any, object: any) => ({ diff --git a/src/remote/activitypub/renderer/announce.ts b/src/remote/activitypub/renderer/announce.ts index d82bf6a693462c2300a673c5b13555c57cf380e6..f577dbbc89eee8ce574e725c716552316f230a62 100644 --- a/src/remote/activitypub/renderer/announce.ts +++ b/src/remote/activitypub/renderer/announce.ts @@ -1,4 +1,4 @@ -import config from '../../../config'; +import config from '@/config'; import { Note } from '../../../models/entities/note'; export default (object: any, note: Note) => { diff --git a/src/remote/activitypub/renderer/block.ts b/src/remote/activitypub/renderer/block.ts index c29a9aea8211507c196771c7c3a231e694515b63..26b7dd580acd0dba3b1a35979c89c001b7d0eeb9 100644 --- a/src/remote/activitypub/renderer/block.ts +++ b/src/remote/activitypub/renderer/block.ts @@ -1,4 +1,4 @@ -import config from '../../../config'; +import config from '@/config'; import { ILocalUser, IRemoteUser } from '../../../models/entities/user'; export default (blocker: ILocalUser, blockee: IRemoteUser) => ({ diff --git a/src/remote/activitypub/renderer/create.ts b/src/remote/activitypub/renderer/create.ts index e1fc0515c8e34292f5e8f89617c0935b349a33aa..ff0840b9e6715a32b3d722a3aef651df206b3f1e 100644 --- a/src/remote/activitypub/renderer/create.ts +++ b/src/remote/activitypub/renderer/create.ts @@ -1,4 +1,4 @@ -import config from '../../../config'; +import config from '@/config'; import { Note } from '../../../models/entities/note'; export default (object: any, note: Note) => { diff --git a/src/remote/activitypub/renderer/delete.ts b/src/remote/activitypub/renderer/delete.ts index a98c97e6e915cecd41aef734d781a4f2d9ebec96..710f0482a6c6bc831e9bf4f330a5c915c7d494fc 100644 --- a/src/remote/activitypub/renderer/delete.ts +++ b/src/remote/activitypub/renderer/delete.ts @@ -1,7 +1,7 @@ -import config from '../../../config'; -import { ILocalUser } from '../../../models/entities/user'; +import config from '@/config'; +import { User } from '../../../models/entities/user'; -export default (object: any, user: ILocalUser) => ({ +export default (object: any, user: { id: User['id']; host: null }) => ({ type: 'Delete', actor: `${config.url}/users/${user.id}`, object diff --git a/src/remote/activitypub/renderer/emoji.ts b/src/remote/activitypub/renderer/emoji.ts index 947a96df37c8333c227fe426e8d2bb05c08e882b..b62259c32e9647f819297ce13dedd2052f110d0e 100644 --- a/src/remote/activitypub/renderer/emoji.ts +++ b/src/remote/activitypub/renderer/emoji.ts @@ -1,4 +1,4 @@ -import config from '../../../config'; +import config from '@/config'; import { Emoji } from '../../../models/entities/emoji'; export default (emoji: Emoji) => ({ diff --git a/src/remote/activitypub/renderer/follow-relay.ts b/src/remote/activitypub/renderer/follow-relay.ts index 58bc0c90c33f4d36c34f243bf2bad793d270d8a0..d53bd058257184339f075271643f361bc2758a7e 100644 --- a/src/remote/activitypub/renderer/follow-relay.ts +++ b/src/remote/activitypub/renderer/follow-relay.ts @@ -1,4 +1,4 @@ -import config from '../../../config'; +import config from '@/config'; import { Relay } from '../../../models/entities/relay'; import { ILocalUser } from '../../../models/entities/user'; diff --git a/src/remote/activitypub/renderer/follow-user.ts b/src/remote/activitypub/renderer/follow-user.ts index bfc91bb4cbc769f19c34aaba58b5124645d02e57..744361a24f7babcbbc30a4c2f75de8e1c4adceaf 100644 --- a/src/remote/activitypub/renderer/follow-user.ts +++ b/src/remote/activitypub/renderer/follow-user.ts @@ -1,4 +1,4 @@ -import config from '../../../config'; +import config from '@/config'; import { Users } from '../../../models'; import { User } from '../../../models/entities/user'; diff --git a/src/remote/activitypub/renderer/follow.ts b/src/remote/activitypub/renderer/follow.ts index 400b15ec7bedba180bbccd5821232ad3c41f62b6..252b0b283887ec9af9b0d30fd77b795e6b9bde6a 100644 --- a/src/remote/activitypub/renderer/follow.ts +++ b/src/remote/activitypub/renderer/follow.ts @@ -1,8 +1,8 @@ -import config from '../../../config'; +import config from '@/config'; import { User } from '../../../models/entities/user'; import { Users } from '../../../models'; -export default (follower: User, followee: User, requestId?: string) => { +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 = { type: 'Follow', actor: Users.isLocalUser(follower) ? `${config.url}/users/${follower.id}` : follower.uri, diff --git a/src/remote/activitypub/renderer/hashtag.ts b/src/remote/activitypub/renderer/hashtag.ts index 36563c2df5c23e2455a92a452b770074639322b1..a739a4b0b620c5b1eac8b3efe9b13e3df0eea139 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'; export default (tag: string) => ({ type: 'Hashtag', diff --git a/src/remote/activitypub/renderer/index.ts b/src/remote/activitypub/renderer/index.ts index 4c33fdafb1dfa61676b535af2d3fd9c7847fae4a..3283c88bd461e619182b97207b57e690bf8da7d1 100644 --- a/src/remote/activitypub/renderer/index.ts +++ b/src/remote/activitypub/renderer/index.ts @@ -1,9 +1,9 @@ -import config from '../../../config'; +import config from '@/config'; import { v4 as uuid } from 'uuid'; import { IActivity } from '../type'; import { LdSignature } from '../misc/ld-signature'; -import { ILocalUser } from '../../../models/entities/user'; -import { getUserKeypair } from '../../../misc/keypair-store'; +import { getUserKeypair } from '@/misc/keypair-store'; +import { User } from '@/models/entities/user'; export const renderActivity = (x: any): IActivity | null => { if (x == null) return null; @@ -20,7 +20,7 @@ export const renderActivity = (x: any): IActivity | null => { }, x); }; -export const attachLdSignature = async (activity: any, user: ILocalUser): Promise<IActivity | null> => { +export const attachLdSignature = async (activity: any, user: { id: User['id']; host: null; }): Promise<IActivity | null> => { if (activity == null) return null; const keypair = await getUserKeypair(user.id); diff --git a/src/remote/activitypub/renderer/key.ts b/src/remote/activitypub/renderer/key.ts index e792f487fdb11a77008db5e9bbfb2f5fc27ef841..547059dd3c826385e895b4176acbbee45ffcf2da 100644 --- a/src/remote/activitypub/renderer/key.ts +++ b/src/remote/activitypub/renderer/key.ts @@ -1,4 +1,4 @@ -import config from '../../../config'; +import config from '@/config'; import { ILocalUser } from '../../../models/entities/user'; import { UserKeypair } from '../../../models/entities/user-keypair'; import { createPublicKey } from 'crypto'; diff --git a/src/remote/activitypub/renderer/like.ts b/src/remote/activitypub/renderer/like.ts index d4dd3663d477ed3ad3300bcaaae9c9bd937b7546..596783684687d0077daa66298b5869e2f9dfba26 100644 --- a/src/remote/activitypub/renderer/like.ts +++ b/src/remote/activitypub/renderer/like.ts @@ -1,4 +1,4 @@ -import config from '../../../config'; +import config from '@/config'; import { NoteReaction } from '../../../models/entities/note-reaction'; import { Note } from '../../../models/entities/note'; import { Emojis } from '../../../models'; diff --git a/src/remote/activitypub/renderer/mention.ts b/src/remote/activitypub/renderer/mention.ts index 3b5e8f27af13ef2a4491aec4a2be3c0d98b61e9f..14c4c40d47b2f04e0f60850edf16d71b47274377 100644 --- a/src/remote/activitypub/renderer/mention.ts +++ b/src/remote/activitypub/renderer/mention.ts @@ -1,4 +1,4 @@ -import config from '../../../config'; +import config from '@/config'; import { User, ILocalUser } from '../../../models/entities/user'; import { Users } from '../../../models'; diff --git a/src/remote/activitypub/renderer/note.ts b/src/remote/activitypub/renderer/note.ts index 8e3e0e9ba1edb0019c3c4d7206748217b346d6c7..54dee07892c93db747a3ef310af8fb4a734f11ae 100644 --- a/src/remote/activitypub/renderer/note.ts +++ b/src/remote/activitypub/renderer/note.ts @@ -2,7 +2,7 @@ import renderDocument from './document'; import renderHashtag from './hashtag'; import renderMention from './mention'; import renderEmoji from './emoji'; -import config from '../../../config'; +import config from '@/config'; import toHtml from '../misc/get-note-html'; import { Note, IMentionedRemoteUsers } from '../../../models/entities/note'; import { DriveFile } from '../../../models/entities/drive-file'; diff --git a/src/remote/activitypub/renderer/person.ts b/src/remote/activitypub/renderer/person.ts index 479e6d76bff57ca95310095f91c3678ac48791ab..e4e8f24f106d0c848c3783e9c27899c086e7d6e8 100644 --- a/src/remote/activitypub/renderer/person.ts +++ b/src/remote/activitypub/renderer/person.ts @@ -1,6 +1,7 @@ +import { URL } from 'url'; import renderImage from './image'; import renderKey from './key'; -import config from '../../../config'; +import config from '@/config'; import { ILocalUser } from '../../../models/entities/user'; import { toHtml } from '../../../mfm/to-html'; import { parse } from '../../../mfm/parse'; @@ -9,7 +10,7 @@ import renderEmoji from './emoji'; import { IIdentifier } from '../models/identifier'; import renderHashtag from './hashtag'; import { DriveFiles, UserProfiles } from '../../../models'; -import { getUserKeypair } from '../../../misc/keypair-store'; +import { getUserKeypair } from '@/misc/keypair-store'; export async function renderPerson(user: ILocalUser) { const id = `${config.url}/users/${user.id}`; diff --git a/src/remote/activitypub/renderer/question.ts b/src/remote/activitypub/renderer/question.ts index 6ade10d1bfa48153d40a3d7c954889d6cdc6ca94..99670f80a10013b884efe40c8923526af4bed972 100644 --- a/src/remote/activitypub/renderer/question.ts +++ b/src/remote/activitypub/renderer/question.ts @@ -1,9 +1,9 @@ -import config from '../../../config'; -import { ILocalUser } from '../../../models/entities/user'; +import config from '@/config'; +import { User } from '@/models/entities/user'; import { Note } from '../../../models/entities/note'; import { Poll } from '../../../models/entities/poll'; -export default async function renderQuestion(user: ILocalUser, note: Note, poll: Poll) { +export default async function renderQuestion(user: { id: User['id'] }, note: Note, poll: Poll) { const question = { type: 'Question', id: `${config.url}/questions/${note.id}`, diff --git a/src/remote/activitypub/renderer/read.ts b/src/remote/activitypub/renderer/read.ts index c53b47859f932d0a8b0524cfb2989661e024030e..1287f4ccb0afc16056a22ca1bb03a9bccfa4eea5 100644 --- a/src/remote/activitypub/renderer/read.ts +++ b/src/remote/activitypub/renderer/read.ts @@ -1,8 +1,8 @@ -import config from '../../../config'; -import { ILocalUser } from '../../../models/entities/user'; +import config from '@/config'; +import { User } from '@/models/entities/user'; import { MessagingMessage } from '../../../models/entities/messaging-message'; -export const renderReadActivity = (user: ILocalUser, message: MessagingMessage) => ({ +export const renderReadActivity = (user: { id: User['id'] }, message: MessagingMessage) => ({ type: 'Read', actor: `${config.url}/users/${user.id}`, object: message.uri diff --git a/src/remote/activitypub/renderer/reject.ts b/src/remote/activitypub/renderer/reject.ts index c4e0ba0d0adc6db72c69320de208414c9751dccf..e1eb5b004ee141bfb19ccef50ebc66f7f749df8a 100644 --- a/src/remote/activitypub/renderer/reject.ts +++ b/src/remote/activitypub/renderer/reject.ts @@ -1,7 +1,7 @@ -import config from '../../../config'; -import { ILocalUser } from '../../../models/entities/user'; +import config from '@/config'; +import { User } from '@/models/entities/user'; -export default (object: any, user: ILocalUser) => ({ +export default (object: any, user: { id: User['id'] }) => ({ type: 'Reject', actor: `${config.url}/users/${user.id}`, object diff --git a/src/remote/activitypub/renderer/remove.ts b/src/remote/activitypub/renderer/remove.ts index 1b9a6b8c05fda5f1f50ac1d06ba58329551b60c4..ff1fab8e57f39681573d26e75b2baf812ef8a875 100644 --- a/src/remote/activitypub/renderer/remove.ts +++ b/src/remote/activitypub/renderer/remove.ts @@ -1,7 +1,7 @@ -import config from '../../../config'; -import { ILocalUser } from '../../../models/entities/user'; +import config from '@/config'; +import { User } from '@/models/entities/user'; -export default (user: ILocalUser, target: any, object: any) => ({ +export default (user: { id: User['id'] }, target: any, object: any) => ({ type: 'Remove', actor: `${config.url}/users/${user.id}`, target, diff --git a/src/remote/activitypub/renderer/undo.ts b/src/remote/activitypub/renderer/undo.ts index 2ff6b61b905c743b08205e0d08be976f4310abe5..6f367415c4438f4e72cb18b3972ba28324a19384 100644 --- a/src/remote/activitypub/renderer/undo.ts +++ b/src/remote/activitypub/renderer/undo.ts @@ -1,7 +1,7 @@ -import config from '../../../config'; +import config from '@/config'; import { ILocalUser, User } from '../../../models/entities/user'; -export default (object: any, user: ILocalUser | User) => ({ +export default (object: any, user: { id: User['id'] }) => ({ type: 'Undo', actor: `${config.url}/users/${user.id}`, object diff --git a/src/remote/activitypub/renderer/update.ts b/src/remote/activitypub/renderer/update.ts index c1d5ba29b243d262aa5fc106ed5fccb65945dd66..4295fc64f3be59122db74c6bf91f83822be674c2 100644 --- a/src/remote/activitypub/renderer/update.ts +++ b/src/remote/activitypub/renderer/update.ts @@ -1,7 +1,7 @@ -import config from '../../../config'; -import { ILocalUser } from '../../../models/entities/user'; +import config from '@/config'; +import { User } from '@/models/entities/user'; -export default (object: any, user: ILocalUser) => { +export default (object: any, user: { id: User['id'] }) => { const activity = { id: `${config.url}/users/${user.id}#updates/${new Date().getTime()}`, actor: `${config.url}/users/${user.id}`, diff --git a/src/remote/activitypub/renderer/vote.ts b/src/remote/activitypub/renderer/vote.ts index 8929c03460bac78865e088423db6df709ff60616..529fdaafcd13c394159e36a3cfaed5cab845f4b5 100644 --- a/src/remote/activitypub/renderer/vote.ts +++ b/src/remote/activitypub/renderer/vote.ts @@ -1,10 +1,10 @@ -import config from '../../../config'; +import config from '@/config'; import { Note } from '../../../models/entities/note'; -import { IRemoteUser, ILocalUser } from '../../../models/entities/user'; +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: ILocalUser, vote: PollVote, note: Note, poll: Poll, pollOwner: IRemoteUser): Promise<any> { +export default async function renderVote(user: { id: User['id'] }, vote: PollVote, note: Note, poll: Poll, pollOwner: IRemoteUser): Promise<any> { return { id: `${config.url}/users/${user.id}#votes/${vote.id}/activity`, actor: `${config.url}/users/${user.id}`, diff --git a/src/remote/activitypub/request.ts b/src/remote/activitypub/request.ts index 5f15d5480cd35b72be2a8a5aabeb73ca82ecfb51..e4dca32329b015506205b348d42af5f2f897d695 100644 --- a/src/remote/activitypub/request.ts +++ b/src/remote/activitypub/request.ts @@ -3,15 +3,15 @@ import * as https from 'https'; import { sign } from 'http-signature'; import * as crypto from 'crypto'; -import config from '../../config'; -import { ILocalUser } from '../../models/entities/user'; -import { getAgentByUrl } from '../../misc/fetch'; +import config from '@/config'; +import { User } from '@/models/entities/user'; +import { getAgentByUrl } from '@/misc/fetch'; import { URL } from 'url'; import got from 'got'; import * as Got from 'got'; -import { getUserKeypair } from '../../misc/keypair-store'; +import { getUserKeypair } from '@/misc/keypair-store'; -export default async (user: ILocalUser, url: string, object: any) => { +export default async (user: { id: User['id'] }, url: string, object: any) => { const timeout = 10 * 1000; const { protocol, hostname, port, pathname, search } = new URL(url); @@ -24,7 +24,7 @@ export default async (user: ILocalUser, url: string, object: any) => { const keypair = await getUserKeypair(user.id); - await new Promise((resolve, reject) => { + await new Promise<void>((resolve, reject) => { const req = https.request({ agent: getAgentByUrl(new URL(`https://example.net`)), protocol, @@ -69,7 +69,7 @@ export default async (user: ILocalUser, url: string, object: any) => { * @param user http-signature user * @param url URL to fetch */ -export async function signedGet(url: string, user: ILocalUser) { +export async function signedGet(url: string, user: { id: User['id'] }) { const timeout = 10 * 1000; const keypair = await getUserKeypair(user.id); diff --git a/src/remote/activitypub/resolver.ts b/src/remote/activitypub/resolver.ts index 2871c1cb4160ea4c70f4d5b5fb49c4d5245bb1d3..066bde0883e4f08fb6d067722e59a867dfd51e51 100644 --- a/src/remote/activitypub/resolver.ts +++ b/src/remote/activitypub/resolver.ts @@ -1,5 +1,5 @@ -import config from '../../config'; -import { getJson } from '../../misc/fetch'; +import config from '@/config'; +import { getJson } from '@/misc/fetch'; import { ILocalUser } from '../../models/entities/user'; import { getInstanceActor } from '../../services/instance-actor'; import { signedGet } from './request'; diff --git a/src/remote/resolve-user.ts b/src/remote/resolve-user.ts index 8149c184fe79d59a5861e809ae753d6453e54baa..1bcecee3c104af2546bcf3be101568accff43d2d 100644 --- a/src/remote/resolve-user.ts +++ b/src/remote/resolve-user.ts @@ -1,11 +1,12 @@ +import { URL } from 'url'; import webFinger from './webfinger'; -import config from '../config'; +import config from '@/config'; 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 { toPuny } from '../misc/convert-host'; +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 04f978a35dd520a4b52c3dfcbbc77d0e86ba8c35..744ab3639a84cbfd731979ce752b3582130ab05c 100644 --- a/src/remote/webfinger.ts +++ b/src/remote/webfinger.ts @@ -1,4 +1,5 @@ -import { getJson } from '../misc/fetch'; +import { URL } from 'url'; +import { getJson } from '@/misc/fetch'; import { query as urlQuery } from '../prelude/url'; type ILink = { diff --git a/src/server/activitypub.ts b/src/server/activitypub.ts index 694807239b44781062112ec1b23197601c361c66..0ddc4683fefc3ecfc37b6e702c37ffc978bc9993 100644 --- a/src/server/activitypub.ts +++ b/src/server/activitypub.ts @@ -12,12 +12,12 @@ import Followers from './activitypub/followers'; import Following from './activitypub/following'; import Featured from './activitypub/featured'; import { inbox as processInbox } from '../queue'; -import { isSelfHost } from '../misc/convert-host'; +import { isSelfHost } from '@/misc/convert-host'; import { Notes, Users, Emojis, NoteReactions } from '../models'; import { ILocalUser, User } from '../models/entities/user'; import { In } from 'typeorm'; import { renderLike } from '../remote/activitypub/renderer/like'; -import { getUserKeypair } from '../misc/keypair-store'; +import { getUserKeypair } from '@/misc/keypair-store'; // Init router const router = new Router(); diff --git a/src/server/activitypub/featured.ts b/src/server/activitypub/featured.ts index 66ad2aa86e37d7728eecc8d21ce231060751932a..02d4a30a5db77382e93cbcdc2802a31871097d48 100644 --- a/src/server/activitypub/featured.ts +++ b/src/server/activitypub/featured.ts @@ -1,5 +1,5 @@ import * as Router from '@koa/router'; -import config from '../../config'; +import config from '@/config'; import { renderActivity } from '../../remote/activitypub/renderer'; import renderOrderedCollection from '../../remote/activitypub/renderer/ordered-collection'; import { setResponseType } from '../activitypub'; diff --git a/src/server/activitypub/followers.ts b/src/server/activitypub/followers.ts index d7b5a15b1ed8060feb2d4adab4e2eb38c78d5cbc..a4f2e666d0271912569077b158d06ce9815b7b24 100644 --- a/src/server/activitypub/followers.ts +++ b/src/server/activitypub/followers.ts @@ -1,7 +1,7 @@ import * as Router from '@koa/router'; -import config from '../../config'; +import config from '@/config'; import $ from 'cafy'; -import { ID } from '../../misc/cafy-id'; +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'; diff --git a/src/server/activitypub/following.ts b/src/server/activitypub/following.ts index d39e680d9e47f625abfd9e1d6689d62360833935..f5e5c62364944cf27fb1c11144979afc6547d126 100644 --- a/src/server/activitypub/following.ts +++ b/src/server/activitypub/following.ts @@ -1,7 +1,7 @@ import * as Router from '@koa/router'; -import config from '../../config'; +import config from '@/config'; import $ from 'cafy'; -import { ID } from '../../misc/cafy-id'; +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'; diff --git a/src/server/activitypub/outbox.ts b/src/server/activitypub/outbox.ts index 3c1b07a6796803bcccd39a69966640e21a8e2e43..338e177370eb8cd2fa25fd96ed3b5f6ab1961e78 100644 --- a/src/server/activitypub/outbox.ts +++ b/src/server/activitypub/outbox.ts @@ -1,7 +1,7 @@ import * as Router from '@koa/router'; -import config from '../../config'; +import config from '@/config'; import $ from 'cafy'; -import { ID } from '../../misc/cafy-id'; +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'; diff --git a/src/server/api/2fa.ts b/src/server/api/2fa.ts index 8e6e635bb018b262a5368c09bec8f5199cc24903..77f0f8cd047450c4016e12c66b43240e21863e6a 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'; 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 9c9ef74352186bb77648e1727ed3a6cf8d81b0a7..6ea5a111bc9fb4705a163bfb21c80c9785ed9e7c 100644 --- a/src/server/api/authenticate.ts +++ b/src/server/api/authenticate.ts @@ -2,7 +2,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 { Cache } from '../../misc/cache'; +import { Cache } from '@/misc/cache'; // TODO: TypeORMã®ã‚«ã‚¹ã‚¿ãƒ ã‚ャッシュプãƒãƒã‚¤ãƒ€ã‚’使ã£ã¦ã‚‚良ã„ã‹ã‚‚ // ref. https://github.com/typeorm/typeorm/blob/master/docs/caching.md diff --git a/src/server/api/common/generate-block-query.ts b/src/server/api/common/generate-block-query.ts index 3636410485f8877b7e01ff2459cb7eea34f22ed3..fa2179ae64e41cccaa86d3435dd76129639dd61a 100644 --- a/src/server/api/common/generate-block-query.ts +++ b/src/server/api/common/generate-block-query.ts @@ -2,7 +2,7 @@ import { User } from '../../../models/entities/user'; import { Blockings } from '../../../models'; import { SelectQueryBuilder } from 'typeorm'; -export function generateBlockQueryForUsers(q: SelectQueryBuilder<any>, me: User) { +export function generateBlockQueryForUsers(q: SelectQueryBuilder<any>, me: { id: User['id'] }) { const blockingQuery = Blockings.createQueryBuilder('blocking') .select('blocking.blockeeId') .where('blocking.blockerId = :blockerId', { blockerId: me.id }); diff --git a/src/server/api/common/generate-channel-query.ts b/src/server/api/common/generate-channel-query.ts index c0337b2c6bad56c82986ac7ed85c0f1173b94959..74a6d68c40ef0d87a22bc9dde1353d2062125938 100644 --- a/src/server/api/common/generate-channel-query.ts +++ b/src/server/api/common/generate-channel-query.ts @@ -2,7 +2,7 @@ import { User } from '../../../models/entities/user'; import { ChannelFollowings } from '../../../models'; import { Brackets, SelectQueryBuilder } from 'typeorm'; -export function generateChannelQuery(q: SelectQueryBuilder<any>, me?: User | null) { +export function generateChannelQuery(q: SelectQueryBuilder<any>, me?: { id: User['id'] } | null) { if (me == null) { q.andWhere('note.channelId IS NULL'); } else { diff --git a/src/server/api/common/generate-muted-note-query.ts b/src/server/api/common/generate-muted-note-query.ts index 498930476ceba6e458ce0b59f18ba33e7080d0dd..c7f9f7c5a31073c263462bba4690c8efd3f9fa52 100644 --- a/src/server/api/common/generate-muted-note-query.ts +++ b/src/server/api/common/generate-muted-note-query.ts @@ -2,7 +2,7 @@ import { User } from '../../../models/entities/user'; import { MutedNotes } from '../../../models'; import { SelectQueryBuilder } from 'typeorm'; -export function generateMutedNoteQuery(q: SelectQueryBuilder<any>, me: User) { +export function generateMutedNoteQuery(q: SelectQueryBuilder<any>, me: { id: User['id'] }) { const mutedQuery = MutedNotes.createQueryBuilder('muted') .select('muted.noteId') .where('muted.userId = :userId', { userId: me.id }); diff --git a/src/server/api/common/generate-muted-user-query.ts b/src/server/api/common/generate-muted-user-query.ts index b346f2f0fb1ea24bca11420e4cd092ea457ab5b7..f5e072ba93b82bdec8da891337a868730d6b9cb6 100644 --- a/src/server/api/common/generate-muted-user-query.ts +++ b/src/server/api/common/generate-muted-user-query.ts @@ -2,7 +2,7 @@ import { User } from '../../../models/entities/user'; import { Mutings } from '../../../models'; import { SelectQueryBuilder, Brackets } from 'typeorm'; -export function generateMutedUserQuery(q: SelectQueryBuilder<any>, me: User, exclude?: User) { +export function generateMutedUserQuery(q: SelectQueryBuilder<any>, me: { id: User['id'] }, exclude?: User) { const mutingQuery = Mutings.createQueryBuilder('muting') .select('muting.muteeId') .where('muting.muterId = :muterId', { muterId: me.id }); @@ -28,7 +28,7 @@ export function generateMutedUserQuery(q: SelectQueryBuilder<any>, me: User, exc q.setParameters(mutingQuery.getParameters()); } -export function generateMutedUserQueryForUsers(q: SelectQueryBuilder<any>, me: User) { +export function generateMutedUserQueryForUsers(q: SelectQueryBuilder<any>, me: { id: User['id'] }) { const mutingQuery = Mutings.createQueryBuilder('muting') .select('muting.muteeId') .where('muting.muterId = :muterId', { muterId: me.id }); diff --git a/src/server/api/common/generate-native-user-token.ts b/src/server/api/common/generate-native-user-token.ts index cd30ba98f9a0a1ce8b61753e4369a70e0c6e2095..1f791c57ceb3899962066696b5d97c6398710a1b 100644 --- a/src/server/api/common/generate-native-user-token.ts +++ b/src/server/api/common/generate-native-user-token.ts @@ -1,3 +1,3 @@ -import { secureRndstr } from '../../../misc/secure-rndstr'; +import { secureRndstr } from '@/misc/secure-rndstr'; export default () => secureRndstr(16, true); diff --git a/src/server/api/common/generate-replies-query.ts b/src/server/api/common/generate-replies-query.ts index 8ebe93f20a361f2a78bb38aa8c9d89121ee453c9..29b1e17c2eb5ffd66e4d6a6dfed18f907d1ed149 100644 --- a/src/server/api/common/generate-replies-query.ts +++ b/src/server/api/common/generate-replies-query.ts @@ -1,7 +1,7 @@ import { User } from '../../../models/entities/user'; import { Brackets, SelectQueryBuilder } from 'typeorm'; -export function generateRepliesQuery(q: SelectQueryBuilder<any>, me?: User | null) { +export function generateRepliesQuery(q: SelectQueryBuilder<any>, me?: { id: User['id'] } | null) { if (me == null) { q.andWhere(new Brackets(qb => { qb .where(`note.replyId IS NULL`) // 返信ã§ã¯ãªã„ diff --git a/src/server/api/common/generate-visibility-query.ts b/src/server/api/common/generate-visibility-query.ts index d981b4a613bfc8ab221e44cc570649c93dc6261d..72ed1c46eaeacbc99f6c3603bc015f1d24b1eb0e 100644 --- a/src/server/api/common/generate-visibility-query.ts +++ b/src/server/api/common/generate-visibility-query.ts @@ -2,7 +2,7 @@ import { User } from '../../../models/entities/user'; import { Followings } from '../../../models'; import { Brackets, SelectQueryBuilder } from 'typeorm'; -export function generateVisibilityQuery(q: SelectQueryBuilder<any>, me?: User | null) { +export function generateVisibilityQuery(q: SelectQueryBuilder<any>, me?: { id: User['id'] } | null) { if (me == null) { q.andWhere(new Brackets(qb => { qb .where(`note.visibility = 'public'`) diff --git a/src/server/api/common/getters.ts b/src/server/api/common/getters.ts index 04716d19c64e005c9d81f26637dbd852961b52b7..73fbadfee62baa5b93a08b11318d5b024890b1b9 100644 --- a/src/server/api/common/getters.ts +++ b/src/server/api/common/getters.ts @@ -1,4 +1,4 @@ -import { IdentifiableError } from '../../../misc/identifiable-error'; +import { IdentifiableError } from '@/misc/identifiable-error'; import { User } from '../../../models/entities/user'; import { Note } from '../../../models/entities/note'; import { Notes, Users } from '../../../models'; diff --git a/src/server/api/common/read-messaging-message.ts b/src/server/api/common/read-messaging-message.ts index 90510bb393e70c69279e7d2df812a052bcf2d231..6c9fcf973f6d97e884f48b5623569db6fc6239e5 100644 --- a/src/server/api/common/read-messaging-message.ts +++ b/src/server/api/common/read-messaging-message.ts @@ -1,11 +1,11 @@ import { publishMainStream, publishGroupMessagingStream } from '../../../services/stream'; import { publishMessagingStream } from '../../../services/stream'; import { publishMessagingIndexStream } from '../../../services/stream'; -import { User, ILocalUser, IRemoteUser } from '../../../models/entities/user'; +import { User, IRemoteUser } from '../../../models/entities/user'; import { MessagingMessage } from '../../../models/entities/messaging-message'; import { MessagingMessages, UserGroupJoinings, Users } from '../../../models'; import { In } from 'typeorm'; -import { IdentifiableError } from '../../../misc/identifiable-error'; +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'; @@ -107,7 +107,7 @@ export async function readGroupMessagingMessage( } } -export async function deliverReadActivity(user: ILocalUser, recipient: IRemoteUser, messages: MessagingMessage | MessagingMessage[]) { +export async function deliverReadActivity(user: { id: User['id']; host: null; }, recipient: IRemoteUser, messages: MessagingMessage | MessagingMessage[]) { messages = toArray(messages).filter(x => x.uri); const contents = messages.map(x => renderReadActivity(user, x)); diff --git a/src/server/api/common/signin.ts b/src/server/api/common/signin.ts index 50f79f1919886b32415c21a157688ad800e51919..af09a70340d2f781bba8ac55e767f1be3cdd6281 100644 --- a/src/server/api/common/signin.ts +++ b/src/server/api/common/signin.ts @@ -1,9 +1,9 @@ import * as Koa from 'koa'; -import config from '../../../config'; +import config from '@/config'; import { ILocalUser } from '../../../models/entities/user'; import { Signins } from '../../../models'; -import { genId } from '../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { publishMainStream } from '../../../services/stream'; export default function(ctx: Koa.Context, user: ILocalUser, redirect = false) { diff --git a/src/server/api/common/signup.ts b/src/server/api/common/signup.ts index 26a9d03e0f1b03f017d89e53402b835f77b1acf4..b8d197317a560832f2b7e43a84346c84bcb43c8c 100644 --- a/src/server/api/common/signup.ts +++ b/src/server/api/common/signup.ts @@ -5,8 +5,8 @@ import { User } from '../../../models/entities/user'; import { Users, UsedUsernames } from '../../../models'; import { UserProfile } from '../../../models/entities/user-profile'; import { getConnection } from 'typeorm'; -import { genId } from '../../../misc/gen-id'; -import { toPunyNullable } from '../../../misc/convert-host'; +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'; diff --git a/src/server/api/define.ts b/src/server/api/define.ts index 4e59357c13e7b6ff8f13c4d153c7f1b11799c403..432d5017e84007a05b277dca82b8ce987cf40b93 100644 --- a/src/server/api/define.ts +++ b/src/server/api/define.ts @@ -2,9 +2,21 @@ import * as fs from 'fs'; import { ILocalUser } from '../../models/entities/user'; import { IEndpointMeta } from './endpoints'; import { ApiError } from './error'; -import { SchemaType } from '../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { AccessToken } from '../../models/entities/access-token'; +type SimpleUserInfo = { + id: ILocalUser['id']; + host: ILocalUser['host']; + username: ILocalUser['username']; + uri: ILocalUser['uri']; + inbox: ILocalUser['inbox']; + sharedInbox: ILocalUser['sharedInbox']; + isAdmin: ILocalUser['isAdmin']; + isModerator: ILocalUser['isModerator']; + isSilenced: ILocalUser['isSilenced']; +}; + // TODO: defaultãŒè¨å®šã•ã‚Œã¦ã„ã‚‹å ´åˆã¯ãã®åž‹ã‚‚考慮ã™ã‚‹ type Params<T extends IEndpointMeta> = { [P in keyof T['params']]: NonNullable<T['params']>[P]['transform'] extends Function @@ -15,13 +27,12 @@ type Params<T extends IEndpointMeta> = { export type Response = Record<string, any> | void; type executor<T extends IEndpointMeta> = - (params: Params<T>, user: T['requireCredential'] extends true ? ILocalUser : ILocalUser | null, token: AccessToken | null, file?: any, cleanup?: Function) => + (params: Params<T>, user: T['requireCredential'] extends true ? SimpleUserInfo : SimpleUserInfo | null, token: AccessToken | null, file?: any, cleanup?: Function) => Promise<T['res'] extends undefined ? Response : SchemaType<NonNullable<T['res']>>>; -// TODO: API関数㫠user ã¾ã‚‹ã”ã¨æ¸¡ã™ã®ã§ã¯ãªãユーザーIDãªã©ã®æœ€å°é™ã®ãƒ—ãƒãƒ‘ティã ã‘渡ã™ã‚ˆã†ã«ã—ãŸã„(ã‚ャッシュã¨ã‹è€ƒãˆãªã„ã§ã‚ˆããªã‚‹ãŸã‚) export default function <T extends IEndpointMeta>(meta: T, cb: executor<T>) - : (params: any, user: T['requireCredential'] extends true ? ILocalUser : ILocalUser | null, token: AccessToken | null, file?: any) => Promise<any> { - return (params: any, user: T['requireCredential'] extends true ? ILocalUser : ILocalUser | null, token: AccessToken | null, file?: any) => { + : (params: any, user: T['requireCredential'] extends true ? SimpleUserInfo : SimpleUserInfo | null, token: AccessToken | null, file?: any) => Promise<any> { + return (params: any, user: T['requireCredential'] extends true ? SimpleUserInfo : SimpleUserInfo | null, token: AccessToken | null, file?: any) => { function cleanup() { fs.unlink(file.path, () => {}); } diff --git a/src/server/api/endpoints.ts b/src/server/api/endpoints.ts index 1a8fca6dfae37b5ac7e0a9e4a764595041bf8042..9847cd2bb6c8f47e9de698299feb70d6632cad63 100644 --- a/src/server/api/endpoints.ts +++ b/src/server/api/endpoints.ts @@ -1,7 +1,7 @@ import { Context } from 'cafy'; import * as path from 'path'; import * as glob from 'glob'; -import { Schema } from '../../misc/schema'; +import { Schema } from '@/misc/schema'; export type Param = { validator: Context<any>; diff --git a/src/server/api/endpoints/admin/abuse-user-reports.ts b/src/server/api/endpoints/admin/abuse-user-reports.ts index d63997d2037e9fdd8f331928cc0d8265f4d47b2a..bbb696394ef929c995ef5a1c3db97ac8155cb9e9 100644 --- a/src/server/api/endpoints/admin/abuse-user-reports.ts +++ b/src/server/api/endpoints/admin/abuse-user-reports.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { AbuseUserReports } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/admin/accounts/create.ts b/src/server/api/endpoints/admin/accounts/create.ts index 27ceca158b2fc89a99ab14b00d9485ec156a2c6b..9e3fc46acd5f468b0f59e63ae87c9dae4a9faa82 100644 --- a/src/server/api/endpoints/admin/accounts/create.ts +++ b/src/server/api/endpoints/admin/accounts/create.ts @@ -34,7 +34,8 @@ export const meta = { } }; -export default define(meta, async (ps, me) => { +export default define(meta, async (ps, _me) => { + const me = _me ? await Users.findOneOrFail(_me.id) : null; const noUsers = (await Users.count({ host: null, })) === 0; diff --git a/src/server/api/endpoints/admin/announcements/create.ts b/src/server/api/endpoints/admin/announcements/create.ts index dc01621c7555363cea16215a518f6db5ed1a37d3..3675e50bac70a7fd025adc66aaa24e26f02a9b72 100644 --- a/src/server/api/endpoints/admin/announcements/create.ts +++ b/src/server/api/endpoints/admin/announcements/create.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; import { Announcements } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/announcements/delete.ts b/src/server/api/endpoints/admin/announcements/delete.ts index 6c9c065757e0dc4657d68246325b32f031d35973..44a46ae435b12f0407b97aeeb6fdab0b7163500a 100644 --- a/src/server/api/endpoints/admin/announcements/delete.ts +++ b/src/server/api/endpoints/admin/announcements/delete.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Announcements } from '../../../../../models'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/admin/announcements/list.ts b/src/server/api/endpoints/admin/announcements/list.ts index 5489b0d2c7d5fb657b76f057ade72bebb5c84ed1..a42f24c45e17dfadbf1b7f0df9131ab6c63c2a97 100644 --- a/src/server/api/endpoints/admin/announcements/list.ts +++ b/src/server/api/endpoints/admin/announcements/list.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { Announcements, AnnouncementReads } from '../../../../../models'; import { makePaginationQuery } from '../../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/admin/announcements/update.ts b/src/server/api/endpoints/admin/announcements/update.ts index 9c4165eae053912f94fd1b53054df2a675386664..c869e7c9c64ab11bbde4f7f68c87624ed503bc8f 100644 --- a/src/server/api/endpoints/admin/announcements/update.ts +++ b/src/server/api/endpoints/admin/announcements/update.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Announcements } from '../../../../../models'; import { ApiError } from '../../../error'; 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 9da3b632ac1b8e063e2467a47893f40ab40fd551..8143239b54762e1f6fc31255086128df7be0224c 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 @@ -2,7 +2,7 @@ import $ from 'cafy'; import define from '../../define'; import { deleteFile } from '../../../../services/drive/delete-file'; import { DriveFiles } from '../../../../models'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/delete-logs.ts b/src/server/api/endpoints/admin/delete-logs.ts index 3719387312e69ca9c7d5709f6d3b89c5a9963f15..1caea46ea0a6f939a08f9560cf6bd835f3910c83 100644 --- a/src/server/api/endpoints/admin/delete-logs.ts +++ b/src/server/api/endpoints/admin/delete-logs.ts @@ -14,5 +14,5 @@ export const meta = { }; export default define(meta, async (ps) => { - await Logs.delete({}); + await Logs.clear(); // TRUNCATE }); diff --git a/src/server/api/endpoints/admin/drive/files.ts b/src/server/api/endpoints/admin/drive/files.ts index 496050d2dfb09eb70de833939844073677e4aeff..1a5c940f1ed99b72c4e79eeabb6aae2b162c3d28 100644 --- a/src/server/api/endpoints/admin/drive/files.ts +++ b/src/server/api/endpoints/admin/drive/files.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import define from '../../../define'; import { DriveFiles } from '../../../../../models'; import { makePaginationQuery } from '../../../common/make-pagination-query'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/drive/show-file.ts b/src/server/api/endpoints/admin/drive/show-file.ts index 96478a1c7d588c98a958c928ef904f36d7fe2df7..cfe25306c267a4e0ea93463037e36d181ac5775f 100644 --- a/src/server/api/endpoints/admin/drive/show-file.ts +++ b/src/server/api/endpoints/admin/drive/show-file.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { DriveFiles } from '../../../../../models'; diff --git a/src/server/api/endpoints/admin/emoji/add.ts b/src/server/api/endpoints/admin/emoji/add.ts index 77e29cfb2ac161cb00a9888e8250c4ead16f37a6..04eac79d6ab75d65a4b913d099c1e6af728fc90f 100644 --- a/src/server/api/endpoints/admin/emoji/add.ts +++ b/src/server/api/endpoints/admin/emoji/add.ts @@ -1,11 +1,11 @@ import $ from 'cafy'; import define from '../../../define'; import { Emojis, DriveFiles } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { getConnection } from 'typeorm'; import { insertModerationLog } from '../../../../../services/insert-moderation-log'; import { ApiError } from '../../../error'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import rndstr from 'rndstr'; import { publishBroadcastStream } from '../../../../../services/stream'; diff --git a/src/server/api/endpoints/admin/emoji/copy.ts b/src/server/api/endpoints/admin/emoji/copy.ts index 5c3c4f6fc50eb5e0a80677f87ce08b52aa39ebec..7df7830072c1bbed9c5b394155dfaeef03c23610 100644 --- a/src/server/api/endpoints/admin/emoji/copy.ts +++ b/src/server/api/endpoints/admin/emoji/copy.ts @@ -1,11 +1,11 @@ import $ from 'cafy'; import define from '../../../define'; import { Emojis } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { getConnection } from 'typeorm'; import { ApiError } from '../../../error'; import { DriveFile } from '../../../../../models/entities/drive-file'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import uploadFromUrl from '../../../../../services/drive/upload-from-url'; 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 81029fbbba48c7b829af9dc0568080af51204b3f..6a4e86c342c85158f606e6629730d8788b5f55f0 100644 --- a/src/server/api/endpoints/admin/emoji/list-remote.ts +++ b/src/server/api/endpoints/admin/emoji/list-remote.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import define from '../../../define'; import { Emojis } from '../../../../../models'; -import { toPuny } from '../../../../../misc/convert-host'; +import { toPuny } from '@/misc/convert-host'; import { makePaginationQuery } from '../../../common/make-pagination-query'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/emoji/list.ts b/src/server/api/endpoints/admin/emoji/list.ts index 6d042b0afd90703152d58127cc32bc80ffc0b7ed..9e50ce61c86969724ac38c6234817e04eb22c577 100644 --- a/src/server/api/endpoints/admin/emoji/list.ts +++ b/src/server/api/endpoints/admin/emoji/list.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import define from '../../../define'; import { Emojis } from '../../../../../models'; import { makePaginationQuery } from '../../../common/make-pagination-query'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Emoji } from '../../../../../models/entities/emoji'; export const meta = { @@ -96,9 +96,9 @@ export default define(meta, async (ps) => { emojis = await q.getMany(); emojis = emojis.filter(emoji => - emoji.name.includes(ps.query) || - emoji.aliases.some(a => a.includes(ps.query)) || - emoji.category?.includes(ps.query)); + emoji.name.includes(ps.query!) || + emoji.aliases.some(a => a.includes(ps.query!)) || + emoji.category?.includes(ps.query!)); emojis.splice(ps.limit! + 1); } else { diff --git a/src/server/api/endpoints/admin/emoji/remove.ts b/src/server/api/endpoints/admin/emoji/remove.ts index 19ffa1c166637e05e70c54b42ab2e33592f53270..3f87dded3b6a7446b199e6f84366430abc048bcf 100644 --- a/src/server/api/endpoints/admin/emoji/remove.ts +++ b/src/server/api/endpoints/admin/emoji/remove.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Emojis } from '../../../../../models'; import { getConnection } from 'typeorm'; import { insertModerationLog } from '../../../../../services/insert-moderation-log'; diff --git a/src/server/api/endpoints/admin/emoji/update.ts b/src/server/api/endpoints/admin/emoji/update.ts index 2493b62c2af3bf15c2793042b72f3170fa5a484f..2fa6587e2b8ac3559b1cb8fe10f3fff39d8c4d3c 100644 --- a/src/server/api/endpoints/admin/emoji/update.ts +++ b/src/server/api/endpoints/admin/emoji/update.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Emojis } from '../../../../../models'; import { getConnection } from 'typeorm'; import { ApiError } from '../../../error'; 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 923a5f52cbef50f2061ec82b648e2d4c8d456501..65b3b6e26027209b820b438fc6df489051ce72dd 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,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; import { Instances } from '../../../../../models'; -import { toPuny } from '../../../../../misc/convert-host'; +import { toPuny } from '@/misc/convert-host'; import { fetchInstanceMetadata } from '../../../../../services/fetch-instance-metadata'; export const meta = { diff --git a/src/server/api/endpoints/admin/federation/update-instance.ts b/src/server/api/endpoints/admin/federation/update-instance.ts index 7206e4fb2ed015605ed151e703827aa50f8ac8ac..3e9d243d74cdf3668af095afa1864e669c765a49 100644 --- a/src/server/api/endpoints/admin/federation/update-instance.ts +++ b/src/server/api/endpoints/admin/federation/update-instance.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; import { Instances } from '../../../../../models'; -import { toPuny } from '../../../../../misc/convert-host'; +import { toPuny } from '@/misc/convert-host'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/invite.ts b/src/server/api/endpoints/admin/invite.ts index 987105791f5670a0fd45691f9dd4ab77b7c990c4..2a87fae7140410da8b375f9ad1bc887874c9a18d 100644 --- a/src/server/api/endpoints/admin/invite.ts +++ b/src/server/api/endpoints/admin/invite.ts @@ -1,7 +1,7 @@ import rndstr from 'rndstr'; import define from '../../define'; import { RegistrationTickets } from '../../../../models'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/moderators/add.ts b/src/server/api/endpoints/admin/moderators/add.ts index fd862a9a4fb3584e12b512d3c0c0d32ceb17d00f..a96cf35db18f475154135acd9175f908d85316ac 100644 --- a/src/server/api/endpoints/admin/moderators/add.ts +++ b/src/server/api/endpoints/admin/moderators/add.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { Users } from '../../../../../models'; diff --git a/src/server/api/endpoints/admin/moderators/remove.ts b/src/server/api/endpoints/admin/moderators/remove.ts index 1eee750bc4bc47b11e960e82d479e3b15bc62e0d..c9c884092c4e8e1a7c31a0ca58f52e0c057ac4d6 100644 --- a/src/server/api/endpoints/admin/moderators/remove.ts +++ b/src/server/api/endpoints/admin/moderators/remove.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { Users } from '../../../../../models'; diff --git a/src/server/api/endpoints/admin/promo/create.ts b/src/server/api/endpoints/admin/promo/create.ts index aa22e68ebdf9cd8203e77aff24b4dd5dcd061998..3ee1616145f1d0b49a2d2ed498120b8151041172 100644 --- a/src/server/api/endpoints/admin/promo/create.ts +++ b/src/server/api/endpoints/admin/promo/create.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getNote } from '../../../common/getters'; diff --git a/src/server/api/endpoints/admin/queue/deliver-delayed.ts b/src/server/api/endpoints/admin/queue/deliver-delayed.ts index 221aa35e48135c1718d865272db0a4522fb60448..1de5b060e223e0cbf496660eab61e5c6c31de97b 100644 --- a/src/server/api/endpoints/admin/queue/deliver-delayed.ts +++ b/src/server/api/endpoints/admin/queue/deliver-delayed.ts @@ -1,5 +1,6 @@ +import { deliverQueue } from '@/queue/queues'; +import { URL } from 'url'; import define from '../../../define'; -import { deliverQueue } from '../../../../../queue'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/queue/inbox-delayed.ts b/src/server/api/endpoints/admin/queue/inbox-delayed.ts index 52f67cb514c164c0ef79cd2a9d09bb0b0a2b4d20..3599c012a5c7a770815af23effae5a4b49a76d46 100644 --- a/src/server/api/endpoints/admin/queue/inbox-delayed.ts +++ b/src/server/api/endpoints/admin/queue/inbox-delayed.ts @@ -1,3 +1,4 @@ +import { URL } from 'url'; import define from '../../../define'; import { inboxQueue } from '../../../../../queue'; diff --git a/src/server/api/endpoints/admin/queue/jobs.ts b/src/server/api/endpoints/admin/queue/jobs.ts index 5ab78e3c4843dfe8427623d332c2699cb8f7984e..ffae1426be546a8fc89df670583229c6807f2d77 100644 --- a/src/server/api/endpoints/admin/queue/jobs.ts +++ b/src/server/api/endpoints/admin/queue/jobs.ts @@ -1,6 +1,6 @@ +import { deliverQueue, inboxQueue, dbQueue, objectStorageQueue } from '@/queue/queues'; import $ from 'cafy'; import define from '../../../define'; -import { deliverQueue, inboxQueue, dbQueue, objectStorageQueue } from '../../../../../queue'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/queue/stats.ts b/src/server/api/endpoints/admin/queue/stats.ts index bd64d2ac068c7dfeca05ace8fbd7989e806ec5d8..cc1cf8a9e076ca3999760f7c5079e29b9c5c07db 100644 --- a/src/server/api/endpoints/admin/queue/stats.ts +++ b/src/server/api/endpoints/admin/queue/stats.ts @@ -1,5 +1,5 @@ +import { deliverQueue, inboxQueue, dbQueue, objectStorageQueue } from '@/queue/queues'; import define from '../../../define'; -import { deliverQueue, inboxQueue, dbQueue, objectStorageQueue } from '../../../../../queue'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/relays/add.ts b/src/server/api/endpoints/admin/relays/add.ts index 831e05c835a5ba0980dcc07b5a8accfbdec32d31..e10bd92c8d8c0c021af019bb0dc6fcd8a454a520 100644 --- a/src/server/api/endpoints/admin/relays/add.ts +++ b/src/server/api/endpoints/admin/relays/add.ts @@ -1,3 +1,4 @@ +import { URL } from 'url'; import $ from 'cafy'; import define from '../../../define'; import { addRelay } from '../../../../../services/relay'; diff --git a/src/server/api/endpoints/admin/reset-password.ts b/src/server/api/endpoints/admin/reset-password.ts index 2f55cf23a11805a16b96577f40fca6e89ee5a5bc..a316ef9c1d149822c8355247f4564f08b6e20ad8 100644 --- a/src/server/api/endpoints/admin/reset-password.ts +++ b/src/server/api/endpoints/admin/reset-password.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import * as bcrypt from 'bcryptjs'; import rndstr from 'rndstr'; 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 f8cd8def577c510852e5d4bfd0179c53c69d913e..144695182814ba52a20f596bfb983c8cfb36a063 100644 --- a/src/server/api/endpoints/admin/resolve-abuse-user-report.ts +++ b/src/server/api/endpoints/admin/resolve-abuse-user-report.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { AbuseUserReports } from '../../../../models'; diff --git a/src/server/api/endpoints/admin/server-info.ts b/src/server/api/endpoints/admin/server-info.ts index 3b48a811e561b0acfaded1a6817df6840ffe9b78..33e6190974696dd3c8b1d5d84cf4e2779f1c6bd7 100644 --- a/src/server/api/endpoints/admin/server-info.ts +++ b/src/server/api/endpoints/admin/server-info.ts @@ -2,7 +2,7 @@ import * as os from 'os'; import * as si from 'systeminformation'; import { getConnection } from 'typeorm'; import define from '../../define'; -import redis from '../../../../db/redis'; +import { redisClient } from '../../../../db/redis'; export const meta = { requireCredential: true as const, @@ -115,7 +115,7 @@ export default define(meta, async () => { os: os.platform(), node: process.version, psql: await getConnection().query('SHOW server_version').then(x => x[0].server_version), - redis: redis.server_info.redis_version, + redis: redisClient.server_info.redis_version, cpu: { model: os.cpus()[0].model, cores: os.cpus().length diff --git a/src/server/api/endpoints/admin/show-moderation-logs.ts b/src/server/api/endpoints/admin/show-moderation-logs.ts index f41d91647ae151a25e7ba85aed700276bc5333cf..59e6f0033dd42940d82138a921d1a422f645fc88 100644 --- a/src/server/api/endpoints/admin/show-moderation-logs.ts +++ b/src/server/api/endpoints/admin/show-moderation-logs.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ModerationLogs } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/admin/show-user.ts b/src/server/api/endpoints/admin/show-user.ts index 63889a9e6b55bb51898e47910f24095ba06bbcc7..52c4458c35a1f6b39ab1f4d309fd57cc51c419cd 100644 --- a/src/server/api/endpoints/admin/show-user.ts +++ b/src/server/api/endpoints/admin/show-user.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Users } from '../../../../models'; diff --git a/src/server/api/endpoints/admin/silence-user.ts b/src/server/api/endpoints/admin/silence-user.ts index cd5c339a5b2433f7cbe469b6cd4da00a8bd59669..d057459824acfe2674b2edc52dda26be2ef9805a 100644 --- a/src/server/api/endpoints/admin/silence-user.ts +++ b/src/server/api/endpoints/admin/silence-user.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Users } from '../../../../models'; import { insertModerationLog } from '../../../../services/insert-moderation-log'; diff --git a/src/server/api/endpoints/admin/suspend-user.ts b/src/server/api/endpoints/admin/suspend-user.ts index 10be88b8f11b08fc85169bef94ffa129983fba69..a4485445c9cb292359868f4e9c3e0ba7643e220b 100644 --- a/src/server/api/endpoints/admin/suspend-user.ts +++ b/src/server/api/endpoints/admin/suspend-user.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import deleteFollowing from '../../../../services/following/delete'; import { Users, Followings, Notifications } from '../../../../models'; diff --git a/src/server/api/endpoints/admin/unsilence-user.ts b/src/server/api/endpoints/admin/unsilence-user.ts index 63e4be06f3156005366a07d5f333057c6e001999..c811ae5d1c78072336893b28db3361b2f65ebfd0 100644 --- a/src/server/api/endpoints/admin/unsilence-user.ts +++ b/src/server/api/endpoints/admin/unsilence-user.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Users } from '../../../../models'; import { insertModerationLog } from '../../../../services/insert-moderation-log'; diff --git a/src/server/api/endpoints/admin/unsuspend-user.ts b/src/server/api/endpoints/admin/unsuspend-user.ts index 9690d6ef0b90ffd5a88cee48eec19ab35ab03a62..7658d37f8b254c8385d1c8f1c781dac415f7dad0 100644 --- a/src/server/api/endpoints/admin/unsuspend-user.ts +++ b/src/server/api/endpoints/admin/unsuspend-user.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Users } from '../../../../models'; import { insertModerationLog } from '../../../../services/insert-moderation-log'; diff --git a/src/server/api/endpoints/admin/update-meta.ts b/src/server/api/endpoints/admin/update-meta.ts index 163d7a2519b4822245c596d5edfd56c37be5fd5d..d9ce7c061c83e9a94a567cfd1bfd3de4e2a85eea 100644 --- a/src/server/api/endpoints/admin/update-meta.ts +++ b/src/server/api/endpoints/admin/update-meta.ts @@ -3,8 +3,8 @@ import define from '../../define'; import { getConnection } from 'typeorm'; 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'; +import { DB_MAX_NOTE_TEXT_LENGTH } from '@/misc/hard-limits'; +import { ID } from '@/misc/cafy-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/update-remote-user.ts b/src/server/api/endpoints/admin/update-remote-user.ts index a6b5ef1e854139781c3bc35a929a143a697bf18a..9577ac0a55bef69a076e17c01c75f12552bccf6a 100644 --- a/src/server/api/endpoints/admin/update-remote-user.ts +++ b/src/server/api/endpoints/admin/update-remote-user.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { getRemoteUser } from '../../common/getters'; import { updatePerson } from '../../../../remote/activitypub/models/person'; diff --git a/src/server/api/endpoints/announcements.ts b/src/server/api/endpoints/announcements.ts index 5d0fd9bdfadc32bd09db1e1184cb01e344d60d44..a7c477bc7cbdc7f979e50507a59d365ad0487e8d 100644 --- a/src/server/api/endpoints/announcements.ts +++ b/src/server/api/endpoints/announcements.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../define'; import { Announcements, AnnouncementReads } from '../../../models'; import { makePaginationQuery } from '../common/make-pagination-query'; diff --git a/src/server/api/endpoints/antennas/create.ts b/src/server/api/endpoints/antennas/create.ts index b5f0eead2a12d616308cafccf6ced89f30255803..04ca21bba7f393d106664c3a09f75483e30ca91f 100644 --- a/src/server/api/endpoints/antennas/create.ts +++ b/src/server/api/endpoints/antennas/create.ts @@ -1,9 +1,10 @@ import $ from 'cafy'; import define from '../../define'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { Antennas, UserLists, UserGroupJoinings } from '../../../../models'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { ApiError } from '../../error'; +import { publishInternalEvent } from '../../../../services/stream'; export const meta = { desc: { @@ -88,7 +89,7 @@ export default define(meta, async (ps, user) => { let userList; let userGroupJoining; - if (ps.src === 'list') { + if (ps.src === 'list' && ps.userListId) { userList = await UserLists.findOne({ id: ps.userListId, userId: user.id, @@ -97,7 +98,7 @@ export default define(meta, async (ps, user) => { if (userList == null) { throw new ApiError(meta.errors.noSuchUserList); } - } else if (ps.src === 'group') { + } else if (ps.src === 'group' && ps.userGroupId) { userGroupJoining = await UserGroupJoinings.findOne({ userGroupId: ps.userGroupId, userId: user.id, @@ -108,7 +109,7 @@ export default define(meta, async (ps, user) => { } } - const antenna = await Antennas.save({ + const antenna = await Antennas.insert({ id: genId(), createdAt: new Date(), userId: user.id, @@ -123,7 +124,9 @@ export default define(meta, async (ps, user) => { withReplies: ps.withReplies, withFile: ps.withFile, notify: ps.notify, - }); + }).then(x => Antennas.findOneOrFail(x.identifiers[0])); + + publishInternalEvent('antennaCreated', antenna); return await Antennas.pack(antenna); }); diff --git a/src/server/api/endpoints/antennas/delete.ts b/src/server/api/endpoints/antennas/delete.ts index 9008c37c8eb2b8cd6bd0789f73ff285cbc93f850..5d617bb5b5746798a8a6ce3aed8cf3877dc257a9 100644 --- a/src/server/api/endpoints/antennas/delete.ts +++ b/src/server/api/endpoints/antennas/delete.ts @@ -1,8 +1,9 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Antennas } from '../../../../models'; +import { publishInternalEvent } from '../../../../services/stream'; export const meta = { desc: { @@ -42,4 +43,6 @@ export default define(meta, async (ps, user) => { } await Antennas.delete(antenna.id); + + publishInternalEvent('antennaDeleted', antenna); }); diff --git a/src/server/api/endpoints/antennas/notes.ts b/src/server/api/endpoints/antennas/notes.ts index 6fd3cf2df5ba512fa1e80f17c1f4076794c814ca..456c1b6e006fc3b366435096a58fd9c95c986c71 100644 --- a/src/server/api/endpoints/antennas/notes.ts +++ b/src/server/api/endpoints/antennas/notes.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Antennas, Notes, AntennaNotes } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/antennas/show.ts b/src/server/api/endpoints/antennas/show.ts index ed400f830c6612c4c08695ab72dc5fba05194a56..af2a28b793c2fb27e61b350e45e091d2985ad631 100644 --- a/src/server/api/endpoints/antennas/show.ts +++ b/src/server/api/endpoints/antennas/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Antennas } from '../../../../models'; diff --git a/src/server/api/endpoints/antennas/update.ts b/src/server/api/endpoints/antennas/update.ts index 58f4e68c89f3aa855a10db2c53ce4b6cc4f8c027..17b0f854f3e1d01a0fe6b4aa67b2d58e889ae137 100644 --- a/src/server/api/endpoints/antennas/update.ts +++ b/src/server/api/endpoints/antennas/update.ts @@ -1,8 +1,9 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +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'; export const meta = { desc: { @@ -107,7 +108,7 @@ export default define(meta, async (ps, user) => { let userList; let userGroupJoining; - if (ps.src === 'list') { + if (ps.src === 'list' && ps.userListId) { userList = await UserLists.findOne({ id: ps.userListId, userId: user.id, @@ -116,7 +117,7 @@ export default define(meta, async (ps, user) => { if (userList == null) { throw new ApiError(meta.errors.noSuchUserList); } - } else if (ps.src === 'group') { + } else if (ps.src === 'group' && ps.userGroupId) { userGroupJoining = await UserGroupJoinings.findOne({ userGroupId: ps.userGroupId, userId: user.id, @@ -141,5 +142,7 @@ export default define(meta, async (ps, user) => { notify: ps.notify, }); + publishInternalEvent('antennaUpdated', Antennas.findOneOrFail(antenna.id)); + return await Antennas.pack(antenna.id); }); diff --git a/src/server/api/endpoints/ap/show.ts b/src/server/api/endpoints/ap/show.ts index e8297db4727c873b1402ace688cb499e0de76b46..2ce11160e8e136d99a4452677e78f2cf761f4e9b 100644 --- a/src/server/api/endpoints/ap/show.ts +++ b/src/server/api/endpoints/ap/show.ts @@ -1,15 +1,15 @@ import $ from 'cafy'; import define from '../../define'; -import config from '../../../../config'; +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 { ApiError } from '../../error'; -import { extractDbHost } from '../../../../misc/convert-host'; +import { extractDbHost } from '@/misc/convert-host'; import { Users, Notes } from '../../../../models'; import { Note } from '../../../../models/entities/note'; import { User } from '../../../../models/entities/user'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { validActor, validPost } from '../../../../remote/activitypub/type'; export const meta = { diff --git a/src/server/api/endpoints/app/create.ts b/src/server/api/endpoints/app/create.ts index 776865ffb6fc735f34422d025d9dc0202a5d9b71..db72bd1c4233a5872e5533730f36fb6d501149ab 100644 --- a/src/server/api/endpoints/app/create.ts +++ b/src/server/api/endpoints/app/create.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import define from '../../define'; import { Apps } from '../../../../models'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { unique } from '../../../../prelude/array'; -import { secureRndstr } from '../../../../misc/secure-rndstr'; +import { secureRndstr } from '@/misc/secure-rndstr'; export const meta = { tags: ['app'], diff --git a/src/server/api/endpoints/app/show.ts b/src/server/api/endpoints/app/show.ts index 254ae30884ebb007fae7a42fadd60aac9e96e721..65f8c77981bbdcf41aec7a3a8c76d9c7b4f3ee55 100644 --- a/src/server/api/endpoints/app/show.ts +++ b/src/server/api/endpoints/app/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Apps } from '../../../../models'; @@ -46,6 +46,6 @@ export default define(meta, async (ps, user, token) => { return await Apps.pack(ap, user, { detail: true, - includeSecret: isSecure && (ap.userId === user.id) + includeSecret: isSecure && (ap.userId === user!.id) }); }); diff --git a/src/server/api/endpoints/auth/accept.ts b/src/server/api/endpoints/auth/accept.ts index 444053a94608296581565e84455788f8a2d79539..ee0d0421c9119468786641295714ef4b10668778 100644 --- a/src/server/api/endpoints/auth/accept.ts +++ b/src/server/api/endpoints/auth/accept.ts @@ -3,8 +3,8 @@ import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; import { AuthSessions, AccessTokens, Apps } from '../../../../models'; -import { genId } from '../../../../misc/gen-id'; -import { secureRndstr } from '../../../../misc/secure-rndstr'; +import { genId } from '@/misc/gen-id'; +import { secureRndstr } from '@/misc/secure-rndstr'; export const meta = { tags: ['auth'], diff --git a/src/server/api/endpoints/auth/session/generate.ts b/src/server/api/endpoints/auth/session/generate.ts index 5596e6122be675e3e2a5255f6da7039914d08bea..e0d003c49931a90bf5af2ead0a3d499e1b028f09 100644 --- a/src/server/api/endpoints/auth/session/generate.ts +++ b/src/server/api/endpoints/auth/session/generate.ts @@ -1,10 +1,10 @@ import { v4 as uuid } from 'uuid'; import $ from 'cafy'; -import config from '../../../../../config'; +import config from '@/config'; import define from '../../../define'; import { ApiError } from '../../../error'; import { Apps, AuthSessions } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { tags: ['auth'], diff --git a/src/server/api/endpoints/blocking/create.ts b/src/server/api/endpoints/blocking/create.ts index dfab338a8b9644767460b4a0125610b74ba6a80f..60fde8ad78d464f99965d54878c498c2de7f94ba 100644 --- a/src/server/api/endpoints/blocking/create.ts +++ b/src/server/api/endpoints/blocking/create.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import * as ms from 'ms'; import create from '../../../../services/blocking/create'; import define from '../../define'; @@ -62,7 +62,7 @@ export const meta = { }; export default define(meta, async (ps, user) => { - const blocker = user; + const blocker = await Users.findOneOrFail(user.id); // 自分自身 if (user.id === ps.userId) { @@ -93,7 +93,7 @@ export default define(meta, async (ps, user) => { noteUserId: blockee.id }); - return await Users.pack(blockee.id, user, { + return await Users.pack(blockee.id, blocker, { detail: true }); }); diff --git a/src/server/api/endpoints/blocking/delete.ts b/src/server/api/endpoints/blocking/delete.ts index 22d2df59701af106feae72195cd1d905d280033b..8caa3efc88b4f76a85ab35750997548a48fd346d 100644 --- a/src/server/api/endpoints/blocking/delete.ts +++ b/src/server/api/endpoints/blocking/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import * as ms from 'ms'; import deleteBlocking from '../../../../services/blocking/delete'; import define from '../../define'; @@ -126,7 +126,7 @@ export const meta = { }; export default define(meta, async (ps, user) => { - const blocker = user; + const blocker = await Users.findOneOrFail(user.id); // Check if the blockee is yourself if (user.id === ps.userId) { @@ -152,7 +152,7 @@ export default define(meta, async (ps, user) => { // Delete blocking await deleteBlocking(blocker, blockee); - return await Users.pack(blockee.id, user, { + return await Users.pack(blockee.id, blocker, { detail: true }); }); diff --git a/src/server/api/endpoints/blocking/list.ts b/src/server/api/endpoints/blocking/list.ts index a9bb1c5f96cdd7d53d81a45520413ddc0d986d4e..fe8706b5c27350229b3588640bb4451063c84879 100644 --- a/src/server/api/endpoints/blocking/list.ts +++ b/src/server/api/endpoints/blocking/list.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Blockings } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/channels/create.ts b/src/server/api/endpoints/channels/create.ts index 53436e703db305d210a327cb283792b822072fa2..c6dc68faf826ef2e129d6f325fec5b60a49353b8 100644 --- a/src/server/api/endpoints/channels/create.ts +++ b/src/server/api/endpoints/channels/create.ts @@ -3,8 +3,8 @@ import define from '../../define'; import { ApiError } from '../../error'; import { Channels, DriveFiles } from '../../../../models'; import { Channel } from '../../../../models/entities/channel'; -import { genId } from '../../../../misc/gen-id'; -import { ID } from '../../../../misc/cafy-id'; +import { genId } from '@/misc/gen-id'; +import { ID } from '@/misc/cafy-id'; export const meta = { tags: ['channels'], diff --git a/src/server/api/endpoints/channels/follow.ts b/src/server/api/endpoints/channels/follow.ts index c5976a8a34860885f6f86c61419161e569b49fb7..b264f7451a6bfb4203ae34884e4899185fd2d3df 100644 --- a/src/server/api/endpoints/channels/follow.ts +++ b/src/server/api/endpoints/channels/follow.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Channels, ChannelFollowings } from '../../../../models'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { publishUserEvent } from '../../../../services/stream'; export const meta = { diff --git a/src/server/api/endpoints/channels/followed.ts b/src/server/api/endpoints/channels/followed.ts index bd37d420f6d7ced76f5aef89ff2578a44ae62665..7f0cfe4941d046f3fd2ee2c0274431f7bbf54435 100644 --- a/src/server/api/endpoints/channels/followed.ts +++ b/src/server/api/endpoints/channels/followed.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Channels, ChannelFollowings } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/channels/owned.ts b/src/server/api/endpoints/channels/owned.ts index 1a7e04640d0665a9c2a226511a8bff307e819fbb..4f538f651ea9931f56b09298c0039b4f4ce260a6 100644 --- a/src/server/api/endpoints/channels/owned.ts +++ b/src/server/api/endpoints/channels/owned.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Channels } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/channels/show.ts b/src/server/api/endpoints/channels/show.ts index 63057dd57fd8a93398c040adce012cd7978d9389..d5f182da11c00353aa2bdfb9b6666636b8afa88a 100644 --- a/src/server/api/endpoints/channels/show.ts +++ b/src/server/api/endpoints/channels/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Channels } from '../../../../models'; diff --git a/src/server/api/endpoints/channels/timeline.ts b/src/server/api/endpoints/channels/timeline.ts index 00a7cd86d597888c56fde8a17111ae273cb9b73b..494221010a017b0a9a89706e6cf835038ed0d36c 100644 --- a/src/server/api/endpoints/channels/timeline.ts +++ b/src/server/api/endpoints/channels/timeline.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Notes, Channels } from '../../../../models'; @@ -97,7 +97,7 @@ export default define(meta, async (ps, user) => { const timeline = await query.take(ps.limit!).getMany(); - activeUsersChart.update(user); + if (user) activeUsersChart.update(user); return await Notes.packMany(timeline, user); }); diff --git a/src/server/api/endpoints/channels/unfollow.ts b/src/server/api/endpoints/channels/unfollow.ts index 3eb0f1519bf3e10a8f57e8c83555dbd8469bb5b2..116af5033704708aa50df6cf911ea0d4b2f1e820 100644 --- a/src/server/api/endpoints/channels/unfollow.ts +++ b/src/server/api/endpoints/channels/unfollow.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Channels, ChannelFollowings } from '../../../../models'; diff --git a/src/server/api/endpoints/channels/update.ts b/src/server/api/endpoints/channels/update.ts index ca35fe85cbba7eacac298eefa8a61a1c58616a6b..1495297ee58dd50c8a10e0876e29d2787d609d3f 100644 --- a/src/server/api/endpoints/channels/update.ts +++ b/src/server/api/endpoints/channels/update.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Channels, DriveFiles } from '../../../../models'; diff --git a/src/server/api/endpoints/charts/user/drive.ts b/src/server/api/endpoints/charts/user/drive.ts index 5aae5bd757c5c903df52ebb9b241b2ae7d7c7d0d..7f4218b9246caf411a53cf2616c96ebb6a714523 100644 --- a/src/server/api/endpoints/charts/user/drive.ts +++ b/src/server/api/endpoints/charts/user/drive.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { convertLog } from '../../../../../services/chart/core'; import { perUserDriveChart } from '../../../../../services/chart'; diff --git a/src/server/api/endpoints/charts/user/following.ts b/src/server/api/endpoints/charts/user/following.ts index 9d772c39c9b9fb68d730faaf0ba9368ce2600c3f..63eb90a49ad8c69b979fc9eef09e4ae5fb079938 100644 --- a/src/server/api/endpoints/charts/user/following.ts +++ b/src/server/api/endpoints/charts/user/following.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { convertLog } from '../../../../../services/chart/core'; import { perUserFollowingChart } from '../../../../../services/chart'; diff --git a/src/server/api/endpoints/charts/user/notes.ts b/src/server/api/endpoints/charts/user/notes.ts index 8de7c0c3e455c8e77c454cdfd05bd9fdabb8d2a4..87425e3dc8681bd7ea33d6a6e277a434e87e4b36 100644 --- a/src/server/api/endpoints/charts/user/notes.ts +++ b/src/server/api/endpoints/charts/user/notes.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { convertLog } from '../../../../../services/chart/core'; import { perUserNotesChart } from '../../../../../services/chart'; diff --git a/src/server/api/endpoints/charts/user/reactions.ts b/src/server/api/endpoints/charts/user/reactions.ts index 4c37305fc3b76807f1f53880b067309e9b92d0ac..7ded604ac2e2e9694aa6921bac6a71229ae5b4dd 100644 --- a/src/server/api/endpoints/charts/user/reactions.ts +++ b/src/server/api/endpoints/charts/user/reactions.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../../define'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { convertLog } from '../../../../../services/chart/core'; import { perUserReactionsChart } from '../../../../../services/chart'; diff --git a/src/server/api/endpoints/clips/add-note.ts b/src/server/api/endpoints/clips/add-note.ts index ee6a117b2dec5018765d31b9743445e4846768ec..3d72def4f5229280b962006a7ef6431bcd20ca77 100644 --- a/src/server/api/endpoints/clips/add-note.ts +++ b/src/server/api/endpoints/clips/add-note.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ClipNotes, Clips } from '../../../../models'; import { ApiError } from '../../error'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { getNote } from '../../common/getters'; export const meta = { diff --git a/src/server/api/endpoints/clips/create.ts b/src/server/api/endpoints/clips/create.ts index b26c42c56ce912068fdc1f475b7aefe49f06c229..fb2a77fe5b540ed8fb220f0c8e3388cf63b9db3a 100644 --- a/src/server/api/endpoints/clips/create.ts +++ b/src/server/api/endpoints/clips/create.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { Clips } from '../../../../models'; export const meta = { @@ -32,14 +32,14 @@ export const meta = { }; export default define(meta, async (ps, user) => { - const clip = await Clips.save({ + const clip = await Clips.insert({ id: genId(), createdAt: new Date(), userId: user.id, name: ps.name, isPublic: ps.isPublic, description: ps.description, - }); + }).then(x => Clips.findOneOrFail(x.identifiers[0])); return await Clips.pack(clip); }); diff --git a/src/server/api/endpoints/clips/delete.ts b/src/server/api/endpoints/clips/delete.ts index 746f93188c35f88ab125c81b40c0cabd74bbc25d..20b2addb76a37d28ad14dad1408f7789eadcea8a 100644 --- a/src/server/api/endpoints/clips/delete.ts +++ b/src/server/api/endpoints/clips/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Clips } from '../../../../models'; diff --git a/src/server/api/endpoints/clips/notes.ts b/src/server/api/endpoints/clips/notes.ts index 676629c328f1773183ba96cf2199068d3208b872..5fd17584d365c369e4992d470bd2cd939943305a 100644 --- a/src/server/api/endpoints/clips/notes.ts +++ b/src/server/api/endpoints/clips/notes.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ClipNotes, Clips, Notes } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/clips/show.ts b/src/server/api/endpoints/clips/show.ts index 8c285d88b5879f5fc785eda1ed19bed7deda744c..43d2719129d2c3f740779866cc4a043c7b5476fa 100644 --- a/src/server/api/endpoints/clips/show.ts +++ b/src/server/api/endpoints/clips/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Clips } from '../../../../models'; diff --git a/src/server/api/endpoints/clips/update.ts b/src/server/api/endpoints/clips/update.ts index 041691da2a7b2e07d615b45b47b84d31cb1e957f..a368174e76c3068403e529ed426062af4260c3b7 100644 --- a/src/server/api/endpoints/clips/update.ts +++ b/src/server/api/endpoints/clips/update.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Clips } from '../../../../models'; diff --git a/src/server/api/endpoints/drive.ts b/src/server/api/endpoints/drive.ts index 527b7719a497081d75c05be3a0098445c80c3b80..0100d4da79f432486aff2186a90c94fb30927839 100644 --- a/src/server/api/endpoints/drive.ts +++ b/src/server/api/endpoints/drive.ts @@ -1,5 +1,5 @@ import define from '../define'; -import { fetchMeta } from '../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { DriveFiles } from '../../../models'; export const meta = { @@ -34,7 +34,7 @@ export default define(meta, async (ps, user) => { const instance = await fetchMeta(true); // Calculate drive usage - const usage = await DriveFiles.calcDriveUsageOf(user); + const usage = await DriveFiles.calcDriveUsageOf(user.id); return { capacity: 1024 * 1024 * instance.localDriveCapacityMb, diff --git a/src/server/api/endpoints/drive/files.ts b/src/server/api/endpoints/drive/files.ts index 00705fb9b77b0027d40ed66df27011db5b955ebe..85dc07cc160cefd9241dbd097892364c5e067364 100644 --- a/src/server/api/endpoints/drive/files.ts +++ b/src/server/api/endpoints/drive/files.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { DriveFiles } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/drive/files/attached-notes.ts b/src/server/api/endpoints/drive/files/attached-notes.ts index e1fc27f599baed2d469f923c1c8448618db55118..ea09581ba9f1e2684971fc93e6954e8c79abb103 100644 --- a/src/server/api/endpoints/drive/files/attached-notes.ts +++ b/src/server/api/endpoints/drive/files/attached-notes.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { DriveFiles, Notes } from '../../../../../models'; diff --git a/src/server/api/endpoints/drive/files/create.ts b/src/server/api/endpoints/drive/files/create.ts index c0bb6bcc6e7401342f10b7b71c27b5e59509d217..82ff04e092cfe2bf804bec4d17557aed04ef1228 100644 --- a/src/server/api/endpoints/drive/files/create.ts +++ b/src/server/api/endpoints/drive/files/create.ts @@ -1,6 +1,6 @@ import * as ms from 'ms'; import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import create from '../../../../../services/drive/add-file'; import define from '../../../define'; import { apiLogger } from '../../../logger'; diff --git a/src/server/api/endpoints/drive/files/delete.ts b/src/server/api/endpoints/drive/files/delete.ts index 77d112ec94f69441db8391bf1b12bda89a41ee35..211afaaba1c20b14f60c6b7afe3f426215d6cd8a 100644 --- a/src/server/api/endpoints/drive/files/delete.ts +++ b/src/server/api/endpoints/drive/files/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { deleteFile } from '../../../../../services/drive/delete-file'; import { publishDriveStream } from '../../../../../services/stream'; import define from '../../../define'; diff --git a/src/server/api/endpoints/drive/files/find.ts b/src/server/api/endpoints/drive/files/find.ts index 5872e2c0c179006a7189290f8c517a9e6c7d27b3..b3613ca01b18e26168f22c297d818f2309211d66 100644 --- a/src/server/api/endpoints/drive/files/find.ts +++ b/src/server/api/endpoints/drive/files/find.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { DriveFiles } from '../../../../../models'; diff --git a/src/server/api/endpoints/drive/files/show.ts b/src/server/api/endpoints/drive/files/show.ts index 39f4b7d2f707dafa2c2fc7ba424dc9e90ba7f51d..f4922bff1377e2aa40ec447affa0fad7ef0820f5 100644 --- a/src/server/api/endpoints/drive/files/show.ts +++ b/src/server/api/endpoints/drive/files/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { DriveFile } from '../../../../../models/entities/drive-file'; diff --git a/src/server/api/endpoints/drive/files/update.ts b/src/server/api/endpoints/drive/files/update.ts index 7e43765c060011ac2b5e0cc8477d33133f40ec3b..6eda83967bb2f4ad926ef40b79184eb30176c10e 100644 --- a/src/server/api/endpoints/drive/files/update.ts +++ b/src/server/api/endpoints/drive/files/update.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { publishDriveStream } from '../../../../../services/stream'; import define from '../../../define'; import { ApiError } from '../../../error'; 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 296211c091922640c463d0a749c466f24da68007..1b33099aa4c8b4a8df66f7074e818d7deb0764f9 100644 --- a/src/server/api/endpoints/drive/files/upload-from-url.ts +++ b/src/server/api/endpoints/drive/files/upload-from-url.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import * as ms from 'ms'; import uploadFromUrl from '../../../../../services/drive/upload-from-url'; import define from '../../../define'; diff --git a/src/server/api/endpoints/drive/folders.ts b/src/server/api/endpoints/drive/folders.ts index f662d53ba664c3fb0805cd1465edfad3f14a4218..89453e6e09977ed4a9024d2b19ec02fab04423df 100644 --- a/src/server/api/endpoints/drive/folders.ts +++ b/src/server/api/endpoints/drive/folders.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { DriveFolders } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/drive/folders/create.ts b/src/server/api/endpoints/drive/folders/create.ts index edaa74532d382d65d81b360ebaa3dcb95071ece3..d2c5e00a9f4f2d8336d43064111eb929b9a0c1a5 100644 --- a/src/server/api/endpoints/drive/folders/create.ts +++ b/src/server/api/endpoints/drive/folders/create.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { publishDriveStream } from '../../../../../services/stream'; import define from '../../../define'; import { ApiError } from '../../../error'; import { DriveFolders } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { desc: { @@ -68,13 +68,13 @@ export default define(meta, async (ps, user) => { } // Create folder - const folder = await DriveFolders.save({ + const folder = await DriveFolders.insert({ id: genId(), createdAt: new Date(), name: ps.name, parentId: parent !== null ? parent.id : null, userId: user.id - }); + }).then(x => DriveFolders.findOneOrFail(x.identifiers[0])); const folderObj = await DriveFolders.pack(folder); diff --git a/src/server/api/endpoints/drive/folders/delete.ts b/src/server/api/endpoints/drive/folders/delete.ts index 439ef06a50fa3391825782d5048f7ec962cb445d..2a418069c9e1da296bd67533a13a438186af5a7c 100644 --- a/src/server/api/endpoints/drive/folders/delete.ts +++ b/src/server/api/endpoints/drive/folders/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { publishDriveStream } from '../../../../../services/stream'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/drive/folders/find.ts b/src/server/api/endpoints/drive/folders/find.ts index 72ce1d192b8cdc8eff1044b328e0bd60f1372619..e3f6aa4a91201b7522c5d673b50771d359bd09b8 100644 --- a/src/server/api/endpoints/drive/folders/find.ts +++ b/src/server/api/endpoints/drive/folders/find.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { DriveFolders } from '../../../../../models'; diff --git a/src/server/api/endpoints/drive/folders/show.ts b/src/server/api/endpoints/drive/folders/show.ts index b600b5e39fff727c2b2e0e4fd6190897427d41a8..ae00b9e36767ded03fcf166eef3979d11cb21a74 100644 --- a/src/server/api/endpoints/drive/folders/show.ts +++ b/src/server/api/endpoints/drive/folders/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { DriveFolders } from '../../../../../models'; diff --git a/src/server/api/endpoints/drive/folders/update.ts b/src/server/api/endpoints/drive/folders/update.ts index c2a272c2474b08b5b39ed9300c644684e617d378..066013287c4ee5a10a5eb58366ebc82878fdd9db 100644 --- a/src/server/api/endpoints/drive/folders/update.ts +++ b/src/server/api/endpoints/drive/folders/update.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { publishDriveStream } from '../../../../../services/stream'; import define from '../../../define'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/drive/stream.ts b/src/server/api/endpoints/drive/stream.ts index 94c2051bbe04748766975503d8db25d9c1258815..ca88acf5fee8ed6a8f850fc0317a47d8fc632bbf 100644 --- a/src/server/api/endpoints/drive/stream.ts +++ b/src/server/api/endpoints/drive/stream.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { DriveFiles } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/federation/followers.ts b/src/server/api/endpoints/federation/followers.ts index a5c564b0a8818f57d43b1deb9b5b3dc268b8c0c4..727eada68251b0936d09639731933f93ccc48d8e 100644 --- a/src/server/api/endpoints/federation/followers.ts +++ b/src/server/api/endpoints/federation/followers.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Followings } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/federation/following.ts b/src/server/api/endpoints/federation/following.ts index 80820f5a26c5e6099ddeb750efd17caab99be8a0..c6bc71a9823f30711c01d7dbf3cadbf84f3e5ec2 100644 --- a/src/server/api/endpoints/federation/following.ts +++ b/src/server/api/endpoints/federation/following.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Followings } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/federation/instances.ts b/src/server/api/endpoints/federation/instances.ts index 239756af533ee4d82956e16014de3e44bba5f0c9..29515f0eb4e8d7c38035e0f993487ca682926f6c 100644 --- a/src/server/api/endpoints/federation/instances.ts +++ b/src/server/api/endpoints/federation/instances.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; -import config from '../../../../config'; +import config from '@/config'; import define from '../../define'; import { Instances } from '../../../../models'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; export const meta = { tags: ['federation'], diff --git a/src/server/api/endpoints/federation/show-instance.ts b/src/server/api/endpoints/federation/show-instance.ts index 1a0bcdb23eb20d4ac5f83987debeb3a042bb0ca6..549d7340fb94c5a5dce2376c2ad0f6af55f32c08 100644 --- a/src/server/api/endpoints/federation/show-instance.ts +++ b/src/server/api/endpoints/federation/show-instance.ts @@ -1,8 +1,7 @@ import $ from 'cafy'; import define from '../../define'; import { Instances } from '../../../../models'; -import { toPuny } from '../../../../misc/convert-host'; -import config from '../../../../config'; +import { toPuny } from '@/misc/convert-host'; export const meta = { tags: ['federation'], diff --git a/src/server/api/endpoints/federation/users.ts b/src/server/api/endpoints/federation/users.ts index 1bd053ae8524b271bcd7705c5b414cc4ffa38bcd..77d9e2e076e814473aa595bc6363270927c40cf6 100644 --- a/src/server/api/endpoints/federation/users.ts +++ b/src/server/api/endpoints/federation/users.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Users } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/following/create.ts b/src/server/api/endpoints/following/create.ts index ca46d59c7864bdc5f405d05a4e9a8c51f894b25e..6ce71089b5a1082e50ee101a3208c446627560c9 100644 --- a/src/server/api/endpoints/following/create.ts +++ b/src/server/api/endpoints/following/create.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import * as ms from 'ms'; import create from '../../../../services/following/create'; import define from '../../define'; diff --git a/src/server/api/endpoints/following/delete.ts b/src/server/api/endpoints/following/delete.ts index d3abda92656f286ec38b13e47eaee5be20018f4b..823d85c1707480b98b206a0b850cd1e37c53a474 100644 --- a/src/server/api/endpoints/following/delete.ts +++ b/src/server/api/endpoints/following/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import * as ms from 'ms'; import deleteFollowing from '../../../../services/following/delete'; import define from '../../define'; diff --git a/src/server/api/endpoints/following/requests/accept.ts b/src/server/api/endpoints/following/requests/accept.ts index 6dd93c0d45ac1402a048499526a3aa4c74bb35c4..4a0fdb0af96935e0463ff9319688ebd7cfded7b9 100644 --- a/src/server/api/endpoints/following/requests/accept.ts +++ b/src/server/api/endpoints/following/requests/accept.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import acceptFollowRequest from '../../../../../services/following/requests/accept'; import define from '../../../define'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/following/requests/cancel.ts b/src/server/api/endpoints/following/requests/cancel.ts index ef21ee4f27fa0040a1a93b2b2650c266befbb7d6..8d4538d43e0738180ee956554f93e6ad9563a362 100644 --- a/src/server/api/endpoints/following/requests/cancel.ts +++ b/src/server/api/endpoints/following/requests/cancel.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import cancelFollowRequest from '../../../../../services/following/requests/cancel'; import define from '../../../define'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/following/requests/reject.ts b/src/server/api/endpoints/following/requests/reject.ts index d5c9a5b7e4e1950a44f36a280a0b12d02eedf5f8..8ef2c9334161dfff472eec08ec707beb005d57bc 100644 --- a/src/server/api/endpoints/following/requests/reject.ts +++ b/src/server/api/endpoints/following/requests/reject.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import rejectFollowRequest from '../../../../../services/following/requests/reject'; import define from '../../../define'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/games/reversi/games.ts b/src/server/api/endpoints/games/reversi/games.ts index fa8bf203534f3325dbbf093c127408c5608376d6..6ac150ef2c1a073964f152a36270c0aa5b3d23f1 100644 --- a/src/server/api/endpoints/games/reversi/games.ts +++ b/src/server/api/endpoints/games/reversi/games.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ReversiGames } from '../../../../../models'; import { makePaginationQuery } from '../../../common/make-pagination-query'; @@ -140,7 +140,7 @@ export default define(meta, async (ps, user) => { const query = makePaginationQuery(ReversiGames.createQueryBuilder('game'), ps.sinceId, ps.untilId) .andWhere('game.isStarted = TRUE'); - if (ps.my) { + if (ps.my && user) { query.andWhere(new Brackets(qb => { qb .where('game.user1Id = :userId', { userId: user.id }) .orWhere('game.user2Id = :userId', { userId: user.id }); diff --git a/src/server/api/endpoints/games/reversi/games/show.ts b/src/server/api/endpoints/games/reversi/games/show.ts index 75599885c9bdad64c6397923635dcf12965499a6..a6fbdbaf6d298ae68f7d56cd03520e60619c7c64 100644 --- a/src/server/api/endpoints/games/reversi/games/show.ts +++ b/src/server/api/endpoints/games/reversi/games/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import Reversi from '../../../../../../games/reversi/core'; import define from '../../../../define'; import { ApiError } from '../../../../error'; diff --git a/src/server/api/endpoints/games/reversi/games/surrender.ts b/src/server/api/endpoints/games/reversi/games/surrender.ts index 9fb436d42711ca1bb067a7616976175f662ed637..346293f11d6e1dd1d40f39d9078d15e2c3e02f2a 100644 --- a/src/server/api/endpoints/games/reversi/games/surrender.ts +++ b/src/server/api/endpoints/games/reversi/games/surrender.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { publishReversiGameStream } from '../../../../../../services/stream'; import define from '../../../../define'; import { ApiError } from '../../../../error'; diff --git a/src/server/api/endpoints/games/reversi/match.ts b/src/server/api/endpoints/games/reversi/match.ts index f1eb3aba28d17925e26f207f6bc6a6c1a7d9962c..2c4ec2ebd8a7d951a55865fd4362e9b78a39b2db 100644 --- a/src/server/api/endpoints/games/reversi/match.ts +++ b/src/server/api/endpoints/games/reversi/match.ts @@ -1,11 +1,11 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; 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 { 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'; @@ -72,7 +72,7 @@ export default define(meta, async (ps, user) => { isLlotheo: false } as Partial<ReversiGame>); - publishReversiStream(exist.parentId, 'matched', await ReversiGames.pack(game, exist.parentId)); + publishReversiStream(exist.parentId, 'matched', await ReversiGames.pack(game, { id: exist.parentId })); const other = await ReversiMatchings.count({ childId: user.id diff --git a/src/server/api/endpoints/get-online-users-count.ts b/src/server/api/endpoints/get-online-users-count.ts index 75211048860194898b89ddc4e9b47d37c9d78787..150ac9e365c71901cfca339949a6043d50c161c6 100644 --- a/src/server/api/endpoints/get-online-users-count.ts +++ b/src/server/api/endpoints/get-online-users-count.ts @@ -1,6 +1,6 @@ import define from '../define'; -import redis from '../../../db/redis'; -import config from '../../../config'; +import { redisClient } from '../../../db/redis'; +import config from '@/config'; export const meta = { tags: ['meta'], @@ -13,7 +13,7 @@ export const meta = { export default define(meta, (ps, user) => { return new Promise((res, rej) => { - redis.pubsub('numsub', config.host, (_, x) => { + redisClient.pubsub('numsub', config.host, (_, x) => { res({ count: x[1] }); diff --git a/src/server/api/endpoints/hashtags/show.ts b/src/server/api/endpoints/hashtags/show.ts index 49aa36e05acc802c183db27363e665d5d56391dd..f80ef38af09c4b089b6738194640b3d30d388e4d 100644 --- a/src/server/api/endpoints/hashtags/show.ts +++ b/src/server/api/endpoints/hashtags/show.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; import { Hashtags } from '../../../../models'; -import { normalizeForSearch } from '../../../../misc/normalize-for-search'; +import { normalizeForSearch } from '@/misc/normalize-for-search'; export const meta = { desc: { diff --git a/src/server/api/endpoints/hashtags/trend.ts b/src/server/api/endpoints/hashtags/trend.ts index 3b5dd3c0c1c28c58fc6de35447063b06ae1d593f..5341c3e5845c89ddbfc24455c07dc10dc9c49921 100644 --- a/src/server/api/endpoints/hashtags/trend.ts +++ b/src/server/api/endpoints/hashtags/trend.ts @@ -1,10 +1,10 @@ import { Brackets } from 'typeorm'; import define from '../../define'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { Notes } from '../../../../models'; import { Note } from '../../../../models/entities/note'; -import { safeForSql } from '../../../../misc/safe-for-sql'; -import { normalizeForSearch } from '../../../../misc/normalize-for-search'; +import { safeForSql } from '@/misc/safe-for-sql'; +import { normalizeForSearch } from '@/misc/normalize-for-search'; /* トレンドã«è¼‰ã‚‹ãŸã‚ã«ã¯ã€Œã€Žç›´è¿‘a分間ã®ãƒ¦ãƒ‹ãƒ¼ã‚¯æŠ•ç¨¿æ•°ãŒä»Šã‹ã‚‰a分å‰ï½žä»Šã‹ã‚‰b分å‰ã®é–“ã®ãƒ¦ãƒ‹ãƒ¼ã‚¯æŠ•ç¨¿æ•°ã®nå€ä»¥ä¸Šã€ã®ãƒãƒƒã‚·ãƒ¥ã‚¿ã‚°ã®ä¸Šä½5ä½ä»¥å†…ã«å…¥ã‚‹ã€ã“ã¨ãŒå¿…è¦ diff --git a/src/server/api/endpoints/hashtags/users.ts b/src/server/api/endpoints/hashtags/users.ts index d2f59986814613d37e669bff850916e96fe11ce7..cecbc80cd2ed5a1811c6e386c0462023f5271963 100644 --- a/src/server/api/endpoints/hashtags/users.ts +++ b/src/server/api/endpoints/hashtags/users.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; import { Users } from '../../../../models'; -import { normalizeForSearch } from '../../../../misc/normalize-for-search'; +import { normalizeForSearch } from '@/misc/normalize-for-search'; export const meta = { requireCredential: false 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 4634944ca730995371d76704feb47eccd4c0c71e..923a8b386cdda3adb5df44c7eb15371608448571 100644 --- a/src/server/api/endpoints/i/2fa/key-done.ts +++ b/src/server/api/endpoints/i/2fa/key-done.ts @@ -9,7 +9,7 @@ import { AttestationChallenges, Users } from '../../../../../models'; -import config from '../../../../../config'; +import config from '@/config'; import { procedures, hash } from '../../../2fa'; import { publishMainStream } from '../../../../../services/stream'; diff --git a/src/server/api/endpoints/i/2fa/register-key.ts b/src/server/api/endpoints/i/2fa/register-key.ts index d5cc11c7fbf1e840cb2f5d159f0889c2c95ec805..75f578fc5f662a1da05c2467ac0f670afd904807 100644 --- a/src/server/api/endpoints/i/2fa/register-key.ts +++ b/src/server/api/endpoints/i/2fa/register-key.ts @@ -4,7 +4,7 @@ import define from '../../../define'; import { UserProfiles, AttestationChallenges } from '../../../../../models'; import { promisify } from 'util'; import * as crypto from 'crypto'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { hash } from '../../../2fa'; const randomBytes = promisify(crypto.randomBytes); diff --git a/src/server/api/endpoints/i/2fa/register.ts b/src/server/api/endpoints/i/2fa/register.ts index a39b2963e9f7976f36629e56c451a458ee82213f..d40997d6ede75966cb1bc05b20dd763af3279bb8 100644 --- a/src/server/api/endpoints/i/2fa/register.ts +++ b/src/server/api/endpoints/i/2fa/register.ts @@ -2,7 +2,7 @@ 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'; import define from '../../../define'; import { UserProfiles } from '../../../../../models'; diff --git a/src/server/api/endpoints/i/favorites.ts b/src/server/api/endpoints/i/favorites.ts index 3518bd9c4d5e6f21294a9f3fd2b15de8bad02c20..b0d20e9ac9fa6c7ca00fd1880a730b5a615351fd 100644 --- a/src/server/api/endpoints/i/favorites.ts +++ b/src/server/api/endpoints/i/favorites.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { NoteFavorites } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/i/import-following.ts b/src/server/api/endpoints/i/import-following.ts index c8a539cda325499a43edb45c0cc0c6fc3fa6ea4d..03495510736b6740200503eb1d70af4b906c9c5b 100644 --- a/src/server/api/endpoints/i/import-following.ts +++ b/src/server/api/endpoints/i/import-following.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { createImportFollowingJob } from '../../../../queue'; import ms = require('ms'); diff --git a/src/server/api/endpoints/i/import-user-lists.ts b/src/server/api/endpoints/i/import-user-lists.ts index e360a5468180f7ad258ba946a3f6b8ed1647833f..f40eb2745dccf761db9234f91e1d101a7cc54d8f 100644 --- a/src/server/api/endpoints/i/import-user-lists.ts +++ b/src/server/api/endpoints/i/import-user-lists.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { createImportUserListsJob } from '../../../../queue'; import ms = require('ms'); diff --git a/src/server/api/endpoints/i/notifications.ts b/src/server/api/endpoints/i/notifications.ts index 812a4bd1dd5a4f3596850df0004a21352b43d1b6..b481fdba8fc447938f8455f2cf5c14a94aadda52 100644 --- a/src/server/api/endpoints/i/notifications.ts +++ b/src/server/api/endpoints/i/notifications.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { readNotification } from '../../common/read-notification'; import define from '../../define'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/i/page-likes.ts b/src/server/api/endpoints/i/page-likes.ts index 9a83cc1d4316d6098b00c8102a6ece79a6ff858c..cd5ec3da7066fa849c977f43a51db056aebab024 100644 --- a/src/server/api/endpoints/i/page-likes.ts +++ b/src/server/api/endpoints/i/page-likes.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { PageLikes } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/i/pages.ts b/src/server/api/endpoints/i/pages.ts index 3fc00e370ac3b7e46ccd4fcf164020f08ef74c1d..ab42ab6d3f37068631904fcf83cd3714c9ad08f5 100644 --- a/src/server/api/endpoints/i/pages.ts +++ b/src/server/api/endpoints/i/pages.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Pages } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/i/pin.ts b/src/server/api/endpoints/i/pin.ts index e13873f601ba3fed79fa844a5a5296d3336172b0..4bed566935e54ee1ae686771754743469db4a15c 100644 --- a/src/server/api/endpoints/i/pin.ts +++ b/src/server/api/endpoints/i/pin.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { addPinned } from '../../../../services/i/pin'; import define from '../../define'; import { ApiError } from '../../error'; @@ -61,7 +61,7 @@ export default define(meta, async (ps, user) => { throw e; }); - return await Users.pack(user, user, { + return await Users.pack(user.id, user, { detail: true }); }); diff --git a/src/server/api/endpoints/i/read-announcement.ts b/src/server/api/endpoints/i/read-announcement.ts index d6acb3d2e6047293e1dcb6ae119f415d1c31f157..a0c59a15d68167d109be0ddf1b8fb7f58a806668 100644 --- a/src/server/api/endpoints/i/read-announcement.ts +++ b/src/server/api/endpoints/i/read-announcement.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { AnnouncementReads, Announcements, Users } from '../../../../models'; import { publishMainStream } from '../../../../services/stream'; diff --git a/src/server/api/endpoints/i/registry/scopes.ts b/src/server/api/endpoints/i/registry/scopes.ts index 8b0e1a7fd8df0898d6215db2474fb6fa24552d54..baf3ebdeca1672317a6e96336cccde16ecd4de11 100644 --- a/src/server/api/endpoints/i/registry/scopes.ts +++ b/src/server/api/endpoints/i/registry/scopes.ts @@ -1,4 +1,3 @@ -import $ from 'cafy'; import define from '../../../define'; import { RegistryItems } from '../../../../../models'; diff --git a/src/server/api/endpoints/i/registry/set.ts b/src/server/api/endpoints/i/registry/set.ts index c732cfc8f5b7b49ee60016c7842edd24649fc271..40f636801725f182d43c8e95246530f7cb2cab12 100644 --- a/src/server/api/endpoints/i/registry/set.ts +++ b/src/server/api/endpoints/i/registry/set.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { publishMainStream } from '../../../../../services/stream'; import define from '../../../define'; import { RegistryItems } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { requireCredential: true as const, diff --git a/src/server/api/endpoints/i/revoke-token.ts b/src/server/api/endpoints/i/revoke-token.ts index ce688c5755bdf60063af57824d9925ecee67a124..d71a1bd1350ce7824788af7f8c44812b830cc69f 100644 --- a/src/server/api/endpoints/i/revoke-token.ts +++ b/src/server/api/endpoints/i/revoke-token.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; import { AccessTokens } from '../../../../models'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; export const meta = { requireCredential: true as const, diff --git a/src/server/api/endpoints/i/signin-history.ts b/src/server/api/endpoints/i/signin-history.ts index 4f7da7d343a0dcd626d660077098551f5c5627da..0395206144c8847b1b2e61e55a680b70f1b551d8 100644 --- a/src/server/api/endpoints/i/signin-history.ts +++ b/src/server/api/endpoints/i/signin-history.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Signins } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/i/unpin.ts b/src/server/api/endpoints/i/unpin.ts index 6f06e38598202420bab166e54cf9e564dff4dcd8..bb8b36a166c64a9d18149fc86015e39aa33cbc0e 100644 --- a/src/server/api/endpoints/i/unpin.ts +++ b/src/server/api/endpoints/i/unpin.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { removePinned } from '../../../../services/i/pin'; import define from '../../define'; import { ApiError } from '../../error'; @@ -47,7 +47,7 @@ export default define(meta, async (ps, user) => { throw e; }); - return await Users.pack(user, user, { + return await Users.pack(user.id, user, { detail: true }); }); diff --git a/src/server/api/endpoints/i/update-email.ts b/src/server/api/endpoints/i/update-email.ts index 730918aebeb08e437155b3227042f1e64a0444c3..cd0e989e51e20d460eb490285767e93e3cdc3846 100644 --- a/src/server/api/endpoints/i/update-email.ts +++ b/src/server/api/endpoints/i/update-email.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import { publishMainStream } from '../../../../services/stream'; import define from '../../define'; import rndstr from 'rndstr'; -import config from '../../../../config'; +import config from '@/config'; import * as ms from 'ms'; import * as bcrypt from 'bcryptjs'; import { Users, UserProfiles } from '../../../../models'; diff --git a/src/server/api/endpoints/i/update.ts b/src/server/api/endpoints/i/update.ts index 92be2e9e6d2cbd90f41a5d62ff5ef01466c643f1..0554fe76fb8ccffe99fb1adbf10976f19adbeac4 100644 --- a/src/server/api/endpoints/i/update.ts +++ b/src/server/api/endpoints/i/update.ts @@ -1,12 +1,12 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +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 define from '../../define'; import { parse, parsePlain } from '../../../../mfm/parse'; -import extractEmojis from '../../../../misc/extract-emojis'; -import extractHashtags from '../../../../misc/extract-hashtags'; +import extractEmojis from '@/misc/extract-emojis'; +import extractHashtags from '@/misc/extract-hashtags'; import * as langmap from 'langmap'; import { updateUsertags } from '../../../../services/update-hashtag'; import { ApiError } from '../../error'; @@ -14,7 +14,7 @@ import { Users, DriveFiles, UserProfiles, Pages } from '../../../../models'; import { User } from '../../../../models/entities/user'; import { UserProfile } from '../../../../models/entities/user-profile'; import { notificationTypes } from '../../../../types'; -import { normalizeForSearch } from '../../../../misc/normalize-for-search'; +import { normalizeForSearch } from '@/misc/normalize-for-search'; export const meta = { desc: { @@ -205,7 +205,8 @@ export const meta = { } }; -export default define(meta, async (ps, user, token) => { +export default define(meta, async (ps, _user, token) => { + const user = await Users.findOneOrFail(_user.id); const isSecure = token == null; const updates = {} as Partial<User>; diff --git a/src/server/api/endpoints/i/user-group-invites.ts b/src/server/api/endpoints/i/user-group-invites.ts index 4c5105fa7bd63cdc1a6a0537a6d9820518f8c23b..9bfb17ab4e7fa4ccbcded683093e5378f222010b 100644 --- a/src/server/api/endpoints/i/user-group-invites.ts +++ b/src/server/api/endpoints/i/user-group-invites.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { UserGroupInvitations } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/messaging/messages.ts b/src/server/api/endpoints/messaging/messages.ts index 479f8da8ad214a334fb7781668c328be60e65cfd..8beb7e87f059bc53eb0120e977a015dab8cf4a45 100644 --- a/src/server/api/endpoints/messaging/messages.ts +++ b/src/server/api/endpoints/messaging/messages.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; diff --git a/src/server/api/endpoints/messaging/messages/create.ts b/src/server/api/endpoints/messaging/messages/create.ts index 3d7a1f4c4a41c2133efe14127a5343c9dfef0a52..c9abb299fdb7dea1059d965de485e87b71b56a5e 100644 --- a/src/server/api/endpoints/messaging/messages/create.ts +++ b/src/server/api/endpoints/messaging/messages/create.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; diff --git a/src/server/api/endpoints/messaging/messages/delete.ts b/src/server/api/endpoints/messaging/messages/delete.ts index 2fce93e9b973366922658925efe72f7ce1db1fba..128ef0263ec2da858f5b6485662bff3d6c046b81 100644 --- a/src/server/api/endpoints/messaging/messages/delete.ts +++ b/src/server/api/endpoints/messaging/messages/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import * as ms from 'ms'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/messaging/messages/read.ts b/src/server/api/endpoints/messaging/messages/read.ts index 3a7aae1bd01eefe940372c9c3caf4ccfdb527827..c591cb28e0159af825b67e10e757ee905ed8e309 100644 --- a/src/server/api/endpoints/messaging/messages/read.ts +++ b/src/server/api/endpoints/messaging/messages/read.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { MessagingMessages } from '../../../../../models'; diff --git a/src/server/api/endpoints/meta.ts b/src/server/api/endpoints/meta.ts index c2f4190e1cb4bb99e3ba6836b00ed6c651c5ff17..2a94ae35f6c2e86c390ee02988dadbc55d6f91d4 100644 --- a/src/server/api/endpoints/meta.ts +++ b/src/server/api/endpoints/meta.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; -import config from '../../../config'; +import config from '@/config'; import define from '../define'; -import { fetchMeta } from '../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { Emojis, Users } from '../../../models'; -import { DB_MAX_NOTE_TEXT_LENGTH } from '../../../misc/hard-limits'; +import { DB_MAX_NOTE_TEXT_LENGTH } from '@/misc/hard-limits'; export const meta = { desc: { diff --git a/src/server/api/endpoints/miauth/gen-token.ts b/src/server/api/endpoints/miauth/gen-token.ts index 401ed16389eb3b902fcda2ee397f0c299a0c3e24..68ef00eb289786e05dc20a377bc95ca5d235f776 100644 --- a/src/server/api/endpoints/miauth/gen-token.ts +++ b/src/server/api/endpoints/miauth/gen-token.ts @@ -1,8 +1,8 @@ import $ from 'cafy'; import define from '../../define'; import { AccessTokens } from '../../../../models'; -import { genId } from '../../../../misc/gen-id'; -import { secureRndstr } from '../../../../misc/secure-rndstr'; +import { genId } from '@/misc/gen-id'; +import { secureRndstr } from '@/misc/secure-rndstr'; export const meta = { tags: ['auth'], diff --git a/src/server/api/endpoints/mute/create.ts b/src/server/api/endpoints/mute/create.ts index ebfc6028ed457acaec4f16ace74b5e496506df75..6c1e1e2fdd2616b375eb436cc192379fcc5b47b0 100644 --- a/src/server/api/endpoints/mute/create.ts +++ b/src/server/api/endpoints/mute/create.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { Mutings, NoteWatchings } from '../../../../models'; import { Muting } from '../../../../models/entities/muting'; import { publishUserEvent } from '../../../../services/stream'; diff --git a/src/server/api/endpoints/mute/delete.ts b/src/server/api/endpoints/mute/delete.ts index 67a59e3ae48ea8911c3517040953fcafd237d994..2a008b64c73876cf95098483f1dbb29f8caf7302 100644 --- a/src/server/api/endpoints/mute/delete.ts +++ b/src/server/api/endpoints/mute/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; diff --git a/src/server/api/endpoints/mute/list.ts b/src/server/api/endpoints/mute/list.ts index 1a8fc92159547c23b4444c5edf199c23b88eb15b..daa52b9ff5eab838880c82232d12edeb3f72725f 100644 --- a/src/server/api/endpoints/mute/list.ts +++ b/src/server/api/endpoints/mute/list.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { Mutings } from '../../../../models'; diff --git a/src/server/api/endpoints/notes.ts b/src/server/api/endpoints/notes.ts index 30e6e92fec07149ea8deca0b54e35f6681b9a778..0e892953510cf815b9c869d680b380df45e67bc7 100644 --- a/src/server/api/endpoints/notes.ts +++ b/src/server/api/endpoints/notes.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../define'; import { makePaginationQuery } from '../common/make-pagination-query'; import { Notes } from '../../../models'; diff --git a/src/server/api/endpoints/notes/children.ts b/src/server/api/endpoints/notes/children.ts index 072a25e024eae9275a6ba427b146589222b85760..bbfd0632c3d4f51f4bb10b66ea859adc2ad878e4 100644 --- a/src/server/api/endpoints/notes/children.ts +++ b/src/server/api/endpoints/notes/children.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { generateVisibilityQuery } from '../../common/generate-visibility-query'; diff --git a/src/server/api/endpoints/notes/clips.ts b/src/server/api/endpoints/notes/clips.ts index 432dd8a46701b2eb9feeccee85980a585adfe783..d116370b46e4e4442893b838589e90cf79cce2e7 100644 --- a/src/server/api/endpoints/notes/clips.ts +++ b/src/server/api/endpoints/notes/clips.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ClipNotes, Clips } from '../../../../models'; import { getNote } from '../../common/getters'; diff --git a/src/server/api/endpoints/notes/conversation.ts b/src/server/api/endpoints/notes/conversation.ts index 0dea309b880c53a45a5f648f71d6274b4e28d42c..95ab4ec1e0a74f38b5e9b6b6d856415e26017adb 100644 --- a/src/server/api/endpoints/notes/conversation.ts +++ b/src/server/api/endpoints/notes/conversation.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { getNote } from '../../common/getters'; diff --git a/src/server/api/endpoints/notes/create.ts b/src/server/api/endpoints/notes/create.ts index 6ca22113c7fdbb3a4778dd840abaaf6c87058d2b..29cc650b8db7ce4fc001888ea3e67a1c0d0a6d62 100644 --- a/src/server/api/endpoints/notes/create.ts +++ b/src/server/api/endpoints/notes/create.ts @@ -3,14 +3,14 @@ import * as ms from 'ms'; import { length } from 'stringz'; import create from '../../../../services/note/create'; import define from '../../define'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { ApiError } from '../../error'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { User } from '../../../../models/entities/user'; import { Users, DriveFiles, Notes, Channels } from '../../../../models'; import { DriveFile } from '../../../../models/entities/drive-file'; import { Note } from '../../../../models/entities/note'; -import { DB_MAX_NOTE_TEXT_LENGTH } from '../../../../misc/hard-limits'; +import { DB_MAX_NOTE_TEXT_LENGTH } from '@/misc/hard-limits'; import { noteVisibilities } from '../../../../types'; import { Channel } from '../../../../models/entities/channel'; diff --git a/src/server/api/endpoints/notes/delete.ts b/src/server/api/endpoints/notes/delete.ts index 5afd911ca9020ddf7cffc29da5268376564a8d2f..154cff0741eef1764a0a36749ac131138d825eb6 100644 --- a/src/server/api/endpoints/notes/delete.ts +++ b/src/server/api/endpoints/notes/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import deleteNote from '../../../../services/note/delete'; import define from '../../define'; import * as ms from 'ms'; diff --git a/src/server/api/endpoints/notes/favorites/create.ts b/src/server/api/endpoints/notes/favorites/create.ts index d66ce37a46d2f5a722e5624a8cfae227e295efa2..846c80a8d65d859c9b325e46ed8c13e8ec6072b3 100644 --- a/src/server/api/endpoints/notes/favorites/create.ts +++ b/src/server/api/endpoints/notes/favorites/create.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getNote } from '../../../common/getters'; import { NoteFavorites } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/notes/favorites/delete.ts b/src/server/api/endpoints/notes/favorites/delete.ts index 1b36b7d68cbaee894bf3044bc38b4b847675f8af..2be4f6408e284e5060bc009741e6e8a6643bcdad 100644 --- a/src/server/api/endpoints/notes/favorites/delete.ts +++ b/src/server/api/endpoints/notes/favorites/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getNote } from '../../../common/getters'; diff --git a/src/server/api/endpoints/notes/global-timeline.ts b/src/server/api/endpoints/notes/global-timeline.ts index 64fc3cbf6cce37abe0f46f4e9c3b18b53b81eb0a..1e1df4040df22b35f9362a48b2c793f3da547d57 100644 --- a/src/server/api/endpoints/notes/global-timeline.ts +++ b/src/server/api/endpoints/notes/global-timeline.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { ApiError } from '../../error'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { Notes } from '../../../../models'; diff --git a/src/server/api/endpoints/notes/hybrid-timeline.ts b/src/server/api/endpoints/notes/hybrid-timeline.ts index 19c4593f5be07b512299f7a67e030bd290065b94..ac44e747dc6c451327e015c94b6135d2b6d9d277 100644 --- a/src/server/api/endpoints/notes/hybrid-timeline.ts +++ b/src/server/api/endpoints/notes/hybrid-timeline.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { ApiError } from '../../error'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { Followings, Notes } from '../../../../models'; diff --git a/src/server/api/endpoints/notes/local-timeline.ts b/src/server/api/endpoints/notes/local-timeline.ts index 546d3619f7f6a65d1132a61bcdce897649464329..113078a988e0f0d2fb3375ac01ed4b5acff446f4 100644 --- a/src/server/api/endpoints/notes/local-timeline.ts +++ b/src/server/api/endpoints/notes/local-timeline.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { ApiError } from '../../error'; import { Notes } from '../../../../models'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; diff --git a/src/server/api/endpoints/notes/mentions.ts b/src/server/api/endpoints/notes/mentions.ts index 30368ea578e23f1e5addcc6b5c3caa6ae62bb4a9..34936c9b54ffd9444c4db605cfd5eebf477c7174 100644 --- a/src/server/api/endpoints/notes/mentions.ts +++ b/src/server/api/endpoints/notes/mentions.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import read from '../../../../services/note/read'; import { Notes, Followings } from '../../../../models'; @@ -83,7 +83,7 @@ export default define(meta, async (ps, user) => { const mentions = await query.take(ps.limit!).getMany(); - read(user.id, mentions.map(note => note.id)); + read(user.id, mentions); return await Notes.packMany(mentions, user); }); diff --git a/src/server/api/endpoints/notes/polls/vote.ts b/src/server/api/endpoints/notes/polls/vote.ts index 6113d7ea9acf325ec2dc50d7efd0d3139681da47..51dcec89c789214e509c790dfc6a2cd8dcee85e6 100644 --- a/src/server/api/endpoints/notes/polls/vote.ts +++ b/src/server/api/endpoints/notes/polls/vote.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { publishNoteStream } from '../../../../../services/stream'; import { createNotification } from '../../../../../services/create-notification'; import define from '../../../define'; @@ -12,7 +12,7 @@ import { deliverQuestionUpdate } from '../../../../../services/note/polls/update import { PollVotes, NoteWatchings, Users, Polls } from '../../../../../models'; import { Not } from 'typeorm'; import { IRemoteUser } from '../../../../../models/entities/user'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/notes/reactions.ts b/src/server/api/endpoints/notes/reactions.ts index 2621e2a12fa74fc4158ed5ead98ed7a6f9e11aeb..3c60fa2e8e27c347b24f83a22dd0159b92d5e3b4 100644 --- a/src/server/api/endpoints/notes/reactions.ts +++ b/src/server/api/endpoints/notes/reactions.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { getNote } from '../../common/getters'; import { ApiError } from '../../error'; diff --git a/src/server/api/endpoints/notes/reactions/create.ts b/src/server/api/endpoints/notes/reactions/create.ts index 9017d9f36f1ca390f13c741ae8010f1d46190c6b..17a6f391d4967f1e83c7440d8fc5ea18fe99b897 100644 --- a/src/server/api/endpoints/notes/reactions/create.ts +++ b/src/server/api/endpoints/notes/reactions/create.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import createReaction from '../../../../../services/note/reaction/create'; import define from '../../../define'; import { getNote } from '../../../common/getters'; diff --git a/src/server/api/endpoints/notes/reactions/delete.ts b/src/server/api/endpoints/notes/reactions/delete.ts index 267d8417c2528d6a06437158d4369284493662fa..b95c7f891b35ebe29fbd5f906c65f56a12c3d71a 100644 --- a/src/server/api/endpoints/notes/reactions/delete.ts +++ b/src/server/api/endpoints/notes/reactions/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import * as ms from 'ms'; import deleteReaction from '../../../../../services/note/reaction/delete'; diff --git a/src/server/api/endpoints/notes/renotes.ts b/src/server/api/endpoints/notes/renotes.ts index dcda213918b846ada1178194f0753ef64e78443b..d26192d10a3e0a2c1cc6bcaa16a37b368dca385a 100644 --- a/src/server/api/endpoints/notes/renotes.ts +++ b/src/server/api/endpoints/notes/renotes.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { getNote } from '../../common/getters'; import { ApiError } from '../../error'; diff --git a/src/server/api/endpoints/notes/replies.ts b/src/server/api/endpoints/notes/replies.ts index 6f33e2f23327ede35e05817df05fac11013899fa..e91a1cf0bf62203af473014850e091683aaad10f 100644 --- a/src/server/api/endpoints/notes/replies.ts +++ b/src/server/api/endpoints/notes/replies.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Notes } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/notes/search-by-tag.ts b/src/server/api/endpoints/notes/search-by-tag.ts index 47b41d9294a45ac46f9804ff7098a03e161031fc..61f62dd5a6f1b02a3847331240f40107884d5725 100644 --- a/src/server/api/endpoints/notes/search-by-tag.ts +++ b/src/server/api/endpoints/notes/search-by-tag.ts @@ -1,13 +1,13 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { Notes } from '../../../../models'; import { generateMutedUserQuery } from '../../common/generate-muted-user-query'; import { generateVisibilityQuery } from '../../common/generate-visibility-query'; import { Brackets } from 'typeorm'; -import { safeForSql } from '../../../../misc/safe-for-sql'; -import { normalizeForSearch } from '../../../../misc/normalize-for-search'; +import { safeForSql } from '@/misc/safe-for-sql'; +import { normalizeForSearch } from '@/misc/normalize-for-search'; export const meta = { desc: { diff --git a/src/server/api/endpoints/notes/search.ts b/src/server/api/endpoints/notes/search.ts index 230d2b02945f29714b4afef79a62ebd51f24c4ae..e3454be9d344d25704b5a884e3d456cf69dacc6f 100644 --- a/src/server/api/endpoints/notes/search.ts +++ b/src/server/api/endpoints/notes/search.ts @@ -3,8 +3,8 @@ import es from '../../../../db/elasticsearch'; import define from '../../define'; import { Notes } from '../../../../models'; import { In } from 'typeorm'; -import { ID } from '../../../../misc/cafy-id'; -import config from '../../../../config'; +import { ID } from '@/misc/cafy-id'; +import config from '@/config'; 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 984b5c726aee29af175543d6965d019ef44994fc..e592076a2e010461cf90499bf3a2584faa0a3f69 100644 --- a/src/server/api/endpoints/notes/show.ts +++ b/src/server/api/endpoints/notes/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { getNote } from '../../common/getters'; import { ApiError } from '../../error'; diff --git a/src/server/api/endpoints/notes/state.ts b/src/server/api/endpoints/notes/state.ts index b8b17820eefb12e5fb0dc6fcc9b830315452b551..60151f7e3226491d2f32c8f7e5fb3bea11d313bd 100644 --- a/src/server/api/endpoints/notes/state.ts +++ b/src/server/api/endpoints/notes/state.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { NoteFavorites, NoteWatchings } from '../../../../models'; diff --git a/src/server/api/endpoints/notes/timeline.ts b/src/server/api/endpoints/notes/timeline.ts index d025944cc2c1210d1de1f4aaf016b36e72b2e225..0871a9688266c2de978c0fbee984188ae3f59638 100644 --- a/src/server/api/endpoints/notes/timeline.ts +++ b/src/server/api/endpoints/notes/timeline.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { makePaginationQuery } from '../../common/make-pagination-query'; import { Notes, Followings } from '../../../../models'; diff --git a/src/server/api/endpoints/notes/unrenote.ts b/src/server/api/endpoints/notes/unrenote.ts index af558a9897edb96924dcc6b49e5521dad4c1a77c..0233b9db128d34bbd9a5d38c9070b7fe1a7de3a5 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 { ID } from '@/misc/cafy-id'; 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 } from '../../../../models'; +import { Notes, Users } from '../../../../models'; export const meta = { desc: { @@ -55,6 +55,6 @@ export default define(meta, async (ps, user) => { }); for (const note of renotes) { - deleteNote(user, note); + deleteNote(await Users.findOneOrFail(user.id), note); } }); diff --git a/src/server/api/endpoints/notes/user-list-timeline.ts b/src/server/api/endpoints/notes/user-list-timeline.ts index 9ffb38bddc00e60ba3ae1e735559b316b934fd30..cb3c18505d4e46a03924200ba87f6606695ca387 100644 --- a/src/server/api/endpoints/notes/user-list-timeline.ts +++ b/src/server/api/endpoints/notes/user-list-timeline.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { UserLists, UserListJoinings, Notes } from '../../../../models'; diff --git a/src/server/api/endpoints/notes/watching/create.ts b/src/server/api/endpoints/notes/watching/create.ts index b2a758fc74dc47394cc54458dbece8e6da750406..7667ebdedd3e2d17b687ce35eee0d9a2d75a86bc 100644 --- a/src/server/api/endpoints/notes/watching/create.ts +++ b/src/server/api/endpoints/notes/watching/create.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import watch from '../../../../../services/note/watch'; import { getNote } from '../../../common/getters'; diff --git a/src/server/api/endpoints/notes/watching/delete.ts b/src/server/api/endpoints/notes/watching/delete.ts index 75b4f2355fdad7617781258bc6e5a2051210c2f7..77b4ff15c87d94b58510f602e26f506dc01cff4f 100644 --- a/src/server/api/endpoints/notes/watching/delete.ts +++ b/src/server/api/endpoints/notes/watching/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import unwatch from '../../../../../services/note/unwatch'; import { getNote } from '../../../common/getters'; diff --git a/src/server/api/endpoints/page-push.ts b/src/server/api/endpoints/page-push.ts index 3b19e1e192522f82b475c3e3b5962773f0e16e7e..9ec9f9184cf0bd2d96e7589f4e342151e058ad13 100644 --- a/src/server/api/endpoints/page-push.ts +++ b/src/server/api/endpoints/page-push.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../define'; -import { ID } from '../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { publishMainStream } from '../../../services/stream'; import { Users, Pages } from '../../../models'; import { ApiError } from '../error'; @@ -43,7 +43,7 @@ export default define(meta, async (ps, user) => { event: ps.event, var: ps.var, userId: user.id, - user: await Users.pack(user, page.userId, { + user: await Users.pack(user.id, { id: page.userId }, { detail: true }) }); diff --git a/src/server/api/endpoints/pages/create.ts b/src/server/api/endpoints/pages/create.ts index 6d41a4afeb561b3256e12b1551cc6aea288595a0..413445512337871fc1540689e24aadfe6d1a808a 100644 --- a/src/server/api/endpoints/pages/create.ts +++ b/src/server/api/endpoints/pages/create.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; import * as ms from 'ms'; import define from '../../define'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Pages, DriveFiles } from '../../../../models'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { Page } from '../../../../models/entities/page'; import { ApiError } from '../../error'; diff --git a/src/server/api/endpoints/pages/delete.ts b/src/server/api/endpoints/pages/delete.ts index 99849ab5fe34b6c02d941a6d39a4346cae05c9df..51704c866e82176cb242234acd994eb87a77332c 100644 --- a/src/server/api/endpoints/pages/delete.ts +++ b/src/server/api/endpoints/pages/delete.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; import { Pages } from '../../../../models'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/pages/like.ts b/src/server/api/endpoints/pages/like.ts index 3fc2b6ca2325699011cf06443ece27d857bb39d1..e6c15164c0f1fb85cae16a03a49caf23ec7be191 100644 --- a/src/server/api/endpoints/pages/like.ts +++ b/src/server/api/endpoints/pages/like.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Pages, PageLikes } from '../../../../models'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/pages/show.ts b/src/server/api/endpoints/pages/show.ts index c8e5ad1d9bd29e62aa887fa6f729ac18a169eaab..13fa9ba1d0383832c37089b4f0151acedaaebeb6 100644 --- a/src/server/api/endpoints/pages/show.ts +++ b/src/server/api/endpoints/pages/show.ts @@ -2,7 +2,7 @@ import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; import { Pages, Users } from '../../../../models'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Page } from '../../../../models/entities/page'; export const meta = { diff --git a/src/server/api/endpoints/pages/unlike.ts b/src/server/api/endpoints/pages/unlike.ts index 865df91c3e97e924b832ec4ff24db1f36828e386..2008dd8bef2ae01fcf8f6ae799a7a81093c99098 100644 --- a/src/server/api/endpoints/pages/unlike.ts +++ b/src/server/api/endpoints/pages/unlike.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Pages, PageLikes } from '../../../../models'; diff --git a/src/server/api/endpoints/pages/update.ts b/src/server/api/endpoints/pages/update.ts index 2d93dd4ae4be593fd7c55282bbadc02079eeb5cb..d52d5964cbc696f1b39c951a3f0cc55ed7b35c0e 100644 --- a/src/server/api/endpoints/pages/update.ts +++ b/src/server/api/endpoints/pages/update.ts @@ -3,7 +3,7 @@ import * as ms from 'ms'; import define from '../../define'; import { ApiError } from '../../error'; import { Pages, DriveFiles } from '../../../../models'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Not } from 'typeorm'; export const meta = { diff --git a/src/server/api/endpoints/pinned-users.ts b/src/server/api/endpoints/pinned-users.ts index a129a56d87e27b7172f2b6376f249e53849c0da4..ae165ab46dcbb3cea863249fd6d89f019416ce7a 100644 --- a/src/server/api/endpoints/pinned-users.ts +++ b/src/server/api/endpoints/pinned-users.ts @@ -1,7 +1,7 @@ import define from '../define'; import { Users } from '../../../models'; -import { fetchMeta } from '../../../misc/fetch-meta'; -import parseAcct from '../../../misc/acct/parse'; +import { fetchMeta } from '@/misc/fetch-meta'; +import parseAcct from '@/misc/acct/parse'; import { User } from '../../../models/entities/user'; export const meta = { diff --git a/src/server/api/endpoints/promo/read.ts b/src/server/api/endpoints/promo/read.ts index 63c90e5d7f7ff4fe88f82d22d07889997c8363e8..325a96e57212e2237d70807638f3e7994a94df27 100644 --- a/src/server/api/endpoints/promo/read.ts +++ b/src/server/api/endpoints/promo/read.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { getNote } from '../../common/getters'; import { PromoReads } from '../../../../models'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/room/show.ts b/src/server/api/endpoints/room/show.ts index a12d9b8f2670a5439f7dc049a3c7f66d07578362..13f9df19acf0ce84591ca2290322402e1b11b630 100644 --- a/src/server/api/endpoints/room/show.ts +++ b/src/server/api/endpoints/room/show.ts @@ -2,8 +2,8 @@ import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; import { Users, UserProfiles } from '../../../../models'; -import { ID } from '../../../../misc/cafy-id'; -import { toPunyNullable } from '../../../../misc/convert-host'; +import { ID } from '@/misc/cafy-id'; +import { toPunyNullable } from '@/misc/convert-host'; export const meta = { desc: { diff --git a/src/server/api/endpoints/sw/register.ts b/src/server/api/endpoints/sw/register.ts index 9fc70b56094625dc0ba172f180dea7790b8e57af..43d4118df67fadb722bf680b8f1c02fdf47976db 100644 --- a/src/server/api/endpoints/sw/register.ts +++ b/src/server/api/endpoints/sw/register.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; -import { fetchMeta } from '../../../../misc/fetch-meta'; -import { genId } from '../../../../misc/gen-id'; +import { fetchMeta } from '@/misc/fetch-meta'; +import { genId } from '@/misc/gen-id'; import { SwSubscriptions } from '../../../../models'; export const meta = { diff --git a/src/server/api/endpoints/users/clips.ts b/src/server/api/endpoints/users/clips.ts index 72aae7252c364d79fa76e59bf10783f0fc4047a4..12aa964034ef3ea8efa2db2c6b8d3c55c2d63cc1 100644 --- a/src/server/api/endpoints/users/clips.ts +++ b/src/server/api/endpoints/users/clips.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Clips } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/users/followers.ts b/src/server/api/endpoints/users/followers.ts index fb83d7beb88c35ecfd9a36e4d7737013f731bb64..da8a1ea1b255b0c978cee7ab28b9aa233efbbb7f 100644 --- a/src/server/api/endpoints/users/followers.ts +++ b/src/server/api/endpoints/users/followers.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Users, Followings } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; -import { toPunyNullable } from '../../../../misc/convert-host'; +import { toPunyNullable } from '@/misc/convert-host'; export const meta = { desc: { diff --git a/src/server/api/endpoints/users/following.ts b/src/server/api/endpoints/users/following.ts index d5e8dc1f920111c3faa58b3ece9e5482deca2060..832a51d29741a9f867d2462a2a63be7b90b9e144 100644 --- a/src/server/api/endpoints/users/following.ts +++ b/src/server/api/endpoints/users/following.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { Users, Followings } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; -import { toPunyNullable } from '../../../../misc/convert-host'; +import { toPunyNullable } from '@/misc/convert-host'; export const meta = { desc: { 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 d0650a172deff9483a5a62e24efa37d7e4a5ef5d..98b8a49fda4691b4c86d17aefb21e5c9cdde19ef 100644 --- a/src/server/api/endpoints/users/get-frequently-replied-users.ts +++ b/src/server/api/endpoints/users/get-frequently-replied-users.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { maximum } from '../../../../prelude/array'; import { ApiError } from '../../error'; diff --git a/src/server/api/endpoints/users/groups/create.ts b/src/server/api/endpoints/users/groups/create.ts index 78d27148743775bf3203d2915c2697bff711af3a..0966ef7819a49d2552d467a64a33f13e82b93466 100644 --- a/src/server/api/endpoints/users/groups/create.ts +++ b/src/server/api/endpoints/users/groups/create.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; import { UserGroups, UserGroupJoinings } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { UserGroup } from '../../../../../models/entities/user-group'; import { UserGroupJoining } from '../../../../../models/entities/user-group-joining'; @@ -31,12 +31,12 @@ export const meta = { }; export default define(meta, async (ps, user) => { - const userGroup = await UserGroups.save({ + const userGroup = await UserGroups.insert({ id: genId(), createdAt: new Date(), userId: user.id, name: ps.name, - } as UserGroup); + } as UserGroup).then(x => UserGroups.findOneOrFail(x.identifiers[0])); // Push the owner await UserGroupJoinings.insert({ diff --git a/src/server/api/endpoints/users/groups/delete.ts b/src/server/api/endpoints/users/groups/delete.ts index 71b882516925ffcc1296d8d9f0abeac0330eb1b5..85e2e73325f74deaa0a3b5713cccfd65970693f7 100644 --- a/src/server/api/endpoints/users/groups/delete.ts +++ b/src/server/api/endpoints/users/groups/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { UserGroups } from '../../../../../models'; diff --git a/src/server/api/endpoints/users/groups/invitations/accept.ts b/src/server/api/endpoints/users/groups/invitations/accept.ts index 2fa22bcf7e3758c232ac69c0aa6e4209d1541c8b..d6d419826eb3592309f3ac7dba7d09331243e400 100644 --- a/src/server/api/endpoints/users/groups/invitations/accept.ts +++ b/src/server/api/endpoints/users/groups/invitations/accept.ts @@ -1,9 +1,9 @@ import $ from 'cafy'; -import { ID } from '../../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../../define'; import { ApiError } from '../../../../error'; import { UserGroupJoinings, UserGroupInvitations } from '../../../../../../models'; -import { genId } from '../../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { UserGroupJoining } from '../../../../../../models/entities/user-group-joining'; export const meta = { diff --git a/src/server/api/endpoints/users/groups/invitations/reject.ts b/src/server/api/endpoints/users/groups/invitations/reject.ts index 42803d37c75816cf33097bec55f699b3a6c503da..98dc7bfbdf497a4b4c3aed6a437acb2b8f487194 100644 --- a/src/server/api/endpoints/users/groups/invitations/reject.ts +++ b/src/server/api/endpoints/users/groups/invitations/reject.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../../define'; import { ApiError } from '../../../../error'; import { UserGroupInvitations } from '../../../../../../models'; diff --git a/src/server/api/endpoints/users/groups/invite.ts b/src/server/api/endpoints/users/groups/invite.ts index a0f5091b076f6a13c996b3831c09b37f625f25db..00d4932f550bf5d36882eeb126a4e729e2732ea0 100644 --- a/src/server/api/endpoints/users/groups/invite.ts +++ b/src/server/api/endpoints/users/groups/invite.ts @@ -1,10 +1,10 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +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 { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { UserGroupInvitation } from '../../../../../models/entities/user-group-invitation'; import { createNotification } from '../../../../../services/create-notification'; @@ -96,12 +96,12 @@ export default define(meta, async (ps, me) => { throw new ApiError(meta.errors.alreadyInvited); } - const invitation = await UserGroupInvitations.save({ + const invitation = await UserGroupInvitations.insert({ id: genId(), createdAt: new Date(), userId: user.id, userGroupId: userGroup.id - } as UserGroupInvitation); + } as UserGroupInvitation).then(x => UserGroupInvitations.findOneOrFail(x.identifiers[0])); // é€šçŸ¥ã‚’ä½œæˆ createNotification(user.id, 'groupInvited', { diff --git a/src/server/api/endpoints/users/groups/pull.ts b/src/server/api/endpoints/users/groups/pull.ts index f4af884dd153c89337c0c4d379d454230fdb011d..82d45e31ad80d29593189df12a7849cd8e24ccbc 100644 --- a/src/server/api/endpoints/users/groups/pull.ts +++ b/src/server/api/endpoints/users/groups/pull.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; diff --git a/src/server/api/endpoints/users/groups/show.ts b/src/server/api/endpoints/users/groups/show.ts index 13f171f61416919fd192ece37920c1f5c8e6bfa7..c174a7973c923329d1f30c5cf7901db263969d8d 100644 --- a/src/server/api/endpoints/users/groups/show.ts +++ b/src/server/api/endpoints/users/groups/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { UserGroups, UserGroupJoinings } from '../../../../../models'; diff --git a/src/server/api/endpoints/users/groups/transfer.ts b/src/server/api/endpoints/users/groups/transfer.ts index 03f5f39279daa286ef57a168c702b674a2aa1075..08aa1b7357e0af9b96f5d227ade2ce601fdb9c5b 100644 --- a/src/server/api/endpoints/users/groups/transfer.ts +++ b/src/server/api/endpoints/users/groups/transfer.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; diff --git a/src/server/api/endpoints/users/groups/update.ts b/src/server/api/endpoints/users/groups/update.ts index 805b2de6a8dafb4915ffef5f97ea4944207553b2..8dc5a7f1b97dd370eb9f616399314575cdb71b9f 100644 --- a/src/server/api/endpoints/users/groups/update.ts +++ b/src/server/api/endpoints/users/groups/update.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { UserGroups } from '../../../../../models'; diff --git a/src/server/api/endpoints/users/lists/create.ts b/src/server/api/endpoints/users/lists/create.ts index d02696aed418e7aad74c884e97a7effac19feef0..9891a6dae0772104386d7012ebac780e89b6b9cb 100644 --- a/src/server/api/endpoints/users/lists/create.ts +++ b/src/server/api/endpoints/users/lists/create.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../../define'; import { UserLists } from '../../../../../models'; -import { genId } from '../../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { UserList } from '../../../../../models/entities/user-list'; export const meta = { @@ -30,12 +30,12 @@ export const meta = { }; export default define(meta, async (ps, user) => { - const userList = await UserLists.save({ + const userList = await UserLists.insert({ id: genId(), createdAt: new Date(), userId: user.id, name: ps.name, - } as UserList); + } as UserList).then(x => UserLists.findOneOrFail(x.identifiers[0])); return await UserLists.pack(userList); }); diff --git a/src/server/api/endpoints/users/lists/delete.ts b/src/server/api/endpoints/users/lists/delete.ts index 930af1827f152398a396d1e5eef76c3f0ffa857d..d3132025c5fe353de1df7a762ce51af96bbb3109 100644 --- a/src/server/api/endpoints/users/lists/delete.ts +++ b/src/server/api/endpoints/users/lists/delete.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { UserLists } from '../../../../../models'; diff --git a/src/server/api/endpoints/users/lists/pull.ts b/src/server/api/endpoints/users/lists/pull.ts index 1a5be2afc4b5e93c687639c5cfc6f049d113dd57..ddf5864a39846df63a5443851dc3d11266e0f763 100644 --- a/src/server/api/endpoints/users/lists/pull.ts +++ b/src/server/api/endpoints/users/lists/pull.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { publishUserListStream } from '../../../../../services/stream'; import define from '../../../define'; import { ApiError } from '../../../error'; diff --git a/src/server/api/endpoints/users/lists/push.ts b/src/server/api/endpoints/users/lists/push.ts index fd76cb8159840c24b70b8ca5f113a648923fdc5f..c94c759d0c3ca9d93c348ecff496a116fcba9c6c 100644 --- a/src/server/api/endpoints/users/lists/push.ts +++ b/src/server/api/endpoints/users/lists/push.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { getUser } from '../../../common/getters'; diff --git a/src/server/api/endpoints/users/lists/show.ts b/src/server/api/endpoints/users/lists/show.ts index 5d80a8f472163eadeaed706026a4093345ed6bde..aee1c13dee8db846eed12062fc30e4b53bb8c8cf 100644 --- a/src/server/api/endpoints/users/lists/show.ts +++ b/src/server/api/endpoints/users/lists/show.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { UserLists } from '../../../../../models'; diff --git a/src/server/api/endpoints/users/lists/update.ts b/src/server/api/endpoints/users/lists/update.ts index 3ced871ae83a8be8537da2c1bf12d365f22706ef..342791e5f3bc8eca9f340c4659a28831b6bf935d 100644 --- a/src/server/api/endpoints/users/lists/update.ts +++ b/src/server/api/endpoints/users/lists/update.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../../define'; import { ApiError } from '../../../error'; import { UserLists } from '../../../../../models'; diff --git a/src/server/api/endpoints/users/notes.ts b/src/server/api/endpoints/users/notes.ts index fc5998c378b3376f92b93dd45690a048b1b357e4..b886756c025b0a254611969ef0be60f7de2c491f 100644 --- a/src/server/api/endpoints/users/notes.ts +++ b/src/server/api/endpoints/users/notes.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; diff --git a/src/server/api/endpoints/users/pages.ts b/src/server/api/endpoints/users/pages.ts index 706a2e115b0ea5272aa87401273a7f6f1506701a..b9f37f32109645f84ceb92660b9379c4d781bcd0 100644 --- a/src/server/api/endpoints/users/pages.ts +++ b/src/server/api/endpoints/users/pages.ts @@ -1,5 +1,5 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { Pages } from '../../../../models'; import { makePaginationQuery } from '../../common/make-pagination-query'; diff --git a/src/server/api/endpoints/users/relation.ts b/src/server/api/endpoints/users/relation.ts index 1beb925398446b0f87d10c721337db1e204f5709..fc294eb64dc2a4bdf340c74ffa698ac4889afab7 100644 --- a/src/server/api/endpoints/users/relation.ts +++ b/src/server/api/endpoints/users/relation.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; import define from '../../define'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { Users } from '../../../../models'; export const meta = { diff --git a/src/server/api/endpoints/users/report-abuse.ts b/src/server/api/endpoints/users/report-abuse.ts index eaa4cd62587d90102272ad4e9713c7e9ffe429d4..671eca02986a326967152fe129356f3b8d18b156 100644 --- a/src/server/api/endpoints/users/report-abuse.ts +++ b/src/server/api/endpoints/users/report-abuse.ts @@ -1,11 +1,11 @@ import $ from 'cafy'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import define from '../../define'; import { publishAdminStream } from '../../../../services/stream'; import { ApiError } from '../../error'; import { getUser } from '../../common/getters'; import { AbuseUserReports, Users } from '../../../../models'; -import { genId } from '../../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export const meta = { desc: { diff --git a/src/server/api/endpoints/users/show.ts b/src/server/api/endpoints/users/show.ts index 9e0771a55a4a693d64ff4ac303523b9daaa0f394..11d36d2ae98a8801364562308c34474adbac5f07 100644 --- a/src/server/api/endpoints/users/show.ts +++ b/src/server/api/endpoints/users/show.ts @@ -3,9 +3,10 @@ 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 { ID } from '@/misc/cafy-id'; import { Users } from '../../../../models'; import { In } from 'typeorm'; +import { User } from '@/models/entities/user'; export const meta = { desc: { @@ -81,9 +82,9 @@ export default define(meta, async (ps, me) => { }); // リクエストã•ã‚ŒãŸé€šã‚Šã«ä¸¦ã¹æ›¿ãˆ - const _users = []; + const _users: User[] = []; for (const id of ps.userIds) { - _users.push(users.find(x => x.id === id)); + _users.push(users.find(x => x.id === id)!); } return await Promise.all(_users.map(u => Users.pack(u, me, { diff --git a/src/server/api/endpoints/users/stats.ts b/src/server/api/endpoints/users/stats.ts index 50730e7cd0ae16735bfd7ad1b078c0be03c55542..6763c1774e0350fc3a84017915274fac107d6026 100644 --- a/src/server/api/endpoints/users/stats.ts +++ b/src/server/api/endpoints/users/stats.ts @@ -1,7 +1,7 @@ import $ from 'cafy'; import define from '../../define'; import { ApiError } from '../../error'; -import { ID } from '../../../../misc/cafy-id'; +import { ID } from '@/misc/cafy-id'; import { DriveFiles, Followings, NoteFavorites, NoteReactions, Notes, PageLikes, PollVotes, ReversiGames, Users } from '../../../../models'; export const meta = { diff --git a/src/server/api/limiter.ts b/src/server/api/limiter.ts index 48d12d3cc60397164eaf695487b8974c93e609b7..1e8715a7c45ab9ffce7420409057e28d8e692197 100644 --- a/src/server/api/limiter.ts +++ b/src/server/api/limiter.ts @@ -1,13 +1,13 @@ import * as Limiter from 'ratelimiter'; -import limiterDB from '../../db/redis'; +import { redisClient } from '../../db/redis'; import { IEndpoint } from './endpoints'; -import getAcct from '../../misc/acct/render'; +import getAcct from '@/misc/acct/render'; import { User } from '../../models/entities/user'; import Logger from '../../services/logger'; const logger = new Logger('limiter'); -export default (endpoint: IEndpoint, user: User) => new Promise((ok, reject) => { +export default (endpoint: IEndpoint, user: User) => new Promise<void>((ok, reject) => { const limitation = endpoint.meta.limit!; const key = limitation.hasOwnProperty('key') @@ -35,7 +35,7 @@ export default (endpoint: IEndpoint, user: User) => new Promise((ok, reject) => id: `${user.id}:${key}:min`, duration: limitation.minInterval, max: 1, - db: limiterDB! + db: redisClient }); minIntervalLimiter.get((err, info) => { @@ -63,7 +63,7 @@ export default (endpoint: IEndpoint, user: User) => new Promise((ok, reject) => id: `${user.id}:${key}`, duration: limitation.duration, max: limitation.max, - db: limiterDB! + db: redisClient }); limiter.get((err, info) => { diff --git a/src/server/api/openapi/description.ts b/src/server/api/openapi/description.ts index e0527dd1aead81d2858ec333e522fa7c633c51fa..6306920b7ad5359e44624b9f28f2449e80f28b0f 100644 --- a/src/server/api/openapi/description.ts +++ b/src/server/api/openapi/description.ts @@ -1,6 +1,6 @@ import endpoints from '../endpoints'; import * as locale from '../../../../locales/'; -import { kinds as kindsList } from '../../../misc/api-permissions'; +import { kinds as kindsList } from '@/misc/api-permissions'; export interface IKindInfo { endpoints: string[]; diff --git a/src/server/api/openapi/gen-spec.ts b/src/server/api/openapi/gen-spec.ts index 5185696675d293ec2a57b648c5e9f37753c62db4..221e0a32df63c94b5e070b06a8a8afd2707969db 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'; 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 99107c986e86bf815b6fbd032dc9cbecf1fff9a7..78aae3b99927a14f5a954ab5d477bf0e74af8e80 100644 --- a/src/server/api/openapi/schemas.ts +++ b/src/server/api/openapi/schemas.ts @@ -1,5 +1,5 @@ import { packedUserSchema } from '../../../models/repositories/user'; -import { Schema } from '../../../misc/schema'; +import { Schema } from '@/misc/schema'; import { packedNoteSchema } from '../../../models/repositories/note'; import { packedUserListSchema } from '../../../models/repositories/user-list'; import { packedAppSchema } from '../../../models/repositories/app'; diff --git a/src/server/api/private/signin.ts b/src/server/api/private/signin.ts index d8f2e6d5168414c0eb367625f5316f8c70591c3e..0a17b0bd02820d92c5ef4286460ac964478799d2 100644 --- a/src/server/api/private/signin.ts +++ b/src/server/api/private/signin.ts @@ -2,10 +2,10 @@ 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 config from '@/config'; import { Users, Signins, UserProfiles, UserSecurityKeys, AttestationChallenges } from '../../../models'; import { ILocalUser } from '../../../models/entities/user'; -import { genId } from '../../../misc/gen-id'; +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 3d467a0e687504ada3a52c24bcf1092269fb4583..f0cf75797a980d1e5d6bb233cc4025659b973237 100644 --- a/src/server/api/private/signup.ts +++ b/src/server/api/private/signup.ts @@ -1,6 +1,6 @@ import * as Koa from 'koa'; -import { fetchMeta } from '../../../misc/fetch-meta'; -import { verifyHcaptcha, verifyRecaptcha } from '../../../misc/captcha'; +import { fetchMeta } from '@/misc/fetch-meta'; +import { verifyHcaptcha, verifyRecaptcha } from '@/misc/captcha'; import { Users, RegistrationTickets } from '../../../models'; import { signup } from '../common/signup'; diff --git a/src/server/api/service/discord.ts b/src/server/api/service/discord.ts index fce840cde5e3e7ac3d694947bd622c59bdce5940..a684e71fc60f77b994446792595e9f68008500cf 100644 --- a/src/server/api/service/discord.ts +++ b/src/server/api/service/discord.ts @@ -1,13 +1,13 @@ import * as Koa from 'koa'; import * as Router from '@koa/router'; -import { getJson } from '../../../misc/fetch'; +import { getJson } from '@/misc/fetch'; import { OAuth2 } from 'oauth'; -import config from '../../../config'; +import config from '@/config'; import { publishMainStream } from '../../../services/stream'; -import redis from '../../../db/redis'; +import { redisClient } from '../../../db/redis'; import { v4 as uuid } from 'uuid'; import signin from '../common/signin'; -import { fetchMeta } from '../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { Users, UserProfiles } from '../../../models'; import { ILocalUser } from '../../../models/entities/user'; @@ -96,7 +96,7 @@ router.get('/connect/discord', async ctx => { response_type: 'code' }; - redis.set(userToken, JSON.stringify(params)); + redisClient.set(userToken, JSON.stringify(params)); const oauth2 = await getOAuth2(); ctx.redirect(oauth2!.getAuthorizeUrl(params)); @@ -118,7 +118,7 @@ router.get('/signin/discord', async ctx => { httpOnly: true }); - redis.set(sessid, JSON.stringify(params)); + redisClient.set(sessid, JSON.stringify(params)); const oauth2 = await getOAuth2(); ctx.redirect(oauth2!.getAuthorizeUrl(params)); @@ -145,7 +145,7 @@ router.get('/dc/cb', async ctx => { } const { redirect_uri, state } = await new Promise<any>((res, rej) => { - redis.get(sessid, async (_, state) => { + redisClient.get(sessid, async (_, state) => { res(JSON.parse(state)); }); }); @@ -216,7 +216,7 @@ router.get('/dc/cb', async ctx => { } const { redirect_uri, state } = await new Promise<any>((res, rej) => { - redis.get(userToken, async (_, state) => { + redisClient.get(userToken, async (_, state) => { res(JSON.parse(state)); }); }); diff --git a/src/server/api/service/github.ts b/src/server/api/service/github.ts index 2b10fa02a0364abdd1b46eee7f92862098dc34fb..12435b7e81247bb0a4bf2248bb20998325457abd 100644 --- a/src/server/api/service/github.ts +++ b/src/server/api/service/github.ts @@ -1,13 +1,13 @@ import * as Koa from 'koa'; import * as Router from '@koa/router'; -import { getJson } from '../../../misc/fetch'; +import { getJson } from '@/misc/fetch'; import { OAuth2 } from 'oauth'; -import config from '../../../config'; +import config from '@/config'; import { publishMainStream } from '../../../services/stream'; -import redis from '../../../db/redis'; +import { redisClient } from '../../../db/redis'; import { v4 as uuid } from 'uuid'; import signin from '../common/signin'; -import { fetchMeta } from '../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { Users, UserProfiles } from '../../../models'; import { ILocalUser } from '../../../models/entities/user'; @@ -95,7 +95,7 @@ router.get('/connect/github', async ctx => { state: uuid() }; - redis.set(userToken, JSON.stringify(params)); + redisClient.set(userToken, JSON.stringify(params)); const oauth2 = await getOath2(); ctx.redirect(oauth2!.getAuthorizeUrl(params)); @@ -116,7 +116,7 @@ router.get('/signin/github', async ctx => { httpOnly: true }); - redis.set(sessid, JSON.stringify(params)); + redisClient.set(sessid, JSON.stringify(params)); const oauth2 = await getOath2(); ctx.redirect(oauth2!.getAuthorizeUrl(params)); @@ -143,7 +143,7 @@ router.get('/gh/cb', async ctx => { } const { redirect_uri, state } = await new Promise<any>((res, rej) => { - redis.get(sessid, async (_, state) => { + redisClient.get(sessid, async (_, state) => { res(JSON.parse(state)); }); }); @@ -194,7 +194,7 @@ router.get('/gh/cb', async ctx => { } const { redirect_uri, state } = await new Promise<any>((res, rej) => { - redis.get(userToken, async (_, state) => { + redisClient.get(userToken, async (_, state) => { res(JSON.parse(state)); }); }); diff --git a/src/server/api/service/twitter.ts b/src/server/api/service/twitter.ts index 97e9d3a7fcf19ec4f0b25809384f4cfc14b05701..8520a5656f9fb384451da9704242c4d6e08efdb0 100644 --- a/src/server/api/service/twitter.ts +++ b/src/server/api/service/twitter.ts @@ -2,11 +2,11 @@ import * as Koa from 'koa'; import * as Router from '@koa/router'; import { v4 as uuid } from 'uuid'; import autwh from 'autwh'; -import redis from '../../../db/redis'; +import { redisClient } from '../../../db/redis'; import { publishMainStream } from '../../../services/stream'; -import config from '../../../config'; +import config from '@/config'; import signin from '../common/signin'; -import { fetchMeta } from '../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { Users, UserProfiles } from '../../../models'; import { ILocalUser } from '../../../models/entities/user'; @@ -89,7 +89,7 @@ router.get('/connect/twitter', async ctx => { const twAuth = await getTwAuth(); const twCtx = await twAuth!.begin(); - redis.set(userToken, JSON.stringify(twCtx)); + redisClient.set(userToken, JSON.stringify(twCtx)); ctx.redirect(twCtx.url); }); @@ -99,7 +99,7 @@ router.get('/signin/twitter', async ctx => { const sessid = uuid(); - redis.set(sessid, JSON.stringify(twCtx)); + redisClient.set(sessid, JSON.stringify(twCtx)); ctx.cookies.set('signin_with_twitter_sid', sessid, { path: '/', @@ -124,7 +124,7 @@ router.get('/tw/cb', async ctx => { } const get = new Promise<any>((res, rej) => { - redis.get(sessid, async (_, twCtx) => { + redisClient.get(sessid, async (_, twCtx) => { res(twCtx); }); }); @@ -153,7 +153,7 @@ router.get('/tw/cb', async ctx => { } const get = new Promise<any>((res, rej) => { - redis.get(userToken, async (_, twCtx) => { + redisClient.get(userToken, async (_, twCtx) => { res(twCtx); }); }); diff --git a/src/server/api/stream/channels/antenna.ts b/src/server/api/stream/channels/antenna.ts index 36a474f2aca7b438a6fdc2ee701d69d6baf93339..d93143f4d8974b5c53943e6c86295c2273fcc6c1 100644 --- a/src/server/api/stream/channels/antenna.ts +++ b/src/server/api/stream/channels/antenna.ts @@ -1,7 +1,7 @@ import autobind from 'autobind-decorator'; import Channel from '../channel'; import { Notes } from '../../../../models'; -import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import { isMutedUserRelated } from '@/misc/is-muted-user-related'; export default class extends Channel { public readonly chName = 'antenna'; diff --git a/src/server/api/stream/channels/channel.ts b/src/server/api/stream/channels/channel.ts index 47a52465b29f935707e58557fa9976d7d963a70d..6af2d80e0ccde5ebb5260e23c3059d5427f0a50c 100644 --- a/src/server/api/stream/channels/channel.ts +++ b/src/server/api/stream/channels/channel.ts @@ -1,7 +1,7 @@ import autobind from 'autobind-decorator'; import Channel from '../channel'; import { Notes, Users } from '../../../../models'; -import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import { PackedNote } from '../../../../models/repositories/note'; import { User } from '../../../../models/entities/user'; diff --git a/src/server/api/stream/channels/games/reversi.ts b/src/server/api/stream/channels/games/reversi.ts index 3db338386ab06cad35a18235e119f8c4bb1bd32e..e0e41d9acdb4afec074335341cf0e5e738a148ca 100644 --- a/src/server/api/stream/channels/games/reversi.ts +++ b/src/server/api/stream/channels/games/reversi.ts @@ -26,7 +26,7 @@ export default class extends Channel { childId: body.id }); if (matching == null) return; - publishMainStream(matching.childId, 'reversiInvited', await ReversiMatchings.pack(matching, matching.childId)); + publishMainStream(matching.childId, 'reversiInvited', await ReversiMatchings.pack(matching, { id: matching.childId })); break; } } diff --git a/src/server/api/stream/channels/global-timeline.ts b/src/server/api/stream/channels/global-timeline.ts index 8353f45323a7f08f025cd7a53e7ccb9e22540492..c59eb377795b248cb19f6eb9d5e6f9deb72f48ab 100644 --- a/src/server/api/stream/channels/global-timeline.ts +++ b/src/server/api/stream/channels/global-timeline.ts @@ -1,10 +1,10 @@ import autobind from 'autobind-decorator'; -import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import Channel from '../channel'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { Notes } from '../../../../models'; import { PackedNote } from '../../../../models/repositories/note'; -import { checkWordMute } from '../../../../misc/check-word-mute'; +import { checkWordMute } from '@/misc/check-word-mute'; export default class extends Channel { public readonly chName = 'globalTimeline'; @@ -42,8 +42,9 @@ export default class extends Channel { // 関係ãªã„返信ã¯é™¤å¤– if (note.reply) { + const reply = note.reply as PackedNote; // 「ãƒãƒ£ãƒ³ãƒãƒ«æŽ¥ç¶šä¸»ã¸ã®è¿”ä¿¡ã€ã§ã‚‚ãªã‘ã‚Œã°ã€ã€Œãƒãƒ£ãƒ³ãƒãƒ«æŽ¥ç¶šä¸»ãŒè¡Œã£ãŸè¿”ä¿¡ã€ã§ã‚‚ãªã‘ã‚Œã°ã€ã€ŒæŠ•ç¨¿è€…ã®æŠ•ç¨¿è€…自身ã¸ã®è¿”ä¿¡ã€ã§ã‚‚ãªã„å ´åˆ - if (note.reply.userId !== this.user!.id && note.userId !== this.user!.id && note.reply.userId !== note.userId) return; + if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return; } // æµã‚Œã¦ããŸNoteãŒãƒŸãƒ¥ãƒ¼ãƒˆã—ã¦ã„るユーザーãŒé–¢ã‚ã‚‹ã‚‚ã®ã ã£ãŸã‚‰ç„¡è¦–ã™ã‚‹ diff --git a/src/server/api/stream/channels/hashtag.ts b/src/server/api/stream/channels/hashtag.ts index 1b7f8efcc1ca56169277914c922ae2efd67bac41..b662af072316875548722a50b985119513d92c54 100644 --- a/src/server/api/stream/channels/hashtag.ts +++ b/src/server/api/stream/channels/hashtag.ts @@ -1,9 +1,9 @@ import autobind from 'autobind-decorator'; -import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import Channel from '../channel'; import { Notes } from '../../../../models'; import { PackedNote } from '../../../../models/repositories/note'; -import { normalizeForSearch } from '../../../../misc/normalize-for-search'; +import { normalizeForSearch } from '@/misc/normalize-for-search'; export default class extends Channel { public readonly chName = 'hashtag'; diff --git a/src/server/api/stream/channels/home-timeline.ts b/src/server/api/stream/channels/home-timeline.ts index 59ba31c3167651ef08516f4dd726b69ef807d0d1..b1091a46e17c0327f2c46d2d194783883d36a23f 100644 --- a/src/server/api/stream/channels/home-timeline.ts +++ b/src/server/api/stream/channels/home-timeline.ts @@ -1,9 +1,9 @@ import autobind from 'autobind-decorator'; -import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import Channel from '../channel'; import { Notes } from '../../../../models'; import { PackedNote } from '../../../../models/repositories/note'; -import { checkWordMute } from '../../../../misc/check-word-mute'; +import { checkWordMute } from '@/misc/check-word-mute'; export default class extends Channel { public readonly chName = 'homeTimeline'; @@ -50,8 +50,9 @@ export default class extends Channel { // 関係ãªã„返信ã¯é™¤å¤– if (note.reply) { + const reply = note.reply as PackedNote; // 「ãƒãƒ£ãƒ³ãƒãƒ«æŽ¥ç¶šä¸»ã¸ã®è¿”ä¿¡ã€ã§ã‚‚ãªã‘ã‚Œã°ã€ã€Œãƒãƒ£ãƒ³ãƒãƒ«æŽ¥ç¶šä¸»ãŒè¡Œã£ãŸè¿”ä¿¡ã€ã§ã‚‚ãªã‘ã‚Œã°ã€ã€ŒæŠ•ç¨¿è€…ã®æŠ•ç¨¿è€…自身ã¸ã®è¿”ä¿¡ã€ã§ã‚‚ãªã„å ´åˆ - if (note.reply.userId !== this.user!.id && note.userId !== this.user!.id && note.reply.userId !== note.userId) return; + if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return; } // æµã‚Œã¦ããŸNoteãŒãƒŸãƒ¥ãƒ¼ãƒˆã—ã¦ã„るユーザーãŒé–¢ã‚ã‚‹ã‚‚ã®ã ã£ãŸã‚‰ç„¡è¦–ã™ã‚‹ diff --git a/src/server/api/stream/channels/hybrid-timeline.ts b/src/server/api/stream/channels/hybrid-timeline.ts index 9715e9973f98e8c3773875e6e3ab8669f0a2964f..d769a24373dcba047ad6d75555e84f481745db9a 100644 --- a/src/server/api/stream/channels/hybrid-timeline.ts +++ b/src/server/api/stream/channels/hybrid-timeline.ts @@ -1,11 +1,11 @@ import autobind from 'autobind-decorator'; -import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import Channel from '../channel'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { Notes } from '../../../../models'; import { PackedNote } from '../../../../models/repositories/note'; import { PackedUser } from '../../../../models/repositories/user'; -import { checkWordMute } from '../../../../misc/check-word-mute'; +import { checkWordMute } from '@/misc/check-word-mute'; export default class extends Channel { public readonly chName = 'hybridTimeline'; @@ -59,8 +59,9 @@ export default class extends Channel { // 関係ãªã„返信ã¯é™¤å¤– if (note.reply) { + const reply = note.reply as PackedNote; // 「ãƒãƒ£ãƒ³ãƒãƒ«æŽ¥ç¶šä¸»ã¸ã®è¿”ä¿¡ã€ã§ã‚‚ãªã‘ã‚Œã°ã€ã€Œãƒãƒ£ãƒ³ãƒãƒ«æŽ¥ç¶šä¸»ãŒè¡Œã£ãŸè¿”ä¿¡ã€ã§ã‚‚ãªã‘ã‚Œã°ã€ã€ŒæŠ•ç¨¿è€…ã®æŠ•ç¨¿è€…自身ã¸ã®è¿”ä¿¡ã€ã§ã‚‚ãªã„å ´åˆ - if (note.reply.userId !== this.user!.id && note.userId !== this.user!.id && note.reply.userId !== note.userId) return; + if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return; } // æµã‚Œã¦ããŸNoteãŒãƒŸãƒ¥ãƒ¼ãƒˆã—ã¦ã„るユーザーãŒé–¢ã‚ã‚‹ã‚‚ã®ã ã£ãŸã‚‰ç„¡è¦–ã™ã‚‹ diff --git a/src/server/api/stream/channels/local-timeline.ts b/src/server/api/stream/channels/local-timeline.ts index e159c72d60aa887c8d89edbd29e2ef5bec42ede3..aa0b6c4026c2272972906d9dc3b1526c43e0aaa5 100644 --- a/src/server/api/stream/channels/local-timeline.ts +++ b/src/server/api/stream/channels/local-timeline.ts @@ -1,11 +1,11 @@ import autobind from 'autobind-decorator'; -import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import Channel from '../channel'; -import { fetchMeta } from '../../../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { Notes } from '../../../../models'; import { PackedNote } from '../../../../models/repositories/note'; import { PackedUser } from '../../../../models/repositories/user'; -import { checkWordMute } from '../../../../misc/check-word-mute'; +import { checkWordMute } from '@/misc/check-word-mute'; export default class extends Channel { public readonly chName = 'localTimeline'; @@ -44,8 +44,9 @@ export default class extends Channel { // 関係ãªã„返信ã¯é™¤å¤– if (note.reply) { + const reply = note.reply as PackedNote; // 「ãƒãƒ£ãƒ³ãƒãƒ«æŽ¥ç¶šä¸»ã¸ã®è¿”ä¿¡ã€ã§ã‚‚ãªã‘ã‚Œã°ã€ã€Œãƒãƒ£ãƒ³ãƒãƒ«æŽ¥ç¶šä¸»ãŒè¡Œã£ãŸè¿”ä¿¡ã€ã§ã‚‚ãªã‘ã‚Œã°ã€ã€ŒæŠ•ç¨¿è€…ã®æŠ•ç¨¿è€…自身ã¸ã®è¿”ä¿¡ã€ã§ã‚‚ãªã„å ´åˆ - if (note.reply.userId !== this.user!.id && note.userId !== this.user!.id && note.reply.userId !== note.userId) return; + if (reply.userId !== this.user!.id && note.userId !== this.user!.id && reply.userId !== note.userId) return; } // æµã‚Œã¦ããŸNoteãŒãƒŸãƒ¥ãƒ¼ãƒˆã—ã¦ã„るユーザーãŒé–¢ã‚ã‚‹ã‚‚ã®ã ã£ãŸã‚‰ç„¡è¦–ã™ã‚‹ diff --git a/src/server/api/stream/channels/user-list.ts b/src/server/api/stream/channels/user-list.ts index 4191a0de54997e92fe6d8c6c89f6323622eb29a4..da227f24ec6a6d09b7ce890dd9006dab2d945019 100644 --- a/src/server/api/stream/channels/user-list.ts +++ b/src/server/api/stream/channels/user-list.ts @@ -1,7 +1,7 @@ import autobind from 'autobind-decorator'; import Channel from '../channel'; import { Notes, UserListJoinings, UserLists } from '../../../../models'; -import { isMutedUserRelated } from '../../../../misc/is-muted-user-related'; +import { isMutedUserRelated } from '@/misc/is-muted-user-related'; import { User } from '../../../../models/entities/user'; import { PackedNote } from '../../../../models/repositories/note'; diff --git a/src/server/api/stream/index.ts b/src/server/api/stream/index.ts index 99ae558696c78ad67102f39f64d26cae7974fea3..647b890ff87272e16743d3c6f4c9914851ef1773 100644 --- a/src/server/api/stream/index.ts +++ b/src/server/api/stream/index.ts @@ -156,8 +156,8 @@ export default class Connection { }; add(note); - if (note.reply) add(note.reply); - if (note.renote) add(note.renote); + if (note.reply) add(note.reply as PackedNote); + if (note.renote) add(note.renote as PackedNote); } @autobind @@ -168,17 +168,10 @@ export default class Connection { if (note == null) return; if (this.user && (note.userId !== this.user.id)) { - if (note.mentions && note.mentions.includes(this.user.id)) { - readNote(this.user.id, [note]); - } else if (note.visibleUserIds && note.visibleUserIds.includes(this.user.id)) { - readNote(this.user.id, [note]); - } - - if (this.followingChannels.has(note.channelId)) { - // TODO - } - - // TODO: アンテナã®æ—¢èªå‡¦ç† + readNote(this.user.id, [note], { + following: this.following, + followingChannels: this.followingChannels, + }); } } diff --git a/src/server/api/streaming.ts b/src/server/api/streaming.ts index 10f2a70bad67d98337f4f830fed51c0175ca17dc..81b83edcf546cd3c204983d1792ed5334a5608a2 100644 --- a/src/server/api/streaming.ts +++ b/src/server/api/streaming.ts @@ -1,12 +1,11 @@ import * as http from 'http'; import * as websocket from 'websocket'; -import * as redis from 'redis'; import MainStreamConnection from './stream'; import { ParsedUrlQuery } from 'querystring'; import authenticate from './authenticate'; import { EventEmitter } from 'events'; -import config from '../../config'; +import { subsdcriber as redisClient } from '../../db/redis'; module.exports = (server: http.Server) => { // Init websocket server @@ -24,37 +23,21 @@ module.exports = (server: http.Server) => { const connection = request.accept(); - let ev: EventEmitter; + const ev = new EventEmitter(); - // Connect to Redis - const subscriber = redis.createClient( - config.redis.port, - config.redis.host, - { - password: config.redis.pass - } - ); - - subscriber.subscribe(config.host); - - ev = new EventEmitter(); - - subscriber.on('message', async (_, data) => { - const obj = JSON.parse(data); + async function onRedisMessage(_: string, data: string) { + const parsed = JSON.parse(data); + ev.emit(parsed.channel, parsed.message); + } - ev.emit(obj.channel, obj.message); - }); - - connection.once('close', () => { - subscriber.unsubscribe(); - subscriber.quit(); - }); + redisClient.on('message', onRedisMessage); const main = new MainStreamConnection(connection, ev, user, app); connection.once('close', () => { ev.removeAllListeners(); main.dispose(); + redisClient.off('message', onRedisMessage); }); connection.on('message', async (data) => { diff --git a/src/server/file/send-drive-file.ts b/src/server/file/send-drive-file.ts index 9dea2df8e774bcab833f739d83e3eb3f7a937fb4..9745b1201dc242863cd5bca911ae469fcb9542b0 100644 --- a/src/server/file/send-drive-file.ts +++ b/src/server/file/send-drive-file.ts @@ -4,11 +4,11 @@ import * as rename from 'rename'; import * as tmp from 'tmp'; import * as fs from 'fs'; import { serverLogger } from '..'; -import { contentDisposition } from '../../misc/content-disposition'; +import { contentDisposition } from '@/misc/content-disposition'; import { DriveFiles } from '../../models'; import { InternalStorage } from '../../services/drive/internal-storage'; -import { downloadUrl } from '../../misc/download-url'; -import { detectType } from '../../misc/get-file-info'; +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'; diff --git a/src/server/index.ts b/src/server/index.ts index 5a7bb99c63a2220b0445430f8da11d0c6183c3c5..3b43aa7674b58ed808084fe103c0e8ac5fc8b4fb 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -16,15 +16,15 @@ import * as slow from 'koa-slow'; import activityPub from './activitypub'; import nodeinfo from './nodeinfo'; import wellKnown from './well-known'; -import config from '../config'; +import config from '@/config'; import apiServer from './api'; 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 { genAvatar } from '../misc/gen-avatar'; -import { createTemp } from '../misc/create-temp'; +import { genAvatar } from '@/misc/gen-avatar'; +import { createTemp } from '@/misc/create-temp'; import { publishMainStream } from '../services/stream'; export const serverLogger = new Logger('server', 'gray', false); @@ -89,7 +89,7 @@ router.get('/verify-email/:code', async ctx => { emailVerifyCode: null }); - publishMainStream(profile.userId, 'meUpdated', await Users.pack(profile.userId, profile.userId, { + publishMainStream(profile.userId, 'meUpdated', await Users.pack(profile.userId, { id: profile.userId }, { detail: true, includeSecrets: true })); diff --git a/src/server/nodeinfo.ts b/src/server/nodeinfo.ts index 5c51137c92bd79e8f1e50c82c39cb5fd34bfd2d3..7a1d5b629267d9b5580dd62c312a0c8aad4daa99 100644 --- a/src/server/nodeinfo.ts +++ b/src/server/nodeinfo.ts @@ -1,6 +1,6 @@ import * as Router from '@koa/router'; -import config from '../config'; -import { fetchMeta } from '../misc/fetch-meta'; +import config from '@/config'; +import { fetchMeta } from '@/misc/fetch-meta'; import { Users } from '../models'; // 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 4373cc20f586546801456e9b560216de879625b1..f91df55624d250000bdd1487533bc3f75aa6c3c6 100644 --- a/src/server/proxy/proxy-media.ts +++ b/src/server/proxy/proxy-media.ts @@ -2,9 +2,9 @@ import * as fs from 'fs'; import * as Koa from 'koa'; import { serverLogger } from '..'; 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'; +import { createTemp } from '@/misc/create-temp'; +import { downloadUrl } from '@/misc/download-url'; +import { detectType } from '@/misc/get-file-info'; export async function proxyMedia(ctx: Koa.Context) { const url = 'url' in ctx.query ? ctx.query.url : 'https://' + ctx.params.url; diff --git a/src/server/web/feed.ts b/src/server/web/feed.ts index 6078fbe0f3592369db8fd22e48b062142c191517..d4792c63aa33693e447f5c2543da2c4aa6a62905 100644 --- a/src/server/web/feed.ts +++ b/src/server/web/feed.ts @@ -1,5 +1,5 @@ import { Feed } from 'feed'; -import config from '../../config'; +import config from '@/config'; import { User } from '../../models/entities/user'; import { Notes, DriveFiles, UserProfiles } from '../../models'; import { In } from 'typeorm'; diff --git a/src/server/web/index.ts b/src/server/web/index.ts index ea356206ffd8f32b94b7f275bece648483ea6d7b..953f2b47f1733bdfcf8b84007fec4e2ababac7ba 100644 --- a/src/server/web/index.ts +++ b/src/server/web/index.ts @@ -14,14 +14,14 @@ import * as glob from 'glob'; import * as MarkdownIt from 'markdown-it'; import packFeed from './feed'; -import { fetchMeta } from '../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { genOpenapiSpec } from '../api/openapi/gen-spec'; -import config from '../../config'; +import config from '@/config'; import { Users, Notes, Emojis, UserProfiles, Pages, Channels, Clips } from '../../models'; -import parseAcct from '../../misc/acct/parse'; -import { getNoteSummary } from '../../misc/get-note-summary'; +import parseAcct from '@/misc/acct/parse'; +import { getNoteSummary } from '@/misc/get-note-summary'; import { getConnection } from 'typeorm'; -import redis from '../../db/redis'; +import { redisClient } from '../../db/redis'; import locales = require('../../../locales'); const markdown = MarkdownIt({ @@ -379,7 +379,7 @@ router.get('/info', async ctx => { os: os.platform(), node: process.version, psql: await getConnection().query('SHOW server_version').then(x => x[0].server_version), - redis: redis.server_info.redis_version, + redis: redisClient.server_info.redis_version, cpu: { model: os.cpus()[0].model, cores: os.cpus().length diff --git a/assets/client/manifest.json b/src/server/web/manifest.json similarity index 100% rename from assets/client/manifest.json rename to src/server/web/manifest.json diff --git a/src/server/web/manifest.ts b/src/server/web/manifest.ts index 2f3eb89030724d38cb095d55c71d9257ccae4a77..918fe27c03bf909c29cb5b1ffb21e2991800a35c 100644 --- a/src/server/web/manifest.ts +++ b/src/server/web/manifest.ts @@ -1,6 +1,6 @@ import * as Koa from 'koa'; -import * as manifest from '../../../assets/client/manifest.json'; -import { fetchMeta } from '../../misc/fetch-meta'; +import * as manifest from './manifest.json'; +import { fetchMeta } from '@/misc/fetch-meta'; module.exports = async (ctx: Koa.Context) => { const json = JSON.parse(JSON.stringify(manifest)); diff --git a/src/server/web/url-preview.ts b/src/server/web/url-preview.ts index 4dae6baafbe7e893ca133e7a64d05e699c6c519b..1ba8e0034aa9d405920568523e7bfce87b4f3d60 100644 --- a/src/server/web/url-preview.ts +++ b/src/server/web/url-preview.ts @@ -1,10 +1,10 @@ import * as Koa from 'koa'; import summaly from 'summaly'; -import { fetchMeta } from '../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import Logger from '../../services/logger'; -import config from '../../config'; +import config from '@/config'; import { query } from '../../prelude/url'; -import { getJson } from '../../misc/fetch'; +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 ff3c3462556bb8782945f407e9b1bc84e05c5fff..b1b6b2a771abed52ab43b0d0dcabf9ffbbae4bc4 100644 --- a/src/server/well-known.ts +++ b/src/server/well-known.ts @@ -1,8 +1,8 @@ import * as Router from '@koa/router'; -import config from '../config'; -import parseAcct from '../misc/acct/parse'; -import Acct from '../misc/acct/type'; +import config from '@/config'; +import parseAcct from '@/misc/acct/parse'; +import Acct from '@/misc/acct/type'; import { links } from './nodeinfo'; import { escapeAttribute, escapeValue } from '../prelude/xml'; import { Users } from '../models'; diff --git a/src/services/add-note-to-antenna.ts b/src/services/add-note-to-antenna.ts index 3ba3d1eef5e7dd957b4d68377da950efd1093212..56d0149155e3f01d167505c0b482d210c6b33cab 100644 --- a/src/services/add-note-to-antenna.ts +++ b/src/services/add-note-to-antenna.ts @@ -1,12 +1,12 @@ import { Antenna } from '../models/entities/antenna'; import { Note } from '../models/entities/note'; import { AntennaNotes, Mutings, Notes } from '../models'; -import { genId } from '../misc/gen-id'; -import { isMutedUserRelated } from '../misc/is-muted-user-related'; +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'; -export async function addNoteToAntenna(antenna: Antenna, note: Note, noteUser: User) { +export async function addNoteToAntenna(antenna: Antenna, note: Note, noteUser: { id: User['id']; }) { // 通知ã—ãªã„è¨å®šã«ãªã£ã¦ã„ã‚‹ã‹ã€è‡ªåˆ†è‡ªèº«ã®æŠ•ç¨¿ãªã‚‰æ—¢èªã«ã™ã‚‹ const read = !antenna.notify || (antenna.userId === noteUser.id); diff --git a/src/services/blocking/create.ts b/src/services/blocking/create.ts index dec48d26de6611b8086a036b7b720c7397938701..be2a62692b5b539a51177f349bf3248b078fd93c 100644 --- a/src/services/blocking/create.ts +++ b/src/services/blocking/create.ts @@ -8,7 +8,7 @@ import renderReject from '../../remote/activitypub/renderer/reject'; import { User } from '../../models/entities/user'; import { Blockings, Users, FollowRequests, Followings } from '../../models'; import { perUserFollowingChart } from '../chart'; -import { genId } from '../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export default async function(blocker: User, blockee: User) { await Promise.all([ diff --git a/src/services/chart/charts/classes/active-users.ts b/src/services/chart/charts/classes/active-users.ts index 4820f8281b5c802c42910e83c5a7bbb00c46f5a9..e732b25d24f33673dc5878b8ebbac34e5deb9f55 100644 --- a/src/services/chart/charts/classes/active-users.ts +++ b/src/services/chart/charts/classes/active-users.ts @@ -1,7 +1,7 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; import { User } from '../../../../models/entities/user'; -import { SchemaType } from '../../../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { Users } from '../../../../models'; import { name, schema } from '../schemas/active-users'; @@ -35,7 +35,7 @@ export default class ActiveUsersChart extends Chart<ActiveUsersLog> { } @autobind - public async update(user: User) { + public async update(user: { id: User['id'], host: User['host'] }) { const update: Obj = { users: [user.id] }; diff --git a/src/services/chart/charts/classes/drive.ts b/src/services/chart/charts/classes/drive.ts index 46399a34d8860cc231430f74e8fb69d4712e9026..18537918f05dd82df6c24123da6905c4e994896d 100644 --- a/src/services/chart/charts/classes/drive.ts +++ b/src/services/chart/charts/classes/drive.ts @@ -1,6 +1,6 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; -import { SchemaType } from '../../../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { DriveFiles } from '../../../../models'; import { Not, IsNull } from 'typeorm'; import { DriveFile } from '../../../../models/entities/drive-file'; diff --git a/src/services/chart/charts/classes/federation.ts b/src/services/chart/charts/classes/federation.ts index ab6ec2d4ddd6c5db1215bff259472deb8493136e..e593a53cf17216b52cffc737744a0beac1a0cae2 100644 --- a/src/services/chart/charts/classes/federation.ts +++ b/src/services/chart/charts/classes/federation.ts @@ -1,6 +1,6 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; -import { SchemaType } from '../../../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { Instances } from '../../../../models'; import { name, schema } from '../schemas/federation'; diff --git a/src/services/chart/charts/classes/hashtag.ts b/src/services/chart/charts/classes/hashtag.ts index 43db5b0a8323942144edad5d0ff28b988d7a7d4a..98d5421c9be3b42db479d967c6d502ddfedb8da0 100644 --- a/src/services/chart/charts/classes/hashtag.ts +++ b/src/services/chart/charts/classes/hashtag.ts @@ -1,7 +1,7 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; import { User } from '../../../../models/entities/user'; -import { SchemaType } from '../../../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { Users } from '../../../../models'; import { name, schema } from '../schemas/hashtag'; @@ -35,7 +35,7 @@ export default class HashtagChart extends Chart<HashtagLog> { } @autobind - public async update(hashtag: string, user: User) { + public async update(hashtag: string, user: { id: User['id'], host: User['host'] }) { const update: Obj = { users: [user.id] }; diff --git a/src/services/chart/charts/classes/instance.ts b/src/services/chart/charts/classes/instance.ts index c32b864d87fe373557d458eaf803f4a511ad54f7..f93da58d6186dbdcc0f4b447b265b69977869bed 100644 --- a/src/services/chart/charts/classes/instance.ts +++ b/src/services/chart/charts/classes/instance.ts @@ -1,11 +1,11 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; -import { SchemaType } from '../../../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { DriveFiles, Followings, Users, Notes } from '../../../../models'; import { DriveFile } from '../../../../models/entities/drive-file'; import { name, schema } from '../schemas/instance'; import { Note } from '../../../../models/entities/note'; -import { toPuny } from '../../../../misc/convert-host'; +import { toPuny } from '@/misc/convert-host'; type InstanceLog = SchemaType<typeof schema>; diff --git a/src/services/chart/charts/classes/network.ts b/src/services/chart/charts/classes/network.ts index 693af48f735993de5c9769b0b8d28c7bae1ae0fe..2ce75e0b344b45ba0b509d39e4d439d59a8eb5ef 100644 --- a/src/services/chart/charts/classes/network.ts +++ b/src/services/chart/charts/classes/network.ts @@ -1,6 +1,6 @@ import autobind from 'autobind-decorator'; import Chart, { DeepPartial } from '../../core'; -import { SchemaType } from '../../../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { name, schema } from '../schemas/network'; type NetworkLog = SchemaType<typeof schema>; diff --git a/src/services/chart/charts/classes/notes.ts b/src/services/chart/charts/classes/notes.ts index 965087bc08b752e411ed083a96e226fba3b86daa..a6eb653b70f85a370ee30f37e5f58f91e72382e5 100644 --- a/src/services/chart/charts/classes/notes.ts +++ b/src/services/chart/charts/classes/notes.ts @@ -1,6 +1,6 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; -import { SchemaType } from '../../../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { Notes } from '../../../../models'; import { Not, IsNull } from 'typeorm'; import { Note } from '../../../../models/entities/note'; diff --git a/src/services/chart/charts/classes/per-user-drive.ts b/src/services/chart/charts/classes/per-user-drive.ts index e778f7bf6104364124d493d3f91d67a72605714c..182e5927e80b65426fde434accd3960a503fa4ef 100644 --- a/src/services/chart/charts/classes/per-user-drive.ts +++ b/src/services/chart/charts/classes/per-user-drive.ts @@ -1,6 +1,6 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; -import { SchemaType } from '../../../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { DriveFiles } from '../../../../models'; import { DriveFile } from '../../../../models/entities/drive-file'; import { name, schema } from '../schemas/per-user-drive'; diff --git a/src/services/chart/charts/classes/per-user-following.ts b/src/services/chart/charts/classes/per-user-following.ts index 8b536009c8b63e5dfd0bf4d64d9e76d10f8c99dd..5972d3759b9b571e788a46e82bc5607e380363de 100644 --- a/src/services/chart/charts/classes/per-user-following.ts +++ b/src/services/chart/charts/classes/per-user-following.ts @@ -1,6 +1,6 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; -import { SchemaType } from '../../../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { Followings, Users } from '../../../../models'; import { Not, IsNull } from 'typeorm'; import { User } from '../../../../models/entities/user'; @@ -100,7 +100,7 @@ export default class PerUserFollowingChart extends Chart<PerUserFollowingLog> { } @autobind - public async update(follower: User, followee: User, isFollow: boolean) { + public async update(follower: { id: User['id']; host: User['host']; }, followee: { id: User['id']; host: User['host']; }, isFollow: boolean) { const update: Obj = {}; update.total = isFollow ? 1 : -1; diff --git a/src/services/chart/charts/classes/per-user-notes.ts b/src/services/chart/charts/classes/per-user-notes.ts index 8d1fb8d2b085a813e00c844c21cb2c75486fb0a7..7f93965adbc16fe1473d2a91937995679dd48a3d 100644 --- a/src/services/chart/charts/classes/per-user-notes.ts +++ b/src/services/chart/charts/classes/per-user-notes.ts @@ -1,7 +1,7 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; import { User } from '../../../../models/entities/user'; -import { SchemaType } from '../../../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { Notes } from '../../../../models'; import { Note } from '../../../../models/entities/note'; import { name, schema } from '../schemas/per-user-notes'; @@ -46,7 +46,7 @@ export default class PerUserNotesChart extends Chart<PerUserNotesLog> { } @autobind - public async update(user: User, note: Note, isAdditional: boolean) { + public async update(user: { id: User['id'] }, note: Note, isAdditional: boolean) { const update: Obj = { diffs: {} }; diff --git a/src/services/chart/charts/classes/per-user-reactions.ts b/src/services/chart/charts/classes/per-user-reactions.ts index b4cdced40cb0462753c0bd0edeef2ef1300d06d7..69ed81cd440f51d601fd9a5b349a8bc42d99a961 100644 --- a/src/services/chart/charts/classes/per-user-reactions.ts +++ b/src/services/chart/charts/classes/per-user-reactions.ts @@ -2,7 +2,7 @@ import autobind from 'autobind-decorator'; import Chart, { DeepPartial } from '../../core'; import { User } from '../../../../models/entities/user'; import { Note } from '../../../../models/entities/note'; -import { SchemaType } from '../../../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { Users } from '../../../../models'; import { name, schema } from '../schemas/per-user-reactions'; @@ -36,7 +36,7 @@ export default class PerUserReactionsChart extends Chart<PerUserReactionsLog> { } @autobind - public async update(user: User, note: Note) { + public async update(user: { id: User['id'], host: User['host'] }, note: Note) { this.inc({ [Users.isLocalUser(user) ? 'local' : 'remote']: { count: 1 } }, note.userId); diff --git a/src/services/chart/charts/classes/test-grouped.ts b/src/services/chart/charts/classes/test-grouped.ts index 92c8df636ea79dfd56603911186cd2070f3b61de..84e6d5e33f2c5b86ac96d0aa61f580bb07a5cfcc 100644 --- a/src/services/chart/charts/classes/test-grouped.ts +++ b/src/services/chart/charts/classes/test-grouped.ts @@ -1,6 +1,6 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; -import { SchemaType } from '../../../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { name, schema } from '../schemas/test-grouped'; type TestGroupedLog = SchemaType<typeof schema>; diff --git a/src/services/chart/charts/classes/test-unique.ts b/src/services/chart/charts/classes/test-unique.ts index 5680d713eccc07193d3d8f136ba8d69cca5c7425..559fda13c9d111940ecc0017f422b492ca8249fb 100644 --- a/src/services/chart/charts/classes/test-unique.ts +++ b/src/services/chart/charts/classes/test-unique.ts @@ -1,6 +1,6 @@ import autobind from 'autobind-decorator'; import Chart, { DeepPartial } from '../../core'; -import { SchemaType } from '../../../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { name, schema } from '../schemas/test-unique'; type TestUniqueLog = SchemaType<typeof schema>; diff --git a/src/services/chart/charts/classes/test.ts b/src/services/chart/charts/classes/test.ts index d37d298de743034397dc13f99378a0dde71c616a..a91d5e1895f8e08f735587bd3916a196bf68966e 100644 --- a/src/services/chart/charts/classes/test.ts +++ b/src/services/chart/charts/classes/test.ts @@ -1,6 +1,6 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; -import { SchemaType } from '../../../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { name, schema } from '../schemas/test'; type TestLog = SchemaType<typeof schema>; diff --git a/src/services/chart/charts/classes/users.ts b/src/services/chart/charts/classes/users.ts index 87b19d88f92cd275bf1a3532c707bf52ad940320..8f208de6d6e712ea09600649e85921ccfec750fe 100644 --- a/src/services/chart/charts/classes/users.ts +++ b/src/services/chart/charts/classes/users.ts @@ -1,6 +1,6 @@ import autobind from 'autobind-decorator'; import Chart, { Obj, DeepPartial } from '../../core'; -import { SchemaType } from '../../../../misc/schema'; +import { SchemaType } from '@/misc/schema'; import { Users } from '../../../../models'; import { Not, IsNull } from 'typeorm'; import { User } from '../../../../models/entities/user'; @@ -59,7 +59,7 @@ export default class UsersChart extends Chart<UsersLog> { } @autobind - public async update(user: User, isAdditional: boolean) { + public async update(user: { id: User['id'], host: User['host'] }, isAdditional: boolean) { const update: Obj = {}; update.total = isAdditional ? 1 : -1; diff --git a/src/services/chart/core.ts b/src/services/chart/core.ts index 10621be07306f3ac8a74881aa2082192c6860af9..d956d33bd74f8197d5cb75fe9348b9fdc5bef6ca 100644 --- a/src/services/chart/core.ts +++ b/src/services/chart/core.ts @@ -7,10 +7,10 @@ import * as nestedProperty from 'nested-property'; import autobind from 'autobind-decorator'; import Logger from '../logger'; -import { Schema } from '../../misc/schema'; +import { Schema } from '@/misc/schema'; import { EntitySchema, getRepository, Repository, LessThan, Between } from 'typeorm'; import { dateUTC, isTimeSame, isTimeBefore, subtractTime, addTime } from '../../prelude/time'; -import { getChartInsertLock } from '../../misc/app-lock'; +import { getChartInsertLock } from '@/misc/app-lock'; const logger = new Logger('chart', 'white', process.env.NODE_ENV !== 'test'); diff --git a/src/services/chart/index.ts b/src/services/chart/index.ts index dde02bd64d3ca01dba0698a73ddfb5ce1a5757e6..61eb431ea3d4510ba6b2ae3bdbc8844447cf4a51 100644 --- a/src/services/chart/index.ts +++ b/src/services/chart/index.ts @@ -10,7 +10,7 @@ import PerUserReactionsChart from './charts/classes/per-user-reactions'; import HashtagChart from './charts/classes/hashtag'; import PerUserFollowingChart from './charts/classes/per-user-following'; import PerUserDriveChart from './charts/classes/per-user-drive'; -import { beforeShutdown } from '../../misc/before-shutdown'; +import { beforeShutdown } from '@/misc/before-shutdown'; export const federationChart = new FederationChart(); export const notesChart = new NotesChart(); diff --git a/src/services/create-notification.ts b/src/services/create-notification.ts index dedb8eac8d005f440ede61b37d7536126149481d..261b36814c7589ee219b1c6a9a273d68a80be9ed 100644 --- a/src/services/create-notification.ts +++ b/src/services/create-notification.ts @@ -1,7 +1,7 @@ import { publishMainStream } from './stream'; import pushSw from './push-notification'; import { Notifications, Mutings, UserProfiles } from '../models'; -import { genId } from '../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { User } from '../models/entities/user'; import { Notification } from '../models/entities/notification'; import { sendEmailNotification } from './send-email-notification'; diff --git a/src/services/create-system-user.ts b/src/services/create-system-user.ts index 39ddc92abd8c56f7543866ad35d4ff07ace10f58..052ceb6c99ab1b36b3ff359e0165971005d2e714 100644 --- a/src/services/create-system-user.ts +++ b/src/services/create-system-user.ts @@ -1,11 +1,11 @@ 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 { genRsaKeyPair } from '@/misc/gen-key-pair'; import { User } from '../models/entities/user'; import { UserProfile } from '../models/entities/user-profile'; import { getConnection } from 'typeorm'; -import { genId } from '../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { UserKeypair } from '../models/entities/user-keypair'; import { UsedUsername } from '../models/entities/used-username'; diff --git a/src/services/drive/add-file.ts b/src/services/drive/add-file.ts index b5085ec8e37debc154881b3f68e0330796f3ef09..ad9f753e7999d592a85514cad32cabe812d0663f 100644 --- a/src/services/drive/add-file.ts +++ b/src/services/drive/add-file.ts @@ -4,19 +4,19 @@ import { v4 as uuid } from 'uuid'; import { publishMainStream, publishDriveStream } from '../stream'; import { deleteFile } from './delete-file'; -import { fetchMeta } from '../../misc/fetch-meta'; +import { fetchMeta } from '@/misc/fetch-meta'; import { GenerateVideoThumbnail } from './generate-video-thumbnail'; 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 { contentDisposition } from '@/misc/content-disposition'; +import { getFileInfo } from '@/misc/get-file-info'; import { DriveFiles, DriveFolders, Users, Instances, UserProfiles } from '../../models'; 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 { genId } from '../../misc/gen-id'; -import { isDuplicateKeyValueError } from '../../misc/is-duplicate-key-value-error'; +import { genId } from '@/misc/gen-id'; +import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error'; import * as S3 from 'aws-sdk/clients/s3'; import { getS3 } from './s3'; import * as sharp from 'sharp'; @@ -302,7 +302,7 @@ async function deleteOldFile(user: IRemoteUser) { * @return Created drive file */ export default async function( - user: User | null, + user: { id: User['id']; host: User['host'] } | null, path: string, name: string | null = null, comment: string | null = null, @@ -347,7 +347,7 @@ export default async function( throw new Error('no-free-space'); } else { // (ã‚¢ãƒã‚¿ãƒ¼ã¾ãŸã¯ãƒãƒŠãƒ¼ã‚’å«ã¾ãš)最もå¤ã„ファイルを削除ã™ã‚‹ - deleteOldFile(user as IRemoteUser); + deleteOldFile(await Users.findOneOrFail(user.id) as IRemoteUser); } } } diff --git a/src/services/drive/delete-file.ts b/src/services/drive/delete-file.ts index f9141ebaac4a4a1c55d19252a46b2a8c728f03c9..bb9c0ae2c340cc9709ba06d8262771e22f38dbeb 100644 --- a/src/services/drive/delete-file.ts +++ b/src/services/drive/delete-file.ts @@ -3,14 +3,14 @@ import { InternalStorage } from './internal-storage'; import { DriveFiles, Instances, Notes, Users } from '../../models'; import { driveChart, perUserDriveChart, instanceChart } from '../chart'; import { createDeleteObjectStorageFileJob } from '../../queue'; -import { fetchMeta } from '../../misc/fetch-meta'; +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 config from '@/config'; 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 f8d7489a2266e68cce57b3ff2a2aa9e237127a9c..5ec563584f0ef185f741f8afd17563a4923ada9a 100644 --- a/src/services/drive/internal-storage.ts +++ b/src/services/drive/internal-storage.ts @@ -1,6 +1,6 @@ import * as fs from 'fs'; import * as Path from 'path'; -import config from '../../config'; +import config from '@/config'; export class InternalStorage { private static readonly path = Path.resolve(__dirname, '../../../files'); diff --git a/src/services/drive/s3.ts b/src/services/drive/s3.ts index f419f09377e006100ea262bd3d21eb95110201a3..e75937861bd9c93f58b8cc3f6019bad6c5b52ec7 100644 --- a/src/services/drive/s3.ts +++ b/src/services/drive/s3.ts @@ -1,6 +1,7 @@ +import { URL } from 'url'; import * as S3 from 'aws-sdk/clients/s3'; import { Meta } from '../../models/entities/meta'; -import { getAgentByUrl } from '../../misc/fetch'; +import { getAgentByUrl } from '@/misc/fetch'; export function getS3(meta: Meta) { const u = meta.objectStorageEndpoint != null diff --git a/src/services/drive/upload-from-url.ts b/src/services/drive/upload-from-url.ts index 96550f712185749f11d76a9a06d0a25341cb38c1..2f4c5aeeaf0c37c2d40f4cffbc9a4e7f53aae74b 100644 --- a/src/services/drive/upload-from-url.ts +++ b/src/services/drive/upload-from-url.ts @@ -1,8 +1,9 @@ +import { URL } from 'url'; import create from './add-file'; import { User } from '../../models/entities/user'; import { driveLogger } from './logger'; -import { createTemp } from '../../misc/create-temp'; -import { downloadUrl } from '../../misc/download-url'; +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'; @@ -11,7 +12,7 @@ const logger = driveLogger.createSubLogger('downloader'); export default async ( url: string, - user: User | null, + user: { id: User['id']; host: User['host'] } | null, folderId: DriveFolder['id'] | null = null, uri: string | null = null, sensitive = false, diff --git a/src/services/fetch-instance-metadata.ts b/src/services/fetch-instance-metadata.ts index c1caeef6e38f1ed07e4fe4ffaf9150d0694af903..e016e73a60b0da68433f913d4c189c999e353dba 100644 --- a/src/services/fetch-instance-metadata.ts +++ b/src/services/fetch-instance-metadata.ts @@ -1,9 +1,9 @@ import { DOMWindow, JSDOM } from 'jsdom'; import fetch from 'node-fetch'; -import { getJson, getHtml, getAgentByUrl } from '../misc/fetch'; +import { getJson, getHtml, getAgentByUrl } from '@/misc/fetch'; import { Instance } from '../models/entities/instance'; import { Instances } from '../models'; -import { getFetchInstanceMetadataLock } from '../misc/app-lock'; +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 1ce75caca070edbf236be35f1366977eb012f807..de12285fc749b7e0533f04dc719d1fe39fcde9f9 100644 --- a/src/services/following/create.ts +++ b/src/services/following/create.ts @@ -7,17 +7,17 @@ import { deliver } from '../../queue'; import createFollowRequest from './requests/create'; import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc'; import Logger from '../logger'; -import { IdentifiableError } from '../../misc/identifiable-error'; +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 { genId } from '../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { createNotification } from '../create-notification'; -import { isDuplicateKeyValueError } from '../../misc/is-duplicate-key-value-error'; +import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error'; const logger = new Logger('following/create'); -export async function insertFollowingDoc(followee: User, follower: User) { +export async function insertFollowingDoc(followee: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox'] }, follower: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox'] }) { if (follower.id === followee.id) return; let alreadyFollowed = false; @@ -86,7 +86,7 @@ export async function insertFollowingDoc(followee: User, follower: User) { // Publish follow event if (Users.isLocalUser(follower)) { - Users.pack(followee, follower, { + Users.pack(followee.id, follower, { detail: true }).then(packed => { publishUserEvent(follower.id, 'follow', packed); @@ -96,7 +96,7 @@ export async function insertFollowingDoc(followee: User, follower: User) { // Publish followed event if (Users.isLocalUser(followee)) { - Users.pack(follower, followee).then(packed => publishMainStream(followee.id, 'followed', packed)); + Users.pack(follower.id, followee).then(packed => publishMainStream(followee.id, 'followed', packed)); // é€šçŸ¥ã‚’ä½œæˆ createNotification(followee.id, 'follow', { @@ -105,7 +105,12 @@ export async function insertFollowingDoc(followee: User, follower: User) { } } -export default async function(follower: User, followee: User, requestId?: string) { +export default async function(_follower: { id: User['id'] }, _followee: { id: User['id'] }, requestId?: string) { + const [follower, followee] = await Promise.all([ + Users.findOneOrFail(_follower.id), + Users.findOneOrFail(_followee.id) + ]); + // check blocking const [blocking, blocked] = await Promise.all([ Blockings.findOne({ diff --git a/src/services/following/delete.ts b/src/services/following/delete.ts index 32c47ea7f40ca72a7cc9d95947df53e96971c43f..d0df0de6aec40e9ef0e86eda0c75b4b0cfb76a16 100644 --- a/src/services/following/delete.ts +++ b/src/services/following/delete.ts @@ -11,7 +11,7 @@ import { instanceChart, perUserFollowingChart } from '../chart'; const logger = new Logger('following/delete'); -export default async function(follower: User, followee: User, silent = false) { +export default async function(follower: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox']; }, followee: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox']; }, silent = false) { const following = await Followings.findOne({ followerId: follower.id, followeeId: followee.id @@ -28,7 +28,7 @@ export default async function(follower: User, followee: User, silent = false) { // Publish unfollow event if (!silent && Users.isLocalUser(follower)) { - Users.pack(followee, follower, { + Users.pack(followee.id, follower, { detail: true }).then(packed => { publishUserEvent(follower.id, 'unfollow', packed); @@ -42,7 +42,7 @@ export default async function(follower: User, followee: User, silent = false) { } } -export async function decrementFollowing(follower: User, followee: User) { +export async function decrementFollowing(follower: { id: User['id']; host: User['host']; }, followee: { id: User['id']; host: User['host']; }) { //#region Decrement following count Users.decrement({ id: follower.id }, 'followingCount', 1); //#endregion diff --git a/src/services/following/requests/accept-all.ts b/src/services/following/requests/accept-all.ts index da39965349e1a230e11ac5d6992697b5c226cbf0..5fc70fcf1b481ebf55e79ae91f194f6d6b12ce16 100644 --- a/src/services/following/requests/accept-all.ts +++ b/src/services/following/requests/accept-all.ts @@ -6,7 +6,7 @@ import { FollowRequests, Users } from '../../../models'; * 指定ã—ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼å®›ã¦ã®ãƒ•ã‚©ãƒãƒ¼ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚’ã™ã¹ã¦æ‰¿èª * @param user ユーザー */ -export default async function(user: User) { +export default async function(user: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox']; }) { const requests = await FollowRequests.find({ followeeId: user.id }); diff --git a/src/services/following/requests/accept.ts b/src/services/following/requests/accept.ts index 6a072126b52eca83e9f30d13aaf918a3d9bca353..4277a1a1e998b7dca4626dbb2a395fcfb9e12c6b 100644 --- a/src/services/following/requests/accept.ts +++ b/src/services/following/requests/accept.ts @@ -6,9 +6,9 @@ import { publishMainStream } from '../../stream'; import { insertFollowingDoc } from '../create'; import { User, ILocalUser } from '../../../models/entities/user'; import { FollowRequests, Users } from '../../../models'; -import { IdentifiableError } from '../../../misc/identifiable-error'; +import { IdentifiableError } from '@/misc/identifiable-error'; -export default async function(followee: User, follower: User) { +export default async function(followee: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox']; }, follower: User) { const request = await FollowRequests.findOne({ followeeId: followee.id, followerId: follower.id @@ -20,12 +20,12 @@ export default async function(followee: User, follower: User) { await insertFollowingDoc(followee, follower); - if (Users.isRemoteUser(follower)) { - const content = renderActivity(renderAccept(renderFollow(follower, followee, request.requestId!), followee as ILocalUser)); - deliver(followee as ILocalUser, content, follower.inbox); + if (Users.isRemoteUser(follower) && Users.isLocalUser(followee)) { + const content = renderActivity(renderAccept(renderFollow(follower, followee, request.requestId!), followee)); + deliver(followee, content, follower.inbox); } - Users.pack(followee, followee, { + Users.pack(followee.id, followee, { detail: true }).then(packed => publishMainStream(followee.id, 'meUpdated', packed)); } diff --git a/src/services/following/requests/cancel.ts b/src/services/following/requests/cancel.ts index 98fec5d331da2ac551c2a92e79bc1288c4d85164..53c20088ca38c3572332442e43c0320ef747dd7c 100644 --- a/src/services/following/requests/cancel.ts +++ b/src/services/following/requests/cancel.ts @@ -3,14 +3,17 @@ import renderFollow from '../../../remote/activitypub/renderer/follow'; import renderUndo from '../../../remote/activitypub/renderer/undo'; import { deliver } from '../../../queue'; import { publishMainStream } from '../../stream'; -import { IdentifiableError } from '../../../misc/identifiable-error'; +import { IdentifiableError } from '@/misc/identifiable-error'; import { User, ILocalUser } from '../../../models/entities/user'; import { Users, FollowRequests } from '../../../models'; -export default async function(followee: User, follower: User) { +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)) { const content = renderActivity(renderUndo(renderFollow(follower, followee), follower)); - deliver(follower as ILocalUser, content, followee.inbox); + + if (Users.isLocalUser(follower)) { // 本æ¥ã“ã®ãƒã‚§ãƒƒã‚¯ã¯ä¸è¦ã ã‘ã©TSã«æ€’られるã®ã§ + deliver(follower, content, followee.inbox); + } } const request = await FollowRequests.findOne({ @@ -27,7 +30,7 @@ export default async function(followee: User, follower: User) { followerId: follower.id }); - Users.pack(followee, followee, { + Users.pack(followee.id, followee, { detail: true }).then(packed => publishMainStream(followee.id, 'meUpdated', packed)); } diff --git a/src/services/following/requests/create.ts b/src/services/following/requests/create.ts index deaeedb9a8a5eb89a016bd6ff575057d816c110d..584591b00339bb198a70af16b85ba363e0edfdbb 100644 --- a/src/services/following/requests/create.ts +++ b/src/services/following/requests/create.ts @@ -4,10 +4,10 @@ import renderFollow from '../../../remote/activitypub/renderer/follow'; import { deliver } from '../../../queue'; import { User } from '../../../models/entities/user'; import { Blockings, FollowRequests, Users } from '../../../models'; -import { genId } from '../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { createNotification } from '../../create-notification'; -export default async function(follower: User, followee: User, requestId?: string) { +export default async function(follower: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox']; }, followee: { id: User['id']; host: User['host']; uri: User['host']; inbox: User['inbox']; sharedInbox: User['sharedInbox']; }, requestId?: string) { if (follower.id === followee.id) return; // check blocking @@ -43,9 +43,9 @@ export default async function(follower: User, followee: User, requestId?: string // Publish receiveRequest event if (Users.isLocalUser(followee)) { - Users.pack(follower, followee).then(packed => publishMainStream(followee.id, 'receiveFollowRequest', packed)); + Users.pack(follower.id, followee).then(packed => publishMainStream(followee.id, 'receiveFollowRequest', packed)); - Users.pack(followee, followee, { + Users.pack(followee.id, followee, { detail: true }).then(packed => publishMainStream(followee.id, 'meUpdated', packed)); diff --git a/src/services/following/requests/reject.ts b/src/services/following/requests/reject.ts index d8d3788088c1f4005a6725cc4bd35d9f5a0a6805..45effc580220360b56f0d1b6ba390772e3cf3490 100644 --- a/src/services/following/requests/reject.ts +++ b/src/services/following/requests/reject.ts @@ -7,15 +7,15 @@ import { User, ILocalUser } from '../../../models/entities/user'; import { Users, FollowRequests, Followings } from '../../../models'; import { decrementFollowing } from '../delete'; -export default async function(followee: User, follower: User) { - if (Users.isRemoteUser(follower)) { +export default async function(followee: { id: User['id']; host: User['host']; uri: User['host'] }, follower: User) { + if (Users.isRemoteUser(follower) && Users.isLocalUser(followee)) { const request = await FollowRequests.findOne({ followeeId: followee.id, followerId: follower.id }); - const content = renderActivity(renderReject(renderFollow(follower, followee, request!.requestId!), followee as ILocalUser)); - deliver(followee as ILocalUser, content, follower.inbox); + const content = renderActivity(renderReject(renderFollow(follower, followee, request!.requestId!), followee)); + deliver(followee, content, follower.inbox); } const request = await FollowRequests.findOne({ @@ -37,7 +37,7 @@ export default async function(followee: User, follower: User) { } } - Users.pack(followee, follower, { + Users.pack(followee.id, follower, { detail: true }).then(packed => { publishUserEvent(follower.id, 'unfollow', packed); diff --git a/src/services/i/pin.ts b/src/services/i/pin.ts index f727a10fb65605c832b3ddf5366adda3daa2cf38..e3a73b5b98d3398acbe7c6fd3fef801e84ebebcf 100644 --- a/src/services/i/pin.ts +++ b/src/services/i/pin.ts @@ -1,13 +1,13 @@ -import config from '../../config'; +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 { IdentifiableError } from '../../misc/identifiable-error'; +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 { genId } from '../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { deliverToFollowers } from '../../remote/activitypub/deliver-manager'; import { deliverToRelays } from '../relay'; @@ -16,7 +16,7 @@ import { deliverToRelays } from '../relay'; * @param user * @param noteId */ -export async function addPinned(user: User, noteId: Note['id']) { +export async function addPinned(user: { id: User['id']; host: User['host']; }, noteId: Note['id']) { // Fetch pinee const note = await Notes.findOne({ id: noteId, @@ -55,7 +55,7 @@ export async function addPinned(user: User, noteId: Note['id']) { * @param user * @param noteId */ -export async function removePinned(user: User, noteId: Note['id']) { +export async function removePinned(user: { id: User['id']; host: User['host']; }, noteId: Note['id']) { // Fetch unpinee const note = await Notes.findOne({ id: noteId, diff --git a/src/services/insert-moderation-log.ts b/src/services/insert-moderation-log.ts index 87587d3bed6fefea900150df4b00e70b1d260ecf..8ba64fa34b6f1b14a88be489dd10a99e6b3fa3f1 100644 --- a/src/services/insert-moderation-log.ts +++ b/src/services/insert-moderation-log.ts @@ -1,8 +1,8 @@ -import { ILocalUser } from '../models/entities/user'; import { ModerationLogs } from '../models'; -import { genId } from '../misc/gen-id'; +import { genId } from '@/misc/gen-id'; +import { User } from '@/models/entities/user'; -export async function insertModerationLog(moderator: ILocalUser, type: string, info?: Record<string, any>) { +export async function insertModerationLog(moderator: { id: User['id'] }, type: string, info?: Record<string, any>) { await ModerationLogs.insert({ id: genId(), createdAt: new Date(), diff --git a/src/services/instance-actor.ts b/src/services/instance-actor.ts index 74591846fa007ce37047db6d78c14676bd0f0516..9b9c746061dbdb5bc3e07aa0a0b811607b9a3648 100644 --- a/src/services/instance-actor.ts +++ b/src/services/instance-actor.ts @@ -1,17 +1,27 @@ import { createSystemUser } from './create-system-user'; import { ILocalUser } from '../models/entities/user'; import { Users } from '../models'; +import { Cache } from '@/misc/cache'; const ACTOR_USERNAME = 'instance.actor' as const; +const cache = new Cache<ILocalUser>(Infinity); + export async function getInstanceActor(): Promise<ILocalUser> { + const cached = cache.get(null); + if (cached) return cached; + const user = await Users.findOne({ host: null, username: ACTOR_USERNAME - }); - - if (user) return user as ILocalUser; + }) as ILocalUser | undefined; - const created = await createSystemUser(ACTOR_USERNAME); - return created as ILocalUser; + if (user) { + cache.set(null, user); + return user; + } else { + const created = await createSystemUser(ACTOR_USERNAME) as ILocalUser; + cache.set(null, created); + return created; + } } diff --git a/src/services/logger.ts b/src/services/logger.ts index c7483d3faa3ef1bf194bd484e6f5bc3fef51bd39..de62b3aca965057f91ad80e9ed0af2de9b930e56 100644 --- a/src/services/logger.ts +++ b/src/services/logger.ts @@ -5,8 +5,8 @@ import * as dateformat from 'dateformat'; import { program } from '../argv'; import { getRepository } from 'typeorm'; import { Log } from '../models/entities/log'; -import { genId } from '../misc/gen-id'; -import config from '../config'; +import { genId } from '@/misc/gen-id'; +import config from '@/config'; const SyslogPro = require('syslog-pro'); diff --git a/src/services/messages/create.ts b/src/services/messages/create.ts index 413266d0290dc75f8484645e28a7bfb42e4e0e44..f84729cdeb7e711bb2b51e25ff731a839e8fccb4 100644 --- a/src/services/messages/create.ts +++ b/src/services/messages/create.ts @@ -2,7 +2,7 @@ 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 { genId } from '../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { MessagingMessage } from '../../models/entities/messaging-message'; import { publishMessagingStream, publishMessagingIndexStream, publishMainStream, publishGroupMessagingStream } from '../stream'; import pushNotification from '../push-notification'; @@ -13,7 +13,7 @@ import renderCreate from '../../remote/activitypub/renderer/create'; import { renderActivity } from '../../remote/activitypub/renderer'; import { deliver } from '../../queue'; -export async function createMessage(user: User, recipientUser: User | undefined, recipientGroup: UserGroup | undefined, text: string | undefined, file: DriveFile | null, uri?: string) { +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 = { id: genId(), createdAt: new Date(), diff --git a/src/services/messages/delete.ts b/src/services/messages/delete.ts index c94a7b67db8bf6c4c2bb2fd348a6a2be20869ecb..522815e554abeabb70a02837acb2f7d01deae5ee 100644 --- a/src/services/messages/delete.ts +++ b/src/services/messages/delete.ts @@ -1,4 +1,4 @@ -import config from '../../config'; +import config from '@/config'; import { MessagingMessages, Users } from '../../models'; import { MessagingMessage } from '../../models/entities/messaging-message'; import { publishGroupMessagingStream, publishMessagingStream } from '../stream'; diff --git a/src/services/note/create.ts b/src/services/note/create.ts index 4a737e8516421f964afc049042b5f69c9a16417b..64d5513ecc309f2b6c475bd957a020bb8cb299fc 100644 --- a/src/services/note/create.ts +++ b/src/services/note/create.ts @@ -7,44 +7,45 @@ import renderAnnounce from '../../remote/activitypub/renderer/announce'; import { renderActivity } from '../../remote/activitypub/renderer'; import { parse } from '../../mfm/parse'; import { resolveUser } from '../../remote/resolve-user'; -import config from '../../config'; +import config from '@/config'; import { updateHashtags } from '../update-hashtag'; import { concat } from '../../prelude/array'; import insertNoteUnread from './unread'; import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc'; -import extractMentions from '../../misc/extract-mentions'; -import extractEmojis from '../../misc/extract-emojis'; -import extractHashtags from '../../misc/extract-hashtags'; +import extractMentions from '@/misc/extract-mentions'; +import extractEmojis from '@/misc/extract-emojis'; +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 } from '../../models'; 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 { genId } from '../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { notesChart, perUserNotesChart, activeUsersChart, instanceChart } from '../chart'; 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'; -import { checkWordMute } from '../../misc/check-word-mute'; +import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error'; +import { checkHitAntenna } from '@/misc/check-hit-antenna'; +import { checkWordMute } from '@/misc/check-word-mute'; import { addNoteToAntenna } from '../add-note-to-antenna'; -import { countSameRenotes } from '../../misc/count-same-renotes'; +import { countSameRenotes } from '@/misc/count-same-renotes'; import { deliverToRelays } from '../relay'; import { Channel } from '../../models/entities/channel'; -import { normalizeForSearch } from '../../misc/normalize-for-search'; +import { normalizeForSearch } from '@/misc/normalize-for-search'; +import { getAntennas } from '@/misc/antenna-cache'; type NotificationType = 'reply' | 'renote' | 'quote' | 'mention'; class NotificationManager { - private notifier: User; + private notifier: { id: User['id']; }; private note: Note; private queue: { target: ILocalUser['id']; reason: NotificationType; }[]; - constructor(notifier: User, note: Note) { + constructor(notifier: { id: User['id']; }, note: Note) { this.notifier = notifier; this.note = note; this.queue = []; @@ -111,7 +112,7 @@ type Option = { app?: App | null; }; -export default async (user: User, data: Option, silent = false) => new Promise<Note>(async (res, rej) => { +export default async (user: { id: User['id']; username: User['username']; host: User['host']; isSilenced: User['isSilenced']; }, data: Option, silent = false) => new Promise<Note>(async (res, rej) => { // ãƒãƒ£ãƒ³ãƒãƒ«å¤–ã«ãƒªãƒ—ライã—ãŸã‚‰å¯¾è±¡ã®ã‚¹ã‚³ãƒ¼ãƒ—ã«åˆã‚ã›ã‚‹ // (クライアントサイドã§ã‚„ã£ã¦ã‚‚良ã„処ç†ã ã¨æ€ã†ã‘ã©ã¨ã‚Šã‚ãˆãšã‚µãƒ¼ãƒãƒ¼ã‚µã‚¤ãƒ‰ã§) if (data.reply && data.channel && data.reply.channelId !== data.channel.id) { @@ -241,6 +242,7 @@ export default async (user: User, data: Option, silent = false) => new Promise<N incNotesCountOfUser(user); // Word mute + // TODO: cache UserProfiles.find({ enableWordMute: true }).then(us => { @@ -262,17 +264,15 @@ export default async (user: User, data: Option, silent = false) => new Promise<N Followings.createQueryBuilder('following') .andWhere(`following.followeeId = :userId`, { userId: note.userId }) .getMany() - .then(followings => { + .then(async followings => { const followers = followings.map(f => f.followerId); - Antennas.find().then(async antennas => { - for (const antenna of antennas) { - checkHitAntenna(antenna, note, user, followers).then(hit => { - if (hit) { - addNoteToAntenna(antenna, note, user); - } - }); - } - }); + for (const antenna of (await getAntennas())) { + checkHitAntenna(antenna, note, user, followers).then(hit => { + if (hit) { + addNoteToAntenna(antenna, note, user); + } + }); + } }); // Channel @@ -328,10 +328,6 @@ export default async (user: User, data: Option, silent = false) => new Promise<N // Pack the note const noteObj = await Notes.pack(note); - if (user.notesCount === 0) { - (noteObj as any).isFirstNote = true; - } - publishNotesStream(noteObj); const nm = new NotificationManager(user, note); @@ -424,7 +420,7 @@ export default async (user: User, data: Option, silent = false) => new Promise<N // ã“ã®å‡¦ç†ãŒè¡Œã‚れるã®ã¯ãƒŽãƒ¼ãƒˆä½œæˆå¾Œãªã®ã§ã€ãƒŽãƒ¼ãƒˆãŒä¸€ã¤ã—ã‹ãªã‹ã£ãŸã‚‰æœ€åˆã®æŠ•ç¨¿ã ã¨åˆ¤æ–ã§ãã‚‹ // TODO: ã¨ã¯ã„ãˆãƒŽãƒ¼ãƒˆã‚’削除ã—ã¦ä½•å›žã‚‚投稿ã™ã‚Œã°ãã®åˆ†ã ã‘インクリメントã•ã‚Œã‚‹é›‘ã•ã‚‚ã‚ã‚‹ã®ã§ã©ã†ã«ã‹ã—ãŸã„ if (count === 1) { - Channels.increment({ id: data.channel.id }, 'usersCount', 1); + Channels.increment({ id: data.channel!.id }, 'usersCount', 1); } }); } @@ -453,7 +449,7 @@ function incRenoteCount(renote: Note) { .execute(); } -async function insertNote(user: User, data: Option, tags: string[], emojis: string[], mentionedUsers: User[]) { +async function insertNote(user: { id: User['id']; host: User['host']; }, data: Option, tags: string[], emojis: string[], mentionedUsers: User[]) { const insert = new Note({ id: genId(data.createdAt!), createdAt: data.createdAt!, @@ -559,7 +555,7 @@ function index(note: Note) { }); } -async function notifyToWatchersOfRenotee(renote: Note, user: User, nm: NotificationManager, type: NotificationType) { +async function notifyToWatchersOfRenotee(renote: Note, user: { id: User['id']; }, nm: NotificationManager, type: NotificationType) { const watchers = await NoteWatchings.find({ noteId: renote.id, userId: Not(user.id) @@ -570,7 +566,7 @@ async function notifyToWatchersOfRenotee(renote: Note, user: User, nm: Notificat } } -async function notifyToWatchersOfReplyee(reply: Note, user: User, nm: NotificationManager) { +async function notifyToWatchersOfReplyee(reply: Note, user: { id: User['id']; }, nm: NotificationManager) { const watchers = await NoteWatchings.find({ noteId: reply.id, userId: Not(user.id) @@ -598,7 +594,7 @@ function saveReply(reply: Note, note: Note) { Notes.increment({ id: reply.id }, 'repliesCount', 1); } -function incNotesCountOfUser(user: User) { +function incNotesCountOfUser(user: { id: User['id']; }) { Users.createQueryBuilder().update() .set({ updatedAt: new Date(), @@ -608,7 +604,7 @@ function incNotesCountOfUser(user: User) { .execute(); } -async function extractMentionedUsers(user: User, tokens: ReturnType<typeof parse>): Promise<User[]> { +async function extractMentionedUsers(user: { host: User['host']; }, tokens: ReturnType<typeof parse>): Promise<User[]> { if (tokens == null) return []; const mentions = extractMentions(tokens); diff --git a/src/services/note/delete.ts b/src/services/note/delete.ts index 55263026028285f79a23551609801ebd9749680d..3f4f8b404cc2d1bc900cf5712fcc2a217c8dedb8 100644 --- a/src/services/note/delete.ts +++ b/src/services/note/delete.ts @@ -4,14 +4,14 @@ 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 config from '@/config'; 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 { countSameRenotes } from '../../misc/count-same-renotes'; +import { countSameRenotes } from '@/misc/count-same-renotes'; import { deliverToRelays } from '../relay'; import { Brackets, In } from 'typeorm'; diff --git a/src/services/note/polls/vote.ts b/src/services/note/polls/vote.ts index b4ce03ab6067a54005894bb1ee90a6610a72a103..aea157e5589218c609a91dc0b2f6490befaa701b 100644 --- a/src/services/note/polls/vote.ts +++ b/src/services/note/polls/vote.ts @@ -3,7 +3,7 @@ import { User } from '../../../models/entities/user'; import { Note } from '../../../models/entities/note'; import { PollVotes, NoteWatchings, Polls } from '../../../models'; import { Not } from 'typeorm'; -import { genId } from '../../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { createNotification } from '../../create-notification'; export default async function(user: User, note: Note, choice: number) { diff --git a/src/services/note/reaction/create.ts b/src/services/note/reaction/create.ts index 181099cc2dbf7ff2282087cebc77b7d0c0a7ade4..e2e7fc54ef3bed0f968b9504662ad6f26085f3ec 100644 --- a/src/services/note/reaction/create.ts +++ b/src/services/note/reaction/create.ts @@ -2,19 +2,19 @@ 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 { toDbReaction, decodeReaction } from '../../../misc/reaction-lib'; +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 } from '../../../models'; import { Not } from 'typeorm'; import { perUserReactionsChart } from '../../chart'; -import { genId } from '../../../misc/gen-id'; +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 { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error'; import { NoteReaction } from '../../../models/entities/note-reaction'; -export default async (user: User, note: Note, reaction?: string) => { +export default async (user: { id: User['id']; host: User['host']; }, note: Note, reaction?: string) => { // TODO: cache reaction = await toDbReaction(reaction, user.host); diff --git a/src/services/note/reaction/delete.ts b/src/services/note/reaction/delete.ts index 8d2f0682ca72e182cc3374d77e53b5ba2c00edd3..712031fa88a9f7be14ae2f2bc5af929de63c816a 100644 --- a/src/services/note/reaction/delete.ts +++ b/src/services/note/reaction/delete.ts @@ -3,13 +3,13 @@ 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 { IdentifiableError } from '../../../misc/identifiable-error'; +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 { decodeReaction } from '../../../misc/reaction-lib'; +import { decodeReaction } from '@/misc/reaction-lib'; -export default async (user: User, note: Note) => { +export default async (user: { id: User['id']; host: User['host']; }, note: Note) => { // if already unreacted const exist = await NoteReactions.findOne({ noteId: note.id, diff --git a/src/services/note/read.ts b/src/services/note/read.ts index 35279db41122e4136ef4d4ad3ab80909738d1157..2bdb85947676ebb9669d1c07a9c99a2543b9f54d 100644 --- a/src/services/note/read.ts +++ b/src/services/note/read.ts @@ -1,23 +1,72 @@ import { publishMainStream } from '../stream'; import { Note } from '../../models/entities/note'; import { User } from '../../models/entities/user'; -import { NoteUnreads, Antennas, AntennaNotes, Users } from '../../models'; +import { NoteUnreads, AntennaNotes, Users, Followings, ChannelFollowings } from '../../models'; import { Not, IsNull, In } from 'typeorm'; +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'; /** * Mark notes as read */ export default async function( userId: User['id'], - noteIds: Note['id'][] + notes: (Note | PackedNote)[], + info?: { + following: Set<User['id']>; + followingChannels: Set<Channel['id']>; + } ) { - async function careNoteUnreads() { + const following = info?.following ? info.following : new Set<string>((await Followings.find({ + where: { + followerId: userId + }, + select: ['followeeId'] + })).map(x => x.followeeId)); + const followingChannels = info?.followingChannels ? info.followingChannels : new Set<string>((await ChannelFollowings.find({ + where: { + followerId: userId + }, + select: ['followeeId'] + })).map(x => x.followeeId)); + + const myAntennas = (await getAntennas()).filter(a => a.userId === userId); + const readMentions: (Note | PackedNote)[] = []; + const readSpecifiedNotes: (Note | PackedNote)[] = []; + const readChannelNotes: (Note | PackedNote)[] = []; + const readAntennaNotes: (Note | PackedNote)[] = []; + + for (const note of notes) { + if (note.mentions && note.mentions.includes(userId)) { + readMentions.push(note); + } else if (note.visibleUserIds && note.visibleUserIds.includes(userId)) { + readSpecifiedNotes.push(note); + } + + if (note.channelId && followingChannels.has(note.channelId)) { + readChannelNotes.push(note); + } + + if (note.user != null) { // ãŸã¶ã‚“nullã«ãªã‚‹ã“ã¨ã¯ç„¡ã„ã¯ãšã ã‘ã©ä¸€å¿œ + for (const antenna of myAntennas) { + if (checkHitAntenna(antenna, note, note.user as any, undefined, Array.from(following))) { + readAntennaNotes.push(note); + } + } + } + } + + if ((readMentions.length > 0) || (readSpecifiedNotes.length > 0) || (readChannelNotes.length > 0)) { // Remove the record await NoteUnreads.delete({ userId: userId, - noteId: In(noteIds), + noteId: In([...readMentions.map(n => n.id), ...readSpecifiedNotes.map(n => n.id), ...readChannelNotes.map(n => n.id)]), }); + // TODO: ↓ã¾ã¨ã‚ã¦ã‚¯ã‚¨ãƒªã—ãŸã„ + NoteUnreads.count({ userId: userId, isMentioned: true @@ -49,33 +98,25 @@ export default async function( }); } - async function careAntenna() { - const antennas = await Antennas.find({ userId }); - - await Promise.all(antennas.map(async antenna => { - const countBefore = await AntennaNotes.count({ - antennaId: antenna.id, - read: false - }); - - if (countBefore === 0) return; - - await AntennaNotes.update({ - antennaId: antenna.id, - noteId: In(noteIds) - }, { - read: true - }); + if (readAntennaNotes.length > 0) { + await AntennaNotes.update({ + antennaId: In(myAntennas.map(a => a.id)), + noteId: In(readAntennaNotes.map(n => n.id)) + }, { + read: true + }); - const countAfter = await AntennaNotes.count({ + // TODO: ã¾ã¨ã‚ã¦ã‚¯ã‚¨ãƒªã—ãŸã„ + for (const antenna of myAntennas) { + const count = await AntennaNotes.count({ antennaId: antenna.id, read: false }); - if (countAfter === 0) { + if (count === 0) { publishMainStream(userId, 'readAntenna', antenna); } - })); + } Users.getHasUnreadAntenna(userId).then(unread => { if (!unread) { @@ -83,7 +124,4 @@ export default async function( } }); } - - careNoteUnreads(); - careAntenna(); } diff --git a/src/services/note/unread.ts b/src/services/note/unread.ts index 8e6fb4abe8e0c91101f3976b26a059e94a278070..5cfba0f342f19bac69d2b1e0131f9f9291af999b 100644 --- a/src/services/note/unread.ts +++ b/src/services/note/unread.ts @@ -2,7 +2,7 @@ import { Note } from '../../models/entities/note'; import { publishMainStream } from '../stream'; import { User } from '../../models/entities/user'; import { Mutings, NoteUnreads } from '../../models'; -import { genId } from '../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; export default async function(userId: User['id'], note: Note, params: { // NOTE: isSpecifiedãŒtrueãªã‚‰isMentionedã¯å¿…ãšfalse diff --git a/src/services/note/watch.ts b/src/services/note/watch.ts index 966b7f0054bbcbc1406d9db73f4311b89ea2c1db..e333f0428655e0d6220ff1919e2de02f51fc6f4c 100644 --- a/src/services/note/watch.ts +++ b/src/services/note/watch.ts @@ -1,7 +1,7 @@ import { User } from '../../models/entities/user'; import { Note } from '../../models/entities/note'; import { NoteWatchings } from '../../models'; -import { genId } from '../../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { NoteWatching } from '../../models/entities/note-watching'; export default async (me: User['id'], note: Note) => { diff --git a/src/services/push-notification.ts b/src/services/push-notification.ts index d0a0c04d62f0eeff73d0577a3ae9e3f74750906c..6c0b77c31fb096025b51cd31de3baa34a6fd538b 100644 --- a/src/services/push-notification.ts +++ b/src/services/push-notification.ts @@ -1,7 +1,7 @@ import * as push from 'web-push'; -import config from '../config'; +import config from '@/config'; import { SwSubscriptions } from '../models'; -import { fetchMeta } from '../misc/fetch-meta'; +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 2c39502288fd6077f0491a7b57d0251e21ff930e..2edf85fd9fbb1b29d601522ecbce5be023e1a66d 100644 --- a/src/services/register-or-fetch-instance-doc.ts +++ b/src/services/register-or-fetch-instance-doc.ts @@ -1,9 +1,9 @@ import { Instance } from '../models/entities/instance'; import { Instances } from '../models'; import { federationChart } from './chart'; -import { genId } from '../misc/gen-id'; -import { toPuny } from '../misc/convert-host'; -import { Cache } from '../misc/cache'; +import { genId } from '@/misc/gen-id'; +import { toPuny } from '@/misc/convert-host'; +import { Cache } from '@/misc/cache'; const cache = new Cache<Instance>(1000 * 60 * 60); diff --git a/src/services/relay.ts b/src/services/relay.ts index 0eb3bb41a1cb471214af128e38e8776406ef0efd..a2cc711bd3702aeba5f5022d6505872bb5c1a1da 100644 --- a/src/services/relay.ts +++ b/src/services/relay.ts @@ -3,9 +3,9 @@ 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 } from '../models/entities/user'; +import { ILocalUser, User } from '../models/entities/user'; import { Users, Relays } from '../models'; -import { genId } from '../misc/gen-id'; +import { genId } from '@/misc/gen-id'; const ACTOR_USERNAME = 'relay.actor' as const; @@ -75,7 +75,7 @@ export async function relayRejected(id: string) { return JSON.stringify(result); } -export async function deliverToRelays(user: ILocalUser, activity: any) { +export async function deliverToRelays(user: { id: User['id']; host: null; }, activity: any) { if (activity == null) return; const relays = await Relays.find({ diff --git a/src/services/send-email-notification.ts b/src/services/send-email-notification.ts index 7579d5b67493a9c16012a94104cbfebe4657395a..08cd04289bca724da5b63386c03ef9692514ede2 100644 --- a/src/services/send-email-notification.ts +++ b/src/services/send-email-notification.ts @@ -2,7 +2,7 @@ import { UserProfiles } from '../models'; import { User } from '../models/entities/user'; import { sendEmail } from './send-email'; import * as locales from '../../locales/'; -import { I18n } from '../misc/i18n'; +import { I18n } from '@/misc/i18n'; // TODO: locale ファイルをクライアント用ã¨ã‚µãƒ¼ãƒãƒ¼ç”¨ã§åˆ†ã‘ãŸã„ diff --git a/src/services/send-email.ts b/src/services/send-email.ts index 4814808392b4d410427f7670b13bcec95a781e80..4784ba5510ce008e8aad3f8ad96b6a3bd3a66afd 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 { fetchMeta } from '@/misc/fetch-meta'; import Logger from './logger'; -import config from '../config'; +import config from '@/config'; export const logger = new Logger('email'); diff --git a/src/services/stream.ts b/src/services/stream.ts index 75385847cea89c60de64682db0142e19049bb613..6258dc5a7da6ad9070dd2526de785725b05b8319 100644 --- a/src/services/stream.ts +++ b/src/services/stream.ts @@ -1,10 +1,10 @@ -import redis from '../db/redis'; +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 config from '@/config'; import { Antenna } from '../models/entities/antenna'; import { Channel } from '../models/entities/channel'; @@ -14,12 +14,16 @@ class Publisher { { type: type, body: null } : { type: type, body: value }; - redis.publish(config.host, JSON.stringify({ + redisClient.publish(config.host, JSON.stringify({ channel: channel, message: message })); } + public publishInternalEvent = (type: string, value?: any): void => { + this.publish('internal', type, typeof value === 'undefined' ? null : value); + } + public publishUserEvent = (userId: User['id'], type: string, value?: any): void => { this.publish(`user:${userId}`, type, typeof value === 'undefined' ? null : value); } @@ -88,6 +92,7 @@ const publisher = new Publisher(); export default publisher; +export const publishInternalEvent = publisher.publishInternalEvent; export const publishUserEvent = publisher.publishUserEvent; export const publishBroadcastStream = publisher.publishBroadcastStream; export const publishMainStream = publisher.publishMainStream; diff --git a/src/services/suspend-user.ts b/src/services/suspend-user.ts index a85188acbecba48c3c5bbcbb2ddf90c843a96b0a..c868c01305bbd72b9d7df257ba2a614d3bdd5e6d 100644 --- a/src/services/suspend-user.ts +++ b/src/services/suspend-user.ts @@ -1,12 +1,12 @@ import renderDelete from '../remote/activitypub/renderer/delete'; import { renderActivity } from '../remote/activitypub/renderer'; import { deliver } from '../queue'; -import config from '../config'; +import config from '@/config'; import { User } from '../models/entities/user'; import { Users, Followings } from '../models'; import { Not, IsNull } from 'typeorm'; -export async function doPostSuspend(user: User) { +export async function doPostSuspend(user: { id: User['id']; host: User['host'] }) { if (Users.isLocalUser(user)) { // 知り得る全SharedInboxã«Deleteé…ä¿¡ const content = renderActivity(renderDelete(`${config.url}/users/${user.id}`, user)); @@ -28,7 +28,7 @@ export async function doPostSuspend(user: User) { } for (const inbox of queue) { - deliver(user as any, content, inbox); + deliver(user, content, inbox); } } } diff --git a/src/services/unsuspend-user.ts b/src/services/unsuspend-user.ts index 6cab375821fa0c8c98bc745f43c09924b48e633e..5bc4bba4230df1bc4e3b9ab8b4ebf5c73a5baba9 100644 --- a/src/services/unsuspend-user.ts +++ b/src/services/unsuspend-user.ts @@ -2,7 +2,7 @@ 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 config from '@/config'; import { User } from '../models/entities/user'; import { Users, Followings } from '../models'; import { Not, IsNull } from 'typeorm'; diff --git a/src/services/update-hashtag.ts b/src/services/update-hashtag.ts index 3e228467315d098c9db04210717c920bb1702c8e..6b7208f005ef3da6c40453b812c5fca4b384c2d5 100644 --- a/src/services/update-hashtag.ts +++ b/src/services/update-hashtag.ts @@ -1,11 +1,11 @@ import { User } from '../models/entities/user'; import { Hashtags, Users } from '../models'; import { hashtagChart } from './chart'; -import { genId } from '../misc/gen-id'; +import { genId } from '@/misc/gen-id'; import { Hashtag } from '../models/entities/hashtag'; -import { normalizeForSearch } from '../misc/normalize-for-search'; +import { normalizeForSearch } from '@/misc/normalize-for-search'; -export async function updateHashtags(user: User, tags: string[]) { +export async function updateHashtags(user: { id: User['id']; host: User['host']; }, tags: string[]) { for (const tag of tags) { await updateHashtag(user, tag); } @@ -21,7 +21,7 @@ export async function updateUsertags(user: User, tags: string[]) { } } -export async function updateHashtag(user: User, tag: string, isUserAttached = false, inc = true) { +export async function updateHashtag(user: { id: User['id']; host: User['host']; }, tag: string, isUserAttached = false, inc = true) { tag = normalizeForSearch(tag); const index = await Hashtags.findOne({ name: tag }); diff --git a/src/services/user-list/push.ts b/src/services/user-list/push.ts index ba54c044752381e10ec7fb6e8b261f07ae1f57fb..3dd9a8576b1b4f521bcdb2c76ea4527e0c18dc28 100644 --- a/src/services/user-list/push.ts +++ b/src/services/user-list/push.ts @@ -3,8 +3,8 @@ 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 { genId } from '../../misc/gen-id'; -import { fetchProxyAccount } from '../../misc/fetch-proxy-account'; +import { genId } from '@/misc/gen-id'; +import { fetchProxyAccount } from '@/misc/fetch-proxy-account'; import createFollowing from '../following/create'; export async function pushUserToUserList(target: User, list: UserList) { diff --git a/src/tools/accept-migration.ts b/src/tools/accept-migration.ts index addce86f1f6bdfd4ffd3b759e6320b616c9e3bbf..06228693980ad17fcf04fe1378b7e7390bcda70c 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'; createConnection({ type: 'postgres', diff --git a/src/tools/add-emoji.ts b/src/tools/add-emoji.ts index 3745b48889a2e33785622f078e0218f3aae8290c..ca25d1348b49e6f86ac2a4843c6a055a1ee2e5dd 100644 --- a/src/tools/add-emoji.ts +++ b/src/tools/add-emoji.ts @@ -1,5 +1,5 @@ import { Emojis } from '../models'; -import { genId } from '../misc/gen-id'; +import { genId } from '@/misc/gen-id'; async function main(name: string, url: string, alias?: string): Promise<any> { const aliases = alias != null ? [ alias ] : []; diff --git a/src/tools/resync-remote-user.ts b/src/tools/resync-remote-user.ts index c9d1ed588c5f58a20901566e1c992f41e914139b..9897cba9f8e1badae36e1afc6369761d3f5f1922 100644 --- a/src/tools/resync-remote-user.ts +++ b/src/tools/resync-remote-user.ts @@ -1,4 +1,4 @@ -import parseAcct from '../misc/acct/parse'; +import parseAcct from '@/misc/acct/parse'; import { resolveUser } from '../remote/resolve-user'; async function main(acct: string): Promise<any> { diff --git a/src/tsconfig.json b/src/tsconfig.json index 95cb35fc5fbf7c8ed6a77ed17d52d0a71fe9e0e8..9389008eef8fc751143ac3114e736538808671d8 100644 --- a/src/tsconfig.json +++ b/src/tsconfig.json @@ -5,7 +5,7 @@ "noImplicitAny": true, "noImplicitReturns": true, "noUnusedParameters": false, - "noUnusedLocals": true, + "noUnusedLocals": false, "noFallthroughCasesInSwitch": true, "declaration": false, "sourceMap": true, @@ -21,6 +21,12 @@ "emitDecoratorMetadata": true, "resolveJsonModule": true, "isolatedModules": true, + "rootDir": "./", + "baseUrl": "./", + "paths": { + "@/*": ["./*"] + }, + "outDir": "../built", "typeRoots": [ "../node_modules/@types", "./@types" diff --git a/test/tsconfig.json b/test/tsconfig.json index 987067ba81919379b5b75d13a2ff2749578ed91c..31a537805abd0350184647ba84b2065ada1324c3 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -21,6 +21,10 @@ "emitDecoratorMetadata": true, "resolveJsonModule": true, "isolatedModules": true, + "baseUrl": "./", + "paths": { + "@/*": ["../src/*"] + }, "typeRoots": [ "../node_modules/@types", "../src/@types" diff --git a/webpack.config.ts b/webpack.config.ts index c530cf335c8350146957485acde3c7ba603ebac2..5ead4f3af227d2ddae864e2b6c557f6440ce6e2b 100644 --- a/webpack.config.ts +++ b/webpack.config.ts @@ -105,7 +105,7 @@ module.exports = { }, postcss] }, { test: /\.(eot|woff|woff2|svg|ttf)([?]?.*)$/, - loader: 'url-loader' + type: 'asset/resource' }, { test: /\.json5$/, loader: 'json5-loader', @@ -157,7 +157,8 @@ module.exports = { '.js', '.ts', '.json' ], alias: { - '@': __dirname + '/src/client', + '@client': __dirname + '/src/client', + '@': __dirname + '/src', 'const.styl': __dirname + '/src/client/const.styl' } }, diff --git a/yarn.lock b/yarn.lock index eecd562aac6d1c03e3b671de27f4b43b6ce05aa5..398c51f3c41e0d84d587746336b1f290271c22b6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -239,6 +239,22 @@ resolved "https://registry.yarnpkg.com/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.0.0-3.tgz#b658a7c1f35d4eb04ac85749da693be483442b25" integrity sha512-fCM7+R9M7Y/ipKC5n9hukGpJHhe53JOENGqtku/KWtpXsnbGik3AS5zfJYEupV2uXOw/5S0RSSfttQ2hNIrmFA== +"@jfonx/console-utils@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@jfonx/console-utils/-/console-utils-1.0.3.tgz#cbb7f911e4191a4a2fe1ba4807d29f100b5d099f" + integrity sha512-/XbnqjWc7yNZVLAJJO9rimfIz9DYte+cj3EF9hwhIv7vw6ok2t3cjl0huYsmD89srKH03vWjeqAcIH86CuYj3g== + dependencies: + colors "^1.3.3" + +"@jfonx/file-utils@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@jfonx/file-utils/-/file-utils-3.0.1.tgz#8d3d6e931a283420fe29802ea71c28dd397cd8d3" + integrity sha512-qwH0CuzWmghtTHGMyuPHj6SJPQgWeiXFJBfrxCWMbzxVCa3aLZPEfzSdlSnC/UABsk6feRkNdHXw59rVshNPqw== + dependencies: + "@jfonx/console-utils" "^1.0.3" + comment-json "^4.1.0" + find-up "^4.1.0" + "@koa/cors@3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@koa/cors/-/cors-3.1.0.tgz#618bb073438cfdbd3ebd0e648a76e33b84f3a3b2" @@ -667,6 +683,11 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + "@types/jsonld@1.5.5": version "1.5.5" resolved "https://registry.yarnpkg.com/@types/jsonld/-/jsonld-1.5.5.tgz#c2238462a83e90f003929cef6a36eded2ceed069" @@ -1707,6 +1728,11 @@ array-sort@^1.0.0: get-value "^2.0.6" kind-of "^5.0.2" +array-timsort@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-timsort/-/array-timsort-1.0.3.tgz#3c9e4199e54fb2b9c3fe5976396a21614ef0d926" + integrity sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ== + array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -2453,7 +2479,7 @@ cheerio@^0.22.0: lodash.reject "^4.4.0" lodash.some "^4.4.0" -chokidar@3.5.1, "chokidar@>=2.0.0 <4.0.0", chokidar@^2.0.0, chokidar@^3.3.1: +chokidar@3.5.1, "chokidar@>=2.0.0 <4.0.0", chokidar@^2.0.0, chokidar@^3.3.1, chokidar@^3.5.0: version "3.3.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450" integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg== @@ -2793,7 +2819,7 @@ commander@^2.12.1, commander@^2.19.0, commander@^2.20.0, commander@~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== -commander@^6.0.0: +commander@^6.0.0, commander@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== @@ -2803,6 +2829,17 @@ commander@^7.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.0.0.tgz#3e2bbfd8bb6724760980988fb5b22b7ee6b71ab2" integrity sha512-ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA== +comment-json@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-4.1.0.tgz#09d08f0fbc4ad5eeccbac20f469adbb967dcbd2c" + integrity sha512-WEghmVYaNq9NlWbrkzQTSsya9ycLyxJxpTQfZEan6a5Jomnjw18zS3Podf8q1Zf9BvonvQd/+Z7Z39L7KKzzdQ== + dependencies: + array-timsort "^1.0.3" + core-util-is "^1.0.2" + esprima "^4.0.1" + has-own-prop "^2.0.0" + repeat-string "^1.6.1" + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -2946,7 +2983,7 @@ core-js@3.9.1: resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.9.1.tgz#cec8de593db8eb2a85ffb0dbdeb312cb6e5460ae" integrity sha512-gSjRvzkxQc1zjM/5paAmL4idJBFzuJoo+jDjF1tStYFMV2ERfD02HhahhCGXUyHxQRG4yFKVSdO6g62eoRMcDg== -core-util-is@1.0.2, core-util-is@~1.0.0: +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" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= @@ -4259,6 +4296,14 @@ find-cache-dir@^2.0.0: 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" + integrity sha512-x+3P4mbtRPlSiVE1Qco0Z4YLU8WFiFcuWTf3m75OV9Uzcfs2Bg+O9N+r/K0AnmINBW06KpfqKwYJbFlFq4qNug== + dependencies: + findup-sync "^4.0.0" + merge "^2.1.0" + find-up@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" @@ -4282,7 +4327,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0: +find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -4310,6 +4355,16 @@ findup-sync@^3.0.0: micromatch "^3.0.4" resolve-dir "^1.0.1" +findup-sync@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-4.0.0.tgz#956c9cdde804052b881b428512905c4a5f2cdef0" + integrity sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ== + dependencies: + detect-file "^1.0.0" + is-glob "^4.0.0" + micromatch "^4.0.2" + resolve-dir "^1.0.1" + fined@^1.0.1: version "1.2.0" resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" @@ -4652,6 +4707,18 @@ globby@^11.0.1: merge2 "^1.3.0" slash "^3.0.0" +globby@^11.0.2: + version "11.0.3" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb" + integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + glogg@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.2.tgz#2d7dd702beda22eb3bffadf880696da6d846313f" @@ -4764,18 +4831,6 @@ gulp-tslint@8.1.4: plugin-error "1.0.1" through "~2.3.8" -gulp-typescript@6.0.0-alpha.1: - version "6.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/gulp-typescript/-/gulp-typescript-6.0.0-alpha.1.tgz#fcb0dbbc79c34201f0945c6323c194a8f5455a04" - integrity sha512-KoT0TTfjfT7w3JItHkgFH1T/zK4oXWC+a8xxKfniRfVcA0Fa1bKrIhztYelYmb+95RB80OLMBreknYkdwzdi2Q== - dependencies: - ansi-colors "^4.1.1" - plugin-error "^1.0.1" - source-map "^0.7.3" - through2 "^3.0.1" - vinyl "^2.2.0" - vinyl-fs "^3.0.3" - gulp@4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/gulp/-/gulp-4.0.2.tgz#543651070fd0f6ab0a0650c6a3e6ff5a7cb09caa" @@ -4847,6 +4902,11 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-own-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-own-prop/-/has-own-prop-2.0.0.tgz#f0f95d58f65804f5d218db32563bb85b8e0417af" + integrity sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ== + has-symbols@^1.0.0, has-symbols@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" @@ -6533,6 +6593,11 @@ merge2@^1.3.0: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +merge@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/merge/-/merge-2.1.1.tgz#59ef4bf7e0b3e879186436e8481c06a6c162ca98" + integrity sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w== + methods@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -8689,7 +8754,7 @@ readable-stream@1.1.x: isarray "0.0.1" string_decoder "~0.10.x" -"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@3, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -9503,7 +9568,7 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3, source-map@~0.7.2: +source-map@~0.7.2: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== @@ -9790,6 +9855,11 @@ strip-bom@^2.0.0: dependencies: is-utf8 "^0.2.0" +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -10168,13 +10238,6 @@ through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -through2@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" - integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== - dependencies: - readable-stream "2 || 3" - through2@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" @@ -10358,6 +10421,29 @@ ts-node@9.1.1: source-map-support "^0.5.17" yn "3.1.1" +tsc-alias@1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/tsc-alias/-/tsc-alias-1.2.8.tgz#d88bfce778c0b31d095a132209b4eefe7e16cc16" + integrity sha512-29WMSalu0cW/VuNeTEs/CPjz5z5Ae2ZBlTV0gjeoQwJNjZ5sDyPmu1C0rDmvOLPEJyo/iwqOMtNAlG17fEqBCw== + dependencies: + "@jfonx/console-utils" "^1.0.3" + "@jfonx/file-utils" "^3.0.1" + chokidar "^3.5.0" + commander "^6.2.1" + find-node-modules "^2.1.0" + globby "^11.0.2" + normalize-path "^3.0.0" + +tsconfig-paths@3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" + integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + tslib@^1.13.0: version "1.13.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" @@ -10644,15 +10730,6 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-loader@4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" - integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== - dependencies: - loader-utils "^2.0.0" - mime-types "^2.1.27" - schema-utils "^3.0.0" - url@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" @@ -10772,7 +10849,7 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vinyl-fs@^3.0.0, vinyl-fs@^3.0.3: +vinyl-fs@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng== @@ -10815,7 +10892,7 @@ vinyl-sourcemaps-apply@^0.2.1: dependencies: source-map "^0.5.1" -vinyl@^2.0.0, vinyl@^2.2.0: +vinyl@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== @@ -10990,10 +11067,10 @@ webpack-sources@^2.1.1: source-list-map "^2.0.1" source-map "^0.6.1" -webpack@5.26.3: - version "5.26.3" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.26.3.tgz#bafd439abac08fbb82657ec855d038743b725ab8" - integrity sha512-z/F2lt2N1fZqaud1B4SzjL3OW03eULThbBXQ2OX4LSrZX4N9k1A5d0Rje3zS2g887DTWyAV0KGqEf64ois2dhg== +webpack@5.27.2: + version "5.27.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.27.2.tgz#44442219e1469ebe00292703b848580faae03f07" + integrity sha512-brNF3N/EdvMzkaZ/Xzb8sqPn5Si3iw6meqCnmNFtcnkorZsFZCBFMa2ElpIMjx6sKWYsnUpBO2dnX+7xgj+mjg== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.46"