Compare commits

..

648 Commits

Author SHA1 Message Date
Natty 7a927d8d46
Custom CI 2023-04-20 22:14:20 +02:00
Natty f9af2efef1
Cut out nsfwjs 2023-04-20 21:59:10 +02:00
Natty 74b3ea0a02
Merge branch 'beta'
# Conflicts:
#	CALCKEY.md
#	README.md
#	package.json
#	packages/backend/src/server/api/endpoints/messaging/messages/create.ts
#	packages/backend/src/server/api/index.ts
#	packages/backend/src/server/api/mastodon/ApiMastodonCompatibleService.ts
#	packages/backend/src/server/api/mastodon/endpoints/account.ts
#	packages/backend/src/server/api/mastodon/endpoints/auth.ts
#	packages/backend/src/server/api/mastodon/endpoints/filter.ts
#	packages/backend/src/server/api/mastodon/endpoints/meta.ts
#	packages/backend/src/server/api/mastodon/endpoints/notifications.ts
#	packages/backend/src/server/api/mastodon/endpoints/search.ts
#	packages/backend/src/server/api/mastodon/endpoints/status.ts
#	packages/backend/src/server/api/mastodon/endpoints/timeline.ts
#	packages/backend/src/server/api/stream/channels/messaging.ts
#	packages/backend/src/server/api/stream/index.ts
#	packages/backend/src/server/index.ts
#	packages/client/src/components/MkRenoteButton.vue
#	packages/client/src/navbar.ts
#	packages/client/src/pages/messaging/index.vue
#	packages/client/src/pages/messaging/messaging-room.form.vue
#	packages/client/src/pages/messaging/messaging-room.message.vue
#	packages/client/src/pages/messaging/messaging-room.vue
#	packages/client/src/pages/miauth.vue
#	packages/client/src/scripts/get-user-menu.ts
#	packages/client/src/store.ts
#	patrons.json
#	pnpm-lock.yaml
2023-04-20 21:36:00 +02:00
Natty e4b8b35e82
Renote button optimization 2023-04-20 21:16:36 +02:00
Natty 12f0bd4e2d
Removed Mastodon API and messaging 2023-04-20 20:17:44 +02:00
ThatOneCalculator bc1e274f45
Merge branch 'develop' into beta 2023-04-12 17:35:54 -07:00
ThatOneCalculator b9e79cbc64
dev35 2023-04-12 17:34:51 -07:00
naskya daf07089b4 chore: update mfm-js version (#9844)
This resolves #9757.

Co-authored-by: naskya <m@naskya.net>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9844
Co-authored-by: naskya <naskya@noreply.codeberg.org>
Co-committed-by: naskya <naskya@noreply.codeberg.org>
2023-04-13 00:33:53 +00:00
ThatOneCalculator 8f7c136f48
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-04-12 17:19:17 -07:00
ThatOneCalculator 7f9d3f9d54
chore: formatting 2023-04-12 17:19:14 -07:00
Kainoa Kanter 941b016998 Merge pull request 'feat: allow users to mute their own boosts' (#9841) from naskya/calckey:allow-mute-my-boosts into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9841
2023-04-12 23:35:46 +00:00
ThatOneCalculator 498765f4f7
chore: up pnpm 2023-04-12 14:19:43 -07:00
naskya e8566b95aa
correct position 2023-04-12 20:24:54 +09:00
naskya 46864916d9
Allow to mute my own boosts 2023-04-12 15:52:46 +09:00
Kainoa Kanter fec0ed7966 Merge pull request 'Hyperlink more remote commits' (#9839) from naskya/calckey:calckey-md into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9839
2023-04-11 19:57:51 +00:00
naskya de7064ab79
Hyperlink more remote commits 2023-04-12 03:52:22 +09:00
ThatOneCalculator 07b9e17665
fix lookup instance 2023-04-11 10:32:51 -07:00
ThatOneCalculator 2d03d61ac8
consistent locales 2023-04-11 10:30:04 -07:00
ThatOneCalculator 6b359071be
feat: lookup post action 2023-04-11 10:12:17 -07:00
ThatOneCalculator b6d2b15948
feat: index posts action 2023-04-11 10:07:03 -07:00
ThatOneCalculator 0979ba6b8f
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-04-11 10:03:31 -07:00
ThatOneCalculator c5b0b07027
feat: admin lookup files/instance 2023-04-11 10:03:25 -07:00
naskya c3431b928a Partially disable search MFM (#9830)
Honestly, this workaround is pure garbage when this can be achieved by deleting a small piece of code from mfm-js, but this closes #9816 anyway 😅

Co-authored-by: naskya <m@naskya.net>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9830
Co-authored-by: naskya <naskya@noreply.codeberg.org>
Co-committed-by: naskya <naskya@noreply.codeberg.org>
2023-04-10 05:42:17 +00:00
ThatOneCalculator 50fc292c7e
docs: hyperlink foundkey commits 2023-04-09 20:28:29 -07:00
Kainoa Kanter 6cc0c2bf99 Merge pull request 'chore: minor improvement in the Chinese locale' (#9828) from naskya/calckey:chore/update-lang-menu into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9828
2023-04-08 14:22:56 +00:00
naskya 37147f8924
Update Chinese locale 2023-04-08 21:48:47 +09:00
Kainoa Kanter 63c35871b2 fix chat metadata 2023-04-08 00:18:37 -07:00
Kainoa Kanter 8491a757bc fix 2023-04-08 00:10:16 -07:00
Kainoa Kanter ee83b5b1a3 Merge branch 'develop' of https://codeberg.org/calckey/calckey into develop 2023-04-07 23:56:06 -07:00
Kainoa Kanter 0717454d49 feat: mark all as read action in chat 2023-04-07 23:56:02 -07:00
Kainoa Kanter 594ee74324 feat: messaging room banner 2023-04-07 23:55:42 -07:00
Kainoa Kanter 306fcb63d4 Merge pull request 'fix: retrieve remote user again when migrating' (#9826) from nmkj/calckey:fix-alsoknownas into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9826
2023-04-08 06:15:27 +00:00
Kainoa Kanter 4a1a954386 move hidden hashtag menu 2023-04-07 22:54:25 -07:00
Kainoa Kanter e6c1090cdc back button 2023-04-07 22:46:41 -07:00
Kainoa Kanter 437a6e29a5 chore: formatting 2023-04-07 22:46:10 -07:00
Namekuji 67dbb2318a fetch person again 2023-04-08 01:44:50 -04:00
naskya a624aeebe3 feat: per-user boost muting (#9825)
Cherry-picked from FoundKey/c414f24a2c ([commit](c414f24a2c))

This allows us to hide specified users' boosts from the timelines (the boosts will still be visible on their user page).

Co-authored-by: Hélène <pleroma-dev@helene.moe>
Co-authored-by: naskya <m@naskya.net>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9825
Co-authored-by: naskya <naskya@noreply.codeberg.org>
Co-committed-by: naskya <naskya@noreply.codeberg.org>
2023-04-08 05:44:36 +00:00
Kainoa Kanter 6c6350aff0 Merge pull request 'feat: add hidden hashtags management page' (#9824) from amybones/calckey:feat_hashtag_mgmt into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9824
2023-04-08 05:43:40 +00:00
amy bones cb68498fcb
feat: add hidden hashtags management page
This simply adds a basic admin UI to blocklist some hashtags from displaying in
the trending widget. The facility existed already in the backend, but there was
no UI to manipulate the list save for executing raw SQL or API calls.
2023-04-07 18:57:52 -07:00
Kainoa Kanter ec807fc1bd hotfix: fix crash 2023-04-07 17:58:29 -07:00
Kainoa Kanter 621be91cdb Revert "Revert "Incorporate calckey-js into calckey repository (#9820)""
This reverts commit 8033492c7c.
2023-04-07 17:44:27 -07:00
Kainoa Kanter 8033492c7c Revert "Incorporate calckey-js into calckey repository (#9820)"
This reverts commit 37c0423da6.
2023-04-07 17:35:10 -07:00
Kainoa Kanter 4fb7f4634f fix: typo 2023-04-07 17:25:24 -07:00
Kainoa Kanter 49c44771e5 Merge pull request 'fix: followers transfer via account migration' (#9822) from nmkj/calckey:fix-move into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9822
2023-04-08 00:06:08 +00:00
Kainoa Kanter 6bf1cbc0ef fix: format script; chore: format 2023-04-07 17:01:42 -07:00
Kainoa Kanter aeb0839da9 chore: rome formatting 2023-04-07 16:47:04 -07:00
Namekuji 62a439c693 fix move inbox 2023-04-07 17:48:25 -04:00
Kaity A 37c0423da6 Incorporate calckey-js into calckey repository (#9820)
Closes #9712.

Co-authored-by: Kaity A <kaity@theallans.com.au>
Co-authored-by: Ken Allan <ken@norganna.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9820
Co-authored-by: Kaity A <supakaity@noreply.codeberg.org>
Co-committed-by: Kaity A <supakaity@noreply.codeberg.org>
2023-04-07 14:25:22 +00:00
Kainoa Kanter d2b88327fe Merge pull request 'chore: update Japanese locale' (#9819) from naskya/calckey:chore/update-ja-locale-20230407 into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9819
2023-04-07 14:24:41 +00:00
Namekuji b03479c7b4 fix id of move activity 2023-04-07 06:39:29 -04:00
naskya b00cb44377
Update Japanese locale 2023-04-07 17:36:39 +09:00
Kainoa Kanter 3b9d9cb635 menu opts 2023-04-06 23:02:07 -07:00
Kainoa Kanter 0f5a6e0eef locale 2023-04-06 22:56:25 -07:00
Kainoa Kanter 47bfcf66b7 Merge branch 'develop' of https://codeberg.org/calckey/calckey into develop 2023-04-06 22:48:17 -07:00
Kainoa Kanter 0f6e7056b7 days for featured 2023-04-06 22:48:07 -07:00
Kainoa Kanter 1a8ccabe37 Update 'CALCKEY.md' 2023-04-07 05:40:50 +00:00
Kainoa Kanter 3e8029f1be Update 'CALCKEY.md' 2023-04-07 05:37:46 +00:00
Kainoa Kanter df7c71b1b4 refactor 2023-04-06 22:28:44 -07:00
Kainoa Kanter c2097f9244 feat: blur muted text 2023-04-06 22:11:10 -07:00
Kainoa Kanter 1d57a0da15 Merge pull request 'feat: give reason for soft word mutes' (#9815) from amybones/calckey:feat_soft_mute_reasons into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9815
2023-04-07 05:07:24 +00:00
Kainoa Kanter 7fb130b06e formatting 2023-04-06 18:56:46 -07:00
amy bones 15b1109947
feat: give reason for soft mutes
Bad UX when a post is muted and it just says "Some chick said something". Now
provide some context too to help people decide if they want to view something
potentially triggering.
2023-04-05 21:28:26 -07:00
Nya Candy 73b778de2a fix(client): userpage ui (#9179)
* fix(unverified): clip pages ui

* fix(unverified): user page width

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2023-04-05 15:45:16 -07:00
ThatOneCalculator 2d7f227de7
Revert "mkv13 media list"
This reverts commit c2ac53c66b.
2023-04-04 23:58:55 -07:00
ThatOneCalculator 679187c779
33 2023-04-04 22:59:53 -07:00
ThatOneCalculator 881acf9e26
typo 2023-04-04 22:59:41 -07:00
ThatOneCalculator ba67fa6ed6
oops 2023-04-04 22:55:36 -07:00
ThatOneCalculator c0a7e3f02e
dev32 2023-04-04 22:54:03 -07:00
ThatOneCalculator 0135dcc016
chore: back button in more places 2023-04-04 22:52:41 -07:00
ThatOneCalculator 0b72aa748b
chore: back button in control panel 2023-04-04 22:49:17 -07:00
ThatOneCalculator 48d00217c9
final fix? 2023-04-04 22:41:57 -07:00
ThatOneCalculator bf8169dc02
dev 30 2023-04-04 22:24:30 -07:00
ThatOneCalculator f78cdb9c60
import i18n 2023-04-04 22:22:35 -07:00
ThatOneCalculator 3f48a9926b
more fix 2023-04-04 22:12:55 -07:00
ThatOneCalculator b6e3dada80
dev28 2023-04-04 22:03:38 -07:00
ThatOneCalculator bcd5779a9d
fix 2023-04-04 22:03:24 -07:00
ThatOneCalculator 9879bbe38e
display back button in note 2023-04-04 21:59:35 -07:00
ThatOneCalculator c88627fc88
back button in settings 2023-04-04 21:59:11 -07:00
ThatOneCalculator 3b5b90879c
dont change state 2023-04-04 21:53:17 -07:00
ThatOneCalculator 89a010db1b
dev27 2023-04-04 21:47:38 -07:00
ThatOneCalculator c2ac53c66b
mkv13 media list 2023-04-04 21:47:30 -07:00
ThatOneCalculator dbde28f01e
dev 26 2023-04-03 20:46:54 -07:00
amybones 006bfbd42b fix: toggling the blocking state from the instance-info admin view (#9809)
Because the admin meta information was never loaded on this page, no amount of toggling the block or suspend sliders on the instance-info page (e.g. `https://calckey.example.com/instance-info/instance.tld`) will result in the instance actually being added to the blocklist. You could still do it from the bulk blocklist management page, but that can get unwieldy quickly if you just want to do a quick block of an instance.

Co-authored-by: amy bones <amy@spookygirl.boo>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9809
Co-authored-by: amybones <amybones@noreply.codeberg.org>
Co-committed-by: amybones <amybones@noreply.codeberg.org>
2023-04-04 03:46:23 +00:00
ThatOneCalculator a844216b30
locales 2023-04-03 20:44:52 -07:00
ThatOneCalculator 461b0a578b
chore: pnpm 8.1.1 2023-04-03 20:38:29 -07:00
ThatOneCalculator caff11c91c
dev25 2023-04-03 20:37:07 -07:00
ThatOneCalculator daba80177a
feat: push notifs button
Co-authored-by: Tamania <tamaina@hotmail.co.jp>
2023-04-03 20:36:59 -07:00
ThatOneCalculator b6bf307fe0
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-04-03 16:02:18 -07:00
ThatOneCalculator 4478468256
fix: 🐛 go to last timeline selected 2023-04-03 16:02:09 -07:00
Kainoa Kanter 03e52e5837 chore: update patrons 2023-04-03 17:17:08 +00:00
ThatOneCalculator 3a577df9ab
dev24 2023-04-03 10:10:12 -07:00
ThatOneCalculator c663faa69d
Merge branch 'develop' into beta 2023-04-03 10:04:12 -07:00
ThatOneCalculator b7fc6117b6
fix: buttons not showing 2023-04-03 10:03:35 -07:00
Kainoa Kanter 3e334dea24 Merge pull request 'Require timeline endpoints to return the requested limit of notes.' (#9805) from supakaity/hajkey:hk/notes-pagination into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9805
2023-04-03 17:02:01 +00:00
amy bones 662e7a96cf
fix: changing passwords, 2fa, and password resets.
The argon2 usage was only implemented for sign-ins which broke a bunch of other
endpoints and features.
2023-04-03 09:57:06 -07:00
Namekuji 143576bc29
add "speak as cat" setting to ja-jp 2023-04-03 09:57:06 -07:00
Free 226e497e3b
note-improvements (#9799)
Boop!

Co-authored-by: Freeplay <Freeplay@duck.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9799
Co-authored-by: Free <freeplay@duck.com>
Co-committed-by: Free <freeplay@duck.com>
2023-04-03 09:57:06 -07:00
Kaity A 99a21e70de
Separate cat-avatar mode and speak-as-cat nyanification 2023-04-03 09:57:06 -07:00
ThatOneCalculator 2ed9c7c31d
ci: 👷 add beta to commit 2023-04-03 09:57:06 -07:00
ThatOneCalculator 943efadbb7
add VIPS to dockerfile 2023-04-03 09:57:06 -07:00
ThatOneCalculator d524b7b1a2
fix: add copy for build from native-utils 2023-04-03 09:57:06 -07:00
ThatOneCalculator 92aa892826
fix: dockerfile 2023-04-03 09:57:06 -07:00
ThatOneCalculator bbfb359e04
styling 2023-04-03 09:57:06 -07:00
ThatOneCalculator 24b8f910da
remove console.log 2023-04-03 09:57:06 -07:00
ThatOneCalculator d50bafef88
attempt fix 2023-04-03 09:57:06 -07:00
ThatOneCalculator 08ba6700ac
correct color for help button 2023-04-03 09:57:06 -07:00
ThatOneCalculator 753c8c4f48
fix: dialogs not coming up 2023-04-03 09:57:06 -07:00
ThatOneCalculator aa0ec5016b
fix button alignments 2023-04-03 09:56:53 -07:00
ThatOneCalculator f8474063fe
don't show delete button if profile is default 2023-04-03 09:56:53 -07:00
ThatOneCalculator 81190525b3
style 2023-04-03 09:56:53 -07:00
ThatOneCalculator 67cdedfeea
fix import 2023-04-03 09:56:53 -07:00
ThatOneCalculator 5a7dee476b
attempt to fix #9797 2023-04-03 09:56:53 -07:00
ThatOneCalculator 148eb80595
don't need extra template 2023-04-03 09:56:53 -07:00
ThatOneCalculator 75d6d20454
plans 2023-04-03 09:56:53 -07:00
ThatOneCalculator a634d715f9
chore: remove okteto 2023-04-03 09:56:53 -07:00
ThatOneCalculator 19c69c5048
chore: 🎨 format 2023-04-03 09:56:53 -07:00
ThatOneCalculator b784874b55
dev22 2023-04-03 09:56:53 -07:00
ThatOneCalculator 342ed96b6c
fix: 🛂 no longer need 2fa for webauthn 2023-04-03 09:56:35 -07:00
Namekuji ba8041d333
fix indexing description 2023-04-03 09:56:35 -07:00
Namekuji eb820fe471
follow mastodon translation 2023-04-03 09:56:35 -07:00
Namekuji 91b946bda5
change "quote attached" to "quote" 2023-04-03 09:56:35 -07:00
naskya f1f0670100
Update Japanese locale 2023-04-03 09:56:35 -07:00
Namekuji 007b84a877
following en-US 2023-04-03 09:56:35 -07:00
ThatOneCalculator 590aa544c1
fix help button alignment iconsOnly 2023-04-03 09:56:35 -07:00
Kainoa Kanter 5d3a955a2c Merge pull request 'fix: changing passwords, 2fa, and password resets' (#9803) from amybones/calckey:fix_passwords into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9803
2023-04-03 16:53:06 +00:00
Kaity A adc042c81f
Merge branch 'hk/notes-pagination' of https://codeberg.org/supakaity/hajkey into hk/notes-pagination 2023-04-04 02:52:11 +10:00
Kaity A 3d93458d8b
Requested limit to be fulfilled if possible 2023-04-04 02:50:53 +10:00
Kaity A 9a6462d001
Requested limit to be fulfilled if possible 2023-04-04 02:46:06 +10:00
amy bones b28ba9f82f
fix: changing passwords, 2fa, and password resets.
The argon2 usage was only implemented for sign-ins which broke a bunch of other
endpoints and features.
2023-04-03 05:14:50 -07:00
Kainoa Kanter e4b1e3225e chore: update Japanese locale (#9802) 2023-04-03 07:26:51 +00:00
Namekuji e9b1f1f7b1 add "speak as cat" setting to ja-jp 2023-04-03 00:18:43 -04:00
Free 8bd64c89a4 note-improvements (#9799)
Boop!

Co-authored-by: Freeplay <Freeplay@duck.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9799
Co-authored-by: Free <freeplay@duck.com>
Co-committed-by: Free <freeplay@duck.com>
2023-04-02 21:39:25 +00:00
Kainoa Kanter 84debac6db Merge pull request 'Separate cat-avatar mode and speak-as-cat nyanification' (#9798) from supakaity/hajkey:hk/cat-speak into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9798
2023-04-02 16:19:15 +00:00
Kaity A a66eac0e5b
Separate cat-avatar mode and speak-as-cat nyanification 2023-04-02 21:24:12 +10:00
ThatOneCalculator 5b150ddab0
ci: 👷 add beta to commit 2023-04-02 02:17:54 -07:00
ThatOneCalculator e119554f2b
add VIPS to dockerfile 2023-04-02 02:09:49 -07:00
ThatOneCalculator b9cb64a5d1
fix: add copy for build from native-utils 2023-04-02 02:07:02 -07:00
ThatOneCalculator f132339316
fix: dockerfile 2023-04-02 01:59:18 -07:00
ThatOneCalculator 9581c0df1b
styling 2023-04-02 01:00:40 -07:00
ThatOneCalculator 4496de2040
remove console.log 2023-04-02 00:42:35 -07:00
ThatOneCalculator e10fc6b8ec
attempt fix 2023-04-02 00:21:43 -07:00
ThatOneCalculator 34613771e5
correct color for help button 2023-04-02 00:13:26 -07:00
ThatOneCalculator 38ade38f3f
fix: dialogs not coming up 2023-04-02 00:07:48 -07:00
ThatOneCalculator 565493b56f
fix button alignments 2023-04-01 23:53:31 -07:00
ThatOneCalculator 79ecd7184b
don't show delete button if profile is default 2023-04-01 23:44:59 -07:00
ThatOneCalculator 0b02be7343
style 2023-04-01 23:34:02 -07:00
ThatOneCalculator bb6d04f9c3
fix import 2023-04-01 23:28:55 -07:00
ThatOneCalculator bf44a0a719
attempt to fix #9797 2023-04-01 21:44:19 -07:00
ThatOneCalculator ed35e28a2c
don't need extra template 2023-04-01 21:39:48 -07:00
ThatOneCalculator 6a095355c1
plans 2023-04-01 21:37:47 -07:00
ThatOneCalculator d8ca4d60e2
chore: remove okteto 2023-04-01 21:18:23 -07:00
ThatOneCalculator e9b45260b5
chore: 🎨 format 2023-04-01 21:10:31 -07:00
ThatOneCalculator 2469198bb1
dev22 2023-04-01 21:06:10 -07:00
ThatOneCalculator 4e843f2949
fix: 🛂 no longer need 2fa for webauthn 2023-04-01 21:04:22 -07:00
Kainoa Kanter 0ea4fe59b7 Merge pull request 'chore: update Japanese locale' (#9796) from nmkj/calckey:update-ja-jp into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9796
2023-04-02 00:29:59 +00:00
Namekuji b133694d80 fix indexing description 2023-04-01 19:56:21 -04:00
Namekuji e89f69ac8c follow mastodon translation 2023-04-01 19:43:32 -04:00
Namekuji bd4b102f5c change "quote attached" to "quote" 2023-04-01 19:21:12 -04:00
ThatOneCalculator c3ee953e92
fix help button alignment iconsOnly 2023-04-01 16:18:01 -07:00
ThatOneCalculator 8668525bf5
fix #9784 2023-04-01 16:14:11 -07:00
ThatOneCalculator 8c10084335
fix #9784 2023-04-01 16:13:17 -07:00
naskya 994ab8d9dd Update Japanese locale 2023-04-01 19:11:43 -04:00
Namekuji 5ffeb10f16 following en-US 2023-04-01 17:03:55 -04:00
ThatOneCalculator 00e2b09f99
fix: add cargo to DOCKERFILE 2023-04-01 13:24:57 -07:00
ThatOneCalculator d22378c67e
fix: add cargo to DOCKERFILE 2023-04-01 13:24:25 -07:00
ThatOneCalculator bb228d87bd
Merge branch 'develop' into beta 2023-04-01 12:28:11 -07:00
ThatOneCalculator e516685cbc
Revert "fix: 🐛 make recently used group"
This reverts commit 806591cb35.
2023-04-01 12:22:46 -07:00
ThatOneCalculator 806591cb35
fix: 🐛 make recently used group
Closes #9784
2023-04-01 12:19:27 -07:00
ThatOneCalculator 93867ec927
fix migration 2023-04-01 12:14:54 -07:00
ThatOneCalculator a707788c31
add top margin to help button 2023-04-01 12:05:27 -07:00
ThatOneCalculator 33ae0ca6fd
chore: add cleanup migration 2023-04-01 12:03:49 -07:00
ThatOneCalculator 8cc7d11fa4
feat: help menu in navbar 2023-04-01 11:56:43 -07:00
ThatOneCalculator 02870df588
fix search import 2023-04-01 11:39:27 -07:00
ThatOneCalculator 04a67200a0
dev19 2023-04-01 11:29:01 -07:00
ThatOneCalculator d3d8bc34d0
feat: search now searches posts and users 2023-04-01 11:28:34 -07:00
Kainoa Kanter d3ccf27af7 Merge pull request 'fix: another bug in KaTeX macro expander' (#9795) from naskya/calckey:fix/katex-macro-2 into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9795
2023-04-01 16:28:48 +00:00
Kainoa Kanter 6ebd25d874 Merge pull request 'Improve performance' (#9794) from supakaity/hajkey:hk/delete-fixes into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9794
2023-04-01 16:28:19 +00:00
Kaitlyn Allan a3fa0a2f9c Clarify variable names 2023-04-01 22:49:14 +10:00
naskya 671f6f93a0
Fix a bug in macro expander 2023-04-01 21:18:55 +09:00
Kaitlyn Allan b96fe57793 Improve performance of charts
Fix some undefined !== deleted issues
2023-04-01 21:42:03 +10:00
naskya 0e8fe41aaa feat: add option to boost with Home and Followers-only visibility (#9788)
Closes: #9777

This pull request includes UI changes (please check the attached images).

Co-authored-by: naskya <m@naskya.net>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9788
Co-authored-by: naskya <naskya@noreply.codeberg.org>
Co-committed-by: naskya <naskya@noreply.codeberg.org>
2023-04-01 06:53:29 +00:00
ThatOneCalculator f70c5da0bd
audio on mobile fix 2023-03-31 22:06:21 -07:00
Kainoa Kanter 63c3a21c0c fix: don't nyaize quoted text (#9791) 2023-03-31 16:48:41 +00:00
kabo2468 b717f6d6ff
fix: don't nyaize quoted text 2023-03-31 23:30:57 +09:00
ThatOneCalculator eae2c959d3
docs: add note about reverse migration 2023-03-30 19:34:42 -07:00
ThatOneCalculator 7b2a34a364
add argon 2023-03-30 19:19:09 -07:00
ThatOneCalculator acfc88389a
formatting 2023-03-30 19:10:03 -07:00
ThatOneCalculator 12769bd1ab
feat: 🔒 add argon2 support
Passwords will be automatically re-hashed on sign-in. All new password hashes will be argon2 by default.  This uses argon2id and is not configurable. In the very unlikely case someone has more specific needs, a fork is recommended.  ChangeLog: Added  Co-authored-by: Chloe Kudryavtsev <code@toast.bunkerlabs.net>

Breaks Calckey -> Misskey migration, but fixes Foundkey -> Calckey migration
2023-03-30 19:09:44 -07:00
ThatOneCalculator 1e249a7182
add rust to docker 2023-03-30 19:02:23 -07:00
ThatOneCalculator 5ce2e4f408
dev 18 2023-03-30 18:59:03 -07:00
s1idewhist1e c58ce6c53b Refactor: use rust for native mastodon id conversion (#9786)
This uses [napi-rs](https://napi.rs/) to allow for automatic generation of node bindings for the native code.

I also changed the `isolatedModules` TS flag to false to allow for `static enum` to be shared across modules. It doesn't seem to be necessary for the build system that CK uses.

Currently this method does not work with ID generators with longer IDs. Likely the best solution is to add another key in the database.

Some benchmarks for 1 million conversions:

```
	node, x1_000_000: 2.847s
	rust, x1_000_000: 1.265s
```

There are still optimizations that can be made, but I think this is a good starting point and a good way to bring rust into the CK stack.

Co-authored-by: s1idewhist1e <trombonedude05@gmail.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9786
Co-authored-by: s1idewhist1e <s1idewhist1e@noreply.codeberg.org>
Co-committed-by: s1idewhist1e <s1idewhist1e@noreply.codeberg.org>
2023-03-31 01:58:28 +00:00
ThatOneCalculator a6317cb171
chore: up pnpm 2023-03-30 15:10:32 -07:00
Kainoa Kanter 73190395ec Merge pull request 'fix: a bug in the KaTeX macro expander' (#9785) from naskya/calckey:fix/katex-macro into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9785
2023-03-30 21:50:03 +00:00
naskya fe9ed9fcba
Fix a bug in the macro expander 2023-03-31 06:31:18 +09:00
ThatOneCalculator f7ac0230da
chore: update patron list 2023-03-30 11:29:54 -07:00
cutestnekoaqua 01b9dad61d
send vlaue 2023-03-30 18:05:39 +02:00
cutestnekoaqua 021e86a0ab
make sure its not checked for akkoma 2023-03-30 17:52:38 +02:00
cutestnekoaqua 897b5f928d
check for signatures while post import 2023-03-30 17:52:17 +02:00
cutestnekoaqua 09aeb6e2f5
nyaa 2023-03-30 17:31:29 +02:00
Cleo 00dc860574 remove debug msgs 2023-03-30 09:30:38 +00:00
Cleo a3c0d56600 „packages/backend/src/server/api/endpoints/i/import-posts.ts“ ändern
Signed-off-by: Cleo <cutestnekoaqua@noreply.codeberg.org>
2023-03-30 09:12:51 +00:00
Cleo 0a79b6b9f0 Yeet mentions 2023-03-30 08:40:20 +00:00
naskya 82db61ede0 fix: direct boost (#9783)
Sorry to create PR multiple times. I should have included this in #9778.

Co-authored-by: naskya <m@naskya.net>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9783
Co-authored-by: naskya <naskya@noreply.codeberg.org>
Co-committed-by: naskya <naskya@noreply.codeberg.org>
2023-03-30 03:15:06 +00:00
ThatOneCalculator 8f67ae35f7
chore: 🌐 locale changes
Closes #9781 #9773
2023-03-29 20:14:12 -07:00
naskya 9489543180 feat: custom KaTeX macro (#9779)
Closes: #9759
Co-authored-by: naskya <m@naskya.net>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9779
Co-authored-by: naskya <naskya@noreply.codeberg.org>
Co-committed-by: naskya <naskya@noreply.codeberg.org>
2023-03-30 03:11:57 +00:00
Kainoa Kanter 9e7f493ec5 Update 'docs/migrate.md' 2023-03-29 21:11:01 +00:00
Kainoa Kanter cefb274a98 Update 'docs/migrate.md' 2023-03-29 21:10:00 +00:00
ThatOneCalculator ab9476ea27
fix sounds settings 2023-03-29 13:38:59 -07:00
ThatOneCalculator f33eb43ea5
typo 2023-03-29 13:35:10 -07:00
ThatOneCalculator 32dd494424
feat: button in admin dash to index posts 2023-03-29 13:30:02 -07:00
ThatOneCalculator 48e0333e71
fix: 🐛 formlink -> button
fixes notifications and drive in settings
2023-03-29 12:53:07 -07:00
ThatOneCalculator 5f5caf1ef4
better icons 2023-03-29 12:47:25 -07:00
ThatOneCalculator 181ab5a007
pnpm 8 2023-03-29 12:40:50 -07:00
ThatOneCalculator 4eb3b6055a
dev16 2023-03-29 12:39:48 -07:00
ThatOneCalculator e518e86a79
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-03-29 12:39:17 -07:00
ThatOneCalculator 9a56764fe0
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-03-29 12:38:55 -07:00
cutestnekoaqua eed9c63247
get post details from object 2023-03-29 21:38:52 +02:00
ThatOneCalculator bae4bce8c3
header icon for queue page 2023-03-29 12:38:38 -07:00
cutestnekoaqua 4181bee43c
catch text parsing error 2023-03-29 21:25:28 +02:00
cutestnekoaqua 2398aab82b
add info 2023-03-29 21:16:45 +02:00
cutestnekoaqua 66429527ca
catch errors 2023-03-29 21:15:06 +02:00
cutestnekoaqua 21c7f93d7a
handle mastodon style posts 2023-03-29 21:10:01 +02:00
cutestnekoaqua 7650c60cdf
dont ping users 2023-03-29 20:01:56 +02:00
cutestnekoaqua 12698bf1e8
actually increase line num 2023-03-29 19:37:31 +02:00
cutestnekoaqua 82f342cf45
update post job 2023-03-29 19:36:23 +02:00
cutestnekoaqua 220b022461
note import debug logs 2023-03-29 19:23:37 +02:00
cutestnekoaqua 50aa4667bb
temporary set import limit to infinity for debug 2023-03-29 19:16:39 +02:00
Kainoa Kanter b86513e83e Merge pull request 'fix: federating "Boost to Followers"' (#9778) from naskya/calckey:fix/followers-only-boost into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9778
2023-03-29 08:16:12 +00:00
naskya 6b8be4ddb7 Merge branch 'develop' into fix/followers-only-boost 2023-03-29 02:24:21 +00:00
cutestnekoaqua 450f798f12
why is this git ignored? 2023-03-29 00:09:31 +02:00
cutestnekoaqua 99b471d43b
why is this git ignored? 2023-03-28 23:48:27 +02:00
cutestnekoaqua d5c80e74de
feat: experimental post import 2023-03-28 23:33:16 +02:00
Kagami Sascha Rosylight 7acb2b7c09
fix: allow announces with followers visibility 2023-03-29 04:55:16 +09:00
Kainoa Kanter 74a9e374d6 Merge pull request 'fix: router for the control panel' (#9775) from naskya/calckey:fix/router into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9775
2023-03-28 02:17:57 +00:00
naskya 492a81104a
Try to fix calckey/calckey#9770 2023-03-28 03:59:07 +09:00
ThatOneCalculator 094637a4d5
pnpm 8! 2023-03-26 00:37:11 -07:00
ThatOneCalculator 231d3b9a98
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-03-25 21:19:26 -07:00
Kaitlyn Allan 35a1b19369
set workers to reduce their processing priority 2023-03-25 21:19:06 -07:00
Free 83c7dd177b note-improvements (#9768)
Fixes #9745, quote icon, note spacing adjustments, border radius's in noGap

Co-authored-by: Freeplay <Freeplay@duck.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9768
Co-authored-by: Free <freeplay@duck.com>
Co-committed-by: Free <freeplay@duck.com>
2023-03-26 03:33:44 +00:00
cutestnekoaqua 1278200ae7
[PATCH] set workers to reduce their processing priority
Authored-by: Kaitlyn Allan <kaitlyn.allan@enlabs.cloud>
2023-03-25 12:35:30 +01:00
ThatOneCalculator 5b575c67ed
fix? 2023-03-24 13:14:41 -07:00
ThatOneCalculator a751050dd0
chore: bump pnpm 2023-03-24 12:46:09 -07:00
ThatOneCalculator 8acf3833fa
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-03-24 12:45:32 -07:00
ThatOneCalculator 35bf174273
dev15 2023-03-24 12:45:25 -07:00
Kainoa Kanter df488c52b0 Merge pull request 'chore: update Japanese locale' (#9765) from nmkj/calckey:update-ja-jp into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9765
2023-03-24 14:56:13 +00:00
Kainoa Kanter a3a7e43686 Merge pull request 'fix: build proper callback url of mastodon oauth' (#9764) from nmkj/calckey:fix-oauth-redirect into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9764
2023-03-24 14:55:29 +00:00
Namekuji 285e17ddd0 fix japanese locale 2023-03-24 07:38:02 -04:00
Namekuji 86e5a19971 fix callback url 2023-03-24 06:55:23 -04:00
ThatOneCalculator 765c61bf52
don't show buttons if mobile 2023-03-24 00:42:36 -07:00
ThatOneCalculator a1efc980d4
fix 2023-03-24 00:34:13 -07:00
ThatOneCalculator 50a8cccb23
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-03-24 00:04:12 -07:00
ThatOneCalculator 9ca00d73b5
fix 2023-03-24 00:04:00 -07:00
Kainoa Kanter c8bc6392ed chore: update patrons 2023-03-24 07:02:19 +00:00
ThatOneCalculator 25d44f500b
console log 2023-03-23 23:59:42 -07:00
ThatOneCalculator b7a5799698
feat: new chat button on mobile 2023-03-23 23:51:59 -07:00
Kainoa Kanter 4d3d7698e3 chore: update patron list 2023-03-24 06:32:09 +00:00
ThatOneCalculator 434e2f24e9
feat: post metadata uses full @
Closes #9660
2023-03-23 18:03:50 -07:00
ThatOneCalculator 6e898249ef
beta 31 2023-03-23 17:50:30 -07:00
ThatOneCalculator 5578b53223
Merge branch 'develop' into beta 2023-03-23 17:50:01 -07:00
ThatOneCalculator 765d90b789
chore: 📦 upgrade megalodon 2023-03-23 16:20:21 -07:00
ThatOneCalculator f80dcca6d5
feat: masto api add display name 2023-03-23 16:16:27 -07:00
ThatOneCalculator 581d1c71b3
beta3 2023-03-23 14:46:37 -07:00
ThatOneCalculator f560f2516e
dev 14 2023-03-23 14:45:57 -07:00
ThatOneCalculator 249f1f32d3
docs: sonic 2023-03-23 14:45:33 -07:00
ThatOneCalculator 6f5ec62cc8
feat: add sonic to docker 2023-03-23 14:43:21 -07:00
ThatOneCalculator 94640486c5
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-03-23 09:07:25 -07:00
ThatOneCalculator d5cafde7d1
Revert "refactor: nyaize on the frontend"
This reverts commit aff90b3ef2.
2023-03-23 09:06:32 -07:00
yawhn df68d5ffff feat: swap home timeline with social's functionality (#9597)
The Home timeline functionality is swapped with social's. Meaning that Home timeline now consists of followee's and local posts. Social from now on will contain only followee's posts. See more info in the attached ticket.

Some changes applied in english locales as well. Probably the rest of the languages need to be fixed though.

This PR closes the ticket: https://codeberg.org/calckey/calckey/issues/9552

Co-authored-by: yawhn <kordaris@gmail.com>
Co-authored-by: ThatOneCalculator <kainoa@t1c.dev>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9597
Co-authored-by: yawhn <yawhn@noreply.codeberg.org>
Co-committed-by: yawhn <yawhn@noreply.codeberg.org>
2023-03-23 16:02:37 +00:00
amy bones c5de597079
fix: relay signature handling
A change sometime ago moved to setting some signature fields in the incoming
object to undefined as opposed to deleting them. The trouble is that downstream
code checks against existence, not undefinedness and rejects the message.

Resolves: #9665
2023-03-22 17:32:49 -07:00
ThatOneCalculator d05ab9bf46
fix color in follow button 2023-03-22 14:29:07 -07:00
ThatOneCalculator 18eed9607b
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-03-22 12:24:45 -07:00
yawhn 25c72943c7
fix: a bug in ads 2023-03-22 12:24:37 -07:00
Kainoa Kanter 8243b635f4 Merge pull request 'fix: max user profile length to db field length' (#9750) from amybones/calckey:fix-profile-length into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9750
2023-03-22 18:58:32 +00:00
ThatOneCalculator 3a412b955d
fix: 🐛 no nyaizing undefined text
Closes #9752
2023-03-22 11:54:38 -07:00
Free 4b1af35b39 Allows ctrl+clicking internal links (#9603) (#9743)
Co-authored-by: Freeplay <Freeplay@duck.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9743
Co-authored-by: Free <freeplay@duck.com>
Co-committed-by: Free <freeplay@duck.com>
2023-03-22 18:50:30 +00:00
cutestnekoaqua 4714e966f1
Masto api :) 2023-03-22 17:43:05 +01:00
cutestnekoaqua 30bc16daba
allow client credentials not just for tapbots 2023-03-22 14:40:59 +01:00
amy bones 1f840aa7b9
fix: max user profile length to db field length
Resolves: #9749
2023-03-22 02:10:43 -07:00
Free bcd0488cf1 note-improvements (#9742)
Increases the limit of the replies loaded above the focused post from 10 to 30

Co-authored-by: Freeplay <Freeplay@duck.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9742
Co-authored-by: Free <freeplay@duck.com>
Co-committed-by: Free <freeplay@duck.com>
2023-03-21 04:41:50 +00:00
ThatOneCalculator e674ae1c25
Merge branch 'develop' into beta 2023-03-20 20:54:01 -07:00
ThatOneCalculator b8e09ad4b6
Merge branches 'develop' and 'develop' of codeberg.org:calckey/calckey into develop 2023-03-20 20:52:52 -07:00
ThatOneCalculator aba1eaa51d
locale 2023-03-20 20:52:39 -07:00
Kainoa Kanter ba84249ba8 Merge pull request 'fix: local time for users' (#9741) from naskya/calckey:fix/localtime into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9741
2023-03-21 03:42:30 +00:00
naskya 49d3df43d3
fix: local time for users 2023-03-21 08:24:02 +09:00
Free 74bb79792d note-improvements (#9739)
fixes #9735, translations, plus other tweaks

Co-authored-by: Freeplay <Freeplay@duck.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9739
Co-authored-by: Free <freeplay@duck.com>
Co-committed-by: Free <freeplay@duck.com>
2023-03-20 20:26:05 +00:00
ThatOneCalculator 092761f8df
cl 2023-03-20 12:28:40 -07:00
ThatOneCalculator 14201f465b
typo 2023-03-19 20:19:40 -07:00
ThatOneCalculator 4ce8e83d3e
fix: make sure cw button is on new line 2023-03-19 20:15:49 -07:00
ThatOneCalculator 43bca8ed38
validate blank messages on backend 2023-03-19 20:03:49 -07:00
ThatOneCalculator 4c4c641804
fix: 🐛 can't send blank messages
Closes #9661
2023-03-19 20:02:14 -07:00
ThatOneCalculator 2de02cf655
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-03-19 19:59:36 -07:00
ThatOneCalculator aff90b3ef2
refactor: nyaize on the frontend 2023-03-19 19:59:00 -07:00
Free c2df136dda note-improvements (#9734)
Not sure if this is the best way to jump to the post

This also lets you select text w/out clicking to the post (and clicking normally on top of the text opens the post)

Co-authored-by: Freeplay <Freeplay@duck.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9734
Co-authored-by: Free <freeplay@duck.com>
Co-committed-by: Free <freeplay@duck.com>
2023-03-20 02:31:02 +00:00
ThatOneCalculator d75a4e56e3
change follow button background, finally 2023-03-19 19:30:08 -07:00
ThatOneCalculator b18864946a
theme names 2023-03-19 18:49:25 -07:00
ThatOneCalculator 0ecf681db2
cl 2023-03-19 18:44:48 -07:00
ThatOneCalculator 5afa8c6e9e
dev13 2023-03-19 18:44:17 -07:00
ThatOneCalculator 710a89d343
feat: more themes! 2023-03-19 18:44:08 -07:00
ThatOneCalculator 28c1419612
generic color for online user count 2023-03-19 16:58:54 -07:00
ThatOneCalculator f73ff912f1
fix: repo url 2023-03-19 16:53:49 -07:00
cutestnekoaqua 16ef00b6fe
chore: add emoji aliases 2023-03-20 00:37:49 +01:00
cutestnekoaqua d81bfd30ef
Revert "fix: unicode aliases"
This reverts commit 989b497588.
2023-03-20 00:30:05 +01:00
cutestnekoaqua 989b497588
fix: unicode aliases 2023-03-20 00:24:33 +01:00
Kainoa Kanter 60a5c4012c Merge pull request 'bug: Fix error saving drive file caption > 512 chars' (#9729) from supakaity/hajkey:hk/fix-9728 into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9729
2023-03-19 21:54:38 +00:00
Kainoa Kanter cacdf9cf36 Merge pull request 'fix: don't show smartphone UI when settings icon is double-clicked' (#9731) from naskya/calckey:fix/settings-ui into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9731
2023-03-19 21:52:19 +00:00
kakkokari-gtyih 27fedf9d6e
fix: don't show smartphone UI when settings icon is double-clicked 2023-03-19 21:43:07 +09:00
Kaitlyn Allan 1b134467ed Fix error saving drive file caption > 512 chars 2023-03-19 20:06:24 +10:00
ThatOneCalculator 749117a2ce
cli images 2023-03-19 02:33:44 -07:00
ThatOneCalculator 0fa22b8598
fix cli more 2023-03-19 02:08:08 -07:00
ThatOneCalculator 2dcf88b732
feat: spruce up CLI 2023-03-19 01:59:33 -07:00
ThatOneCalculator 1bd70ae19f
docs: 📝 sonic 2023-03-19 01:32:57 -07:00
ThatOneCalculator c30d26fb59
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-03-19 01:32:23 -07:00
ThatOneCalculator d3d9c4830b
docs: 📝 sonic instructions 2023-03-19 01:32:17 -07:00
Kaity A 706b4ae602 Add sonic full-text search support (#9714)
This pull request adds support for the [sonic](https://github.com/valeriansaliou/sonic) full text indexing server into Calckey.

In addition to this, a stateful endpoint has been added that will completely (re-)index all notes into any (elasticsearch and/or sonic) indexing server defined in your config at `/api/admin/search/index-all`. It can (optionally) take input data to define the starting point, such as:

```
{"cursor": "9beg3lx6ad"}
```

Currently if both sonic and elasticsearch are defined in the config, sonic will take precedence for searching, but both indexes will continue to be updated for new note creations. Future enhancements may include the ability to choose which indexer to use (or combine multiple).

Co-authored-by: Kaitlyn Allan <kaitlyn.allan@enlabs.cloud>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9714
Co-authored-by: Kaity A <supakaity@noreply.codeberg.org>
Co-committed-by: Kaity A <supakaity@noreply.codeberg.org>
2023-03-19 08:26:47 +00:00
ThatOneCalculator 3f58232a39
chore: bump pnpm version 2023-03-19 00:27:31 -07:00
ThatOneCalculator 77912ae7b5
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-03-19 00:26:32 -07:00
ThatOneCalculator 76935a91e1
feat: compile time compression 2023-03-19 00:26:26 -07:00
naskya 1c0d4546f7 feat: set license information for custom emojis (#9719)
Closes: #9711 (please check this issue first)

I cherry-picked two commits ([1](8ae9d2eaa8), [2](ed51209172)) from [Misskey](https://github.com/misskey-dev/misskey) and made a few changes.
「ライセンス」should be written as "License" in the following screenshots, but it has not yet been translated.

It would be nice if we could include multiple lines of text, but I just ported what's been implemented so far in Misskey not to mess things up.

This is my first pull request (aside from typo correction). Feel free to point out any issues!

![](https://cdn.discordapp.com/attachments/823878222897741868/1086372711841935440/2023-03-18_042011.png)
![](https://cdn.discordapp.com/attachments/823878222897741868/1086373178214981853/01.png)
![](https://cdn.discordapp.com/attachments/823878222897741868/1086373336709341246/2023-03-18_042629.png)

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
Co-authored-by: naskya <m@naskya.net>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9719
Co-authored-by: naskya <naskya@noreply.codeberg.org>
Co-committed-by: naskya <naskya@noreply.codeberg.org>
2023-03-19 07:22:28 +00:00
ThatOneCalculator c5d9f3bf59
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-03-19 00:14:08 -07:00
ThatOneCalculator 2117977d88
fix: when count is actually 0 2023-03-19 00:13:30 -07:00
Free b2bc51a4ee note-improvements (#9721)
boop

Co-authored-by: Freeplay <Freeplay@duck.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9721
Co-authored-by: Free <freeplay@duck.com>
Co-committed-by: Free <freeplay@duck.com>
2023-03-19 07:13:02 +00:00
ThatOneCalculator 681cefcda5
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-03-19 00:12:33 -07:00
ThatOneCalculator 2ea458e2db
fix: mobile button alignment 2023-03-19 00:12:24 -07:00
Kainoa Kanter dbe45e1838 Merge pull request 'Don't show channel edit button unless owner' (#9722) from supakaity/hajkey:hk-channel-owner-edit into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9722
2023-03-18 23:11:47 +00:00
cutestnekoaqua 025f149440
pass auth to metadata 2023-03-18 13:06:49 +01:00
cutestnekoaqua 04c1b395b4
fix: intermediarily convert ids 2023-03-18 12:23:03 +01:00
cutestnekoaqua 624d3c399f
add 404 as replacements 2023-03-18 12:09:43 +01:00
cutestnekoaqua c5fda342e1
chore: update package locks 2023-03-18 11:53:17 +01:00
cutestnekoaqua 7a500ed836
chore: update megalodon 2023-03-18 11:52:18 +01:00
Kaitlyn Allan 53d482d209 Don't show channel edit button unless owner 2023-03-18 18:27:56 +10:00
Free 9e1fdeaf39 note-improvements (#9720)
Co-authored-by: Free <freeplay@duck.com>
Co-committed-by: Free <freeplay@duck.com>
2023-03-18 00:44:00 +00:00
ThatOneCalculator 3066d6079a
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-03-17 09:31:47 -07:00
ThatOneCalculator d3d21aa8ea
fix: send button 2023-03-17 09:31:39 -07:00
fruye 1239db9ac8 fix: Parse mastoAPI `limit` argument in more places & Improve converting arguments to boolean (#9716)
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9716
Authored-by: fruye <fruye@unix.dog>
Signed-off-by: Cleo John <waterdev@galaxycrow.de>
Co-authored-by: fruye <fruye@unix.dog>
Co-committed-by: fruye <fruye@unix.dog>
2023-03-17 13:58:01 +00:00
Cleo 177f36a2f2 Merging 'New thread view + other post improvements' (#9648) from Freeplay/calckey:note-improvements courtesy Freeplay
Signed-of-by: Cleo John <waterdev@galaxycrow.de>
2023-03-17 13:48:09 +00:00
ThatOneCalculator 964bc9708a
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-03-16 18:18:22 -07:00
ThatOneCalculator c438d2bcb0
docs: changes 2023-03-16 18:17:53 -07:00
s1idewhist1e 36281ec413 feat: Make follower counts for remote users correct (#9705)
#9293

Not sure if this is the right approach for this

Co-authored-by: s1idewhist1e <trombonedude05@gmail.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9705
Co-authored-by: s1idewhist1e <s1idewhist1e@noreply.codeberg.org>
Co-committed-by: s1idewhist1e <s1idewhist1e@noreply.codeberg.org>
2023-03-17 01:16:31 +00:00
ThatOneCalculator 4c263cfbcc
better border color 2023-03-16 15:37:49 -07:00
Freeplay bca45c5868 fix deck view margins 2023-03-15 22:29:48 -04:00
ThatOneCalculator 76bcf96e2c
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-03-15 18:29:22 -07:00
ThatOneCalculator ef509b5138
docs: 📝 accurate update instructions
Closes #9709
2023-03-15 18:28:53 -07:00
Freeplay f79ac3d361 Change reply icon (also align the icon in the posting form) 2023-03-15 21:24:12 -04:00
Freeplay 1be55c9685 *actually* fix the line alignment 2023-03-15 20:26:13 -04:00
Freeplay 4b391424ae fix line alignment in smaller windows 2023-03-15 19:53:22 -04:00
Freeplay 4cabd725a0 fix line in boosted text 2023-03-15 19:18:26 -04:00
Freeplay b7b853f970 fix footer icons 2023-03-15 18:58:35 -04:00
Kainoa Kanter e4c148611b fix: Run to boolean conversion in mastoAPI public and hashtag timelines (#9710) 2023-03-15 22:53:41 +00:00
Freeplay 23727bae92 Merge branch 'develop' of https://codeberg.org/calckey/calckey into note-improvements 2023-03-15 18:40:21 -04:00
fruye fcbee6d3f5 fix: Run to boolean conversion in mastoAPI public and hashtag timelines
The `only_media` query parameter in `/api/v1/timelines/public` and
`/api/v1/timelines/tag/:hashtag` was previously passed directly as-is to
the Misskey API, which made it pretty upset because it was receiving a
string named 'true' instead of the value 'true'.

Needed for pleromaFE to display a timeline.
2023-03-15 23:09:19 +01:00
fruye 0e2a5b3093 fix: Isolate unicode characters in display names (#9702)
This fixes a 'Follows you' badge on a profile page and account addresses in threads from being drawn backwards when an account has some special Unicode characters that change the direction of text in their name (i.e. U+202E RIGHT-TO-LEFT OVERRIDE).

Co-authored-by: fruye <fruye@unix.dog>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9702
Co-authored-by: fruye <fruye@noreply.codeberg.org>
Co-committed-by: fruye <fruye@noreply.codeberg.org>
2023-03-15 07:18:18 +00:00
Kainoa Kanter 6db3766505 Update 'package.json' 2023-03-15 04:20:29 +00:00
ThatOneCalculator fc0632dda6
release notes 2023-03-14 16:55:24 -07:00
ThatOneCalculator ecf05b1d9e
Merge branch 'develop' into beta 2023-03-14 16:28:43 -07:00
ThatOneCalculator 86db886199
fix: mona is free 2023-03-14 16:23:40 -07:00
ThatOneCalculator 3a13c5ea59
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-03-14 16:21:01 -07:00
ThatOneCalculator e25e36d3eb
apps: mona 2023-03-14 16:20:46 -07:00
Cleo John 111bf8b77d webhook mastodon fixes 2023-03-14 17:18:30 +01:00
Kainoa Kanter 8d50cb2391 Further Masto API work, focus on Ivory compatibility (#9703) 2023-03-13 07:25:17 +00:00
Luna e198a34cd0 Small fix to Masto ID conversion code 2023-03-13 00:44:38 -04:00
ThatOneCalculator c2c0e5b76c
chore: up icons 2023-03-12 13:43:37 -07:00
ThatOneCalculator 78b42e95e1
chore: update patrons list 2023-03-11 21:44:11 -08:00
Luna 7236aa4a3a Sorta kinda handle client_credentials auth flow 2023-03-11 23:19:17 -05:00
ThatOneCalculator 0c34b1bd48
how did vscode not catch these? 2023-03-11 13:59:36 -08:00
ThatOneCalculator 01d26a389d
forgot about the fill icons 2023-03-11 13:52:11 -08:00
ThatOneCalculator 11e1977a21
chore: phosphor 2.0.2
adds woff2 as of 2.0.2 (my pr)
2023-03-11 13:44:57 -08:00
ThatOneCalculator 731b761e16
style: inlie-flex on ph-fw 2023-03-11 13:36:40 -08:00
ThatOneCalculator cf44b7de48
rm unessicary file 2023-03-11 13:29:18 -08:00
ThatOneCalculator 8721fbe8b5
fix? 2023-03-11 13:07:51 -08:00
Luna c81d6ecc1e
Proxy object IDs for Mastodon API to prevent Calckey ID format incompatibilities 2023-03-11 16:02:35 -05:00
Luna 5e79069c4a
Clean up auth.vue 2023-03-11 16:02:35 -05:00
Luna e2ebe83238
Convert limit parameter to int for certain Mastodon account endpoints 2023-03-11 16:02:35 -05:00
Luna b7ffa05848
Enable multipart for masto oauth endpoints to fix Ivory 2023-03-11 16:02:35 -05:00
ThatOneCalculator 3de967393b
icons 2023-03-11 13:01:04 -08:00
ThatOneCalculator 90969b7512
refactor: ⬆️ phosphor 2, sorta
thank you sammy
2023-03-11 13:00:52 -08:00
ThatOneCalculator 7449b8b840
chore: apps 2023-03-11 12:22:54 -08:00
Kainoa Kanter 6fcb25c927 Merge pull request 'Expand caption limit to 1500 characters' (#9686) from supakaity/calckey:supakaity/caption-size into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9686
2023-03-07 20:41:15 +00:00
Kaity A a432661e3c Expand caption limit to 1500 characters 2023-03-05 16:51:44 +10:00
Kainoa Kanter 44ba4c524e Merge pull request 'Set movedToUri & alsoKnownAs null when undefined' (#9684) from supakaity/calckey:ada/moved-to-update into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9684
2023-03-04 14:34:37 +00:00
Kaity A 5433603440 Set movedToUri & alsoKnownAs null when undefined 2023-03-04 08:24:22 +00:00
Kainoa Kanter edaf7dbb61 chore: notes --> posts 2023-03-03 22:12:11 -08:00
Kainoa Kanter f46445038a fix mobile navbar 2023-03-03 22:09:57 -08:00
Kainoa Kanter 1120818f47 fix: post button text alignment 2023-03-03 22:01:08 -08:00
Kainoa Kanter f2ce0ef273 Merge pull request 'Add divider to header' (#9678) from Freeplay/calckey:a into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9678
2023-03-04 03:25:49 +00:00
cutestnekoaqua 980d447561
parse full multipart data to media endpoints 2023-03-01 15:53:40 +01:00
cutestnekoaqua c74f4942d3
fix import 2023-03-01 15:07:35 +01:00
cutestnekoaqua 548381734a
some quick fixes 2023-03-01 15:04:01 +01:00
Freeplay 0ceb272fbf Add divider to header 2023-02-28 17:12:29 -05:00
Cleo John 7ffd99497c fix errors 2023-02-28 17:38:48 +01:00
Cleo John 05acb51da2 more mastodon work 2023-02-28 17:23:04 +01:00
Freeplay aaaa58a8db change continue thread text 2023-02-27 09:42:11 -05:00
Freeplay f4449cfafd Don't think that needed a reverse 2023-02-27 09:32:24 -05:00
Namekuji 74903846b6 chore: update Japanese locale (#9673)
Co-authored-by: Namekuji <nmkj@noreply.codeberg.org>
Co-committed-by: Namekuji <nmkj@noreply.codeberg.org>
2023-02-26 23:54:43 +00:00
Freeplay 1763e2083f Only use regular reply icon 2023-02-26 11:33:38 -05:00
Freeplay 5e46f0c99c also fix that indent, huh 2023-02-25 21:53:12 -05:00
Freeplay c2dde63813 fix indents on this ? 2023-02-25 21:51:37 -05:00
Freeplay 790dcccc6e don't know why that was like that oops 2023-02-25 21:49:41 -05:00
Freeplay 5c1ca3ac29 fix small window sizes 2023-02-25 21:22:23 -05:00
Freeplay f8d26e3e3d Tweak reaction animation 2023-02-25 20:36:00 -05:00
Freeplay 4278bd1e54 fix subnote body clip area™ 2023-02-25 20:22:17 -05:00
Freeplay 1310fa277e increase clip area of subnote body 2023-02-25 20:08:53 -05:00
Freeplay a0720231a8 padding tweaks 2023-02-25 19:59:58 -05:00
Kainoa Kanter 6ec6df7f7d Fix a minor error in docs (#9669) 2023-02-26 00:59:33 +00:00
Freeplay 8cb3a25245 change line height 2023-02-25 19:48:10 -05:00
naskya e6071e6820
Fix a copy-paste error in docs 2023-02-26 08:35:37 +09:00
Freeplay 404f7986e1 remove unneeded bit 2023-02-25 15:51:51 -05:00
Freeplay a538b2ea84 a 2023-02-25 15:38:36 -05:00
Freeplay 1c57ba6242 Only animate in if newly added 2023-02-25 15:36:35 -05:00
Freeplay 5d391bd198 add some animations to reactions 2023-02-25 13:50:24 -05:00
Kainoa Kanter fdf3422d30 docs: run mig step 2023-02-25 18:08:37 +00:00
Freeplay 233408569b style fixes 2023-02-25 12:36:57 -05:00
Freeplay 65de7b89e7 Remove content-visibility oh god that did not work as I expected 2023-02-25 12:15:35 -05:00
Freeplay be15764e2d sort of fix replies count ? 2023-02-25 11:57:16 -05:00
Freeplay 0914a7fbd9 fix line alignment 2023-02-25 11:10:48 -05:00
Kainoa Kanter 1b63e889f9 Update 'patrons.json' 2023-02-25 08:18:04 +00:00
Freeplay 161594d4bc Fix 'close' button in posts not sticking to bottom
thanmk you overlfow clip
2023-02-25 01:18:21 -05:00
Freeplay 5177fdeef1 allow mfm to overflow w/out it blocking any buttons 2023-02-25 01:15:42 -05:00
Freeplay de97032eab add footer hover thingy to subnote too 2023-02-25 00:39:43 -05:00
Freeplay 0f94a62198 comment out unneeded bit (maybe for now) 2023-02-25 00:21:37 -05:00
Freeplay c81a75cd1f change reply hover 2023-02-25 00:19:39 -05:00
Freeplay 7a2d1e7a07 fix alignment 2023-02-24 22:37:17 -05:00
Freeplay 5c076893c6 increase size when indents decrease 2023-02-24 22:35:37 -05:00
Freeplay 92b8aed3e2 style view thread continuation button + fix link underline 2023-02-24 22:33:21 -05:00
Freeplay 5eee718750 larger pfp's for first column of replies on mobile 2023-02-24 20:37:36 -05:00
Kainoa Kanter 6d71195acc Merge pull request 'fix: multiple Ads' bugs & feat: Ads widget' (#9668) from yawhn/elreqkey:9080_ads_widget into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9668
2023-02-24 17:22:46 +00:00
Freeplay b34b6de71f Reduce detailed note spacing on mobile 2023-02-24 11:55:51 -05:00
yawhn fce27471ab fix: multiple Ads' bugs.
feat: Ads widget

https://codeberg.org/calckey/calckey/issues/9138
https://codeberg.org/calckey/calckey/issues/9080
2023-02-24 13:58:45 +02:00
Masaya Suzuki ea5725b986
Check redis connection
---------

Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2023-02-23 22:04:47 -08:00
Kainoa Kanter a608af352f Merge pull request 'fix #9450' (#9667) from Freeplay/calckey:a into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9667
2023-02-24 04:00:52 +00:00
Freeplay 2311956dfa Change reply order from oldest to newest 2023-02-23 22:45:12 -05:00
Freeplay 842d48c4a8 also add hover to link previews 2023-02-23 22:03:38 -05:00
Freeplay eca6a784a1 fix not being able to click around there are new posts button 2023-02-23 20:50:58 -05:00
Freeplay 5fe9ee27ef smaller reply avatars on mobile 2023-02-23 20:46:48 -05:00
Freeplay 041d3997cd Make quotes clickable 2023-02-23 20:37:26 -05:00
Freeplay 5a4a3a536b fix click events 2023-02-23 20:14:43 -05:00
Freeplay b0ceb9385c change line color 2023-02-23 18:28:32 -05:00
Freeplay 42532ce168 line alignment fixes 2023-02-23 18:22:51 -05:00
Freeplay eb30b8460d bruh why didn't I just do that 2023-02-23 16:44:15 -05:00
Freeplay 9d1c08d322 Merge branch 'develop' of https://codeberg.org/calckey/calckey into note-improvements 2023-02-23 16:21:54 -05:00
CutestNekoAqua 19d84a73ac aa 2023-02-23 17:38:18 +01:00
CutestNekoAqua 0be450d95f meow? 2023-02-23 17:20:34 +01:00
CutestNekoAqua 41d696c6ca maybe buffer? 2023-02-23 17:13:35 +01:00
CutestNekoAqua 91df15209a this is the sign I need a break 2023-02-23 17:07:49 +01:00
CutestNekoAqua 1728419130 move file upload to new router 2023-02-23 17:02:02 +01:00
CutestNekoAqua cc44cc9da7 oh ich hab verkackt 2023-02-23 16:57:21 +01:00
CutestNekoAqua 2dbbd1d39d use multer upload instead 2023-02-23 16:55:38 +01:00
CutestNekoAqua 2c6368afc4 update thingy? 2023-02-23 16:42:57 +01:00
CutestNekoAqua 8dd610a6a1 lol 2023-02-23 16:34:16 +01:00
CutestNekoAqua 37d6039c1e fixed what ever calc did here, masto app didnt 2023-02-23 16:32:21 +01:00
CutestNekoAqua 3281b194e4 ?? 2023-02-23 16:26:33 +01:00
CutestNekoAqua 726e469e23 await the instance meta 2023-02-23 16:12:53 +01:00
CutestNekoAqua bb27ce997e import config 2023-02-23 15:58:54 +01:00
CutestNekoAqua 42a0c1b4a1 import multer 2023-02-23 15:55:28 +01:00
CutestNekoAqua d0a3c2c2b7 remove not needed middleware handlers 2023-02-23 15:46:12 +01:00
CutestNekoAqua f5537af8a1 aaa 2023-02-23 00:31:14 +01:00
CutestNekoAqua 6ac1e417dd Merge branch 'develop' of https://codeberg.org/calckey/calckey into develop 2023-02-22 09:44:57 +01:00
CutestNekoAqua 684f2e883a fix mastodon api stats 2023-02-22 09:44:47 +01:00
ThatOneCalculator bc761610d3
fix: visibility picker 2023-02-21 16:04:00 -08:00
ThatOneCalculator dd907f2f46
fix: 🐛 url slicing 2023-02-21 15:51:46 -08:00
Freeplay 795950a754 *Might* be something that can improve performance 2023-02-20 23:29:34 -05:00
Freeplay 62246796b1 Prevent mention avatars from wrapping 2023-02-20 22:24:06 -05:00
Kainoa Kanter 4c0ae44e74 docs: get patch 2023-02-20 20:16:44 +00:00
ThatOneCalculator 184ea6aa82
docs: 📝 migration from mk 2023-02-20 12:13:55 -08:00
ThatOneCalculator e68d8b8a6d
refactor: max 5 url previews
Closes #9654
2023-02-20 12:01:17 -08:00
Freeplay 294d940800 Revert footer changes 2023-02-20 13:30:15 -05:00
Freeplay 514cc3d8d2 Use bolder font on active reaction 2023-02-20 13:19:12 -05:00
Freeplay 1235a1cdb8 use accent color for lines 2023-02-20 13:18:37 -05:00
Freeplay d6c10891b7 back to the smaller avatars 2023-02-19 20:56:28 -05:00
Freeplay 6639d7d42c Merge branch 'develop' of https://codeberg.org/calckey/calckey into note-improvements 2023-02-19 20:24:33 -05:00
Freeplay e32bab700d add reply connectors, a 2023-02-19 20:12:01 -05:00
Freeplay 66c3ac0654 new threading, still wip 2023-02-19 18:31:16 -05:00
ThatOneCalculator eb3a3e3c36
make css module 2023-02-18 20:13:24 -08:00
ThatOneCalculator 0a3e39b6ec
testing 2023-02-18 20:09:14 -08:00
ThatOneCalculator 19c88fc68b
fix broken style 2023-02-18 20:02:58 -08:00
ThatOneCalculator 1d2e638571
style 2023-02-18 20:01:00 -08:00
ThatOneCalculator b8499df5eb
fix MkUpdated 2023-02-18 19:58:42 -08:00
ThatOneCalculator cc7be70bdf
fix 2023-02-18 19:55:18 -08:00
ThatOneCalculator 302e452572
fix 2023-02-18 19:48:25 -08:00
ThatOneCalculator f625e4c40b
chore: rm dead code 2023-02-18 16:39:38 -08:00
ThatOneCalculator 8d352e4582
chore: 🔥 remove ability to add Twitter integration 2023-02-18 16:37:25 -08:00
ThatOneCalculator 3118825fa9
will fix? 2023-02-18 16:28:50 -08:00
ThatOneCalculator 7132ad2285
fix?? 2023-02-18 16:16:24 -08:00
ThatOneCalculator 3e87ca0e94
formatting 2023-02-18 15:53:19 -08:00
ThatOneCalculator 0f9daa4ac4
fix? 2023-02-18 15:48:46 -08:00
ThatOneCalculator 9c5dc7b3f2
fix: dialog 2023-02-18 15:34:41 -08:00
ThatOneCalculator a1a6937785
feat: new modal 2023-02-18 15:27:12 -08:00
ThatOneCalculator de17a10bb6
fix: 🐛 Don't show image previews if NSFW
Closes #9636
2023-02-18 12:02:25 -08:00
ThatOneCalculator 8f2ae33511
Masto API meta 2023-02-18 11:58:02 -08:00
ThatOneCalculator 77eb5c984d
fix: city validation 2023-02-18 11:42:37 -08:00
ThatOneCalculator 2d59e363c0
feat: Show time for users 2023-02-18 11:33:25 -08:00
CutestNekoAqua 0c73344966 fix oopsie 2023-02-18 17:24:58 +01:00
CutestNekoAqua d418fee933 debug print users 2023-02-18 17:22:43 +01:00
CutestNekoAqua 22ce676cf9 make relationshiops work 2023-02-18 17:14:16 +01:00
daikei 09ad8b9621 Merge branch 'develop' into develop 2023-02-17 21:12:04 +00:00
ThatOneCalculator 7a88a0dedd
chore: formatting 2023-02-17 13:01:14 -08:00
Freeplay c644a08d39 Merge branch 'develop' of https://codeberg.org/calckey/calckey into note-improvements 2023-02-17 15:39:30 -05:00
ThatOneCalculator b654add6b3
fix 2023-02-17 12:36:16 -08:00
ThatOneCalculator 0d32eb2cd5
fix 2023-02-17 12:36:07 -08:00
ThatOneCalculator 9ed34f3704
add isActiveTab method 2023-02-17 11:54:33 -08:00
ThatOneCalculator 6d2f2efcf6
dev10 2023-02-17 11:41:24 -08:00
ThatOneCalculator 4ed1b80d68
perf: MkPageHeader perf 2023-02-17 11:40:12 -08:00
Freeplay eac3699bd2 Merge branch 'develop' of https://codeberg.org/calckey/calckey into note-improvements 2023-02-17 13:24:08 -05:00
Freeplay 650a62953d Add more to subnotecontent if detailed 2023-02-17 11:31:48 -05:00
ThatOneCalculator cdf9a03604
chore: formatting 2023-02-17 00:19:29 -08:00
ThatOneCalculator d5508535b9
chore: remove hard-to-see gradient 2023-02-17 00:16:35 -08:00
ThatOneCalculator 9469e4d399
perf: emoji lib performance fix 2023-02-17 00:01:22 -08:00
Kainoa Kanter 678e878c21 Merge pull request 'Fix #9596 - Add vips-dev as runtime dependencies in docker container' (#9647) from RoiArthurB/calckey:roiarthurb-patch-docker-libvips into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9647
2023-02-17 07:17:17 +00:00
RoiArthurB cab91f7c3c [DOCKER] Add vips-dev as runtime dependencies - Fix #9596
Signed-off-by: RoiArthurB <roiarthurb@noreply.codeberg.org>
2023-02-17 06:38:47 +00:00
Freeplay da648e1517 Add buttons & link previews to subnotes, start of new thread design
Should've made them separate commits but eeek I started working on them at the same time D:
2023-02-17 00:06:49 -05:00
Freeplay 0cb8918778 Add URL previews to subnote 2023-02-16 17:06:36 -05:00
ThatOneCalculator b62249b77f
formatting 2023-02-15 12:46:27 -08:00
ThatOneCalculator 694ce70d6e
Revert "refactor: use MkAvatars for mods"
This reverts commit dbe74ed098.
2023-02-15 12:45:41 -08:00
ThatOneCalculator 020101a2fc
notes for admin heatmap by default 2023-02-15 10:45:33 -08:00
ThatOneCalculator 3ddfb28082
bg 2023-02-15 10:39:30 -08:00
ThatOneCalculator dbe74ed098
refactor: use MkAvatars for mods 2023-02-15 10:37:39 -08:00
ThatOneCalculator 92572157fa
adjust MkNumber tween time 2023-02-15 10:34:17 -08:00
ThatOneCalculator 96311b597c
fix: more readable icon bgs 2023-02-15 10:33:00 -08:00
ThatOneCalculator 071071663e
fix: 🐛 pagination for "/api/channels/followed"
Co-authored-by: takonomura <@takonomura@github.com>
2023-02-15 10:31:10 -08:00
ThatOneCalculator 8490b00609
type errors 2023-02-15 10:29:49 -08:00
ThatOneCalculator be44679420
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-02-15 10:28:03 -08:00
ThatOneCalculator 79f3052907
icons for dashboard 2023-02-15 10:27:49 -08:00
Cleo John a704192b73 refactor please signin component 2023-02-14 11:03:05 +01:00
ThatOneCalculator 688368e4e1
chore: formatting 2023-02-13 20:25:31 -08:00
ThatOneCalculator 81cc4b3f49
fix: 💄 admin overview style 2023-02-13 20:21:42 -08:00
ThatOneCalculator e02fe02f35
fix import 2023-02-13 20:05:49 -08:00
ThatOneCalculator 6fb2fc3906
fix 2023-02-13 20:04:34 -08:00
ThatOneCalculator b5a03e40f1
MkNumber 2023-02-13 20:02:41 -08:00
ThatOneCalculator 24e49e39db
rm retention heatmap 2023-02-13 19:59:40 -08:00
ThatOneCalculator 186f2494fd
add needed script 2023-02-13 19:58:33 -08:00
ThatOneCalculator d706b80e37
fix import 2023-02-13 19:55:37 -08:00
ThatOneCalculator ac90543382
MkFolder 2023-02-13 19:54:06 -08:00
ThatOneCalculator 1b69006040
? 2023-02-13 19:53:39 -08:00
ThatOneCalculator 3def9ab3b7
test 2023-02-13 19:51:56 -08:00
ThatOneCalculator 22188b9709
attempt fix 2023-02-13 19:48:57 -08:00
ThatOneCalculator 0e8c30d3fa
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-02-13 19:40:39 -08:00
ThatOneCalculator 21e7529725
feat: new admin panel data from Mk v13 2023-02-13 19:40:31 -08:00
Free 9093319906 Top nav fixes (#9634)
Co-authored-by: Free <freeplay@duck.com>
Co-committed-by: Free <freeplay@duck.com>
2023-02-13 21:14:06 +00:00
cutestnekoaqua 0cc81624b5
try again 2023-02-13 20:41:42 +01:00
cutestnekoaqua e923172bec
actually return value 2023-02-13 20:38:11 +01:00
cutestnekoaqua 45929f95f4
uwu 2023-02-13 20:36:13 +01:00
cutestnekoaqua 44990a1ddb
mew 2023-02-13 20:28:23 +01:00
ThatOneCalculator e9d55ff44b
chore: formatting 2023-02-13 11:17:07 -08:00
Free 4e84d45a20 Hopefully fix performance of topbar nav (#9631)
Co-authored-by: Freeplay <Freeplay@duck.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9631
Co-authored-by: Free <freeplay@duck.com>
Co-committed-by: Free <freeplay@duck.com>
2023-02-13 18:57:33 +00:00
cutestnekoaqua 48b53428d0
Revert "parse query stuff with bools"
This reverts commit 4eb695f3c3.
2023-02-13 19:39:14 +01:00
cutestnekoaqua 4eb695f3c3
parse query stuff with bools 2023-02-13 19:34:41 +01:00
cutestnekoaqua 8a69a9c90e
initial bool parsing in mastodon 2023-02-13 18:54:38 +01:00
cutestnekoaqua ad46ccfd33
nya 2023-02-13 17:08:48 +01:00
cutestnekoaqua b1ef858b49
meow 2023-02-13 17:02:51 +01:00
cutestnekoaqua 9dd3ad6445
changes typings 2023-02-13 16:58:42 +01:00
cutestnekoaqua 14f40f0051
change types 2023-02-13 16:58:18 +01:00
cutestnekoaqua a480e1be55
add debug to error 2023-02-13 16:53:56 +01:00
cutestnekoaqua 113a1ebe59
basic account lookup 2023-02-13 16:12:21 +01:00
cutestnekoaqua 68b2dcfd75
feat: #9614 2023-02-13 15:12:21 +01:00
ThatOneCalculator 46d4327fce
fix: correctly use note.emojis 2023-02-12 20:54:46 -08:00
ThatOneCalculator 0094ba8a2d
fix wrong import 2023-02-12 20:50:36 -08:00
ThatOneCalculator 085de45d02
fix 2023-02-12 20:46:56 -08:00
ThatOneCalculator edc5638385
remove defaultStore check in MFM 2023-02-12 20:29:34 -08:00
ThatOneCalculator a7045cecfb
dev7 2023-02-12 20:25:45 -08:00
ThatOneCalculator fa23360f13
feat: add position, scale , fg, and bg MFM from v13 2023-02-12 20:25:23 -08:00
ThatOneCalculator abff66eada
fix: 🐛 first user gets admin
Closes #9620

Co-authored-by: @Johann150
2023-02-12 20:19:16 -08:00
ThatOneCalculator 95fcac3e55
dev6 2023-02-12 20:15:33 -08:00
ThatOneCalculator e118a28542
feat: Add in Misskey v13's reacted users view 2023-02-12 20:14:05 -08:00
ThatOneCalculator 7cba70eb70
dev4 2023-02-12 15:42:19 -08:00
Free 256fd485fd apply mobile nav styling to desktop, maybe also fix misalignment ? (#9623)
Co-authored-by: Freeplay <Freeplay@duck.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9623
Co-authored-by: Free <freeplay@duck.com>
Co-committed-by: Free <freeplay@duck.com>
2023-02-12 23:41:54 +00:00
ThatOneCalculator 4c0d30c368
increase number of remote featured posts from 30 to 60 2023-02-12 15:38:19 -08:00
ThatOneCalculator 1a842703b4
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-02-12 14:51:56 -08:00
ThatOneCalculator 2e6baa8ccf
silence webpack output 2023-02-12 14:51:45 -08:00
Free 3185512753 tab performance (#9621)
Co-authored-by: Freeplay <Freeplay@duck.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9621
Co-authored-by: Free <freeplay@duck.com>
Co-committed-by: Free <freeplay@duck.com>
2023-02-12 22:49:38 +00:00
ThatOneCalculator 9046b76536
dev3 2023-02-12 12:49:16 -08:00
Kainoa Kanter 1c2f0d49dc Merge pull request 'Add webpack config to compile `sw.js` for browser' (#9613) from supakaity/calckey:supakaity/webpack into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9613
2023-02-12 20:48:47 +00:00
ThatOneCalculator 813bea02ab
fix 2023-02-12 12:40:47 -08:00
ThatOneCalculator 5f2ca1f957
fix 2023-02-12 12:15:21 -08:00
ThatOneCalculator 9f8bebf5f8
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-02-12 12:07:15 -08:00
ThatOneCalculator 4fe24fec1a
feat: remote featured notes 2023-02-12 12:07:07 -08:00
Kainoa Kanter a6a37d6c90 Merge pull request 'invalidate local user cache on user update' (#9612) from supakaity/calckey:supakaity/local-user-update into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9612
2023-02-12 18:43:41 +00:00
Free d8512d5485 fix navbar hover thingy (#9616)
Co-authored-by: Freeplay <Freeplay@duck.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9616
Co-authored-by: Free <freeplay@duck.com>
Co-committed-by: Free <freeplay@duck.com>
2023-02-12 18:42:21 +00:00
Kio-td ec79e1c143 Merge branch 'develop' of https://codeberg.org/calckey/calckey into develop 2023-02-12 12:11:21 -05:00
Kaity A 93a72f31a5 add webpack config to compile sw.js for browser 2023-02-12 09:59:34 +00:00
Kaity A f2371daff3 invalidate local user cache on user update 2023-02-12 07:54:59 +00:00
Kainoa Kanter 5a20d2af27 Merge pull request 'Serialize outgoing searches returning out of order.' (#9611) from supakaity/calckey:supakaity/bug9610 into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9611
2023-02-12 01:59:22 +00:00
Kaity A 3fbeaf0e9e serialize outgoing searches returning out of order 2023-02-12 01:51:26 +00:00
ThatOneCalculator b30814913f
fix: correct megalodon import 2023-02-11 17:23:30 -08:00
ThatOneCalculator 69da6fa295
chore: formatting 2023-02-11 17:22:05 -08:00
Kaity A 4ca445b587 Implementation of an instances wide antenna source. (#9604)
This PR contains new source for antenna posts, which is a list of instance hostnames to process all posts from.

Using this mode, a user can filter for keywords on an instance wide basis.

This change includes a new antenna source called `instances` and a new database column in the `antenna` table called `instances` to store the instance names.

On the antenna editor, there's also an "Add an instance" finder dialog to allow users to search through the known instance hostnames.

Co-authored-by: Kaity A <supakaity@blahaj.zone>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9604
Co-authored-by: Kaity A <supakaity@noreply.codeberg.org>
Co-committed-by: Kaity A <supakaity@noreply.codeberg.org>
2023-02-12 01:20:17 +00:00
Kaity A 653c71dad5 Enable reply update/display in detailed view. (#9606)
This PR establishes a new replied note stream update for subscribed notes, which gets fired off whenever a note receives a reply and the user is subscribed to the note for updates.

It specifically does not provide note details as part of the update, just the note id of the reply, so that they must go and retrieve the note and be subject to the proper permission and visibility checks.

The detailed note component has then been updated to watch for the replied notification so it can add new replies to the thread as they are created.

This allows both seeing new replies while on the page, and also to see your own replies appear after you post them without having to reload the page.

This PR relies on https://codeberg.org/calckey/calckey.js/pulls/2 to add the replied type to the calkey.js module.

Co-authored-by: Kaity A <supakaity@blahaj.zone>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9606
Co-authored-by: Kaity A <supakaity@noreply.codeberg.org>
Co-committed-by: Kaity A <supakaity@noreply.codeberg.org>
2023-02-12 01:19:43 +00:00
ThatOneCalculator ace8350043
chore: tag dev1 2023-02-11 17:16:55 -08:00
ThatOneCalculator b02f62dba4
Formatting 2023-02-11 17:14:50 -08:00
Free 474a02bfe0 Hide inactive tab labels on mobile (#9609)
Co-authored-by: Freeplay <Freeplay@duck.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9609
Co-authored-by: Free <freeplay@duck.com>
Co-committed-by: Free <freeplay@duck.com>
2023-02-12 01:11:11 +00:00
Kainoa Kanter 5c88cef03b Merge pull request 'fix: 🐛 100vh body background color' (#9608) from GeopJr/calckey:fix/100vh-body-bg-color into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9608
2023-02-12 00:29:33 +00:00
ThatOneCalculator cbdd09dd4a
Merge branch 'develop' of codeberg.org:calckey/calckey into develop 2023-02-11 16:22:00 -08:00
ThatOneCalculator 3e1048d3b1
chore: calckey megalodon 2023-02-11 16:20:57 -08:00
cutestnekoaqua 6eee77cbc5
is this too spec? 2023-02-12 00:35:39 +01:00
cutestnekoaqua 69efbf8fda
oof 2023-02-12 00:33:52 +01:00
cutestnekoaqua b862402ce9
eow 2023-02-12 00:29:52 +01:00
cutestnekoaqua 63cd831cf6
simplify code 2023-02-12 00:25:51 +01:00
cutestnekoaqua 7ea17df2ba
try this instead 2023-02-12 00:19:35 +01:00
cutestnekoaqua 209cd8a7c8
refine error msg 2023-02-12 00:14:03 +01:00
cutestnekoaqua 631355c2c8
add account lookup 2023-02-12 00:10:10 +01:00
cutestnekoaqua 54de8b92d8
remove unneeded next middleware 2023-02-11 23:50:58 +01:00
cutestnekoaqua f61b157a70
change name of Reactions bot 2023-02-11 23:46:35 +01:00
cutestnekoaqua 43c985d78c
fix timelines 2023-02-11 23:12:14 +01:00
cutestnekoaqua c135d16024
meow
Co-authored-by: cutls <web-pro@cutls.com>
2023-02-11 22:50:20 +01:00
Evangelos Paterakis 60b959f63f
fix: 🐛 100vh body background color 2023-02-11 23:28:46 +02:00
ThatOneCalculator 254a9e8716
docs: 📝 custom assets 2023-02-11 13:16:45 -08:00
daikei 3de2617d6b Remove hardcoding of sounds (#9510) (#9607)
Co-authored-by: Kio-td <kio.thedev@gmail.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9607
Co-authored-by: daikei <daikei@noreply.codeberg.org>
Co-committed-by: daikei <daikei@noreply.codeberg.org>
2023-02-11 21:09:43 +00:00
daikei 8b6d3167bc Discard notes made before Fedi's existence, or after today (#9605)
This PR should kill #9531 - Safeguarding against posts that are made before 2007 (Identica being made in 2008, the 'first ever activitypub software' according to wikipedia.)

Personally, if gone unnoticed, I believe that notes from the past can be used as an attack vector to silently flood a database.

Co-authored-by: Kio-td <kio.thedev@gmail.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9605
Co-authored-by: daikei <daikei@noreply.codeberg.org>
Co-committed-by: daikei <daikei@noreply.codeberg.org>
2023-02-11 21:05:31 +00:00
ThatOneCalculator 4ddb65410b
chore: up calckey.js 2023-02-11 13:04:22 -08:00
daikei cddad85bc0 Merge branch 'develop' into develop 2023-02-11 20:29:44 +00:00
GeopJr 2f2fd293dc feat: don't depend on an external service for urn:ietf:wg:oauth:2.0:oob (#9602)
Co-authored-by: GeopJr <evan@geopjr.dev>
Co-committed-by: GeopJr <evan@geopjr.dev>
2023-02-11 20:08:12 +00:00
Kio-td cd6a1d09f5 Fix bad math 2023-02-11 07:18:56 -05:00
Kio-td 93444e1944 Merge branch 'develop' of https://codeberg.org/Daikei/calckey into develop 2023-02-11 06:26:31 -05:00
Kio-td f9fc1d7137 Discard if 3 days in the future 2023-02-11 06:26:05 -05:00
daikei c343c64324 Merge branch 'develop' into develop 2023-02-11 11:18:22 +00:00
Kio-td e35f3eef56 Semi-Kill #9531 2023-02-11 06:13:55 -05:00
Kainoa Kanter 843641819c Add source SVG logo files 2023-02-11 06:11:02 +00:00
cutestnekoaqua c6d597e886
floor created at 2023-02-11 01:51:14 +01:00
cutestnekoaqua 31e0ac1ee8
parse client id 2023-02-11 01:17:35 +01:00
cutestnekoaqua 12e1e676fa
do more change 2023-02-11 01:08:20 +01:00
cutestnekoaqua a6fdb28560
make secure check 2023-02-11 01:07:44 +01:00
cutestnekoaqua 817c1d2e4b
remove multipart here? 2023-02-11 00:57:43 +01:00
cutestnekoaqua 103d655ed4
i need to seperate 404 to own route 2023-02-11 00:51:50 +01:00
ThatOneCalculator fcc59cd35f
chore: Rome Formatting 2023-02-10 15:41:19 -08:00
cutestnekoaqua fadf8144de
meow 2023-02-11 00:40:04 +01:00
cutestnekoaqua 1a714fb8e4
ree 2023-02-11 00:35:30 +01:00
cutestnekoaqua d103d69727
split routers 2023-02-11 00:33:01 +01:00
cutestnekoaqua 8fdd3e09c6
revert it for now 2023-02-11 00:19:52 +01:00
cutestnekoaqua 450c92f3e7
Revert "use formidable instead"
This reverts commit b8406ecaa4.
2023-02-11 00:19:52 +01:00
cutestnekoaqua 34de28cddf
Revert "meow?"
This reverts commit 6e79148152.
2023-02-11 00:19:52 +01:00
cutestnekoaqua 5d33c34aa8
Revert "remove body parser settings for now"
This reverts commit 41ce22aa1c.
2023-02-11 00:19:52 +01:00
ThatOneCalculator 004d8f18fa
up ver 2023-02-10 15:19:02 -08:00
ThatOneCalculator f9c0d91865
chore: 🎨 new dummy images 2023-02-10 15:17:56 -08:00
cutestnekoaqua 41ce22aa1c
remove body parser settings for now 2023-02-11 00:08:26 +01:00
cutestnekoaqua 6e79148152
meow? 2023-02-11 00:02:20 +01:00
cutestnekoaqua b8406ecaa4
use formidable instead 2023-02-10 23:50:27 +01:00
Cleo 23ad352088 fix(client): use proxied image for instance icon 2023-02-10 22:46:56 +00:00
Cleo b54b8d4d2e fix(client): use proxied image for instance icon 2023-02-10 22:46:08 +00:00
cutestnekoaqua 6cfdc31e94
use multer instead 2023-02-10 23:29:29 +01:00
cutestnekoaqua 8b08b2e572
me forgorr 2023-02-10 23:17:29 +01:00
cutestnekoaqua 8b0e3161a3
migrate middleware usage
Co-authored-by Natty <natty.sh.git@gmail.com>
2023-02-10 23:15:47 +01:00
cutestnekoaqua 838ca1841a
this is super cursed 2023-02-10 23:00:15 +01:00
cutestnekoaqua f2b014b4a8
temp test 2023-02-10 22:30:19 +01:00
cutestnekoaqua 65c73c67de
merge more multipart stuff 2023-02-10 21:16:55 +01:00
cutestnekoaqua 057af8180d
ree 2023-02-10 20:53:27 +01:00
cutestnekoaqua 5bf632d3eb
weird merge error 2023-02-10 20:52:58 +01:00
cutestnekoaqua 72e5b4f487
make build work after calcks merge 2023-02-10 20:50:42 +01:00
cutestnekoaqua b266b21b91
Merge Masto Api changes
Co-authored-by Natty <natty.sh.git@gmail.com>
2023-02-10 20:45:29 +01:00
cutestnekoaqua f331592d66
Revert "yeet koabody"
This reverts commit d5eb131f58.
2023-02-10 20:40:54 +01:00
Kainoa Kanter d1dda3a178 Merge pull request 'fix/security' (#9600) from fix/security into develop
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9600
2023-02-10 19:17:07 +00:00
978 changed files with 85874 additions and 58576 deletions

View File

@ -62,6 +62,16 @@ redis:
#prefix: example-prefix #prefix: example-prefix
#db: 1 #db: 1
# ┌─────────────────────┐
#───┘ Sonic configuration └─────────────────────────────────────
#sonic:
# host: localhost
# port: 1491
# auth: SecretPassword
# collection: notes
# bucket: default
# ┌─────────────────────────────┐ # ┌─────────────────────────────┐
#───┘ Elasticsearch configuration └───────────────────────────── #───┘ Elasticsearch configuration └─────────────────────────────
@ -96,6 +106,9 @@ id: 'aid'
# Max note length, should be < 8000. # Max note length, should be < 8000.
#maxNoteLength: 3000 #maxNoteLength: 3000
# Maximum lenght of an image caption or file comment (default 1500, max 8192)
#maxCaptionLength: 1500
# Whether disable HSTS # Whether disable HSTS
#disableHsts: true #disableHsts: true

3
.gitignore vendored
View File

@ -42,6 +42,9 @@ api-docs.json
files files
ormconfig.json ormconfig.json
packages/backend/assets/instance.css packages/backend/assets/instance.css
packages/backend/assets/sounds/None.mp3
!packages/backend/src/db
# blender backups # blender backups
*.blend1 *.blend1

1
.npmrc Normal file
View File

@ -0,0 +1 @@
use-lockfile-v6=true

View File

@ -1,6 +0,0 @@
build:
misskey:
args:
- NODE_ENV=development
deploy:
- helm upgrade --install misskey chart --set image=${OKTETO_BUILD_MISSKEY_IMAGE} --set url="https://misskey-$(kubectl config view --minify -o jsonpath='{..namespace}').cloud.okteto.net" --set environment=development

View File

@ -1,21 +0,0 @@
pipeline:
testCommit:
image: node:latest
commands:
- cp .config/ci.yml .config/default.yml
- corepack enable
- corepack prepare pnpm@latest --activate
- pnpm i --frozen-lockfile
- pnpm run build
- pnpm run migrate
services:
database:
image: postgres:15
environment:
- POSTGRES_PASSWORD=test
redis:
image: redis
branches:
include: [ main, develop, feature/* ]

View File

@ -1,14 +0,0 @@
pipeline:
publish-docker-latest:
image: plugins/kaniko
settings:
repo: thatonecalculator/calckey
tags: rc
dockerfile: Dockerfile
username:
# Secret 'docker_username' needs to be set in the CI settings
from_secret: docker_username
password:
# Secret 'docker_password' needs to be set in the CI settings
from_secret: docker_password
branches: beta

View File

@ -1,18 +0,0 @@
pipeline:
publish-docker-tag:
image: plugins/kaniko
settings:
repo: thatonecalculator/calckey
# Uses the tag from git for the container tag
tags: ${CI_COMMIT_TAG}
dockerfile: Dockerfile
username:
# Secret 'docker_username' needs to be set in the CI settings
from_secret: docker_username
password:
# Secret 'docker_password' needs to be set in the CI settings
from_secret: docker_password
when:
# Push new version when version tag is created
event: tag
tag: v*

View File

@ -1,9 +1,9 @@
pipeline: pipeline:
publish-docker-latest: publish-docker-latest:
image: plugins/kaniko image: docker.io/plugins/kaniko
settings: settings:
repo: thatonecalculator/calckey repo: git.astolfo.social/natty/calckey
tags: latest tags: ${CI_COMMIT_TAG}
dockerfile: Dockerfile dockerfile: Dockerfile
username: username:
# Secret 'docker_username' needs to be set in the CI settings # Secret 'docker_username' needs to be set in the CI settings

View File

@ -1,11 +0,0 @@
pipeline:
docker-build:
image: plugins/kaniko
settings:
repo: thatonecalculator/calckey
tags: test
dockerfile: Dockerfile
no_push: true
branches:
include: [ main, develop, beta ]

View File

@ -3,27 +3,24 @@
## Planned ## Planned
- Stucture - Stucture
- [Sonic](https://crates.io/crates/sonic-server) support as an ElasticSearch alternative
- [DragonflyDB](https://dragonflydb.io/) support as a Redis alternative - [DragonflyDB](https://dragonflydb.io/) support as a Redis alternative
- Optionally use [ScyllaDB](https://www.scylladb.com/open-source-nosql-database/) for storing notes - Optionally use [ScyllaDB](https://www.scylladb.com/open-source-nosql-database/) for storing notes
- Rewrite backend in Rust and [Axum](https://github.com/tokio-rs/axum) - Rewrite backend in Rust and [Rocket](https://rocket.rs/)
- Use [Magic RegExP](https://regexp.dev/) for RegEx 🦄
- Function - Function
- Federate with note edits - Federate with note edits
- Admin customizable max note length (100-8000)
- User "choices" (recommended users) like Mastodon and Soapbox - User "choices" (recommended users) like Mastodon and Soapbox
- Join Reason system like Mastodon/Pleroma - Join Reason system like Mastodon/Pleroma
- Option to publicize instance blocks - Option to publicize instance blocks
- Backfill remote users
- Build flag to remove NSFW/AI stuff - Build flag to remove NSFW/AI stuff
- Timeline filters
- Filter notifications by user - Filter notifications by user
- Non-nyaify cat mode
- Exclude self from antenna - Exclude self from antenna
- Form - Form
- MFM button - MFM button
- Personal notes for all accounts - Personal notes for all accounts
- Fully revamp non-logged-in screen - Fully revamp non-logged-in screen
- Classic mode make instance icon bring up new context menu - Classic mode make instance icon bring up new context menu
- Lookup/details for post/file/instance
- [Rat mode?](https://stop.voring.me/notes/933fx97bmd) - [Rat mode?](https://stop.voring.me/notes/933fx97bmd)
## Work in progress ## Work in progress
@ -37,6 +34,7 @@
- Admin custom CSS - Admin custom CSS
- Add back time machine (jump to date) - Add back time machine (jump to date)
- Improve accesibility - Improve accesibility
- Timeline filters
## Implemented ## Implemented
@ -108,7 +106,23 @@
- Allows custom emoji - Allows custom emoji
- Fix lint errors - Fix lint errors
- Use Rome instead of ESLint - Use Rome instead of ESLint
- Mastodon API support
- More antenna options
- New dashboard
- Backfill follower counts
- Improved emoji licensing
- This feature was ported from Misskey.
- https://github.com/misskey-dev/misskey/commit/8ae9d2eaa8b0842671558370f787902e94b7f5a3: enhance: カスタム絵文字にライセンス情報を付与できるように
- https://github.com/misskey-dev/misskey/commit/ed51209172441927d24339f0759a5badbee3c9b6: 絵文字のライセンスを表示できるように
- Compile time compression
- Sonic search
- Popular color schemes, including Nord, Gruvbox, and Catppuccin
- Non-nyaify cat mode
- Keyboard accesibility - Keyboard accesibility
## Implemented (remote)
- MissV: [fix Misskey Forkbomb](https://code.vtopia.live/Vtopia/MissV/commit/40b23c070bd4adbb3188c73546c6c625138fb3c1) - MissV: [fix Misskey Forkbomb](https://code.vtopia.live/Vtopia/MissV/commit/40b23c070bd4adbb3188c73546c6c625138fb3c1)
- [Make showing ads optional](https://github.com/misskey-dev/misskey/pull/8996) - [Make showing ads optional](https://github.com/misskey-dev/misskey/pull/8996)
- [Tapping avatar in mobile opens account modal](https://github.com/misskey-dev/misskey/pull/9056) - [Tapping avatar in mobile opens account modal](https://github.com/misskey-dev/misskey/pull/9056)
@ -150,3 +164,4 @@
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/ca90cedba0a0704b503c2778694230f5a7dfbace: server: reduce dead instance detection to 7 days - https://akkoma.dev/FoundKeyGang/FoundKey/commit/ca90cedba0a0704b503c2778694230f5a7dfbace: server: reduce dead instance detection to 7 days
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/e9ab42c10afb4e27516c2d2b5e3e06630efe9edd: Alt text in image viewer - https://akkoma.dev/FoundKeyGang/FoundKey/commit/e9ab42c10afb4e27516c2d2b5e3e06630efe9edd: Alt text in image viewer
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/ed9d4023d41bba7c4ac53a1a3422246feed37de2: add argon2 support - https://akkoma.dev/FoundKeyGang/FoundKey/commit/ed9d4023d41bba7c4ac53a1a3422246feed37de2: add argon2 support
- https://akkoma.dev/FoundKeyGang/FoundKey/commit/c414f24a2c123774246c7eca65edda4d3afaf8b3: feat: per-user renote muting

View File

@ -48,8 +48,8 @@ Thank you for your PR! Before creating a PR, please check the following:
- If there is an Issue which will be resolved by this PR, please include a reference to the Issue in the text. Good examples include `Closing: #21` or `Resolves: #21` - If there is an Issue which will be resolved by this PR, please include a reference to the Issue in the text. Good examples include `Closing: #21` or `Resolves: #21`
- Check if there are any documents that need to be created or updated due to this change. - Check if there are any documents that need to be created or updated due to this change.
- If you have added a feature or fixed a bug, please add a test case if possible. - If you have added a feature or fixed a bug, please add a test case if possible.
- Please make sure that tests and Lint are passed in advance. - Please make sure that formatting, tests and Lint are passed in advance.
- You can run it with `pnpm run test` and `pnpm run lint`. [See more info](#testing) - You can run it with `pnpm run format`, `pnpm run test` and `pnpm run lint`. [See more info](#testing)
- If this PR includes UI changes, please attach a screenshot in the text. - If this PR includes UI changes, please attach a screenshot in the text.
Thanks for your cooperation 🤗 Thanks for your cooperation 🤗

View File

@ -3,13 +3,17 @@ FROM node:19-alpine as build
WORKDIR /calckey WORKDIR /calckey
# Install compilation dependencies # Install compilation dependencies
RUN apk add --no-cache --no-progress git alpine-sdk python3 RUN apk add --no-cache --no-progress git alpine-sdk python3 rust cargo vips
# Copy only the dependency-related files first, to cache efficiently # Copy only the dependency-related files first, to cache efficiently
COPY package.json pnpm*.yaml ./ COPY package.json pnpm*.yaml ./
COPY packages/backend/package.json packages/backend/package.json COPY packages/backend/package.json packages/backend/package.json
COPY packages/client/package.json packages/client/package.json COPY packages/client/package.json packages/client/package.json
COPY packages/sw/package.json packages/sw/package.json COPY packages/sw/package.json packages/sw/package.json
COPY packages/calckey-js/package.json packages/calckey-js/package.json
COPY packages/backend/native-utils/package.json packages/backend/native-utils/package.json
COPY packages/backend/native-utils/npm/linux-x64-musl/package.json packages/backend/native-utils/npm/linux-x64-musl/package.json
COPY packages/backend/native-utils/npm/linux-arm64-musl/package.json packages/backend/native-utils/npm/linux-arm64-musl/package.json
# Configure corepack and pnpm # Configure corepack and pnpm
RUN corepack enable RUN corepack enable
@ -31,7 +35,7 @@ FROM node:19-alpine
WORKDIR /calckey WORKDIR /calckey
# Install runtime dependencies # Install runtime dependencies
RUN apk add --no-cache --no-progress tini ffmpeg RUN apk add --no-cache --no-progress tini ffmpeg vips-dev
COPY . ./ COPY . ./
@ -40,11 +44,14 @@ COPY --from=build /calckey/node_modules /calckey/node_modules
COPY --from=build /calckey/packages/backend/node_modules /calckey/packages/backend/node_modules COPY --from=build /calckey/packages/backend/node_modules /calckey/packages/backend/node_modules
COPY --from=build /calckey/packages/sw/node_modules /calckey/packages/sw/node_modules COPY --from=build /calckey/packages/sw/node_modules /calckey/packages/sw/node_modules
COPY --from=build /calckey/packages/client/node_modules /calckey/packages/client/node_modules COPY --from=build /calckey/packages/client/node_modules /calckey/packages/client/node_modules
COPY --from=build /calckey/packages/calckey-js/node_modules /calckey/packages/calckey-js/node_modules
# Copy the finished compiled files # Copy the finished compiled files
COPY --from=build /calckey/built /calckey/built COPY --from=build /calckey/built /calckey/built
COPY --from=build /calckey/packages/backend/built /calckey/packages/backend/built COPY --from=build /calckey/packages/backend/built /calckey/packages/backend/built
COPY --from=build /calckey/packages/backend/assets/instance.css /calckey/packages/backend/assets/instance.css COPY --from=build /calckey/packages/backend/assets/instance.css /calckey/packages/backend/assets/instance.css
COPY --from=build /calckey/packages/backend/native-utils/built /calckey/packages/backend/native-utils/built
COPY --from=build /calckey/packages/backend/native-utils/target /calckey/packages/backend/native-utils/target
RUN corepack enable RUN corepack enable
ENTRYPOINT [ "/sbin/tini", "--" ] ENTRYPOINT [ "/sbin/tini", "--" ]

View File

@ -34,6 +34,9 @@
- OCR image captioning - OCR image captioning
- New and improved Groups - New and improved Groups
- Better intro tutorial - Better intro tutorial
- Compatibility with Mastodon clients/apps
- Backfill user information
- Sonic search
- Many more user and admin settings - Many more user and admin settings
- [So much more!](./CALCKEY.md) - [So much more!](./CALCKEY.md)
@ -66,7 +69,7 @@ If you have access to a server that supports one of the sources below, I recomme
### 🐋 Docker ### 🐋 Docker
[How to run Calckey with Docker](https://codeberg.org/calckey/calckey/src/branch/develop/docs/migrate.md). [How to run Calckey with Docker](./docs/docker.md).
## 🧑‍💻 Dependencies ## 🧑‍💻 Dependencies
@ -78,8 +81,9 @@ If you have access to a server that supports one of the sources below, I recomme
### 😗 Optional dependencies ### 😗 Optional dependencies
- [FFmpeg](https://ffmpeg.org/) for video transcoding - [FFmpeg](https://ffmpeg.org/) for video transcoding
- [ElasticSearch](https://www.elastic.co/elasticsearch/) for full-text search - Full text search (choost one of the following)
- OpenSearch/Sonic are not supported as of right now - 🦔 [Sonic](https://crates.io/crates/sonic-server) (highly recommended!)
- [ElasticSearch](https://www.elastic.co/elasticsearch/)
- Management (choose one of the following) - Management (choose one of the following)
- 🛰️ [pm2](https://pm2.io/) - 🛰️ [pm2](https://pm2.io/)
- 🐳 [Docker](https://docker.com) - 🐳 [Docker](https://docker.com)
@ -87,6 +91,7 @@ If you have access to a server that supports one of the sources below, I recomme
### 🏗️ Build dependencies ### 🏗️ Build dependencies
- 🦀 [Rust toolchain](https://www.rust-lang.org/)
- 🦬 C/C++ compiler & build tools - 🦬 C/C++ compiler & build tools
- `build-essential` on Debian/Ubuntu Linux - `build-essential` on Debian/Ubuntu Linux
- `base-devel` on Arch Linux - `base-devel` on Arch Linux
@ -119,6 +124,17 @@ Assuming you set up PostgreSQL correctly, all you have to run is:
psql postgres -c "create database calckey with encoding = 'UTF8';" psql postgres -c "create database calckey with encoding = 'UTF8';"
``` ```
In Calckey's directory, fill out the `db` section of `.config/default.yml` with the correct information, where the `db` key is `calckey`.
## 🦔 Set up search
Follow sonic's [installation guide](https://github.com/valeriansaliou/sonic#installation)
If you use IPv4: in Sonic's directory, edit the `config.cfg` file to change `inet` to `"0.0.0.0:1491"`.
In Calckey's directory, fill out the `sonic` section of `.config/default.yml` with the correct information.
## 💅 Customize ## 💅 Customize
- To add custom CSS for all users, edit `./custom/assets/instance.css`. - To add custom CSS for all users, edit `./custom/assets/instance.css`.
@ -136,7 +152,7 @@ psql postgres -c "create database calckey with encoding = 'UTF8';"
## 🚚 Migrating from Misskey to Calckey ## 🚚 Migrating from Misskey to Calckey
For migrating from Misskey v13, Misskey v12, and Foundkey, read [this document](https://codeberg.org/calckey/calckey/src/branch/develop/docs/migrate.md). For migrating from Misskey v13, Misskey v12, and Foundkey, read [this document](./docs/migrate.md).
## 🍀 NGINX ## 🍀 NGINX

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

View File

@ -8,7 +8,7 @@ services:
depends_on: depends_on:
- db - db
- redis - redis
# - es - sonic
ports: ports:
- "3000:3000" - "3000:3000"
networks: networks:
@ -40,16 +40,14 @@ services:
volumes: volumes:
- ./db:/var/lib/postgresql/data - ./db:/var/lib/postgresql/data
# es: sonic:
# restart: unless-stopped restart: unless-stopped
# image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2 image: docker.io/valeriansaliou/sonic:v1.4.0
# environment: networks:
# - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - calcnet
# - "TAKE_FILE_OWNERSHIP=111" volumes:
# networks: - ./sonic:/var/lib/sonic/store
# - calcnet - ./sonic/config.cfg:/etc/sonic.cfg
# volumes:
# - ./elasticsearch:/usr/share/elasticsearch/data
networks: networks:
calcnet: calcnet:

View File

@ -14,7 +14,7 @@ There is a `docker-compose.yml` in the root of the project that you can use to b
Rename the files: Rename the files:
`cp .config/default_example.yml .config/default.yml` `cp .config/example.yml .config/default.yml`
`cp .config/example.env .config/docker.env` `cp .config/example.env .config/docker.env`
@ -23,6 +23,7 @@ You can configure `docker.env` with anything you like, but you will have to pay
- `url` should be set to the URL you will be hosting the web interface for the instance at. - `url` should be set to the URL you will be hosting the web interface for the instance at.
- `host`, `db`, `user`, `pass` will have to be configured in the `PostgreSQL configuration` section - `host` is the name of the postgres container (eg: *calckey_db_1*), and the others should match your `docker.env`. - `host`, `db`, `user`, `pass` will have to be configured in the `PostgreSQL configuration` section - `host` is the name of the postgres container (eg: *calckey_db_1*), and the others should match your `docker.env`.
- `host`will need to be configured in the *Redis configuration* section - it is the name of the redis container (eg: *calckey_redis_1*) - `host`will need to be configured in the *Redis configuration* section - it is the name of the redis container (eg: *calckey_redis_1*)
- `auth` will need to be configured in the *Sonic* section - cannot be the default `SecretPassword`
Everything else can be left as-is. Everything else can be left as-is.

82
docs/migrate.md Normal file
View File

@ -0,0 +1,82 @@
# 🚚 Migrating from Misskey to Calckey
## Misskey v13 and above
```sh
wget -O mkv13.patch https://codeberg.org/calckey/calckey/raw/branch/develop/docs/mkv13.patch
git apply mkv13.patch
cd packages/backend
LINE_NUM="$(npx typeorm migration:show -d ormconfig.js | grep -n activeEmailValidation1657346559800 | cut -d ':' -f 1)"
NUM_MIGRATIONS="$(npx typeorm migration:show -d ormconfig.js | tail -n+"$LINE_NUM" | grep '\[X\]' | nl)"
for i in $(seq 1 $NUM_MIGRAIONS); do
npx typeorm migration:revert -d ormconfig.js
done
git remote set-url origin https://codeberg.org/calckey/calckey.git
git fetch
git checkout main # or beta or develop
git pull --ff
NODE_ENV=production pnpm run migrate
# build using prefered method
```
Depending on the version you're migrating from, you may have to open Postgres with `psql -d your_database` and run the following commands:
```sql
ALTER TABLE "meta" ADD COLUMN "disableLocalTimeline" boolean DEFAULT false;
ALTER TABLE "meta" ADD COLUMN "disableGlobalTimeline" boolean DEFAULT false;
ALTER TABLE "meta" ADD COLUMN "localDriveCapacityMb" integer DEFAULT 512;
ALTER TABLE "meta" ADD COLUMN "remoteDriveCapacityMb" integer DEFAULT 128;
ALTER TABLE "user" ADD COLUMN "isSilenced" boolean DEFAULT false;
ALTER TABLE "user" ADD COLUMN "isAdmin" boolean DEFAULT false;
ALTER TABLE "user" ADD COLUMN "isModerator" boolean DEFAULT false;
ALTER TABLE "user" ADD COLUMN "remoteDriveCapacityMb" integer DEFAULT 128;
ALTER TABLE "user" ADD COLUMN "driveCapacityOverrideMb" integer DEFAULT 128;
ALTER TABLE "instance" ADD COLUMN "caughtAt" date;
ALTER TABLE "instance" ADD COLUMN "latestRequestSentAt" date;
ALTER TABLE "instance" ADD COLUMN "latestStatus" character varying(512);
ALTER TABLE "instance" ADD COLUMN "lastCommunicatedAt" date;
```
then quit with `\q`, and restart Calckey.
## Misskey v12.119 and before
```sh
git remote set-url origin https://codeberg.org/calckey/calckey.git
git fetch
git checkout main # or beta or develop
git pull --ff
NODE_ENV=production pnpm run migrate
# build using prefered method
```
## Foundkey
```sh
cd packages/backend
LINE_NUM="$(npx typeorm migration:show -d ormconfig.js | grep -n uniformThemecolor1652859567549 | cut -d ':' -f 1)"
NUM_MIGRATIONS="$(npx typeorm migration:show -d ormconfig.js | tail -n+"$LINE_NUM" | grep '\[X\]' | nl)"
for i in $(seq 1 $NUM_MIGRAIONS); do
npx typeorm migration:revert -d ormconfig.js
done
git remote set-url origin https://codeberg.org/calckey/calckey.git
git fetch
git checkout main # or beta or develop
git pull --ff
NODE_ENV=production pnpm run migrate
# build using prefered method
```
## Reverse
You ***cannot*** migrate back to Misskey from Calckey due to re-hashing passwords on signin with argon2. You can migrate from to Calckey to Foundkey, though.

45
docs/mkv13.patch Normal file
View File

@ -0,0 +1,45 @@
diff --git a/packages/backend/migration/1672704017999-remove-lastCommunicatedAt.js b/packages/backend/migration/1672704017999-remove-lastCommunicatedAt.js
index 38a676985..c4ae690e0 100644
--- a/packages/backend/migration/1672704017999-remove-lastCommunicatedAt.js
+++ b/packages/backend/migration/1672704017999-remove-lastCommunicatedAt.js
@@ -6,6 +6,8 @@ export class removeLastCommunicatedAt1672704017999 {
}
async down(queryRunner) {
- await queryRunner.query(`ALTER TABLE "instance" ADD "lastCommunicatedAt" TIMESTAMP WITH TIME ZONE NOT NULL`);
+ await queryRunner.query(`ALTER TABLE "instance" ADD "lastCommunicatedAt" TIMESTAMP WITH TIME ZONE`);
+ await queryRunner.query(`UPDATE "instance" SET "lastCommunicatedAt" = COALESCE("infoUpdatedAt", "caughtAt")`);
+ await queryRunner.query(`ALTER TABLE "instance" ALTER COLUMN "lastCommunicatedAt" SET NOT NULL`);
}
}
diff --git a/packages/backend/migration/1673336077243-PollChoiceLength.js b/packages/backend/migration/1673336077243-PollChoiceLength.js
index 810c626e0..5809528cb 100644
--- a/packages/backend/migration/1673336077243-PollChoiceLength.js
+++ b/packages/backend/migration/1673336077243-PollChoiceLength.js
@@ -6,6 +6,6 @@ export class PollChoiceLength1673336077243 {
}
async down(queryRunner) {
- await queryRunner.query(`ALTER TABLE "poll" ALTER COLUMN "choices" TYPE character varying(128) array`);
+ //await queryRunner.query(`ALTER TABLE "poll" ALTER COLUMN "choices" TYPE character varying(128) array`);
}
}
diff --git a/packages/backend/migration/1674118260469-achievement.js b/packages/backend/migration/1674118260469-achievement.js
index 131ab96f8..57a922f83 100644
--- a/packages/backend/migration/1674118260469-achievement.js
+++ b/packages/backend/migration/1674118260469-achievement.js
@@ -18,12 +18,13 @@ export class achievement1674118260469 {
async down(queryRunner) {
await queryRunner.query(`CREATE TYPE "public"."user_profile_mutingnotificationtypes_enum_old" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app', 'pollEnded')`);
+ await queryRunner.query(`CREATE TYPE "public"."notification_type_enum_old" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'pollEnded', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`);
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "mutingNotificationTypes" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "mutingNotificationTypes" TYPE "public"."user_profile_mutingnotificationtypes_enum_old"[] USING "mutingNotificationTypes"::"text"::"public"."user_profile_mutingnotificationtypes_enum_old"[]`);
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "mutingNotificationTypes" SET DEFAULT '{}'`);
await queryRunner.query(`DROP TYPE "public"."user_profile_mutingnotificationtypes_enum"`);
await queryRunner.query(`ALTER TYPE "public"."user_profile_mutingnotificationtypes_enum_old" RENAME TO "user_profile_mutingnotificationtypes_enum"`);
- await queryRunner.query(`CREATE TYPE "public"."notification_type_enum_old" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'pollEnded', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`);
+ await queryRunner.query(`DELETE FROM "public"."notification" WHERE "type" = 'achievementEarned'`);
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "public"."notification_type_enum_old" USING "type"::"text"::"public"."notification_type_enum_old"`);
await queryRunner.query(`DROP TYPE "public"."notification_type_enum"`);
await queryRunner.query(`ALTER TYPE "public"."notification_type_enum_old" RENAME TO "notification_type_enum"`);

View File

@ -15,18 +15,15 @@ gulp.task('copy:backend:views', () =>
gulp.src('./packages/backend/src/server/web/views/**/*').pipe(gulp.dest('./packages/backend/built/server/web/views')) gulp.src('./packages/backend/src/server/web/views/**/*').pipe(gulp.dest('./packages/backend/built/server/web/views'))
); );
gulp.task('copy:backend:custom', () => gulp.task('copy:backend:custom', () =>
gulp.src('./custom/assets/*').pipe(gulp.dest('./packages/backend/assets/')) gulp.src('./custom/assets/**/*').pipe(gulp.dest('./packages/backend/assets/'))
); );
gulp.task('copy:client:fonts', () => gulp.task('copy:client:fonts', () =>
gulp.src('./packages/client/node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/_client_dist_/fonts/')) gulp.src('./packages/client/node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/_client_dist_/fonts/'))
); );
gulp.task('copy:client:phosphor', () =>
gulp.src('./node_modules/phosphor-icons/src/fonts/*').pipe(gulp.dest('./built/_client_dist_/phosphor/'))
);
gulp.task('copy:client:locales', cb => { gulp.task('copy:client:locales', cb => {
fs.mkdirSync('./built/_client_dist_/locales', { recursive: true }); fs.mkdirSync('./built/_client_dist_/locales', { recursive: true });
@ -58,7 +55,7 @@ gulp.task('build:backend:style', () => {
}); });
gulp.task('build', gulp.parallel( gulp.task('build', gulp.parallel(
'copy:client:locales', 'copy:backend:views', 'copy:backend:custom', 'build:backend:script', 'build:backend:style', 'copy:client:fonts', 'copy:client:phosphor' 'copy:client:locales', 'copy:backend:views', 'copy:backend:custom', 'build:backend:script', 'build:backend:style', 'copy:client:fonts'
)); ));
gulp.task('default', gulp.task('build')); gulp.task('default', gulp.task('build'));

View File

@ -1027,27 +1027,6 @@ _time:
minute: "د" minute: "د"
hour: "سا" hour: "سا"
day: "ي" day: "ي"
_tutorial:
title: "How to use Calckey"
step1_1: "Welcome!"
step1_2: "Let's get you set up. You'll be up and running in no time!"
step2_1: "First, please fill out your profile."
step2_2: "Providing some information about who you are will make it easier for others to tell if they want to see your notes or follow you."
step3_1: "Now time to follow some people!"
step3_2: "Your home and social timelines are based off of who you follow, so try following a couple accounts to get started.\nClick the plus circle on the top right of a profile to follow them."
step4_1: "Let's get you out there."
step4_2: "For your first post, some people like to made a {introduction} post or a simple \"Hello world!\""
step5_1: "Timelines, timelines everywhere!"
step5_2: "Your instance has {timelines} different timelines enabled."
step5_3: "The Home {icon} timeline is where you can see posts from your followers."
step5_4: "The Local {icon} timeline is where you can see posts from everyone else on this instance."
step5_5: "The Recommended {icon} timeline is where you can see posts from instances the admins recommend."
step5_6: "The Social {icon} timeline is where you can see posts from friends of your followers."
step5_7: "The Global {icon} timeline is where you can see posts from every other connected instance."
step6_1: "So, what is this place?"
step6_2: "Well, you didn't just join Calckey. You joined a portal to the Fediverse, an interconnected network of thousands of servers, called \"instances\"."
step6_3: "Each server works in different ways, and not all servers run Calckey. This one does though! It's a bit complicated, but you'll get the hang of it in no time."
step6_4: "Now go, explore, and have fun!"
_2fa: _2fa:
alreadyRegistered: "سجلت سلفًا جهازًا للاستيثاق بعاملين." alreadyRegistered: "سجلت سلفًا جهازًا للاستيثاق بعاملين."
registerDevice: "سجّل جهازًا جديدًا" registerDevice: "سجّل جهازًا جديدًا"

View File

@ -1108,27 +1108,6 @@ _time:
minute: "মিনিট" minute: "মিনিট"
hour: "ঘণ্টা" hour: "ঘণ্টা"
day: "দিন" day: "দিন"
_tutorial:
title: "How to use Calckey"
step1_1: "Welcome!"
step1_2: "Let's get you set up. You'll be up and running in no time!"
step2_1: "First, please fill out your profile."
step2_2: "Providing some information about who you are will make it easier for others to tell if they want to see your notes or follow you."
step3_1: "Now time to follow some people!"
step3_2: "Your home and social timelines are based off of who you follow, so try following a couple accounts to get started.\nClick the plus circle on the top right of a profile to follow them."
step4_1: "Let's get you out there."
step4_2: "For your first post, some people like to made a {introduction} post or a simple \"Hello world!\""
step5_1: "Timelines, timelines everywhere!"
step5_2: "Your instance has {timelines} different timelines enabled."
step5_3: "The Home {icon} timeline is where you can see posts from your followers."
step5_4: "The Local {icon} timeline is where you can see posts from everyone else on this instance."
step5_5: "The Recommended {icon} timeline is where you can see posts from instances the admins recommend."
step5_6: "The Social {icon} timeline is where you can see posts from friends of your followers."
step5_7: "The Global {icon} timeline is where you can see posts from every other connected instance."
step6_1: "So, what is this place?"
step6_2: "Well, you didn't just join Calckey. You joined a portal to the Fediverse, an interconnected network of thousands of servers, called \"instances\"."
step6_3: "Each server works in different ways, and not all servers run Calckey. This one does though! It's a bit complicated, but you'll get the hang of it in no time."
step6_4: "Now go, explore, and have fun!"
_2fa: _2fa:
alreadyRegistered: "আপনি ইতিমধ্যে একটি 2-ফ্যাক্টর অথেনটিকেশন ডিভাইস নিবন্ধন করেছেন৷" alreadyRegistered: "আপনি ইতিমধ্যে একটি 2-ফ্যাক্টর অথেনটিকেশন ডিভাইস নিবন্ধন করেছেন৷"
registerDevice: "নতুন ডিভাইস নিবন্ধন করুন" registerDevice: "নতুন ডিভাইস নিবন্ধন করুন"

View File

@ -69,8 +69,8 @@ exportRequested: "Has sol·licitat una exportació. Això pot trigar una estona.
importRequested: "Has sol·licitat una importació. Això pot trigar una estona." importRequested: "Has sol·licitat una importació. Això pot trigar una estona."
lists: "Llistes" lists: "Llistes"
noLists: "No tens cap llista" noLists: "No tens cap llista"
note: "Nota" note: "Post"
notes: "Notes" notes: "Posts"
following: "Seguint" following: "Seguint"
followers: "Seguidors" followers: "Seguidors"
followsYou: "Et segueix" followsYou: "Et segueix"
@ -141,7 +141,7 @@ _theme:
mention: "Menció" mention: "Menció"
renote: "Renotar" renote: "Renotar"
_sfx: _sfx:
note: "Notes" note: "Posts"
notification: "Notificacions" notification: "Notificacions"
_2fa: _2fa:
step2Url: "També pots inserir aquest enllaç i utilitzes una aplicació d'escriptori:" step2Url: "També pots inserir aquest enllaç i utilitzes una aplicació d'escriptori:"

View File

@ -12,6 +12,7 @@ fetchingAsApObject: "Fetching from the Fediverse"
ok: "OK" ok: "OK"
gotIt: "Got it!" gotIt: "Got it!"
cancel: "Cancel" cancel: "Cancel"
noThankYou: "No thank you"
enterUsername: "Enter username" enterUsername: "Enter username"
renotedBy: "Boosted by {user}" renotedBy: "Boosted by {user}"
noNotes: "No posts" noNotes: "No posts"
@ -32,6 +33,7 @@ uploading: "Uploading..."
save: "Save" save: "Save"
users: "Users" users: "Users"
addUser: "Add a user" addUser: "Add a user"
addInstance: "Add an instance"
favorite: "Add to bookmarks" favorite: "Add to bookmarks"
favorites: "Bookmarks" favorites: "Bookmarks"
unfavorite: "Remove from bookmarks" unfavorite: "Remove from bookmarks"
@ -95,6 +97,9 @@ unfollow: "Unfollow"
followRequestPending: "Follow request pending" followRequestPending: "Follow request pending"
enterEmoji: "Enter an emoji" enterEmoji: "Enter an emoji"
renote: "Boost" renote: "Boost"
renoteAsUnlisted: "Boost (Unlisted)"
renoteToFollowers: "Boost (Followers)"
renoteToRecipients: "Boost (Recipients)"
unrenote: "Take back boost" unrenote: "Take back boost"
renoted: "Boosted." renoted: "Boosted."
cantRenote: "This post can't be boosted." cantRenote: "This post can't be boosted."
@ -116,6 +121,8 @@ unmarkAsSensitive: "Unmark as NSFW"
enterFileName: "Enter filename" enterFileName: "Enter filename"
mute: "Mute" mute: "Mute"
unmute: "Unmute" unmute: "Unmute"
renoteMute: "Mute boosts"
renoteUnmute: "Unmute boosts"
block: "Block" block: "Block"
unblock: "Unblock" unblock: "Unblock"
suspend: "Suspend" suspend: "Suspend"
@ -142,6 +149,8 @@ flagAsBot: "Mark this account as a bot"
flagAsBotDescription: "Enable this option if this account is controlled by a program. If enabled, it will act as a flag for other developers to prevent endless interaction chains with other bots and adjust Calckey's internal systems to treat this account as a bot." flagAsBotDescription: "Enable this option if this account is controlled by a program. If enabled, it will act as a flag for other developers to prevent endless interaction chains with other bots and adjust Calckey's internal systems to treat this account as a bot."
flagAsCat: "Are you a cat? 😺" flagAsCat: "Are you a cat? 😺"
flagAsCatDescription: "You'll get cat ears and speak like a cat!" flagAsCatDescription: "You'll get cat ears and speak like a cat!"
flagSpeakAsCat: "Speak as a cat"
flagSpeakAsCatDescription: "Your posts will get nyanified when in cat mode"
flagShowTimelineReplies: "Show replies in timeline" flagShowTimelineReplies: "Show replies in timeline"
flagShowTimelineRepliesDescription: "Shows replies of users to posts of other users in the timeline if turned on." flagShowTimelineRepliesDescription: "Shows replies of users to posts of other users in the timeline if turned on."
autoAcceptFollowed: "Automatically approve follow requests from users you're following" autoAcceptFollowed: "Automatically approve follow requests from users you're following"
@ -156,10 +165,11 @@ removeWallpaper: "Remove wallpaper"
searchWith: "Search: {q}" searchWith: "Search: {q}"
youHaveNoLists: "You don't have any lists" youHaveNoLists: "You don't have any lists"
followConfirm: "Are you sure that you want to follow {name}?" followConfirm: "Are you sure that you want to follow {name}?"
proxyAccount: "Proxy account" proxyAccount: "Proxy Account"
proxyAccountDescription: "A proxy account is an account that acts as a remote follower for users under certain conditions. For example, when a user adds a remote user to the list, the remote user's activity will not be delivered to the instance if no local user is following that user, so the proxy account will follow instead." proxyAccountDescription: "A proxy account is an account that acts as a remote follower for users under certain conditions. For example, when a user adds a remote user to the list, the remote user's activity will not be delivered to the instance if no local user is following that user, so the proxy account will follow instead."
host: "Host" host: "Host"
selectUser: "Select a user" selectUser: "Select a user"
selectInstance: "Select an instance"
recipient: "Recipient(s)" recipient: "Recipient(s)"
annotation: "Comments" annotation: "Comments"
federation: "Federation" federation: "Federation"
@ -193,10 +203,13 @@ clearCachedFiles: "Clear cache"
clearCachedFilesConfirm: "Are you sure that you want to delete all cached remote files?" clearCachedFilesConfirm: "Are you sure that you want to delete all cached remote files?"
blockedInstances: "Blocked Instances" blockedInstances: "Blocked Instances"
blockedInstancesDescription: "List the hostnames of the instances that you want to block. Listed instances will no longer be able to communicate with this instance." blockedInstancesDescription: "List the hostnames of the instances that you want to block. Listed instances will no longer be able to communicate with this instance."
hiddenTags: "Hidden Hashtags"
hiddenTagsDescription: "List the hashtags (without the #) of the hashtags you wish to hide from trending and explore. Hidden hashtags are still discoverable via other means."
muteAndBlock: "Mutes and Blocks" muteAndBlock: "Mutes and Blocks"
mutedUsers: "Muted users" mutedUsers: "Muted users"
blockedUsers: "Blocked users" blockedUsers: "Blocked users"
noUsers: "There are no users" noUsers: "There are no users"
noInstances: "There are no instances"
editProfile: "Edit profile" editProfile: "Edit profile"
noteDeleteConfirm: "Are you sure you want to delete this post?" noteDeleteConfirm: "Are you sure you want to delete this post?"
pinLimitExceeded: "You cannot pin any more posts" pinLimitExceeded: "You cannot pin any more posts"
@ -320,7 +333,7 @@ dayX: "{day}"
monthX: "{month}" monthX: "{month}"
yearX: "{year}" yearX: "{year}"
pages: "Pages" pages: "Pages"
integration: "Integration" integration: "Integrations"
connectService: "Connect" connectService: "Connect"
disconnectService: "Disconnect" disconnectService: "Disconnect"
enableLocalTimeline: "Enable local timeline" enableLocalTimeline: "Enable local timeline"
@ -363,6 +376,7 @@ notifyAntenna: "Notify about new posts"
withFileAntenna: "Only posts with files" withFileAntenna: "Only posts with files"
enableServiceworker: "Enable Push-Notifications for your Browser" enableServiceworker: "Enable Push-Notifications for your Browser"
antennaUsersDescription: "List one username per line" antennaUsersDescription: "List one username per line"
antennaInstancesDescription: "List one instance host per line"
caseSensitive: "Case sensitive" caseSensitive: "Case sensitive"
withReplies: "Include replies" withReplies: "Include replies"
connectedTo: "Following account(s) are connected" connectedTo: "Following account(s) are connected"
@ -602,6 +616,7 @@ regexpError: "Regular Expression error"
regexpErrorDescription: "An error occurred in the regular expression on line {line} of your {tab} word mutes:" regexpErrorDescription: "An error occurred in the regular expression on line {line} of your {tab} word mutes:"
instanceMute: "Instance Mutes" instanceMute: "Instance Mutes"
userSaysSomething: "{name} said something" userSaysSomething: "{name} said something"
userSaysSomethingReason: "{name} said {reason}"
makeActive: "Activate" makeActive: "Activate"
display: "Display" display: "Display"
copy: "Copy" copy: "Copy"
@ -831,7 +846,7 @@ muteThread: "Mute thread"
unmuteThread: "Unmute thread" unmuteThread: "Unmute thread"
ffVisibility: "Follows/Followers Visibility" ffVisibility: "Follows/Followers Visibility"
ffVisibilityDescription: "Allows you to configure who can see who you follow and who follows you." ffVisibilityDescription: "Allows you to configure who can see who you follow and who follows you."
continueThread: "View thread continuation" continueThread: "Continue thread"
deleteAccountConfirm: "This will irreversibly delete your account. Proceed?" deleteAccountConfirm: "This will irreversibly delete your account. Proceed?"
incorrectPassword: "Incorrect password." incorrectPassword: "Incorrect password."
voteConfirm: "Confirm your vote for \"{choice}\"?" voteConfirm: "Confirm your vote for \"{choice}\"?"
@ -845,6 +860,9 @@ overridedDeviceKind: "Device type"
smartphone: "Smartphone" smartphone: "Smartphone"
tablet: "Tablet" tablet: "Tablet"
auto: "Auto" auto: "Auto"
showLocalPosts: "Show local posts in:"
homeTimeline: "Home Timeline"
socialTimeline: "Social Timeline"
themeColor: "Instance Ticker Color" themeColor: "Instance Ticker Color"
size: "Size" size: "Size"
numberOfColumn: "Number of columns" numberOfColumn: "Number of columns"
@ -904,6 +922,13 @@ navbar: "Navigation bar"
shuffle: "Shuffle" shuffle: "Shuffle"
account: "Account" account: "Account"
move: "Move" move: "Move"
pushNotification: "Push notifications"
subscribePushNotification: "Enable push notifications"
unsubscribePushNotification: "Disable push notifications"
pushNotificationAlreadySubscribed: "Push notifications are already enabled"
pushNotificationNotSupported: "Your browser or instance does not support push notifications"
sendPushNotificationReadMessage: "Delete push notifications once the relevant notifications or messages have been read"
sendPushNotificationReadMessageCaption: "A notification containing the text \"{emptyPushNotificationMessage}\" will be displayed for a short time. This may increase the battery usage of your device, if applicable."
showAds: "Show ads" showAds: "Show ads"
enterSendsMessage: "Press Return in Messaging to send message (off is Ctrl + Return)" enterSendsMessage: "Press Return in Messaging to send message (off is Ctrl + Return)"
adminCustomCssWarn: "This setting should only be used if you know what it does. Entering improper values may cause EVERYONE'S clients to stop functioning normally. Please ensure your CSS works properly by testing it in your user settings." adminCustomCssWarn: "This setting should only be used if you know what it does. Entering improper values may cause EVERYONE'S clients to stop functioning normally. Please ensure your CSS works properly by testing it in your user settings."
@ -931,6 +956,14 @@ moveFromLabel: "Account you're moving from:"
moveFromDescription: "This will set an alias of your old account so that you can move from that account to this current one. Do this BEFORE moving from your older account. Please enter the tag of the account formatted like @person@instance.com" moveFromDescription: "This will set an alias of your old account so that you can move from that account to this current one. Do this BEFORE moving from your older account. Please enter the tag of the account formatted like @person@instance.com"
migrationConfirm: "Are you absolutely sure you want to migrate your acccount to {account}? Once you do this, you won't be able to reverse it, and you won't be able to use your account normally again.\nAlso, please ensure that you've set this current account as the account you're moving from." migrationConfirm: "Are you absolutely sure you want to migrate your acccount to {account}? Once you do this, you won't be able to reverse it, and you won't be able to use your account normally again.\nAlso, please ensure that you've set this current account as the account you're moving from."
defaultReaction: "Default emoji reaction for outgoing and incoming posts" defaultReaction: "Default emoji reaction for outgoing and incoming posts"
license: "License"
indexPosts: "Index Posts"
indexFrom: "Index from Post ID onwards (leave blank to index every post)"
indexNotice: "Now indexing. This will probably take a while, please don't restart your server for at least an hour."
customKaTeXMacro: "Custom KaTeX macros"
customKaTeXMacroDescription: "Set up macros to write mathematical expressions easily! The notation conforms to the LaTeX command definitions and is written as \\newcommand{\\name}{content} or \\newcommand{\\name}[number of arguments]{content}. For example, \\newcommand{\\add}[2]{#1 + #2} will expand \\add{3}{foo} to 3 + foo. The curly brackets surrounding the macro name can be changed to round or square brackets. This affects the brackets used for arguments. One (and only one) macro can be defined per line, and you can't break the line in the middle of the definition. Invalid lines are simply ignored. Only simple string substitution functions are supported; advanced syntax, such as conditional branching, cannot be used here."
enableCustomKaTeXMacro: "Enable custom KaTeX macros"
noteId: "Post ID"
_sensitiveMediaDetection: _sensitiveMediaDetection:
description: "Reduces the effort of server moderation through automatically recognizing NSFW media via Machine Learning. This will slightly increase the load on the server." description: "Reduces the effort of server moderation through automatically recognizing NSFW media via Machine Learning. This will slightly increase the load on the server."
@ -1211,13 +1244,13 @@ _sfx:
_ago: _ago:
future: "Future" future: "Future"
justNow: "Just now" justNow: "Just now"
secondsAgo: "{n} second(s) ago" secondsAgo: "{n}s ago"
minutesAgo: "{n} minute(s) ago" minutesAgo: "{n}m ago"
hoursAgo: "{n} hour(s) ago" hoursAgo: "{n}h ago"
daysAgo: "{n} day(s) ago" daysAgo: "{n}d ago"
weeksAgo: "{n} week(s) ago" weeksAgo: "{n}w ago"
monthsAgo: "{n} month(s) ago" monthsAgo: "{n}mo ago"
yearsAgo: "{n} year(s) ago" yearsAgo: "{n}y ago"
_time: _time:
second: "Second(s)" second: "Second(s)"
minute: "Minute(s)" minute: "Minute(s)"
@ -1235,10 +1268,10 @@ _tutorial:
step4_2: "For your first post, some people like to made a {introduction} post or a simple \"Hello world!\"" step4_2: "For your first post, some people like to made a {introduction} post or a simple \"Hello world!\""
step5_1: "Timelines, timelines everywhere!" step5_1: "Timelines, timelines everywhere!"
step5_2: "Your instance has {timelines} different timelines enabled." step5_2: "Your instance has {timelines} different timelines enabled."
step5_3: "The Home {icon} timeline is where you can see posts from your followers." step5_3: "The Home {icon} timeline is where you can see posts from the accounts you follow and from everyone else on this instance. If you prefer your Home timeline to only display posts from accounts you follow, you can easily change this in Settings!"
step5_4: "The Local {icon} timeline is where you can see posts from everyone else on this instance." step5_4: "The Local {icon} timeline is where you can see posts from everyone else on this instance."
step5_5: "The Recommended {icon} timeline is where you can see posts from instances the admins recommend." step5_5: "The Social {icon} timeline is where you can see posts only from the accounts you follow."
step5_6: "The Social {icon} timeline is your home + local." step5_6: "The Recommended {icon} timeline is where you can see posts from instances the admins recommend."
step5_7: "The Global {icon} timeline is where you can see posts from every other connected instance." step5_7: "The Global {icon} timeline is where you can see posts from every other connected instance."
step6_1: "So, what is this place?" step6_1: "So, what is this place?"
step6_2: "Well, you didn't just join Calckey. You joined a portal to the Fediverse, an interconnected network of thousands of servers, called \"instances\"." step6_2: "Well, you didn't just join Calckey. You joined a portal to the Fediverse, an interconnected network of thousands of servers, called \"instances\"."
@ -1294,12 +1327,14 @@ _auth:
pleaseGoBack: "Please go back to the application" pleaseGoBack: "Please go back to the application"
callback: "Returning to the application" callback: "Returning to the application"
denied: "Access denied" denied: "Access denied"
copyAsk: "Please paste the following authorization code to the application"
_antennaSources: _antennaSources:
all: "All posts" all: "All posts"
homeTimeline: "Posts from followed users" homeTimeline: "Posts from followed users"
users: "Posts from specific users" users: "Posts from specific users"
userList: "Posts from a specified list of users" userList: "Posts from a specified list of users"
userGroup: "Posts from users in a specified group" userGroup: "Posts from users in a specified group"
instances: "Posts from all users on an instance"
_weekday: _weekday:
sunday: "Sunday" sunday: "Sunday"
monday: "Monday" monday: "Monday"
@ -1394,6 +1429,7 @@ _profile:
metadataContent: "Content" metadataContent: "Content"
changeAvatar: "Change avatar" changeAvatar: "Change avatar"
changeBanner: "Change banner" changeBanner: "Change banner"
locationDescription: "If you enter your city, it will display your local time to other users."
_exportOrImport: _exportOrImport:
allNotes: "All posts" allNotes: "All posts"
followingList: "Followed users" followingList: "Followed users"
@ -1799,7 +1835,7 @@ _apps:
pwa: "Install PWA" pwa: "Install PWA"
kaiteki: "Kaiteki" kaiteki: "Kaiteki"
milktea: "Milktea" milktea: "Milktea"
subwayTooter: "Subway Tooter" missLi: "MissLi"
kimis: "Kimis" mona: "Mona"
theDesk: "TheDesk" theDesk: "TheDesk"
lesskey: "Lesskey" lesskey: "Lesskey"

View File

@ -70,8 +70,8 @@ exportRequested: "Vous avez demandé une exportation. Lopération pourrait pr
importRequested: "Vous avez initié un import. Cela pourrait prendre un peu de temps." importRequested: "Vous avez initié un import. Cela pourrait prendre un peu de temps."
lists: "Listes" lists: "Listes"
noLists: "Vous navez aucune liste" noLists: "Vous navez aucune liste"
note: "Notes" note: "Post"
notes: "Notes" notes: "Posts"
following: "Abonnements" following: "Abonnements"
followers: "Abonné·e·s" followers: "Abonné·e·s"
followsYou: "Vous suit" followsYou: "Vous suit"

File diff suppressed because it is too large Load Diff

View File

@ -1174,27 +1174,6 @@ _time:
minute: "min" minute: "min"
hour: "hod" hour: "hod"
day: "dní" day: "dní"
_tutorial:
title: "How to use Calckey"
step1_1: "Welcome!"
step1_2: "Let's get you set up. You'll be up and running in no time!"
step2_1: "First, please fill out your profile."
step2_2: "Providing some information about who you are will make it easier for others to tell if they want to see your notes or follow you."
step3_1: "Now time to follow some people!"
step3_2: "Your home and social timelines are based off of who you follow, so try following a couple accounts to get started.\nClick the plus circle on the top right of a profile to follow them."
step4_1: "Let's get you out there."
step4_2: "For your first post, some people like to made a {introduction} post or a simple \"Hello world!\""
step5_1: "Timelines, timelines everywhere!"
step5_2: "Your instance has {timelines} different timelines enabled."
step5_3: "The Home {icon} timeline is where you can see posts from your followers."
step5_4: "The Local {icon} timeline is where you can see posts from everyone else on this instance."
step5_5: "The Recommended {icon} timeline is where you can see posts from instances the admins recommend."
step5_6: "The Social {icon} timeline is where you can see posts from friends of your followers."
step5_7: "The Global {icon} timeline is where you can see posts from every other connected instance."
step6_1: "So, what is this place?"
step6_2: "Well, you didn't just join Calckey. You joined a portal to the Fediverse, an interconnected network of thousands of servers, called \"instances\"."
step6_3: "Each server works in different ways, and not all servers run Calckey. This one does though! It's a bit complicated, but you'll get the hang of it in no time."
step6_4: "Now go, explore, and have fun!"
_2fa: _2fa:
alreadyRegistered: "Už ste zaregistrovali 2-faktorové autentifikačné zariadenie." alreadyRegistered: "Už ste zaregistrovali 2-faktorové autentifikačné zariadenie."
registerDevice: "Registrovať nové zariadenie" registerDevice: "Registrovať nové zariadenie"

View File

@ -1179,27 +1179,6 @@ _time:
minute: "phút" minute: "phút"
hour: "giờ" hour: "giờ"
day: "ngày" day: "ngày"
_tutorial:
title: "How to use Calckey"
step1_1: "Welcome!"
step1_2: "Let's get you set up. You'll be up and running in no time!"
step2_1: "First, please fill out your profile."
step2_2: "Providing some information about who you are will make it easier for others to tell if they want to see your notes or follow you."
step3_1: "Now time to follow some people!"
step3_2: "Your home and social timelines are based off of who you follow, so try following a couple accounts to get started.\nClick the plus circle on the top right of a profile to follow them."
step4_1: "Let's get you out there."
step4_2: "For your first post, some people like to made a {introduction} post or a simple \"Hello world!\""
step5_1: "Timelines, timelines everywhere!"
step5_2: "Your instance has {timelines} different timelines enabled."
step5_3: "The Home {icon} timeline is where you can see posts from your followers."
step5_4: "The Local {icon} timeline is where you can see posts from everyone else on this instance."
step5_5: "The Recommended {icon} timeline is where you can see posts from instances the admins recommend."
step5_6: "The Social {icon} timeline is where you can see posts from friends of your followers."
step5_7: "The Global {icon} timeline is where you can see posts from every other connected instance."
step6_1: "So, what is this place?"
step6_2: "Well, you didn't just join Calckey. You joined a portal to the Fediverse, an interconnected network of thousands of servers, called \"instances\"."
step6_3: "Each server works in different ways, and not all servers run Calckey. This one does though! It's a bit complicated, but you'll get the hang of it in no time."
step6_4: "Now go, explore, and have fun!"
_2fa: _2fa:
alreadyRegistered: "Bạn đã đăng ký thiết bị xác minh 2 bước." alreadyRegistered: "Bạn đã đăng ký thiết bị xác minh 2 bước."
registerDevice: "Đăng ký một thiết bị" registerDevice: "Đăng ký một thiết bị"

View File

@ -1,5 +1,5 @@
--- ---
_lang_: "中文(简体)" _lang_: "简体中文"
headlineMisskey: "通过帖子连接在一起的网络" headlineMisskey: "通过帖子连接在一起的网络"
introMisskey: "欢迎Misskey是一个开源的、去中心化的“微博客”服务。\n通过编写「帖文」来和大家分享你的以及你周围的事情吧📡\n通过「回应」功能可以让你快速地对大家的帖文表达反馈👍\n来探索新的世界吧🚀" introMisskey: "欢迎Misskey是一个开源的、去中心化的“微博客”服务。\n通过编写「帖文」来和大家分享你的以及你周围的事情吧📡\n通过「回应」功能可以让你快速地对大家的帖文表达反馈👍\n来探索新的世界吧🚀"
monthAndDay: "{month}月 {day}日" monthAndDay: "{month}月 {day}日"
@ -116,6 +116,8 @@ unmarkAsSensitive: "取消标记为敏感内容"
enterFileName: "请输入文件名" enterFileName: "请输入文件名"
mute: "屏蔽" mute: "屏蔽"
unmute: "解除屏蔽" unmute: "解除屏蔽"
renoteMute: "屏蔽转帖"
renoteUnmute: "解除屏蔽转帖"
block: "拉黑" block: "拉黑"
unblock: "取消拉黑" unblock: "取消拉黑"
suspend: "冻结" suspend: "冻结"
@ -892,6 +894,9 @@ navbar: "导航栏"
shuffle: "随机" shuffle: "随机"
account: "账户" account: "账户"
move: "移动" move: "移动"
customKaTeXMacro: "自定义 KaTeX 宏"
customKaTeXMacroDescription: "使用宏来轻松的输入数学表达式吧!宏的用法与 LaTeX 中的命令定义相同。你可以使用 \\newcommand{\\name}{content} 或 \\newcommand{\\name}[number of arguments]{content} 来输入数学表达式。举个例子,\\newcommand{\\add}[2]{#1 + #2} 会将 \\add{3}{foo} 展开为 3 + foo。此外宏名称外的花括号 {} 可以被替换为圆括号 () 和方括号 [],这会影响用于参数的括号。每行只能够定义一个宏,无法在中间换行,且无效的行将被忽略。只支持简单字符串替换功能,不支持高级语法,如条件分支等。"
enableCustomKaTeXMacro: "启用自定义 KaTeX 宏"
_sensitiveMediaDetection: _sensitiveMediaDetection:
description: "可以使用机器学习技术自动检测敏感媒体,以便进行审核。服务器负载将略微增加。" description: "可以使用机器学习技术自动检测敏感媒体,以便进行审核。服务器负载将略微增加。"
sensitivity: "检测敏感度" sensitivity: "检测敏感度"

View File

@ -116,6 +116,8 @@ unmarkAsSensitive: "取消標記為敏感內容"
enterFileName: "請輸入檔案名稱" enterFileName: "請輸入檔案名稱"
mute: "靜音" mute: "靜音"
unmute: "解除靜音" unmute: "解除靜音"
renoteMute: "靜音轉發貼文"
renoteUnmute: "解除靜音轉發貼文"
block: "封鎖" block: "封鎖"
unblock: "解除封鎖" unblock: "解除封鎖"
suspend: "凍結" suspend: "凍結"
@ -892,6 +894,9 @@ navbar: "導覽列"
shuffle: "隨機" shuffle: "隨機"
account: "帳戶" account: "帳戶"
move: "移動 " move: "移動 "
customKaTeXMacro: "自定義 KaTeX 宏"
customKaTeXMacroDescription: "使用宏來輕鬆的輸入數學表達式吧!宏的用法與 LaTeX 中的命令定義相同。你可以使用 \\newcommand{\\name}{content} 或 \\newcommand{\\name}[number of arguments]{content} 來輸入數學表達式。舉個例子,\\newcommand{\\add}[2]{#1 + #2} 會將 \\add{3}{foo} 展開為 3 + foo。此外宏名稱外的花括號 {} 可以被替換為圓括號 () 和方括號 [],這會影響用於參數的括號。每行只能夠定義一個宏,無法在中間換行,且無效的行將被忽略。只支持簡單字符串替換功能,不支持高級語法,如條件分支等。"
enableCustomKaTeXMacro: "啟用自定義 KaTeX 宏"
_sensitiveMediaDetection: _sensitiveMediaDetection:
description: "您可以使用機器學習自動檢測敏感媒體並將其用於審核。 伺服器的負荷會稍微增加。" description: "您可以使用機器學習自動檢測敏感媒體並將其用於審核。 伺服器的負荷會稍微增加。"
sensitivity: "檢測敏感度" sensitivity: "檢測敏感度"

View File

@ -1,12 +1,12 @@
{ {
"name": "calckey", "name": "calckey",
"version": "13.1.4.1", "version": "13.2.0-beta6",
"codename": "aqua", "codename": "aqua",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://codeberg.org/calckey/calckey.git" "url": "https://codeberg.org/calckey/calckey.git"
}, },
"packageManager": "pnpm@7.27.0", "packageManager": "pnpm@8.2.0",
"private": true, "private": true,
"scripts": { "scripts": {
"rebuild": "pnpm run clean && pnpm -r run build && pnpm run gulp", "rebuild": "pnpm run clean && pnpm -r run build && pnpm run gulp",
@ -27,7 +27,7 @@
"e2e": "start-server-and-test start:test http://localhost:61812 cy:run", "e2e": "start-server-and-test start:test http://localhost:61812 cy:run",
"mocha": "pnpm --filter backend run mocha", "mocha": "pnpm --filter backend run mocha",
"test": "pnpm run mocha", "test": "pnpm run mocha",
"format": "gulp format", "format": "pnpm rome format packages/**/* --write && pnpm --filter client run format",
"clean": "pnpm node ./scripts/clean.js", "clean": "pnpm node ./scripts/clean.js",
"clean-all": "pnpm node ./scripts/clean-all.js", "clean-all": "pnpm node ./scripts/clean-all.js",
"cleanall": "pnpm run clean-all" "cleanall": "pnpm run clean-all"
@ -36,12 +36,10 @@
"chokidar": "^3.3.1" "chokidar": "^3.3.1"
}, },
"dependencies": { "dependencies": {
"@bull-board/api": "^4.10.2", "@bull-board/api": "^4.12.2",
"@bull-board/ui": "^4.10.2", "@bull-board/ui": "^4.12.2",
"@tensorflow/tfjs": "^3.21.0", "@napi-rs/cli": "^2.15.2",
"calckey-js": "^0.0.20",
"js-yaml": "4.1.0", "js-yaml": "4.1.0",
"phosphor-icons": "^1.4.2",
"seedrandom": "^3.0.5" "seedrandom": "^3.0.5"
}, },
"devDependencies": { "devDependencies": {

View File

@ -0,0 +1,25 @@
<svg id="svg10" version="1.1" sodipodi:docname="title_float.svg" inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="1.95 0.97 167.97 103.23">
<sodipodi:namedview id="namedview21" pagecolor="#ffffff" bordercolor="#000000" borderopacity="0.25" inkscape:showpageshadow="2" inkscape:pageopacity="0.0" inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" showgrid="false" inkscape:zoom="1.1507704" inkscape:cx="260.69492" inkscape:cy="102.54" inkscape:window-width="1600" inkscape:window-height="931" inkscape:window-x="0" inkscape:window-y="0" inkscape:window-maximized="1" inkscape:current-layer="svg10"/>
<metadata id="metadata16">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<linearGradient id="myGradient" gradientTransform="rotate(90)">
<stop offset="5%" stop-color="#9ccfd8" id="stop5" style="--darkreader-inline-stopcolor: #265760;" data-darkreader-inline-stopcolor=""/>
<stop offset="95%" stop-color="#31748f" id="stop7" style="--darkreader-inline-stopcolor: #275d72;" data-darkreader-inline-stopcolor=""/>
</linearGradient>
<defs id="defs14"/>
<g id="g8" fill="url('#myGradient')" word-spacing="0" letter-spacing="0" font-family="OTADESIGN Rounded" font-weight="400">
<g id="g17">
<g transform="matrix(.26953 0 0 .26953 -55.341 -52.023)" id="g11"/>
<g transform="matrix(3.6954 0 0 3.6954 208.34 -284.25)" clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" id="g15">
<path d="m -41.8312,77.19 c -3.8683,0 -7.1782,1.3578 -9.9311,4.0734 -2.716,2.7525 -4.0734,6.0628 -4.0734,9.9311 5.0539,0.04979 6.082,0.01348 8.7525,0.0011 0.0024,-4.51e-4 0.0044,-6.05e-4 0.0069,-0.0011 0.03779,-2.8423 2.2103,-4.9346 5.2451,-5.2451 1.4137,0 2.6227,0.52089 3.6268,1.5629 0.855,0.8548 1.897,1.2822 3.1257,1.2822 1.2258,0 2.2676,-0.42741 3.1236,-1.2822 0.85499,-0.85567 1.2833,-1.8976 1.2833,-3.1257 0,-1.2264 -0.42828,-2.2673 -1.2833,-3.1231 -2.7528,-2.7156 -6.0446,-4.0734 -9.8761,-4.0734 z m -5.252,14.006 c -3.4453,-5.5934 -3.4667,0.08539 -8.7525,-0.0011 0,3.8683 1.3584,7.0406 4.0744,9.7931 2.7528,2.7156 6.0623,4.0734 9.9305,4.0734 3.8315,0 7.1238,-1.3578 9.8766,-4.0734 0.85499,-0.85577 1.2827,-1.8967 1.2827,-3.1231 0,-1.2282 -0.42775,-2.2701 -1.2827,-3.1257 -0.85596,-0.8548 -1.8978,-1.2822 -3.1236,-1.2822 -1.2287,0 -2.2707,0.42741 -3.1257,1.2822 -1.0041,1.042 -2.2136,1.5623 -3.6273,1.5623 -3.0348,-0.31051 -5.2084,-2.2633 -5.2462,-5.1056 -0.0024,1.1e-5 -0.0039,-1.2e-5 -0.0063,0 z m 26.154,-7.0965 c -2.8795,0 -5.3538,1.0204 -7.4227,3.0612 -0.64257,0.64316 -0.96404,1.4255 -0.96404,2.3472 0,0.92303 0.32146,1.7062 0.96404,2.3493 0.64331,0.64243 1.4265,0.96351 2.3477,0.96351 0.92347,0 1.7068,-0.32108 2.3493,-0.96351 0.75465,-0.78308 1.6632,-1.1744 2.7256,-1.1744 1.0894,0 2.0261,0.37695 2.8091,1.1316 0.75536,0.78309 1.1332,1.7201 1.1332,2.8102 0,1.0617 -0.39242,1.9703 -1.1754,2.7256 -0.39149,0.4193 -0.86676,0.69884 -1.4249,0.83878 -0.14116,0.02773 -0.25248,0.01369 -0.33614,-0.04175 -0.05605,-0.08456 -0.02751,-0.16827 0.08456,-0.25211 l 0.83825,-0.88053 c 0.64329,-0.64315 0.9651,-1.412 0.9651,-2.306 0,-0.92236 -0.27937,-1.6632 -0.83825,-2.2225 -0.55888,-0.55932 -1.3422,-0.83878 -2.3493,-0.83878 -0.6986,0 -1.397,0.34902 -2.0956,1.0475 l -4.8651,4.8223 c -0.64328,0.6438 -0.96457,1.4271 -0.96457,2.3488 0,0.92302 0.32128,1.7053 0.96457,2.3477 1.9568,1.9293 4.3751,2.8942 7.2546,2.8942 2.9072,0 5.3945,-1.0343 7.4634,-3.103 2.0412,-2.0409 3.0618,-4.501 3.0618,-7.3804 0,-2.9072 -1.0206,-5.3952 -3.0618,-7.4639 -2.0689,-2.0409 -4.5562,-3.0612 -7.4634,-3.0612 z" clip-rule="evenodd" fill-rule="nonzero" stroke-miterlimit="2" stroke-width="0" id="path13" sodipodi:nodetypes="cccccccscsccccccscscscccccccscscscscccccscsccscscsccc"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="512.0px"
height="512.0px"
viewBox="0 0 512.0 512.0"
version="1.1"
id="SVGRoot"
sodipodi:docname="inverse wordmark.svg"
xml:space="preserve"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview71"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="px"
showgrid="true"
inkscape:zoom="0.50150542"
inkscape:cx="59.819892"
inkscape:cy="189.42966"
inkscape:window-width="1600"
inkscape:window-height="931"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"><inkscape:grid
type="xygrid"
id="grid77" /></sodipodi:namedview><defs
id="defs66" /><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"><path
id="rect136"
style="fill:#31748f;fill-opacity:1;stroke-width:0.996356"
d="M 0,0 V 512 H 512 V 0 Z" /><g
id="g17"
style="font-weight:400;font-family:'OTADESIGN Rounded';letter-spacing:0;word-spacing:0;fill:#ffffff"
transform="matrix(2.0847185,0,0,2.0847185,76.820648,146.38203)"><g
transform="matrix(0.26953,0,0,0.26953,-55.341,-52.023)"
id="g11"
style="fill:#ffffff" /><g
transform="matrix(3.6954,0,0,3.6954,208.34,-284.25)"
clip-rule="evenodd"
fill-rule="evenodd"
stroke-linejoin="round"
stroke-miterlimit="2"
id="g15"
style="fill:#ffffff"><path
d="m -41.8312,77.19 c -3.8683,0 -7.1782,1.3578 -9.9311,4.0734 -2.716,2.7525 -4.0734,6.0628 -4.0734,9.9311 5.0539,0.04979 6.082,0.01348 8.7525,0.0011 0.0024,-4.51e-4 0.0044,-6.05e-4 0.0069,-0.0011 0.03779,-2.8423 2.2103,-4.9346 5.2451,-5.2451 1.4137,0 2.6227,0.52089 3.6268,1.5629 0.855,0.8548 1.897,1.2822 3.1257,1.2822 1.2258,0 2.2676,-0.42741 3.1236,-1.2822 0.85499,-0.85567 1.2833,-1.8976 1.2833,-3.1257 0,-1.2264 -0.42828,-2.2673 -1.2833,-3.1231 -2.7528,-2.7156 -6.0446,-4.0734 -9.8761,-4.0734 z m -5.252,14.006 c -3.4453,-5.5934 -3.4667,0.08539 -8.7525,-0.0011 0,3.8683 1.3584,7.0406 4.0744,9.7931 2.7528,2.7156 6.0623,4.0734 9.9305,4.0734 3.8315,0 7.1238,-1.3578 9.8766,-4.0734 0.85499,-0.85577 1.2827,-1.8967 1.2827,-3.1231 0,-1.2282 -0.42775,-2.2701 -1.2827,-3.1257 -0.85596,-0.8548 -1.8978,-1.2822 -3.1236,-1.2822 -1.2287,0 -2.2707,0.42741 -3.1257,1.2822 -1.0041,1.042 -2.2136,1.5623 -3.6273,1.5623 -3.0348,-0.31051 -5.2084,-2.2633 -5.2462,-5.1056 -0.0024,1.1e-5 -0.0039,-1.2e-5 -0.0063,0 z m 26.154,-7.0965 c -2.8795,0 -5.3538,1.0204 -7.4227,3.0612 -0.64257,0.64316 -0.96404,1.4255 -0.96404,2.3472 0,0.92303 0.32146,1.7062 0.96404,2.3493 0.64331,0.64243 1.4265,0.96351 2.3477,0.96351 0.92347,0 1.7068,-0.32108 2.3493,-0.96351 0.75465,-0.78308 1.6632,-1.1744 2.7256,-1.1744 1.0894,0 2.0261,0.37695 2.8091,1.1316 0.75536,0.78309 1.1332,1.7201 1.1332,2.8102 0,1.0617 -0.39242,1.9703 -1.1754,2.7256 -0.39149,0.4193 -0.86676,0.69884 -1.4249,0.83878 -0.14116,0.02773 -0.25248,0.01369 -0.33614,-0.04175 -0.05605,-0.08456 -0.02751,-0.16827 0.08456,-0.25211 l 0.83825,-0.88053 c 0.64329,-0.64315 0.9651,-1.412 0.9651,-2.306 0,-0.92236 -0.27937,-1.6632 -0.83825,-2.2225 -0.55888,-0.55932 -1.3422,-0.83878 -2.3493,-0.83878 -0.6986,0 -1.397,0.34902 -2.0956,1.0475 l -4.8651,4.8223 c -0.64328,0.6438 -0.96457,1.4271 -0.96457,2.3488 0,0.92302 0.32128,1.7053 0.96457,2.3477 1.9568,1.9293 4.3751,2.8942 7.2546,2.8942 2.9072,0 5.3945,-1.0343 7.4634,-3.103 2.0412,-2.0409 3.0618,-4.501 3.0618,-7.3804 0,-2.9072 -1.0206,-5.3952 -3.0618,-7.4639 -2.0689,-2.0409 -4.5562,-3.0612 -7.4634,-3.0612 z"
clip-rule="evenodd"
fill-rule="nonzero"
stroke-miterlimit="2"
stroke-width="0"
id="path13"
sodipodi:nodetypes="cccccccscsccccccscscscccccccscscscscccccscsccscscsccc"
style="fill:#ffffff" /></g></g></g></svg>

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@ -0,0 +1,10 @@
import { loadConfig } from "./built/config.js";
import { createRedisConnection } from "./built/redis.js";
const config = loadConfig();
const redis = createRedisConnection(config);
redis.on("connect", () => redis.disconnect());
redis.on("error", (e) => {
throw e;
});

File diff suppressed because it is too large Load Diff

View File

@ -1,28 +1,50 @@
export class Pages1556348509290 { export class Pages1556348509290 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`CREATE TYPE "page_visibility_enum" AS ENUM('public', 'followers', 'specified')`); await queryRunner.query(
await queryRunner.query(`CREATE TABLE "page" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, "title" character varying(256) NOT NULL, "name" character varying(256) NOT NULL, "summary" character varying(256), "alignCenter" boolean NOT NULL, "font" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "eyeCatchingImageId" character varying(32), "content" jsonb NOT NULL DEFAULT '[]', "variables" jsonb NOT NULL DEFAULT '[]', "visibility" "page_visibility_enum" NOT NULL, "visibleUserIds" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], CONSTRAINT "PK_742f4117e065c5b6ad21b37ba1f" PRIMARY KEY ("id"))`); `CREATE TYPE "page_visibility_enum" AS ENUM('public', 'followers', 'specified')`,
await queryRunner.query(`CREATE INDEX "IDX_fbb4297c927a9b85e9cefa2eb1" ON "page" ("createdAt") `); );
await queryRunner.query(`CREATE INDEX "IDX_af639b066dfbca78b01a920f8a" ON "page" ("updatedAt") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_b82c19c08afb292de4600d99e4" ON "page" ("name") `); `CREATE TABLE "page" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, "title" character varying(256) NOT NULL, "name" character varying(256) NOT NULL, "summary" character varying(256), "alignCenter" boolean NOT NULL, "font" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "eyeCatchingImageId" character varying(32), "content" jsonb NOT NULL DEFAULT '[]', "variables" jsonb NOT NULL DEFAULT '[]', "visibility" "page_visibility_enum" NOT NULL, "visibleUserIds" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], CONSTRAINT "PK_742f4117e065c5b6ad21b37ba1f" PRIMARY KEY ("id"))`,
await queryRunner.query(`CREATE INDEX "IDX_ae1d917992dd0c9d9bbdad06c4" ON "page" ("userId") `); );
await queryRunner.query(`CREATE INDEX "IDX_90148bbc2bf0854428786bfc15" ON "page" ("visibleUserIds") `); await queryRunner.query(
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_2133ef8317e4bdb839c0dcbf13" ON "page" ("userId", "name") `); `CREATE INDEX "IDX_fbb4297c927a9b85e9cefa2eb1" ON "page" ("createdAt") `,
await queryRunner.query(`ALTER TABLE "page" ADD CONSTRAINT "FK_ae1d917992dd0c9d9bbdad06c4a" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); );
await queryRunner.query(`ALTER TABLE "page" ADD CONSTRAINT "FK_3126dd7c502c9e4d7597ef7ef10" FOREIGN KEY ("eyeCatchingImageId") REFERENCES "drive_file"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); await queryRunner.query(
} `CREATE INDEX "IDX_af639b066dfbca78b01a920f8a" ON "page" ("updatedAt") `,
async down(queryRunner) { );
await queryRunner.query(`ALTER TABLE "page" DROP CONSTRAINT "FK_3126dd7c502c9e4d7597ef7ef10"`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "page" DROP CONSTRAINT "FK_ae1d917992dd0c9d9bbdad06c4a"`); `CREATE INDEX "IDX_b82c19c08afb292de4600d99e4" ON "page" ("name") `,
await queryRunner.query(`DROP INDEX "IDX_2133ef8317e4bdb839c0dcbf13"`); );
await queryRunner.query(`DROP INDEX "IDX_90148bbc2bf0854428786bfc15"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_ae1d917992dd0c9d9bbdad06c4"`); `CREATE INDEX "IDX_ae1d917992dd0c9d9bbdad06c4" ON "page" ("userId") `,
await queryRunner.query(`DROP INDEX "IDX_b82c19c08afb292de4600d99e4"`); );
await queryRunner.query(`DROP INDEX "IDX_af639b066dfbca78b01a920f8a"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_fbb4297c927a9b85e9cefa2eb1"`); `CREATE INDEX "IDX_90148bbc2bf0854428786bfc15" ON "page" ("visibleUserIds") `,
await queryRunner.query(`DROP TABLE "page"`); );
await queryRunner.query(`DROP TYPE "page_visibility_enum"`); await queryRunner.query(
} `CREATE UNIQUE INDEX "IDX_2133ef8317e4bdb839c0dcbf13" ON "page" ("userId", "name") `,
);
await queryRunner.query(
`ALTER TABLE "page" ADD CONSTRAINT "FK_ae1d917992dd0c9d9bbdad06c4a" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
);
await queryRunner.query(
`ALTER TABLE "page" ADD CONSTRAINT "FK_3126dd7c502c9e4d7597ef7ef10" FOREIGN KEY ("eyeCatchingImageId") REFERENCES "drive_file"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "page" DROP CONSTRAINT "FK_3126dd7c502c9e4d7597ef7ef10"`,
);
await queryRunner.query(
`ALTER TABLE "page" DROP CONSTRAINT "FK_ae1d917992dd0c9d9bbdad06c4a"`,
);
await queryRunner.query(`DROP INDEX "IDX_2133ef8317e4bdb839c0dcbf13"`);
await queryRunner.query(`DROP INDEX "IDX_90148bbc2bf0854428786bfc15"`);
await queryRunner.query(`DROP INDEX "IDX_ae1d917992dd0c9d9bbdad06c4"`);
await queryRunner.query(`DROP INDEX "IDX_b82c19c08afb292de4600d99e4"`);
await queryRunner.query(`DROP INDEX "IDX_af639b066dfbca78b01a920f8a"`);
await queryRunner.query(`DROP INDEX "IDX_fbb4297c927a9b85e9cefa2eb1"`);
await queryRunner.query(`DROP TABLE "page"`);
await queryRunner.query(`DROP TYPE "page_visibility_enum"`);
}
} }

View File

@ -1,13 +1,21 @@
export class UserProfile1556746559567 { export class UserProfile1556746559567 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "githubId" TYPE VARCHAR(64) USING "githubId"::VARCHAR(64)`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "discordExpiresDate" TYPE VARCHAR(64) USING "discordExpiresDate"::VARCHAR(64)`); `ALTER TABLE "user_profile" ALTER COLUMN "githubId" TYPE VARCHAR(64) USING "githubId"::VARCHAR(64)`,
} );
async down(queryRunner) { await queryRunner.query(
await queryRunner.query(`UPDATE "user_profile" SET github = FALSE, discord = FALSE`); `ALTER TABLE "user_profile" ALTER COLUMN "discordExpiresDate" TYPE VARCHAR(64) USING "discordExpiresDate"::VARCHAR(64)`,
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "githubId" TYPE INTEGER USING NULL`); );
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "discordExpiresDate" TYPE INTEGER USING NULL`); }
} async down(queryRunner) {
await queryRunner.query(
`UPDATE "user_profile" SET github = FALSE, discord = FALSE`,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ALTER COLUMN "githubId" TYPE INTEGER USING NULL`,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ALTER COLUMN "discordExpiresDate" TYPE INTEGER USING NULL`,
);
}
} }

View File

@ -1,10 +1,10 @@
export class PinnedUsers1557476068003 { export class PinnedUsers1557476068003 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedUsers" character varying(256) array NOT NULL DEFAULT '{}'::varchar[]`); await queryRunner.query(
} `ALTER TABLE "meta" ADD "pinnedUsers" character varying(256) array NOT NULL DEFAULT '{}'::varchar[]`,
async down(queryRunner) { );
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedUsers"`); }
} async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedUsers"`);
}
} }

View File

@ -1,14 +1,18 @@
export class AddSomeUrls1557761316509 { export class AddSomeUrls1557761316509 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" ADD "ToSUrl" character varying(512)`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "meta" ADD "repositoryUrl" character varying(512) NOT NULL DEFAULT 'https://github.com/misskey-dev/misskey'`); `ALTER TABLE "meta" ADD "ToSUrl" character varying(512)`,
await queryRunner.query(`ALTER TABLE "meta" ADD "feedbackUrl" character varying(512) DEFAULT 'https://github.com/misskey-dev/misskey/issues/new'`); );
} await queryRunner.query(
async down(queryRunner) { `ALTER TABLE "meta" ADD "repositoryUrl" character varying(512) NOT NULL DEFAULT 'https://github.com/misskey-dev/misskey'`,
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "feedbackUrl"`); );
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "repositoryUrl"`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "ToSUrl"`); `ALTER TABLE "meta" ADD "feedbackUrl" character varying(512) DEFAULT 'https://github.com/misskey-dev/misskey/issues/new'`,
} );
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "feedbackUrl"`);
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "repositoryUrl"`);
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "ToSUrl"`);
}
} }

View File

@ -1,28 +1,66 @@
export class ObjectStorageSetting1557932705754 { export class ObjectStorageSetting1557932705754 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" ADD "useObjectStorage" boolean NOT NULL DEFAULT false`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageBucket" character varying(512)`); `ALTER TABLE "meta" ADD "useObjectStorage" boolean NOT NULL DEFAULT false`,
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStoragePrefix" character varying(512)`); );
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageBaseUrl" character varying(512)`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageEndpoint" character varying(512)`); `ALTER TABLE "meta" ADD "objectStorageBucket" character varying(512)`,
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageRegion" character varying(512)`); );
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageAccessKey" character varying(512)`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageSecretKey" character varying(512)`); `ALTER TABLE "meta" ADD "objectStoragePrefix" character varying(512)`,
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStoragePort" integer`); );
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageUseSSL" boolean NOT NULL DEFAULT true`); await queryRunner.query(
} `ALTER TABLE "meta" ADD "objectStorageBaseUrl" character varying(512)`,
async down(queryRunner) { );
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageUseSSL"`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStoragePort"`); `ALTER TABLE "meta" ADD "objectStorageEndpoint" character varying(512)`,
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageSecretKey"`); );
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageAccessKey"`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageRegion"`); `ALTER TABLE "meta" ADD "objectStorageRegion" character varying(512)`,
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageEndpoint"`); );
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageBaseUrl"`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStoragePrefix"`); `ALTER TABLE "meta" ADD "objectStorageAccessKey" character varying(512)`,
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageBucket"`); );
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "useObjectStorage"`); await queryRunner.query(
} `ALTER TABLE "meta" ADD "objectStorageSecretKey" character varying(512)`,
);
await queryRunner.query(
`ALTER TABLE "meta" ADD "objectStoragePort" integer`,
);
await queryRunner.query(
`ALTER TABLE "meta" ADD "objectStorageUseSSL" boolean NOT NULL DEFAULT true`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "objectStorageUseSSL"`,
);
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "objectStoragePort"`,
);
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "objectStorageSecretKey"`,
);
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "objectStorageAccessKey"`,
);
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "objectStorageRegion"`,
);
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "objectStorageEndpoint"`,
);
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "objectStorageBaseUrl"`,
);
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "objectStoragePrefix"`,
);
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "objectStorageBucket"`,
);
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "useObjectStorage"`,
);
}
} }

View File

@ -1,20 +1,34 @@
export class PageLike1558072954435 { export class PageLike1558072954435 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`CREATE TABLE "page_like" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "pageId" character varying(32) NOT NULL, CONSTRAINT "PK_813f034843af992d3ae0f43c64c" PRIMARY KEY ("id"))`); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_0e61efab7f88dbb79c9166dbb4" ON "page_like" ("userId") `); `CREATE TABLE "page_like" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "pageId" character varying(32) NOT NULL, CONSTRAINT "PK_813f034843af992d3ae0f43c64c" PRIMARY KEY ("id"))`,
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_4ce6fb9c70529b4c8ac46c9bfa" ON "page_like" ("userId", "pageId") `); );
await queryRunner.query(`ALTER TABLE "page" ADD "likedCount" integer NOT NULL DEFAULT 0`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "page_like" ADD CONSTRAINT "FK_0e61efab7f88dbb79c9166dbb48" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); `CREATE INDEX "IDX_0e61efab7f88dbb79c9166dbb4" ON "page_like" ("userId") `,
await queryRunner.query(`ALTER TABLE "page_like" ADD CONSTRAINT "FK_cf8782626dced3176038176a847" FOREIGN KEY ("pageId") REFERENCES "page"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); );
} await queryRunner.query(
async down(queryRunner) { `CREATE UNIQUE INDEX "IDX_4ce6fb9c70529b4c8ac46c9bfa" ON "page_like" ("userId", "pageId") `,
await queryRunner.query(`ALTER TABLE "page_like" DROP CONSTRAINT "FK_cf8782626dced3176038176a847"`); );
await queryRunner.query(`ALTER TABLE "page_like" DROP CONSTRAINT "FK_0e61efab7f88dbb79c9166dbb48"`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "likedCount"`); `ALTER TABLE "page" ADD "likedCount" integer NOT NULL DEFAULT 0`,
await queryRunner.query(`DROP INDEX "IDX_4ce6fb9c70529b4c8ac46c9bfa"`); );
await queryRunner.query(`DROP INDEX "IDX_0e61efab7f88dbb79c9166dbb4"`); await queryRunner.query(
await queryRunner.query(`DROP TABLE "page_like"`); `ALTER TABLE "page_like" ADD CONSTRAINT "FK_0e61efab7f88dbb79c9166dbb48" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
} );
await queryRunner.query(
`ALTER TABLE "page_like" ADD CONSTRAINT "FK_cf8782626dced3176038176a847" FOREIGN KEY ("pageId") REFERENCES "page"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "page_like" DROP CONSTRAINT "FK_cf8782626dced3176038176a847"`,
);
await queryRunner.query(
`ALTER TABLE "page_like" DROP CONSTRAINT "FK_0e61efab7f88dbb79c9166dbb48"`,
);
await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "likedCount"`);
await queryRunner.query(`DROP INDEX "IDX_4ce6fb9c70529b4c8ac46c9bfa"`);
await queryRunner.query(`DROP INDEX "IDX_0e61efab7f88dbb79c9166dbb4"`);
await queryRunner.query(`DROP TABLE "page_like"`);
}
} }

View File

@ -1,38 +1,82 @@
export class UserGroup1558103093633 { export class UserGroup1558103093633 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`CREATE TABLE "user_group" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(256) NOT NULL, "userId" character varying(32) NOT NULL, "isPrivate" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_3c29fba6fe013ec8724378ce7c9" PRIMARY KEY ("id"))`); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_20e30aa35180e317e133d75316" ON "user_group" ("createdAt") `); `CREATE TABLE "user_group" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(256) NOT NULL, "userId" character varying(32) NOT NULL, "isPrivate" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_3c29fba6fe013ec8724378ce7c9" PRIMARY KEY ("id"))`,
await queryRunner.query(`CREATE INDEX "IDX_3d6b372788ab01be58853003c9" ON "user_group" ("userId") `); );
await queryRunner.query(`CREATE TABLE "user_group_joining" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_15f2425885253c5507e1599cfe7" PRIMARY KEY ("id"))`); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_f3a1b4bd0c7cabba958a0c0b23" ON "user_group_joining" ("userId") `); `CREATE INDEX "IDX_20e30aa35180e317e133d75316" ON "user_group" ("createdAt") `,
await queryRunner.query(`CREATE INDEX "IDX_67dc758bc0566985d1b3d39986" ON "user_group_joining" ("userGroupId") `); );
await queryRunner.query(`ALTER TABLE "messaging_message" ADD "groupId" character varying(32)`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "messaging_message" ADD "reads" character varying(32) array NOT NULL DEFAULT '{}'::varchar[]`); `CREATE INDEX "IDX_3d6b372788ab01be58853003c9" ON "user_group" ("userId") `,
await queryRunner.query(`ALTER TABLE "messaging_message" ALTER COLUMN "recipientId" DROP NOT NULL`); );
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."recipientId" IS 'The recipient user ID.'`); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_2c4be03b446884f9e9c502135b" ON "messaging_message" ("groupId") `); `CREATE TABLE "user_group_joining" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_15f2425885253c5507e1599cfe7" PRIMARY KEY ("id"))`,
await queryRunner.query(`ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_2c4be03b446884f9e9c502135be" FOREIGN KEY ("groupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); );
await queryRunner.query(`ALTER TABLE "user_group" ADD CONSTRAINT "FK_3d6b372788ab01be58853003c93" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "user_group_joining" ADD CONSTRAINT "FK_f3a1b4bd0c7cabba958a0c0b231" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); `CREATE INDEX "IDX_f3a1b4bd0c7cabba958a0c0b23" ON "user_group_joining" ("userId") `,
await queryRunner.query(`ALTER TABLE "user_group_joining" ADD CONSTRAINT "FK_67dc758bc0566985d1b3d399865" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); );
} await queryRunner.query(
async down(queryRunner) { `CREATE INDEX "IDX_67dc758bc0566985d1b3d39986" ON "user_group_joining" ("userGroupId") `,
await queryRunner.query(`ALTER TABLE "user_group_joining" DROP CONSTRAINT "FK_67dc758bc0566985d1b3d399865"`); );
await queryRunner.query(`ALTER TABLE "user_group_joining" DROP CONSTRAINT "FK_f3a1b4bd0c7cabba958a0c0b231"`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "user_group" DROP CONSTRAINT "FK_3d6b372788ab01be58853003c93"`); `ALTER TABLE "messaging_message" ADD "groupId" character varying(32)`,
await queryRunner.query(`ALTER TABLE "messaging_message" DROP CONSTRAINT "FK_2c4be03b446884f9e9c502135be"`); );
await queryRunner.query(`DROP INDEX "IDX_2c4be03b446884f9e9c502135b"`); await queryRunner.query(
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."recipientId" IS ''`); `ALTER TABLE "messaging_message" ADD "reads" character varying(32) array NOT NULL DEFAULT '{}'::varchar[]`,
await queryRunner.query(`ALTER TABLE "messaging_message" ALTER COLUMN "recipientId" SET NOT NULL`); );
await queryRunner.query(`ALTER TABLE "messaging_message" DROP COLUMN "reads"`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "messaging_message" DROP COLUMN "groupId"`); `ALTER TABLE "messaging_message" ALTER COLUMN "recipientId" DROP NOT NULL`,
await queryRunner.query(`DROP INDEX "IDX_67dc758bc0566985d1b3d39986"`); );
await queryRunner.query(`DROP INDEX "IDX_f3a1b4bd0c7cabba958a0c0b23"`); await queryRunner.query(
await queryRunner.query(`DROP TABLE "user_group_joining"`); `COMMENT ON COLUMN "messaging_message"."recipientId" IS 'The recipient user ID.'`,
await queryRunner.query(`DROP INDEX "IDX_3d6b372788ab01be58853003c9"`); );
await queryRunner.query(`DROP INDEX "IDX_20e30aa35180e317e133d75316"`); await queryRunner.query(
await queryRunner.query(`DROP TABLE "user_group"`); `CREATE INDEX "IDX_2c4be03b446884f9e9c502135b" ON "messaging_message" ("groupId") `,
} );
await queryRunner.query(
`ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_2c4be03b446884f9e9c502135be" FOREIGN KEY ("groupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
);
await queryRunner.query(
`ALTER TABLE "user_group" ADD CONSTRAINT "FK_3d6b372788ab01be58853003c93" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
);
await queryRunner.query(
`ALTER TABLE "user_group_joining" ADD CONSTRAINT "FK_f3a1b4bd0c7cabba958a0c0b231" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
);
await queryRunner.query(
`ALTER TABLE "user_group_joining" ADD CONSTRAINT "FK_67dc758bc0566985d1b3d399865" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_group_joining" DROP CONSTRAINT "FK_67dc758bc0566985d1b3d399865"`,
);
await queryRunner.query(
`ALTER TABLE "user_group_joining" DROP CONSTRAINT "FK_f3a1b4bd0c7cabba958a0c0b231"`,
);
await queryRunner.query(
`ALTER TABLE "user_group" DROP CONSTRAINT "FK_3d6b372788ab01be58853003c93"`,
);
await queryRunner.query(
`ALTER TABLE "messaging_message" DROP CONSTRAINT "FK_2c4be03b446884f9e9c502135be"`,
);
await queryRunner.query(`DROP INDEX "IDX_2c4be03b446884f9e9c502135b"`);
await queryRunner.query(
`COMMENT ON COLUMN "messaging_message"."recipientId" IS ''`,
);
await queryRunner.query(
`ALTER TABLE "messaging_message" ALTER COLUMN "recipientId" SET NOT NULL`,
);
await queryRunner.query(
`ALTER TABLE "messaging_message" DROP COLUMN "reads"`,
);
await queryRunner.query(
`ALTER TABLE "messaging_message" DROP COLUMN "groupId"`,
);
await queryRunner.query(`DROP INDEX "IDX_67dc758bc0566985d1b3d39986"`);
await queryRunner.query(`DROP INDEX "IDX_f3a1b4bd0c7cabba958a0c0b23"`);
await queryRunner.query(`DROP TABLE "user_group_joining"`);
await queryRunner.query(`DROP INDEX "IDX_3d6b372788ab01be58853003c9"`);
await queryRunner.query(`DROP INDEX "IDX_20e30aa35180e317e133d75316"`);
await queryRunner.query(`DROP TABLE "user_group"`);
}
} }

View File

@ -1,22 +1,38 @@
export class UserGroupInvite1558257926829 { export class UserGroupInvite1558257926829 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`CREATE TABLE "user_group_invite" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_3893884af0d3a5f4d01e7921a97" PRIMARY KEY ("id"))`); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_1039988afa3bf991185b277fe0" ON "user_group_invite" ("userId") `); `CREATE TABLE "user_group_invite" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_3893884af0d3a5f4d01e7921a97" PRIMARY KEY ("id"))`,
await queryRunner.query(`CREATE INDEX "IDX_e10924607d058004304611a436" ON "user_group_invite" ("userGroupId") `); );
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_78787741f9010886796f2320a4" ON "user_group_invite" ("userId", "userGroupId") `); await queryRunner.query(
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_d9ecaed8c6dc43f3592c229282" ON "user_group_joining" ("userId", "userGroupId") `); `CREATE INDEX "IDX_1039988afa3bf991185b277fe0" ON "user_group_invite" ("userId") `,
await queryRunner.query(`ALTER TABLE "user_group_invite" ADD CONSTRAINT "FK_1039988afa3bf991185b277fe03" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); );
await queryRunner.query(`ALTER TABLE "user_group_invite" ADD CONSTRAINT "FK_e10924607d058004304611a436a" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); await queryRunner.query(
} `CREATE INDEX "IDX_e10924607d058004304611a436" ON "user_group_invite" ("userGroupId") `,
async down(queryRunner) { );
await queryRunner.query(`ALTER TABLE "user_group_invite" DROP CONSTRAINT "FK_e10924607d058004304611a436a"`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "user_group_invite" DROP CONSTRAINT "FK_1039988afa3bf991185b277fe03"`); `CREATE UNIQUE INDEX "IDX_78787741f9010886796f2320a4" ON "user_group_invite" ("userId", "userGroupId") `,
await queryRunner.query(`DROP INDEX "IDX_d9ecaed8c6dc43f3592c229282"`); );
await queryRunner.query(`DROP INDEX "IDX_78787741f9010886796f2320a4"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_e10924607d058004304611a436"`); `CREATE UNIQUE INDEX "IDX_d9ecaed8c6dc43f3592c229282" ON "user_group_joining" ("userId", "userGroupId") `,
await queryRunner.query(`DROP INDEX "IDX_1039988afa3bf991185b277fe0"`); );
await queryRunner.query(`DROP TABLE "user_group_invite"`); await queryRunner.query(
} `ALTER TABLE "user_group_invite" ADD CONSTRAINT "FK_1039988afa3bf991185b277fe03" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
);
await queryRunner.query(
`ALTER TABLE "user_group_invite" ADD CONSTRAINT "FK_e10924607d058004304611a436a" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_group_invite" DROP CONSTRAINT "FK_e10924607d058004304611a436a"`,
);
await queryRunner.query(
`ALTER TABLE "user_group_invite" DROP CONSTRAINT "FK_1039988afa3bf991185b277fe03"`,
);
await queryRunner.query(`DROP INDEX "IDX_d9ecaed8c6dc43f3592c229282"`);
await queryRunner.query(`DROP INDEX "IDX_78787741f9010886796f2320a4"`);
await queryRunner.query(`DROP INDEX "IDX_e10924607d058004304611a436"`);
await queryRunner.query(`DROP INDEX "IDX_1039988afa3bf991185b277fe0"`);
await queryRunner.query(`DROP TABLE "user_group_invite"`);
}
} }

View File

@ -1,10 +1,10 @@
export class UserListJoining1558266512381 { export class UserListJoining1558266512381 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_90f7da835e4c10aca6853621e1" ON "user_list_joining" ("userId", "userListId") `); await queryRunner.query(
} `CREATE UNIQUE INDEX "IDX_90f7da835e4c10aca6853621e1" ON "user_list_joining" ("userId", "userListId") `,
async down(queryRunner) { );
await queryRunner.query(`DROP INDEX "IDX_90f7da835e4c10aca6853621e1"`); }
} async down(queryRunner) {
await queryRunner.query(`DROP INDEX "IDX_90f7da835e4c10aca6853621e1"`);
}
} }

View File

@ -1,26 +1,48 @@
export class webauthn1561706992953 { export class webauthn1561706992953 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`CREATE TABLE "attestation_challenge" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "challenge" character varying(64) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "registrationChallenge" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_d0ba6786e093f1bcb497572a6b5" PRIMARY KEY ("id", "userId"))`); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_f1a461a618fa1755692d0e0d59" ON "attestation_challenge" ("userId") `); `CREATE TABLE "attestation_challenge" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "challenge" character varying(64) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "registrationChallenge" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_d0ba6786e093f1bcb497572a6b5" PRIMARY KEY ("id", "userId"))`,
await queryRunner.query(`CREATE INDEX "IDX_47efb914aed1f72dd39a306c7b" ON "attestation_challenge" ("challenge") `); );
await queryRunner.query(`CREATE TABLE "user_security_key" ("id" character varying NOT NULL, "userId" character varying(32) NOT NULL, "publicKey" character varying NOT NULL, "lastUsed" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(30) NOT NULL, CONSTRAINT "PK_3e508571121ab39c5f85d10c166" PRIMARY KEY ("id"))`); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_ff9ca3b5f3ee3d0681367a9b44" ON "user_security_key" ("userId") `); `CREATE INDEX "IDX_f1a461a618fa1755692d0e0d59" ON "attestation_challenge" ("userId") `,
await queryRunner.query(`CREATE INDEX "IDX_0d7718e562dcedd0aa5cf2c9f7" ON "user_security_key" ("publicKey") `); );
await queryRunner.query(`ALTER TABLE "user_profile" ADD "securityKeysAvailable" boolean NOT NULL DEFAULT false`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "attestation_challenge" ADD CONSTRAINT "FK_f1a461a618fa1755692d0e0d592" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); `CREATE INDEX "IDX_47efb914aed1f72dd39a306c7b" ON "attestation_challenge" ("challenge") `,
await queryRunner.query(`ALTER TABLE "user_security_key" ADD CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); );
} await queryRunner.query(
async down(queryRunner) { `CREATE TABLE "user_security_key" ("id" character varying NOT NULL, "userId" character varying(32) NOT NULL, "publicKey" character varying NOT NULL, "lastUsed" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(30) NOT NULL, CONSTRAINT "PK_3e508571121ab39c5f85d10c166" PRIMARY KEY ("id"))`,
await queryRunner.query(`ALTER TABLE "user_security_key" DROP CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447"`); );
await queryRunner.query(`ALTER TABLE "attestation_challenge" DROP CONSTRAINT "FK_f1a461a618fa1755692d0e0d592"`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "securityKeysAvailable"`); `CREATE INDEX "IDX_ff9ca3b5f3ee3d0681367a9b44" ON "user_security_key" ("userId") `,
await queryRunner.query(`DROP INDEX "IDX_0d7718e562dcedd0aa5cf2c9f7"`); );
await queryRunner.query(`DROP INDEX "IDX_ff9ca3b5f3ee3d0681367a9b44"`); await queryRunner.query(
await queryRunner.query(`DROP TABLE "user_security_key"`); `CREATE INDEX "IDX_0d7718e562dcedd0aa5cf2c9f7" ON "user_security_key" ("publicKey") `,
await queryRunner.query(`DROP INDEX "IDX_47efb914aed1f72dd39a306c7b"`); );
await queryRunner.query(`DROP INDEX "IDX_f1a461a618fa1755692d0e0d59"`); await queryRunner.query(
await queryRunner.query(`DROP TABLE "attestation_challenge"`); `ALTER TABLE "user_profile" ADD "securityKeysAvailable" boolean NOT NULL DEFAULT false`,
} );
await queryRunner.query(
`ALTER TABLE "attestation_challenge" ADD CONSTRAINT "FK_f1a461a618fa1755692d0e0d592" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
);
await queryRunner.query(
`ALTER TABLE "user_security_key" ADD CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_security_key" DROP CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447"`,
);
await queryRunner.query(
`ALTER TABLE "attestation_challenge" DROP CONSTRAINT "FK_f1a461a618fa1755692d0e0d592"`,
);
await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "securityKeysAvailable"`,
);
await queryRunner.query(`DROP INDEX "IDX_0d7718e562dcedd0aa5cf2c9f7"`);
await queryRunner.query(`DROP INDEX "IDX_ff9ca3b5f3ee3d0681367a9b44"`);
await queryRunner.query(`DROP TABLE "user_security_key"`);
await queryRunner.query(`DROP INDEX "IDX_47efb914aed1f72dd39a306c7b"`);
await queryRunner.query(`DROP INDEX "IDX_f1a461a618fa1755692d0e0d59"`);
await queryRunner.query(`DROP TABLE "attestation_challenge"`);
}
} }

View File

@ -1,198 +1,376 @@
export class ChartIndexes1561873850023 { export class ChartIndexes1561873850023 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`CREATE INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc" ON "__chart__active_users" ("date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_15e91a03aeeac9dbccdf43fc06" ON "__chart__active_users" ("span") `); `CREATE INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc" ON "__chart__active_users" ("date") `,
await queryRunner.query(`CREATE INDEX "IDX_00ed5f86db1f7efafb1978bf21" ON "__chart__active_users" ("group") `); );
await queryRunner.query(`CREATE INDEX "IDX_20f57cc8f142c131340ee16742" ON "__chart__active_users" ("span", "date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_9a3ed15a30ab7e3a37702e6e08" ON "__chart__active_users" ("date", "group") `); `CREATE INDEX "IDX_15e91a03aeeac9dbccdf43fc06" ON "__chart__active_users" ("span") `,
await queryRunner.query(`CREATE INDEX "IDX_c26e2c1cbb6e911e0554b27416" ON "__chart__active_users" ("span", "date", "group") `); );
await queryRunner.query(`CREATE INDEX "IDX_13565815f618a1ff53886c5b28" ON "__chart__drive" ("date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_3fa0d0f17ca72e3dc80999a032" ON "__chart__drive" ("span") `); `CREATE INDEX "IDX_00ed5f86db1f7efafb1978bf21" ON "__chart__active_users" ("group") `,
await queryRunner.query(`CREATE INDEX "IDX_7a170f67425e62a8fabb76c872" ON "__chart__drive" ("group") `); );
await queryRunner.query(`CREATE INDEX "IDX_6e1df243476e20cbf86572ecc0" ON "__chart__drive" ("span", "date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_3313d7288855ec105b5bbf6c21" ON "__chart__drive" ("date", "group") `); `CREATE INDEX "IDX_20f57cc8f142c131340ee16742" ON "__chart__active_users" ("span", "date") `,
await queryRunner.query(`CREATE INDEX "IDX_06690fc959f1c9fdaf21928222" ON "__chart__drive" ("span", "date", "group") `); );
await queryRunner.query(`CREATE INDEX "IDX_36cb699c49580d4e6c2e6159f9" ON "__chart__federation" ("date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_e447064455928cf627590ef527" ON "__chart__federation" ("span") `); `CREATE INDEX "IDX_9a3ed15a30ab7e3a37702e6e08" ON "__chart__active_users" ("date", "group") `,
await queryRunner.query(`CREATE INDEX "IDX_76e87c7bfc5d925fcbba405d84" ON "__chart__federation" ("group") `); );
await queryRunner.query(`CREATE INDEX "IDX_2d416e6af791a82e338c79d480" ON "__chart__federation" ("span", "date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_dd907becf76104e4b656659e6b" ON "__chart__federation" ("date", "group") `); `CREATE INDEX "IDX_c26e2c1cbb6e911e0554b27416" ON "__chart__active_users" ("span", "date", "group") `,
await queryRunner.query(`CREATE INDEX "IDX_e9cd07672b37d8966cf3709283" ON "__chart__federation" ("span", "date", "group") `); );
await queryRunner.query(`CREATE INDEX "IDX_07747a1038c05f532a718fe1de" ON "__chart__hashtag" ("date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_fcc181fb8283009c61cc4083ef" ON "__chart__hashtag" ("span") `); `CREATE INDEX "IDX_13565815f618a1ff53886c5b28" ON "__chart__drive" ("date") `,
await queryRunner.query(`CREATE INDEX "IDX_99a7d2faaef84a6f728d714ad6" ON "__chart__hashtag" ("group") `); );
await queryRunner.query(`CREATE INDEX "IDX_49975586f50ed7b800fdd88fbd" ON "__chart__hashtag" ("span", "date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_25a97c02003338124b2b75fdbc" ON "__chart__hashtag" ("date", "group") `); `CREATE INDEX "IDX_3fa0d0f17ca72e3dc80999a032" ON "__chart__drive" ("span") `,
await queryRunner.query(`CREATE INDEX "IDX_6d6f156ceefc6bc5f273a0e370" ON "__chart__hashtag" ("span", "date", "group") `); );
await queryRunner.query(`CREATE INDEX "IDX_6b8f34a1a64b06014b6fb66824" ON "__chart__instance" ("date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_c12f0af4a66cdd30c2287ce8aa" ON "__chart__instance" ("span") `); `CREATE INDEX "IDX_7a170f67425e62a8fabb76c872" ON "__chart__drive" ("group") `,
await queryRunner.query(`CREATE INDEX "IDX_da8a46ba84ca1d8bb5a29bfb63" ON "__chart__instance" ("group") `); );
await queryRunner.query(`CREATE INDEX "IDX_d0a4f79af5a97b08f37b547197" ON "__chart__instance" ("span", "date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_39ee857ab2f23493037c6b6631" ON "__chart__instance" ("date", "group") `); `CREATE INDEX "IDX_6e1df243476e20cbf86572ecc0" ON "__chart__drive" ("span", "date") `,
await queryRunner.query(`CREATE INDEX "IDX_f5448d9633cff74208d850aabe" ON "__chart__instance" ("span", "date", "group") `); );
await queryRunner.query(`CREATE INDEX "IDX_a1efd3e0048a5f2793a47360dc" ON "__chart__network" ("date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_f8dd01baeded2ffa833e0a610a" ON "__chart__network" ("span") `); `CREATE INDEX "IDX_3313d7288855ec105b5bbf6c21" ON "__chart__drive" ("date", "group") `,
await queryRunner.query(`CREATE INDEX "IDX_7b5da130992ec9df96712d4290" ON "__chart__network" ("group") `); );
await queryRunner.query(`CREATE INDEX "IDX_08fac0eb3b11f04c200c0b40dd" ON "__chart__network" ("span", "date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_0a905b992fecd2b5c3fb98759e" ON "__chart__network" ("date", "group") `); `CREATE INDEX "IDX_06690fc959f1c9fdaf21928222" ON "__chart__drive" ("span", "date", "group") `,
await queryRunner.query(`CREATE INDEX "IDX_9ff6944f01acb756fdc92d7563" ON "__chart__network" ("span", "date", "group") `); );
await queryRunner.query(`CREATE INDEX "IDX_42eb716a37d381cdf566192b2b" ON "__chart__notes" ("date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_e69096589f11e3baa98ddd64d0" ON "__chart__notes" ("span") `); `CREATE INDEX "IDX_36cb699c49580d4e6c2e6159f9" ON "__chart__federation" ("date") `,
await queryRunner.query(`CREATE INDEX "IDX_7036f2957151588b813185c794" ON "__chart__notes" ("group") `); );
await queryRunner.query(`CREATE INDEX "IDX_0c9a159c5082cbeef3ca6706b5" ON "__chart__notes" ("span", "date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_f09d543e3acb16c5976bdb31fa" ON "__chart__notes" ("date", "group") `); `CREATE INDEX "IDX_e447064455928cf627590ef527" ON "__chart__federation" ("span") `,
await queryRunner.query(`CREATE INDEX "IDX_924fc196c80ca24bae01dd37e4" ON "__chart__notes" ("span", "date", "group") `); );
await queryRunner.query(`CREATE INDEX "IDX_5f86db6492274e07c1a3cdf286" ON "__chart__per_user_drive" ("date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_328f259961e60c4fa0bfcf55ca" ON "__chart__per_user_drive" ("span") `); `CREATE INDEX "IDX_76e87c7bfc5d925fcbba405d84" ON "__chart__federation" ("group") `,
await queryRunner.query(`CREATE INDEX "IDX_e496ca8096d28f6b9b509264dc" ON "__chart__per_user_drive" ("group") `); );
await queryRunner.query(`CREATE INDEX "IDX_42ea9381f0fda8dfe0fa1c8b53" ON "__chart__per_user_drive" ("span", "date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_30bf67687f483ace115c5ca642" ON "__chart__per_user_drive" ("date", "group") `); `CREATE INDEX "IDX_2d416e6af791a82e338c79d480" ON "__chart__federation" ("span", "date") `,
await queryRunner.query(`CREATE INDEX "IDX_f2aeafde2ae6fbad38e857631b" ON "__chart__per_user_drive" ("span", "date", "group") `); );
await queryRunner.query(`CREATE INDEX "IDX_7af07790712aa3438ff6773f3b" ON "__chart__per_user_following" ("date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_f92dd6d03f8d994f29987f6214" ON "__chart__per_user_following" ("span") `); `CREATE INDEX "IDX_dd907becf76104e4b656659e6b" ON "__chart__federation" ("date", "group") `,
await queryRunner.query(`CREATE INDEX "IDX_4b3593098b6edc9c5afe36b18b" ON "__chart__per_user_following" ("group") `); );
await queryRunner.query(`CREATE INDEX "IDX_57b5458d0d3d6d1e7f13d4e57f" ON "__chart__per_user_following" ("span", "date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_b77d4dd9562c3a899d9a286fcd" ON "__chart__per_user_following" ("date", "group") `); `CREATE INDEX "IDX_e9cd07672b37d8966cf3709283" ON "__chart__federation" ("span", "date", "group") `,
await queryRunner.query(`CREATE INDEX "IDX_4db3b84c7be0d3464714f3e0b1" ON "__chart__per_user_following" ("span", "date", "group") `); );
await queryRunner.query(`CREATE INDEX "IDX_84234bd1abb873f07329681c83" ON "__chart__per_user_notes" ("date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_8d2cbbc8114d90d19b44d626b6" ON "__chart__per_user_notes" ("span") `); `CREATE INDEX "IDX_07747a1038c05f532a718fe1de" ON "__chart__hashtag" ("date") `,
await queryRunner.query(`CREATE INDEX "IDX_55bf20f366979f2436de99206b" ON "__chart__per_user_notes" ("group") `); );
await queryRunner.query(`CREATE INDEX "IDX_046feeb12e9ef5f783f409866a" ON "__chart__per_user_notes" ("span", "date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_5048e9daccbbbc6d567bb142d3" ON "__chart__per_user_notes" ("date", "group") `); `CREATE INDEX "IDX_fcc181fb8283009c61cc4083ef" ON "__chart__hashtag" ("span") `,
await queryRunner.query(`CREATE INDEX "IDX_f68a5ab958f9f5fa17a32ac23b" ON "__chart__per_user_notes" ("span", "date", "group") `); );
await queryRunner.query(`CREATE INDEX "IDX_f7bf4c62059764c2c2bb40fdab" ON "__chart__per_user_reaction" ("date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_65633a106bce43fc7c5c30a5c7" ON "__chart__per_user_reaction" ("span") `); `CREATE INDEX "IDX_99a7d2faaef84a6f728d714ad6" ON "__chart__hashtag" ("group") `,
await queryRunner.query(`CREATE INDEX "IDX_8cf3156fd7a6b15c43459c6e3b" ON "__chart__per_user_reaction" ("group") `); );
await queryRunner.query(`CREATE INDEX "IDX_edeb73c09c3143a81bcb34d569" ON "__chart__per_user_reaction" ("span", "date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_229a41ad465f9205f1f5703291" ON "__chart__per_user_reaction" ("date", "group") `); `CREATE INDEX "IDX_49975586f50ed7b800fdd88fbd" ON "__chart__hashtag" ("span", "date") `,
await queryRunner.query(`CREATE INDEX "IDX_e316f01a6d24eb31db27f88262" ON "__chart__per_user_reaction" ("span", "date", "group") `); );
await queryRunner.query(`CREATE INDEX "IDX_0c641990ecf47d2545df4edb75" ON "__chart__test_grouped" ("date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_2be7ec6cebddc14dc11e206686" ON "__chart__test_grouped" ("span") `); `CREATE INDEX "IDX_25a97c02003338124b2b75fdbc" ON "__chart__hashtag" ("date", "group") `,
await queryRunner.query(`CREATE INDEX "IDX_234dff3c0b56a6150b95431ab9" ON "__chart__test_grouped" ("group") `); );
await queryRunner.query(`CREATE INDEX "IDX_a5133470f4825902e170328ca5" ON "__chart__test_grouped" ("span", "date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_b14489029e4b3aaf4bba5fb524" ON "__chart__test_grouped" ("date", "group") `); `CREATE INDEX "IDX_6d6f156ceefc6bc5f273a0e370" ON "__chart__hashtag" ("span", "date", "group") `,
await queryRunner.query(`CREATE INDEX "IDX_84e661abb7bd1e51b690d4b017" ON "__chart__test_grouped" ("span", "date", "group") `); );
await queryRunner.query(`CREATE INDEX "IDX_437bab3c6061d90f6bb65fd2cc" ON "__chart__test_unique" ("date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_5c73bf61da4f6e6f15bae88ed1" ON "__chart__test_unique" ("span") `); `CREATE INDEX "IDX_6b8f34a1a64b06014b6fb66824" ON "__chart__instance" ("date") `,
await queryRunner.query(`CREATE INDEX "IDX_bbfa573a8181018851ed0b6357" ON "__chart__test_unique" ("group") `); );
await queryRunner.query(`CREATE INDEX "IDX_d70c86baedc68326be11f9c0ce" ON "__chart__test_unique" ("span", "date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_a0cd75442dd10d0643a17c4a49" ON "__chart__test_unique" ("date", "group") `); `CREATE INDEX "IDX_c12f0af4a66cdd30c2287ce8aa" ON "__chart__instance" ("span") `,
await queryRunner.query(`CREATE INDEX "IDX_66e1e1ecd2f29e57778af35b59" ON "__chart__test_unique" ("span", "date", "group") `); );
await queryRunner.query(`CREATE INDEX "IDX_b070a906db04b44c67c6c2144d" ON "__chart__test" ("date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_92255988735563f0fe4aba1f05" ON "__chart__test" ("span") `); `CREATE INDEX "IDX_da8a46ba84ca1d8bb5a29bfb63" ON "__chart__instance" ("group") `,
await queryRunner.query(`CREATE INDEX "IDX_d41cce6aee1a50bfc062038f9b" ON "__chart__test" ("group") `); );
await queryRunner.query(`CREATE INDEX "IDX_c5870993e25c3d5771f91f5003" ON "__chart__test" ("span", "date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_a319e5dbf47e8a17497623beae" ON "__chart__test" ("date", "group") `); `CREATE INDEX "IDX_d0a4f79af5a97b08f37b547197" ON "__chart__instance" ("span", "date") `,
await queryRunner.query(`CREATE INDEX "IDX_f170de677ea75ad4533de2723e" ON "__chart__test" ("span", "date", "group") `); );
await queryRunner.query(`CREATE INDEX "IDX_845254b3eaf708ae8a6cac3026" ON "__chart__users" ("date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_7c184198ecf66a8d3ecb253ab3" ON "__chart__users" ("span") `); `CREATE INDEX "IDX_39ee857ab2f23493037c6b6631" ON "__chart__instance" ("date", "group") `,
await queryRunner.query(`CREATE INDEX "IDX_ed9b95919c672a13008e9487ee" ON "__chart__users" ("group") `); );
await queryRunner.query(`CREATE INDEX "IDX_f091abb24193d50c653c6b77fc" ON "__chart__users" ("span", "date") `); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_337e9599f278bd7537fe30876f" ON "__chart__users" ("date", "group") `); `CREATE INDEX "IDX_f5448d9633cff74208d850aabe" ON "__chart__instance" ("span", "date", "group") `,
await queryRunner.query(`CREATE INDEX "IDX_a770a57c70e668cc61590c9161" ON "__chart__users" ("span", "date", "group") `); );
} await queryRunner.query(
async down(queryRunner) { `CREATE INDEX "IDX_a1efd3e0048a5f2793a47360dc" ON "__chart__network" ("date") `,
await queryRunner.query(`DROP INDEX "IDX_a770a57c70e668cc61590c9161"`); );
await queryRunner.query(`DROP INDEX "IDX_337e9599f278bd7537fe30876f"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_f091abb24193d50c653c6b77fc"`); `CREATE INDEX "IDX_f8dd01baeded2ffa833e0a610a" ON "__chart__network" ("span") `,
await queryRunner.query(`DROP INDEX "IDX_ed9b95919c672a13008e9487ee"`); );
await queryRunner.query(`DROP INDEX "IDX_7c184198ecf66a8d3ecb253ab3"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_845254b3eaf708ae8a6cac3026"`); `CREATE INDEX "IDX_7b5da130992ec9df96712d4290" ON "__chart__network" ("group") `,
await queryRunner.query(`DROP INDEX "IDX_f170de677ea75ad4533de2723e"`); );
await queryRunner.query(`DROP INDEX "IDX_a319e5dbf47e8a17497623beae"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_c5870993e25c3d5771f91f5003"`); `CREATE INDEX "IDX_08fac0eb3b11f04c200c0b40dd" ON "__chart__network" ("span", "date") `,
await queryRunner.query(`DROP INDEX "IDX_d41cce6aee1a50bfc062038f9b"`); );
await queryRunner.query(`DROP INDEX "IDX_92255988735563f0fe4aba1f05"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_b070a906db04b44c67c6c2144d"`); `CREATE INDEX "IDX_0a905b992fecd2b5c3fb98759e" ON "__chart__network" ("date", "group") `,
await queryRunner.query(`DROP INDEX "IDX_66e1e1ecd2f29e57778af35b59"`); );
await queryRunner.query(`DROP INDEX "IDX_a0cd75442dd10d0643a17c4a49"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_d70c86baedc68326be11f9c0ce"`); `CREATE INDEX "IDX_9ff6944f01acb756fdc92d7563" ON "__chart__network" ("span", "date", "group") `,
await queryRunner.query(`DROP INDEX "IDX_bbfa573a8181018851ed0b6357"`); );
await queryRunner.query(`DROP INDEX "IDX_5c73bf61da4f6e6f15bae88ed1"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_437bab3c6061d90f6bb65fd2cc"`); `CREATE INDEX "IDX_42eb716a37d381cdf566192b2b" ON "__chart__notes" ("date") `,
await queryRunner.query(`DROP INDEX "IDX_84e661abb7bd1e51b690d4b017"`); );
await queryRunner.query(`DROP INDEX "IDX_b14489029e4b3aaf4bba5fb524"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_a5133470f4825902e170328ca5"`); `CREATE INDEX "IDX_e69096589f11e3baa98ddd64d0" ON "__chart__notes" ("span") `,
await queryRunner.query(`DROP INDEX "IDX_234dff3c0b56a6150b95431ab9"`); );
await queryRunner.query(`DROP INDEX "IDX_2be7ec6cebddc14dc11e206686"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_0c641990ecf47d2545df4edb75"`); `CREATE INDEX "IDX_7036f2957151588b813185c794" ON "__chart__notes" ("group") `,
await queryRunner.query(`DROP INDEX "IDX_e316f01a6d24eb31db27f88262"`); );
await queryRunner.query(`DROP INDEX "IDX_229a41ad465f9205f1f5703291"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_edeb73c09c3143a81bcb34d569"`); `CREATE INDEX "IDX_0c9a159c5082cbeef3ca6706b5" ON "__chart__notes" ("span", "date") `,
await queryRunner.query(`DROP INDEX "IDX_8cf3156fd7a6b15c43459c6e3b"`); );
await queryRunner.query(`DROP INDEX "IDX_65633a106bce43fc7c5c30a5c7"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_f7bf4c62059764c2c2bb40fdab"`); `CREATE INDEX "IDX_f09d543e3acb16c5976bdb31fa" ON "__chart__notes" ("date", "group") `,
await queryRunner.query(`DROP INDEX "IDX_f68a5ab958f9f5fa17a32ac23b"`); );
await queryRunner.query(`DROP INDEX "IDX_5048e9daccbbbc6d567bb142d3"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_046feeb12e9ef5f783f409866a"`); `CREATE INDEX "IDX_924fc196c80ca24bae01dd37e4" ON "__chart__notes" ("span", "date", "group") `,
await queryRunner.query(`DROP INDEX "IDX_55bf20f366979f2436de99206b"`); );
await queryRunner.query(`DROP INDEX "IDX_8d2cbbc8114d90d19b44d626b6"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_84234bd1abb873f07329681c83"`); `CREATE INDEX "IDX_5f86db6492274e07c1a3cdf286" ON "__chart__per_user_drive" ("date") `,
await queryRunner.query(`DROP INDEX "IDX_4db3b84c7be0d3464714f3e0b1"`); );
await queryRunner.query(`DROP INDEX "IDX_b77d4dd9562c3a899d9a286fcd"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_57b5458d0d3d6d1e7f13d4e57f"`); `CREATE INDEX "IDX_328f259961e60c4fa0bfcf55ca" ON "__chart__per_user_drive" ("span") `,
await queryRunner.query(`DROP INDEX "IDX_4b3593098b6edc9c5afe36b18b"`); );
await queryRunner.query(`DROP INDEX "IDX_f92dd6d03f8d994f29987f6214"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_7af07790712aa3438ff6773f3b"`); `CREATE INDEX "IDX_e496ca8096d28f6b9b509264dc" ON "__chart__per_user_drive" ("group") `,
await queryRunner.query(`DROP INDEX "IDX_f2aeafde2ae6fbad38e857631b"`); );
await queryRunner.query(`DROP INDEX "IDX_30bf67687f483ace115c5ca642"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_42ea9381f0fda8dfe0fa1c8b53"`); `CREATE INDEX "IDX_42ea9381f0fda8dfe0fa1c8b53" ON "__chart__per_user_drive" ("span", "date") `,
await queryRunner.query(`DROP INDEX "IDX_e496ca8096d28f6b9b509264dc"`); );
await queryRunner.query(`DROP INDEX "IDX_328f259961e60c4fa0bfcf55ca"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_5f86db6492274e07c1a3cdf286"`); `CREATE INDEX "IDX_30bf67687f483ace115c5ca642" ON "__chart__per_user_drive" ("date", "group") `,
await queryRunner.query(`DROP INDEX "IDX_924fc196c80ca24bae01dd37e4"`); );
await queryRunner.query(`DROP INDEX "IDX_f09d543e3acb16c5976bdb31fa"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_0c9a159c5082cbeef3ca6706b5"`); `CREATE INDEX "IDX_f2aeafde2ae6fbad38e857631b" ON "__chart__per_user_drive" ("span", "date", "group") `,
await queryRunner.query(`DROP INDEX "IDX_7036f2957151588b813185c794"`); );
await queryRunner.query(`DROP INDEX "IDX_e69096589f11e3baa98ddd64d0"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_42eb716a37d381cdf566192b2b"`); `CREATE INDEX "IDX_7af07790712aa3438ff6773f3b" ON "__chart__per_user_following" ("date") `,
await queryRunner.query(`DROP INDEX "IDX_9ff6944f01acb756fdc92d7563"`); );
await queryRunner.query(`DROP INDEX "IDX_0a905b992fecd2b5c3fb98759e"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_08fac0eb3b11f04c200c0b40dd"`); `CREATE INDEX "IDX_f92dd6d03f8d994f29987f6214" ON "__chart__per_user_following" ("span") `,
await queryRunner.query(`DROP INDEX "IDX_7b5da130992ec9df96712d4290"`); );
await queryRunner.query(`DROP INDEX "IDX_f8dd01baeded2ffa833e0a610a"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_a1efd3e0048a5f2793a47360dc"`); `CREATE INDEX "IDX_4b3593098b6edc9c5afe36b18b" ON "__chart__per_user_following" ("group") `,
await queryRunner.query(`DROP INDEX "IDX_f5448d9633cff74208d850aabe"`); );
await queryRunner.query(`DROP INDEX "IDX_39ee857ab2f23493037c6b6631"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_d0a4f79af5a97b08f37b547197"`); `CREATE INDEX "IDX_57b5458d0d3d6d1e7f13d4e57f" ON "__chart__per_user_following" ("span", "date") `,
await queryRunner.query(`DROP INDEX "IDX_da8a46ba84ca1d8bb5a29bfb63"`); );
await queryRunner.query(`DROP INDEX "IDX_c12f0af4a66cdd30c2287ce8aa"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_6b8f34a1a64b06014b6fb66824"`); `CREATE INDEX "IDX_b77d4dd9562c3a899d9a286fcd" ON "__chart__per_user_following" ("date", "group") `,
await queryRunner.query(`DROP INDEX "IDX_6d6f156ceefc6bc5f273a0e370"`); );
await queryRunner.query(`DROP INDEX "IDX_25a97c02003338124b2b75fdbc"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_49975586f50ed7b800fdd88fbd"`); `CREATE INDEX "IDX_4db3b84c7be0d3464714f3e0b1" ON "__chart__per_user_following" ("span", "date", "group") `,
await queryRunner.query(`DROP INDEX "IDX_99a7d2faaef84a6f728d714ad6"`); );
await queryRunner.query(`DROP INDEX "IDX_fcc181fb8283009c61cc4083ef"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_07747a1038c05f532a718fe1de"`); `CREATE INDEX "IDX_84234bd1abb873f07329681c83" ON "__chart__per_user_notes" ("date") `,
await queryRunner.query(`DROP INDEX "IDX_e9cd07672b37d8966cf3709283"`); );
await queryRunner.query(`DROP INDEX "IDX_dd907becf76104e4b656659e6b"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_2d416e6af791a82e338c79d480"`); `CREATE INDEX "IDX_8d2cbbc8114d90d19b44d626b6" ON "__chart__per_user_notes" ("span") `,
await queryRunner.query(`DROP INDEX "IDX_76e87c7bfc5d925fcbba405d84"`); );
await queryRunner.query(`DROP INDEX "IDX_e447064455928cf627590ef527"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_36cb699c49580d4e6c2e6159f9"`); `CREATE INDEX "IDX_55bf20f366979f2436de99206b" ON "__chart__per_user_notes" ("group") `,
await queryRunner.query(`DROP INDEX "IDX_06690fc959f1c9fdaf21928222"`); );
await queryRunner.query(`DROP INDEX "IDX_3313d7288855ec105b5bbf6c21"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_6e1df243476e20cbf86572ecc0"`); `CREATE INDEX "IDX_046feeb12e9ef5f783f409866a" ON "__chart__per_user_notes" ("span", "date") `,
await queryRunner.query(`DROP INDEX "IDX_7a170f67425e62a8fabb76c872"`); );
await queryRunner.query(`DROP INDEX "IDX_3fa0d0f17ca72e3dc80999a032"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_13565815f618a1ff53886c5b28"`); `CREATE INDEX "IDX_5048e9daccbbbc6d567bb142d3" ON "__chart__per_user_notes" ("date", "group") `,
await queryRunner.query(`DROP INDEX "IDX_c26e2c1cbb6e911e0554b27416"`); );
await queryRunner.query(`DROP INDEX "IDX_9a3ed15a30ab7e3a37702e6e08"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_20f57cc8f142c131340ee16742"`); `CREATE INDEX "IDX_f68a5ab958f9f5fa17a32ac23b" ON "__chart__per_user_notes" ("span", "date", "group") `,
await queryRunner.query(`DROP INDEX "IDX_00ed5f86db1f7efafb1978bf21"`); );
await queryRunner.query(`DROP INDEX "IDX_15e91a03aeeac9dbccdf43fc06"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc"`); `CREATE INDEX "IDX_f7bf4c62059764c2c2bb40fdab" ON "__chart__per_user_reaction" ("date") `,
await queryRunner.query(`DROP INDEX "IDX_90148bbc2bf0854428786bfc15"`); );
await queryRunner.query(`DROP INDEX "IDX_88937d94d7443d9a99a76fa5c0"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_54ebcb6d27222913b908d56fd8"`); `CREATE INDEX "IDX_65633a106bce43fc7c5c30a5c7" ON "__chart__per_user_reaction" ("span") `,
await queryRunner.query(`DROP INDEX "IDX_796a8c03959361f97dc2be1d5c"`); );
await queryRunner.query(`DROP INDEX "IDX_25dfc71b0369b003a4cd434d0b"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_51c063b6a133a9cb87145450f5"`); `CREATE INDEX "IDX_8cf3156fd7a6b15c43459c6e3b" ON "__chart__per_user_reaction" ("group") `,
await queryRunner.query(`DROP INDEX "IDX_fa99d777623947a5b05f394cae"`); );
await queryRunner.query(`DROP INDEX "IDX_315c779174fe8247ab324f036e"`); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_c5d46cbfda48b1c33ed852e21b"`); `CREATE INDEX "IDX_edeb73c09c3143a81bcb34d569" ON "__chart__per_user_reaction" ("span", "date") `,
await queryRunner.query(`DROP INDEX "IDX_8cb40cfc8f3c28261e6f887b03"`); );
} await queryRunner.query(
`CREATE INDEX "IDX_229a41ad465f9205f1f5703291" ON "__chart__per_user_reaction" ("date", "group") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_e316f01a6d24eb31db27f88262" ON "__chart__per_user_reaction" ("span", "date", "group") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_0c641990ecf47d2545df4edb75" ON "__chart__test_grouped" ("date") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_2be7ec6cebddc14dc11e206686" ON "__chart__test_grouped" ("span") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_234dff3c0b56a6150b95431ab9" ON "__chart__test_grouped" ("group") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_a5133470f4825902e170328ca5" ON "__chart__test_grouped" ("span", "date") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_b14489029e4b3aaf4bba5fb524" ON "__chart__test_grouped" ("date", "group") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_84e661abb7bd1e51b690d4b017" ON "__chart__test_grouped" ("span", "date", "group") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_437bab3c6061d90f6bb65fd2cc" ON "__chart__test_unique" ("date") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_5c73bf61da4f6e6f15bae88ed1" ON "__chart__test_unique" ("span") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_bbfa573a8181018851ed0b6357" ON "__chart__test_unique" ("group") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_d70c86baedc68326be11f9c0ce" ON "__chart__test_unique" ("span", "date") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_a0cd75442dd10d0643a17c4a49" ON "__chart__test_unique" ("date", "group") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_66e1e1ecd2f29e57778af35b59" ON "__chart__test_unique" ("span", "date", "group") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_b070a906db04b44c67c6c2144d" ON "__chart__test" ("date") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_92255988735563f0fe4aba1f05" ON "__chart__test" ("span") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_d41cce6aee1a50bfc062038f9b" ON "__chart__test" ("group") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_c5870993e25c3d5771f91f5003" ON "__chart__test" ("span", "date") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_a319e5dbf47e8a17497623beae" ON "__chart__test" ("date", "group") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_f170de677ea75ad4533de2723e" ON "__chart__test" ("span", "date", "group") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_845254b3eaf708ae8a6cac3026" ON "__chart__users" ("date") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_7c184198ecf66a8d3ecb253ab3" ON "__chart__users" ("span") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_ed9b95919c672a13008e9487ee" ON "__chart__users" ("group") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_f091abb24193d50c653c6b77fc" ON "__chart__users" ("span", "date") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_337e9599f278bd7537fe30876f" ON "__chart__users" ("date", "group") `,
);
await queryRunner.query(
`CREATE INDEX "IDX_a770a57c70e668cc61590c9161" ON "__chart__users" ("span", "date", "group") `,
);
}
async down(queryRunner) {
await queryRunner.query(`DROP INDEX "IDX_a770a57c70e668cc61590c9161"`);
await queryRunner.query(`DROP INDEX "IDX_337e9599f278bd7537fe30876f"`);
await queryRunner.query(`DROP INDEX "IDX_f091abb24193d50c653c6b77fc"`);
await queryRunner.query(`DROP INDEX "IDX_ed9b95919c672a13008e9487ee"`);
await queryRunner.query(`DROP INDEX "IDX_7c184198ecf66a8d3ecb253ab3"`);
await queryRunner.query(`DROP INDEX "IDX_845254b3eaf708ae8a6cac3026"`);
await queryRunner.query(`DROP INDEX "IDX_f170de677ea75ad4533de2723e"`);
await queryRunner.query(`DROP INDEX "IDX_a319e5dbf47e8a17497623beae"`);
await queryRunner.query(`DROP INDEX "IDX_c5870993e25c3d5771f91f5003"`);
await queryRunner.query(`DROP INDEX "IDX_d41cce6aee1a50bfc062038f9b"`);
await queryRunner.query(`DROP INDEX "IDX_92255988735563f0fe4aba1f05"`);
await queryRunner.query(`DROP INDEX "IDX_b070a906db04b44c67c6c2144d"`);
await queryRunner.query(`DROP INDEX "IDX_66e1e1ecd2f29e57778af35b59"`);
await queryRunner.query(`DROP INDEX "IDX_a0cd75442dd10d0643a17c4a49"`);
await queryRunner.query(`DROP INDEX "IDX_d70c86baedc68326be11f9c0ce"`);
await queryRunner.query(`DROP INDEX "IDX_bbfa573a8181018851ed0b6357"`);
await queryRunner.query(`DROP INDEX "IDX_5c73bf61da4f6e6f15bae88ed1"`);
await queryRunner.query(`DROP INDEX "IDX_437bab3c6061d90f6bb65fd2cc"`);
await queryRunner.query(`DROP INDEX "IDX_84e661abb7bd1e51b690d4b017"`);
await queryRunner.query(`DROP INDEX "IDX_b14489029e4b3aaf4bba5fb524"`);
await queryRunner.query(`DROP INDEX "IDX_a5133470f4825902e170328ca5"`);
await queryRunner.query(`DROP INDEX "IDX_234dff3c0b56a6150b95431ab9"`);
await queryRunner.query(`DROP INDEX "IDX_2be7ec6cebddc14dc11e206686"`);
await queryRunner.query(`DROP INDEX "IDX_0c641990ecf47d2545df4edb75"`);
await queryRunner.query(`DROP INDEX "IDX_e316f01a6d24eb31db27f88262"`);
await queryRunner.query(`DROP INDEX "IDX_229a41ad465f9205f1f5703291"`);
await queryRunner.query(`DROP INDEX "IDX_edeb73c09c3143a81bcb34d569"`);
await queryRunner.query(`DROP INDEX "IDX_8cf3156fd7a6b15c43459c6e3b"`);
await queryRunner.query(`DROP INDEX "IDX_65633a106bce43fc7c5c30a5c7"`);
await queryRunner.query(`DROP INDEX "IDX_f7bf4c62059764c2c2bb40fdab"`);
await queryRunner.query(`DROP INDEX "IDX_f68a5ab958f9f5fa17a32ac23b"`);
await queryRunner.query(`DROP INDEX "IDX_5048e9daccbbbc6d567bb142d3"`);
await queryRunner.query(`DROP INDEX "IDX_046feeb12e9ef5f783f409866a"`);
await queryRunner.query(`DROP INDEX "IDX_55bf20f366979f2436de99206b"`);
await queryRunner.query(`DROP INDEX "IDX_8d2cbbc8114d90d19b44d626b6"`);
await queryRunner.query(`DROP INDEX "IDX_84234bd1abb873f07329681c83"`);
await queryRunner.query(`DROP INDEX "IDX_4db3b84c7be0d3464714f3e0b1"`);
await queryRunner.query(`DROP INDEX "IDX_b77d4dd9562c3a899d9a286fcd"`);
await queryRunner.query(`DROP INDEX "IDX_57b5458d0d3d6d1e7f13d4e57f"`);
await queryRunner.query(`DROP INDEX "IDX_4b3593098b6edc9c5afe36b18b"`);
await queryRunner.query(`DROP INDEX "IDX_f92dd6d03f8d994f29987f6214"`);
await queryRunner.query(`DROP INDEX "IDX_7af07790712aa3438ff6773f3b"`);
await queryRunner.query(`DROP INDEX "IDX_f2aeafde2ae6fbad38e857631b"`);
await queryRunner.query(`DROP INDEX "IDX_30bf67687f483ace115c5ca642"`);
await queryRunner.query(`DROP INDEX "IDX_42ea9381f0fda8dfe0fa1c8b53"`);
await queryRunner.query(`DROP INDEX "IDX_e496ca8096d28f6b9b509264dc"`);
await queryRunner.query(`DROP INDEX "IDX_328f259961e60c4fa0bfcf55ca"`);
await queryRunner.query(`DROP INDEX "IDX_5f86db6492274e07c1a3cdf286"`);
await queryRunner.query(`DROP INDEX "IDX_924fc196c80ca24bae01dd37e4"`);
await queryRunner.query(`DROP INDEX "IDX_f09d543e3acb16c5976bdb31fa"`);
await queryRunner.query(`DROP INDEX "IDX_0c9a159c5082cbeef3ca6706b5"`);
await queryRunner.query(`DROP INDEX "IDX_7036f2957151588b813185c794"`);
await queryRunner.query(`DROP INDEX "IDX_e69096589f11e3baa98ddd64d0"`);
await queryRunner.query(`DROP INDEX "IDX_42eb716a37d381cdf566192b2b"`);
await queryRunner.query(`DROP INDEX "IDX_9ff6944f01acb756fdc92d7563"`);
await queryRunner.query(`DROP INDEX "IDX_0a905b992fecd2b5c3fb98759e"`);
await queryRunner.query(`DROP INDEX "IDX_08fac0eb3b11f04c200c0b40dd"`);
await queryRunner.query(`DROP INDEX "IDX_7b5da130992ec9df96712d4290"`);
await queryRunner.query(`DROP INDEX "IDX_f8dd01baeded2ffa833e0a610a"`);
await queryRunner.query(`DROP INDEX "IDX_a1efd3e0048a5f2793a47360dc"`);
await queryRunner.query(`DROP INDEX "IDX_f5448d9633cff74208d850aabe"`);
await queryRunner.query(`DROP INDEX "IDX_39ee857ab2f23493037c6b6631"`);
await queryRunner.query(`DROP INDEX "IDX_d0a4f79af5a97b08f37b547197"`);
await queryRunner.query(`DROP INDEX "IDX_da8a46ba84ca1d8bb5a29bfb63"`);
await queryRunner.query(`DROP INDEX "IDX_c12f0af4a66cdd30c2287ce8aa"`);
await queryRunner.query(`DROP INDEX "IDX_6b8f34a1a64b06014b6fb66824"`);
await queryRunner.query(`DROP INDEX "IDX_6d6f156ceefc6bc5f273a0e370"`);
await queryRunner.query(`DROP INDEX "IDX_25a97c02003338124b2b75fdbc"`);
await queryRunner.query(`DROP INDEX "IDX_49975586f50ed7b800fdd88fbd"`);
await queryRunner.query(`DROP INDEX "IDX_99a7d2faaef84a6f728d714ad6"`);
await queryRunner.query(`DROP INDEX "IDX_fcc181fb8283009c61cc4083ef"`);
await queryRunner.query(`DROP INDEX "IDX_07747a1038c05f532a718fe1de"`);
await queryRunner.query(`DROP INDEX "IDX_e9cd07672b37d8966cf3709283"`);
await queryRunner.query(`DROP INDEX "IDX_dd907becf76104e4b656659e6b"`);
await queryRunner.query(`DROP INDEX "IDX_2d416e6af791a82e338c79d480"`);
await queryRunner.query(`DROP INDEX "IDX_76e87c7bfc5d925fcbba405d84"`);
await queryRunner.query(`DROP INDEX "IDX_e447064455928cf627590ef527"`);
await queryRunner.query(`DROP INDEX "IDX_36cb699c49580d4e6c2e6159f9"`);
await queryRunner.query(`DROP INDEX "IDX_06690fc959f1c9fdaf21928222"`);
await queryRunner.query(`DROP INDEX "IDX_3313d7288855ec105b5bbf6c21"`);
await queryRunner.query(`DROP INDEX "IDX_6e1df243476e20cbf86572ecc0"`);
await queryRunner.query(`DROP INDEX "IDX_7a170f67425e62a8fabb76c872"`);
await queryRunner.query(`DROP INDEX "IDX_3fa0d0f17ca72e3dc80999a032"`);
await queryRunner.query(`DROP INDEX "IDX_13565815f618a1ff53886c5b28"`);
await queryRunner.query(`DROP INDEX "IDX_c26e2c1cbb6e911e0554b27416"`);
await queryRunner.query(`DROP INDEX "IDX_9a3ed15a30ab7e3a37702e6e08"`);
await queryRunner.query(`DROP INDEX "IDX_20f57cc8f142c131340ee16742"`);
await queryRunner.query(`DROP INDEX "IDX_00ed5f86db1f7efafb1978bf21"`);
await queryRunner.query(`DROP INDEX "IDX_15e91a03aeeac9dbccdf43fc06"`);
await queryRunner.query(`DROP INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc"`);
await queryRunner.query(`DROP INDEX "IDX_90148bbc2bf0854428786bfc15"`);
await queryRunner.query(`DROP INDEX "IDX_88937d94d7443d9a99a76fa5c0"`);
await queryRunner.query(`DROP INDEX "IDX_54ebcb6d27222913b908d56fd8"`);
await queryRunner.query(`DROP INDEX "IDX_796a8c03959361f97dc2be1d5c"`);
await queryRunner.query(`DROP INDEX "IDX_25dfc71b0369b003a4cd434d0b"`);
await queryRunner.query(`DROP INDEX "IDX_51c063b6a133a9cb87145450f5"`);
await queryRunner.query(`DROP INDEX "IDX_fa99d777623947a5b05f394cae"`);
await queryRunner.query(`DROP INDEX "IDX_315c779174fe8247ab324f036e"`);
await queryRunner.query(`DROP INDEX "IDX_c5d46cbfda48b1c33ed852e21b"`);
await queryRunner.query(`DROP INDEX "IDX_8cb40cfc8f3c28261e6f887b03"`);
}
} }

View File

@ -1,10 +1,12 @@
export class PasswordLessLogin1562422242907 { export class PasswordLessLogin1562422242907 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "user_profile" ADD COLUMN "usePasswordLessLogin" boolean DEFAULT false NOT NULL`); await queryRunner.query(
} `ALTER TABLE "user_profile" ADD COLUMN "usePasswordLessLogin" boolean DEFAULT false NOT NULL`,
async down(queryRunner) { );
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "usePasswordLessLogin"`); }
} async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "usePasswordLessLogin"`,
);
}
} }

View File

@ -1,14 +1,24 @@
export class PinnedPage1562444565093 { export class PinnedPage1562444565093 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "user_profile" ADD "pinnedPageId" character varying(32)`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "user_profile" ADD CONSTRAINT "UQ_6dc44f1ceb65b1e72bacef2ca27" UNIQUE ("pinnedPageId")`); `ALTER TABLE "user_profile" ADD "pinnedPageId" character varying(32)`,
await queryRunner.query(`ALTER TABLE "user_profile" ADD CONSTRAINT "FK_6dc44f1ceb65b1e72bacef2ca27" FOREIGN KEY ("pinnedPageId") REFERENCES "page"("id") ON DELETE SET NULL ON UPDATE NO ACTION`); );
} await queryRunner.query(
async down(queryRunner) { `ALTER TABLE "user_profile" ADD CONSTRAINT "UQ_6dc44f1ceb65b1e72bacef2ca27" UNIQUE ("pinnedPageId")`,
await queryRunner.query(`ALTER TABLE "user_profile" DROP CONSTRAINT "FK_6dc44f1ceb65b1e72bacef2ca27"`); );
await queryRunner.query(`ALTER TABLE "user_profile" DROP CONSTRAINT "UQ_6dc44f1ceb65b1e72bacef2ca27"`); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "pinnedPageId"`); `ALTER TABLE "user_profile" ADD CONSTRAINT "FK_6dc44f1ceb65b1e72bacef2ca27" FOREIGN KEY ("pinnedPageId") REFERENCES "page"("id") ON DELETE SET NULL ON UPDATE NO ACTION`,
} );
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" DROP CONSTRAINT "FK_6dc44f1ceb65b1e72bacef2ca27"`,
);
await queryRunner.query(
`ALTER TABLE "user_profile" DROP CONSTRAINT "UQ_6dc44f1ceb65b1e72bacef2ca27"`,
);
await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "pinnedPageId"`,
);
}
} }

View File

@ -1,10 +1,12 @@
export class PageTitleHideOption1562448332510 { export class PageTitleHideOption1562448332510 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "page" ADD "hideTitleWhenPinned" boolean NOT NULL DEFAULT false`); await queryRunner.query(
} `ALTER TABLE "page" ADD "hideTitleWhenPinned" boolean NOT NULL DEFAULT false`,
async down(queryRunner) { );
await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "hideTitleWhenPinned"`); }
} async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "page" DROP COLUMN "hideTitleWhenPinned"`,
);
}
} }

