Compare commits
148 Commits
Author | SHA1 | Date | |
---|---|---|---|
a0c6ae2cba | |||
9a51ae5def | |||
f7c21868fe | |||
5d968afa74 | |||
b6e3f1c490 | |||
cb4d65b5c9 | |||
a902576334 | |||
1c6463e66f | |||
1cf5198372 | |||
a9a5673069 | |||
9d67857a34 | |||
25fde3b5eb | |||
0e3ca41b3c | |||
318759cfa4 | |||
73b5c12927 | |||
c850cef711 | |||
12fad68f58 | |||
037db7c5ef | |||
ea9aeef9d8 | |||
63415f1074 | |||
dded3912f8 | |||
d35f0247a2 | |||
76a7b5f067 | |||
c864d700d2 | |||
50e1040f1e | |||
8a40026c5c | |||
974250da6c | |||
7042933b3b | |||
8b7f5be878 | |||
01afdc410e | |||
7f5299cf46 | |||
ac7f04e669 | |||
65740da979 | |||
4ab773eb92 | |||
66b512af5d | |||
0f9a6417b0 | |||
6a9e52d83c | |||
1161d6cae2 | |||
187696c973 | |||
4b7b51d5cc | |||
0e3213ff6d | |||
9b092e918a | |||
cfa38e875c | |||
9ea7d75aa4 | |||
165d272552 | |||
9b876b30b2 | |||
5e82064a7d | |||
90fade8e72 | |||
c038892795 | |||
926eb34680 | |||
e6e33faefb | |||
0a2e046b28 | |||
36a632dc02 | |||
c9ce150fe8 | |||
6496835515 | |||
b404ce463f | |||
b875b0faa2 | |||
4786214e2a | |||
0484976afa | |||
19cc9f7fb0 | |||
7706c38d3d | |||
9acc36185b | |||
be89516707 | |||
e5acd1afb9 | |||
f6e7f389d6 | |||
b9eaf906e7 | |||
84df0714d8 | |||
c7650846a2 | |||
ea97d6a028 | |||
0e4a111f81 | |||
037837b551 | |||
c5eb3021c0 | |||
3b8b03d8b4 | |||
1afe46b19a | |||
fe281f1786 | |||
24ef4d3da2 | |||
68192126e6 | |||
a28c515ef6 | |||
07526ada45 | |||
71d9c2a53d | |||
c0144db75c | |||
5e8c95bde8 | |||
8630542146 | |||
a674657bcb | |||
c625a3fa5b | |||
ae6f0d49c2 | |||
575a8bd9c8 | |||
3db7551ad3 | |||
37b535df30 | |||
f30df92597 | |||
9b18104343 | |||
e2862ed097 | |||
1c38c7010d | |||
34ea3cf226 | |||
944250f7fd | |||
ab0253ab07 | |||
758e054c92 | |||
187b44c7f3 | |||
587ea5b424 | |||
1a883f4f05 | |||
540e6e4f99 | |||
baf3d8f3ee | |||
7a66c9b5f3 | |||
15cd563612 | |||
e2556189de | |||
9236a8fd6c | |||
303c5abfb4 | |||
fc65190ef7 | |||
f47a564819 | |||
fa0814f939 | |||
ddd931a0a3 | |||
46010187c3 | |||
877bd52ed7 | |||
d964c5f27f | |||
d35b02fa23 | |||
21ece52a9f | |||
c2ae160d23 | |||
9c74c5c5dc | |||
2e80cebc11 | |||
f418eaecf9 | |||
901436a095 | |||
a905188e95 | |||
a21070c01b | |||
5d0ee544f4 | |||
e52a9e0a65 | |||
67bf6ff3ce | |||
000bee6327 | |||
19a232cad7 | |||
a744f75eb9 | |||
5cf07fc50f | |||
1143606bc8 | |||
09f4885f89 | |||
dfd92efa89 | |||
c3fcfad910 | |||
652588abed | |||
2b4d5b73b9 | |||
c08d959b59 | |||
7783c1e0e1 | |||
6afa67089a | |||
26928ab407 | |||
4f04421cb3 | |||
4d1c723496 | |||
ae5d537197 | |||
2d21685d22 | |||
d4c0d85cbc | |||
781b57585b | |||
a0b036a119 | |||
c6afc61c94 |
@ -1,49 +0,0 @@
|
||||
version: 2.1
|
||||
|
||||
executors:
|
||||
docker:
|
||||
working_directory: /tmp/workspace
|
||||
docker:
|
||||
- image: docker:latest
|
||||
|
||||
jobs:
|
||||
docker:
|
||||
parameters:
|
||||
with_deploy:
|
||||
type: boolean
|
||||
default: false
|
||||
executor: docker
|
||||
steps:
|
||||
- checkout
|
||||
- setup_remote_docker:
|
||||
version: 19.03.13
|
||||
- run:
|
||||
name: Build
|
||||
command: |
|
||||
docker build -t misskey/misskey .
|
||||
- when:
|
||||
condition: <<parameters.with_deploy>>
|
||||
steps:
|
||||
- run:
|
||||
name: Deploy
|
||||
command: |
|
||||
if [ "$DOCKERHUB_USERNAME$DOCKERHUB_PASSWORD" ]
|
||||
then
|
||||
apk update && apk add jq
|
||||
docker tag misskey/misskey misskey/misskey:$(cat package.json | jq -r .version)
|
||||
docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
|
||||
docker push -a misskey/misskey
|
||||
else
|
||||
echo -e '\033[0;33mAborted deploying to Docker Hub\033[0;39m'
|
||||
fi
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
docker:
|
||||
jobs:
|
||||
- docker:
|
||||
name: auto-build
|
||||
with_deploy: true
|
||||
filters:
|
||||
branches:
|
||||
only: master
|
@ -1,12 +0,0 @@
|
||||
url: 'http://misskey.local'
|
||||
port: 8080
|
||||
db:
|
||||
host: localhost
|
||||
port: 5432
|
||||
db: test-misskey
|
||||
user: postgres
|
||||
pass: ''
|
||||
redis:
|
||||
host: localhost
|
||||
port: 6379
|
||||
id: aid
|
@ -1,12 +0,0 @@
|
||||
url: 'http://misskey.local'
|
||||
port: 8080
|
||||
db:
|
||||
host: localhost
|
||||
port: 5432
|
||||
db: test-misskey
|
||||
user: postgres
|
||||
pass: ''
|
||||
redis:
|
||||
host: localhost
|
||||
port: 6379
|
||||
id: aid
|
13
.eslintrc
13
.eslintrc
@ -1,13 +0,0 @@
|
||||
{
|
||||
"parserOptions": {
|
||||
"parser": "@typescript-eslint/parser"
|
||||
},
|
||||
"extends": [
|
||||
"eslint:recommended"
|
||||
],
|
||||
"rules": {
|
||||
"no-console": 0,
|
||||
"no-unused-vars": 0,
|
||||
"no-empty": 0
|
||||
}
|
||||
}
|
38
.github/CODEOWNERS
vendored
38
.github/CODEOWNERS
vendored
@ -1,38 +0,0 @@
|
||||
# PATH OWNERS
|
||||
/.autogen/ @acid-chicken
|
||||
/.circleci/ @syuilo @acid-chicken
|
||||
/.config/ @syuilo @AyaMorisawa @mei23 @acid-chicken @rinsuki
|
||||
# /.config/mongo_initdb_example.js @khws4v1
|
||||
/.github/ @syuilo @AyaMorisawa @acid-chicken
|
||||
/.vscode/ @acid-chicken
|
||||
/assets/ @syuilo # @tamaina
|
||||
/docs/ @syuilo
|
||||
/docs/*.en.md @AyaMorisawa # @skid9000
|
||||
# /docs/*.fr.md @BoFFire
|
||||
# /docs/docker.*.md @khws4v1
|
||||
/locales/ @syuilo
|
||||
/src/ @syuilo @AyaMorisawa @mei23 @acid-chicken @rinsuki
|
||||
# /src/crypto_key.cc @akihikodaki
|
||||
# /src/crypto_key.d.ts @akihikodaki
|
||||
/.dockerignore @syuilo # @khws4v1
|
||||
/.editorconfig @syuilo @AyaMorisawa
|
||||
/.eslintrc @syuilo
|
||||
/.gitattributes @syuilo
|
||||
/.gitignore @syuilo
|
||||
/.npmrc @syuilo
|
||||
/.vsls.json @AyaMorisawa
|
||||
/CHANGELOG.md @syuilo
|
||||
/CODE_OF_CONDUCT.md @syuilo
|
||||
/CONTRIBUTING.md @syuilo
|
||||
/Dockerfile @syuilo @AyaMorisawa @acid-chicken # @khws4v1
|
||||
/LICENSE @syuilo
|
||||
/README.md @syuilo @AyaMorisawa @acid-chicken # @nikhiljha
|
||||
# /binding.gyp @akihikodaki
|
||||
/crowdin.yml @syuilo
|
||||
# /docker-compose.yml @khws4v1
|
||||
/gulpfile.ts @syuilo @AyaMorisawa
|
||||
/jsconfig.json @syuilo @AyaMorisawa
|
||||
/package.json @syuilo @AyaMorisawa
|
||||
/tsconfig.json @syuilo @AyaMorisawa
|
||||
/tslint.json @syuilo @AyaMorisawa
|
||||
/webpack.config.ts @syuilo @AyaMorisawa
|
3
test/test.yml → .github/misskey/test.yml
vendored
3
test/test.yml → .github/misskey/test.yml
vendored
@ -1,5 +1,8 @@
|
||||
url: 'http://misskey.local'
|
||||
|
||||
# ローカルでテストするときにポートを被らないようにするためデフォルトのものとは変える(以下同じ)
|
||||
port: 61812
|
||||
|
||||
db:
|
||||
host: localhost
|
||||
port: 54312
|
25
.github/workflows/lint.yml
vendored
Normal file
25
.github/workflows/lint.yml
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
name: Lint
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 12.x
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: '**/node_modules'
|
||||
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
|
||||
- run: yarn install
|
||||
- run: yarn lint
|
59
.github/workflows/nodejs.yml
vendored
59
.github/workflows/nodejs.yml
vendored
@ -1,59 +0,0 @@
|
||||
name: Node.js CI
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
build_and_test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [14.x, 16.x]
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:12.2-alpine
|
||||
ports:
|
||||
- 54312:5432
|
||||
env:
|
||||
POSTGRES_DB: test-misskey
|
||||
POSTGRES_HOST_AUTH_METHOD: trust
|
||||
redis:
|
||||
image: redis:4.0-alpine
|
||||
ports:
|
||||
- 56312:6379
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: Install dependencies
|
||||
run: yarn install
|
||||
- name: Check yarn.lock
|
||||
run: git diff --exit-code yarn.lock
|
||||
- name: Copy Configure
|
||||
run: cp test/test.yml .config
|
||||
- name: Build
|
||||
run: yarn build
|
||||
- name: Test
|
||||
run: yarn test
|
||||
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 12.x
|
||||
- run: yarn install
|
||||
- run: yarn lint
|
91
.github/workflows/test.yml
vendored
Normal file
91
.github/workflows/test.yml
vendored
Normal file
@ -0,0 +1,91 @@
|
||||
name: Test
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
mocha:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [16.x]
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:12.2-alpine
|
||||
ports:
|
||||
- 54312:5432
|
||||
env:
|
||||
POSTGRES_DB: test-misskey
|
||||
POSTGRES_HOST_AUTH_METHOD: trust
|
||||
redis:
|
||||
image: redis:4.0-alpine
|
||||
ports:
|
||||
- 56312:6379
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: Install dependencies
|
||||
run: yarn install
|
||||
- name: Check yarn.lock
|
||||
run: git diff --exit-code yarn.lock
|
||||
- name: Copy Configure
|
||||
run: cp .github/misskey/test.yml .config
|
||||
- name: Build
|
||||
run: yarn build
|
||||
- name: Test
|
||||
run: yarn mocha
|
||||
|
||||
e2e:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [16.x]
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:12.2-alpine
|
||||
ports:
|
||||
- 54312:5432
|
||||
env:
|
||||
POSTGRES_DB: test-misskey
|
||||
POSTGRES_HOST_AUTH_METHOD: trust
|
||||
redis:
|
||||
image: redis:4.0-alpine
|
||||
ports:
|
||||
- 56312:6379
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: true
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: '**/node_modules'
|
||||
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
|
||||
- name: Install dependencies
|
||||
run: yarn install
|
||||
- name: Check yarn.lock
|
||||
run: git diff --exit-code yarn.lock
|
||||
- name: Copy Configure
|
||||
run: cp .github/misskey/test.yml .config
|
||||
- name: Build
|
||||
run: yarn build
|
||||
- name: Test
|
||||
run: yarn e2e
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -6,7 +6,7 @@
|
||||
/.idea
|
||||
|
||||
# Node.js
|
||||
/node_modules
|
||||
node_modules
|
||||
report.*.json
|
||||
|
||||
# Cypress
|
||||
@ -20,7 +20,7 @@ cypress/videos
|
||||
|
||||
# misskey
|
||||
/build
|
||||
/built
|
||||
built
|
||||
/data
|
||||
/.cache-loader
|
||||
/db
|
||||
|
@ -1,5 +0,0 @@
|
||||
{
|
||||
"ignoredFiles": [
|
||||
"test/resources/*"
|
||||
]
|
||||
}
|
2
.vscode/extensions.json
vendored
2
.vscode/extensions.json
vendored
@ -3,7 +3,7 @@
|
||||
"editorconfig.editorconfig",
|
||||
"eg2.vscode-npm-script",
|
||||
"ms-vscode.typescript-javascript-grammar",
|
||||
"ms-vscode.vscode-typescript-tslint-plugin",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"johnsoncodehk.volar",
|
||||
"sysoev.language-stylus"
|
||||
]
|
||||
|
75
CHANGELOG.md
75
CHANGELOG.md
@ -7,6 +7,81 @@
|
||||
|
||||
-->
|
||||
|
||||
## 12.97.0 (2021/11/19)
|
||||
|
||||
### Improvements
|
||||
- クライアント: 返信先やRenoteに対しても自動折りたたみされるように
|
||||
- クライアント: 長いスレッドの表示を改善
|
||||
- クライアント: 翻訳にもMFMを適用し、元の文章の改行などを保持するように
|
||||
- クライアント: アカウント削除に確認ダイアログを出すように
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: ユーザー検索の「全て」が動作しない問題を修正
|
||||
- クライアント: リアクション一覧、Renote一覧ツールチップのスタイルを修正
|
||||
|
||||
## 12.96.1 (2021/11/13)
|
||||
### Improvements
|
||||
- npm scriptの互換性を向上
|
||||
|
||||
## 12.96.0 (2021/11/13)
|
||||
|
||||
### Improvements
|
||||
- フォロー/フォロワーを非公開にできるように
|
||||
- インスタンスプロフィールレンダリング ready
|
||||
- 通知のリアクションアイコンをホバーで拡大できるように
|
||||
- RenoteボタンをホバーでRenoteしたユーザー一覧を表示するように
|
||||
- 返信の際にメンションを含めるように
|
||||
- 通報があったときに管理者へEメールで通知されるように
|
||||
- メールアドレスのバリデーションを強化
|
||||
|
||||
### Bugfixes
|
||||
- アカウント削除処理があると高負荷になる問題を修正
|
||||
- クライアント: 長いメニューが画面からはみ出す問題を修正
|
||||
- クライアント: コントロールパネルのジョブキューに個々のジョブが表示されないのを修正
|
||||
- クライアント: fix missing i18n string
|
||||
- fix html conversion issue with code blocks
|
||||
|
||||
### Changes
|
||||
- ノートにモバイルからの投稿か否かの情報を含めないように
|
||||
|
||||
## 12.95.0 (2021/10/31)
|
||||
|
||||
### Improvements
|
||||
- スレッドミュート機能
|
||||
|
||||
### Bugfixes
|
||||
- リレー向けのActivityが一部実装で除外されてしまうことがあるのを修正
|
||||
- 削除したノートやユーザーがリモートから参照されると復活することがあるのを修正
|
||||
- クライアント: ページ編集時のドロップダウンメニューなどが動作しない問題を修正
|
||||
- クライアント: コントロールパネルのカスタム絵文字タブが切り替わらないように見える問題を修正
|
||||
- API: ユーザー情報の hasUnreadChannel が常に false になっている問題を修正
|
||||
|
||||
## 12.94.1 (2021/10/25)
|
||||
|
||||
### Improvements
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: ユーザーページのナビゲーションが失敗する問題を修正
|
||||
|
||||
## 12.94.0 (2021/10/25)
|
||||
|
||||
### Improvements
|
||||
- クライアント: 画像ビューアを強化
|
||||
- クライアント: メンションにユーザーのアバターを表示するように
|
||||
- クライアント: デザインの調整
|
||||
- クライアント: twemojiをセルフホスティングするように
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: CWで画像が隠されたとき、画像の高さがおかしいことになる問題を修正
|
||||
|
||||
### NOTE
|
||||
- このバージョンから、iOS 15未満のサポートがされなくなります。対象のバージョンをお使いの方は、iOSのバージョンアップを行ってください。
|
||||
|
||||
## 12.93.2 (2021/10/23)
|
||||
|
||||
### Bugfixes
|
||||
- クライアント: ウィジェットを追加できない問題を修正
|
||||
|
||||
## 12.93.1 (2021/10/23)
|
||||
|
||||
### Bugfixes
|
||||
|
@ -49,9 +49,10 @@ If your language is not listed in Crowdin, please open an issue.
|
||||
|
||||