View File

@ -1,14 +1,20 @@
export class ModerationLog1562869971568 { export class ModerationLog1562869971568 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`CREATE TABLE "moderation_log" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "type" character varying(128) NOT NULL, "info" jsonb NOT NULL, CONSTRAINT "PK_d0adca6ecfd068db83e4526cc26" PRIMARY KEY ("id"))`); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_a08ad074601d204e0f69da9a95" ON "moderation_log" ("userId") `); `CREATE TABLE "moderation_log" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "type" character varying(128) NOT NULL, "info" jsonb NOT NULL, CONSTRAINT "PK_d0adca6ecfd068db83e4526cc26" PRIMARY KEY ("id"))`,
await queryRunner.query(`ALTER TABLE "moderation_log" ADD CONSTRAINT "FK_a08ad074601d204e0f69da9a954" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`); );
} await queryRunner.query(
async down(queryRunner) { `CREATE INDEX "IDX_a08ad074601d204e0f69da9a95" ON "moderation_log" ("userId") `,
await queryRunner.query(`ALTER TABLE "moderation_log" DROP CONSTRAINT "FK_a08ad074601d204e0f69da9a954"`); );
await queryRunner.query(`DROP INDEX "IDX_a08ad074601d204e0f69da9a95"`); await queryRunner.query(
await queryRunner.query(`DROP TABLE "moderation_log"`); `ALTER TABLE "moderation_log" ADD CONSTRAINT "FK_a08ad074601d204e0f69da9a954" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
} );
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "moderation_log" DROP CONSTRAINT "FK_a08ad074601d204e0f69da9a954"`,
);
await queryRunner.query(`DROP INDEX "IDX_a08ad074601d204e0f69da9a95"`);
await queryRunner.query(`DROP TABLE "moderation_log"`);
}
} }

View File

@ -1,10 +1,10 @@
export class UsedUsername1563757595828 { export class UsedUsername1563757595828 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`CREATE TABLE "used_username" ("username" character varying(128) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_78fd79d2d24c6ac2f4cc9a31a5d" PRIMARY KEY ("username"))`); await queryRunner.query(
} `CREATE TABLE "used_username" ("username" character varying(128) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_78fd79d2d24c6ac2f4cc9a31a5d" PRIMARY KEY ("username"))`,
async down(queryRunner) { );
await queryRunner.query(`DROP TABLE "used_username"`); }
} async down(queryRunner) {
await queryRunner.query(`DROP TABLE "used_username"`);
}
} }

View File

@ -1,10 +1,10 @@
export class room1565634203341 { export class room1565634203341 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "user_profile" ADD "room" jsonb NOT NULL DEFAULT '{}'`); await queryRunner.query(
} `ALTER TABLE "user_profile" ADD "room" jsonb NOT NULL DEFAULT '{}'`,
async down(queryRunner) { );
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "room"`); }
} async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "room"`);
}
} }

View File

@ -1,10 +1,14 @@
export class CustomEmojiCategory1571220798684 { export class CustomEmojiCategory1571220798684 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "emoji" ADD "category" character varying(128)`, undefined); await queryRunner.query(
} `ALTER TABLE "emoji" ADD "category" character varying(128)`,
async down(queryRunner) { undefined,
await queryRunner.query(`ALTER TABLE "emoji" DROP COLUMN "category"`, undefined); );
} }
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "emoji" DROP COLUMN "category"`,
undefined,
);
}
} }

View File

@ -1,26 +1,78 @@
export class nodeinfo1572760203493 { export class nodeinfo1572760203493 {
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "system"`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "instance" ADD "softwareName" character varying(64) DEFAULT null`, undefined); `ALTER TABLE "instance" DROP COLUMN "system"`,
await queryRunner.query(`ALTER TABLE "instance" ADD "softwareVersion" character varying(64) DEFAULT null`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "instance" ADD "openRegistrations" boolean DEFAULT null`, undefined); );
await queryRunner.query(`ALTER TABLE "instance" ADD "name" character varying(256) DEFAULT null`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "instance" ADD "description" character varying(4096) DEFAULT null`, undefined); `ALTER TABLE "instance" ADD "softwareName" character varying(64) DEFAULT null`,
await queryRunner.query(`ALTER TABLE "instance" ADD "maintainerName" character varying(128) DEFAULT null`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "instance" ADD "maintainerEmail" character varying(256) DEFAULT null`, undefined); );
await queryRunner.query(`ALTER TABLE "instance" ADD "infoUpdatedAt" TIMESTAMP WITH TIME ZONE`, undefined); await queryRunner.query(
} `ALTER TABLE "instance" ADD "softwareVersion" character varying(64) DEFAULT null`,
async down(queryRunner) { undefined,
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "infoUpdatedAt"`, undefined); );
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "maintainerEmail"`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "maintainerName"`, undefined); `ALTER TABLE "instance" ADD "openRegistrations" boolean DEFAULT null`,
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "description"`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "name"`, undefined); );
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "openRegistrations"`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "softwareVersion"`, undefined); `ALTER TABLE "instance" ADD "name" character varying(256) DEFAULT null`,
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "softwareName"`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "instance" ADD "system" character varying(64)`, undefined); );
} await queryRunner.query(
`ALTER TABLE "instance" ADD "description" character varying(4096) DEFAULT null`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "instance" ADD "maintainerName" character varying(128) DEFAULT null`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "instance" ADD "maintainerEmail" character varying(256) DEFAULT null`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "instance" ADD "infoUpdatedAt" TIMESTAMP WITH TIME ZONE`,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "instance" DROP COLUMN "infoUpdatedAt"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "instance" DROP COLUMN "maintainerEmail"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "instance" DROP COLUMN "maintainerName"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "instance" DROP COLUMN "description"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "instance" DROP COLUMN "name"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "instance" DROP COLUMN "openRegistrations"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "instance" DROP COLUMN "softwareVersion"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "instance" DROP COLUMN "softwareName"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "instance" ADD "system" character varying(64)`,
undefined,
);
}
} }

View File

@ -1,13 +1,17 @@
export class TalkFederationId1576269851876 { export class TalkFederationId1576269851876 {
constructor() { constructor() {
this.name = 'TalkFederationId1576269851876'; this.name = "TalkFederationId1576269851876";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "messaging_message" ADD "uri" character varying(512)`, undefined); await queryRunner.query(
} `ALTER TABLE "messaging_message" ADD "uri" character varying(512)`,
async down(queryRunner) { undefined,
await queryRunner.query(`ALTER TABLE "messaging_message" DROP COLUMN "uri"`, undefined); );
} }
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "messaging_message" DROP COLUMN "uri"`,
undefined,
);
}
} }

View File

@ -1,13 +1,17 @@
export class ProxyRemoteFiles1576869585998 { export class ProxyRemoteFiles1576869585998 {
constructor() { constructor() {
this.name = 'ProxyRemoteFiles1576869585998'; this.name = "ProxyRemoteFiles1576869585998";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" ADD "proxyRemoteFiles" boolean NOT NULL DEFAULT false`, undefined); await queryRunner.query(
} `ALTER TABLE "meta" ADD "proxyRemoteFiles" boolean NOT NULL DEFAULT false`,
async down(queryRunner) { undefined,
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "proxyRemoteFiles"`, undefined); );
} }
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "proxyRemoteFiles"`,
undefined,
);
}
} }