|
||||
|
||||
## Documentation
|
||||
* Documents for instance admins are located in [`/docs`](/docs).
|
||||
* Documents for end users are located in [`/src/docs`](/src/docs).
|
||||
## Development
|
||||
During development, it is useful to use the `npm run dev` command.
|
||||
This command monitors the server-side and client-side source files and automatically builds them if they are modified.
|
||||
In addition, it will also automatically start the Misskey server process.
|
||||
|
||||
## Testing
|
||||
- Test codes are located in [`/test`](/test).
|
||||
@ -180,7 +181,7 @@ MongoDBは`null`で返してきてたので、その感覚で`if (x === null)`
|
||||
|
||||
### Migration作成方法
|
||||
```
|
||||
npx ts-node ./node_modules/typeorm/cli.js migration:generate -n 変更の名前
|
||||
npx ts-node ./node_modules/typeorm/cli.js migration:generate -n 変更の名前 -o
|
||||
```
|
||||
|
||||
作成されたスクリプトは不必要な変更を含むため除去してください。
|
||||
|
@ -26,6 +26,9 @@ ENTRYPOINT ["/sbin/tini", "--"]
|
||||
|
||||
COPY --from=builder /misskey/node_modules ./node_modules
|
||||
COPY --from=builder /misskey/built ./built
|
||||
COPY --from=builder /misskey/packages/backend/node_modules ./packages/backend/node_modules
|
||||
COPY --from=builder /misskey/packages/backend/built ./packages/backend/built
|
||||
COPY --from=builder /misskey/packages/client/node_modules ./packages/client/node_modules
|
||||
COPY . ./
|
||||
|
||||
CMD ["npm", "run", "migrateandstart"]
|
||||
|
@ -4,7 +4,6 @@
|
||||
|
||||
<div align="center">
|
||||
|
||||
[](https://circleci.com/gh/misskey-dev/misskey)
|
||||
[](https://david-dm.org/misskey-dev/misskey)
|
||||
[](http://makeapullrequest.com)
|
||||
[](https://github.com/humanetech-community/awesome-humane-tech)
|
||||
|
@ -2,6 +2,3 @@ files:
|
||||
- source: /locales/ja-JP.yml
|
||||
translation: /locales/%locale%.yml
|
||||
update_option: update_as_unapproved
|
||||
- source: /src/docs/ja-JP/**/*.md
|
||||
translation: /src/docs/%locale%/**/%original_file_name%
|
||||
update_option: update_as_unapproved
|
||||
|
@ -1,3 +1,3 @@
|
||||
{
|
||||
"baseUrl": "http://localhost"
|
||||
"baseUrl": "http://localhost:61812"
|
||||
}
|
||||
|
@ -128,7 +128,8 @@ describe('After user signup', () => {
|
||||
cy.get('[data-cy-signin-username] input').type('alice');
|
||||
cy.get('[data-cy-signin-password] input').type('alice1234{enter}');
|
||||
|
||||
cy.contains('アカウントが凍結されています');
|
||||
// TODO: cypressにブラウザの言語指定できる機能が実装され次第英語のみテストするようにする
|
||||
cy.contains(/アカウントが凍結されています|This account has been suspended due to/gi);
|
||||
});
|
||||
});
|
||||
|
||||
|
62
gulpfile.js
Normal file
62
gulpfile.js
Normal file
@ -0,0 +1,62 @@
|
||||
/**
|
||||
* Gulp tasks
|
||||
*/
|
||||
|
||||
const fs = require('fs');
|
||||
const gulp = require('gulp');
|
||||
const replace = require('gulp-replace');
|
||||
const terser = require('gulp-terser');
|
||||
const cssnano = require('gulp-cssnano');
|
||||
|
||||
const locales = require('./locales');
|
||||
const meta = require('./package.json');
|
||||
|
||||
gulp.task('copy:backend:views', () =>
|
||||
gulp.src('./packages/backend/src/server/web/views/**/*').pipe(gulp.dest('./packages/backend/built/server/web/views'))
|
||||
);
|
||||
|
||||
gulp.task('copy:client:fonts', () =>
|
||||
gulp.src('./packages/client/node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/_client_dist_/fonts/'))
|
||||
);
|
||||
|
||||
gulp.task('copy:client:locales', cb => {
|
||||
fs.mkdirSync('./built/_client_dist_/locales', { recursive: true });
|
||||
|
||||
const v = { '_version_': meta.version };
|
||||
|
||||
for (const [lang, locale] of Object.entries(locales)) {
|
||||
fs.writeFileSync(`./built/_client_dist_/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8');
|
||||
}
|
||||
|
||||
cb();
|
||||
});
|
||||
|
||||
gulp.task('build:backend:script', () => {
|
||||
return gulp.src(['./packages/backend/src/server/web/boot.js', './packages/backend/src/server/web/bios.js', './packages/backend/src/server/web/cli.js'])
|
||||
.pipe(replace('VERSION', JSON.stringify(meta.version)))
|
||||
.pipe(replace('LANGS', JSON.stringify(Object.keys(locales))))
|
||||
.pipe(terser({
|
||||
toplevel: true
|
||||
}))
|
||||
.pipe(gulp.dest('./packages/backend/built/server/web/'));
|
||||
});
|
||||
|
||||
gulp.task('build:backend:style', () => {
|
||||
return gulp.src(['./packages/backend/src/server/web/style.css', './packages/backend/src/server/web/bios.css', './packages/backend/src/server/web/cli.css'])
|
||||
.pipe(cssnano({
|
||||
zindex: false
|
||||
}))
|
||||
.pipe(gulp.dest('./packages/backend/built/server/web/'));
|
||||
});
|
||||
|
||||
gulp.task('build', gulp.parallel(
|
||||
'copy:client:locales', 'copy:backend:views', 'build:backend:script', 'build:backend:style', 'copy:client:fonts'
|
||||
));
|
||||
|
||||
gulp.task('default', gulp.task('build'));
|
||||
|
||||
gulp.task('watch', () => {
|
||||
gulp.watch([
|
||||
'./packages/*/src/**/*',
|
||||
], { ignoreInitial: false }, gulp.task('build'));
|
||||
});
|
80
gulpfile.ts
80
gulpfile.ts
@ -1,80 +0,0 @@
|
||||
/**
|
||||
* Gulp tasks
|
||||
*/
|
||||
|
||||
import * as fs from 'fs';
|
||||
import * as gulp from 'gulp';
|
||||
import rimraf from 'rimraf';
|
||||
const replace = require('gulp-replace');
|
||||
const terser = require('gulp-terser');
|
||||
const cssnano = require('gulp-cssnano');
|
||||
|
||||
const locales: { [x: string]: any } = require('./locales');
|
||||
const meta = require('./package.json');
|
||||
|
||||
gulp.task('build:copy:views', () =>
|
||||
gulp.src('./src/server/web/views/**/*').pipe(gulp.dest('./built/server/web/views'))
|
||||
);
|
||||
|
||||
gulp.task('build:copy:fonts', () =>
|
||||
gulp.src('./node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/assets/fonts/'))
|
||||
);
|
||||
|
||||
gulp.task('build:copy:locales', cb => {
|
||||
fs.mkdirSync('./built/assets/locales', { recursive: true });
|
||||
|
||||
const v = { '_version_': meta.version };
|
||||
|
||||
for (const [lang, locale] of Object.entries(locales)) {
|
||||
fs.writeFileSync(`./built/assets/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8');
|
||||
}
|
||||
|
||||
cb();
|
||||
});
|
||||
|
||||
gulp.task('build:client:script', () => {
|
||||
return gulp.src(['./src/server/web/boot.js', './src/server/web/bios.js', './src/server/web/cli.js'])
|
||||
.pipe(replace('VERSION', JSON.stringify(meta.version)))
|
||||
.pipe(replace('LANGS', JSON.stringify(Object.keys(locales))))
|
||||
.pipe(terser({
|
||||
toplevel: true
|
||||
}))
|
||||
.pipe(gulp.dest('./built/server/web/'));
|
||||
});
|
||||
|
||||
gulp.task('build:client:style', () => {
|
||||
return gulp.src(['./src/server/web/style.css', './src/server/web/bios.css', './src/server/web/cli.css'])
|
||||
.pipe(cssnano({
|
||||
zindex: false
|
||||
}))
|
||||
.pipe(gulp.dest('./built/server/web/'));
|
||||
});
|
||||
|
||||
gulp.task('build:copy', gulp.parallel('build:copy:locales', 'build:copy:views', 'build:client:script', 'build:client:style', 'build:copy:fonts', () =>
|
||||
gulp.src([
|
||||
'./src/emojilist.json',
|
||||
'./src/**/assets/**/*',
|
||||
'!./src/client/assets/**/*'
|
||||
]).pipe(gulp.dest('./built/'))
|
||||
));
|
||||
|
||||
gulp.task('clean', cb =>
|
||||
rimraf('./built', cb)
|
||||
);
|
||||
|
||||
gulp.task('cleanall', gulp.parallel('clean', cb =>
|
||||
rimraf('./node_modules', cb)
|
||||
));
|
||||
|
||||
gulp.task('build', gulp.parallel(
|
||||
'build:copy',
|
||||
));
|
||||
|
||||
gulp.task('default', gulp.task('build'));
|
||||
|
||||
gulp.task('watch', () => {
|
||||
gulp.watch([
|
||||
'./src/**/*',
|
||||
'!./src/client/**/*'
|
||||
], { ignoreInitial: false }, gulp.task('build'));
|
||||
});
|
17
index.js
17
index.js
@ -1,17 +0,0 @@
|
||||
/*
|
||||
import * as fs from 'fs';
|
||||
|
||||
if (fs.existsSync('./built')) {
|
||||
import('./built/index.js').then(built => built());
|
||||
} else {
|
||||
console.log('Built code is not found. Probably an error occurred during a build or you just forgot to build.');
|
||||
}
|
||||
*/
|
||||
|
||||
const fs = require('fs');
|
||||
|
||||
if (fs.existsSync('./built')) {
|
||||
require('./built').default();
|
||||
} else {
|
||||
console.log('Built code is not found. Probably an error occurred during a build or you just forgot to build.');
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -52,6 +52,7 @@ searchUser: "Vyhledat uživatele"
|
||||
reply: "Odpovědět"
|
||||
loadMore: "Zobrazit více"
|
||||
showMore: "Zobrazit více"
|
||||
youGotNewFollower: "Máte nového následovníka"
|
||||
mention: "Zmínění"
|
||||
mentions: "Zmínění"
|
||||
importAndExport: "Import a export"
|
||||
@ -163,6 +164,7 @@ clearQueue: "Vyčistit frontu"
|
||||
clearQueueConfirmTitle: "Jste si jisti že zrušit všechny úlohy ve frontě?"
|
||||
clearCachedFiles: "Vyprázdnit mezipaměť"
|
||||
blockedInstances: "Blokované instance"
|
||||
noUsers: "Žádní uživatelé"
|
||||
editProfile: "Upravit můj profil"
|
||||
pinLimitExceeded: "Nemůžete připnout další poznámky."
|
||||
intro: "Instalace Misskey byla dokončena! Prosím vytvořte admina."
|
||||
@ -170,6 +172,7 @@ done: "Hotovo"
|
||||
processing: "Zpracovávám"
|
||||
preview: "Náhled"
|
||||
default: "Výchozí"
|
||||
noCustomEmojis: "Bez Emoji"
|
||||
blocked: "Blokováno"
|
||||
suspended: "Suspendováno"
|
||||
all: "Vše"
|
||||
@ -402,6 +405,9 @@ smtpPass: "Heslo"
|
||||
clearCache: "Vyprázdnit mezipaměť"
|
||||
info: "Informace"
|
||||
user: "Uživatelé"
|
||||
_email:
|
||||
_follow:
|
||||
title: "Máte nového následovníka"
|
||||
_mfm:
|
||||
mention: "Zmínění"
|
||||
quote: "Citovat"
|
||||
@ -464,6 +470,7 @@ _pages:
|
||||
types:
|
||||
array: "Seznamy"
|
||||
_notification:
|
||||
youWereFollowed: "Máte nového následovníka"
|
||||
youWereInvitedToGroup: "Pozvat do skupiny"
|
||||
_types:
|
||||
follow: "Sledovaní"
|
||||
|
@ -620,6 +620,8 @@ reportAbuse: "Melden"
|
||||
reportAbuseOf: "{name} melden"
|
||||
fillAbuseReportDescription: "Bitte gib zusätzliche Informationen zu dieser Meldung an. Falls es sich um eine spezielle Notiz handelt, bitte gib dessen URL an."
|
||||
abuseReported: "Die Meldung wurde versendet. Vielen Dank."
|
||||
reporteeOrigin: "Herkunft des Gemeldeten"
|
||||
reporterOrigin: "Herkunft des Meldenden"
|
||||
send: "Senden"
|
||||
abuseMarkAsResolved: "Meldung als gelöst markieren"
|
||||
openInNewTab: "In neuem Tab öffnen"
|
||||
@ -795,10 +797,27 @@ itsOff: "Ausgeschaltet"
|
||||
emailRequiredForSignup: "Angaben einer Email-Adresse als benötigt markieren"
|
||||
unread: "Ungelesen"
|
||||
filter: "Filter"
|
||||
controllPanel: "Systemsteuerung"
|
||||
controlPanel: "Systemsteuerung"
|
||||
manageAccounts: "Benutzerkonten verwalten"
|
||||
makeReactionsPublic: "Reaktionsverlauf veröffentlichen"
|
||||
makeReactionsPublicDescription: "Jeder wird die Liste deiner gesendeten Reaktionen einsehen können."
|
||||
classic: "Classic"
|
||||
muteThread: "Thread stummschalten"
|
||||
unmuteThread: "Threadstummschaltung aufheben"
|
||||
ffVisibility: "Sichtbarkeit von Gefolgten/Followern"
|
||||
ffVisibilityDescription: "Konfiguriere wer sehen kann, wem du folgst sowie wer dir folgt."
|
||||
continueThread: "Weiteren Threadverlauf anzeigen"
|
||||
deleteAccountConfirm: "Dein Benutzerkonto wird unwiderruflich gelöscht. Trotzdem fortfahren?"
|
||||
_emailUnavailable:
|
||||
used: "Diese Email-Adresse wird bereits verwendet"
|
||||
format: "Das Format dieser Email-Adresse ist ungültig"
|
||||
disposable: "Wegwerf-Email-Adressen können nicht verwendet werden"
|
||||
mx: "Dieser Email-Server ist ungültig"
|
||||
smtp: "Dieser Email-Server antwortet nicht"
|
||||
_ffVisibility:
|
||||
public: "Öffentlich"
|
||||
followers: "Nur für Follower sichtbar"
|
||||
private: "Privat"
|
||||
_signup:
|
||||
almostThere: "Fast geschafft"
|
||||
emailAddressInfo: "Bitte gib deine Email-Adresse ein."
|
||||
@ -810,13 +829,6 @@ _accountDelete:
|
||||
requestAccountDelete: "Löschung des Benutzerkontos anfordern"
|
||||
started: "Löschung wurde eingeleitet."
|
||||
inProgress: "Löschung in Bearbeitung"
|
||||
_docs:
|
||||
continueReading: "Mehr lesen"
|
||||
features: "Funktionen"
|
||||
generalTopics: "Allgemeine Themen"
|
||||
advancedTopics: "Erweiterte Themen"
|
||||
admin: "Administration"
|
||||
translateWarn: "Dies ist ein übersetztes Dokument. Es kann zu Unterschieden mit dem Original kommen."
|
||||
_ad:
|
||||
back: "Zurück"
|
||||
reduceFrequencyOfThisAd: "Diese Werbung weniger anzeigen"
|
||||
|
@ -620,6 +620,8 @@ reportAbuse: "Report"
|
||||
reportAbuseOf: "Report {name}"
|
||||
fillAbuseReportDescription: "Please fill in details regarding this report. If it is about a specific note, please include its URL."
|
||||
abuseReported: "Your report has been sent. Thank you very much."
|
||||
reporteeOrigin: "Reportee Origin"
|
||||
reporterOrigin: "Reporter Origin"
|
||||
send: "Send"
|
||||
abuseMarkAsResolved: "Mark report as resolved"
|
||||
openInNewTab: "Open in new tab"
|
||||
@ -795,10 +797,27 @@ itsOff: "Disabled"
|
||||
emailRequiredForSignup: "Require email address for sign-up"
|
||||
unread: "Unread"
|
||||
filter: "Filter"
|
||||
controllPanel: "Control Panel"
|
||||
controlPanel: "Control Panel"
|
||||
manageAccounts: "Manage Accounts"
|
||||
makeReactionsPublic: "Set reaction history to public"
|
||||
makeReactionsPublicDescription: "This will make the list of all your past reactions publicly visible."
|
||||
classic: "Classic"
|
||||
muteThread: "Mute thread"
|
||||
unmuteThread: "Unmute thread"
|
||||
ffVisibility: "Follows/Followers Visibility"
|
||||
ffVisibilityDescription: "Allows you to configure who can see who you follow and who follows you."
|
||||
continueThread: "View thread continuation"
|
||||
deleteAccountConfirm: "This will irreversibly delete your account. Proceed?"
|
||||
_emailUnavailable:
|
||||
used: "This email address is already being used"
|
||||
format: "The format of this email address is invalid"
|
||||
disposable: "Disposable email addresses may not be used"
|
||||
mx: "This email server is invalid"
|
||||
smtp: "This email server is not responding"
|
||||
_ffVisibility:
|
||||
public: "Public"
|
||||
followers: "Visible to followers only"
|
||||
private: "Private"
|
||||
_signup:
|
||||
almostThere: "Almost there"
|
||||
emailAddressInfo: "Please enter your email address."
|
||||
@ -810,13 +829,6 @@ _accountDelete:
|
||||
requestAccountDelete: "Request account deletion"
|
||||
started: "Deletion has been started."
|
||||
inProgress: "Deletion is currently in progress"
|
||||
_docs:
|
||||
continueReading: "Read more"
|
||||
features: "Features"
|
||||
generalTopics: "General topics"
|
||||
advancedTopics: "Advanced Topics"
|
||||
admin: "Administration"
|
||||
translateWarn: "This is a translated document. Its contents may differ from the original."
|
||||
_ad:
|
||||
back: "Back"
|
||||
reduceFrequencyOfThisAd: "Show this ad less"
|
||||
|
@ -2,7 +2,7 @@
|
||||
_lang_: "Esperanto"
|
||||
headlineMisskey: "Jen la reto konektata de notoj"
|
||||
introMisskey: "Bonvenon! Misskey estas malfermitkoda malcentraliza etbloga servo.\nKreu \"noto\"n por paroli vian penson al iuj ĉirkaŭ vi. 📡\nLa funkcion \"reago\" ebligas esprimi rapide vian senton pri ies noto en Fediverso. 👍\nBonvole esploru novan mondon. 🚀"
|
||||
monthAndDay: "{{day}}/{{month}}"
|
||||
monthAndDay: "La {day}a de la {month}a"
|
||||
search: "Serĉi"
|
||||
notifications: "Sciigoj"
|
||||
username: "Uzantnomo"
|
||||
@ -23,7 +23,7 @@ otherSettings: "Aliaj agordoj"
|
||||
openInWindow: "Malfermi en fenestro"
|
||||
profile: "Profilo"
|
||||
timeline: "Templinio"
|
||||
noAccountDescription: "Neniu priskribo"
|
||||
noAccountDescription: "Neniu sinprezento"
|
||||
login: "Ensaluti"
|
||||
loggingIn: "Ensalutado…"
|
||||
logout: "Elsaluti"
|
||||
@ -36,15 +36,15 @@ favorite: "Preferi"
|
||||
favorites: "Preferaĵoj"
|
||||
unfavorite: "Malpreferi"
|
||||
favorited: "Aldonita al via listo de preferaĵoj."
|
||||
alreadyFavorited: "Ĝi jam estis aldonita al via listo de preferaĵoj."
|
||||
cantFavorite: "Ne aldonita al via listo de preferaĵoj."
|
||||
alreadyFavorited: "Jam aldonita al via listo de preferaĵoj."
|
||||
cantFavorite: "Ĝi ne povis esti aldonita al via listo de preferaĵoj."
|
||||
pin: "Alpingli"
|
||||
unpin: "Depingli"
|
||||
copyContent: "Kopii enhavon"
|
||||
copyLink: "Kopii ligilon"
|
||||
delete: "Forviŝi"
|
||||
deleteAndEdit: "Redakti foriginte"
|
||||
deleteAndEditConfirm: "Ĉu vi certas, ke vi volas forigi kaj redakti la noton? Tio forviŝos reagojn, plusendojn, kaj respondojn ĉiujn de ĝi."
|
||||
deleteAndEdit: "Forviŝi kaj redakti"
|
||||
deleteAndEditConfirm: "Ĉu vi certas ke vi volas redakti forviŝinte la noton? Tio forviŝos ankaŭ ĉiujn reagojn, plusendojn, kaj respondojn apartenantajn al ĝi."
|
||||
addToList: "Aldoni al listo"
|
||||
sendMessage: "Sendi mesaĝon"
|
||||
copyUsername: "Kopii uzantnomon"
|
||||
@ -56,7 +56,7 @@ youGotNewFollower: "eksekvis vin"
|
||||
receiveFollowRequest: "Peto de sekvado estas ricevita"
|
||||
followRequestAccepted: "La peto de sekvado akceptita"
|
||||
mention: "Mencioj"
|
||||
mentions: "Al vi"
|
||||
mentions: "Mencioj"
|
||||
directNotes: "Rekte senditaj"
|
||||
importAndExport: "Importi/eksporti"
|
||||
import: "Importi"
|
||||
@ -79,11 +79,13 @@ somethingHappened: "Problemo okazis"
|
||||
retry: "Provi denove"
|
||||
enterListName: "Entajpu nomon de la listo"
|
||||
privacy: "Privateco"
|
||||
makeFollowManuallyApprove: "Eksekvi vin devas peti al vi"
|
||||
defaultNoteVisibility: "Implicitaĵo de videbleco"
|
||||
follow: "Sekvi"
|
||||
followRequest: "Peti de sekvado"
|
||||
followRequests: "Petoj de sekvado"
|
||||
unfollow: "Ne plu sekvi"
|
||||
followRequestPending: "Atendado akcepti vian peton de eksekvado"
|
||||
enterEmoji: "Entajpu emoĵion"
|
||||
renote: "Plusendi la noton"
|
||||
unrenote: "Malfari plusendadon"
|
||||
@ -98,11 +100,12 @@ clickToShow: "Klaku por malkaŝu"
|
||||
sensitive: "Enhavo ne estas deca por laborejo (NSFW)"
|
||||
add: "Aldoni"
|
||||
reaction: "Reagoj"
|
||||
rememberNoteVisibility: "Rememoru videblecon de la noto laste sendita "
|
||||
reactionSettingDescription: "Agordi la reagojn kiujn vi volas prefere montrigi ĉe la elektilo de reagoj"
|
||||
rememberNoteVisibility: "Rememori la agordon de videbleco de la noto laste sendita "
|
||||
attachCancel: "Deigi aldonaĵon"
|
||||
markAsSensitive: "Troviĝi NSFW"
|
||||
unmarkAsSensitive: "Ne troviĝi NSFW"
|
||||
enterFileName: "Entajpu nomon de dosiero"
|
||||
enterFileName: "Entajpu nomon de la dosiero"
|
||||
mute: "Silentigi"
|
||||
unmute: "Malsilentigi"
|
||||
block: "Bloki"
|
||||
@ -127,7 +130,7 @@ addEmoji: "Aldoni emoĵion"
|
||||
settingGuide: "Agordaj rekomendoj"
|
||||
cacheRemoteFiles: "Stapli transajn dosierojn"
|
||||
flagAsBot: "Agordo por robota uzanto"
|
||||
flagAsCat: "Agordo de katiĝa uzanto"
|
||||
flagAsCat: "Agi kat-iĝon"
|
||||
addAccount: "Aldoni konton"
|
||||
showOnRemote: "Vidi ĉe la surloka nodo"
|
||||
general: "Ĝenerala"
|
||||
@ -141,13 +144,14 @@ host: "Gastigo"
|
||||
selectUser: "Elekti uzanton"
|
||||
recipient: "Ricevonto"
|
||||
annotation: "Komentarioj"
|
||||
federation: "Kunfederaĵo"
|
||||
federation: "Federaĵo"
|
||||
instances: "Nodoj"
|
||||
latestRequestSentAt: "Lastatempa sendo"
|
||||
latestRequestReceivedAt: "Lastatempa ricevo"
|
||||
latestStatus: "Laŭstato"
|
||||
perHour: "Po horo"
|
||||
perDay: "Po tago"
|
||||
charts: "Diagramoj"
|
||||
perHour: "por horo"
|
||||
perDay: "por tago"
|
||||
blockThisInstance: "Bloki la nodon"
|
||||
operations: "Agoj"
|
||||
software: "Programaro"
|
||||
@ -156,36 +160,37 @@ metadata: "Metadatumoj"
|
||||
withNFiles: "{n} dosiero(j)"
|
||||
monitor: "Monitoro"
|
||||
network: "Reto"
|
||||
disk: "Diskilo"
|
||||
disk: "Disko"
|
||||
instanceInfo: "Informoj pri la nodo"
|
||||
statistics: "Statistikoj"
|
||||
clearCachedFiles: "Malplenigi la staplon"
|
||||
clearCachedFilesConfirm: "Ĉu vi certas, ke vi volas forviŝi ĉiujn transajn dosierojn en la staplo?"
|
||||
blockedInstances: "Blokitaj nodoj"
|
||||
muteAndBlock: "Silentigitoj kaj blokitoj"
|
||||
mutedUsers: "Silentigitaj uzantoj"
|
||||
blockedUsers: "Blokitaj uzantoj"
|
||||
noUsers: "Sen uzantoj"
|
||||
noUsers: "Neniu uzanto"
|
||||
editProfile: "Redakti profilon"
|
||||
noteDeleteConfirm: "Ĉu vi certas ke vi volas forviŝi la noton?"
|
||||
pinLimitExceeded: "Vi povas alpingli ne pli noton."
|
||||
pinLimitExceeded: "Vi ne povas alpingli pli"
|
||||
done: "Fini"
|
||||
processing: "Prilaborado…"
|
||||
preview: "Antaŭmontro"
|
||||
default: "Defaŭlta"
|
||||
noCustomEmojis: "Neniu emoĵio"
|
||||
federating: "Nun kunfederanta"
|
||||
blocked: "Blokita"
|
||||
suspended: "Suspendita"
|
||||
noJobs: "Neniu laboro"
|
||||
federating: "Federantaj"
|
||||
blocked: "Blokitaj"
|
||||
suspended: "Suspenditaj"
|
||||
all: "Ĉiuj"
|
||||
subscribing: "Abonata"
|
||||
publishing: "Al kiu dissendas"
|
||||
subscribing: "Abonitaj"
|
||||
publishing: "Abonintaj"
|
||||
notResponding: "Alvokato ne disponeblas"
|
||||
instanceFollowing: "Sekvatoj en la nodo"
|
||||
instanceFollowers: "Sekvantoj el la nodo"
|
||||
instanceUsers: "Uzantoj de tiu ĉi nodo"
|
||||
instanceUsers: "Uzantoj de la nodo"
|
||||
changePassword: "Ŝanĝi pasvorton"
|
||||
security: "Sekureco"
|
||||
retypedNotMatch: "Enigitoj ne estas konformaj."
|
||||
retypedNotMatch: "La enigitoj ne estas konformaj."
|
||||
currentPassword: "Aktuala pasvorto"
|
||||
newPassword: "Nova pasvorto"
|
||||
newPasswordRetype: "Reentajpu la novan pasvorton"
|
||||
@ -193,38 +198,47 @@ attachFile: "Aldoni dosieron"
|
||||
more: "Plu!"
|
||||
featured: "Maksimumi"
|
||||
usernameOrUserId: "Uzantnomo aŭ identigilo de uzanto"
|
||||
noSuchUser: "Neniuj uzantoj trovitaj."
|
||||
noSuchUser: "Neniuj uzantoj trovitaj"
|
||||
lookup: "Informpeti"
|
||||
announcements: "Novaĵoj"
|
||||
imageUrl: "URL de bildo"
|
||||
imageUrl: "URL de la bildo"
|
||||
remove: "Forigi"
|
||||
removed: "Forviŝis"
|
||||
removed: "Forigita"
|
||||
removeAreYouSure: "Ĉu vi certas ke vi volas forigi \"{x}\"'(o)n?"
|
||||
deleteAreYouSure: "Ĉu vi certas ke vi volas forviŝi \"{x}\"'(o)n?"
|
||||
resetAreYouSure: "Ĉu vi certas restarigi?"
|
||||
saved: "Konservita"
|
||||
messaging: "Retbabili"
|
||||
upload: "Alŝuti"
|
||||
fromDrive: "De la disko"
|
||||
fromUrl: "De URL"
|
||||
uploadFromUrl: "Alŝuti de URL"
|
||||
uploadFromUrlDescription: "URL de dosiero kiun vi volas alŝuti"
|
||||
uploadFromUrlDescription: "URL de la dosiero kiun vi volas alŝuti"
|
||||
uploadFromUrlRequested: "La alŝutado estis patita"
|
||||
explore: "Esplori"
|
||||
games: "Miskiaj Ludoj"
|
||||
messageRead: "Legita"
|
||||
noMoreHistory: "Ne plu de la historio"
|
||||
startMessaging: "Komenci babiladon"
|
||||
nUsersRead: "Legita de {n} homoj"
|
||||
agreeTo: "Mi akceptas {0}'(o)n"
|
||||
tos: "Kondiĉoj de uzado"
|
||||
start: "Komenciĝi"
|
||||
home: "Hejma"
|
||||
remoteUserCaution: "Ĉi tiuj infomoj ne estas tute ekzaktaj pro transa uzanto."
|
||||
remoteUserCaution: "Ĉi tiuj infomoj estas ne tute ekzaktaj pro transa uzanto."
|
||||
activity: "Aktiveco"
|
||||
images: "Bildoj"
|
||||
birthday: "Naskiĝdato"
|
||||
yearsOld: "{age} jaroj aĝa"
|
||||
registeredDate: "Dato de registriĝo"
|
||||
location: "Loko"
|
||||
theme: "Koloraro"
|
||||
themeForLightMode: "Luma kolararo en la luma modo"
|
||||
themeForDarkMode: "Malluma kolararo en la malluma modo"
|
||||
light: "Luma"
|
||||
dark: "Malluma"
|
||||
lightThemes: "Luma koloraro"
|
||||
darkThemes: "Malluma koloraro"
|
||||
drive: "Disko"
|
||||
fileName: "Dosiernomo"
|
||||
selectFile: "Elekti dosieron"
|
||||
@ -240,15 +254,18 @@ addFile: "Aldoni dosieron"
|
||||
emptyDrive: "La disko malplenas"
|
||||
emptyFolder: "La dosierujo malplenas"
|
||||
unableToDelete: "Ne forigebla"
|
||||
inputNewFileName: "Entajpu nova nomon de la dosiero"
|
||||
inputNewFolderName: "Entajpu nova nomon de la dosierujo"
|
||||
inputNewFileName: "Entajpu novan nomon de la dosiero"
|
||||
inputNewDescription: "Entajpu novan priskribon"
|
||||
inputNewFolderName: "Entajpu novan nomon de la dosierujo"
|
||||
hasChildFilesOrFolders: "La dosierujo ne estas forviŝebla, ĉar ĝi ne malplenas."
|
||||
copyUrl: "Kopii URL"
|
||||
rename: "Alinomi"
|
||||
avatar: "Ikono"
|
||||
banner: "Standardo"
|
||||
nsfw: "Enhavo ne estas deca por laborejo (NSFW)"
|
||||
disconnectedFromServer: "Malkonektita de servilo"
|
||||
reload: "Reŝargi"
|
||||
doNothing: "Ignori"
|
||||
watch: "Observi"
|
||||
unwatch: "Malobservi"
|
||||
accept: "Permesi"
|
||||
@ -265,6 +282,7 @@ dayX: "{day}a"
|
||||
monthX: "La {month}a monato"
|
||||
yearX: "La jaro {year}"
|
||||
pages: "Paĝoj"
|
||||
integration: "Integri"
|
||||
connectService: "Konekti"
|
||||
disconnectService: "Farkonektiĝi"
|
||||
enableLocalTimeline: "Ebligi lokan templinion"
|
||||
@ -281,6 +299,8 @@ basicInfo: "Baza informo"
|
||||
pinnedUsers: "Alpinglita uzanto"
|
||||
pinnedPages: "Alpinglitaj paĝoj"
|
||||
pinnedNotes: "Alpinglita noto"
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "Ebligi hCaptcha"
|
||||
hcaptchaSiteKey: "Reteja ŝlosilo"
|
||||
hcaptchaSecretKey: "Sekreta ŝlosilo"
|
||||
recaptcha: "reCAPTCHA"
|
||||
@ -290,6 +310,7 @@ recaptchaSecretKey: "Sekreta ŝlosilo"
|
||||
antennas: "Antenoj"
|
||||
manageAntennas: "Administri antenojn"
|
||||
name: "Nomo"
|
||||
antennaSource: "Fonto de la anteno"
|
||||
notifyAntenna: "Oni sciigos novajn notojn"
|
||||
withFileAntenna: "Nur kun aldonaĵo"
|
||||
withReplies: "Inkluzive respondoj"
|
||||
@ -311,6 +332,7 @@ userList: "Listoj"
|
||||
about: "Informoj"
|
||||
aboutMisskey: "Pri Misskey"
|
||||
administrator: "Administranto"
|
||||
token: "Ĵetono"
|
||||
twoStepAuthentication: "Dua-faktora aŭtentiko"
|
||||
moderator: "Kontrolisto"
|
||||
nUsersMentioned: "{n} uzanto(j) menciis"
|
||||
@ -331,6 +353,8 @@ close: "Fermi"
|
||||
group: "Grupo"
|
||||
groups: "Grupoj"
|
||||
createGroup: "Krei grupon"
|
||||
ownedGroups: "Administrataj grupoj"
|
||||
joinedGroups: "La grupoj kiujn la uzanto aliĝis"
|
||||
invites: "Inviti"
|
||||
groupName: "Grupa nomo"
|
||||
members: "Membroj"
|
||||
@ -390,6 +414,7 @@ showInPage: "Vidi en paĝo"
|
||||
popout: "Superigi"
|
||||
volume: "Laŭteco"
|
||||
masterVolume: "Baza laŭteco"
|
||||
details: "Detaloj"
|
||||
chooseEmoji: "Elekti emoĵion"
|
||||
recentUsed: "Lastatempaj uzitaj"
|
||||
install: "Instali"
|
||||
@ -400,11 +425,13 @@ installedDate: "Dato de instalado"
|
||||
lastUsedDate: "Lastfoje uzita je"
|
||||
state: "Stato"
|
||||
sort: "Ordigado"
|
||||
scratchpad: "Malneta redaktilo"
|
||||
output: "Elmeto"
|
||||
script: "Skripto"
|
||||
disablePagesScript: "Malebligi AiScripto en la paĝoj"
|
||||
deleteAllFiles: "Forviŝi ĉiujn dosierojn"
|
||||
deleteAllFilesConfirm: "Ĉu vi certas, ke vi volas forviŝi ĉiujn dosierojn?"
|
||||
removeAllFollowing: "Ĉesi sekvi ĉiujn sekvatojn"
|
||||
userSuspended: "Ĉi tiu uzanto estas flostigita."
|
||||
userSilenced: "Ĉi tiu uzanto estas mutigita."
|
||||
menu: "Menuo"
|
||||
@ -512,7 +539,7 @@ editCode: "Redakti kodon"
|
||||
emailNotification: "Sciigoj per retpoŝto"
|
||||
inChannelSearch: "Serĉi en kanalo"
|
||||
useReactionPickerForContextMenu: "Malfermi reago-elektilon per dekstro-klaki"
|
||||
typingUsers: "{users} nun entajpas…"
|
||||
typingUsers: "{users} nun skribas…"
|
||||
clear: "Vakigi"
|
||||
goBack: "Reiri antaŭ"
|
||||
addDescription: "Priskribi"
|
||||
@ -542,13 +569,14 @@ troubleshooting: "Problemsolvi"
|
||||
learnMore: "Lernu pli"
|
||||
translate: "Traduki"
|
||||
translatedFrom: "Tradukita el {x}"
|
||||
controllPanel: "Ŝaltpodio"
|
||||
_docs:
|
||||
continueReading: "Legi plu"
|
||||
features: "Funkcioj"
|
||||
admin: "Administro"
|
||||
controlPanel: "Ŝaltpodio"
|
||||
classic: "Klasika"
|
||||
_signup:
|
||||
emailAddressInfo: "Entajpu vian retpoŝton"
|
||||
_ad:
|
||||
back: "Nuligi"
|
||||
_forgotPassword:
|
||||
enterEmail: "Entajpu la retpoŝton kiun vi registrigis al via konto. Ligilo por restarigi pasvorton estos sendita al la retpoŝto."
|
||||
_gallery:
|
||||
liked: "Ŝatitaj notoj"
|
||||
like: "Ŝati"
|
||||
@ -647,7 +675,7 @@ _ago:
|
||||
secondsAgo: "Antaŭ {n} sekundo(j)"
|
||||
minutesAgo: "Antaŭ {n} minutoj"
|
||||
hoursAgo: "Antaŭ {n} horo(j)"
|
||||
daysAgo: "Antaŭ {n} tagoj"
|
||||
daysAgo: "Antaŭ {n} tago(j)"
|
||||
weeksAgo: "Antaŭ {n} semajnoj"
|
||||
monthsAgo: "Antaŭ {n} monatoj"
|
||||
yearsAgo: "Antaŭ {n} jaroj"
|
||||
@ -701,7 +729,7 @@ _widgets:
|
||||
timeline: "Templinio"
|
||||
clock: "Horloĝo"
|
||||
activity: "Aktiveco"
|
||||
federation: "Kunfederaĵo"
|
||||
federation: "Federaĵo"
|
||||
slideshow: "Bildoprezento"
|
||||
button: "Butono"
|
||||
onlineUsers: "Surkonektita uzanto"
|
||||
@ -760,6 +788,8 @@ _timelines:
|
||||
_rooms:
|
||||
translate: "Movi"
|
||||
chooseImage: "Elekti bildon"
|
||||
_roomType:
|
||||
default: "Defaŭlta"
|
||||
_furnitures:
|
||||
bed: "Lito"
|
||||
low-table: "Malaltotablo"
|
||||
@ -789,10 +819,12 @@ _pages:
|
||||
featured: "Ravaĵoj"
|
||||
contents: "Enhavo"
|
||||
content: "Paĝo en bloko"
|
||||
title: "Temlinio"
|
||||
url: "URL de paĝo"
|
||||
alignCenter: "Centrigi"
|
||||
chooseBlock: "Aldoni blokon"
|
||||
contentBlocks: "Enhavo"
|
||||
inputBlocks: "Enigo"
|
||||
blocks:
|
||||
text: "Teksto"
|
||||
textarea: "Areo de teksto"
|
||||
@ -801,7 +833,11 @@ _pages:
|
||||
_post:
|
||||
canvasId: "Kanvasa identigilo"
|
||||
textInput: "Enmeto el teksto"
|
||||
_textInput:
|
||||
text: "Titolo"
|
||||
textareaInput: "Enmeto el teksto en multaj linioj"
|
||||
_textareaInput:
|
||||
text: "Titolo"
|
||||
numberInput: "Nombra enmeto"
|
||||
_numberInput:
|
||||
text: "Titolo"
|
||||
@ -809,6 +845,8 @@ _pages:
|
||||
id: "Kanvasa identigilo"
|
||||
_note:
|
||||
id: "Identigilo de noto"
|
||||
_switch:
|
||||
text: "Titolo"
|
||||
_counter:
|
||||
text: "Titolo"
|
||||
_button:
|
||||
@ -816,6 +854,8 @@ _pages:
|
||||
_action:
|
||||
_pushEvent:
|
||||
event: "Nomo de la evento"
|
||||
_radioButton:
|
||||
title: "Titolo"
|
||||
script:
|
||||
categories:
|
||||
text: "Manipulo de teksto"
|
||||
@ -861,6 +901,9 @@ _pages:
|
||||
stringArray: "List de teksto"
|
||||
emptySlot: "Malplena junto"
|
||||
argVariables: "Eniga junto"
|
||||
_relayStatus:
|
||||
requesting: "Atendado de aprobon"
|
||||
accepted: "Konfirmita"
|
||||
_notification:
|
||||
fileUploaded: "La dosiero sukcese alŝutiĝis."
|
||||
youGotMention: "{name} mencis"
|
||||
@ -890,5 +933,5 @@ _deck:
|
||||
tl: "Templinio"
|
||||
antenna: "Antenoj"
|
||||
list: "Listoj"
|
||||
mentions: "Al vi"
|
||||
mentions: "Mencioj"
|
||||
direct: "Rekte"
|
||||
|
@ -739,8 +739,6 @@ resolved: "Resuelto"
|
||||
unresolved: "Sin resolver"
|
||||
_accountDelete:
|
||||
accountDelete: "Eliminar Cuenta"
|
||||
_docs:
|
||||
admin: "Administrar"
|
||||
_ad:
|
||||
back: "Deseleccionar"
|
||||
_gallery:
|
||||
|
@ -795,8 +795,17 @@ itsOff: "Désactivé"
|
||||
emailRequiredForSignup: "Une adresse e-mail est nécessaire pour créer un compte"
|
||||
unread: "Non lu"
|
||||
filter: "Filtre"
|
||||
controllPanel: "Panneau de contrôle"
|
||||
controlPanel: "Panneau de contrôle"
|
||||
manageAccounts: "Gérer les comptes"
|
||||
classic: "Classique"
|
||||
_emailUnavailable:
|
||||
format: "Le format de cette adresse de courriel est invalide"
|
||||
mx: "Ce serveur de courriels est invalide"
|
||||
smtp: "Ce serveur de courriels ne répond pas"
|
||||
_ffVisibility:
|
||||
public: "Public"
|
||||
followers: "Visible uniquement pour les abonné·e·s"
|
||||
private: "Privé"
|
||||
_signup:
|
||||
almostThere: "Bientôt fini"
|
||||
emailAddressInfo: "Insérez votre adresse e-mail."
|
||||
@ -808,13 +817,6 @@ _accountDelete:
|
||||
requestAccountDelete: "Demander la suppression de votre compte"
|
||||
started: "La procédure de suppression a commencé."
|
||||
inProgress: "Suppression en cours"
|
||||
_docs:
|
||||
continueReading: "Lire plus"
|
||||
features: "Fonctionnalités"
|
||||
generalTopics: "Sujets généraux"
|
||||
advancedTopics: "Sujets avancés"
|
||||
admin: "Gestion"
|
||||
translateWarn: "Ceci est une traduction dont le contenu peut différer du texte original."
|
||||
_ad:
|
||||
back: "Retour"
|
||||
reduceFrequencyOfThisAd: "Voir cette publicité moins souvent"
|
||||
|
@ -81,6 +81,8 @@ somethingHappened: "Terjadi kesalahan"
|
||||
retry: "Coba lagi"
|
||||
pageLoadError: "Gagal memuat halaman."
|
||||
pageLoadErrorDescription: "Umumnya disebabkan jaringan atau tembolok perambah. Cobalah bersihkan tembolok peramban lalu tunggu sesaat sebelum mencoba kembali."
|
||||
serverIsDead: "Tidak ada respon dari server. Mohon tunggu dan coba beberapa saat lagi."
|
||||
youShouldUpgradeClient: "Untuk melihat halaman ini, mohon muat ulang untuk memutakhirkan klienmu."
|
||||
enterListName: "Masukkan nama daftar"
|
||||
privacy: "Privasi"
|
||||
makeFollowManuallyApprove: "Permintaan mengikuti membutuhkan persetujuan"
|
||||
@ -529,6 +531,8 @@ removeAllFollowing: "Tahan semua mengikuti"
|
||||
removeAllFollowingDescription: "Batal mengikuti semua akun dari {host}. Mohon jalankan ini ketika instansi sudah tidak ada lagi."
|
||||
userSuspended: "Pengguna ini telah dibekukan."
|
||||
userSilenced: "Pengguna ini telah dibungkam."
|
||||
yourAccountSuspendedTitle: "Akun ini dibekukan"
|
||||
yourAccountSuspendedDescription: "Akun ini dibekukan karena melanggar ketentuan penggunaan layanan server atau semacamnya. Hubungi admin apabila ingin tahu alasan lebih lanjut. Mohon untuk tidak membuat akun baru."
|
||||
menu: "Menu"
|
||||
divider: "Pembagi"
|
||||
addItem: "Tambahkan item"
|
||||
@ -616,6 +620,8 @@ reportAbuse: "Laporkan"
|
||||
reportAbuseOf: "Laporkan {name}"
|
||||
fillAbuseReportDescription: "Mohon isi rincian laporan. Jika laporan ini mengenai catatan yang spesifik, mohon lampirkan serta URL catatan tersebut."
|
||||
abuseReported: "Laporan kamu telah dikirimkan. Terima kasih."
|
||||
reporteeOrigin: "Yang dilaporkan"
|
||||
reporterOrigin: "Pelapor"
|
||||
send: "Kirim"
|
||||
abuseMarkAsResolved: "Tandai laporan sebagai selesai"
|
||||
openInNewTab: "Buka di tab baru"
|
||||
@ -762,6 +768,7 @@ middle: "Sedang"
|
||||
low: "Rendah"
|
||||
emailNotConfiguredWarning: "Alamat surel tidak disetel."
|
||||
ratio: "Rasio"
|
||||
previewNoteText: "Tampilkan pratinjau"
|
||||
customCss: "Custom CSS"
|
||||
customCssWarn: "Pengaturan ini seharusnya digunakan jika kamu tahu cara kerjanya. Memasukkan nilai yang tidak tepat dapat menyebabkan klien tidak berfungsi semestinya."
|
||||
global: "Global"
|
||||
@ -779,8 +786,40 @@ translate: "Terjemahkan"
|
||||
translatedFrom: "Terjemahkan dari {x}"
|
||||
accountDeletionInProgress: "Penghapusan akun sedang dalam proses"
|
||||
usernameInfo: "Nama yang mengidentifikasikan akun kamu dari yang lain pada server ini. Kamu dapat menggunakan alfabet (a~z, A~Z), digit (0~9) atau garis bawah (_). Username tidak dapat diubah setelahnya."
|
||||
aiChanMode: "Mode Ai"
|
||||
keepCw: "Biarkan Peringatan Konten"
|
||||
controllPanel: "Panel kontrol"
|
||||
pubSub: "Akun Pub/Sub"
|
||||
lastCommunication: "Komunikasi terakhir"
|
||||
resolved: "Selesai"
|
||||
unresolved: "Belum selesai"
|
||||
itsOn: "Aktif"
|
||||
itsOff: "Nonaktif"
|
||||
emailRequiredForSignup: "Membutuhkan alamat surel untuk mendaftar"
|
||||
unread: "Belum dibaca"
|
||||
filter: "Saring"
|
||||
controlPanel: "Panel kontrol"
|
||||
manageAccounts: "Kelola Akun"
|
||||
makeReactionsPublic: "Tampilkan riwayat reaksi ke publik"
|
||||
makeReactionsPublicDescription: "Pengaturan ini akan membuat daftar dari semua reaksi masa lalu kamu ditampilkan secara publik."
|
||||
classic: "Klasik"
|
||||
muteThread: "Bisukan thread"
|
||||
unmuteThread: "Suarakan thread"
|
||||
ffVisibility: "Visibilitas Mengikuti/Pengikut"
|
||||
ffVisibilityDescription: "Mengatur siapa yang dapat melihat pengikutmu dan yang kamu ikuti."
|
||||
_emailUnavailable:
|
||||
used: "Alamat surel ini telah digunakan"
|
||||
format: "Format tidak valid."
|
||||
disposable: "Alamat surel temporer tidak dapat digunakan"
|
||||
mx: "Server alamat surel ini tidak valid"
|
||||
smtp: "Server alamat surel ini tidak merespon"
|
||||
_ffVisibility:
|
||||
public: "Terbitkan"
|
||||
followers: "Tampil untuk pengikut saja"
|
||||
private: "Tersembunyi"
|
||||
_signup:
|
||||
almostThere: "Hampir selesai"
|
||||
emailAddressInfo: "Mohon masukkan alamat surel kamu."
|
||||
emailSent: "Konfirmasi surel telah dikirimkan ke alamat surel kamu ({email}). Mohon klik tautan yang tercantum di dalamnya untuk menyelesaikan pembuatan akun."
|
||||
_accountDelete:
|
||||
accountDelete: "Hapus akun"
|
||||
mayTakeTime: "Karena penghapusan akun merupakan proses yang berat dan intensif, kemungkinan dapat membutuhkan waktu untuk menyelesaikan tergantung daripada berapa banyak konten yang kamu buat dan berapa banyak berkas yang telah kamu unggah."
|
||||
@ -788,13 +827,6 @@ _accountDelete:
|
||||
requestAccountDelete: "Minta penghapusan akun"
|
||||
started: "Penghapusan telah dimulai"
|
||||
inProgress: "Penghapusan sedang dalam proses"
|
||||
_docs:
|
||||
continueReading: "Baca lebih lanjut"
|
||||
features: "Fitur"
|
||||
generalTopics: "Topik umum"
|
||||
advancedTopics: "Topik tingkat lanjut"
|
||||
admin: "Manajemen"
|
||||
translateWarn: "Ini merupakan dokumen terjemahan. Konten di dalamnya kemungkinan dapat berbeda dari yang aslinya."
|
||||
_ad:
|
||||
back: "Kembali"
|
||||
reduceFrequencyOfThisAd: "Tampilkan iklan ini lebih sedikit"
|
||||
@ -895,6 +927,8 @@ _mfm:
|
||||
fontDescription: "Setel font yang ditampilkan untuk konten."
|
||||
rainbow: "Pelangi"
|
||||
rainbowDescription: "Membuat konten muncul dalam warna pelangi."
|
||||
sparkle: "Kelap-kelip"
|
||||
sparkleDescription: "Memberikan konten efek partikel kelap-kelip."
|
||||
_reversi:
|
||||
reversi: "Reversi"
|
||||
gameSettings: "Pengaturan permainan"
|
||||
@ -1121,6 +1155,10 @@ _permissions:
|
||||
"write:user-groups": "Sunting atau hapus grup pengguna"
|
||||
"read:channels": "Lihat saluran"
|
||||
"write:channels": "Sunting saluran"
|
||||
"read:gallery": "Lihat galeri"
|
||||
"write:gallery": "Sunting galeri"
|
||||
"read:gallery-likes": "Lihat daftar postingan galeri yang disukai"
|
||||
"write:gallery-likes": "Sunting daftar postingan galeri yang disukai"
|
||||
_auth:
|
||||
shareAccess: "Apakah kamu ingin mengijinkan \"{name}\" untuk mengakses akun ini?"
|
||||
shareAccessAsk: "Apakah kamu ingin mengijinkan aplikasi ini untuk mengakses akun kamu?"
|
||||
|
@ -19,9 +19,11 @@ const languages = [
|
||||
'da-DK',
|
||||
'de-DE',
|
||||
'en-US',
|
||||
'eo-UY',
|
||||
'es-ES',
|
||||
'fr-FR',
|
||||
'id-ID',
|
||||
'it-IT',
|
||||
'ja-JP',
|
||||
'ja-KS',
|
||||
'kab-KAB',
|
||||
|
@ -745,10 +745,8 @@ global: "Federata"
|
||||
sent: "Inviare"
|
||||
hashtags: "Hashtag"
|
||||
troubleshooting: "Risoluzione problemi"
|
||||
_docs:
|
||||
continueReading: "Leggi di più"
|
||||
features: "Funzionalità"
|
||||
admin: "Gestione"
|
||||
_ffVisibility:
|
||||
public: "Pubblico"
|
||||
_ad:
|
||||
back: "Indietro"
|
||||
reduceFrequencyOfThisAd: "Visualizza questa pubblicità meno spesso"
|
||||
|
@ -620,6 +620,8 @@ reportAbuse: "通報"
|
||||
reportAbuseOf: "{name}を通報する"
|
||||
fillAbuseReportDescription: "通報理由の詳細を記入してください。対象のノートがある場合はそのURLも記入してください。"
|
||||
abuseReported: "内容が送信されました。ご報告ありがとうございました。"
|
||||
reporteeOrigin: "通報先"
|
||||
reporterOrigin: "通報元"
|
||||
send: "送信"
|
||||
abuseMarkAsResolved: "対応済みにする"
|
||||
openInNewTab: "新しいタブで開く"
|
||||
@ -795,10 +797,29 @@ itsOff: "オフになっています"
|
||||
emailRequiredForSignup: "アカウント登録にメールアドレスを必須にする"
|
||||
unread: "未読"
|
||||
filter: "フィルタ"
|
||||
controllPanel: "コントロールパネル"
|
||||
controlPanel: "コントロールパネル"
|
||||
manageAccounts: "アカウントを管理"
|
||||
makeReactionsPublic: "リアクション一覧を公開する"
|
||||
makeReactionsPublicDescription: "あなたがしたリアクション一覧を誰でも見れるようにします。"
|
||||
classic: "クラシック"
|
||||
muteThread: "スレッドをミュート"
|
||||
unmuteThread: "スレッドのミュートを解除"
|
||||
ffVisibility: "つながりの公開範囲"
|
||||
ffVisibilityDescription: "自分のフォロー/フォロワー情報の公開範囲を設定できます。"
|
||||
continueThread: "さらにスレッドを見る"
|
||||
deleteAccountConfirm: "アカウントが削除されます。よろしいですか?"
|
||||
|
||||
_emailUnavailable:
|
||||
used: "既に使用されています"
|
||||
format: "形式が正しくありません"
|
||||
disposable: "恒久的に使用可能なアドレスではありません"
|
||||
mx: "正しいメールサーバーではありません"
|
||||
smtp: "メールサーバーが応答しません"
|
||||
|
||||
_ffVisibility:
|
||||
public: "公開"
|
||||
followers: "フォロワーだけに公開"
|
||||
private: "非公開"
|
||||
|
||||
_signup:
|
||||
almostThere: "ほとんど完了です"
|
||||
@ -813,14 +834,6 @@ _accountDelete:
|
||||
started: "削除処理が開始されました。"
|
||||
inProgress: "削除が進行中"
|
||||
|
||||
_docs:
|
||||
continueReading: "続きを読む"
|
||||
features: "機能"
|
||||
generalTopics: "一般的なトピック"
|
||||
advancedTopics: "高度なトピック"
|
||||
admin: "管理"
|
||||
translateWarn: "このドキュメントは翻訳されたものです。オリジナルとは内容が異なる場合があります。"
|
||||
|
||||
_ad:
|
||||
back: "戻る"
|
||||
reduceFrequencyOfThisAd: "この広告の表示頻度を下げる"
|
||||
|
@ -653,8 +653,6 @@ low: "低い"
|
||||
global: "グローバル"
|
||||
sent: "送信"
|
||||
hashtags: "ハッシュタグ"
|
||||
_docs:
|
||||
admin: "管理"
|
||||
_ad:
|
||||
back: "戻る"
|
||||
_gallery:
|
||||
|
@ -787,7 +787,9 @@ pubSub: "Pub/Sub 계정"
|
||||
lastCommunication: "마지막 통신"
|
||||
resolved: "해결됨"
|
||||
unresolved: "해결되지 않음"
|
||||
controllPanel: "제어판"
|
||||
controlPanel: "제어판"
|
||||
_ffVisibility:
|
||||
public: "게시"
|
||||
_accountDelete:
|
||||
accountDelete: "계정 삭제"
|
||||
mayTakeTime: "계정 삭제는 서버에 부하를 가하기 때문에, 작성한 콘텐츠나 업로드한 파일의 수가 많으면 완료까지 시간이 걸릴 수 있습니다."
|
||||
@ -795,13 +797,6 @@ _accountDelete:
|
||||
requestAccountDelete: "계정 삭제 요청"
|
||||
started: "삭제 작업이 시작되었습니다."
|
||||
inProgress: "삭제 진행 중"
|
||||
_docs:
|
||||
continueReading: "계속 읽기"
|
||||
features: "기능"
|
||||
generalTopics: "일반 주제"
|
||||
advancedTopics: "심화 주제"
|
||||
admin: "관리"
|
||||
translateWarn: "이 문서는 번역되었기 때문에 원본과는 내용이 다를 수 있습니다."
|
||||
_ad:
|
||||
back: "뒤로"
|
||||
reduceFrequencyOfThisAd: "이 광고의 표시 빈도 낮추기"
|
||||
|
@ -1,3 +1,5 @@
|
||||
---
|
||||
_lang_: "Nederlands"
|
||||
headlineMisskey: "Netwerk verbonden door notities"
|
||||
muteThread: "Discussies dempen "
|
||||
unmuteThread: "Dempen van discussie ongedaan maken"
|
||||
|
@ -738,8 +738,8 @@ ratio: "Stosunek"
|
||||
global: "Globalna"
|
||||
sent: "Wyślij"
|
||||
hashtags: "Hashtag"
|
||||
_docs:
|
||||
admin: "Zarządzanie"
|
||||
_ffVisibility:
|
||||
public: "Publikuj"
|
||||
_ad:
|
||||
back: "Wróć"
|
||||
reduceFrequencyOfThisAd: "Pokazuj tę reklamę rzadziej"
|
||||
|
@ -620,6 +620,8 @@ reportAbuse: "Жалоба"
|
||||
reportAbuseOf: "Пожаловаться на пользователя {name}"
|
||||
fillAbuseReportDescription: "Опишите, пожалуйста, причину жалобы подробнее. Если речь о конкретной заметке, будьте добры приложить ссылку на неё."
|
||||
abuseReported: "Жалоба отправлена. Большое спасибо за информацию."
|
||||
reporteeOrigin: "Куда сообщать"
|
||||
reporterOrigin: "Сообщено"
|
||||
send: "Отправить"
|
||||
abuseMarkAsResolved: "Отметить жалобу как решённую"
|
||||
openInNewTab: "Открыть в новой вкладке"
|
||||
@ -766,6 +768,7 @@ middle: "Средне"
|
||||
low: "Низкий"
|
||||
emailNotConfiguredWarning: "Не указан адрес электронной почты"
|
||||
ratio: "Соотношение"
|
||||
previewNoteText: "Предварительный просмотр текста"
|
||||
customCss: "Индивидуальный CSS"
|
||||
customCssWarn: "Используйте эту настройку только если знаете, что делаете. Ошибки здесь чреваты тем, что сайт перестанет нормально работать у вас."
|
||||
global: "Всеобщая"
|
||||
@ -780,19 +783,43 @@ learnMore: "Подробнее"
|
||||
misskeyUpdated: "Misskey обновился!"
|
||||
whatIsNew: "Что новенького?"
|
||||
translate: "Перевод"
|
||||
translatedFrom: "{x}Перевод с английского"
|
||||
accountDeletionInProgress: "В настоящее время выполняется удаление учетной записи"
|
||||
usernameInfo: "Имя, которое отличает вашу учетную запись от других на этом сервере. Вы можете использовать алфавит (a~z, A~Z), цифры (0~9) или символы подчеркивания (_). Имена пользователей не могут быть изменены позже."
|
||||
aiChanMode: "ИИ режим"
|
||||
keepCw: "Сохраняйте Предупреждения о содержимом"
|
||||
controllPanel: "Панель управления"
|
||||
lastCommunication: "Последнее сообщение"
|
||||
resolved: "Решен"
|
||||
unresolved: "Неразрешенные"
|
||||
itsOff: "Он выключен!"
|
||||
emailRequiredForSignup: "Требуется адрес электронной почты для регистрации аккаунта"
|
||||
unread: "Непрочитанное"
|
||||
filter: "Фильтры"
|
||||
controlPanel: "Панель управления"
|
||||
manageAccounts: "Управление аккаунтом"
|
||||
_docs:
|
||||
continueReading: "Читать подробнее"
|
||||
features: "Возможности"
|
||||
generalTopics: "Основные темы"
|
||||
advancedTopics: "Дополнительные темы"
|
||||
admin: "Управление"
|
||||
translateWarn: "Это перевод документа. Он может неточно отражать содержимое оригинала."
|
||||
makeReactionsPublic: "Опубликовать список реакций"
|
||||
makeReactionsPublicDescription: "Список сделанных вами реакций доступен для просмотра всем желающим."
|
||||
classic: "Классика"
|
||||
unmuteThread: "Отключить звук"
|
||||
ffVisibilityDescription: "Вы можете установить объем вашей следующей/последней информации."
|
||||
_emailUnavailable:
|
||||
used: "Уже используется"
|
||||
format: "Неправильный формат"
|
||||
smtp: "Почтовый сервер не отвечает"
|
||||
_ffVisibility:
|
||||
public: "Опубликовать"
|
||||
private: "Частный"
|
||||
_signup:
|
||||
almostThere: "Почти готово!"
|
||||
emailAddressInfo: "Пожалуйста, введите адрес электронной почты, который вы используете."
|
||||
emailSent: "На указанный вами адрес электронной почты ({email}) было отправлено письмо с подтверждением. Перейдите по ссылке в электронном письме, чтобы завершить создание учетной записи."
|
||||
_accountDelete:
|
||||
accountDelete: "Удалить свой аккаунт"
|
||||
mayTakeTime: "Удаление учетной записи - это тяжелый процесс, который может занять много времени, если у вас создано много контента или загружено много файлов."
|
||||
sendEmail: "Мы отправим уведомление на зарегистрированный вами адрес электронной почты, когда ваша учетная запись будет удалена."
|
||||
requestAccountDelete: "Запросить удаление вашей учетной записи"
|
||||
started: "Процесс удаления начался."
|
||||
inProgress: "Удаление в процессе"
|
||||
_ad:
|
||||
back: "Выход"
|
||||
reduceFrequencyOfThisAd: "Реже показывать эту рекламу"
|
||||
@ -893,6 +920,8 @@ _mfm:
|
||||
fontDescription: "Так можно писать произвольным шрифтом."
|
||||
rainbow: "Радуга"
|
||||
rainbowDescription: "Заставлять содержимое отображаться в цветах радуги."
|
||||
sparkle: "Блеск"
|
||||
sparkleDescription: "Добавьте эффект искрящихся частиц."
|
||||
_reversi:
|
||||
reversi: "Реверси"
|
||||
gameSettings: "Настройки игры"
|
||||
@ -1119,6 +1148,10 @@ _permissions:
|
||||
"write:user-groups": "Изменять и удалять группы пользователей"
|
||||
"read:channels": "Смотреть каналы"
|
||||
"write:channels": "Изменять каналы"
|
||||
"read:gallery": "Смотреть галерею"
|
||||
"write:gallery": "Работа с галереей"
|
||||
"read:gallery-likes": "Посмотреть галерею лайков"
|
||||
"write:gallery-likes": "Манипулируйте понравившейся галереей"
|
||||
_auth:
|
||||
shareAccess: "Дать доступ для «{name}» к вашей учётной записи?"
|
||||
shareAccessAsk: "Уверены, что хотите дать приложению доступ к своей учётной записи?"
|
||||
|
62
locales/tr-TR.yml
Normal file
62
locales/tr-TR.yml
Normal file
@ -0,0 +1,62 @@
|
||||
---
|
||||
_lang_: "Türkçe"
|
||||
introMisskey: "Açık kaynaklı bir dağıtılmış mikroblog hizmeti olan Misskey'e hoş geldiniz.\nMisskey, neler olup bittiğini paylaşmak ve herkese sizden bahsetmek için \"notlar\" oluşturmanıza olanak tanıyan, açık kaynaklı, dağıtılmış bir mikroblog hizmetidir.\nHerkesin notlarına kendi tepkilerinizi hızlıca eklemek için \"Tepkiler\" özelliğini de kullanabilirsiniz👍.\nYeni bir dünyayı keşfedin🚀."
|
||||
monthAndDay: "{month}Ay {day}Gün"
|
||||
search: "Arama"
|
||||
notifications: "Bildirim"
|
||||
username: "Kullanıcı Adı"
|
||||
password: "Şifre"
|
||||
forgotPassword: "şifremi unuttum"
|
||||
ok: "TAMAM"
|
||||
gotIt: "Anladım"
|
||||
cancel: "İptal"
|
||||
enterUsername: "Kullanıcı adınızı giriniz"
|
||||
noNotes: "Notlar mevcut değil."
|
||||
noNotifications: "Bildirim bulunmuyor"
|
||||
settings: "Ayarlar"
|
||||
basicSettings: "Temel Ayarlar"
|
||||
otherSettings: "Diğer Ayarlar"
|
||||
openInWindow: "Bir pencere ile aç"
|
||||
profile: "Profil"
|
||||
timeline: "Zaman çizelgesi"
|
||||
noAccountDescription: "Bu kullanıcı henüz biyografisini yazmadı"
|
||||
login: "Giriş Yap "
|
||||
logout: "Çıkış Yap"
|
||||
signup: "Kayıt Ol"
|
||||
uploading: "Yükleniyor"
|
||||
users: "Kullanıcı"
|
||||
addUser: "Kullanıcı Ekle"
|
||||
favorite: "Favoriler"
|
||||
favorites: "Favoriler"
|
||||
unfavorite: "Favorilerden Kaldır"
|
||||
favorited: "Favorilerime eklendi."
|
||||
alreadyFavorited: "Zaten favorilerinizde kayıtlı."
|
||||
pin: "Sabitlenmiş"
|
||||
unpin: "Sabitlemeyi kaldır"
|
||||
copyContent: "İçeriği kopyala"
|
||||
copyLink: "Bağlantıyı Kopyala"
|
||||
delete: "Sil"
|
||||
deleteAndEdit: "Sil ve yeniden düzenle"
|
||||
deleteAndEditConfirm: "Bu notu silip yeniden düzenlemek istiyor musunuz? Bu nota ilişkin tüm Tepkiler, Yeniden Notlar ve Yanıtlar da silinecektir."
|
||||
addToList: "Listeye ekle"
|
||||
sendMessage: "Mesaj Gönder"
|
||||
copyUsername: "Kullanıcı Adını Kopyala"
|
||||
searchUser: "Kullanıcıları ara"
|
||||
pinned: "Sabitlenmiş"
|
||||
remove: "Sil"
|
||||
smtpUser: "Kullanıcı Adı"
|
||||
smtpPass: "Şifre"
|
||||
user: "Kullanıcı"
|
||||
_mfm:
|
||||
search: "Arama"
|
||||
_sfx:
|
||||
notification: "Bildirim"
|
||||
_widgets:
|
||||
notifications: "Bildirim"
|
||||
timeline: "Zaman çizelgesi"
|
||||
_profile:
|
||||
username: "Kullanıcı Adı"
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: "Bildirim"
|
||||
tl: "Zaman çizelgesi"
|
@ -692,8 +692,6 @@ middle: "Середній"
|
||||
global: "Глобальна"
|
||||
sent: "Відправити"
|
||||
hashtags: "Хештеґ"
|
||||
_docs:
|
||||
admin: "Управління"
|
||||
_ad:
|
||||
back: "Назад"
|
||||
_gallery:
|
||||
|
@ -1,20 +1,20 @@
|
||||
---
|
||||
_lang_: "中文(简体)"
|
||||
headlineMisskey: "通过帖子连接在一起的网络"
|
||||
introMisskey: "欢迎!Misskey是一个开源的、去中心化的“微博客”服务。\n通过编写「帖子」来和大家分享你的以及你周围的事情吧!📡\n通过「回应」功能,可以让你快速地对大家的帖子表达反馈👍\n来探索新的世界吧!🚀"
|
||||
introMisskey: "欢迎!Misskey是一个开源的、去中心化的“微博客”服务。\n通过编写「帖文」来和大家分享你的以及你周围的事情吧!📡\n通过「回应」功能,可以让你快速地对大家的帖文表达反馈👍\n来探索新的世界吧!🚀"
|
||||
monthAndDay: "{month}月 {day}日"
|
||||
search: "搜索"
|
||||
notifications: "通知"
|
||||
username: "用户名"
|
||||
password: "密码"
|
||||
forgotPassword: "重置密码"
|
||||
fetchingAsApObject: "联合查询中"
|
||||
forgotPassword: "忘记密码"
|
||||
fetchingAsApObject: "联合查询"
|
||||
ok: "OK"
|
||||
gotIt: "我明白了"
|
||||
cancel: "取消"
|
||||
enterUsername: "输入用户名"
|
||||
renotedBy: "{user} 转发了"
|
||||
noNotes: "没有帖子"
|
||||
renotedBy: "由 {user} 转推"
|
||||
noNotes: "没有帖文"
|
||||
noNotifications: "无通知"
|
||||
instance: "实例"
|
||||
settings: "设置"
|
||||
@ -124,9 +124,9 @@ unblockConfirm: "确定要解除拉黑吗?"
|
||||
suspendConfirm: "要冻结吗?"
|
||||
unsuspendConfirm: "要解除冻结吗?"
|
||||
selectList: "选择列表"
|
||||
selectAntenna: "天线选择"
|
||||
selectAntenna: "选择天线"
|
||||
selectWidget: "选择小工具"
|
||||
editWidgets: "编辑小工具"
|
||||
editWidgets: "编辑部件"
|
||||
editWidgetsExit: "完成编辑"
|
||||
customEmojis: "自定义表情符号"
|
||||
emoji: "表情符号"
|
||||
@ -139,9 +139,9 @@ cacheRemoteFiles: "远程文件缓存"
|
||||
cacheRemoteFilesDescription: "当禁用此设定时远程文件将直接从远程实例载入。禁用后会减小储存空间需求,但是会增加流量,因为缩略图不会被生成。"
|
||||
flagAsBot: "这是一个机器人账号"
|
||||
flagAsBotDescription: "如果此帐户由程序控制,请启用此项。启用后,此标志可以帮助其他开发人员防止机器人之间产生无限互动的行为,并让Misskey的内部系统将此帐户识别为机器人。"
|
||||
flagAsCat: "这个账户是一只猫"
|
||||
flagAsCatDescription: "如果您想表明此帐户是一只猫,请打开此标志。\n开启后,会在您的头像上出现猫耳朵,并将你的帖子中的「na」替换为「nya」,日文同理。"
|
||||
autoAcceptFollowed: "自动允许关注者的关注"
|
||||
flagAsCat: "将这个账户设定为一只猫"
|
||||
flagAsCatDescription: "如果您想表明此帐户是一只猫,请打开此标志。"
|
||||
autoAcceptFollowed: "自动允许关注"
|
||||
addAccount: "添加账户"
|
||||
loginFailed: "登录失败"
|
||||
showOnRemote: "转到所在实例显示"
|
||||
@ -620,6 +620,8 @@ reportAbuse: "举报"
|
||||
reportAbuseOf: "举报{name}"
|
||||
fillAbuseReportDescription: "请填写举报的详细原因。如果有对方发的帖子,请同时填写URL地址。"
|
||||
abuseReported: "内容已发送。感谢您的报告。"
|
||||
reporteeOrigin: "举报来源"
|
||||
reporterOrigin: "举报者来源"
|
||||
send: "发送"
|
||||
abuseMarkAsResolved: "处理完毕"
|
||||
openInNewTab: "在新标签页中打开"
|
||||
@ -795,8 +797,27 @@ itsOff: "已关闭"
|
||||
emailRequiredForSignup: "注册账户需要电子邮件地址"
|
||||
unread: "未读"
|
||||
filter: "筛选"
|
||||
controllPanel: "控制面板"
|
||||
controlPanel: "控制面板"
|
||||
manageAccounts: "管理账户"
|
||||
makeReactionsPublic: "将回应设置为公开"
|
||||
makeReactionsPublicDescription: "将您发表过的回应设置成公开可见。"
|
||||
classic: "经典"
|
||||
muteThread: "屏蔽帖子列表"
|
||||
unmuteThread: "取消屏蔽帖子列表"
|
||||
ffVisibility: "连接的可见范围"
|
||||
ffVisibilityDescription: "您可以设置您的关注/关注者信息的公开范围"
|
||||
continueThread: "查看更多帖子"
|
||||
deleteAccountConfirm: "将要删除账户。是否确认?"
|
||||
_emailUnavailable:
|
||||
used: "已经被使用过"
|
||||
format: "无效的格式"
|
||||
disposable: "不是永久可用的地址"
|
||||
mx: "邮件服务器不正确"
|
||||
smtp: "邮件服务器没有响应"
|
||||
_ffVisibility:
|
||||
public: "发布"
|
||||
followers: "只有关注你的用户能看到"
|
||||
private: "私密"
|
||||
_signup:
|
||||
almostThere: "即将完成"
|
||||
emailAddressInfo: "请输入您所使用的电子邮件地址"
|
||||
@ -808,13 +829,6 @@ _accountDelete:
|
||||
requestAccountDelete: "请求删除账户"
|
||||
started: "账户删除过程已开始。"
|
||||
inProgress: "正在删除"
|
||||
_docs:
|
||||
continueReading: "继续阅读"
|
||||
features: "特性"
|
||||
generalTopics: "通常提示"
|
||||
advancedTopics: "进阶提示"
|
||||
admin: "管理"
|
||||
translateWarn: "本文档是翻译后的文档。内容可能与原文有所不同。"
|
||||
_ad:
|
||||
back: "返回"
|
||||
reduceFrequencyOfThisAd: "减少此广告的频率"
|
||||
|
@ -754,8 +754,8 @@ ratio: "%"
|
||||
global: "公開"
|
||||
sent: "發送"
|
||||
hashtags: "#tag"
|
||||
_docs:
|
||||
admin: "管理"
|
||||
_ffVisibility:
|
||||
public: "發佈"
|
||||
_ad:
|
||||
back: "返回"
|
||||
reduceFrequencyOfThisAd: "降低此廣告的頻率 "
|
||||
|
@ -1,13 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class PinnedUsers1557476068003 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedUsers" character varying(256) array NOT NULL DEFAULT '{}'::varchar[]`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedUsers"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class UserListJoining1558266512381 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_90f7da835e4c10aca6853621e1" ON "user_list_joining" ("userId", "userListId") `);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_90f7da835e4c10aca6853621e1"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class PasswordLessLogin1562422242907 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD COLUMN "usePasswordLessLogin" boolean DEFAULT false NOT NULL`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "usePasswordLessLogin"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class PageTitleHideOption1562448332510 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "page" ADD "hideTitleWhenPinned" boolean NOT NULL DEFAULT false`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "hideTitleWhenPinned"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class room1565634203341 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD "room" jsonb NOT NULL DEFAULT '{}'`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "room"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class CustomEmojiCategory1571220798684 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "emoji" ADD "category" character varying(128)`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "emoji" DROP COLUMN "category"`, undefined);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class TalkFederationId1576269851876 implements MigrationInterface {
|
||||
name = 'TalkFederationId1576269851876'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "messaging_message" ADD "uri" character varying(512)`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "messaging_message" DROP COLUMN "uri"`, undefined);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class ProxyRemoteFiles1576869585998 implements MigrationInterface {
|
||||
name = 'ProxyRemoteFiles1576869585998'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "proxyRemoteFiles" boolean NOT NULL DEFAULT false`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "proxyRemoteFiles"`, undefined);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class v1221579270193251 implements MigrationInterface {
|
||||
name = 'v1221579270193251'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "announcement_read" ADD "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "announcement_read" DROP COLUMN "createdAt"`, undefined);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class v1231579282808087 implements MigrationInterface {
|
||||
name = 'v1231579282808087'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "announcement" ADD "updatedAt" TIMESTAMP WITH TIME ZONE`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "announcement" DROP COLUMN "updatedAt"`, undefined);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class v1291580154400017 implements MigrationInterface {
|
||||
name = 'v1291580154400017'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "antenna" ADD "withReplies" boolean NOT NULL DEFAULT false`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "withReplies"`, undefined);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class v12131580543501339 implements MigrationInterface {
|
||||
name = 'v12131580543501339'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`CREATE INDEX "IDX_NOTE_TAGS" ON "note" USING gin ("tags")`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_NOTE_TAGS"`, undefined);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class driveUserFolderIdIndex1581708415836 implements MigrationInterface {
|
||||
name = 'driveUserFolderIdIndex1581708415836'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`CREATE INDEX "IDX_55720b33a61a7c806a8215b825" ON "drive_file" ("userId", "folderId", "id") `, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_55720b33a61a7c806a8215b825"`, undefined);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class featuredInjecttion1582019042083 implements MigrationInterface {
|
||||
name = 'featuredInjecttion1582019042083'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD "injectFeaturedNote" boolean NOT NULL DEFAULT true`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "injectFeaturedNote"`, undefined);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class antennaExclude1582210532752 implements MigrationInterface {
|
||||
name = 'antennaExclude1582210532752'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "antenna" ADD "excludeKeywords" jsonb NOT NULL DEFAULT '[]'`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "excludeKeywords"`, undefined);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class noteReactionLength1582875306439 implements MigrationInterface {
|
||||
name = 'noteReactionLength1582875306439'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(130)`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(128)`, undefined);
|
||||
}
|
||||
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
/* tslint:disable:quotemark class-name indent */
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class apUrl1585772678853 implements MigrationInterface {
|
||||
name = 'apUrl1585772678853'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "note" ADD "url" character varying(512)`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "url"`, undefined);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from 'typeorm';
|
||||
|
||||
export class AddObjectStorageUseProxy1586624197029 implements MigrationInterface {
|
||||
name = 'AddObjectStorageUseProxy1586624197029'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageUseProxy" boolean NOT NULL DEFAULT true`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageUseProxy"`, undefined);
|
||||
}
|
||||
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class remoteReaction1586641139527 implements MigrationInterface {
|
||||
name = 'remoteReaction1586641139527'
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(260)`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(130)`, undefined);
|
||||
}
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class pageAiScript1586708940386 implements MigrationInterface {
|
||||
name = 'pageAiScript1586708940386'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "page" ADD "script" character varying(16384) NOT NULL DEFAULT ''`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "script"`, undefined);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class blurhash1595075960584 implements MigrationInterface {
|
||||
name = 'blurhash1595075960584'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "drive_file" ADD "blurhash" character varying(128)`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "drive_file" DROP COLUMN "blurhash"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class instanceIconUrl1595676934834 implements MigrationInterface {
|
||||
name = 'instanceIconUrl1595676934834'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "instance" ADD "iconUrl" character varying(256) DEFAULT null`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "iconUrl"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class channel21596786425167 implements MigrationInterface {
|
||||
name = 'channel21596786425167'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "channel_following" ADD "readCursor" TIMESTAMP WITH TIME ZONE NOT NULL`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "channel_following" DROP COLUMN "readCursor"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class objectStorageSetPublicRead1597230137744 implements MigrationInterface {
|
||||
name = 'objectStorageSetPublicRead1597230137744'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageSetPublicRead" boolean NOT NULL DEFAULT false`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageSetPublicRead"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class addSensitiveIndex1597385880794 implements MigrationInterface {
|
||||
name = 'addSensitiveIndex1597385880794'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`CREATE INDEX "IDX_a7eba67f8b3fa27271e85d2e26" ON "drive_file" ("isSensitive") `);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_a7eba67f8b3fa27271e85d2e26"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class ChannelNoteIdDescIndex1597893996136 implements MigrationInterface {
|
||||
name = 'ChannelNoteIdDescIndex1597893996136'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_f22169eb10657bded6d875ac8f"`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_note_on_channelId_and_id_desc" ON "note" ("channelId", "id" desc)`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_note_on_channelId_and_id_desc"`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f22169eb10657bded6d875ac8f" ON "note" ("channelId") `);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class instanceThemeColor1603776877564 implements MigrationInterface {
|
||||
name = 'instanceThemeColor1603776877564'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "instance" ADD "themeColor" character varying(64) DEFAULT null`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "themeColor"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class instanceFavicon1603781553011 implements MigrationInterface {
|
||||
name = 'instanceFavicon1603781553011'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "instance" ADD "faviconUrl" character varying(256) DEFAULT null`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "faviconUrl"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class deleteAutoWatch1604821689616 implements MigrationInterface {
|
||||
name = 'deleteAutoWatch1604821689616'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "autoWatch"`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD "autoWatch" boolean NOT NULL DEFAULT false`);
|
||||
}
|
||||
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class clipDescription1605408848373 implements MigrationInterface {
|
||||
name = 'clipDescription1605408848373'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "clip" ADD "description" character varying(2048) DEFAULT null`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
|
||||
await queryRunner.query(`ALTER TABLE "clip" DROP COLUMN "description"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class instancePinnedPages1605585339718 implements MigrationInterface {
|
||||
name = 'instancePinnedPages1605585339718'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedPages" character varying(512) array NOT NULL DEFAULT '{"/featured", "/channels", "/explore", "/pages", "/about-misskey"}'::varchar[]`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedPages"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class instancePinnedClip1607151207216 implements MigrationInterface {
|
||||
name = 'instancePinnedClip1607151207216'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedClipId" character varying(32)`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedClipId"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class registry31610283021566 implements MigrationInterface {
|
||||
name = 'registry31610283021566'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "registry_item" ALTER COLUMN "value" DROP NOT NULL`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "registry_item" ALTER COLUMN "value" SET NOT NULL`);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class objectStorageS3ForcePathStyle1611547387175 implements MigrationInterface {
|
||||
name = 'objectStorageS3ForcePathStyle1611547387175'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageS3ForcePathStyle" boolean NOT NULL DEFAULT true`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageS3ForcePathStyle"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class announcementEmail1612619156584 implements MigrationInterface {
|
||||
name = 'announcementEmail1612619156584'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD "receiveAnnouncementEmail" boolean NOT NULL DEFAULT true`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "receiveAnnouncementEmail"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class emailNotificationTypes1613155914446 implements MigrationInterface {
|
||||
name = 'emailNotificationTypes1613155914446'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD "emailNotificationTypes" jsonb NOT NULL DEFAULT '["follow","receiveFollowRequest","groupInvited"]'`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "emailNotificationTypes"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class userLang1613181457597 implements MigrationInterface {
|
||||
name = 'userLang1613181457597'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD "lang" character varying(32)`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "lang"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class useBigintForDriveUsage1613503367223 implements MigrationInterface {
|
||||
name = 'useBigintForDriveUsage1613503367223'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "instance" ALTER COLUMN "driveUsage" TYPE bigint`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "driveUsage"`);
|
||||
await queryRunner.query(`ALTER TABLE "instance" ADD "driveUsage" integer NOT NULL DEFAULT 0`);
|
||||
}
|
||||
|
||||
}
|
@ -1,218 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class chartV21615965918224 implements MigrationInterface {
|
||||
name = 'chartV21615965918224'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DELETE FROM "__chart__active_users" WHERE "span" = 'day'`);
|
||||
await queryRunner.query(`DELETE FROM "__chart__drive" WHERE "span" = 'day'`);
|
||||
await queryRunner.query(`DELETE FROM "__chart__federation" WHERE "span" = 'day'`);
|
||||
await queryRunner.query(`DELETE FROM "__chart__hashtag" WHERE "span" = 'day'`);
|
||||
await queryRunner.query(`DELETE FROM "__chart__instance" WHERE "span" = 'day'`);
|
||||
await queryRunner.query(`DELETE FROM "__chart__network" WHERE "span" = 'day'`);
|
||||
await queryRunner.query(`DELETE FROM "__chart__notes" WHERE "span" = 'day'`);
|
||||
await queryRunner.query(`DELETE FROM "__chart__per_user_drive" WHERE "span" = 'day'`);
|
||||
await queryRunner.query(`DELETE FROM "__chart__per_user_following" WHERE "span" = 'day'`);
|
||||
await queryRunner.query(`DELETE FROM "__chart__per_user_notes" WHERE "span" = 'day'`);
|
||||
await queryRunner.query(`DELETE FROM "__chart__per_user_reaction" WHERE "span" = 'day'`);
|
||||
await queryRunner.query(`DELETE FROM "__chart__test" WHERE "span" = 'day'`);
|
||||
await queryRunner.query(`DELETE FROM "__chart__test_grouped" WHERE "span" = 'day'`);
|
||||
await queryRunner.query(`DELETE FROM "__chart__test_unique" WHERE "span" = 'day'`);
|
||||
await queryRunner.query(`DELETE FROM "__chart__users" WHERE "span" = 'day'`);
|
||||
|
||||
await queryRunner.query(`DROP INDEX "IDX_15e91a03aeeac9dbccdf43fc06"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_20f57cc8f142c131340ee16742"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_c26e2c1cbb6e911e0554b27416"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_3fa0d0f17ca72e3dc80999a032"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_6e1df243476e20cbf86572ecc0"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_06690fc959f1c9fdaf21928222"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e447064455928cf627590ef527"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_2d416e6af791a82e338c79d480"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e9cd07672b37d8966cf3709283"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_fcc181fb8283009c61cc4083ef"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_49975586f50ed7b800fdd88fbd"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_6d6f156ceefc6bc5f273a0e370"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_c12f0af4a66cdd30c2287ce8aa"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_d0a4f79af5a97b08f37b547197"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f5448d9633cff74208d850aabe"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f8dd01baeded2ffa833e0a610a"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_08fac0eb3b11f04c200c0b40dd"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_9ff6944f01acb756fdc92d7563"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e69096589f11e3baa98ddd64d0"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_0c9a159c5082cbeef3ca6706b5"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_924fc196c80ca24bae01dd37e4"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_328f259961e60c4fa0bfcf55ca"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_42ea9381f0fda8dfe0fa1c8b53"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f2aeafde2ae6fbad38e857631b"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f92dd6d03f8d994f29987f6214"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_57b5458d0d3d6d1e7f13d4e57f"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_4db3b84c7be0d3464714f3e0b1"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_8d2cbbc8114d90d19b44d626b6"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_046feeb12e9ef5f783f409866a"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f68a5ab958f9f5fa17a32ac23b"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_65633a106bce43fc7c5c30a5c7"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_edeb73c09c3143a81bcb34d569"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e316f01a6d24eb31db27f88262"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_2be7ec6cebddc14dc11e206686"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_a5133470f4825902e170328ca5"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_84e661abb7bd1e51b690d4b017"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_5c73bf61da4f6e6f15bae88ed1"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_d70c86baedc68326be11f9c0ce"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_66e1e1ecd2f29e57778af35b59"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_92255988735563f0fe4aba1f05"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_c5870993e25c3d5771f91f5003"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f170de677ea75ad4533de2723e"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_7c184198ecf66a8d3ecb253ab3"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f091abb24193d50c653c6b77fc"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_a770a57c70e668cc61590c9161"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "span"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."__chart__active_users_span_enum"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___local_count"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___remote_count"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__drive" DROP COLUMN "span"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."__chart__drive_span_enum"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__drive" DROP COLUMN "unique"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "span"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."__chart__federation_span_enum"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "unique"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "span"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."__chart__hashtag_span_enum"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "unique"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___local_count"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___remote_count"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__instance" DROP COLUMN "span"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."__chart__instance_span_enum"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__instance" DROP COLUMN "unique"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__network" DROP COLUMN "span"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."__chart__network_span_enum"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__network" DROP COLUMN "unique"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__notes" DROP COLUMN "span"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."__chart__notes_span_enum"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__notes" DROP COLUMN "unique"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" DROP COLUMN "span"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."__chart__per_user_drive_span_enum"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" DROP COLUMN "unique"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" DROP COLUMN "span"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."__chart__per_user_following_span_enum"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" DROP COLUMN "unique"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" DROP COLUMN "span"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."__chart__per_user_notes_span_enum"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" DROP COLUMN "unique"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" DROP COLUMN "span"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."__chart__per_user_reaction_span_enum"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" DROP COLUMN "unique"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__test_grouped" DROP COLUMN "span"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."__chart__test_grouped_span_enum"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__test_grouped" DROP COLUMN "unique"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__test_unique" DROP COLUMN "span"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."__chart__test_unique_span_enum"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__test_unique" DROP COLUMN "unique"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__test_unique" DROP COLUMN "___foo"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__test" DROP COLUMN "span"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."__chart__test_span_enum"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__test" DROP COLUMN "unique"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__users" DROP COLUMN "span"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."__chart__users_span_enum"`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__users" DROP COLUMN "unique"`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "__chart__users" ADD "unique" jsonb NOT NULL DEFAULT '{}'`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."__chart__users_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__users" ADD "span" "__chart__users_span_enum" NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__test" ADD "unique" jsonb NOT NULL DEFAULT '{}'`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."__chart__test_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__test" ADD "span" "__chart__test_span_enum" NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__test_unique" ADD "___foo" bigint NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__test_unique" ADD "unique" jsonb NOT NULL DEFAULT '{}'`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."__chart__test_unique_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__test_unique" ADD "span" "__chart__test_unique_span_enum" NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__test_grouped" ADD "unique" jsonb NOT NULL DEFAULT '{}'`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."__chart__test_grouped_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__test_grouped" ADD "span" "__chart__test_grouped_span_enum" NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ADD "unique" jsonb NOT NULL DEFAULT '{}'`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."__chart__per_user_reaction_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ADD "span" "__chart__per_user_reaction_span_enum" NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ADD "unique" jsonb NOT NULL DEFAULT '{}'`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."__chart__per_user_notes_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ADD "span" "__chart__per_user_notes_span_enum" NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ADD "unique" jsonb NOT NULL DEFAULT '{}'`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."__chart__per_user_following_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ADD "span" "__chart__per_user_following_span_enum" NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ADD "unique" jsonb NOT NULL DEFAULT '{}'`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."__chart__per_user_drive_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ADD "span" "__chart__per_user_drive_span_enum" NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__notes" ADD "unique" jsonb NOT NULL DEFAULT '{}'`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."__chart__notes_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__notes" ADD "span" "__chart__notes_span_enum" NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__network" ADD "unique" jsonb NOT NULL DEFAULT '{}'`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."__chart__network_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__network" ADD "span" "__chart__network_span_enum" NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__instance" ADD "unique" jsonb NOT NULL DEFAULT '{}'`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."__chart__instance_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__instance" ADD "span" "__chart__instance_span_enum" NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___remote_count" bigint NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___local_count" bigint NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "unique" jsonb NOT NULL DEFAULT '{}'`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."__chart__hashtag_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "span" "__chart__hashtag_span_enum" NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "unique" jsonb NOT NULL DEFAULT '{}'`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."__chart__federation_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "span" "__chart__federation_span_enum" NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__drive" ADD "unique" jsonb NOT NULL DEFAULT '{}'`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."__chart__drive_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__drive" ADD "span" "__chart__drive_span_enum" NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___remote_count" bigint NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___local_count" bigint NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique" jsonb NOT NULL DEFAULT '{}'`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."__chart__active_users_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "span" "__chart__active_users_span_enum" NOT NULL`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_a770a57c70e668cc61590c9161" ON "__chart__users" ("date", "group", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f091abb24193d50c653c6b77fc" ON "__chart__users" ("date", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_7c184198ecf66a8d3ecb253ab3" ON "__chart__users" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f170de677ea75ad4533de2723e" ON "__chart__test" ("date", "group", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_c5870993e25c3d5771f91f5003" ON "__chart__test" ("date", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_92255988735563f0fe4aba1f05" ON "__chart__test" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_66e1e1ecd2f29e57778af35b59" ON "__chart__test_unique" ("date", "group", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_d70c86baedc68326be11f9c0ce" ON "__chart__test_unique" ("date", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_5c73bf61da4f6e6f15bae88ed1" ON "__chart__test_unique" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_84e661abb7bd1e51b690d4b017" ON "__chart__test_grouped" ("date", "group", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_a5133470f4825902e170328ca5" ON "__chart__test_grouped" ("date", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_2be7ec6cebddc14dc11e206686" ON "__chart__test_grouped" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e316f01a6d24eb31db27f88262" ON "__chart__per_user_reaction" ("date", "group", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_edeb73c09c3143a81bcb34d569" ON "__chart__per_user_reaction" ("date", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_65633a106bce43fc7c5c30a5c7" ON "__chart__per_user_reaction" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f68a5ab958f9f5fa17a32ac23b" ON "__chart__per_user_notes" ("date", "group", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_046feeb12e9ef5f783f409866a" ON "__chart__per_user_notes" ("date", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_8d2cbbc8114d90d19b44d626b6" ON "__chart__per_user_notes" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_4db3b84c7be0d3464714f3e0b1" ON "__chart__per_user_following" ("date", "group", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_57b5458d0d3d6d1e7f13d4e57f" ON "__chart__per_user_following" ("date", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f92dd6d03f8d994f29987f6214" ON "__chart__per_user_following" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f2aeafde2ae6fbad38e857631b" ON "__chart__per_user_drive" ("date", "group", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_42ea9381f0fda8dfe0fa1c8b53" ON "__chart__per_user_drive" ("date", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_328f259961e60c4fa0bfcf55ca" ON "__chart__per_user_drive" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_924fc196c80ca24bae01dd37e4" ON "__chart__notes" ("date", "group", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_0c9a159c5082cbeef3ca6706b5" ON "__chart__notes" ("date", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e69096589f11e3baa98ddd64d0" ON "__chart__notes" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_9ff6944f01acb756fdc92d7563" ON "__chart__network" ("date", "group", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_08fac0eb3b11f04c200c0b40dd" ON "__chart__network" ("date", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f8dd01baeded2ffa833e0a610a" ON "__chart__network" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f5448d9633cff74208d850aabe" ON "__chart__instance" ("date", "group", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_d0a4f79af5a97b08f37b547197" ON "__chart__instance" ("date", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_c12f0af4a66cdd30c2287ce8aa" ON "__chart__instance" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_6d6f156ceefc6bc5f273a0e370" ON "__chart__hashtag" ("date", "group", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_49975586f50ed7b800fdd88fbd" ON "__chart__hashtag" ("date", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_fcc181fb8283009c61cc4083ef" ON "__chart__hashtag" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e9cd07672b37d8966cf3709283" ON "__chart__federation" ("date", "group", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_2d416e6af791a82e338c79d480" ON "__chart__federation" ("date", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e447064455928cf627590ef527" ON "__chart__federation" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_06690fc959f1c9fdaf21928222" ON "__chart__drive" ("date", "group", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_6e1df243476e20cbf86572ecc0" ON "__chart__drive" ("date", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_3fa0d0f17ca72e3dc80999a032" ON "__chart__drive" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_c26e2c1cbb6e911e0554b27416" ON "__chart__active_users" ("date", "group", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_20f57cc8f142c131340ee16742" ON "__chart__active_users" ("date", "span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_15e91a03aeeac9dbccdf43fc06" ON "__chart__active_users" ("span") `);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class userHideOnlineStatus1618639857000 implements MigrationInterface {
|
||||
name = 'userHideOnlineStatus1618639857000'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user" ADD "hideOnlineStatus" boolean NOT NULL DEFAULT false`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "hideOnlineStatus"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class ad21620364649428 implements MigrationInterface {
|
||||
name = 'ad21620364649428'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "ad" ADD "ratio" integer NOT NULL DEFAULT '1'`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "ad" DROP COLUMN "ratio"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class addNoteIndexes1621479946000 implements MigrationInterface {
|
||||
name = 'addNoteIndexes1621479946000'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`CREATE INDEX "IDX_NOTE_MENTIONS" ON "note" USING gin ("mentions")`, undefined);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_NOTE_VISIBLE_USER_IDS" ON "note" USING gin ("visibleUserIds")`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_NOTE_MENTIONS"`, undefined);
|
||||
await queryRunner.query(`DROP INDEX "IDX_NOTE_VISIBLE_USER_IDS"`, undefined);
|
||||
}
|
||||
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class userProfileDescriptionLength1622679304522 implements MigrationInterface {
|
||||
name = 'userProfileDescriptionLength1622679304522';
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "description" TYPE character varying(2048)`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "description" TYPE character varying(1024)`, undefined);
|
||||
}
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class logMessageLength1622681548499 implements MigrationInterface {
|
||||
name = 'logMessageLength1622681548499';
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "log" ALTER COLUMN "message" TYPE character varying(2048)`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "log" ALTER COLUMN "message" TYPE character varying(1024)`, undefined);
|
||||
}
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class deeplIntegration1629024377804 implements MigrationInterface {
|
||||
name = 'deeplIntegration1629024377804'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "deeplAuthKey" character varying(128)`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "deeplAuthKey"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class fixChannelUserId1629288472000 implements MigrationInterface {
|
||||
name = 'fixChannelUserId1629288472000'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "channel" ALTER COLUMN "userId" DROP NOT NULL;`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "channel" ALTER COLUMN "userId" SET NOT NULL;`);
|
||||
}
|
||||
|
||||
}
|
@ -1,15 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class isUserDeleted1629512953000 implements MigrationInterface {
|
||||
name = 'isUserDeleted1629512953000'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user" ADD "isDeleted" boolean NOT NULL DEFAULT false`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."isDeleted" IS 'Whether the User is deleted.'`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "isDeleted"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class deeplIntegration21629778475000 implements MigrationInterface {
|
||||
name = 'deeplIntegration21629778475000'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "deeplIsPro" boolean NOT NULL DEFAULT false`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "deeplIsPro"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class emailRequiredForSignup1633068642000 implements MigrationInterface {
|
||||
name = 'emailRequiredForSignup1633068642000'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "emailRequiredForSignup" boolean NOT NULL DEFAULT false`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "emailRequiredForSignup"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class userPublicReactions1634486652000 implements MigrationInterface {
|
||||
name = 'userPublicReactions1634486652000'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD "publicReactions" boolean NOT NULL DEFAULT false`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "publicReactions"`);
|
||||
}
|
||||
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class deleteLog1634902659689 implements MigrationInterface {
|
||||
name = 'deleteLog1634902659689'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP TABLE "log"`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
}
|
||||
|
||||
}
|
255
package.json
255
package.json
@ -1,260 +1,53 @@
|
||||
{
|
||||
"name": "misskey",
|
||||
"author": "syuilo <syuilotan@yahoo.co.jp>",
|
||||
"version": "12.93.1",
|
||||
"version": "12.96.1",
|
||||
"codename": "indigo",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/misskey-dev/misskey.git"
|
||||
},
|
||||
"main": "./index.js",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "node --experimental-json-modules ./index.js",
|
||||
"start:test": "cross-env NODE_ENV=test node --experimental-json-modules ./index.js",
|
||||
"postinstall": "node ./scripts/install-packages.js",
|
||||
"build": "node ./scripts/build.js",
|
||||
"start": "cd packages/backend && node --experimental-json-modules ./built/index.js",
|
||||
"start:test": "cd packages/backend && cross-env NODE_ENV=test node --experimental-json-modules ./built/index.js",
|
||||
"init": "npm run migrate",
|
||||
"ormconfig": "node ./built/ormconfig.js",
|
||||
"migrate": "ts-node ./node_modules/typeorm/cli.js migration:run",
|
||||
"ormconfig": "node ./packages/backend/ormconfig.js",
|
||||
"migrate": "cd packages/backend && npx typeorm migration:run",
|
||||
"migrateandstart": "npm run migrate && npm run start",
|
||||
"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",
|
||||
"lint": "tslint 'src/**/*.ts'",
|
||||
"gulp": "gulp build",
|
||||
"watch": "npm run dev",
|
||||
"dev": "node ./scripts/dev.js",
|
||||
"lint": "node ./scripts/lint.js",
|
||||
"cy:open": "cypress open",
|
||||
"cy:run": "cypress run",
|
||||
"e2e": "start-server-and-test start:test http://localhost cy:run",
|
||||
"test": "cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=\"./test/tsconfig.json\" mocha",
|
||||
"format": "gulp format"
|
||||
},
|
||||
"resolutions": {
|
||||
"chokidar": "^3.3.1",
|
||||
"lodash": "^4.17.21"
|
||||
"e2e": "start-server-and-test start:test http://localhost:61812 cy:run",
|
||||
"mocha": "cd packages/backend && cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=\"./test/tsconfig.json\" npx mocha",
|
||||
"test": "npm run mocha",
|
||||
"format": "gulp format",
|
||||
"clean": "node ./scripts/clean.js",
|
||||
"clean-all": "node ./scripts/clean-all.js",
|
||||
"cleanall": "npm run clean-all"
|
||||
},
|
||||
"dependencies": {
|
||||
"@elastic/elasticsearch": "7.11.0",
|
||||
"@koa/cors": "3.1.0",
|
||||
"@koa/multer": "3.0.0",
|
||||
"@koa/router": "9.0.1",
|
||||
"@sentry/browser": "5.29.2",
|
||||
"@sentry/tracing": "5.29.2",
|
||||
"@sinonjs/fake-timers": "7.1.2",
|
||||
"@syuilo/aiscript": "0.11.1",
|
||||
"@types/bcryptjs": "2.4.2",
|
||||
"@types/bull": "3.15.5",
|
||||
"@types/cbor": "6.0.0",
|
||||
"@types/dateformat": "3.0.1",
|
||||
"@types/escape-regexp": "0.0.0",
|
||||
"@types/glob": "7.1.4",
|
||||
"@types/gulp": "4.0.9",
|
||||
"@types/gulp-rename": "2.0.1",
|
||||
"@types/is-url": "1.2.30",
|
||||
"@types/js-yaml": "4.0.3",
|
||||
"@types/jsdom": "16.2.13",
|
||||
"@types/jsonld": "1.5.6",
|
||||
"@types/katex": "0.11.1",
|
||||
"@types/koa": "2.13.4",
|
||||
"@types/koa__cors": "3.0.3",
|
||||
"@types/koa__multer": "2.0.3",
|
||||
"@types/koa__router": "8.0.8",
|
||||
"@types/koa-bodyparser": "4.3.3",
|
||||
"@types/koa-cors": "0.0.2",
|
||||
"@types/koa-favicon": "2.0.21",
|
||||
"@types/koa-logger": "3.1.2",
|
||||
"@types/koa-mount": "4.0.1",
|
||||
"@types/koa-send": "4.1.3",
|
||||
"@types/koa-views": "7.0.0",
|
||||
"@types/markdown-it": "12.2.3",
|
||||
"@types/matter-js": "0.17.5",
|
||||
"@types/mocha": "8.2.3",
|
||||
"@types/node": "16.10.3",
|
||||
"@types/node-fetch": "2.5.12",
|
||||
"@types/nodemailer": "6.4.4",
|
||||
"@types/nprogress": "0.2.0",
|
||||
"@types/oauth": "0.9.1",
|
||||
"@types/parse5": "6.0.1",
|
||||
"@types/parsimmon": "1.10.6",
|
||||
"@types/portscanner": "2.1.1",
|
||||
"@types/pug": "2.0.5",
|
||||
"@types/punycode": "2.1.0",
|
||||
"@types/qrcode": "1.4.1",
|
||||
"@types/random-seed": "0.3.3",
|
||||
"@types/ratelimiter": "3.4.2",
|
||||
"@types/redis": "2.8.32",
|
||||
"@types/rename": "1.0.4",
|
||||
"@types/request-stats": "3.0.0",
|
||||
"@types/rimraf": "3.0.2",
|
||||
"@types/seedrandom": "2.4.28",
|
||||
"@types/sharp": "0.29.2",
|
||||
"@types/sinonjs__fake-timers": "6.0.4",
|
||||
"@types/speakeasy": "2.0.6",
|
||||
"@types/throttle-debounce": "2.1.0",
|
||||
"@types/tinycolor2": "1.4.3",
|
||||
"@types/tmp": "0.2.1",
|
||||
"@types/uuid": "8.3.1",
|
||||
"@types/web-push": "3.3.2",
|
||||
"@types/webpack": "5.28.0",
|
||||
"@types/webpack-stream": "3.2.12",
|
||||
"@types/websocket": "1.0.4",
|
||||
"@types/ws": "8.2.0",
|
||||
"@typescript-eslint/parser": "5.0.0",
|
||||
"@vue/compiler-sfc": "3.2.20",
|
||||
"abort-controller": "3.0.0",
|
||||
"apexcharts": "3.28.3",
|
||||
"autobind-decorator": "2.4.0",
|
||||
"autosize": "4.0.4",
|
||||
"autwh": "0.1.0",
|
||||
"aws-sdk": "2.1003.0",
|
||||
"bcryptjs": "2.4.3",
|
||||
"blurhash": "1.1.4",
|
||||
"broadcast-channel": "4.2.0",
|
||||
"bull": "3.29.3",
|
||||
"cacheable-lookup": "6.0.3",
|
||||
"cafy": "15.2.1",
|
||||
"cbor": "8.0.2",
|
||||
"chalk": "4.1.2",
|
||||
"chart.js": "3.5.1",
|
||||
"chartjs-adapter-date-fns": "2.0.0",
|
||||
"chartjs-plugin-zoom": "1.1.1",
|
||||
"cli-highlight": "2.1.11",
|
||||
"compare-versions": "3.6.0",
|
||||
"concurrently": "6.3.0",
|
||||
"content-disposition": "0.5.3",
|
||||
"crc-32": "1.2.0",
|
||||
"css-loader": "6.4.0",
|
||||
"cssnano": "5.0.8",
|
||||
"date-fns": "2.25.0",
|
||||
"dateformat": "4.5.1",
|
||||
"escape-regexp": "0.0.1",
|
||||
"eslint": "8.0.1",
|
||||
"eslint-plugin-vue": "7.19.1",
|
||||
"eventemitter3": "4.0.7",
|
||||
"feed": "4.2.2",
|
||||
"file-type": "16.5.3",
|
||||
"fluent-ffmpeg": "2.1.2",
|
||||
"glob": "7.2.0",
|
||||
"got": "11.8.2",
|
||||
"execa": "5.1.1",
|
||||
"gulp": "4.0.2",
|
||||
"gulp-cssnano": "2.1.3",
|
||||
"gulp-rename": "2.0.0",
|
||||
"gulp-replace": "1.1.3",
|
||||
"gulp-terser": "2.1.0",
|
||||
"gulp-tslint": "8.1.4",
|
||||
"hpagent": "0.1.2",
|
||||
"http-signature": "1.3.5",
|
||||
"idb-keyval": "5.1.3",
|
||||
"insert-text-at-cursor": "0.3.0",
|
||||
"ip-cidr": "3.0.4",
|
||||
"is-svg": "4.3.1",
|
||||
"js-yaml": "4.1.0",
|
||||
"jsdom": "16.7.0",
|
||||
"json5": "2.2.0",
|
||||
"json5-loader": "4.0.1",
|
||||
"jsonld": "5.2.0",
|
||||
"jsrsasign": "8.0.20",
|
||||
"katex": "0.13.18",
|
||||
"koa": "2.13.3",
|
||||
"koa-bodyparser": "4.3.0",
|
||||
"koa-favicon": "2.1.0",
|
||||
"koa-json-body": "5.3.0",
|
||||
"koa-logger": "3.2.1",
|
||||
"koa-mount": "4.0.0",
|
||||
"koa-send": "5.0.1",
|
||||
"koa-slow": "2.1.0",
|
||||
"koa-views": "7.0.1",
|
||||
"langmap": "0.0.16",
|
||||
"markdown-it": "12.2.0",
|
||||
"markdown-it-anchor": "7.1.0",
|
||||
"matter-js": "0.17.1",
|
||||
"mfm-js": "0.20.0",
|
||||
"misskey-js": "0.0.6",
|
||||
"mocha": "8.4.0",
|
||||
"ms": "2.1.3",
|
||||
"multer": "1.4.3",
|
||||
"nested-property": "4.0.0",
|
||||
"node-fetch": "2.6.1",
|
||||
"nodemailer": "6.7.0",
|
||||
"os-utils": "0.0.14",
|
||||
"parse5": "6.0.1",
|
||||
"pg": "8.7.1",
|
||||
"portscanner": "2.2.0",
|
||||
"postcss": "8.3.9",
|
||||
"postcss-loader": "6.2.0",
|
||||
"prismjs": "1.25.0",
|
||||
"private-ip": "2.3.0",
|
||||
"probe-image-size": "7.2.1",
|
||||
"promise-limit": "2.7.0",
|
||||
"pug": "3.0.2",
|
||||
"punycode": "2.1.1",
|
||||
"pureimage": "0.3.5",
|
||||
"qrcode": "1.4.4",
|
||||
"random-seed": "0.3.0",
|
||||
"ratelimiter": "3.4.1",
|
||||
"re2": "1.16.0",
|
||||
"redis": "3.1.2",
|
||||
"redis-lock": "0.1.4",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"rename": "1.0.4",
|
||||
"request-stats": "3.0.0",
|
||||
"require-all": "3.0.0",
|
||||
"rimraf": "3.0.2",
|
||||
"rndstr": "1.0.0",
|
||||
"s-age": "1.1.2",
|
||||
"sass": "1.43.2",
|
||||
"sass-loader": "12.2.0",
|
||||
"seedrandom": "3.0.5",
|
||||
"sharp": "0.29.1",
|
||||
"speakeasy": "2.0.0",
|
||||
"strict-event-emitter-types": "2.0.0",
|
||||
"stringz": "2.1.0",
|
||||
"style-loader": "3.3.0",
|
||||
"summaly": "2.4.1",
|
||||
"syslog-pro": "1.0.0",
|
||||
"systeminformation": "5.9.7",
|
||||
"syuilo-password-strength": "0.0.1",
|
||||
"textarea-caret": "3.1.0",
|
||||
"three": "0.117.1",
|
||||
"throttle-debounce": "3.0.1",
|
||||
"tinycolor2": "1.4.2",
|
||||
"tmp": "0.2.1",
|
||||
"ts-loader": "9.2.6",
|
||||
"ts-node": "10.3.0",
|
||||
"tsc-alias": "1.3.10",
|
||||
"tsconfig-paths": "3.11.0",
|
||||
"tslint": "6.1.3",
|
||||
"tslint-sonarts": "1.9.0",
|
||||
"twemoji-parser": "13.1.0",
|
||||
"typeorm": "0.2.38",
|
||||
"typescript": "4.4.4",
|
||||
"ulid": "2.3.0",
|
||||
"uuid": "8.3.2",
|
||||
"v-debounce": "0.1.2",
|
||||
"vanilla-tilt": "1.7.2",
|
||||
"vue": "3.2.20",
|
||||
"vue-loader": "16.7.0",
|
||||
"vue-prism-editor": "2.0.0-alpha.2",
|
||||
"vue-router": "4.0.5",
|
||||
"vue-style-loader": "4.1.3",
|
||||
"vue-svg-loader": "0.17.0-beta.2",
|
||||
"vuedraggable": "4.0.1",
|
||||
"web-push": "3.4.5",
|
||||
"webpack": "5.58.2",
|
||||
"webpack-cli": "4.9.0",
|
||||
"websocket": "1.0.34",
|
||||
"ws": "8.2.3",
|
||||
"xev": "2.0.1"
|
||||
"js-yaml": "4.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@redocly/openapi-core": "1.0.0-beta.54",
|
||||
"@types/fluent-ffmpeg": "2.1.17",
|
||||
"@typescript-eslint/parser": "5.4.0",
|
||||
"cross-env": "7.0.3",
|
||||
"cypress": "8.5.0",
|
||||
"start-server-and-test": "1.14.0"
|
||||
"cypress": "9.0.0",
|
||||
"start-server-and-test": "1.14.0",
|
||||
"typescript": "4.5.2"
|
||||
}
|
||||
}
|
||||
|
4
packages/backend/.eslintignore
Normal file
4
packages/backend/.eslintignore
Normal file
@ -0,0 +1,4 @@
|
||||
node_modules
|
||||
/built
|
||||
/.eslintrc.js
|
||||
/@types/**/*
|
9
packages/backend/.eslintrc.js
Normal file
9
packages/backend/.eslintrc.js
Normal file
@ -0,0 +1,9 @@
|
||||
module.exports = {
|
||||
parserOptions: {
|
||||
tsconfigRootDir: __dirname,
|
||||
project: ['./tsconfig.json'],
|
||||
},
|
||||
extends: [
|
||||
'../shared/.eslintrc.js',
|
||||
],
|
||||
};
|
2
packages/backend/.npmrc
Normal file
2
packages/backend/.npmrc
Normal file
@ -0,0 +1,2 @@
|
||||
save-exact = true
|
||||
package-lock = false
|
6
packages/backend/.vscode/settings.json
vendored
Normal file
6
packages/backend/.vscode/settings.json
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"typescript.tsdk": "node_modules\\typescript\\lib",
|
||||
"path-intellisense.mappings": {
|
||||
"@": "${workspaceRoot}/packages/backend/src/"
|
||||
}
|
||||
}
|
1
packages/backend/.yarnrc
Normal file
1
packages/backend/.yarnrc
Normal file
@ -0,0 +1 @@
|
||||
network-timeout 600000
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user