View File

@ -1,33 +1,91 @@
export class v121579267006611 { export class v121579267006611 {
constructor() { constructor() {
this.name = 'v121579267006611'; this.name = "v121579267006611";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`CREATE TABLE "announcement" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "text" character varying(8192) NOT NULL, "title" character varying(256) NOT NULL, "imageUrl" character varying(1024), CONSTRAINT "PK_e0ef0550174fd1099a308fd18a0" PRIMARY KEY ("id"))`, undefined); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_118ec703e596086fc4515acb39" ON "announcement" ("createdAt") `, undefined); `CREATE TABLE "announcement" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "text" character varying(8192) NOT NULL, "title" character varying(256) NOT NULL, "imageUrl" character varying(1024), CONSTRAINT "PK_e0ef0550174fd1099a308fd18a0" PRIMARY KEY ("id"))`,
await queryRunner.query(`CREATE TABLE "announcement_read" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "announcementId" character varying(32) NOT NULL, CONSTRAINT "PK_4b90ad1f42681d97b2683890c5e" PRIMARY KEY ("id"))`, undefined); undefined,
await queryRunner.query(`CREATE INDEX "IDX_8288151386172b8109f7239ab2" ON "announcement_read" ("userId") `, undefined); );
await queryRunner.query(`CREATE INDEX "IDX_603a7b1e7aa0533c6c88e9bfaf" ON "announcement_read" ("announcementId") `, undefined); await queryRunner.query(
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_924fa71815cfa3941d003702a0" ON "announcement_read" ("userId", "announcementId") `, undefined); `CREATE INDEX "IDX_118ec703e596086fc4515acb39" ON "announcement" ("createdAt") `,
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "isVerified"`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "announcements"`, undefined); );
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableEmojiReaction"`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "announcement_read" ADD CONSTRAINT "FK_8288151386172b8109f7239ab28" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); `CREATE TABLE "announcement_read" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "announcementId" character varying(32) NOT NULL, CONSTRAINT "PK_4b90ad1f42681d97b2683890c5e" PRIMARY KEY ("id"))`,
await queryRunner.query(`ALTER TABLE "announcement_read" ADD CONSTRAINT "FK_603a7b1e7aa0533c6c88e9bfafe" FOREIGN KEY ("announcementId") REFERENCES "announcement"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); undefined,
} );
async down(queryRunner) { await queryRunner.query(
await queryRunner.query(`ALTER TABLE "announcement_read" DROP CONSTRAINT "FK_603a7b1e7aa0533c6c88e9bfafe"`, undefined); `CREATE INDEX "IDX_8288151386172b8109f7239ab2" ON "announcement_read" ("userId") `,
await queryRunner.query(`ALTER TABLE "announcement_read" DROP CONSTRAINT "FK_8288151386172b8109f7239ab28"`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "meta" ADD "enableEmojiReaction" boolean NOT NULL DEFAULT true`, undefined); );
await queryRunner.query(`ALTER TABLE "meta" ADD "announcements" jsonb NOT NULL DEFAULT '[]'`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "user" ADD "isVerified" boolean NOT NULL DEFAULT false`, undefined); `CREATE INDEX "IDX_603a7b1e7aa0533c6c88e9bfaf" ON "announcement_read" ("announcementId") `,
await queryRunner.query(`DROP INDEX "IDX_924fa71815cfa3941d003702a0"`, undefined); undefined,
await queryRunner.query(`DROP INDEX "IDX_603a7b1e7aa0533c6c88e9bfaf"`, undefined); );
await queryRunner.query(`DROP INDEX "IDX_8288151386172b8109f7239ab2"`, undefined); await queryRunner.query(
await queryRunner.query(`DROP TABLE "announcement_read"`, undefined); `CREATE UNIQUE INDEX "IDX_924fa71815cfa3941d003702a0" ON "announcement_read" ("userId", "announcementId") `,
await queryRunner.query(`DROP INDEX "IDX_118ec703e596086fc4515acb39"`, undefined); undefined,
await queryRunner.query(`DROP TABLE "announcement"`, undefined); );
} await queryRunner.query(
`ALTER TABLE "user" DROP COLUMN "isVerified"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "announcements"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "enableEmojiReaction"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "announcement_read" ADD CONSTRAINT "FK_8288151386172b8109f7239ab28" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "announcement_read" ADD CONSTRAINT "FK_603a7b1e7aa0533c6c88e9bfafe" FOREIGN KEY ("announcementId") REFERENCES "announcement"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "announcement_read" DROP CONSTRAINT "FK_603a7b1e7aa0533c6c88e9bfafe"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "announcement_read" DROP CONSTRAINT "FK_8288151386172b8109f7239ab28"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "meta" ADD "enableEmojiReaction" boolean NOT NULL DEFAULT true`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "meta" ADD "announcements" jsonb NOT NULL DEFAULT '[]'`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user" ADD "isVerified" boolean NOT NULL DEFAULT false`,
undefined,
);
await queryRunner.query(
`DROP INDEX "IDX_924fa71815cfa3941d003702a0"`,
undefined,
);
await queryRunner.query(
`DROP INDEX "IDX_603a7b1e7aa0533c6c88e9bfaf"`,
undefined,
);
await queryRunner.query(
`DROP INDEX "IDX_8288151386172b8109f7239ab2"`,
undefined,
);
await queryRunner.query(`DROP TABLE "announcement_read"`, undefined);
await queryRunner.query(
`DROP INDEX "IDX_118ec703e596086fc4515acb39"`,
undefined,
);
await queryRunner.query(`DROP TABLE "announcement"`, undefined);
}
} }

View File

@ -1,13 +1,17 @@
export class v1221579270193251 { export class v1221579270193251 {
constructor() { constructor() {
this.name = 'v1221579270193251'; this.name = "v1221579270193251";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "announcement_read" ADD "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL`, undefined); await queryRunner.query(
} `ALTER TABLE "announcement_read" ADD "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL`,
async down(queryRunner) { undefined,
await queryRunner.query(`ALTER TABLE "announcement_read" DROP COLUMN "createdAt"`, undefined); );
} }
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "announcement_read" DROP COLUMN "createdAt"`,
undefined,
);
}
} }

View File

@ -1,13 +1,17 @@
export class v1231579282808087 { export class v1231579282808087 {
constructor() { constructor() {
this.name = 'v1231579282808087'; this.name = "v1231579282808087";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "announcement" ADD "updatedAt" TIMESTAMP WITH TIME ZONE`, undefined); await queryRunner.query(
} `ALTER TABLE "announcement" ADD "updatedAt" TIMESTAMP WITH TIME ZONE`,
async down(queryRunner) { undefined,
await queryRunner.query(`ALTER TABLE "announcement" DROP COLUMN "updatedAt"`, undefined); );
} }
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "announcement" DROP COLUMN "updatedAt"`,
undefined,
);
}
} }

View File

@ -1,15 +1,25 @@
export class v1241579544426412 { export class v1241579544426412 {
constructor() { constructor() {
this.name = 'v1241579544426412'; this.name = "v1241579544426412";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "notification" ADD "followRequestId" character varying(32)`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_bd7fab507621e635b32cd31892c" FOREIGN KEY ("followRequestId") REFERENCES "follow_request"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); `ALTER TABLE "notification" ADD "followRequestId" character varying(32)`,
} undefined,
async down(queryRunner) { );
await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_bd7fab507621e635b32cd31892c"`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "followRequestId"`, undefined); `ALTER TABLE "notification" ADD CONSTRAINT "FK_bd7fab507621e635b32cd31892c" FOREIGN KEY ("followRequestId") REFERENCES "follow_request"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
} undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "notification" DROP CONSTRAINT "FK_bd7fab507621e635b32cd31892c"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" DROP COLUMN "followRequestId"`,
undefined,
);
}
} }

View File

@ -1,53 +1,156 @@
export class v1251579977526288 { export class v1251579977526288 {
constructor() { constructor() {
this.name = 'v1251579977526288'; this.name = "v1251579977526288";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`CREATE TABLE "clip" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "isPublic" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_f0685dac8d4dd056d7255670b75" PRIMARY KEY ("id"))`, undefined); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_2b5ec6c574d6802c94c80313fb" ON "clip" ("userId") `, undefined); `CREATE TABLE "clip" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "isPublic" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_f0685dac8d4dd056d7255670b75" PRIMARY KEY ("id"))`,
await queryRunner.query(`CREATE TABLE "clip_note" ("id" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "clipId" character varying(32) NOT NULL, CONSTRAINT "PK_e94cda2f40a99b57e032a1a738b" PRIMARY KEY ("id"))`, undefined); undefined,
await queryRunner.query(`CREATE INDEX "IDX_a012eaf5c87c65da1deb5fdbfa" ON "clip_note" ("noteId") `, undefined); );
await queryRunner.query(`CREATE INDEX "IDX_ebe99317bbbe9968a0c6f579ad" ON "clip_note" ("clipId") `, undefined); await queryRunner.query(
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_6fc0ec357d55a18646262fdfff" ON "clip_note" ("noteId", "clipId") `, undefined); `CREATE INDEX "IDX_2b5ec6c574d6802c94c80313fb" ON "clip" ("userId") `,
await queryRunner.query(`CREATE TYPE "antenna_src_enum" AS ENUM('home', 'all', 'list')`, undefined); undefined,
await queryRunner.query(`CREATE TABLE "antenna" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "src" "antenna_src_enum" NOT NULL, "userListId" character varying(32), "keywords" jsonb NOT NULL DEFAULT '[]', "withFile" boolean NOT NULL, "expression" character varying(2048), "notify" boolean NOT NULL, "hasNewNote" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_c170b99775e1dccca947c9f2d5f" PRIMARY KEY ("id"))`, undefined); );
await queryRunner.query(`CREATE INDEX "IDX_6446c571a0e8d0f05f01c78909" ON "antenna" ("userId") `, undefined); await queryRunner.query(
await queryRunner.query(`CREATE TABLE "antenna_note" ("id" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "antennaId" character varying(32) NOT NULL, CONSTRAINT "PK_fb28d94d0989a3872df19fd6ef8" PRIMARY KEY ("id"))`, undefined); `CREATE TABLE "clip_note" ("id" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "clipId" character varying(32) NOT NULL, CONSTRAINT "PK_e94cda2f40a99b57e032a1a738b" PRIMARY KEY ("id"))`,
await queryRunner.query(`CREATE INDEX "IDX_bd0397be22147e17210940e125" ON "antenna_note" ("noteId") `, undefined); undefined,
await queryRunner.query(`CREATE INDEX "IDX_0d775946662d2575dfd2068a5f" ON "antenna_note" ("antennaId") `, undefined); );
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_335a0bf3f904406f9ef3dd51c2" ON "antenna_note" ("noteId", "antennaId") `, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "geo"`, undefined); `CREATE INDEX "IDX_a012eaf5c87c65da1deb5fdbfa" ON "clip_note" ("noteId") `,
await queryRunner.query(`ALTER TABLE "clip" ADD CONSTRAINT "FK_2b5ec6c574d6802c94c80313fb2" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "clip_note" ADD CONSTRAINT "FK_a012eaf5c87c65da1deb5fdbfa3" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); );
await queryRunner.query(`ALTER TABLE "clip_note" ADD CONSTRAINT "FK_ebe99317bbbe9968a0c6f579adf" FOREIGN KEY ("clipId") REFERENCES "clip"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "antenna" ADD CONSTRAINT "FK_6446c571a0e8d0f05f01c789096" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); `CREATE INDEX "IDX_ebe99317bbbe9968a0c6f579ad" ON "clip_note" ("clipId") `,
await queryRunner.query(`ALTER TABLE "antenna" ADD CONSTRAINT "FK_709d7d32053d0dd7620f678eeb9" FOREIGN KEY ("userListId") REFERENCES "user_list"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "antenna_note" ADD CONSTRAINT "FK_bd0397be22147e17210940e125b" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); );
await queryRunner.query(`ALTER TABLE "antenna_note" ADD CONSTRAINT "FK_0d775946662d2575dfd2068a5f5" FOREIGN KEY ("antennaId") REFERENCES "antenna"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); await queryRunner.query(
} `CREATE UNIQUE INDEX "IDX_6fc0ec357d55a18646262fdfff" ON "clip_note" ("noteId", "clipId") `,
async down(queryRunner) { undefined,
await queryRunner.query(`ALTER TABLE "antenna_note" DROP CONSTRAINT "FK_0d775946662d2575dfd2068a5f5"`, undefined); );
await queryRunner.query(`ALTER TABLE "antenna_note" DROP CONSTRAINT "FK_bd0397be22147e17210940e125b"`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "antenna" DROP CONSTRAINT "FK_709d7d32053d0dd7620f678eeb9"`, undefined); `CREATE TYPE "antenna_src_enum" AS ENUM('home', 'all', 'list')`,
await queryRunner.query(`ALTER TABLE "antenna" DROP CONSTRAINT "FK_6446c571a0e8d0f05f01c789096"`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "clip_note" DROP CONSTRAINT "FK_ebe99317bbbe9968a0c6f579adf"`, undefined); );
await queryRunner.query(`ALTER TABLE "clip_note" DROP CONSTRAINT "FK_a012eaf5c87c65da1deb5fdbfa3"`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "clip" DROP CONSTRAINT "FK_2b5ec6c574d6802c94c80313fb2"`, undefined); `CREATE TABLE "antenna" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "src" "antenna_src_enum" NOT NULL, "userListId" character varying(32), "keywords" jsonb NOT NULL DEFAULT '[]', "withFile" boolean NOT NULL, "expression" character varying(2048), "notify" boolean NOT NULL, "hasNewNote" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_c170b99775e1dccca947c9f2d5f" PRIMARY KEY ("id"))`,
await queryRunner.query(`ALTER TABLE "note" ADD "geo" jsonb`, undefined); undefined,
await queryRunner.query(`DROP INDEX "IDX_335a0bf3f904406f9ef3dd51c2"`, undefined); );
await queryRunner.query(`DROP INDEX "IDX_0d775946662d2575dfd2068a5f"`, undefined); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_bd0397be22147e17210940e125"`, undefined); `CREATE INDEX "IDX_6446c571a0e8d0f05f01c78909" ON "antenna" ("userId") `,
await queryRunner.query(`DROP TABLE "antenna_note"`, undefined); undefined,
await queryRunner.query(`DROP INDEX "IDX_6446c571a0e8d0f05f01c78909"`, undefined); );
await queryRunner.query(`DROP TABLE "antenna"`, undefined); await queryRunner.query(
await queryRunner.query(`DROP TYPE "antenna_src_enum"`, undefined); `CREATE TABLE "antenna_note" ("id" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "antennaId" character varying(32) NOT NULL, CONSTRAINT "PK_fb28d94d0989a3872df19fd6ef8" PRIMARY KEY ("id"))`,
await queryRunner.query(`DROP INDEX "IDX_6fc0ec357d55a18646262fdfff"`, undefined); undefined,
await queryRunner.query(`DROP INDEX "IDX_ebe99317bbbe9968a0c6f579ad"`, undefined); );
await queryRunner.query(`DROP INDEX "IDX_a012eaf5c87c65da1deb5fdbfa"`, undefined); await queryRunner.query(
await queryRunner.query(`DROP TABLE "clip_note"`, undefined); `CREATE INDEX "IDX_bd0397be22147e17210940e125" ON "antenna_note" ("noteId") `,
await queryRunner.query(`DROP INDEX "IDX_2b5ec6c574d6802c94c80313fb"`, undefined); undefined,
await queryRunner.query(`DROP TABLE "clip"`, undefined); );
} await queryRunner.query(
`CREATE INDEX "IDX_0d775946662d2575dfd2068a5f" ON "antenna_note" ("antennaId") `,
undefined,
);
await queryRunner.query(
`CREATE UNIQUE INDEX "IDX_335a0bf3f904406f9ef3dd51c2" ON "antenna_note" ("noteId", "antennaId") `,
undefined,
);
await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "geo"`, undefined);
await queryRunner.query(
`ALTER TABLE "clip" ADD CONSTRAINT "FK_2b5ec6c574d6802c94c80313fb2" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "clip_note" ADD CONSTRAINT "FK_a012eaf5c87c65da1deb5fdbfa3" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "clip_note" ADD CONSTRAINT "FK_ebe99317bbbe9968a0c6f579adf" FOREIGN KEY ("clipId") REFERENCES "clip"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna" ADD CONSTRAINT "FK_6446c571a0e8d0f05f01c789096" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna" ADD CONSTRAINT "FK_709d7d32053d0dd7620f678eeb9" FOREIGN KEY ("userListId") REFERENCES "user_list"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna_note" ADD CONSTRAINT "FK_bd0397be22147e17210940e125b" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna_note" ADD CONSTRAINT "FK_0d775946662d2575dfd2068a5f5" FOREIGN KEY ("antennaId") REFERENCES "antenna"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "antenna_note" DROP CONSTRAINT "FK_0d775946662d2575dfd2068a5f5"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna_note" DROP CONSTRAINT "FK_bd0397be22147e17210940e125b"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna" DROP CONSTRAINT "FK_709d7d32053d0dd7620f678eeb9"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna" DROP CONSTRAINT "FK_6446c571a0e8d0f05f01c789096"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "clip_note" DROP CONSTRAINT "FK_ebe99317bbbe9968a0c6f579adf"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "clip_note" DROP CONSTRAINT "FK_a012eaf5c87c65da1deb5fdbfa3"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "clip" DROP CONSTRAINT "FK_2b5ec6c574d6802c94c80313fb2"`,
undefined,
);
await queryRunner.query(`ALTER TABLE "note" ADD "geo" jsonb`, undefined);
await queryRunner.query(
`DROP INDEX "IDX_335a0bf3f904406f9ef3dd51c2"`,
undefined,
);
await queryRunner.query(
`DROP INDEX "IDX_0d775946662d2575dfd2068a5f"`,
undefined,
);
await queryRunner.query(
`DROP INDEX "IDX_bd0397be22147e17210940e125"`,
undefined,
);
await queryRunner.query(`DROP TABLE "antenna_note"`, undefined);
await queryRunner.query(
`DROP INDEX "IDX_6446c571a0e8d0f05f01c78909"`,
undefined,
);
await queryRunner.query(`DROP TABLE "antenna"`, undefined);
await queryRunner.query(`DROP TYPE "antenna_src_enum"`, undefined);
await queryRunner.query(
`DROP INDEX "IDX_6fc0ec357d55a18646262fdfff"`,
undefined,
);
await queryRunner.query(
`DROP INDEX "IDX_ebe99317bbbe9968a0c6f579ad"`,
undefined,
);
await queryRunner.query(
`DROP INDEX "IDX_a012eaf5c87c65da1deb5fdbfa"`,
undefined,
);
await queryRunner.query(`DROP TABLE "clip_note"`, undefined);
await queryRunner.query(
`DROP INDEX "IDX_2b5ec6c574d6802c94c80313fb"`,
undefined,
);
await queryRunner.query(`DROP TABLE "clip"`, undefined);
}
} }

View File

@ -1,17 +1,33 @@
export class v1261579993013959 { export class v1261579993013959 {
constructor() { constructor() {
this.name = 'v1261579993013959'; this.name = "v1261579993013959";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "hasNewNote"`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "antenna_note" ADD "read" boolean NOT NULL DEFAULT false`, undefined); `ALTER TABLE "antenna" DROP COLUMN "hasNewNote"`,
await queryRunner.query(`CREATE INDEX "IDX_9937ea48d7ae97ffb4f3f063a4" ON "antenna_note" ("read") `, undefined); undefined,
} );
async down(queryRunner) { await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_9937ea48d7ae97ffb4f3f063a4"`, undefined); `ALTER TABLE "antenna_note" ADD "read" boolean NOT NULL DEFAULT false`,
await queryRunner.query(`ALTER TABLE "antenna_note" DROP COLUMN "read"`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "antenna" ADD "hasNewNote" boolean NOT NULL DEFAULT false`, undefined); );
} await queryRunner.query(
`CREATE INDEX "IDX_9937ea48d7ae97ffb4f3f063a4" ON "antenna_note" ("read") `,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`DROP INDEX "IDX_9937ea48d7ae97ffb4f3f063a4"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna_note" DROP COLUMN "read"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna" ADD "hasNewNote" boolean NOT NULL DEFAULT false`,
undefined,
);
}
} }

View File

@ -1,23 +1,51 @@
export class v1271580069531114 { export class v1271580069531114 {
constructor() { constructor() {
this.name = 'v1271580069531114'; this.name = "v1271580069531114";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "antenna" ADD "users" character varying(1024) array NOT NULL DEFAULT '{}'::varchar[]`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "antenna" ADD "caseSensitive" boolean NOT NULL DEFAULT false`, undefined); `ALTER TABLE "antenna" ADD "users" character varying(1024) array NOT NULL DEFAULT '{}'::varchar[]`,
await queryRunner.query(`ALTER TYPE "public"."antenna_src_enum" RENAME TO "antenna_src_enum_old"`, undefined); undefined,
await queryRunner.query(`CREATE TYPE "antenna_src_enum" AS ENUM('home', 'all', 'users', 'list')`, undefined); );
await queryRunner.query(`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum" USING "src"::"text"::"antenna_src_enum"`, undefined); await queryRunner.query(
await queryRunner.query(`DROP TYPE "antenna_src_enum_old"`, undefined); `ALTER TABLE "antenna" ADD "caseSensitive" boolean NOT NULL DEFAULT false`,
} undefined,
async down(queryRunner) { );
await queryRunner.query(`CREATE TYPE "antenna_src_enum_old" AS ENUM('home', 'all', 'list')`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum_old" USING "src"::"text"::"antenna_src_enum_old"`, undefined); `ALTER TYPE "public"."antenna_src_enum" RENAME TO "antenna_src_enum_old"`,
await queryRunner.query(`DROP TYPE "antenna_src_enum"`, undefined); undefined,
await queryRunner.query(`ALTER TYPE "antenna_src_enum_old" RENAME TO "antenna_src_enum"`, undefined); );
await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "caseSensitive"`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "users"`, undefined); `CREATE TYPE "antenna_src_enum" AS ENUM('home', 'all', 'users', 'list')`,
} undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum" USING "src"::"text"::"antenna_src_enum"`,
undefined,
);
await queryRunner.query(`DROP TYPE "antenna_src_enum_old"`, undefined);
}
async down(queryRunner) {
await queryRunner.query(
`CREATE TYPE "antenna_src_enum_old" AS ENUM('home', 'all', 'list')`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum_old" USING "src"::"text"::"antenna_src_enum_old"`,
undefined,
);
await queryRunner.query(`DROP TYPE "antenna_src_enum"`, undefined);
await queryRunner.query(
`ALTER TYPE "antenna_src_enum_old" RENAME TO "antenna_src_enum"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna" DROP COLUMN "caseSensitive"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna" DROP COLUMN "users"`,
undefined,
);
}
} }

View File

@ -1,15 +1,25 @@
export class v1281580148575182 { export class v1281580148575182 {
constructor() { constructor() {
this.name = 'v1281580148575182'; this.name = "v1281580148575182";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_ec5c201576192ba8904c345c5cc"`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "appId"`, undefined); `ALTER TABLE "note" DROP CONSTRAINT "FK_ec5c201576192ba8904c345c5cc"`,
} undefined,
async down(queryRunner) { );
await queryRunner.query(`ALTER TABLE "note" ADD "appId" character varying(32)`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_ec5c201576192ba8904c345c5cc" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE SET NULL ON UPDATE NO ACTION`, undefined); `ALTER TABLE "note" DROP COLUMN "appId"`,
} undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "note" ADD "appId" character varying(32)`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "note" ADD CONSTRAINT "FK_ec5c201576192ba8904c345c5cc" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE SET NULL ON UPDATE NO ACTION`,
undefined,
);
}
} }

View File

@ -1,13 +1,17 @@
export class v1291580154400017 { export class v1291580154400017 {
constructor() { constructor() {
this.name = 'v1291580154400017'; this.name = "v1291580154400017";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "antenna" ADD "withReplies" boolean NOT NULL DEFAULT false`, undefined); await queryRunner.query(
} `ALTER TABLE "antenna" ADD "withReplies" boolean NOT NULL DEFAULT false`,
async down(queryRunner) { undefined,
await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "withReplies"`, undefined); );
} }
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "antenna" DROP COLUMN "withReplies"`,
undefined,
);
}
} }

View File

@ -1,18 +1,31 @@
export class v12101580276619901 { export class v12101580276619901 {
constructor() { constructor() {
this.name = 'v12101580276619901'; this.name = "v12101580276619901";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`TRUNCATE TABLE "notification"`, undefined); await queryRunner.query(`TRUNCATE TABLE "notification"`, undefined);
await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "type"`, undefined); await queryRunner.query(
await queryRunner.query(`CREATE TYPE "notification_type_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted')`, undefined); `ALTER TABLE "notification" DROP COLUMN "type"`,
await queryRunner.query(`ALTER TABLE "notification" ADD "type" "notification_type_enum" NOT NULL`, undefined); undefined,
} );
async down(queryRunner) { await queryRunner.query(
await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "type"`, undefined); `CREATE TYPE "notification_type_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted')`,
await queryRunner.query(`DROP TYPE "notification_type_enum"`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "notification" ADD "type" character varying(32) NOT NULL`, undefined); );
} await queryRunner.query(
`ALTER TABLE "notification" ADD "type" "notification_type_enum" NOT NULL`,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "notification" DROP COLUMN "type"`,
undefined,
);
await queryRunner.query(`DROP TYPE "notification_type_enum"`, undefined);
await queryRunner.query(
`ALTER TABLE "notification" ADD "type" character varying(32) NOT NULL`,
undefined,
);
}
} }

View File

@ -1,17 +1,33 @@
export class v12111580331224276 { export class v12111580331224276 {
constructor() { constructor() {
this.name = 'v12111580331224276'; this.name = "v12111580331224276";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "isMarkedAsClosed"`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "instance" ADD "isSuspended" boolean NOT NULL DEFAULT false`, undefined); `ALTER TABLE "instance" DROP COLUMN "isMarkedAsClosed"`,
await queryRunner.query(`CREATE INDEX "IDX_34500da2e38ac393f7bb6b299c" ON "instance" ("isSuspended") `, undefined); undefined,
} );
async down(queryRunner) { await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_34500da2e38ac393f7bb6b299c"`, undefined); `ALTER TABLE "instance" ADD "isSuspended" boolean NOT NULL DEFAULT false`,
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "isSuspended"`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "instance" ADD "isMarkedAsClosed" boolean NOT NULL DEFAULT false`, undefined); );
} await queryRunner.query(
`CREATE INDEX "IDX_34500da2e38ac393f7bb6b299c" ON "instance" ("isSuspended") `,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`DROP INDEX "IDX_34500da2e38ac393f7bb6b299c"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "instance" DROP COLUMN "isSuspended"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "instance" ADD "isMarkedAsClosed" boolean NOT NULL DEFAULT false`,
undefined,
);
}
} }

View File

@ -1,45 +1,145 @@
export class v12121580508795118 { export class v12121580508795118 {
constructor() { constructor() {
this.name = 'v12121580508795118'; this.name = "v12121580508795118";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "twitter"`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "twitterAccessToken"`, undefined); `ALTER TABLE "user_profile" DROP COLUMN "twitter"`,
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "twitterAccessTokenSecret"`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "twitterUserId"`, undefined); );
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "twitterScreenName"`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "github"`, undefined); `ALTER TABLE "user_profile" DROP COLUMN "twitterAccessToken"`,
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "githubAccessToken"`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "githubId"`, undefined); );
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "githubLogin"`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discord"`, undefined); `ALTER TABLE "user_profile" DROP COLUMN "twitterAccessTokenSecret"`,
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordAccessToken"`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordRefreshToken"`, undefined); );
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordExpiresDate"`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordId"`, undefined); `ALTER TABLE "user_profile" DROP COLUMN "twitterUserId"`,
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordUsername"`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "discordDiscriminator"`, undefined); );
await queryRunner.query(`ALTER TABLE "user_profile" ADD "integrations" jsonb NOT NULL DEFAULT '{}'`, undefined); await queryRunner.query(
} `ALTER TABLE "user_profile" DROP COLUMN "twitterScreenName"`,
async down(queryRunner) { undefined,
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "integrations"`, undefined); );
await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordDiscriminator" character varying(64) DEFAULT NULL`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordUsername" character varying(64) DEFAULT NULL`, undefined); `ALTER TABLE "user_profile" DROP COLUMN "github"`,
await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordId" character varying(64) DEFAULT NULL`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordExpiresDate" character varying(64)`, undefined); );
await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordRefreshToken" character varying(64) DEFAULT NULL`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "user_profile" ADD "discordAccessToken" character varying(64) DEFAULT NULL`, undefined); `ALTER TABLE "user_profile" DROP COLUMN "githubAccessToken"`,
await queryRunner.query(`ALTER TABLE "user_profile" ADD "discord" boolean NOT NULL DEFAULT false`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "user_profile" ADD "githubLogin" character varying(64) DEFAULT NULL`, undefined); );
await queryRunner.query(`ALTER TABLE "user_profile" ADD "githubId" character varying(64)`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "user_profile" ADD "githubAccessToken" character varying(64) DEFAULT NULL`, undefined); `ALTER TABLE "user_profile" DROP COLUMN "githubId"`,
await queryRunner.query(`ALTER TABLE "user_profile" ADD "github" boolean NOT NULL DEFAULT false`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "user_profile" ADD "twitterScreenName" character varying(64) DEFAULT NULL`, undefined); );
await queryRunner.query(`ALTER TABLE "user_profile" ADD "twitterUserId" character varying(64) DEFAULT NULL`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "user_profile" ADD "twitterAccessTokenSecret" character varying(64) DEFAULT NULL`, undefined); `ALTER TABLE "user_profile" DROP COLUMN "githubLogin"`,
await queryRunner.query(`ALTER TABLE "user_profile" ADD "twitterAccessToken" character varying(64) DEFAULT NULL`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "user_profile" ADD "twitter" boolean NOT NULL DEFAULT false`, undefined); );
} await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "discord"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "discordAccessToken"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "discordRefreshToken"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "discordExpiresDate"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "discordId"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "discordUsername"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "discordDiscriminator"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "integrations" jsonb NOT NULL DEFAULT '{}'`,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "integrations"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "discordDiscriminator" character varying(64) DEFAULT NULL`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "discordUsername" character varying(64) DEFAULT NULL`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "discordId" character varying(64) DEFAULT NULL`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "discordExpiresDate" character varying(64)`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "discordRefreshToken" character varying(64) DEFAULT NULL`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "discordAccessToken" character varying(64) DEFAULT NULL`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "discord" boolean NOT NULL DEFAULT false`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "githubLogin" character varying(64) DEFAULT NULL`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "githubId" character varying(64)`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "githubAccessToken" character varying(64) DEFAULT NULL`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "github" boolean NOT NULL DEFAULT false`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "twitterScreenName" character varying(64) DEFAULT NULL`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "twitterUserId" character varying(64) DEFAULT NULL`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "twitterAccessTokenSecret" character varying(64) DEFAULT NULL`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "twitterAccessToken" character varying(64) DEFAULT NULL`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_profile" ADD "twitter" boolean NOT NULL DEFAULT false`,
undefined,
);
}
} }

View File

@ -1,13 +1,14 @@
export class v12131580543501339 { export class v12131580543501339 {
constructor() { constructor() {
this.name = 'v12131580543501339'; this.name = "v12131580543501339";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`CREATE INDEX "IDX_NOTE_TAGS" ON "note" USING gin ("tags")`, undefined); await queryRunner.query(
} `CREATE INDEX "IDX_NOTE_TAGS" ON "note" USING gin ("tags")`,
async down(queryRunner) { undefined,
await queryRunner.query(`DROP INDEX "IDX_NOTE_TAGS"`, undefined); );
} }
async down(queryRunner) {
await queryRunner.query(`DROP INDEX "IDX_NOTE_TAGS"`, undefined);
}
} }

View File

@ -1,19 +1,41 @@
export class v12141580864313253 { export class v12141580864313253 {
constructor() { constructor() {
this.name = 'v12141580864313253'; this.name = "v12141580864313253";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" RENAME COLUMN "proxyAccount" TO "proxyAccountId"`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "proxyAccountId"`, undefined); `ALTER TABLE "meta" RENAME COLUMN "proxyAccount" TO "proxyAccountId"`,
await queryRunner.query(`ALTER TABLE "meta" ADD "proxyAccountId" character varying(32)`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "meta" ADD CONSTRAINT "FK_ab1bc0c1e209daa77b8e8d212ad" FOREIGN KEY ("proxyAccountId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`, undefined); );
} await queryRunner.query(
async down(queryRunner) { `ALTER TABLE "meta" DROP COLUMN "proxyAccountId"`,
await queryRunner.query(`ALTER TABLE "meta" DROP CONSTRAINT "FK_ab1bc0c1e209daa77b8e8d212ad"`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "proxyAccountId"`, undefined); );
await queryRunner.query(`ALTER TABLE "meta" ADD "proxyAccountId" character varying(128)`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "meta" RENAME COLUMN "proxyAccountId" TO "proxyAccount"`, undefined); `ALTER TABLE "meta" ADD "proxyAccountId" character varying(32)`,
} undefined,
);
await queryRunner.query(
`ALTER TABLE "meta" ADD CONSTRAINT "FK_ab1bc0c1e209daa77b8e8d212ad" FOREIGN KEY ("proxyAccountId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "meta" DROP CONSTRAINT "FK_ab1bc0c1e209daa77b8e8d212ad"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "meta" DROP COLUMN "proxyAccountId"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "meta" ADD "proxyAccountId" character varying(128)`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "meta" RENAME COLUMN "proxyAccountId" TO "proxyAccount"`,
undefined,
);
}
} }

View File

@ -1,37 +1,107 @@
export class userGroupInvitation1581526429287 { export class userGroupInvitation1581526429287 {
constructor() { constructor() {
this.name = 'userGroupInvitation1581526429287'; this.name = "userGroupInvitation1581526429287";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`CREATE TABLE "user_group_invitation" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_160c63ec02bf23f6a5c5e8140d6" PRIMARY KEY ("id"))`, undefined); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_bfbc6305547539369fe73eb144" ON "user_group_invitation" ("userId") `, undefined); `CREATE TABLE "user_group_invitation" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_160c63ec02bf23f6a5c5e8140d6" PRIMARY KEY ("id"))`,
await queryRunner.query(`CREATE INDEX "IDX_5cc8c468090e129857e9fecce5" ON "user_group_invitation" ("userGroupId") `, undefined); undefined,
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_e9793f65f504e5a31fbaedbf2f" ON "user_group_invitation" ("userId", "userGroupId") `, undefined); );
await queryRunner.query(`ALTER TABLE "notification" ADD "userGroupInvitationId" character varying(32)`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TYPE "public"."notification_type_enum" RENAME TO "notification_type_enum_old"`, undefined); `CREATE INDEX "IDX_bfbc6305547539369fe73eb144" ON "user_group_invitation" ("userId") `,
await queryRunner.query(`CREATE TYPE "notification_type_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited')`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum" USING "type"::"text"::"notification_type_enum"`, undefined); );
await queryRunner.query(`DROP TYPE "notification_type_enum_old"`, undefined); await queryRunner.query(
await queryRunner.query(`COMMENT ON COLUMN "notification"."type" IS 'The type of the Notification.'`, undefined); `CREATE INDEX "IDX_5cc8c468090e129857e9fecce5" ON "user_group_invitation" ("userGroupId") `,
await queryRunner.query(`ALTER TABLE "user_group_invitation" ADD CONSTRAINT "FK_bfbc6305547539369fe73eb144a" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "user_group_invitation" ADD CONSTRAINT "FK_5cc8c468090e129857e9fecce5a" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); );
await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_8fe87814e978053a53b1beb7e98" FOREIGN KEY ("userGroupInvitationId") REFERENCES "user_group_invitation"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); await queryRunner.query(
} `CREATE UNIQUE INDEX "IDX_e9793f65f504e5a31fbaedbf2f" ON "user_group_invitation" ("userId", "userGroupId") `,
async down(queryRunner) { undefined,
await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_8fe87814e978053a53b1beb7e98"`, undefined); );
await queryRunner.query(`ALTER TABLE "user_group_invitation" DROP CONSTRAINT "FK_5cc8c468090e129857e9fecce5a"`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "user_group_invitation" DROP CONSTRAINT "FK_bfbc6305547539369fe73eb144a"`, undefined); `ALTER TABLE "notification" ADD "userGroupInvitationId" character varying(32)`,
await queryRunner.query(`COMMENT ON COLUMN "notification"."type" IS ''`, undefined); undefined,
await queryRunner.query(`CREATE TYPE "notification_type_enum_old" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted')`, undefined); );
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum_old" USING "type"::"text"::"notification_type_enum_old"`, undefined); await queryRunner.query(
await queryRunner.query(`DROP TYPE "notification_type_enum"`, undefined); `ALTER TYPE "public"."notification_type_enum" RENAME TO "notification_type_enum_old"`,
await queryRunner.query(`ALTER TYPE "notification_type_enum_old" RENAME TO "notification_type_enum"`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "userGroupInvitationId"`, undefined); );
await queryRunner.query(`DROP INDEX "IDX_e9793f65f504e5a31fbaedbf2f"`, undefined); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_5cc8c468090e129857e9fecce5"`, undefined); `CREATE TYPE "notification_type_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited')`,
await queryRunner.query(`DROP INDEX "IDX_bfbc6305547539369fe73eb144"`, undefined); undefined,
await queryRunner.query(`DROP TABLE "user_group_invitation"`, undefined); );
} await queryRunner.query(
`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum" USING "type"::"text"::"notification_type_enum"`,
undefined,
);
await queryRunner.query(
`DROP TYPE "notification_type_enum_old"`,
undefined,
);
await queryRunner.query(
`COMMENT ON COLUMN "notification"."type" IS 'The type of the Notification.'`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_group_invitation" ADD CONSTRAINT "FK_bfbc6305547539369fe73eb144a" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_group_invitation" ADD CONSTRAINT "FK_5cc8c468090e129857e9fecce5a" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" ADD CONSTRAINT "FK_8fe87814e978053a53b1beb7e98" FOREIGN KEY ("userGroupInvitationId") REFERENCES "user_group_invitation"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "notification" DROP CONSTRAINT "FK_8fe87814e978053a53b1beb7e98"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_group_invitation" DROP CONSTRAINT "FK_5cc8c468090e129857e9fecce5a"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "user_group_invitation" DROP CONSTRAINT "FK_bfbc6305547539369fe73eb144a"`,
undefined,
);
await queryRunner.query(
`COMMENT ON COLUMN "notification"."type" IS ''`,
undefined,
);
await queryRunner.query(
`CREATE TYPE "notification_type_enum_old" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted')`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum_old" USING "type"::"text"::"notification_type_enum_old"`,
undefined,
);
await queryRunner.query(`DROP TYPE "notification_type_enum"`, undefined);
await queryRunner.query(
`ALTER TYPE "notification_type_enum_old" RENAME TO "notification_type_enum"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "notification" DROP COLUMN "userGroupInvitationId"`,
undefined,
);
await queryRunner.query(
`DROP INDEX "IDX_e9793f65f504e5a31fbaedbf2f"`,
undefined,
);
await queryRunner.query(
`DROP INDEX "IDX_5cc8c468090e129857e9fecce5"`,
undefined,
);
await queryRunner.query(
`DROP INDEX "IDX_bfbc6305547539369fe73eb144"`,
undefined,
);
await queryRunner.query(`DROP TABLE "user_group_invitation"`, undefined);
}
} }

View File

@ -1,27 +1,67 @@
export class userGroupAntenna1581695816408 { export class userGroupAntenna1581695816408 {
constructor() { constructor() {
this.name = 'userGroupAntenna1581695816408'; this.name = "userGroupAntenna1581695816408";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "antenna" ADD "userGroupJoiningId" character varying(32)`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TYPE "public"."antenna_src_enum" RENAME TO "antenna_src_enum_old"`, undefined); `ALTER TABLE "antenna" ADD "userGroupJoiningId" character varying(32)`,
await queryRunner.query(`CREATE TYPE "antenna_src_enum" AS ENUM('home', 'all', 'users', 'list', 'group')`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum" USING "src"::"text"::"antenna_src_enum"`, undefined); );
await queryRunner.query(`DROP TYPE "antenna_src_enum_old"`, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "users"`, undefined); `ALTER TYPE "public"."antenna_src_enum" RENAME TO "antenna_src_enum_old"`,
await queryRunner.query(`ALTER TABLE "antenna" ADD "users" character varying(1024) array NOT NULL DEFAULT '{}'::varchar[]`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "antenna" ADD CONSTRAINT "FK_ccbf5a8c0be4511133dcc50ddeb" FOREIGN KEY ("userGroupJoiningId") REFERENCES "user_group_joining"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); );
} await queryRunner.query(
async down(queryRunner) { `CREATE TYPE "antenna_src_enum" AS ENUM('home', 'all', 'users', 'list', 'group')`,
await queryRunner.query(`ALTER TABLE "antenna" DROP CONSTRAINT "FK_ccbf5a8c0be4511133dcc50ddeb"`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "users"`, undefined); );
await queryRunner.query(`ALTER TABLE "antenna" ADD "users" character varying array NOT NULL DEFAULT '{}'`, undefined); await queryRunner.query(
await queryRunner.query(`CREATE TYPE "antenna_src_enum_old" AS ENUM('home', 'all', 'users', 'list')`, undefined); `ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum" USING "src"::"text"::"antenna_src_enum"`,
await queryRunner.query(`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum_old" USING "src"::"text"::"antenna_src_enum_old"`, undefined); undefined,
await queryRunner.query(`DROP TYPE "antenna_src_enum"`, undefined); );
await queryRunner.query(`ALTER TYPE "antenna_src_enum_old" RENAME TO "antenna_src_enum"`, undefined); await queryRunner.query(`DROP TYPE "antenna_src_enum_old"`, undefined);
await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "userGroupJoiningId"`, undefined); await queryRunner.query(
} `ALTER TABLE "antenna" DROP COLUMN "users"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna" ADD "users" character varying(1024) array NOT NULL DEFAULT '{}'::varchar[]`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna" ADD CONSTRAINT "FK_ccbf5a8c0be4511133dcc50ddeb" FOREIGN KEY ("userGroupJoiningId") REFERENCES "user_group_joining"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "antenna" DROP CONSTRAINT "FK_ccbf5a8c0be4511133dcc50ddeb"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna" DROP COLUMN "users"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna" ADD "users" character varying array NOT NULL DEFAULT '{}'`,
undefined,
);
await queryRunner.query(
`CREATE TYPE "antenna_src_enum_old" AS ENUM('home', 'all', 'users', 'list')`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna" ALTER COLUMN "src" TYPE "antenna_src_enum_old" USING "src"::"text"::"antenna_src_enum_old"`,
undefined,
);
await queryRunner.query(`DROP TYPE "antenna_src_enum"`, undefined);
await queryRunner.query(
`ALTER TYPE "antenna_src_enum_old" RENAME TO "antenna_src_enum"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "antenna" DROP COLUMN "userGroupJoiningId"`,
undefined,
);
}
} }

View File

@ -1,13 +1,17 @@
export class driveUserFolderIdIndex1581708415836 { export class driveUserFolderIdIndex1581708415836 {
constructor() { constructor() {
this.name = 'driveUserFolderIdIndex1581708415836'; this.name = "driveUserFolderIdIndex1581708415836";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`CREATE INDEX "IDX_55720b33a61a7c806a8215b825" ON "drive_file" ("userId", "folderId", "id") `, undefined); await queryRunner.query(
} `CREATE INDEX "IDX_55720b33a61a7c806a8215b825" ON "drive_file" ("userId", "folderId", "id") `,
async down(queryRunner) { undefined,
await queryRunner.query(`DROP INDEX "IDX_55720b33a61a7c806a8215b825"`, undefined); );
} }
async down(queryRunner) {
await queryRunner.query(
`DROP INDEX "IDX_55720b33a61a7c806a8215b825"`,
undefined,
);
}
} }

View File

@ -1,27 +1,67 @@
export class promo1581979837262 { export class promo1581979837262 {
constructor() { constructor() {
this.name = 'promo1581979837262'; this.name = "promo1581979837262";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`CREATE TABLE "promo_note" ("noteId" character varying(32) NOT NULL, "expiresAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, CONSTRAINT "REL_e263909ca4fe5d57f8d4230dd5" UNIQUE ("noteId"), CONSTRAINT "PK_e263909ca4fe5d57f8d4230dd5c" PRIMARY KEY ("noteId"))`, undefined); await queryRunner.query(
await queryRunner.query(`CREATE INDEX "IDX_83f0862e9bae44af52ced7099e" ON "promo_note" ("userId") `, undefined); `CREATE TABLE "promo_note" ("noteId" character varying(32) NOT NULL, "expiresAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, CONSTRAINT "REL_e263909ca4fe5d57f8d4230dd5" UNIQUE ("noteId"), CONSTRAINT "PK_e263909ca4fe5d57f8d4230dd5c" PRIMARY KEY ("noteId"))`,
await queryRunner.query(`CREATE TABLE "promo_read" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, CONSTRAINT "PK_61917c1541002422b703318b7c9" PRIMARY KEY ("id"))`, undefined); undefined,
await queryRunner.query(`CREATE INDEX "IDX_9657d55550c3d37bfafaf7d4b0" ON "promo_read" ("userId") `, undefined); );
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_2882b8a1a07c7d281a98b6db16" ON "promo_read" ("userId", "noteId") `, undefined); await queryRunner.query(
await queryRunner.query(`ALTER TABLE "promo_note" ADD CONSTRAINT "FK_e263909ca4fe5d57f8d4230dd5c" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); `CREATE INDEX "IDX_83f0862e9bae44af52ced7099e" ON "promo_note" ("userId") `,
await queryRunner.query(`ALTER TABLE "promo_read" ADD CONSTRAINT "FK_9657d55550c3d37bfafaf7d4b05" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "promo_read" ADD CONSTRAINT "FK_a46a1a603ecee695d7db26da5f4" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined); );
} await queryRunner.query(
async down(queryRunner) { `CREATE TABLE "promo_read" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, CONSTRAINT "PK_61917c1541002422b703318b7c9" PRIMARY KEY ("id"))`,
await queryRunner.query(`ALTER TABLE "promo_read" DROP CONSTRAINT "FK_a46a1a603ecee695d7db26da5f4"`, undefined); undefined,
await queryRunner.query(`ALTER TABLE "promo_read" DROP CONSTRAINT "FK_9657d55550c3d37bfafaf7d4b05"`, undefined); );
await queryRunner.query(`ALTER TABLE "promo_note" DROP CONSTRAINT "FK_e263909ca4fe5d57f8d4230dd5c"`, undefined); await queryRunner.query(
await queryRunner.query(`DROP INDEX "IDX_2882b8a1a07c7d281a98b6db16"`, undefined); `CREATE INDEX "IDX_9657d55550c3d37bfafaf7d4b0" ON "promo_read" ("userId") `,
await queryRunner.query(`DROP INDEX "IDX_9657d55550c3d37bfafaf7d4b0"`, undefined); undefined,
await queryRunner.query(`DROP TABLE "promo_read"`, undefined); );
await queryRunner.query(`DROP INDEX "IDX_83f0862e9bae44af52ced7099e"`, undefined); await queryRunner.query(
await queryRunner.query(`DROP TABLE "promo_note"`, undefined); `CREATE UNIQUE INDEX "IDX_2882b8a1a07c7d281a98b6db16" ON "promo_read" ("userId", "noteId") `,
} undefined,
);
await queryRunner.query(
`ALTER TABLE "promo_note" ADD CONSTRAINT "FK_e263909ca4fe5d57f8d4230dd5c" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "promo_read" ADD CONSTRAINT "FK_9657d55550c3d37bfafaf7d4b05" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "promo_read" ADD CONSTRAINT "FK_a46a1a603ecee695d7db26da5f4" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`,
undefined,
);
}
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "promo_read" DROP CONSTRAINT "FK_a46a1a603ecee695d7db26da5f4"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "promo_read" DROP CONSTRAINT "FK_9657d55550c3d37bfafaf7d4b05"`,
undefined,
);
await queryRunner.query(
`ALTER TABLE "promo_note" DROP CONSTRAINT "FK_e263909ca4fe5d57f8d4230dd5c"`,
undefined,
);
await queryRunner.query(
`DROP INDEX "IDX_2882b8a1a07c7d281a98b6db16"`,
undefined,
);
await queryRunner.query(
`DROP INDEX "IDX_9657d55550c3d37bfafaf7d4b0"`,
undefined,
);
await queryRunner.query(`DROP TABLE "promo_read"`, undefined);
await queryRunner.query(
`DROP INDEX "IDX_83f0862e9bae44af52ced7099e"`,
undefined,
);
await queryRunner.query(`DROP TABLE "promo_note"`, undefined);
}
} }

View File

@ -1,13 +1,17 @@
export class featuredInjecttion1582019042083 { export class featuredInjecttion1582019042083 {
constructor() { constructor() {
this.name = 'featuredInjecttion1582019042083'; this.name = "featuredInjecttion1582019042083";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "user_profile" ADD "injectFeaturedNote" boolean NOT NULL DEFAULT true`, undefined); await queryRunner.query(
} `ALTER TABLE "user_profile" ADD "injectFeaturedNote" boolean NOT NULL DEFAULT true`,
async down(queryRunner) { undefined,
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "injectFeaturedNote"`, undefined); );
} }
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "user_profile" DROP COLUMN "injectFeaturedNote"`,
undefined,
);
}
} }

View File

@ -1,13 +1,17 @@
export class antennaExclude1582210532752 { export class antennaExclude1582210532752 {
constructor() { constructor() {
this.name = 'antennaExclude1582210532752'; this.name = "antennaExclude1582210532752";
} }
async up(queryRunner) { async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "antenna" ADD "excludeKeywords" jsonb NOT NULL DEFAULT '[]'`, undefined); await queryRunner.query(
} `ALTER TABLE "antenna" ADD "excludeKeywords" jsonb NOT NULL DEFAULT '[]'`,
async down(queryRunner) { undefined,
await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "excludeKeywords"`, undefined); );
} }
async down(queryRunner) {
await queryRunner.query(
`ALTER TABLE "antenna" DROP COLUMN "excludeKeywords"`,
undefined,
);
}
} }

Some files were not shown because too many files have changed in this diff Show More