Compare commits

..

2659 Commits

Author SHA1 Message Date
Alejandro González
d22c9e24f4
tweak(frontend): improve Nuxt build state generation logging and caching (#4133) 2025-08-06 22:05:33 +00:00
fishstiz
e31197f649
feat(app): pass selected version to incompatibility warning modal (#4115)
Co-authored-by: IMB11 <hendersoncal117@gmail.com>
2025-08-05 11:10:02 +00:00
Emma Alexia
0dee21814d
Change "Billing" link on dashboard for admins (#3951)
* Change "Billing" link on dashboard for admins

Requires an archon change before merging

* change order

* steal changes from prospector's old PR

supersedes #3234

Co-authored-by: Prospector <prospectordev@gmail.com>

* lint?

---------

Co-authored-by: Prospector <prospectordev@gmail.com>
2025-08-04 20:13:33 +00:00
Josiah Glosson
0657e4466f
Allow direct joining servers on old instances (#4094)
* Implement direct server joining for 1.6.2 through 1.19.4

* Implement direct server joining for versions before 1.6.2

* Ignore methods with a $ in them

* Run intl:extract

* Improve code of MinecraftTransformer

* Support showing last played time for profiles before 1.7

* Reorganize QuickPlayVersion a bit to prepare for singleplayer

* Only inject quick play checking in versions where it's needed

* Optimize agent some and fix error on NeoForge

* Remove some code for quickplay singleplayer support before 1.20, as we can't reasonably support that with an agent

* Invert the default hasServerQuickPlaySupport return value

* Remove Play Anyway button

* Fix "Server couldn't be contacted" on singleplayer worlds

* Fix "Jump back in" section not working
2025-08-04 19:29:20 +00:00
Josiah Glosson
13dbb4c57e
Fix most packs showing as "Optimization" on the app homepage (#4119) 2025-08-04 19:21:37 +00:00
Prospector
99493b9917 Updated changelog 2025-08-01 21:31:22 -04:00
IMB11
72a52eb7b1
fix: improve error message for rate limiting (#4101)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-08-01 21:27:25 +00:00
IMB11
b33e12c71d
fix: startup settings not visible on hard page refresh/direct load (#4100)
* fix: startup settings not visible on hard page refresh/direct load

* refactor: const func => named
2025-08-01 21:22:22 +00:00
IMB11
82d86839c7
fix: approve status incorrect (#4104) 2025-08-01 20:24:40 +00:00
coolbot
3a20e15340
Coolbot/moderation updates aug1 (#4103)
* oop, all commas!

* Only show slug stuff when needed.

* Move status alerts to top of message, getting rid of separators.

* redist libs message altered, and now shows on plugins too

* Update versions.ts

remove unnecessary import

Signed-off-by: coolbot <76798835+coolbot100s@users.noreply.github.com>

* Tweak summary formatting msg

* Update license messages to use flink

* reorder link text to match the settings page

* add Description clarity button

---------

Signed-off-by: coolbot <76798835+coolbot100s@users.noreply.github.com>
2025-08-01 20:21:28 +00:00
jade
1c89b84314
fix(moderation): Replace dead modpack link with a valid one in side-types message (#4095) 2025-07-31 17:50:33 +00:00
IMB11
6387fb21c6
feat: Moderation Dashboard Overhaul (#4059)
* feat: Moderation Dashboard Overhaul

* fix: lint issues

* fix: issues

* fix: report layout

* fix: lint

* fix: impl quick replies

* fix: remove test qr

* feat: individual report page + use new backend

* feat: memoize filtering

* feat: apply optimizations to moderation queue

* fix: lint issues

* feat: impl quick reply functionality

* fix: top level await

* fix: dep issue

* fix: dep issue x2

* fix: dep issue

* feat: intl extract

* fix: dev-187

* fix: dev-186 & review project btn

* fix: dev-176

* remove redundant moderation button from user dropdown

* correct a msg and add admin to read filter

---------

Co-authored-by: coolbot100s <76798835+coolbot100s@users.noreply.github.com>
2025-07-29 21:19:25 +00:00
Alejandro González
c7d0839bfb
fix(labrinth): retire Sendy for new email newsletter subscriptions (#4073)
* tweak(frontend): do not sign up for the newsletter by default

* fix(labrinth): retire Sendy for new email newsletter subscriptions
2025-07-29 09:51:50 +00:00
Josiah Glosson
175b90be5a
Legacy ping support (#4062)
* Detection of protocol versions before 18w47b

* Refactor old_protocol_versions into protocol_version

* Ping servers closer to how a client of an instance's version would ping a server

* Allow pinging legacy servers from a modern profile in the same way a modern client would

* Ping 1.4.2 through 1.5.2 like a Vanilla client in those versions would when in such an instance
2025-07-28 14:44:34 +00:00
coolbot
13103b4950
various moderation fixes and improvements (#4061)
* Typo correction

* show optimization button when present in additional categories

* add more formatted link shortcuts

* Add info text to env info stage

* Only show gallery relevancy button when relevant.

* add unsupported project type message to versions stage

* Fix misuse of slug message.

* Update unsupported_project.md

* lint fix
2025-07-28 12:56:47 +00:00
Alejandro González
8804478221
fix(frontend): hide subscription button in blog before sub status is determined (#4072) 2025-07-27 20:29:21 +00:00
Emma Alexia
b8982a6d17
Hopefully fix collection visibility once and for all (#4070)
* Hopefully fix collection visibility once and for all

Follow up to #3408 and #3864

* Use same unlisted approach for collections as is used for projects
2025-07-27 18:23:49 +00:00
Emma Alexia
ff88724d01
Allow modification of failed charges on admin billing page (#4045)
* Allow modification of failed charges on admin billing page

Allows cancelling a failed subscription and forcing another charge attempt

* use addNotification
2025-07-27 17:30:16 +00:00
Emma Alexia
7dffb352d5
Fix duplicate "Upload icon Select file" on collections (#4069)
* Fix duplicate "Upload icon Select file" on collections

![lol](https://i.imgur.com/NKfvfQD.png)

* fix lint
2025-07-27 17:27:02 +00:00
Emma Alexia
1df6e29aa1
Ensure server status info is always passed to "My servers" page (#4071)
This took an insanely long time to debug and figure out you would not believe
2025-07-27 17:10:52 +00:00
Emma Alexia
5deb4179ad
Re-enable the Moderation tab for projects that are approved (#4067)
By request of the moderation team. This would allow easier access
if, e.g., the moderators tell the author of a metadata problem they
need to correct.
2025-07-27 17:07:39 +00:00
Alejandro González
358cf31c87
feat(labrinth): basic offset pagination for moderation reports and projects (#4063) 2025-07-26 12:32:35 +00:00
Prospector
6db1d66591 else if 2025-07-24 10:38:23 -07:00
Prospector
8052fda840 Bump report limit to 1500 2025-07-24 10:37:01 -07:00
IMB11
15892a88d3
fix: handle identified files properly in the checklist (#4004)
* fix: handle identified files from the backend

* fix: allFiles not being emitted after permissions flow completed

* fix: properly handle identified projects

* fix: jade issues

* fix: import

* fix: issue with perm gen msgs

* fix: incomplete error
2025-07-23 08:34:55 +00:00
Alejandro González
32793c50e1
feat(app): better external browser Modrinth login flow (#4033)
* fix(app-frontend): do not emit exceptions when no loaders are available

* refactor(app): simplify Microsoft login code without functional changes

* feat(app): external browser auth flow for Modrinth account login

* chore: address Clippy lint

* chore(app/oauth_utils): simplify `handle_reply` error handling according to review

* chore(app-lib): simplify `Url` usage out of MC auth module
2025-07-22 22:55:18 +00:00
Alejandro González
0e0ca1971a
chore(ci): switch back to upstream cache-cargo-install-action (#4047) 2025-07-22 22:43:04 +00:00
Alejandro González
bb9af18eed
perf(docker): cache image builds through cache mounts and GHA cache (#4020)
* perf(docker): cache image builds through cache mounts and GHA cache

* tweak(ci/docker): switch to inline registry cache
2025-07-22 22:31:56 +00:00
Alejandro González
d4516d3527
feat(app): configurable Modrinth endpoints through .env files (#4015) 2025-07-21 22:55:57 +00:00
Josiah Glosson
87de47fe5e
Use rust-lld linker on MSVC Windows (#4042)
The latest version of MSVC fails when linking labrinth, making now a perfect opportunity to switch over to the rust-lld linker instead.
2025-07-21 22:35:05 +00:00
Emma Alexia
7d76fe1b6a
Add more info about last attempts to admin billing dashboard (#4029) 2025-07-21 08:35:36 +00:00
Prospector
ae25a15abd Update changelog 2025-07-19 15:17:39 -07:00
Prospector
0f755b94ce
Revert "Author Validation Improvements (#3970)" (#4024)
This reverts commit 44267619b60e8ff8fcdb7579462022be187a56cc.
2025-07-19 22:04:47 +00:00
Emma Alexia
bcf46d440b
Count failed payments as "open" charges (#4013)
This allows people to cancel failed payments, currently it fails with error "There is no open charge for this subscription"
2025-07-19 14:33:37 +00:00
Josiah Glosson
526561f2de
Add --color to intl:extract verification (#4023) 2025-07-19 12:42:17 +00:00
Emma Alexia
a8caa1afc3
Clarify that Modrinth Servers are for Java Edition (#4021) 2025-07-18 18:37:06 +00:00
Emma Alexia
98e9a8473d
Fix NeoForge instance importing from MultiMC/Prism (#4016)
Fixes DEV-170
2025-07-18 13:00:11 +00:00
coolbot
936395484e
fix: status alerts and version buttons no longer cause a failed to generate error. (#4017)
* add empty message to actions with no message, fixing broken message generation.

* fix typo in 2.2 / description message.
2025-07-18 05:32:31 +00:00
Emma Alexia
0c3e23db96
Improve errors when email is already in use (#4014)
Fixes #1485

Also fixes an issue where email_verified was being set to true regardless of whether the oauth provider provides an email (thus indicating that a null email is verified)
2025-07-18 01:59:48 +00:00
Gwenaël DENIEL
013ba4d86d
Update Browse.vue (#4000)
Updated functions refreshSearch and clearSearch to reset the currentPage.value to 1

Signed-off-by: Gwenaël DENIEL <monsieur.potatoes93@gmail.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-07-17 07:58:24 +00:00
coolbot
93813c448c
Add buttons for tec team, as well as other requested actions (#4012)
* add tec rev related buttons, identity verification button, and fix edge case appearance of links stage.

* lint fix
2025-07-17 07:49:11 +00:00
coolbot
c20b869e62
fix text in license and links stages (#4010)
* fix text in license and links stages, change a license option to conditional

* remove unused project definition

* Switch markdown to use <br />

---------

Co-authored-by: Prospector <prospectordev@gmail.com>
2025-07-17 03:05:00 +00:00
Alejandro González
56c556821b
refactor(app-frontend): followup to PR #3999 (#4008) 2025-07-17 00:07:18 +00:00
IMB11
44267619b6
Author Validation Improvements (#3970)
* feat: set up typed nag (validators) system

* feat: start on frontend impl

* fix: shouldShow issues

* feat: continue work

* feat: re add submitting/re-submit nags

* feat: start work implementing validation checks using new nag system

* fix: links page + add more validations

* feat: tags validations

* fix: lint issues

* fix: lint

* fix: issues

* feat: start on i18nifying nags

* feat: impl intl

* fix: minecraft title clause update

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-07-16 22:28:42 +00:00
Prospector
90043fe84d
Remove tumblr from footer since it's no longer in use (#4001)
* Remove tumblr from footer since it's no longer in use

* remove import

* i18n extract

---------

Co-authored-by: IMB11 <hendersoncal117@gmail.com>
2025-07-16 20:44:56 +00:00
Prospector
a6a98ff63e remove import 2025-07-16 12:35:14 -07:00
AnotherPillow
911652133b
fix: report body overflowing container (#3983)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-07-16 19:09:02 +00:00
IMB11
cee1b5f522
fix: use node instance url to fix staging (#4005)
* fix: use node instance url to fix staging

* fix: check if node instance exists first
2025-07-16 18:57:31 +00:00
coolbot
62f5a23fcb
Moderation Checklist V1.5 (#3980)
* starting on new checklist implementation

Change default shouldShow behavior for stages.
add new messages and stages.
Change some existing stage logic.
Add placeholder var for the rules.

Co-Authored-By: @coolbot100s

* misc fixes + corrections

* Add clickable link previews to links stage

* Correct mislabeled title message and add new title messages

* Change message formatting, use rules variable, correct wip desc and title 1.8 messages, add tags buttons

* More applications of rules placeholder

* Add new status alerts stage

* change order of statusAlerts

* Update title related messages, add navigation based vars

* Overhaul Links stage and add new messages.

* Set message weights, add some disables

* message.mds now obey lint >:(

* fixed links text message formatting and changed an icon

* Combine title and slug stages

* Add more info to some stages and properly case stage ids

* tweak summary text formatting

* Improved tags stage info and more navigation placeholders

* redo reupload stage, more navigation placeholders, licensing stage improvements, versions stage improvements, status alerts stage improvements

* Allow modpack permissions stage to appear again by adding a dummy button.

* Update modpack permissions guidance

* fix: blog path issues

* fix: lint issues

* fix license stage text formatting

* Improve license stage

* feat: move links into one md file to be cleaner

* Update packages/moderation/data/stages/links.ts

Signed-off-by: IMB11 <hendersoncal117@gmail.com>

---------

Signed-off-by: IMB11 <hendersoncal117@gmail.com>
Co-authored-by: IMB11 <hendersoncal117@gmail.com>
Co-authored-by: IMB11 <calum@modrinth.com>
2025-07-16 18:48:26 +00:00
Silcean
eb595cdc3e
Feature/detect skin variant on fileinput (#3999)
* chaged detection algorithm, and added skin variant deteciton on fileinput

* Update skins.ts

removed leftover logs

* removed pnpm lock changes. Simplyfied the transparency check in skin variant detection

* fully reverted lock.yaml. my bad.

---------

Co-authored-by: Bronchiopator <70262842+Bronchiopator@users.noreply.github.com>
2025-07-16 10:43:30 +00:00
Josiah Glosson
572cd065ed
Allow joining offline servers from the Worlds tab (#3998)
* Allow joining offline servers from the Worlds tab

* Run intl:extract

* Fix lint
2025-07-15 23:58:04 +00:00
Prospector
76dc8a0897 Update DDoS protection on Modrinth Servers page 2025-07-15 13:51:35 -07:00
Prospector
4723de6269 Update MRS marketing and add copyright policy to footer 2025-07-15 12:36:29 -07:00
Prospector
e15fa35bad Update changelog 2025-07-15 08:15:26 -07:00
IMB11
2cc6bc8ce4
fix: unidentified files not showing in final checklist message (#3992)
* fix: unidentified files not showing in final message

* fix: remove condition
2025-07-14 15:23:15 +00:00
Nitrrine
5d19d31b2c
fix(web): prevent gallery item description from overflowing (#3990)
* fix(web): prevent gallery item description from overflowing

* break overflowing text instead of hiding it

Signed-off-by: Nitrrine <43351072+Nitrrine@users.noreply.github.com>

* fix: fix

---------

Signed-off-by: Nitrrine <43351072+Nitrrine@users.noreply.github.com>
2025-07-13 23:36:43 +00:00
IMB11
c1b95ede07
fix: checklist conditional message issues + MD formatting (#3989) 2025-07-13 20:23:06 +00:00
IMB11
058185c7fd
Moderation Checklist Fixes (#3986)
* fix: DEV-164

* fix: dev-163

* feat: DEV-162
2025-07-13 18:08:55 +00:00
IMB11
6fb125cf0f
fix: keybind issue + view moderation page on final step (#3977)
* fix: keybind issue + view moderation page on final step

* fix: go to moderation page on generate message thing
2025-07-12 21:48:53 +00:00
Alejandro González
a945e9b005
tweak(labrinth): drop last remaining dependency on system OpenSSL (#3982)
We standarized on using `rustls` as a TLS implementation across the
monorepo, which is written in Rust and has better ergonomics,
integration with the Rust ecosystem, and consistent behavior among
platforms. However, the Labrinth Clickhouse client was the last
remaining exception to this, using the native, OS-provided TLS
implementation, which on Linux is OpenSSL and requires developers and
Docker images to install OpenSSL development packages to build Labrinth,
in addition to introducing an additional runtime dependency to Labrinth.

Let's make the process of building Labrinth slightly simpler by
switching such client to `rustls` as well, which results in finally
using the same TLS implementation for everything, a simplified build and
distribution process, less transitive dependencies, and potentially
smaller binaries (since `rustls` was already being pulled in for, e.g.,
the SMTP client).
2025-07-12 13:39:41 +00:00
Josiah Glosson
b943638afb
Verify that intl:extract has been run (#3979) 2025-07-11 21:48:07 +00:00
IMB11
207dc0e2bb
fix: keybind for collapse (#3971) 2025-07-11 16:41:14 +00:00
IMB11
359fbd4738
feat: moderation improvements (#3881)
* feat: rough draft of tool

* fix: example doc

* feat: multiselect chips

* feat: conditional actions+messaages + utils for handling conditions

* feat: migrate checklist v1 to new format.

* fix: lint issues

* fix: severity util

* feat: README.md

* feat: start implementing new moderation checklist

* feat: message assembly + fix imports

* fix: lint issues

* feat: add input suggestions

* feat: utility cleanup

* fix: icon

* chore: remove debug logging

* chore: remove debug button

* feat: modpack permissions flow into it's own component

* feat: icons + use id in stage selection button

* Support md/plain text in stages.

* fix: checklist not persisting/showing on subpages

* feat: message gen + appr/with/deny buttons

* feat: better notification placement + queue navigation

* fix: default props for futureProjects

* fix: modpack perms message

* fix: issue with future projects props

* fix: tab index + z index fixes

* feat: keybinds

* fix: file approval types

* fix: generate message for non-modpack projects

* feat: add generate message to stages dropdown

* fix: variables not expanding

* feat: requests

* fix: empty message approval

* fix: issues from sync

* chore: add comment for old moderation checklist impl

* fix: git artifacts

* fix: update visibility logic for stages and actions

* fix: cleanup logic for should show

* fix: markdown editor accidental edit
2025-07-11 16:09:04 +00:00
Prospector
f7700acce4 Updated changelog 2025-07-09 22:12:32 -07:00
IMB11
87a3e2d022
fix: white cape (#3959) 2025-07-09 23:31:00 +00:00
Prospector
5d17663040
Don't unnecessarily markdown-ify links pasted into markdown editor (#3958) 2025-07-09 23:11:17 +00:00
ToBinio
cff3c72f94
feat(theseus): add snapPoints for memory sliders (#1275)
* feat: add snapPoints for memory sliders

* fix lint

* Reapply changes

* Hide snap point display when disabled

* fix unused imports

---------

Co-authored-by: Prospector <prospectordev@gmail.com>
2025-07-09 22:59:59 +00:00
Erb3
fadf475f06
docs(frontend): add security.txt (#2252)
* feat: add security.txt

Security.txt is a well-known (pun intended) file among security researchers, so they don't have to go scavenging for your security information. More information is available on [securitytxt.org](https://securitytxt.org/).

I've set the following values:

- The email to contact with issues, `jai@modrinth.com`. This is the email stated in the security policy. If you wish to not include it here due to spam, you should also not have it as a `mailto` link in the security policy.
- Expiry is set to 2030. By this time Modrinth has become the biggest Minecraft mod distributor, and having expanded into other games. By this time they should also have updated this file.
- English is the preferred language
- The file is located at modrinth.com/.well-known/security.txt
- The security policy is at https://modrinth.com/legal/security

The following values have been left unset:

- PGP key, not sure where this would be located, if there is one
- Acknowledgments. Modrinth does currently not have a site for thanks
- Hiring, as it wants security-related positions
- CSAF, a Common Security Advisory Framework ?

* fix(docs): reduce security.txt expiry

This addresses a concern where the security.txt has a long expiration date. Someone could treat this as "use this until then", which we don't want since it's a long time. The specification recommends no longer than one year, as it is to mark as stale.

From the RFC:

> The "Expires" field indicates the date and time after which the data contained in the "security.txt" file is considered stale and should not be used (as per Section 5.3). The value of this field is formatted according to the Internet profiles of [ISO.8601-1] and [ISO.8601-2] as defined in [RFC3339]. It is RECOMMENDED that the value of this field be less than a year into the future to avoid staleness.

Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>

* fix(frontend): extend security.txt expiry

It takes so long to merge the PR :(

Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>

* docs(frontend) careers link in security.txt

Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>

---------

Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>
Co-authored-by: Erb3 <49862976+Erb3@users.noreply.github.com>
2025-07-09 15:51:46 -07:00
tippfehlr
7228499737
fix(theseus-gui): fix sort/group by game version (#1250)
* fix(theseus-gui): fix sort/group by game version

In the Library, game version 1.8.9 is sorted/grouped after 1.20 because
the default sorting sorts 2 < 8
therefore localeCompare(with numeric=true) is needed, it detects 8 < 20
and puts the versions in the correct order.

* lint

---------

Co-authored-by: Prospector <prospectordev@gmail.com>
2025-07-09 22:30:11 +00:00
Prospector
bca467a634
Add coventry europe region support (#3956)
* Add coventry europe region support, rename germany EU location to central europe

* extract messages

* extract messages again
2025-07-09 22:27:59 +00:00
IMB11
cb72d2ac80
Skins improvements/fixes (#3943)
* feat: only initialize batch renderer if needed & head storage

* feat: support webp storage of skin renders if supported (falls back to png if not)

* fix: performance improvements with cache loading+saving

* fix: mirrored skins + remove cape model for embedded cape

* feat: antialiasing

* fix: leg jumping & store fbx's for reference

* fix: lint issues

* fix: lint issues

* feat: tweaks to radial spotlight

* fix: app nav btn colors
2025-07-09 21:41:36 +00:00
Nitrrine
3c79607d1f
feat(app): increase logs card height (#3953) 2025-07-09 21:39:51 +00:00
Alejandro González
36ad1f16e4
ci(theseus): assorted tweaks and fixes (#3949)
* ci(theseus-build): ensure only relevant bundle artifacts are uploaded

Tauri leaves behind quite a bit of intermediate garbage in these target
folders, even when building with no build cache.

* ci(theseus-release): fix typo in RPM package URL generation

* ci(theseus-build): generate shorter and more user-friendly commit build versions
2025-07-08 21:02:17 +00:00
Prospector
5d4f334505 Update changelog 2025-07-08 13:57:06 -07:00
Prospector
1fdb5ba748
Add authors to blog posts and shorten some summaries (#3940) 2025-07-08 20:48:27 +00:00
IMB11
26df6f51ef
fix: composable used outside ... issue + disable cache (#3947) 2025-07-08 20:09:36 +00:00
Alejandro González
6caf794ae1
dist(docker): add curl package to Labrinth image, some other minor tweaks (#3915)
* dist(docker): add `.dockerignore` as symlink to `.gitignore`

This ensures that no files outside of version control are transferred to
the Docker build context for Labrinth and Daedalus images, which
significantly improves build speed (if a `target` directory is already
present) and build reproducibility.

* chore(dist/docker): simplify out unneeeded statements, move `SQLX_OFFLINE` env var setting to build command itself

The latter approach ensures that developers building the image locally
don't forget to set `SQLX_OFFLINE`, too.

* dist(docker): add `curl` package to Labrinth image
2025-07-08 19:22:15 +00:00
Alejandro González
2692953e31
fix(app): make Party Alex bonus default skin have slim arms (#3945)
This skin was incorrectly declared as having wide arms. Resolves #3941.
2025-07-08 19:03:30 +00:00
Prospector
242fd713ab Update changelog 2025-07-08 11:06:50 -07:00
IMB11
7a12c4d5e2
feat: reimplement error handling improvements w/o polling (#3942)
* Reapply "fix: error handling improvements (#3797)"

This reverts commit e0cde2d6ff1187b2ee2346ec6aea67a3190573cd.

* fix: polling issues

* fix: circuit breaker logic for spam

* fix: remove polling & ping test node instead

* fix: remove broken url from debugging

* fix: show error information display if node access fails in fs module
2025-07-08 17:40:44 +00:00
Prospector
f256ef43c0 Add x-archon-request header 2025-07-07 22:16:26 -07:00
Prospector
e0cde2d6ff Revert "fix: error handling improvements (#3797)"
This reverts commit 706976439db46125f9a9a9ea177ac9074d4147a8.
2025-07-07 17:37:43 -07:00
Prospector
e4e77dc0d2 Revert "temp: do not retry MRS requests"
This reverts commit 8ba6467f21ba495fdfa07816d8d89bdad80a189e.
2025-07-07 17:07:27 -07:00
Prospector
8ba6467f21 temp: do not retry MRS requests 2025-07-07 16:49:17 -07:00
Josiah Glosson
088cb54317
Fix failure when "Test"ing a Java installation (#3935)
* Fix failure when "Test"ing a Java installation

* Fix lint
2025-07-07 19:11:36 +00:00
Josiah Glosson
c47bcf665d
Fix MinecraftLaunch failing in the case of a package-private main class on Java 8 (#3932)
I don't know of any mod loaders where this is the case, but better be safe than sorry
2025-07-07 15:42:38 +00:00
Prospector
bc90c27e27 Add ?new to url to give it a new key 2025-07-07 01:18:40 -07:00
Prospector
c1be57773a Update changelog 2025-07-07 01:10:51 -07:00
IMB11
315c68912c
fix: use watch for links not mount event (#3929) 2025-07-07 08:01:21 +00:00
Prospector
559d203996
Add a hack to temporarily patch Java 8 not working (#3927) 2025-07-07 00:52:41 -07:00
Prospector
54522518c3 Update changelog + blog post time 2025-07-06 16:37:47 -07:00
Prospector
bacb1561d5
Allow http from asset.localhost and textures.minecraft.net on mac (#3922) 2025-07-06 22:31:55 +00:00
IMB11
b8521f926f
feat: skins blogpost (#3904)
* feat: skins blogpost

* fix: clarify changelog note

* Update packages/blog/articles/skins-now-in-modrinth-app.md

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
Signed-off-by: IMB11 <hendersoncal117@gmail.com>

* fix: review issues

* fix: lint

---------

Signed-off-by: IMB11 <hendersoncal117@gmail.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-07-06 21:43:36 +00:00
IMB11
b29672f4b4
fix: model issues & move to @modrinth/assets (#3911)
* fix: model issues & move to `@modrinth/assets`

* revert: vscode settings change

* fix: remove unused props
2025-07-06 21:42:55 +00:00
Alejandro González
a32fe6a41f
ci: revamp app build workflow, introduce a new one for release deployment (#3921)
* feat(ci): clean up app release build workflow, set app versions to match tag's

* feat(ci): rename Theseus build workflow, add new release workflow

* chore(ci): minor tweaks to `theseus-build` workflow

* chore: update workflow reference in comments
2025-07-06 21:41:52 +00:00
IMB11
0e35135093
refactor: cleanup & fix caching issues on /app page. (#3919) 2025-07-06 21:41:21 +00:00
Josiah Glosson
31ecace083
Fix launching older Forge versions (#3920) 2025-07-06 19:09:49 +00:00
Alejandro González
e5b134f8f4
feat(app): add free official Java Edition skin packs as default skins (#3913) 2025-07-06 10:16:11 +00:00
Ben
139a4863d1
Fix typo for skin name tag settings (#3903)
Signed-off-by: Ben <67504107+bjsho@users.noreply.github.com>
2025-07-05 19:42:20 +00:00
Prospector
8faea1663a liiiiint 2025-07-05 11:37:41 -07:00
Prospector
ece8a07486 Fix bugs with 0.10.0, update changelog 2025-07-05 11:33:28 -07:00
Alejandro González
0030f35d0c
fix(theseus): make SQLx migration checksums match the deployed ones on Windows (#3899) 2025-07-05 03:39:52 +00:00
Prospector
1e24225350 Bump app version to 0.10.1 2025-07-04 20:41:27 -07:00
Prospector
e84a178586 add web changelog 2025-07-04 11:46:31 -07:00
Prospector
0a83ed965e Update changelog time 2025-07-04 11:44:39 -07:00
Alejandro González
30035a9a1c
fix(app): adjust CSP settings for skin manager to work (#3895)
* fix(app): adjust CSP settings for skin manager to work

* tweak: allow current Tauri scheme in CSP

* tweak: remove references to invalid `sunny.png` texture in skin models

These were causing load errors in production app builds.

* tweak: use proper URL imports for skin models

This fixes importing these models in production builds of the app.

* chore(app-frontend): use more proper import style for glTF assets

* tweak: use proper URL imports for skin models in more places
2025-07-03 23:22:00 +00:00
Alejandro González
512d456c66
fix(app): use the same CSP during tauri dev as tauri build (#3894)
* fix(app): use the same CSP during `tauri dev` as `tauri build`

* chore(app-frontend): make Vite WS CSP policy a bit more strict

* tweak: make Tauri CSP config object readable again

At the cost of some extra code in the Vite config side, but I think it's
worth it.

* chore: fix linter warning in app frontend introduced who knows where else

We need a Git hook to ensure these things aren't pushed only to explode
later on or something.
2025-07-03 21:50:34 +00:00
Prospector
bff26af465 Fix vanilla instances showing as 'Vanilla Shader' 2025-07-03 11:58:27 -07:00
IMB11
f4d0f14cb6
fix: use --landing-raw-bg instead of bg-bg/bg-black (#3891) 2025-07-03 18:51:49 +00:00
Prospector
55916b6bda Fix one version number being wrong 2025-07-03 11:39:49 -07:00
Prospector
a38e1dee1f Remove duplicate changelog 2025-07-03 11:32:57 -07:00
Prospector
ef76a81cd5 Add app 0.10.0 changelog 2025-07-03 11:12:26 -07:00
Ken
9dc5644264
fix: fixed wrong email address (#3884)
* Fix wrong email address

Signed-off-by: Ken <131881470+Keniis0712@users.noreply.github.com>

* Decouple SMTP auth identity from message sender

Signed-off-by: Ken <131881470+Keniis0712@users.noreply.github.com>

* Add new configurations to .env file

Signed-off-by: Ken <131881470+Keniis0712@users.noreply.github.com>

* Update mod.rs

Signed-off-by: Ken <131881470+Keniis0712@users.noreply.github.com>

* Remove unused import

Signed-off-by: Ken <131881470+Keniis0712@users.noreply.github.com>

* Give SMTP_FROM_ADDRESS a default value

Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
Signed-off-by: Ken <131881470+Keniis0712@users.noreply.github.com>

* Add the correct host name

Signed-off-by: Ken <131881470+Keniis0712@users.noreply.github.com>

* Fix CI failure

Signed-off-by: Ken <131881470+Keniis0712@users.noreply.github.com>

* Update mod.rs

Signed-off-by: Ken <131881470+Keniis0712@users.noreply.github.com>

---------

Signed-off-by: Ken <131881470+Keniis0712@users.noreply.github.com>
Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
Co-authored-by: Emma Alexia <emma@modrinth.com>
2025-07-03 15:41:13 +00:00
Alejandro González
8e35cf6957
fix: format PromotionWrapper.vue according to Prettier style (#3892) 2025-07-03 15:14:54 +00:00
Prospector
ae1c3d6531 Bump app version 2025-07-02 23:55:55 -07:00
Prospector
4964c8d373
Swap MR+ ad fallback to MRS (#3890)
* Replace Modrinth+ ad placeholder promo with Modrinth Servers promo

* Color toggle on web

* Remove plus link click helper
2025-07-02 21:50:33 -07:00
Josiah Glosson
497b2e977e
Make tauri-plugin-http a workspace dependency (#3886) 2025-07-02 23:12:10 +00:00
IMB11
f95d0d78f2
feat(app): skins frontend (#3657)
* chore: typo fix and formatting tidyups

* refactor(theseus): extend auth subsystem to fetch complete user profiles

* chore: fix new `prettier` lints

* chore: document differences between similar `Credentials` methods

* chore: remove dead `profile_run_credentials` plugin command

* feat(app): skin selector backend

* enh(app/skin-selector): better DB intension through deferred FKs, further PNG validations

* chore: fix comment typo spotted by Copilot

* fix: less racy auth token refresh logic

This may help with issues reported by users where the access token is
invalid and can't be used to join servers over long periods of time.

* tweak(app-lib): improve consistency of skin field serialization case

* fix(app-lib/minecraft_skins): fix custom skin removal from DB not working

* Begin skins frontend

* Cape preview

* feat: start on SkinPreviewRenderer

* feat: setting for nametag

* feat: hide nametag setting (sql)

* fix: positioning of meshes

* fix: lighting

* fix: allow dragging off-bounds

* fix: better color mapping

* feat: hide nametag setting (impl)

* feat: Start on edit modal + cape button cleanup + renderer fixes

* feat: Finish new skin modal

* feat: finish cape modal

* feat: skin rendering on load

* fix: logic for Skins.vue

* fix: types

* fix: types (for modal + renderer)

* feat: Editing?

* fix: renderer not updating variant

* fix: mojang username not modrinth username

* feat: batched skin rendering - remove vzge references (apart from capes, wip)

* feat: fix sizing on SkinButton and SkinLikeButton, also implement bust positioning

* feat: capes in preview renderer & baked renders

* fix: lint fixes

* refactor: Start on cleanup and polish

* fix: hide error notification when logged out

* revert: .gltf formatting

* chore(app-frontend): fix typos

* fix(app-lib): delay account skin data deletion to next reboot

This gives users an opportunity to not unexpectedly lose skin data in
case they log off on accident.

* fix: login button & provide/inject AccountsCard

* polish: skin buttons

* fix: imports

* polish: use figma values

* polish: tweak underneath shadow

* polish: cursor grab

* polish: remove green bg from CapeLikeTextButton when selected.

* polish: modal tweaks

* polish: grid tweaks + start on upload skin modal

* polish: drag and drop file flow

* polish: button positioning in SkinButton

* fix: lint issues

* polish: deduplicate model+cape stuff and fix layout

* fix: lint issues

* fix: camel case requirement for make-default

* polish: use indexed db to persist skin previews

* fix: lint issues

* polish: add skin icon sizing

* polish: theme fixes

* feat: animation system for skin preview renderer

* feat(app/minecraft_skins): save current custom external skin when equipping skins

* fix: cape button & dynamic nametag sizing

* feat(theseus): add `normalize_skin_texture` Tauri command

This command lets the app frontend opt in to normalizing the texture of
any skin, which may be in either the legacy 64x32 or newer 64x64 format,
to the newer 64x64 format for display purposes.

* chore: Rust build fixes

* feat: start impl of skin normalization on frontend

* feat(theseus): change parameter type of `normalize_skin_texture` Tauri command

* fix: normalization

* fix(theseus): make new `normalize_skin_texture` command usable

* feat: finish normalization impl

* fix: vueuse issue

* fix: use optimistic approach when changing skins/capes.

* fix: nametag cleanup + scroll fix

* fix: edit modal computedAsync not fast enough for skin preview renderer

* feat: classic player model animations

* chore: fix new Clippy lint

* fix(app-lib): actually delete custom skins with no cape overrides

* fix(app-lib): handle repeated addition of the same skin properly

* refactor(app-lib): simplify DB connection logic a little

* fix: various improvements

* feat: slim animations

* fix: z-fighting on models

* fix: shading + lighting improvements

* fix: shadows

* fix: polish

* fix: polish

* fix: accounts card not having the right head

* fix: lint issues

* fix: build issue

* feat: drag and drop func

* fix: temp disable drag and drop in the modal

* Revert "fix: temp disable drag and drop in the modal"

This reverts commit 33500c564e3f85e6c0a2e83dd9700deda892004d.

* fix: drag and drop working

* fix: lint

* fix: better media queries

* feat(app/skins): revert current custom external skin storing on equip

This reverts commit 0155262ddd081c8677654619a09e814088fdd8b0.

* regen pnpm lock

* pnpm fix

* Make default capes a little more clear

* Lint

---------

Co-authored-by: Alejandro González <me@alegon.dev>
Co-authored-by: Prospector <prospectordev@gmail.com>
2025-07-02 20:32:15 +00:00
Prospector
94a7d13af8
Add creator blog post (#3882)
* Add creator blog post

* Update date
2025-07-02 04:30:02 +00:00
Emma Alexia
3a10e63756
Add blog post: Pride Month 2025 campaign (#3879)
* Add blog post: Pride Month 2025 campaign

* fix lint maybe

* Revert changes to other stuff

* run fix

* use local links

* re-run fix

---------

Co-authored-by: Prospector <prospectordev@gmail.com>
2025-07-02 01:26:49 +00:00
IMB11
238138d56e
fix: app blog issues & consistency (#3880)
* fix: app fetch

* fix: webp default images

* fix: lint issues

* feat: remove default thumbnail from app assets

* fix: webp paths

* fix: use ` instead of "/'

* fix: use AutoLink

* Fix featured article link + changelog page

---------

Co-authored-by: Prospector <prospectordev@gmail.com>
2025-07-02 01:03:58 +00:00
IMB11
1846c59733
feat: DEV-132 automatic icon generation (#3878)
* feat: automatic icon generation

* fix: lint

* fix: broken icon imports after changes

* fix: deps
2025-07-01 20:54:21 +00:00
Prospector
f1207f0a3a Fix external icons 2025-06-30 19:09:54 -07:00
Prospector
26e964174d Fix duplicate article in blog 2025-06-30 19:06:47 -07:00
Prospector
897418ead3 Fix moderation message article link 2025-06-30 19:05:16 -07:00
IMB11
eef09e1ffe
feat: DEV-99 blog migration (#3870)
* feat: blog migration w/ fixes

Co-authored-by: Prospector <prospectordev@gmail.com>

* feat: add changelog button to news page

* fix: lint issues

* refactor: replace nuxt content with `@modrinth/blog`

* feat: shared public folder

* feat: try lazy loading html content

* feat: rss + hide newsletter btn + blog.config.ts

* feat: add new chapter modrinth servers post

* fix: lint issues

* fix: only generate RSS feed if changes detected

* fix: utils dep

* fix: lockfile dep

* feat: GET /email/subscribe + subscription button

* fix: lint issues

* feat: articles.json for app

* Made grid more responsive

* fix: changes

* Make margin slightly smaller in lists

* Fix footer link

* feat: latest news

* Fix responsiveness

* Remove old utm link

* Update changelog

* Lint

---------

Co-authored-by: Prospector <prospectordev@gmail.com>
2025-06-30 18:59:08 -07:00
Emma Alexia
fdb2b1195e
Fix some copy codes and avatars not showing up (#3876)
I blame @imb11
2025-07-01 01:02:38 +00:00
IMB11
4b3e036e2a
fix: cmp-info route. (#3875) 2025-06-30 22:51:40 +00:00
Josiah Glosson
3233e7fc54
Fix old Minecraft versions not having playtime resolved for servers (#3871)
* Fix old Minecraft versions not having playtime resolved for servers

* Revert and clean up get_server_worlds_in_profile a bit

* Add a semaphore to resolve_server_address in general to apply to all DNS queries

* Remove unused tokio-stream dependency from theseus
2025-06-30 22:36:38 +00:00
IMB11
dd98a1316a
fix: Unsatisfactory rounding of download sums (#3872)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-06-30 22:08:05 +00:00
IMB11
e5030a8fbe
feat: mrpack upload progress in modal (#3867)
* feat: mrpack upload progress in modal

* fix: remove min progress
2025-06-30 21:52:03 +00:00
IMB11
f549560e47
fix: broken files status card on server panel (#3873) 2025-06-30 21:47:30 +00:00
Jai Agrawal
33d26238ce
Fix revenue route incorrect filter (and commit bank transaction) (#3874)
* Fix revenue route incorrect filtering

* Actually commit transaction
2025-06-30 14:45:23 -07:00
Alejandro González
bcec478a64
fix(app-frontend): clamp current page in searches to the max possible (#3869) 2025-06-30 14:12:24 +00:00
Jai Agrawal
8971d39683
Add bank balances to DB (#3860) 2025-06-29 14:46:54 +00:00
Tiger
1c1631f131
fix: tooltip text color (#3866) 2025-06-29 14:46:15 +00:00
Emma Alexia
14b1ff79e0
Fix empty collections being shown on user pages (#3864)
Originally changed in #3408 but didn't address the full issue.
2025-06-29 13:37:41 +00:00
Emma Alexia
479aaf503b
Force RAM to be listed by bytes instead of percent when in dev mode (#3853)
* Force RAM to be listed by bytes instead of percent when in dev mode

Makes things easier for support.

* fix lint
2025-06-29 08:47:03 +00:00
Alejandro González
240cccf8a1
Tweak Modrinth+ page according to latest changes (#3863)
* tweak(pages/plus): update lack of ads perk desc to match latest changes

* tweak(pages/plus): more perks coming soon -> soon™

At this point it feels a bit fake for reasonable definitions of "soon"
to keep stating that more perks are coming "soon", even though it's not
something that has not been discarded altogether.

However, I think everyone can agree on a more playful and realistic
"soon™" deadline, because everyone likes memes and can relate to things
taking longer to come to fruition than planned :)
2025-06-29 00:14:59 +00:00
Jai Agrawal
2599dc2672
Disable ads for logged in users (web) (#3858)
* Disable ads for logged in users (web)

* Fix lint
2025-06-28 22:00:40 +00:00
Emma Alexia
e2668f20b7
Give free upgrades when billing period is near its end (#3851)
Some users elect to try to perform their upgrade immediately before their subscription renews. However, we throw an error whenever the proration charge is under 30 cents because we lose more money on fees than we gain by charging the customer. This PR changes charges so that the user's server will simply be provided a free upgrade instead of requiring them to wait until after their next renewal.
2025-06-28 21:57:38 +00:00
Jai Agrawal
cf767c7ef2
Fix platform revenue route (#3857) 2025-06-28 21:55:01 +00:00
IMB11
14a7787e3d
fix: info panel (#3859) 2025-06-28 21:54:56 +00:00
Josiah Glosson
db963eb5de
Set JAVA_HOME to JAVA_HOME_11_X64 on Windows for theseus-release (#3848)
* Set JAVA_HOME to JAVA_HOME_11_X64 on Windows for theseus-release

* Add quotes around $env:JAVA_HOME_11_X64

Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
Signed-off-by: Josiah Glosson <soujournme@gmail.com>

---------

Signed-off-by: Josiah Glosson <soujournme@gmail.com>
Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
2025-06-27 15:44:36 +00:00
Alejandro González
a1812cd954
fix(labrinth): set a proper replica identity during the environments migration (#3852)
This should fix a migration error that happened on our production
environment.
2025-06-27 12:16:02 +00:00
Josiah Glosson
5ed9d1749a
Rust dependency updates (#3849)
* Update async-compression 0.4.24 -> 0.4.25

* Update reqwest 0.12.19 -> 0.12.20

* Update rust_decimal 1.37.1 -> 1.37.2

* Update sentry 0.38.1 -> 0.41.0

* Update sentry-actix 0.38.1 -> 0.41.0

* Update serde_with 3.12.0 -> 3.13.0

* Update tauri 2.5.1 -> 2.6.1 and all Tauri dependencies

* Update zip 4.0.0 -> 4.2.0

* Update Rust 1.87.0 -> 1.88.0
2025-06-27 09:54:51 +00:00
Emma Alexia
17ca209862
Always show developer mode attributes on admin billing page (#3850)
* Always show developer mode attributes on admin billing page

* Unprovision servers by default when refunding
2025-06-27 01:04:52 +00:00
Alejandro González
03192c1dfd
fix(app-lib): do not softlock tauri dev when a Gradle build is invoked (#3847)
An unforeseen consequence of PR #3833 landing was that `tauri dev`
stopped working reliably, getting softlocked when the `app-lib` crate
build script actually needed to build Java scripts: Gradle always
modifies a few files under the `.gradle` directory when run, which get
picked up by Tauri as source code changes that should trigger a rebuild,
but such rebuild triggers Gradle to run and modify those files again ad
infinitum.

This change fixes that by adding such a directory to a documented Tauri
exclusion file, restoring such functionality back.
2025-06-26 21:46:46 +00:00
Emma Alexia
6f03fae233
Clear owner's project cache after deleting organization (#3794)
* Clear owner's project cache after deleting organization

Fixes an issue where people would think their projects were deleted along with their organization, when this isn't actually the case.

* address PR review

* Update apps/labrinth/src/routes/v3/organizations.rs

Signed-off-by: Emma Alexia <wafflecoffee7@gmail.com>

* Fix lint

* actually fix lint

---------

Signed-off-by: Emma Alexia <wafflecoffee7@gmail.com>
2025-06-26 19:30:58 +00:00
Emma Alexia
22fc0c994d
Remove new-projects channel emojis (#3843)
* Remove new-projects channel emojis

With new loaders, this functionality has become unwieldy. We don't have enough emoji slots in the server for the number of emojis we'd need for the loaders. It is easiest to simply format them in the same way knossos does.

Note: I forgor how the borrow checker works, this compiles but I'm sure it's gore to anyone who actually knows the difference between a string slice and a String, I come from Javaland though so pls forgive

* Rename func accordingly
2025-06-26 18:54:22 +00:00
Josiah Glosson
a1ccbc5757
Update Java to 11 with --release 8 (#3846) 2025-06-26 18:38:58 +00:00
Jai A
053cf10198 Update ads.txt again
(cherry picked from commit 67304fab25ed37ed3e39766dc9378ae3a760cb06)
2025-06-26 11:08:44 -07:00
Jai A
257efd8ad7 Update ads.txt
(cherry picked from commit 01037c184efad97e4b9f1a11c3e7e1eb21d44510)
2025-06-26 11:08:44 -07:00
Alejandro González
b75cfc063b
Sign Windows Theseus binaries with DigiCert KeyLocker's cloud HSM (#3838)
* feat(ci): sign Windows Theseus bins with DigiCert KeyLocker cloud HSM

* perf(ci): speed up Jsign installation

* fix(ci): use absolute path to DigiCert client certificate

This should avoid errors related to Jsign not being able to find it
we've seen on CI.

* fix(ci): trim strange characters out from DigiCert credentials

* ci: another attempt at fixing Jsign errors

* chore: add comment mentioning why `jsign` choco deps are ignored

* tweak: move KeyLocker signing config to CI release Tauri config file

This prevents casual local builds from attempting to use a signing
command they really can't use, improving developer experience.

* tweak(ci/windows): do not waste time and signatures with MSIs

We aren't distributing these anyway. This should reduce the signing
operations required for building the app from 5 (one for the binary,
another for the MSI installer, two for WiX extension DLLs and one for
the NSIS installer) to 2.

* feat(ci): make Windows code signing toggleable, do not sign non-final builds

* chore(ci): tweak `sign-windows-binaries` input wording

* fix(ci): deal with usual Powershell syntax shenanigans

* fix(ci): work around more Powershell syntax shenanigans

Who thought it'd be a good idea to make a comma a synonymous of a space
for separating command line arguments? Why have to characters for the
same thing?

* perf(ci): do not run app build workflow on Labrinth changes

Labrinth is not related to the app at all, so this is just a waste of CI
minutes.

* ci(theseus): enable Windows code signing by default for manual triggers

These are expected to be not that common, so defaulting to what causes
the least human errors when it comes to publishing a release makes most
sense.
2025-06-26 17:43:20 +00:00
Prospector
2d8420131d Update changelog 2025-06-26 10:45:48 -07:00
Prospector
c793b68aed
Add quick server button, dynamic price preview for custom server modal (#3815)
* Add quick server creation button, and dynamic pricing to custom server selection

* Remove test in compatibility card

* Lint + remove duplicate file

* Adjust z-index of popup

* $6 -> $5

* Dismiss prompt if the button is clicked

* Make "Create a server" disabled for now

* Use existing loaders type
2025-06-26 15:38:42 +00:00
Josiah Glosson
47af459f24
Migrate Java code to Gradle (#3833)
* Create get_resource_file macro to get an embedded resource

If the tauri feature is enabled, the resource will be loaded from Tauri resources.
If the tauri feature is disabled, the resource will be extracted to a temp directory.

* Wrap process execution to inject system properties through stdin

* Pass the time values as ISO 8601 datetimes

* Remove entirely internal modrinth.process.uuid

* Redo Java version checking somewhat and fix a few bugs with it

* Fix game launch with early access versions of Java

* Format Java code

* Use Gradle to build Java code

* Make Gradle build reproducible

* Fix constant rebuilds

* Get rid of unnecessary rebuilds

* Fix modrinth.profile.modified being the same as modrinth.profile.created

* Make javac use all lints and treat them as errors

* Force Gradle color output

* Add Java formatting config

* Make gradlew executable

* Revert to manually extracting class files

* Switch to using update resource macro

* fix: make `app-lib` build again

---------

Co-authored-by: Alejandro González <me@alegon.dev>
2025-06-26 14:56:35 +00:00
Josiah Glosson
f10e0f2bf1
Pass system properties into Minecraft (+ some launch code cleanup) (#3822)
* Create get_resource_file macro to get an embedded resource

If the tauri feature is enabled, the resource will be loaded from Tauri resources.
If the tauri feature is disabled, the resource will be extracted to a temp directory.

* Wrap process execution to inject system properties through stdin

* Pass the time values as ISO 8601 datetimes

* Remove entirely internal modrinth.process.uuid

* Redo Java version checking somewhat and fix a few bugs with it

* Fix game launch with early access versions of Java

* Format Java code

* Fix modrinth.profile.modified being the same as modrinth.profile.created

* Revert to manually extracting class files
2025-06-26 13:23:14 +00:00
Alejandro González
569d60cb57
tweak(labrinth): return proper error message for invalid password change flows (#3839) 2025-06-25 16:51:08 +00:00
Ken
74d36a6a2d
Update config.toml (#3832)
Signed-off-by: Ken <131881470+Keniis0712@users.noreply.github.com>
2025-06-23 22:40:16 +00:00
Prospector
ced073d26c
Add colors for new loaders, reduce utility redundancy (#3820)
* Add colors to some newer loaders

* Make loader formatting consistent everywhere, remove redundant utilities
2025-06-21 14:35:42 +00:00
Josiah Glosson
cc34e69524
Initial shared instances backend (#3800)
* Create base shared instance migration and initial routes

* Fix build

* Add version uploads

* Add permissions field for shared instance users

* Actually use permissions field

* Add "public" flag to shared instances that allow GETing them without authorization

* Add the ability to get and list shared instance versions

* Add the ability to delete shared instance versions

* Fix build after merge

* Secured file hosting (#3784)

* Remove Backblaze-specific file-hosting backend

* Added S3_USES_PATH_STYLE_BUCKETS

* Remove unused file_id parameter from delete_file_version

* Add support for separate public and private buckets in labrinth::file_hosting

* Rename delete_file_version to delete_file

* Add (untested) get_url_for_private_file

* Remove url field from shared instance routes

* Remove url field from shared instance routes

* Use private bucket for shared instance versions

* Make S3 environment variables fully separate between public and private buckets

* Change file host expiry for shared instances to 180 seconds

* Fix lint

* Merge shared instance migrations into a single migration

* Replace shared instance owners with Ghost instead of deleting the instance
2025-06-19 19:46:12 +00:00
IMB11
d4864deac5
fix: intercom bubble colliding with notifications (#3810) 2025-06-19 15:18:10 +00:00
IMB11
125207880d
fix: state update race conditons (#3812) 2025-06-19 15:18:00 +00:00
IMB11
a8f17f40f5
fix: unclear file upload errors temp fix (#3811) 2025-06-19 15:17:50 +00:00
Prospector
dbde3c4669
Remove duplicate components in web frontend Avatar, Badge, CopyCode, and Pagination (#3741) 2025-06-19 00:07:15 +00:00
Josiah Glosson
ba4fecb0cb
Fix direct lint of packages/app-lib (#3808)
* Fix theseus lint by adding "unstable" feature to Tauri

* Remove "unstable" feature from tauri in apps/app
2025-06-18 20:49:23 +00:00
Alejandro González
ef04dcc37b
feat(labrinth): rework v3 side types to a single environment field (#3701)
* feat(labrinth): rework v3 side types to a single `environment` field

This field is meant to be able to represent the existing v2 side type
information and beyond, in a way that may also be slightly easier to
comprehend.

* chore(labrinth/migrations): use proper val for `HAVING` clause

* feat(labrinth): add `side_types_migration_review_status` field to projects
2025-06-16 22:44:57 +00:00
Prospector
65126b3a23 Update changelog again 2025-06-16 11:00:15 -07:00
Prospector
58495e6276 Update changelog 2025-06-16 10:59:01 -07:00
IMB11
706976439d
fix: error handling improvements (#3797)
* fix: error handling improvements

* refactor: error info cards

* refactor: PyroError -> ModrinthError

* fix: lint

* fix: idiot

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-06-16 17:34:18 +00:00
jade
0a9ffd3dc8
fix(moderation): Insufficient gallery images moderation message indentation (#3799) 2025-06-16 16:48:35 +00:00
Alejandro González
fb30c0ba2b
feat(labrinth): allow protected resource and data packs to pass validation (#3792)
* fix(labrinth): return version artifact size exceeded error eagerly

Now we don't wait until the result memory buffer has grown to a size
greater than the maximum allowed, and instead we return such an error
before the buffer is grown with the current chunk, which should reduce
memory usage.

* fix(labrinth): proper supported game versions range for datapacks

* feat(labrinth): allow protected resource and data packs to pass validation
2025-06-16 16:30:01 +00:00
Alejandro González
97e4d8e132
fix(labrinth): ensure versions get removed from search indexes before ending route execution (#3789)
* fix(labrinth): ensure versions get removed from search indexes before ending route execution

* chore: run `sqlx prepare`

* chore(labrinth): simplify `remove_documents` a little

* chore: tweak new comment
2025-06-16 15:48:04 +00:00
Emma Alexia
5bdff3929b
Allow failed subscriptions to be cancelled (#3795)
When a payment for a subscription fails, we continue to try to re-attempt retrieving payment for 30 days.

Sometimes making it fail is an intentional choice on the user's part (e.g. Privacy.com card) or other times the user just doesn't want their subscription anymore after it fails.

This PR allows users with a failed payment to simply cancel instead of waiting for the 30-day timer to set in.
2025-06-16 05:41:07 +00:00
Prospector
a08562bfe2 Update changelog 2025-06-15 16:19:20 -07:00
Prospector
2b4319ea55
Servers hotfixes (#3793)
* servers: Fix installing modpacks from search

* remove console.log

* Fix subdomain setting
2025-06-15 16:17:38 -07:00
Prospector
c32405720d Fix changelog 2025-06-15 14:39:19 -07:00
Alejandro González
b9ba3cd3e8
fix(labrinth): use a proper CDN_URL for local deployments (#3791) 2025-06-15 15:19:56 +00:00
Prospector
31381c860b Update changelog 2025-06-14 10:47:19 -07:00
IMB11
e410a07cac
fix: usePyroServers -> useModrinthServers (#3788) 2025-06-14 11:27:38 +00:00
Prospector
9f93cd8705 Update changelog 2025-06-13 19:15:44 -07:00
Prospector
dd391be095 Fix lint 2025-06-13 18:59:28 -07:00
Alejandro González
f84f8c1c2b
chore(clippy): enable and fix many stricter lints (#3783)
* chore(clippy): enable and fix many stricter lints

These ensure that the codebase uses more idiomatic, performant, and
concise language constructions.

* chore: make non-Clippy compiler warnings also deny by default
2025-06-14 00:10:12 +00:00
Alejandro González
301967d204
refactor: inherit Clippy lint config and Rust edition from workspace (#3782)
* refactor: inherit Clippy lint config and Rust edition from workspace

This also ensures developers running `clippy lint` locally get the same
lints as during CI, especially when the Rust toolchain version is fixed
through a `rust-toolchain.toml` file.

* chore(clippy.toml): bump MSRV to 1.87
2025-06-13 23:16:48 +00:00
Alejandro González
c9b98a6154
Small CI flakiness fix and performance tweak (#3780)
* perf(ci): use Turbo to schedule both `lint` and `test` tasks at once

* fix(ci): wait until service containers are initialized for tests

This is achieved by adding a health check to the containers, and
instructing the CI workflow to wait until the containers are healthy.
Not doing this wait risks spurious CI failures due to DB migrations
being applied before the DB even starts.

* chore(turbo): use locally installed schema in new Turbo override file

On the latest versions of Turbo, this ensures that the used schema is
always in sync with what's available in the installed Turbo version,
which is something that has already caused confusion to me before.
2025-06-13 21:34:40 +00:00
Alejandro González
ab8e474339
Update Rust and Turbo versions (#3781)
* chore: bump Rust version from 1.86 to 1.87

* chore: update Turbo

* chore(.cargo/config.toml): minor comment tweak
2025-06-13 21:03:35 +00:00
Alejandro González
8a26011e76
fix(app): make per-instance launch hooks clearable (#3757)
* fix(app): make per-instance launch hooks clearable

* chore(apps/app-frontend): fix Prettier lints
2025-06-13 20:53:47 +00:00
Alejandro González
d4de1dc9a1
fix(app): make instances with non-UTF8 text file encodings launcheable and importable (#3721)
Previous to these changes, the app always assumed that Minecraft and
other launchers always use UTF-8, which is not necessarily always true.
2025-06-13 20:52:57 +00:00
Alejandro González
4e3bd4e282
enh(ci): optimize Turbo CI check workflow, track Rust and Node toolchain versions in well-known files (#3776)
* enh(ci): optimize Turbo CI check workflow, track Rust and Node toolchain versions in well-known files

* fix(ci): build `sqlx-cli` with `rustls` to fix Postgres TLS failures
2025-06-12 16:47:28 -07:00
IThundxr
d24528f6a6
frontend: Improve file too large error (#3774)
* Improve file too large error

Signed-off-by: IThundxr <me@ithundxr.dev>

* MB -> MiB

Signed-off-by: Prospector <6166773+Prospector@users.noreply.github.com>

---------

Signed-off-by: IThundxr <me@ithundxr.dev>
Signed-off-by: Prospector <6166773+Prospector@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-06-12 02:05:30 +00:00
IMB11
1b1d41605b
refactor: Huge pyro servers composable cleanup (#3745)
* refactor: start refactor of pyro servers module-based class

* refactor: finish modules

* refactor: start on type checking + matching api

* refactor: finish pyro servers composable refactor

* refactor: pyro -> modrinth

* fix: import not refactored

* fix: broken power action enums

* fix: remove pyro mentions

* fix: lint

* refactor: fix option pages

* fix: error renames

* remove empty pyro-servers.ts file

---------

Signed-off-by: IMB11 <hendersoncal117@gmail.com>
Co-authored-by: Prospector <prospectordev@gmail.com>
2025-06-11 22:32:39 +00:00
Magnus Jensen
6955731def
fix: undefined instance path by using emitted event instead when opening world folder (#3746)
* fix: undefined instance path by using emitted event instead

* fix: linting
2025-06-11 22:25:20 +00:00
worldwidepixel
4386891716
feat(frontend): Organisations are now sorted alphabetically in dashboard and on user pages (#3755)
* feat: Organisations are now sorted alphabetically in dashboard and on user pages

* Use computed ref

---------

Co-authored-by: Prospector <prospectordev@gmail.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-06-11 22:24:04 +00:00
Prospector
6741aba880
Add segmentation to reports list to fix it (#3772) 2025-06-11 22:22:47 +00:00
Alejandro González
ee8ee7af82
feat(labrinth): ignore email case differences in password recovery flow (#3771)
* feat(labrinth): ignore email case differences in password recovery flow

* chore(labrinth): run `sqlx prepare`
2025-06-11 21:59:21 +00:00
IMB11
a2e323c9ee
fix: MOD-292 repair button showing during installation (#3734)
* fix: MOD-292 repair button showing during installation

* fix: lint

* Update apps/app-frontend/src/pages/instance/Index.vue

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: IMB11 <hendersoncal117@gmail.com>

* fix: lint issues

---------

Signed-off-by: IMB11 <hendersoncal117@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-11 21:54:08 +00:00
IMB11
f8fb23e05f
fix: hydration issues caused by duplicate components on servers panel (#3753)
* fix: server stats icons

* fix: fix chart jumping

* refactor: iconComponent -> icon

* fix: panel hydration issues

* fix: apply requested changes
2025-06-11 21:30:24 +00:00
Alejandro González
a3839461cf
perf(labrinth/random_projects_get): speed up through spatial queries according to profiling results (#3762) 2025-06-09 22:19:58 +00:00
Prospector
858c7e393f
Add handling for new loaders, fix max height being applied when scrolling is disabled from #2898 (#3761) 2025-06-09 21:59:59 +00:00
Josiah Glosson
0278241006
Update a bunch of dependencies (#3766) 2025-06-09 19:48:03 +00:00
Josiah Glosson
3afb682fc6
Make get_user_from_headers and check_is_moderator_from_headers take in a bitflag of Scopes rather than a slice of Scopes (#3765) 2025-06-09 19:29:32 +00:00
Emma Alexia
06f1df1995
Fix random_projects route not returning the requested number of projects (#3758)
* Fix random_projects route not returning the requested number of projects

* fix(labrinth): further improve random project route SQL query

* chore: fix typo in comment

* tweak(labrinth): more apparent and fast randomness for `random_projects_get`

* tweak(labrinth): even better random projects query

* chore: address formatting review

---------

Co-authored-by: Alejandro González <me@alegon.dev>
2025-06-08 23:49:39 +00:00
Magnus Jensen
3489771d2e
fix: reset reset-icon state value correctly in edit world modal (#3748) 2025-06-05 22:03:52 +00:00
Erb3
448ae5a2b7
fix(frontend): remove fixed height from ManySelect (#2898)
* fix(frontend): remove fixed height from ManySelect

Frontend development is not my passion, there might be a better fix.

I've tested my changes in all places that I found using the chganed components (ManySelect, ScrollablePanel):

- Changelog filters
- Version filters
- Download dialog
- Search filters

Fixes #2334

* Revert incorrect merge

* fix merge conflict
2025-06-04 22:07:32 +00:00
Prospector
72340790e5
Show up to 15 projects in chart tooltips (#3739) 2025-06-04 20:19:06 +00:00
Prospector
c9423fe478 Fix server intro not ending when installing loader 2025-06-03 20:28:23 -07:00
Prospector
02a850ae63 lint 2025-06-03 18:15:23 -07:00
Prospector
ede6d0c3cc Change region order 2025-06-03 16:23:37 -07:00
Prospector
7685989a8c Update regions FAQ 2025-06-03 16:21:35 -07:00
Prospector
4e8ebb5e5c Servers fixes 2025-06-03 16:16:56 -07:00
Prospector
3f77ab19ed Fix skeleton not showing on purchase 2025-06-03 13:18:05 -07:00
Prospector
d3d0c8c523 Fix skeleton sticking around on back, add new server indicator 2025-06-03 12:30:21 -07:00
Prospector
4e093131f3 Install issues 2025-06-03 11:25:31 -07:00
Prospector
6ca8a4e5fd Fix QA issues 2025-06-03 11:09:22 -07:00
Prospector
63b15ded60 Send region 2025-06-03 10:57:37 -07:00
Prospector
85e65aeffe intl 2025-06-03 10:43:05 -07:00
Prospector
ad44398492 en dash 2025-06-03 10:40:35 -07:00
Prospector
a4ba41bf15 Lint, make save button not clickable when quarterly is selected 2025-06-03 10:37:29 -07:00
Prospector
4441be5380 Fixes to billing 2025-06-03 09:22:54 -07:00
Prospector
c0accb42fa
Servers new purchase flow (#3719)
* New purchase flow for servers, region selector, etc.

* Lint

* Lint

* Fix expanding total
2025-06-03 09:20:53 -07:00
François-Xavier Talbot
7223c2b197
Include region in user subscription metadata (#3733) 2025-06-02 05:13:06 +00:00
Emma Alexia
7b535a1c2a
Enable charity payouts through Tremendous (#3732) 2025-06-01 23:53:45 +00:00
Alejandro González
0aa76567a6
docs(issue template): do not skip closed issues in link to existing issues (#3728)
When an issue has been already handled by our part, and thus gets
closed, but affects many users and the fix takes a while to be rolled
out, it usually happens that those who notice the matter later on don't
notice previous reports and create duplicate issues.

Let's try to improve a little bit on that by not filtering out closed
issues in the links for checking whether the same issue was already
reported before. This should make it more obvious to users who follow
the link whether an issue for their problem already exists.
2025-06-01 14:51:00 +00:00
Alejandro González
6fa1369c49
fix(labrinth): tentative billing period update fix (#3722)
* fix(labrinth/billing): add Spain and Singapore to the list of countries for currency inferences

This should fix payments in those countries not going through with their
local currencies for products that do not have USD-only pricing.

* fix(labrinth/billing): tentative fix for subscription periods not updating
2025-05-31 09:00:08 +00:00
Emma Alexia
b66d99c59c
Improve error when Modrinth's PayPal account is out of funds (#3718)
* Improve error when Modrinth's PayPal account is out of funds

* improve msg
2025-05-30 16:28:00 +00:00
Alejandro González
a9cfc37aac
Some small Labrinth refactors and fixes (#3698)
* chore(labrinth): fix typos, simplify out `remove_duplicates` func

* fix(labrinth): implement `capitalize_first` so that it can't panic on wide chars

* chore(labrinth): refactor out unneeded clone highlighted by nightly Clippy lints

* chore(labrinth): simplify `capitalize_first` implementation

* fix(labrinth): preserve ordering when deduplicating project field values

This addresses an unintended behavior change on
157647faf2778c74096e624aeef9cdb79539489c.

* fix(labrinth/tests): make `index_swaps` test run successfully

I wonder why we don't run these more often...

* refactor: rename `.env.example` files to `.env.local`, make local envs more consistent between frontend and backend

* chore(labrinth/.env.local): proper email verif. and password reset paths
2025-05-29 20:51:30 +00:00
Alejandro González
be37f077d3
feat(labrinth): quarterly billing support (#3714) 2025-05-28 22:18:24 +00:00
François-Xavier Talbot
f52d020a3c
Support specifying a region when creating servers (#3709)
* Support specifying a region when creating servers

* Remove hardcoded default server region
2025-05-26 21:21:52 +00:00
Emma Alexia
74cf3f076e
Automatically fail payments that are older than 30 days (#3697) 2025-05-25 19:36:19 +00:00
Emma Alexia
84adf79564
Fix resubscription of servers with failed payments (#3696)
* Fix resubscription of servers with failed payments

Resolves MOD-55

* run fix
2025-05-25 19:36:14 +00:00
Emma Alexia
dc0d923cee
Automatically cancel servers with failed payments older than 30d (#3695) 2025-05-25 19:36:11 +00:00
Emma Alexia
2ffd7476aa
Get rid of a bit of dead code around server suspensions (#3693)
Might fix some issues with people getting errors saying their servers are suspended when it's actually upgrading
2025-05-25 19:36:07 +00:00
jade
034fd06284
fix: make insufficient gallery images checklist item always show (#3692)
* fix(moderation): make insufficient gallery images checklist item always show

* fix(moderation): Make gallery ordering more consistent
2025-05-25 19:36:03 +00:00
Emma Alexia
49aac6bdca
Fix {{ email_description }} in Modrinth emails (#3703) 2025-05-25 19:34:46 +00:00
Josiah Glosson
4e4a7be7ef
Commonize and distinguish a lot of struct names in labrinth::database::models (#3691) 2025-05-24 09:38:43 +00:00
Josiah Glosson
9c1bdf16e4
Update Redis dependencies (#3682) 2025-05-22 15:01:47 +00:00
Josiah Glosson
9e527ff141
Labrinth ID cleanup (#3681)
* Put all ID types in the labrinth::models::ids, and reduce code duplication with them

* Rewrite labrinth::database::models::ids and rename most DB interface ID structs to be prefixed with DB

* Run sqlx prepare

---------

Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
2025-05-22 08:34:36 +00:00
Alejandro González
c6022ad977
fix(labrinth): prevent division by zero panic on analytics routes (#3668) 2025-05-19 19:14:51 +00:00
Alejandro González
ea9a3539eb
Minor Labrinth documentation and missing Sendy configuration handling tweaks (#3667)
* docs(contributing/labrinth): mention SMTP vars, add helpful Redis note

* chore(labrinth): short-circuit Sendy usage successfully when not setup

* chore: get rid of deprecated `docker-compose` version parameter
2025-05-18 11:36:05 +00:00
Alejandro González
e4f0dddf82
PR 3655 regression fixes (#3664)
* chore: undo unintended updater `zip` feature drop, tweak comment

* fix: correct unintended regression on version and project validation

This was caused by a mistake when coalescing mostly copied and pasted
`RE_URL_SAFE` regexes into one.
2025-05-16 21:44:03 +00:00
jade
be425cff6f
feat(moderation): Add more checklist messages (#3662) 2025-05-16 18:58:24 +00:00
Calum H.
e225bc9f66
feat: standardized page banners (#3610)
* feat: standardized site banners

* fix: lint issues

* fix: deduplicate SCSS with variant map

* feat: color shades + reduced scss

* feat: fix theming

* chore: Remove shades-generator.ts

* fix: lint issues

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-05-16 10:12:34 +00:00
Alejandro González
f19643095e
Inherit dependencies from workspace manifest, and optimize some out (#3655)
* chore: inherit dependencies from workspace, optimize some deps out

* Update bitflags from 2.9.0 to 2.9.1

* Fix temp directory leak in check_java_at_filepath

* Fix build

* Fix lint

* chore(app-lib): refactor overkill `futures` executor usage to Tokio MPSC

* chore: fix Clippy lint

* tweak: optimize out dependency on OpenSSL source build

Contrary to what I expected before, this was caused due to the Tauri
updater plugin using a different TLS stack than everything else.

* chore(labrinth): drop now unused dependency

* Update zip because 2.6.1 got yanked

* Downgrade weezl to 0.1.8

* Mention that p256 is also a blocker for rand 0.9

* chore: sidestep GitHub review requirements

* chore: sidestep GitHub review requirements (2)

* chore: sidestep GitHub review requirements (3)

---------

Co-authored-by: Josiah Glosson <soujournme@gmail.com>
2025-05-15 20:47:29 +00:00
lumiscosity
37cc81a36d
chore: optimize PNGs (#3647) 2025-05-15 11:49:01 +00:00
Emma Alexia
863bf62f8d
Fix updated field including deleted versions (#3643)
* Fix `updated` field including deleted versions

Four years ago, I created issue modrinth/labrinth#200. Today, while it adorns a different name (modrinth/code#2766), the issue remains the same. In celebration of Modrinth's oldest bug report, here is a fix.

Instead of having a separate `updated` field, it simply pulls the publish date of the most recent version. This should also allow the `updated` column on the `mods` table to be dropped at a later date, but I would rather get confirmation that it works before we go ahead with that.

Fixes #2766

* Update apps/labrinth/src/database/models/project_item.rs

Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
Signed-off-by: Emma Alexia <wafflecoffee7@gmail.com>

---------

Signed-off-by: Emma Alexia <wafflecoffee7@gmail.com>
Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
2025-05-12 18:19:30 +00:00
Emma Alexia
9a6390bb4d
Fix organization projects route properly (#3633)
* Revert "fix: capitalization of ID org route breaks projects list (#3621)"

This reverts commit e4adbb9469b241c9bdd0e0f1839a023802445e1c.

* Fix organization projects route properly

Reverted #3621 because it caused more bugs to be created, in the form of organizations with capital letters not showing any projects

* Update apps/labrinth/src/routes/v3/organizations.rs

Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
Signed-off-by: Emma Alexia <wafflecoffee7@gmail.com>

* fix copy-paste error

---------

Signed-off-by: Emma Alexia <wafflecoffee7@gmail.com>
Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
2025-05-09 23:28:52 +00:00
Josiah Glosson
62de07e4e6
Version updates (#3626)
* Update some Labrinth dependencies

* Update some Labrinth dependencies

* Update some Labrinth dependencies

* Update zip in Labrinth

* Update itertools in Labrinth

* Update validator in labrinth

* Update thiserror in labrinth

* Update rust_decimal, redis, and deadpool-redis in labrinth

* Update totp-rs and spdx in labrinth

* Update maxminddb and tar in labrinth

* Update sentry and sentry-actix in labrinth

* Update image in labrinth

* Update lettre in labrinth

* Update derive-new and rust_iso3166 in labrinth

* Update async-stripe and json-patch in labrinth

* Update clap and iana-time-zone in labrinth

* Update labrinth to Rust 2024

* Cargo fmt

* Just do a full cargo update

* Update daedelus to Rust 2024

* Update daedelus_client to Rust 2024

* Set the formatting edition to 2024

* Fix formatting

IntelliJ messed up my formatting
2025-05-09 12:27:55 +00:00
Calum H.
6e46317a37
feat(frontend): refactor and modernize welcome page (#3614)
* feat(frontend): refactor and modernize welcome page - also fixes navbar issue.

Closes: #1533

* fix(frontend): lint issues & use standard variables instead of the constants from error.vue

* fix(frontend): remove creator count as it's not a count of all users

* fix(frontend): lang reshuffle

* feat: rinthbot

* fix: lint issues

* fix: sizing of bot on mobile & scss cleanup for error.vue

* fix: lint issues

* fix: ui lint
2025-05-08 16:14:25 +00:00
Prospector
b59f208e91 Update changelog 2025-05-08 08:50:29 -07:00
Prospector
8fdc7403b1 Allow unlimited items to show in multiselect for game version and loader selection Closes #1964 2025-05-07 19:43:33 -07:00
Prospector
895cd11e30 Updated changelog 2025-05-07 19:25:11 -07:00
Prospector
58ce3a4967 Fix Views showing Hidden instead of other 2025-05-07 19:24:31 -07:00
Prospector
bdd4deb302 Fix updateCurrentDate undefined 2025-05-07 19:24:21 -07:00
Prospector
ec2a56cd73 intl:extract 2025-05-07 19:18:13 -07:00
Prospector
10a5864a47 Update changelog 2025-05-07 19:17:12 -07:00
Prospector
16766be82f
Add server unzipping (#3622)
* Initial unzipping feature

* Remove explicit backup provider naming from frontend

* CF placeholder

* Use regex for CF links

* Lint

* Add unzip warning for conflicting files, fix hydration error

* Adjust conflict modal ui

* Fix old queued ops sticking around, remove conflict warning

* Add vscode "editor.detectIndentation": true
2025-05-07 19:08:38 -07:00
Calum H.
1884410e0d
fix: standardize relative timestamping (#3612)
* fix(frontend): relative timestamps are incorrectly rounded.

Closes: #1371

* fix(all): remove legacy fromNow for proper relative timestamp creation

Closes: #1395
2025-05-07 21:37:35 +00:00
Calum H.
6d57da2053
fix: notification dashboard issues (#3624)
* refactor: Notification helper refactor, fixes a lot of issues.

* fix: lint issues
2025-05-07 21:08:47 +00:00
Calum H.
e4adbb9469
fix: capitalization of ID org route breaks projects list (#3621)
Closes: #3615
2025-05-07 21:01:54 +00:00
Calum H.
8ee621295c
fix: country composable not working due to nuxt routing. (#3623)
Closes: #2263
2025-05-07 21:01:25 +00:00
ThatGravyBoat
32920dd825
fix: changelog margins overlapping link (#3593)
* fix: changelog margins overlapping link

* dont start gradient 8rem away
2025-05-07 20:58:00 +00:00
Josiah Glosson
2d5d2d5df8
Fix to attached world data (#3618)
* Add AttachedWorldData::remove_for_world

* Box the S3 error for daedelus_client ErrorKind::S3

* Delete attached world data on world deletion
2025-05-06 15:06:46 +00:00
Alejandro González
8dd32bbe98
Fix macOS Theseus build issue, cleanup platform specific code (#3604)
* chore(theseus): significantly cleanup MacOS-specific code

* fix(labrinth): only use jemalloc allocator for Linux targets

The upstream crate asserts that its tests only pass for Linux targets,
and there's little point in supporting other OS for now since practical
Labrinth deployments run under a Linux environment anyway. This change
made it easier for me to cross-compile Labrinth.

* chore(theseus): tweak traffic lights pos according to c39bb78e38

As far as I understand it, that PR introduced the seemingly ad-hoc
additions of 6 and 12 units to the traffic light position calculations,
not directly modifying the `const` values introduced by
d6a72fbfc4.

* fix: re-enable app window shadows on Linux

* chore: log `window.set_shadow` errors

* chore: trigger CI
2025-05-05 19:38:10 +00:00
Emma Alexia
f71830e0fa
Add helpful functions for interacting with db manually (#3602)
Brought over from modrinth/labrinth#862
2025-05-03 12:15:15 +00:00
ToBinio
bd0d6a9ac0
chore(theseus): add https://*.githubusercontent.com to frame-src (#1298)
* chore: add https://*.githubusercontent.com to frame-src

* chore(app): move `githubusercontent.com` CSP allowance to the proper media category

---------

Co-authored-by: Alejandro González <me@alegon.dev>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-05-02 16:53:52 +00:00
Prospector
dfef0df464 Update changelog
(cherry picked from commit ca2179c163244b2ed45fde57e5c9408a6b70605a)
2025-05-02 09:24:14 -07:00
Alejandro González
9821737431
chore: fix Docker build (#3594) 2025-05-02 15:40:34 +00:00
Erb3
f932ce7706
chore: move to .env.example (#3592)
* chore: move to .env.example

* docs: meniton copying .env.example

* chore: app-lib env example

Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>

Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>

---------

Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>
2025-05-02 14:20:40 +00:00
Josiah Glosson
de3019e92b
Theseus build updates (#3588)
* Add launcher_feature_version to Profile

* Misc fixes

- Add typing to theme and settings stuff
- Push instance route on creation from installing a modpack
- Fixed servers not reloading properly when first added

* Make old instances scan the logs folder for joined servers on launcher startup

* Create AttachedWorldData

* Change AttachedWorldData interface

* Rename WorldType::World to WorldType::Singleplayer

* Implement world display status system

* Fix Minecraft font

* Fix set_world_display_status Tauri error

* Add 'Play instance' option

* Add option to disable worlds showing in Home

* Fixes

- Fix available server filter only showing if there are some available
- Fixed server and singleplayer filters sometimes showing when there are only servers or singleplayer worlds
- Fixed new worlds not being automatically added when detected
- Rephrased Jump back into worlds option description

* Fixed sometimes more than 6 items showing up in Jump back in

* Fix servers.dat issue with instances you haven't played before

* Update a bunch of app dependencies in non-breaking ways

* Update dependencies in app-lib that had breaking updates

* Update dependencies in app that had breaking updates

* Fix too large of bulk requests being made, limit max to 800 #3430

* Also update tauri-plugin-opener

* Update app-lib to Rust 2024

* Non-breaking updates in ariadne

* Breaking updates in ariadne

* Ariadne Rust 2024

* Add hiding from home page, add types to Mods.vue

* Make recent worlds go into grid when display is huge

* Fix lint

* Remove redundant media query

* Fix protocol version on home page, and home page being blocked by pinging servers

* Clippy fix in app-lib

* Clippy fix in app

* Clippy fix

* More Clippy fixes

* Fix Prettier lints

* Undo `from_string` changes

* Update macos dependencies

* Apply updates to app-playground as well

* Update Wry + Tauri

* Update sysinfo

* Update theseus_gui to Rust 2024

* Downgrade rand in ariadne to fix labrinth

Labrinth can't use rand 0.9 due to argon2

* Cargo format

---------

Signed-off-by: Josiah Glosson <soujournme@gmail.com>
Co-authored-by: Prospector <prospectordev@gmail.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
Co-authored-by: Alejandro González <me@alegon.dev>
2025-05-02 09:51:17 +00:00
Prospector
20b616a7c4 Update changelog 2025-05-01 18:25:46 -07:00
Prospector
4180544e0a Bump version 2025-05-01 17:49:31 -07:00
Prospector
9168d349fc Fix filter bar showing up with no options 2025-05-01 16:27:18 -07:00
Prospector
3dad6b317f
MR App 0.9.5 - Big bugfix update (#3585)
* Add launcher_feature_version to Profile

* Misc fixes

- Add typing to theme and settings stuff
- Push instance route on creation from installing a modpack
- Fixed servers not reloading properly when first added

* Make old instances scan the logs folder for joined servers on launcher startup

* Create AttachedWorldData

* Change AttachedWorldData interface

* Rename WorldType::World to WorldType::Singleplayer

* Implement world display status system

* Fix Minecraft font

* Fix set_world_display_status Tauri error

* Add 'Play instance' option

* Add option to disable worlds showing in Home

* Fixes

- Fix available server filter only showing if there are some available
- Fixed server and singleplayer filters sometimes showing when there are only servers or singleplayer worlds
- Fixed new worlds not being automatically added when detected
- Rephrased Jump back into worlds option description

* Fixed sometimes more than 6 items showing up in Jump back in

* Fix servers.dat issue with instances you haven't played before

* Fix too large of bulk requests being made, limit max to 800 #3430

* Add hiding from home page, add types to Mods.vue

* Make recent worlds go into grid when display is huge

* Fix lint

* Remove redundant media query

* Fix protocol version on home page, and home page being blocked by pinging servers

* Clippy fix

* More Clippy fixes

* Fix Prettier lints

* Undo `from_string` changes

---------

Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Co-authored-by: Alejandro González <me@alegon.dev>
2025-05-01 16:13:13 -07:00
Prospector
4a2605bc1e
Add ability to switch payment interval for Modrinth+ (#3581) 2025-05-01 17:36:51 +00:00
jade
41543e3af0
Use project/user/org permalinks in moderation queue page (#3586) 2025-05-01 00:46:54 +00:00
Prospector
6003f1a10e Update changelog 2025-04-29 08:13:36 -07:00
Prospector
3d9be0cc3f
Fix duplicate hidden entries in analytics (#3576) 2025-04-29 08:12:38 -07:00
Prospector
5e7444f115 intl:extract 2025-04-28 19:42:16 -07:00
Prospector
20fcf70e90 Update changelog, fix overflowing maven coords 2025-04-28 19:41:08 -07:00
Emma Alexia
0508f13cb6
Quick moderation fixes (#3556)
* Quick moderation fixes

* Fix Odyssey mods linking
* Add "Copy permanent link" button to orgs, users, projects
* Use permanent links for Slack webhooks

* Update apps/frontend/src/pages/organization/[id].vue

Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
Signed-off-by: Emma Alexia <wafflecoffee7@gmail.com>

* Run Prettier

---------

Signed-off-by: Emma Alexia <wafflecoffee7@gmail.com>
Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
Co-authored-by: Alejandro González <me@alegon.dev>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-04-29 01:18:43 +00:00
Emma Alexia
2f68c62b3a
Improve wording about unprovisioned servers (#3574) 2025-04-29 01:13:44 +00:00
Prospector
ea64e08791
Add support for snapshots with Modrinth Servers (#3570)
* Add support for snapshots with Modrinth Servers

* Fix snapshots without dots

* Fix loader version not resetting when no longer valid

* Fix collapsing margins on Report page
2025-04-28 18:14:04 -07:00
Alejandro González
6f485d62ad
Simplify Mac app download links (#3519)
* tweak(frontend/app): simplify download links, remove dead code

* chore: apply @triphora's suggestion

Co-authored-by: Emma Alexia <emma@modrinth.com>
Signed-off-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>

---------

Signed-off-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
Co-authored-by: Emma Alexia <emma@modrinth.com>
2025-04-27 23:03:13 +00:00
Prospector
362fc11c81 Update changelog for 0.9.4 2025-04-26 19:28:44 -07:00
Jai A
9e9fb0a9fc
Bump app version + update posthog URL 2025-04-26 18:14:17 -07:00
Prospector
ff4c7f47b2
Direct World Joining (#3457)
* Begin work on worlds backend

* Finish implementing get_profile_worlds and get_server_status (except pinning)

* Create TS types and manually copy unparsed chat components

* Clippy fix

* Update types.d.ts

* Initial worlds UI work

* Fix api::get_profile_worlds to take in a relative path

* sanitize & security update

* Fix sanitizePotentialFileUrl

* Fix sanitizePotentialFileUrl (for real)

* Fix empty motd causing error

* Finally actually fix world icons

* Fix world icon not being visible on non-Windows

* Use the correct generics to take in AppHandle

* Implement start_join_singleplayer_world and start_join_server for modern versions

* Don't error if server has no cached icon

* Migrate to own server pinging

* Ignore missing server hidden field and missing saves dir

* Update world list frontend

* More frontend work

* Server status player sample can be absent

* Fix refresh state

* Add get_profile_protocol_version

* Add protocol_version column to database

* SQL INTEGER is i64 in sqlx

* sqlx prepare

* Cache protocol version in database

* Continue worlds UI work

* Fix motds being bold

* Remove legacy pinging and add a 30-second timeout

* Remove pinned for now and match world (and server) parsing closer to spec

* Move type ServerStatus to worlds.ts

* Implement add_server_to_profile

* Fix pack_status being ignored when joining from launcher

* Make World path field be relative

* Implement rename_world and reset_world_icon

* Clippy fix

* Fix rename_world

* UI enhancements

* Implement backup_world, which returns the backup size in bytes

* Clippy fix

* Return index when adding servers to profile

* Fix backup

* Implement delete_world

* Implement edit_server_in_profile and remove_server_from_profile

* Clippy fix

* Log server joins

* Add edit and delete support

* Fix ts errors

* Fix minecraft font

* Switch font out for non-monospaced.

* Fix font proper

* Some more world cleanup, handle play state, check quickplay compatibility

* Clear the cached protocol version when a profile's game version is changed

* Fix tint colors in navbar

* Fix server protocol version pinging

* UI fixes

* Fix protocol version handler

* Fix MOTD parsing

* Add worlds_updated profile event

* fix pkg

* Functional home screen with worlds

* lint

* Fix incorrect folder creation

* Make items clickable

* Add locked field to SingleplayerWorld indicating whether the world is locked by the game

* Implement locking frontend

* Fix locking condition

* Split worlds_updated profile event into servers_updated and world_updated

* Fix compile error

* Use port from resolve SRV record

* Fix serialization of ProfilePayload and ProfilePayloadType

* Individual singleplayer world refreshing

* Log when worlds are perceived to be updated

* Push logging + total refresh lock

* Unlisten fixes

* Highlight current world when clicked

* Launcher logs refactor (#3444)

* Switch live log to use STDOUT

* fix clippy, legacy logs support

* Fix lint

* Handle non-XML log messages in XML logging, and don't escape log messages into XML

---------

Co-authored-by: Josiah Glosson <soujournme@gmail.com>

* Update incompatibility text

* Home page fixes, and unlock after close

* Remove logging

* Add join log database migration

* Switch server join timing to being in the database instead of in a separate log file

* Create optimized get_recent_worlds function that takes in a limit

* Update dependencies and fix Cargo.lock

* temp disable overflow menus

* revert home page changes

* Enable overflow menus again

* Remove list

* Revert

* Push dev tools

* Remove default filter

* Disable debug renderer

* Fix random app errors

* Refactor

* Fix missing computed import

* Fix light mode issues

* Fix TS errors

* Lint

* Fix bad link in change modpack version modal

* fix lint

* fix intl

---------

Co-authored-by: Josiah Glosson <soujournme@gmail.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-04-26 18:09:58 -07:00
Prospector
25016053ca Update changelog 2025-04-25 19:41:41 -07:00
Emma Alexia
f9c0c1bc53
Clarify that Modrinth Servers prices are in USD (#3553)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-04-26 02:35:30 +00:00
Prospector
73e54a5fbb
Add Servers cancellation survey (#3551) 2025-04-25 19:31:36 +00:00
Erb3
6f902e2107
feat(labrinth): environment variables for more customizable SMTP (#2886)
* refactor: move .env to .env.example

* refactor(labrinth): allow setting SMTP port and TLS

This will help setting up labrinth for local development. You can now use a mock SMTP server such as smtp4dev. The TLS options will stay the same as before if set to `true`, and disabled when `false`.

Depends on #2883

* chore(labrinth): lint

* chore(labrinth): conflicts

* chore(labrinth): conflicts

* fix: use TLS port by default

Co-authored-by: AlexTMjugador<me@alegon.dev>

Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>

* fix(labrinth): correct deafult SMTP port in .env

* feat(labrinth): expose all SMTP TLS settings

Replaced if/else with a switch statement. The new values for `SMPT_TLS` are `none`, `opportunistic_start_tls`, `requires_start_tls`, `tls`. When none of these values are supplied, it defaults to full TLS (`tls`), and throws a warning.

Resolves PR review

* fix(labrinth): correct SMTP TLS example .env setting

Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>

* fix(labrinth) SMTP tls env var check

Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>

---------

Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>
Co-authored-by: Alejandro González <7822554+AlexTMjugador@users.noreply.github.com>
2025-04-22 11:29:14 +00:00
Alejandro González
ecb1379585
enh(labrinth): proper Clickhouse user setup for local development (#3545) 2025-04-21 15:44:24 +00:00
Alejandro González
068711e7a9
enh(labrinth): disable hCaptcha verification when secret is unset (#3544) 2025-04-21 15:42:17 +00:00
maksimetny
f695fe0ee7
Adds drag region support for touch screens (#3178)
https://github.com/tauri-apps/tauri/issues/4746#issuecomment-2007114269

Signed-off-by: maksimetny <46288028+maksimetny@users.noreply.github.com>
2025-04-19 19:18:37 +00:00
Aaron Müller
6cdc07406d
Use the new ConfirmModal (#3458)
* style: copy from old modal

* chore: move to new modals

* eslint: fix sorting

---------

Signed-off-by: Aaron Müller <160637865+amueller0@users.noreply.github.com>
2025-04-19 14:50:30 +00:00
Erb3
daf6999111
Document usage of OAuth (#3342)
* docs: hitchhiker's guide to OAuth

* docs: remove old OAuth guide from OpenApi spec

* fixup! docs: remove old OAuth guide from OpenApi spec

* docs: mention /user endpoint in oauth

* docs: oauth flow overview

* docs: mention PAT

* docs: fix reviews

* docs: support portal over github issue

Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>

---------

Signed-off-by: Erb3 <49862976+Erb3@users.noreply.github.com>
2025-04-19 13:51:01 +00:00
Magnus Jensen
42731521f1
fix: instance project author link not checking for organizations (#3315)
Co-authored-by: Emma Alexia <emma@modrinth.com>
2025-04-19 13:44:46 +00:00
Calum H.
182119aedf
feat: modrinth maven developer mode additions (#3498)
* feat: modrinth maven copy string in developer mode

* feat: Modrinth maven in versions list dropdown for developer mode.

* fix: lint
2025-04-19 13:10:34 +00:00
MikeyPants
59e18b3104
fix(apps/frontend): error data can be undefined (#3513) 2025-04-19 13:05:43 +00:00
Emma Alexia
5c1f198397
Add ability to delete user icon (#3383)
* Add user icon delete route

By request of moderation, but also just generally nice to have

* Add relevant docs and frontend

* Add v2 version
2025-04-19 12:49:23 +00:00
Emma Alexia
3cd6718384
Fix inverted condition with refunds (#3539)
Signed-off-by: Emma Alexia <emma@modrinth.com>
2025-04-19 12:25:43 +00:00
Prospector
1903980b71
Update Servers marketing page (#3535)
* Update Servers marketing page

* Add burst FAQ

* Updated phrasing again

* Fix servers page when not logged in

* Update changelog
2025-04-18 22:23:30 -07:00
Emma Alexia
84a28e045b
Allow servers to be unprovisioned without issuing a refund (#3534)
* Allow servers to be unprovisioned without issuing a refund

for very specific weird circumstances where a server gets stuck/etc; useful for support

* still create a charge

* Fix compile
2025-04-19 04:39:18 +00:00
Emma Alexia
d0aef27f7b
Fix deleting a user that has a prior subscription (#3533)
(for real this time)
2025-04-19 04:38:54 +00:00
Prospector
d6a74b0cfe Fix prepare initiating overriding states, and add handling of failed file prep 2025-04-17 02:56:26 -07:00
Prospector
0c43eb0d22 Update changelog date 2025-04-17 02:19:06 -07:00
Sticks
f8494030aa
backup page fixes and new impls for new apis (#3437)
* wip: backup page fixes and new impls for new apis

* wip: more progress on backup fixes, almost done

* lint

* Backups cleanup

* Don't show create warning if creating

* Fix ongoing state

* Download support

* Support ready

* Disable auto backup button

* Use auth param for download of backups

* Disable install buttons when backup is in progress, add retrying

* Make prepare button have immediate feedback, don't refresh backups in all cases

* Intl:extract & rebase fixes

* Updated changelog and fix lint

---------

Co-authored-by: Prospector <prospectordev@gmail.com>
2025-04-17 01:26:13 -07:00
Prospector
817151e47c Add notice dismissed count to dashboard 2025-04-15 18:11:32 -07:00
Prospector
d5dfb609cf Update changelog 2025-04-15 16:31:52 -07:00
Prospector
09aae0edc9 Update changelog 2025-04-15 16:31:52 -07:00
Prospector
6aa6db4e8c
Survey notices for Servers (#3514)
* Survey notices for Servers

* lint

* remove creepy frog
2025-04-15 16:29:50 -07:00
Jai Agrawal
76be502e16
Make connections short-lived redis (#3509) 2025-04-15 15:39:13 -07:00
Prospector
04659a8198
Notices fixes and support for titles (#3508)
* Notices fixes and support for titles

* Lint
2025-04-14 16:58:31 -07:00
Prospector
6c16688ca9 Remove notice limit 2025-04-12 22:23:45 -07:00
Emma Alexia
f2ec89e62b
Fix two database errors (#3483)
* Fixes error when an admin tries transferring project ownership
* Fixes error when trying to delete a user when they previously have a transaction

Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-04-12 22:21:02 -07:00
Prospector
edd09b0b16 Update changelog 2025-04-12 22:06:22 -07:00
Prospector
59edc8d618
Add notices system to Servers (#3502)
* Servers notices

* Refresh on unassign
2025-04-12 22:00:22 -07:00
Aaron Müller
56520572b2
fix: dropdown import (#3459)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
Co-authored-by: Emma Alexia <emma@modrinth.com>
2025-04-12 16:22:16 +00:00
Alejandro González
487bdd1e48
chore: remove unused Rust dependencies (#3492) 2025-04-12 15:42:45 +00:00
Tiziano
8ad5e011ca
Update 1-app-bug.yml (#3486)
Signed-off-by: Tiziano <69322987+T1xx1@users.noreply.github.com>
2025-04-12 15:22:41 +00:00
un_pogaz
6f43fc272b
fix: use local assets for "apps/labrinth/README.md" (#3489) 2025-04-12 15:21:20 +00:00
Alejandro González
e008b657a5
Fix Clippy lints (#3494)
* chore: fix some Clippy lints

* chore(labrinth): more Clippy fixes
2025-04-12 13:45:17 +00:00
Emma Alexia
365367dd16
Hide collections with no projects from public view (#3408)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-04-06 20:54:18 +00:00
Jai A
36367e475e
fix margin 2025-04-04 00:49:58 -07:00
Jai A
13f2961e43
run migrate 2025-04-03 17:47:30 -07:00
Jai A
69b70d70a8
Remove lock, fix billing job 2025-04-03 16:14:27 -07:00
Jai A
d0d0dcf09f
Fix billing setup 2025-04-03 15:44:53 -07:00
Prospector
41b9729b9b Update changelog 2025-04-01 21:03:40 -07:00
Prospector
a2009cae39 Revert "fixed a bug"
This reverts commit 49faba6ad2a99ef01827679620563a3d38a555da.
2025-04-01 20:54:05 -07:00
Prospector
fab086b3e1 Revert "favicon"
This reverts commit e8f8be1940c965f79b944a52a66900b0da68cd79.
2025-04-01 20:54:05 -07:00
Prospector
f379126242 Revert "more improvements (#3449)"
This reverts commit 3d2cef40d535eb5b44957a44a1daf0009b586f55.
2025-04-01 20:54:04 -07:00
Prospector
8e0d9f2da6 Revert "Add craftmine support"
This reverts commit 4624a29332c5cb0885937125e1ec678e826420ef.
2025-04-01 20:54:04 -07:00
Prospector
e931b5c8ef Revert "Pizza highlight"
This reverts commit 9024b2eec547d983423b0213a726d8c9fea35b42.
2025-04-01 20:54:04 -07:00
Prospector
84617d0c49 Revert "bypass discord cache"
This reverts commit 9b442d04d9e69e15e905d7f6526c9d421dcdb04f.
2025-04-01 20:54:04 -07:00
Prospector
0908cf4e94 Revert "use modrinth links"
This reverts commit 916f27c5ab275de253b4947ad58c9882ef89a663.
2025-04-01 20:54:04 -07:00
Prospector
916f27c5ab use modrinth links 2025-04-01 10:32:52 -07:00
Prospector
9b442d04d9 bypass discord cache 2025-04-01 09:55:29 -07:00
Prospector
9024b2eec5 Pizza highlight 2025-04-01 09:51:04 -07:00
Prospector
4624a29332 Add craftmine support 2025-04-01 09:50:00 -07:00
Sticks
3d2cef40d5
more improvements (#3449)
* more improvements

* fix: apply pnpm run fix
2025-03-31 20:34:49 -07:00
Prospector
e8f8be1940 favicon 2025-03-31 17:53:57 -07:00
Prospector
49faba6ad2 fixed a bug 2025-03-31 17:21:31 -07:00
Jai A
b9d90aa635
Rebuild daedalus 2025-03-26 21:51:46 -07:00
Nitrrine
5bcf65dd67
Limit project version number to 32 chars (#3425) 2025-03-26 03:43:58 +00:00
JakobDev
742d2ed9c3
Fix MimeType on Linux Desktop File (#3313)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-03-26 01:18:02 +00:00
Prospector
86128f953a Update changelog 2025-03-25 18:17:53 -07:00
moehreag
b8e5a6944e
fix: hide resubmit nag for draft projects (#3354)
Co-authored-by: Emma Alexia <emma@modrinth.com>
2025-03-25 18:17:35 -07:00
Prospector
4508fad588
Attempt to fix displayName undefined error (#3424) 2025-03-26 01:04:50 +00:00
Jan Straßburger
fd2f500038
Fix correct 'versions' description in Statistics schema (#3396)
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
Co-authored-by: Emma Alexia <emma@modrinth.com>
2025-03-25 18:20:36 +00:00
Prospector
a20374d6e3
Fix errors with intl extraction, extract error.vue (#3421)
* Fix errors with intl extraction, extract error.vue

* Update changelog and fix lint
2025-03-25 10:38:04 -07:00
Prospector
ffc69dbaba Update changelog 2025-03-25 09:22:51 -07:00
Prospector
6b98655069 Fix modrinth logo on home page 2025-03-25 09:19:43 -07:00
Jai Agrawal
b5a9a93323
Distributed rate limit, fix search panic, add migration task (#3419)
* Distributed rate limit, fix search panic, add migration task

* Add binary info to root endpoint
2025-03-25 01:10:43 -07:00
Jai A
5fbf5b22c0
Update ads.txt 2025-03-22 10:24:24 -07:00
Josiah Glosson
99cd96faa8
Use the log config from the Vanilla client.json (#3411)
* Use the log config from the Vanilla client.json

* Remove debug message

---------

Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-03-20 13:42:37 -07:00
Erb3
c4b60f1720
Prefer icons from modrinth/assets (#3394)
Replaced all icon usages of `apps/frontend/src/assets/image/utils` for `@modrinth/assets`.

The only icon which has been changed is the `WorldIcon`, which has been replaced by the `GlobeIcon`.
2025-03-18 18:28:23 -07:00
Prospector
a19bf3dc0e
Servers: Only apply game version filters when searching for non-modpack projects, auto-populate plugin loaders (#3403) 2025-03-18 18:27:15 -07:00
Prospector
77021d2af8
Handle downtime errors, give more information on error pages. (#3402)
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-03-18 18:26:57 -07:00
Prospector
16893ec0e3
Fix display of critical announcements in app (#3407) 2025-03-18 18:24:14 -07:00
Jai A
d49cc87b8c
only run migrations on prod instances 2025-03-15 08:32:45 -07:00
Josiah Glosson
c998d2566e
Allow multiple labrinth instances (#3360)
* Move a lot of scheduled tasks to be runnable from the command-line

* Use pubsub to handle sockets connected to multiple Labrinths

* Clippy fix

* Fix build and merge some stuff

* Fix build fmt
:

---------

Signed-off-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-03-15 07:28:20 -07:00
Prospector
84a9438a70 Update changelog 2025-03-13 19:24:34 -07:00
Prospector
09ae3515f7 Update changelog 2025-03-13 19:22:59 -07:00
Prospector
b665c17be8
Update servers marketing page (#3399)
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-03-13 19:19:40 -07:00
Josiah Glosson
eccd852426
Add log config parsing support to daedelus (#3395) 2025-03-13 13:04:44 -07:00
Tiziano
827e3ec0a0
fix(frontend): mobile navbar covers legal disclaimer in the bottom of the footer (#3366) 2025-03-12 09:53:55 -07:00
Erb3
801c03981a
refactor(web): properly create table in cmp-info according to spec (#3362)
Stops the vue compiler from nagging you, and improves consistency with other tables.
2025-03-12 09:53:44 -07:00
Emma Alexia
31a001bbc1
Fix moderation review page (#3389) 2025-03-12 09:53:11 -07:00
Prospector
621ed5fb02
Fix wording on CMP info page (#3385) 2025-03-11 23:28:17 -07:00
Jai Agrawal
887e437d35
Move archon to env var (#3386) 2025-03-11 23:27:49 -07:00
Emma Alexia
1ea196051f
Update CCPA notice with updated information for Servers (#3384) 2025-03-11 17:00:30 -07:00
felix
366f528853
Fix but better (#3376)
Signed-off-by: felix <60808107+ItsFelix5@users.noreply.github.com>
2025-03-11 19:46:31 +00:00
Josiah Glosson
d6c8af7ed5
Fix Labrinth not compiling on Windows due to jemalloc dependency (#3378) 2025-03-10 21:45:36 +00:00
Jai Agrawal
4dd33a2f9e
Fix issues being excluded by delphi (#3374) 2025-03-09 17:15:07 -07:00
Jai Agrawal
1009695a15
Support jemalloc profiling and heap dumps (#3373) 2025-03-09 14:41:19 -07:00
Jai A
d3427375b0
fix lint 2025-03-09 13:21:15 -07:00
Jai Agrawal
5c8ed9a8ca
Tracing support (#3372)
* Tracing support

* Add console subscriber

* Add console subscriber
2025-03-09 13:01:24 -07:00
Jai Agrawal
9c5d817a8a
Add prom metrics for database, use redis max conn var (#3359) 2025-03-07 17:16:45 -08:00
Prospector
d51a1c47c7 Update changelog 2025-03-05 17:37:45 -08:00
Prospector
2b7378bd64
Fix moderation-side issues (#3345)
* Fix moderation-side issues by segmenting requests in review page and handling missing users in report page

* increase to 100

* 450 limit

* fine! take 1000!
2025-03-05 17:30:41 -08:00
Jai Agrawal
c1bb934fc6
Add clickhouse replication, exclude bad prom metrics (#3344) 2025-03-05 15:40:46 -08:00
Michael
0d223e3ab5
Use dumb-init as entrypoint (#3343) 2025-03-05 15:40:27 -08:00
Prospector
b704e0c8ed Update changelog 2025-03-05 12:36:57 -08:00
Prospector
79279479b1
Minor bugfixes (#3338)
* Workaround linux firefox repeat issue

* Nullcheck onShow/onHide functions
2025-03-05 12:28:48 -08:00
Prospector
ee4d7c88f1 Fix lint 2025-03-04 10:06:11 -08:00
Prospector
09023f2b49 Update changelog 2025-03-03 22:23:53 -08:00
Prospector
36cfcc2093
Admin & staff page enhancements (#3333) 2025-03-03 22:22:25 -08:00
Prospector
c2d455f166
Add random project easter egg (#3335) 2025-03-03 22:22:10 -08:00
Jai Agrawal
6859509eb5
Fix all tests (#3332) 2025-03-03 16:05:39 -08:00
Tiziano
e2de39ad83
chore: update docs deps/pkgs (#3326)
* chore: run astro upgrade cli cmd

* chore: move content config & add content loader

* chore: update pkgs

* fix: bump starlight-openapi

* fix: bump sharp

* fix: update pnpm-lock
2025-03-03 11:15:48 -08:00
Prospector
ca2307e609 Fix changelog 2025-03-02 18:45:09 -08:00
Prospector
0c58b5b83d Update changelog 2025-03-02 18:40:55 -08:00
Prospector
74a12bd606
Add scrollbar to moderation checklist when too tall (#3319) 2025-03-02 18:37:31 -08:00
Prospector
9bb9e13ee8
Add copy ID button to versions list (#3327) 2025-03-02 18:37:21 -08:00
Jai Agrawal
19787a3f51
Subpackage common -> ariadne (#3323)
* Subpackage common -> ariadne

* add common

* Remove build

* only build labrinth

* common

* set sqlx offline

* copy dirs

* Fix build
2025-03-01 20:53:43 -08:00
Josiah Glosson
650ab71a83
Commonized networking (#3310)
* Fix not being able to connect to local friends socket

* Start basic work on tunneling protocol and move some code into a common crate

* Commonize message serialization logic

* Serialize Base62Ids as u64 when human-readability is not required

* Move ActiveSockets tuple into struct

* Make CI run when rust-common is updated

CI is currently broken for labrinth, however

* Fix theseus-release.yml to reference itself correctly

* Implement Labrinth side of tunneling

* Implement non-friend part of theseus tunneling

* Implement client-side except for socket loop

* Implement the socket loop

Doesn't work though. Debugging time!

* Fix config.rs

* Fix deadlock in labrinth socket handling

* Update dockerfile

* switch to workspace prepare at root level

* Wait for connection before tunneling in playground

* Move rust-common into labrinth

* Remove rust-common references from Actions

* Revert "Update dockerfile"

This reverts commit 3caad59bb474ce425d0b8928d7cee7ae1a5011bd.

* Fix Docker build

* Rebuild Theseus if common code changes

* Allow multiple connections from the same user

* Fix test building

* Move FriendSocketListening and FriendSocketStoppedListening to non-panicking TODO for now

* Make message_serialization macro take varargs for binary messages

* Improve syntax of message_serialization macro

* Remove the ability to connect to a virtual socket, and disable the ability to listen on one

* Allow the app to compile without running labrinth

* Clippy fix

* Update Rust and Clippy fix again

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2025-02-28 10:52:47 -08:00
Prospector
90def724c2 Update changelog 2025-02-25 10:11:26 -08:00
Prospector
f357275fd3
Fix upgrades being allowed when out of stock (#3307) 2025-02-25 10:07:59 -08:00
Erb3
2c2a13b587
fix(frontend): make collection summary optional in editing (#3304)
Forgot to fix it here too in #3292.
Reported by @falseresync
2025-02-25 17:53:29 +00:00
Prospector
b3a664e0d4
Improve clarity of ongoing revenue period notice (#3301)
* Improve clarity of ongoing revenue period notice

* get rid of semicolon

---------

Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-02-24 19:01:41 -08:00
Prospector
3140dab99d
Move Minecraft brand disclaimer to bottom of footer (#3302)
* Move Minecraft brand disclaimer to bottom of footer

* Add careers link back to footer

* Intl extract

---------

Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-02-24 19:00:42 -08:00
Josiah Glosson
a74b2da147
Change app-lib io::rename to io::rename_or_move (#3251)
Also add io::is_same_disk and io::create_dir

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-02-24 19:00:17 -08:00
Prospector
701fef08f8
Make debug info always expanded to aid support team, add copy button (#3282)
* Make debug info always expanded to aid support team, add copy button

* Remove testing error lol
2025-02-21 21:50:43 +00:00
Prospector
37ecf75087 Fix lint on toggle 2025-02-21 13:22:56 -08:00
Prospector
4c99e379f2 Update changelog for Feb 21st release 2025-02-21 13:20:18 -08:00
Erb3
fc2c740843
fix(frontend): make collection summary optional (#3292)
Reported by @falseresync
2025-02-21 21:09:26 +00:00
Erb3
1358336a76
refactor(ui): move Chips component to composition API + TS (#3288)
* refactor(ui): move Chips component to composition API + TS

* refactor(ui): move Chips component to composition API + TS
2025-02-21 18:59:19 +00:00
Calum H.
a02eb5445b
Update Last Modified in cmp-info (#3287)
Signed-off-by: Calum H. <hendersoncal117@gmail.com>
2025-02-21 18:45:55 +00:00
Erb3
195cc9cee0
refactor(ui): move Toggle component to Composition API + TS (#3281)
* refactor(frontend): move Toggle component to Composition API + TS

**Toggle.vue**:
- Enable composition API and TS
- Added `disabled` to props
- Remove redundant `checked`
- Replace `modelValue` and `emits` with `defineModel` compiler macro

**Others**:
- Replace emit handling and `model-value` with `v-model` where simple logic was used
  - Not `FeatureFlagSettings.vue` (contained custom code on receiving emit)
  - Not `Mods.vue` (contained custom code on receiving emit)
- Remove redundant `checked` attribute

* fix(app): toggles not updating value
2025-02-21 18:43:49 +00:00
worldwidepixel
719b395b7b
feat(frontend): Sort collections by creation date on user pages and dashboard (#3286) 2025-02-21 18:41:25 +00:00
Prospector
27fba4ba11
Fix padding error on revenue page (#3285) 2025-02-21 10:06:27 +00:00
Prospector
6667b620d1 Update changelog 2025-02-20 18:10:49 -08:00
Calum H.
c77f3395b2
feat(frontend): Improve revenue information (#3250)
* Improve revenue information

* Improve NET 60 period info + show next period if current period is over.

* invert period check

* %

* Finalize changes

* Cleanup

* Remove .idea

* Discard changes to .idea/discord.xml

* Discard changes to .idea/code.iml

* Discard changes to .idea/.gitignore

* Discard changes to .idea/libraries/KotlinJavaRuntime.xml

* Discard changes to .idea/vcs.xml

* Discard changes to .idea/modules.xml

* Discard changes to .idea/.gitignore

* fix lint issues

* table fix, lint fix and media sizing fix

* fix responsiveness

* Remove comment

* utc comment

* fix lint
2025-02-21 01:52:10 +00:00
Jai Agrawal
067f471766
Segment pending revenue in API response (#3283) 2025-02-20 23:07:54 +00:00
Prospector
f75d824c92
Add minimum height to content to fix space below the footer (#3279) 2025-02-20 22:38:28 +00:00
Prospector
c4f582e35b
Fixed proof form styling in checklist (#3278) 2025-02-20 22:38:10 +00:00
Prospector
a8727d9a68 Updated changelog with Feb 19 update 2025-02-19 22:14:27 -08:00
Prospector
423dae5208 2025 :) 2025-02-19 22:10:15 -08:00
Prospector
dc7d8d6018 Add settings button to navbar 2025-02-19 22:08:16 -08:00
Prospector
db09ded836
New footer (#2988)
* Update footer to new design

* Update footer with changelog and security notice

* Move mastodon icon

* Make full-width instead of card

* Intl extract, lint
2025-02-19 22:01:29 -08:00
Prospector
df33ff7f60
Servers Marketing: Add Dallas location to globe, change copy to refer to states (#3272) 2025-02-19 22:01:11 -08:00
Prospector
ca63c09a0d
Enhance moderation checklist (#3273) 2025-02-19 22:00:52 -08:00
Erb3
9c2cd868a7
refactor(frontend): Project page composition API + TS (#3245)
* refactor(frontend): move project description to composition API + TS

* refactor(frontend): rename to `patchRequestPayload` for consistency

* chore: lint
2025-02-19 18:49:07 +00:00
Jeffrey Daniel
f6d64e8fde
Fix MessageBanner padding (#3271)
The MessageBanner padding that appears when a project is archived only has padding on the bottom and not the top. This means that there is no visual gap and it does follow the visual style of the rest of the website. I have fixed it.
2025-02-19 00:39:08 +00:00
Prospector
253e64884a Updated changelog with Servers Feb 18 release 2025-02-18 14:26:35 -08:00
Evan Song
a88593fec5
Modrinth Servers February Release: Bug Fix Round 1 (#3267)
* chore(pyroservers): attempt better error propogation

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(pyroservers): introduce deferred modules

* fix(pyroservers): synchronize server icon processing

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor: server action buttons

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: bring back skeleton

* fix(startup): populate values on refresh

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: properly refresh network

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: do not open backup settings modal if fetch failed

* fix(platform): only clear selected loader version if selecting a different loader

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: parse links in console log

* fix: attempt to mitigate power button state flash

Signed-off-by: Evan Song <theevansong@gmail.com>

* Revert "fix: attempt to mitigate power button state flash"

This reverts commit 3ba5c0b4f7f5bacf1576aba5efe42785696a5aed.

* refactor: error accumulation builder in PyroServersFetch

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: sentence case

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(files): await deferred fs

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: startup border

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: prevent suspended server errors from being overwritten

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: add server id copy button to suspended server listing

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: refresh behavior

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: behavior of server icon in options

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: prevent error inspector failures from destroying the page

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: remove nexttick wrapper

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: ensure file edit gets initted due to deferred module

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor: prevent module errors from breaking the layout

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2025-02-18 22:17:50 +00:00
Jai A
6c4548a303
add price id to active servers route 2025-02-16 21:42:16 -08:00
Prospector
4851f18079 Updated changelog 2025-02-16 19:04:11 -08:00
Jakob
bbb917c405
Fixed lack of space around verffication name in ConfirmModal (#3258)
Signed-off-by: Jakob <minenash@protonmail.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-02-16 18:59:26 -08:00
Prospector
81d34dfa86
Add stock checking to server upgrades (#3270)
* Add stock checking to server upgrades

* Fix route
2025-02-16 18:58:09 -08:00
Jai Agrawal
31723a2d3c
Fix prorations not updating open charge (#3265) 2025-02-14 22:53:45 -08:00
Jai Agrawal
975427b319
Allow admins to view user email (#3261) 2025-02-13 17:18:03 -08:00
Prospector
d9983debce
Change out of stock URL to discord (#3256)
* Change out of stock URL to discord, switch from router links to normal anchor tags

* Update changelog
2025-02-12 19:09:11 -08:00
Prospector
6a12ef0e2c Fix lint 2025-02-12 19:08:08 -08:00
Prospector
56ba342346
Initial servers upgrades frontend (#3219)
* Initial servers upgrades frontend

* Fix error when purchasing non-custom servers

* fix backend

* Fix comment

---------

Signed-off-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-02-12 18:22:49 -08:00
Prospector
6d810a421a
Servers marketing enhancements (#3252)
* feat: locations page + stock callouts

* feat: misalligned but spirits there!!

* fix readability on colors on globe

* Enhancements to globe

* Fix out of stock indicator styling

* Start globe near US and slow speed

* Remove debug statement

* Switch from capacity to stock API

* Make custom use its own stock checker

* Fix lint, add changelog entries

---------

Co-authored-by: Elizabeth <checksum@pyro.host>
Co-authored-by: Lio <git@lio.cat>
2025-02-12 12:06:51 -08:00
Prospector
098519dea1 Fix changelog timestamps being an hour off 2025-02-12 10:42:03 -08:00
Prospector
7183b3d761
Fix some changelog issues, and broader mobile padding issues (#3246) 2025-02-11 12:46:34 -08:00
Prospector
0ac49d846f
Add project issues link to report form if it exists (#3215) 2025-02-11 11:07:23 -08:00
Prospector
cade2c182c
Add changelog page to website (#3242)
* Add changelog page to website

* Add pages for individual changelog entries that can be linked to

* Handle first case for individual page

* Add some more changelog entries, improve some spacing
2025-02-11 08:50:27 -08:00
Erb3
affeec82f0
License UI redesign + composition API (#3225)
* refactor(frontend): revamp license page

- Add more understandable UI
  - Field titles
  - Field description
- Use more semantically correct elements
  - Make paragraph not a label
- Rephrase some parts
- Fields no longer jump around
- Split SPDX-identifier and license name into two seperate fields, for readability
- Sort imports
- fmt

* feat(frontend): encourage license URL on custom license

* refactor(frontend): license page to composition + ts

- Move to Vue composition API
- Move to TypeScript
- Move away from vue-multiselect to the dropdown component
- Use `formatProjectType` function for typesafety
- Remove unused form error highlighting code
- Creating typings for built-in licenses
- Move standard licenses to licenses.ts util
  - There are other license-related utils I want to move there eventually
- Fix typo in Project license type definition

* chore(frontend): fmt

* chore(frontend): fmt

* feat(frontend): require URL and name for custom license

* refactor(frontend): give license or-later checkbox own row

* chore(frontend): fmt
2025-02-10 08:37:49 -08:00
Evan Song
a75538c093
Modrinth Servers Mega Features & Bug Fix-a-thon (#3222)
* fix(content): changing mod versions works again

* chore(assets): update pyro logo

* fix(properties): deprecate fetchconfigfile

* Revert "fix(content): changing mod versions works again"

This reverts commit d7c0d1196f8c1850fd7ccbc1644941c6db4dc306.

* feat(files): ability to sort via column click

* chore(startup): update clunky wording

* feat(serverListing): server icons SSR friendly

* fix(servers): if archon fails, display err in listing

* chore(serverlisting): use pyroserver hook to init icon

* chore(servers): much more graceful reinstall

* fix(servers): tw warn

* fix(platform): correctly react when pack reinstalled

* fix(serversroot): explicitly import navigateTo

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(serverlabels): show skeleton instead of hiding

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(platform): install-aware controls

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor!(platform): rewrite platform page

* fix(platform): regression in autoselecting loader

* chore(platform): prefer version over project modification date

* fix(platform): permanent hang after initial mount

* chore(platform): do not silently fail and hang if modpack fails loading

* oops: remove hardcoded error causer

* fix(platform): switch modpack btn while installing doesnt need class

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(platform): adjust styling in version modal

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(platform): prevent changing project card style

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor(pyrodropdown): rewrite

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(pyrodropdown): do nopt use deprecated substr

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(network): sentence case

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor(terminal): initial batch

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): fulllog over fullscreen

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): fullscreen conflict with body scroll

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(terminal): init drag select

* feat(terminal): shift click support

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(terminal): double lines limit

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(terminal): copy button

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(terminal): protip style

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(terminal): improve styles

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(terminal): regex search

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(terminal): move icons to icons dir

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(terminal): improve drag select autoscroll inertia

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): cancel selection on right click

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): progblur and stb btn disappearing

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor(serverstats): power efficiency

* fix(subdomainlabel): correct tooltip terminology

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(preferences): users hide subdomain label

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(servers): clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(terminal): deselect lines on escape

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(serversidebar): type err

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(fileitem): vue server render type

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): disable pointer events on lines if scrolling

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): search result counts style

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): plural

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(terminal): clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(terminal): view selection

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(terminal): show actively selected lines in scrollbar

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminallog): btn color

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(gamelabel): align to text

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(gamelabel): align to text

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(listing): remove deadcode

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(serverlisting): deprecated process.server

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(platform): correctly disable button

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(backups): do not allow backup creation during server installation

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(platform): flush stale currentversion data on successful install

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(gamelabel): fix gap

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(network): vaporize uppercase

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(info): vaporize uppercase

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(backups): style unification

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(backups): finalize style change

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(servers): catch pyro servers fetch errors during ssr

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(serverstats): ram as bytes graph now works

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(platform): unify attempts and refresh interval

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): input

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(servers): installing ticket + update available notice back in platform

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(terminal): dont add bg to scroll track

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): preserve whitespace

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(serversroot): unnest blurred icon query

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(serverstats): clamp memory usage to 100% no matter what

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(terminal): allow copy of single lines, show btn

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(terminal): animate copy>view transition

Signed-off-by: Evan Song <theevansong@gmail.com>

* init: search improvements

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: lint

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: change log modal title

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: hide fullscreen when selecting and cancel selection on clickout

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor(terminal): more reliable jumpToLine

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: search results separator

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: remove buggy isScrollable check

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: style

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor: correctly store pos to make jump reliable

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: disparity between search/log dragselect

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: prevent propagation of click events when clicking on jump btn

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: switch selection strategies depending on terminal mode

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: smarter esc handling

Signed-off-by: Evan Song <theevansong@gmail.com>

* finalize

Signed-off-by: Evan Song <theevansong@gmail.com>

* run fix

* fix: ensure lines between cannot be selected

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: increase initial log batch to 256

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): click on scroll track should take user to new scroll position

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): update aria label for view selected logs btn

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2025-02-10 07:39:13 -08:00
he3als
037cc86c1f
Server Content Tab Fixes & Improvements (#3230)
* fix cancel button on edit modal

* make hardcoded mod text dynamic for plugins

* fix files path when clicking an external plugin

* fix plugins path for file uploads

* improve friendly mod name logic

* fix toggling plugins

* update pyroServers content definitions

* install then remove for changing version

Reinstall isn't currently implemented properly

* make the edit dialog pretty

* make new admonition component

* fix warning admonition colour

* new edit version modal

* cleanup

* make latest version default

* final touches

* lint
2025-02-08 10:31:38 -08:00
Jai Agrawal
1e8d550e96
Format traces as bullet list (MOD-32) (#3220)
* Format traces as bullet list

* Fix fmt
2025-02-06 13:23:42 -08:00
Jai A
acc379d14d
Add clean.io to app frames 2025-02-06 10:20:58 -08:00
Jai A
5bc63a5ad3
Ads window system blocker 2025-02-06 10:02:44 -08:00
Prospector
a8630e93bc
Redesign report form and prevent duplicate reports (#3211)
* Redesign report form and prevent duplicate reports

* Fix lint

* Add malware evidence notice to report form

* Fix lint
2025-02-02 14:09:10 -08:00
Prospector
9574e8e639
Add version deleting from the version list (#3204) 2025-01-30 23:51:52 +00:00
Prospector
14dacb2352
Moderation checklist message generation fixes with newlines (#3205)
* Add endline to end of file list in moderation checklist

* More line breaks and formatting in checklist
2025-01-30 23:51:39 +00:00
Prospector
8baa2a72fb
Allow admins to edit collections on frontend (#3207) 2025-01-30 23:51:27 +00:00
Erb3
a5427f7287
fix(labrinth): cors headers on ratelimited (#3189)
Kinda hotfix.

Fixes #2591
Fixes #2529
2025-01-30 15:52:13 -08:00
Prospector
9180f5c8d0
Add seattle location to servers marketing, update CPU count (#3203) 2025-01-30 11:36:59 -08:00
felix
b5abce161f
Update ChartDisplay.vue (#3200)
Signed-off-by: felix <60808107+ItsFelix5@users.noreply.github.com>
2025-01-29 20:08:29 +00:00
Prospector
8b3ede4218 Update number of projects stat in home page to 50,000 2025-01-28 19:11:03 -08:00
Julian Vennen
a4e024c690
Analyse logs without storing them on mclo.gs (#3196)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-01-29 02:53:39 +00:00
Erb3
e368e35e74
fix(frontend): finish auth when redirect URI is supplied (#3191)
- Fixes #3188
- Refactors if-else statement into ternary
2025-01-29 02:51:41 +00:00
Owehttamy
1e09305fb3
Fix grammatical error (#3180)
Signed-off-by: Owehttamy <47429979+Owehttamy@users.noreply.github.com>
2025-01-29 02:50:36 +00:00
Erb3
4d32bb2330
feat: git attributes to enforce lf (#3193)
I noticed that the `.vscode` folder says LF endings should be used. However, I still regularily see CRLF. To fix this I've added a `.gitattributes` file which makes git convert endings to LF.
2025-01-29 02:50:05 +00:00
Magnus Jensen
46710c9501
fix: add correct styling class to button (#3170) 2025-01-29 02:40:19 +00:00
Erb3
79d131c7eb
feat(frontend): update search to reset to page 1 (#3192)
Fixes #3176

**Changes**:

- Sets the pagination to page one if the search is updated. This is the norm on most websites, and how users expect it to work.
- Join `setPage` into `updateSearchResults`
  - Take a page number in `updateSearchResults`
- Remove unused param to `updateSearchResults`
- Update `watch` to not double requests
- use `scrollToTop` utility function
2025-01-29 02:37:57 +00:00
Calum H.
b1955363a6
refactor(knossos): Rewrite date range system on analytics dashboard. (#1301)
* Start work on refactoring date range system.

* Use timeResolution terminology.

* "Last month" initial default.

* Migrate fully to dayjs - ease of use.

* Discard changes to pnpm-lock.yaml

* utilize getter

* Fix date label in ChartDisplay.vue

* Finish cleanup

* Update STAGING_API_URL in nuxt.config.ts

* Lint fixes

* Refactor ChartDisplay.vue to handle loading state in selectedRange and formattedCategorySubtitle

* Remove modal impl

---------

Signed-off-by: Calum H. <contact@mineblock11.dev>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-01-29 02:34:28 +00:00
Jai A
495dbbb7f8
Add server ID to staff refund page 2025-01-17 17:34:37 -08:00
Jai A
e0d0736f7e
Fix wrong func call for refresh 2025-01-17 17:27:46 -08:00
Jai A
12bfebd8b5
run intl:extract 2025-01-17 17:25:08 -08:00
Jai A
af791f78b7
Fix refund frontend 2025-01-17 17:20:12 -08:00
Jai A
0f4af98a21
Fix integer overflow on charges 2025-01-17 17:01:35 -08:00
Jai Agrawal
75b357a069
Staff support dashboard routes (#3160)
* Staff support dashboard routes

* Fix clippy
2025-01-17 16:41:49 -08:00
Jai A
d7814e115d
fix migration typo 2025-01-17 09:05:42 -08:00
Jai A
24295ea482
fix version uploading 2025-01-17 08:53:54 -08:00
Jai A
701bf853d5
Fix broken migration on labrinth (againx2) 2025-01-16 23:59:07 -08:00
Jai A
7fd3d737b8
Fix broken migration on labrinth (again) 2025-01-16 23:32:26 -08:00
Jai A
497b0bca0b
Fix broken migration on labrinth 2025-01-16 23:00:11 -08:00
Jai A
208015a911
Bump rust version 2025-01-16 18:21:11 -08:00
Jai A
8abe2283d7
Fix clippy 2025-01-16 17:49:26 -08:00
Jai A
9e97c068d8
Fix version_fields, loader_fields_loaders missing primary keys 2025-01-16 17:41:41 -08:00
Jai A
abbfb3ca2f
Merge remote-tracking branch 'origin/main' 2025-01-16 16:43:38 -08:00
Jai A
5c8e7a8b38
Support new delphi response type 2025-01-16 16:40:13 -08:00
Josiah Glosson
0d7934e3b8
Fix importing newer Prism instances (#3129)
* Fix importing newer Prism instances and clean up import code a bit

* cargo fmt

---------

Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-01-15 15:34:21 -08:00
Prospector
e4cc8ef509
Fix typescript for OverflowMenu (#3139)
* Fix typescript for OverflowMenu

* Revert Discover content dropdown change to non-hoverable OverflowMenu

* Lint
2025-01-15 12:59:24 -08:00
Evan Song
d670a5cbb6
PY-53 Subscription Force Renewal Button (#3153)
* chore: show resubscribe on `failed` status

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: hide cancel on failed

Signed-off-by: Evan Song <theevansong@gmail.com>

* update copy

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2025-01-15 20:44:51 +00:00
Josiah Glosson
227386bb0d
Fix forever installing (#3135)
* Rough draft for fix for Mojang servers being down causing infinite installation

* Add "pack installed" install step

* Allow repairing an instance from Library to recover pack contents

* Allow repair from instance page

* Deduplicate repair code

* Fix lint

* Fix lint (for real this time)

---------

Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-01-11 15:27:47 -08:00
Sven
abd679d716
feat(frontend): project tags link to a search (#3126)
* feat(frontend): tags link to a search

* fix category type

* process feedback

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-01-10 08:52:05 -08:00
Awakened Redstone
ec5e3b0050
feat(frontend): Add filter query and download hash to the url during download modal use (#3138)
* feat: Automatically open download modal when filter queries are present

* chore: Use a hash to open the modal, and make the filter queries independent of the modal

* chore: Correct to use emit for taking functions

* chore: Add filter query and download hash to the url during modal use, and fix linting issues

* chore(frontend): Undo changes to NewModal

My computer does not like running the app, making testing a lot harder, so I'll undo this change, at least for now

* Remove extra line

---------

Signed-off-by: Prospector <6166773+Prospector@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-01-10 08:51:36 -08:00
Erb3
494616e9f2
chore: run lint (#3140)
* chore: run lint

* fix: whoops messed up lint
2025-01-10 08:42:31 -08:00
Erb3
82f81dc154
fix(ui): slider number input field with limits (#2899)
- Added min, max, and step fields to the input field of a slider
- Made the input field a number field to apply min, max, step, and accessibility
2025-01-09 16:47:29 -08:00
Awakened Redstone
316fe72ea5
feat(frontend): Automatically open download modal when filter queries are present (on the main mod page) (#3133)
* feat: Automatically open download modal when filter queries are present

* chore: Use a hash to open the modal, and make the filter queries independent of the modal
2025-01-09 16:45:23 -08:00
Erb3
6266f29b99
fix(frontend): lowercase giftcard sorting (#2986)
Resolves #1409
2025-01-09 15:16:17 -08:00
Awakened Redstone
fd9653e283
fix: Properly handle empty version list on version/latest (#3132)
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-01-09 15:14:12 -08:00
Tiger
b2f4366415
fix: an extra "2" after type "void" (#3127)
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-01-09 15:13:30 -08:00
Prospector
f859c34442
Fix some text color issues. Remove experimental colors reset for now. (#3136)
Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2025-01-09 15:13:05 -08:00
jebibot
c52d5e9a74
feat(app): update profile every time token is refreshed (#2328)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-01-09 13:37:42 -08:00
Antti Ellilä
021fee616d
Allow skipping updater at runtime with an environmental variable (#2388)
Co-authored-by: Modrinth Bot <106493074+modrinth-bot@users.noreply.github.com>
2025-01-09 13:37:17 -08:00
Jai A
0409fcec2f
skip projects with no issues 2025-01-08 22:19:04 -08:00
Jai A
8e754cfeb5
Add delphi integration, fix search showing plugins 2025-01-08 22:06:05 -08:00
Jai A
adf3d9540d
Remove clean.io for web traffic 2025-01-08 13:42:15 -08:00
Evan Song
d5f2ada8f7
Fix server suspension statuses (#3100)
* chore: correctly type suspension reason

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: faulty suspension condition allowing for fallthrough

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: here as well

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: add support suspension reason

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: handle support suspensions

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: patch pyroservers to handle 503

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: handle 503 in server root

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: dont make pyroservers errors scream at me anymore

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2025-01-06 22:06:34 -08:00
Jai A
a01da5452c
Update reports cap 2025-01-04 20:51:01 -07:00
Jai A
17d61277fa
Bump meilisearch version 2024-12-30 20:55:37 -07:00
Jai Agrawal
bb3de4b74b
Add balance route (#3107) 2024-12-30 20:17:51 -07:00
Josiah Glosson
01fe08f079
Make the update checker work for non-mods (#3088)
* Fix https://github.com/modrinth/code/issues/1057

* Make sure mods use the installed loader

* Switch &PathBuf to &Path

* Clippy fix

* Deduplicate some code

---------

Co-authored-by: Jai Agrawal <18202329+Geometrically@users.noreply.github.com>
2024-12-28 20:23:27 -07:00
he3als
8b7547ae38
fix(server backup settings): number input -> dropdown (#3099)
* feat(backup settings): number input -> dropdown

* fix(servers teleport dropdown): round last element

* fix index
2024-12-29 02:19:24 +00:00
he3als
0437503b75
feat(servers content): file upload + extra mod info + misc (#3055)
* feat: only scroll up if scrolled down

* feat: no query results message

* feat: content files support, mobile fixes

* fix(drag & drop): type of file prop

* chore: show number of mods in searchbar

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust btn styles

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: prepare for mod author in backend response

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: external mods & mobile

* chore: adjust edit mod version modal copy

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: add tooltips for version/filename

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: swap delete/change version btn

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: dont allow mod link to be dragged

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: oops

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: remove author field

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: drill down tooltip

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: fighting types

Signed-off-by: Evan Song <theevansong@gmail.com>

* prepare for owner field

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
Co-authored-by: Evan Song <theevansong@gmail.com>
Co-authored-by: Evan Song <52982404+ferothefox@users.noreply.github.com>
2024-12-29 00:31:52 +00:00
Jai Agrawal
2fea772ffb
Fix sockets causing actix hangs (#3089)
* Fix sockets causing actix hangs

* Fix fmt issues

* Retry failed S3 uploads

* Ignore launcher socket from sentry
2024-12-27 22:44:09 -07:00
Jai A
24765db045
Fix locking timeout on invalid IDs 2024-12-27 00:58:28 -07:00
Jai A
82393f2ae7
Fix locking timeout issues 2024-12-27 00:20:37 -07:00
Jai A
c86c98d000
fix search flashing in prod 2024-12-26 23:07:19 -07:00
Jai A
4d9741c424
fix search flashing, reorder filters on mods 2024-12-26 22:59:15 -07:00
Jai A
81ec068747
Mute audio via wry + v0.9.2 2024-12-25 14:41:28 -07:00
Jai A
4a031f7bbd
v0.9.1 fixes 2024-12-24 22:30:10 -07:00
Jai A
5b00ac17e5
fix lint, labrinth crash 2024-12-23 17:13:13 -07:00
Geometrically
9952c3a0c1
0.9.0 release (app) (#3056)
* Debug app

* Bump version, final fixes
2024-12-23 13:38:52 -07:00
Geometrically
cae6f12ea0
More app fixes 0.9.0 (#3054)
* initial set of fixes (toggle sidebar, profile pagination)

* more fixes, bump version

* fix lint:

* fix quick switcher ordering
2024-12-22 20:03:58 -07:00
Evan Song
ef08d8e538
Handle server upgrades (suspensions) in frontend (#3049)
* chore: make serverlisting handle upgrading server state

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: more prominent suspension status bar in server listing

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: handle upgrading in root server page

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2024-12-22 19:38:50 -07:00
Evan Song
8457d1484b
feat: hawk tuah (#3050) 2024-12-22 19:38:13 -07:00
Prospector
591fcfaf40 Remove empty header on search page 2024-12-22 02:20:28 -08:00
Prospector
dfd4cbd7ca Fix projects page 2024-12-22 02:19:02 -08:00
Prospector
b48601ed06 make quick instances square to match elsewhere and add tint 2024-12-21 20:00:03 -08:00
Jai A
39ab03786c
fix moderation 2024-12-21 16:53:04 -07:00
ooffyy
246df0d107
chore(knossos): auto resource pack versions (1.20-1.21.4) (#3042)
* Add resource pack versions (1.20-1.21.4)

* prettier

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-21 16:49:37 -07:00
bendy1234
a873e6623b
fix #2949 (#3043)
Signed-off-by: bendy1234 <83143663+bendy1234@users.noreply.github.com>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-21 16:49:15 -07:00
Joshua
fa4bca5cb8
fix: Change platform button leads to wrong page (#3046) 2024-12-21 17:44:00 +00:00
Joshua Samenfink
7e81083c04
Update link to the new labrinth codebase (#3047)
* The repository is archived now
2024-12-21 10:43:40 -07:00
Geometrically
c082148ecd
Fix crash on windows (#3041) 2024-12-18 23:53:00 -07:00
Prospector
76b1d1df8c
Misc fixes, new instance & project cards (#3040)
* Fix some TS errors, and misc settings fixes

* New instance + project cards

* bug fixes + lint

* Quick instance switcher

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2024-12-18 16:09:16 -07:00
Jai A
02dd2a3980
fix build while using modrinth tauri fork 2024-12-18 11:45:43 -07:00
Geometrically
c1b1e67a2c
Fix app builds not launching (#3035)
* Fix app builds not launching

* Revert tauri version change
2024-12-18 11:30:49 -07:00
Jai A
b7f514c6cc
fix lint 2024-12-18 00:42:27 -07:00
Prospector
547ec730c7
New instance settings in app (#3033)
* Tabbed interface component

* Start instance settings

* New instance settings, mostly done minus modpacks

* Extract i18n

* Some more fixes with settings, still no modpacks yet

* Lint

* Modpack installation settings

* Change no friends language

* Remove options legacy button

* fix lint, small bug

* fix invalid cond on friends ui

* update resource management page

---------

Signed-off-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-18 00:06:01 -07:00
Geometrically
6ceed4b226
App fixes 0.9.0 (#3034)
* push fixes to test on windows

* Fix searching mods

* Fix search not saving, fix scrolling issues, etc
2024-12-17 23:23:30 -07:00
Geometrically
7e8ceadfd4
Update servers route (#3032) 2024-12-16 17:34:20 -07:00
Evan Song
fee8d6c34e
Files UX Sprint (#3019)
* chore: dedupe lockfile

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: incorrect spacing between editing and browsing state

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve files image viewer toolbar

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: image viewer cursor affordance

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean imports

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: add tooltips

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: use black background

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: show scale factor, handle large images, consolidate state

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: add types to fs operations

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: add date create sorting option

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: match name of folder creation modal

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: add it here too

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: add creation date to file item, file manager header

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: a11y

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: ensure move item modal always has leading slash

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: correct move input placeholder

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: correct design disparity

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: add better affordance on active file item state

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: correct instances where we dont sentence case

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: notify that server restarted on saveandrestart

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: consolidate error state in file manager

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust sizing

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: drag and drop file items to move them

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: enable ability to drag folders too

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: better file movement toasts

Signed-off-by: Evan Song <theevansong@gmail.com>

* just say u hate me

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: uploading indicator for file uploads

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: cleaner file item ghost when dragging

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: enforce max length and truncate on ghost

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve item rename toast

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve item create toast

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: undo and redo stack

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: confusing behavior where folders were not sorted alphabetically

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: find and replace in file editor

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: correctly set language mode of file editor

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: slop

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: actually handle case with multiple dots in file name before setting language

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: match move icons in file context/threedot

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: upload indicator

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: dedupe lockfile again

Signed-off-by: Evan Song <theevansong@gmail.com>

* lockfile

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: file undefinedness

Signed-off-by: Evan Song <theevansong@gmail.com>

* checkpoint

Signed-off-by: Evan Song <theevansong@gmail.com>

* checkpoint

Signed-off-by: Evan Song <theevansong@gmail.com>

* checkpoint

Signed-off-by: Evan Song <theevansong@gmail.com>

* remove shitty animation logic

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: file upload queuer

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: only allow editable files to have active affordance

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: properly throw pyrofetcherror when rename fails

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: cancel file uploads

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2024-12-16 23:13:31 +00:00
Erb3
9aa70359a8
fix(frontend): ignore case in collection search for followed (#3005)
* fix(frontend): ignore case in collection search for followed

When searching for collections, the casing will normally be ignored. The item for "Followed Projects" will be removed if using capitalized characters though. This is especially confusing since it's titled with partially capital letters.

Resolves modrinth/code#1370

* chore: revert import sort
2024-12-15 06:15:59 +00:00
Zefir
58cbc1ada5
Use en dash for range of versions (#2997) 2024-12-15 05:24:57 +00:00
Jai A
5f7d550a5a
fix failed fetches caching in app state 2024-12-14 22:16:15 -07:00
Jai A
b5d788ca6c
move profile listener 2024-12-14 22:02:38 -07:00
Geometrically
217b5700a2
Fix advanced rendering, ads showing over modals (#3029) 2024-12-14 21:36:00 -07:00
Prospector
ca7cfb30c7
Project installation indicator (#3023)
* Add indicator for project installation

* fix lint

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2024-12-14 21:35:50 -07:00
Prospector
283a915a12
Fix popouts not working (#3028)
* Attempt at fixing popouts? no idea if will work

* Try with no theme?

* Revert "Try with no theme?"

This reverts commit 7fb3a6c6a6233d091d235364d072ffbbc7b7250a.

* Try to remove triggers from theme

* Remove duplicate plugin

* Fix version issue

* Try to remove theme and use default theme

* Add back theme for later fixing

* Lint

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-15 04:15:50 +00:00
Prospector
24271a2388
Fix modal animation when modal is in another modal, and add close label (#3027)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-15 02:52:49 +00:00
Prospector
3e5b842b7a
Fix content list error when projects is undefined (#3026)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-15 02:48:21 +00:00
Prospector
465f7ac0c5
Fix multiselect styling (#3025)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-15 02:47:42 +00:00
Prospector
284f156e9f
Fix vite table warning (#3024)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-15 02:46:02 +00:00
Prospector
ac25a36bce
OLED fixes (#3022)
* Make sidebar darker in OLED theme

* Fix experimental styles in OLED mode

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-15 02:45:31 +00:00
Geometrically
f2e653b732
Bump tauri to v2 (#3018)
* Bump tauri to v2

* Switch to virtual typed list for content page

* Fix unexpected hang on windows

* Fix ads window scaling issues on some devices

* Use DPR from browser

* Fix link opens, bump version, fix lint
2024-12-14 19:23:47 -07:00
worldwidepixel
7f445e9b8c
Fix lack of collections tab (#2936)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-14 21:54:30 +00:00
Evan Song
57e27fb0fa
chore: regenerate lockfile (#3016) 2024-12-12 23:59:48 +00:00
Evan Song
e86c9df39d
Platform page UX improvements (#3009)
* chore: initial fixes from app redesign merge

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: ccpa hydration error

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: migrate tailwind to esm

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: default platform selection to current mc version

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: navigating and installing content

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: respect sentence case

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: match new page padding

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: allow user to erase all data when installing from modpack

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: hide hide installed content check if modpack search

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: wording

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: make erase data toggle more prominent

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2024-12-12 23:12:54 +00:00
Jai A
1f060b8513
Fix lint, socket echo 2024-12-12 14:36:02 -08:00
Geometrically
c970e9c015
Fix sockets issues (#3015)
* Fix sockets issues

* Fix app comp
2024-12-12 13:25:25 -08:00
Jai A
10ef25eabb
fix intellij proj 2024-12-11 20:45:38 -08:00
Prospector
381cbe837b swap out fake blog post for a real one 2024-12-11 20:22:16 -08:00
Prospector
c39bb78e38
App redesign (#2946)
* Start of app redesign

* format

* continue progress

* Content page nearly done

* Fix recursion issues with content page

* Fix update all alignment

* Discover page progress

* Settings progress

* Removed unlocked-size hack that breaks web

* Revamp project page, refactor web project page to share code with app, fixed loading bar, misc UI/UX enhancements, update ko-fi logo, update arrow icons, fix web issues caused by floating-vue migration, fix tooltip issues, update web tooltips, clean up web hydration issues

* Ads + run prettier

* Begin auth refactor, move common messages to ui lib, add i18n extraction to all apps, begin Library refactor

* fix ads not hiding when plus log in

* rev lockfile changes/conflicts

* Fix sign in page

* Add generated

* (mostly) Data driven search

* Fix search mobile issue

* profile fixes

* Project versions page, fix typescript on UI lib and misc fixes

* Remove unused gallery component

* Fix linkfunction err

* Search filter controls at top, localization for locked filters

* Fix provided filter names

* Fix navigating from instance browse to main browse

* Friends frontend (#2995)

* Friends system frontend

* (almost) finish frontend

* finish friends, fix lint

* Fix lint

---------

Signed-off-by: Geometrically <18202329+Geometrically@users.noreply.github.com>

* Refresh macOS app icon

* Update web search UI more

* Fix link opens

* Fix frontend build

---------

Signed-off-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-11 19:54:18 -08:00
Evan Song
6ec1dcf088
Servers console performance improvements (#3007)
* feat: init selecting paper+purpur on purchase flow

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: properly implement Paper/Purpur in Platform

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: correct wording

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: redo platform modal

Signed-off-by: Evan Song <theevansong@gmail.com>

* Switch to HCaptcha for Auth-related captchas (#2945)

* Switch to HCaptcha for Auth-related captchas

* run fmt

* fix hcaptcha not loading

* fix: more robust loader dropdown logic

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: handle "not yet supported" install err

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: fix icon kerfuffles

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve vanilla install modal title

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: spacing

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: usePyroConsole store instead of passing a prop to prevent bulk panel refreshing

* chore: improve no loader state

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: type error

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust mod version modal title

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust modpack warning copy

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: vanilla empty state in content page

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust copy

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: update icon

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: loader type

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: loader type

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: always show dropdown if possible

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve spacing

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: appear disabled

Signed-off-by: Evan Song <theevansong@gmail.com>

* h

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: if reinstalling, show it on the modal title

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: put it in the dropdown, they said

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust style

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: sort paper-purpur versions desc

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: do not consider backup limit in reinstall prompt

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: backup locking, plugin support

* fix: content type error

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: casing

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: plugins pt 2

* feat: backups, mrpack

* fix: type errors come on

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: spacing

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: type maxing

* chore: show copy button on allocation rows

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: suspend improvement

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: TheWander02 <48934424+thewander02@users.noreply.github.com>
2024-12-11 23:49:22 +00:00
TheWander02
742c0edd9e
Paper and Purpur + Backups (#3004)
* feat: init selecting paper+purpur on purchase flow

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: properly implement Paper/Purpur in Platform

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: correct wording

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: redo platform modal

Signed-off-by: Evan Song <theevansong@gmail.com>

* Switch to HCaptcha for Auth-related captchas (#2945)

* Switch to HCaptcha for Auth-related captchas

* run fmt

* fix hcaptcha not loading

* fix: more robust loader dropdown logic

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: handle "not yet supported" install err

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: fix icon kerfuffles

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve vanilla install modal title

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: spacing

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve no loader state

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: type error

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust mod version modal title

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust modpack warning copy

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: vanilla empty state in content page

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust copy

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: update icon

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: loader type

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: loader type

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: always show dropdown if possible

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve spacing

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: appear disabled

Signed-off-by: Evan Song <theevansong@gmail.com>

* h

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: if reinstalling, show it on the modal title

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: put it in the dropdown, they said

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust style

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: sort paper-purpur versions desc

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: do not consider backup limit in reinstall prompt

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: backup locking, plugin support

* fix: content type error

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: casing

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: plugins pt 2

* feat: backups, mrpack

* fix: type errors come on

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: spacing

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: type maxing

* chore: show copy button on allocation rows

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: suspend improvement

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
Co-authored-by: Evan Song <theevansong@gmail.com>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Evan Song <52982404+ferothefox@users.noreply.github.com>
2024-12-11 06:49:50 +00:00
worldwidepixel
eff3189ded
feat(docs): General documentation improvements (OAuth documentation, docs meta) (#2855)
* feat: All good Docs things under the sun (favicon, oauth2, docs meta)

* Remove favicon changes (already fixed in other PR)

Signed-off-by: worldwidepixel <58098422+worldwidepixel@users.noreply.github.com>

---------

Signed-off-by: worldwidepixel <58098422+worldwidepixel@users.noreply.github.com>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-12-10 20:26:46 +00:00
Erb3
7d480ffbd6
fix(frontend): remove duplicate id for searchbars (#3000)
Only one element should have the same id. The id is used to link with the label's `for` attribute. There may be similar issues other places, but this is the one that was brought to my attention.

Resolves #2999
2024-12-10 20:16:13 +00:00
Evan Song
d851f32ea0
fix: do not consider backup limit in reinstall prompt (#2994)
Signed-off-by: Evan Song <theevansong@gmail.com>
2024-12-09 23:10:36 +00:00
Erb3
88b1a370d4
fix(frontend): redirect report button to signin if needed (#2953)
Fixes #2951
2024-12-07 19:45:32 +00:00
Erb3
b8957d386a
fix(frontend): internal server error on 404 (#2990) 2024-12-07 19:45:02 +00:00
Erb3
414e2ed2cd
fix: issue templates used outdated label names (#2991) 2024-12-07 19:44:45 +00:00
Geometrically
2987f507fe
Refunds + Upgrading/Downgrading plans (#2983)
* Refunds + Upgrading/Downgrading plans

* Servers list route

* Finish, lint

* add GAM fee to payouts

* Sync payment intent id with stripe

* fix lint, update migrations

* Remove tauri generated files

* Register refund route

* fix refund bugs
2024-12-06 19:37:17 -08:00
Jai A
2cfb637451
Remove sync agree state 2024-11-27 13:17:01 -07:00
Geometrically
47b0ccdf78
Friends system for app (#2958)
* Friends system for app

* Fix impl issues

* move friends to in-memory store
2024-11-26 18:23:29 -07:00
Erb3
7184c5f5c7
fix(app): update linux-schema.json (#2900)
Keeps bugging me in git. See https://discord.com/channels/734077874708938864/848329986577399818/1302710819792093266
2024-11-24 05:03:27 +00:00
Erb3
53d45dafc2
fix(backend): validate PAT name (#2906)
Uses the macros provided by validator to validate the name. The name already had a macro, but .validate was not called.

Resolves #1549
2024-11-24 05:03:12 +00:00
Evan Song
d90cc09620
Implements MOD-171: Intercom messenger integration on servers panel (#2959)
* feat: intercom

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: double check

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: address double booting

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-22 23:25:33 +00:00
Jai A
c741ba26cc
add sync agree state 2024-11-21 13:06:18 -08:00
Jai A
510a6977be
update ads.txt 2024-11-19 19:42:41 -08:00
Jai A
d83e1a5c6b
fix lint 2024-11-19 17:59:42 -08:00
Jai A
1557a6e1c0
RevIQ test 2024-11-19 17:58:35 -08:00
Jai A
396cf14d61
Add new PGAM lines 2024-11-19 14:13:31 -08:00
Erb3
4685330eaf
feat(labrinth): totp skew (#2887) 2024-11-19 00:31:48 +00:00
Jai A
8cd77ad1d8
Fix captcha not showing on create account page 2024-11-18 16:29:55 -08:00
Geometrically
3b0e59c8ab
Switch to Sendy for newsletter (#2954) 2024-11-18 16:19:12 -08:00
Evan Song
1f230383ce
Fixes MOD-160 (#2948)
* fix: refresh backups automatically when ongoing backups are running

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve backup creation rate limit msg

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: increase polling timeout

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: add notice of automatic refresh

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-18 02:59:01 +00:00
Evan Song
a1a920ee67
Fixes MOD-163 (#2952)
* init: correctly type powerstate in crash state

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: handle oom_killed and exit_code when a server crashes

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-18 02:58:43 +00:00
Jai A
1aa2299b55
fix hcaptcha not loading 2024-11-16 17:44:24 -08:00
Geometrically
b188b3feb3
Switch to HCaptcha for Auth-related captchas (#2945)
* Switch to HCaptcha for Auth-related captchas

* run fmt
2024-11-16 16:57:32 -08:00
Jai A
5ab1263495
Disable app ads clicks 2024-11-12 15:17:02 -08:00
Geometrically
7bb3059cd9
Revert TLS changes causing docker build fail (#2937)
* Revert TLS changes causing docker build fail

* Update build to push
2024-11-11 18:31:06 -08:00
Jai A
42db6001ed
Fix labrinth docker image breakage 2024-11-11 17:16:23 -08:00
Geometrically
3fa07f64d3
Ratelimit acct creation (#2933) 2024-11-10 22:47:58 -08:00
Erb3
648b40a8f5
fix(frontend): hide report button on own projects (#2905)
* fix(frontend): hide report button on own projects

Resolves #1381

* fix(frontend): hide report button on self
2024-11-11 05:15:37 +00:00
Erb3
ac46026f99
fix(frontend): mod search page with trailing slash (#2914)
Replaces the substring operation to find project type with a regex. The regex is a bit complex, so I added a comment explaining it.

Resolves #1382
2024-11-11 05:14:55 +00:00
Evan Song
3ef56ce66e
chore: show all java versions toggle (#2932)
Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-11 05:14:14 +00:00
aw
b4998d3603
Update [id].vue (#2352)
Signed-off-by: aw <aw@a0.ax>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-11-08 19:34:36 -08:00
Geometrically
ae2cd947b2
Add beta and alpha badges (#2929)
Co-authored-by: Prospector <prospectordev@gmail.com>
2024-11-08 19:26:28 -08:00
Jai A
aae00e1312
Fix forge versions being reversed 2024-11-08 16:26:02 -08:00
he3als
24e90f0a54
feat(marketing): miami, overallocation card, misc fixes (#2926)
* fix(marketing): make faq headings medium

* feat(marketing): add card for overallocation

* feat(marketing): add miami location

* fix(marketing): 'login' -> 'sign in' consistency

* feat: plan query string support + simplify buttons
2024-11-08 23:52:32 +00:00
Jai A
f5208a85b0
Add rev.iq back to ads.txt 2024-11-07 19:08:12 -08:00
Jai A
8db4b3f83b
Fix modrinth plus subscribing 2024-11-07 19:01:53 -08:00
Erb3
33ad04d036
feat(frontend): show date of user join (#2901)
* feat(frontend): show date of user join

Shows and formats the date when the user joined, on hover. Can add `cursor-help` if wanted.

Resolves #2243

* chore(frontend): lint
2024-11-08 02:25:02 +00:00
Jai A
4bcdb3f495
Fix lint + docker build 2024-11-07 18:21:01 -08:00
Jai A
70979172b0
fix daedalus neoforge manifest misformatting 2024-11-07 18:13:57 -08:00
Jai A
493b9a3975
Re-add inmobi 2024-11-06 13:25:39 -07:00
Jai A
5a21a67d46
Remove inmobi (temp) 2024-11-06 11:27:35 -07:00
Evan Song
ff72c906ba
fix: correct uri encode paths in fs module (#2922)
Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-05 23:35:43 +00:00
Evan Song
907b1f67ed
fix: multipart mrpack by gently holding ofetch's hand and saying "we got this, actually" and we ignore all the bullshit that comes with it (#2921)
* fix: multipart mrpack

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: use native fetch

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-05 23:21:41 +00:00
Evan Song
72cbe7f905
fix: unnecessary refetch of server modules on first mount (#2918)
Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-05 22:53:14 +00:00
Evan Song
deb16aa7ab
pyro: multipart mrpack uploads (#2917)
* chore: impl in pyroservers

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: disable install btn if loading

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-05 22:24:13 +00:00
Evan Song
d0efa44c9e
refactor(terminal): rewrite terminal virtualization (#2916)
Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-05 20:32:11 +00:00
he3als
d321843c02
feat(servers): full custom plan capacity checks & more (#2911)
* feat(servers): improve plan button logic

* feat(servers): custom plan capacity checks

* feat(servers): custom plan dynamic ram values

* feat(servers): add custom plan selector back

* fix(servers): final fixes
2024-11-05 02:07:40 +00:00
Jai A
2b44b145cb
Remove direct clean.io script 2024-11-04 17:58:27 -07:00
nullptr
9f5606889e
fix: remove plan selector (#2909) 2024-11-04 16:27:49 -08:00
Evan Song
417f2a8b91
fix: do not prepend modrinth.com to backup download url (#2908)
Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-04 23:42:32 +00:00
Jai A
d3a7bf967e
kill ads loop after 10s 2024-11-03 23:50:55 -07:00
Jai A
db145cd8ad
More ads test 2024-11-03 20:35:04 -07:00
Jai A
7d614f7ac5
Remove inmobi for US traffic (test) 2024-11-03 15:27:41 -08:00
Prospector
c7a2a3e29b Fix navigation tab highlights for certain project types 2024-11-03 10:45:43 -08:00
nullptr
3b966c03ee
fix(servers): faqs not opening on nav (#2897)
* feat(servers): allow scrolling faq into view via hashes

* fix(servers): hide webkit details marker for faq

* fix(servers): faqs not opening on nav

---------

Signed-off-by: nullptr <62841684+not-nullptr@users.noreply.github.com>
2024-11-03 17:43:23 +00:00
Erb3
66d943d391
fix(frontend): alt-text for flags (#2894)
Fixes #2397
2024-11-03 17:10:09 +00:00
nullptr
f5f876e458
fix(servers): hide webkit details marker for faq (#2895)
* feat(servers): allow scrolling faq into view via hashes

* fix(servers): hide webkit details marker for faq

---------

Signed-off-by: nullptr <62841684+not-nullptr@users.noreply.github.com>
2024-11-03 17:09:29 +00:00
Erb3
27c3439120
fix(frontend): remove double dollar sign in chart (#2896)
Resolves #2400 by removing the SVG suffix.
2024-11-03 17:09:17 +00:00
nullptr
f212d04261
feat(servers): allow scrolling faq into view via hashes (#2893)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-11-03 16:35:24 +00:00
Erb3
06f01aa85c
fix(frontend): generate auth URL with provider (#2891)
Resolves an issue where the frontend generated URLs without provider property when there is a frontend redirect uri. Without the provider, labrinth defaults to GitHub.

Fixes #2884
2024-11-03 16:10:24 +00:00
nullptr
5f48dc08a9
fix(servers): standalone versions not showing up in loader page (#2890) 2024-11-03 16:00:06 +00:00
Prospector
e81e056758 Fix mistake in Servers marketing 2024-11-03 02:21:17 -08:00
Conrad Ludgate
2d95ff0830
chore: massage dependencies and features to remove openssl/native-tls (#2859)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-11-03 09:48:35 +00:00
Evan Song
81d921d625
Pyro: Initial Marketing Fixes (#2885)
* fix: typo

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: specify specs on reliable hosting card

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clarify locations

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clarify SFTP and networking features

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust copy

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: pushj faq section

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: address review

Signed-off-by: Evan Song <theevansong@gmail.com>

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
2024-11-03 01:05:47 -08:00
FelixBrakel
e988513ed7
Typo: Change millibit to megabyte (#2406)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-11-03 09:42:57 +00:00
June
783d4f82d9
removed 1rem top margin for project description (#2523)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-11-03 09:32:29 +00:00
Accieo
b5011f458f
Add minecraft as loader to create version api docs (#2877)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-11-03 09:32:18 +00:00
June
5d0e4366d2
set right margin to 0 on svgs inside a square notification button (#2871)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-11-03 09:30:59 +00:00
June
8643dc02dd
Consistent alignment for 'project settings page confirmation' buttons (#2524)
* buttons in .button-group now aligned to flex start

* revert global style change for .button-group

* manual fix for merge

* scoped .button-group styles

* /tags whitespace revert

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-11-03 09:29:44 +00:00
Jai A
7c4dcb2817
Fix game version filters 2024-11-02 23:18:31 -07:00
Jai A
6b64fdafcb
Fix loaders/gvs not showing 2024-11-02 22:45:50 -07:00
Elizabeth
185dd47668
Pyro Integration (#2503)
* fix

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor(fileitem): optimize

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore(fileitem): fixed width timestamp

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(fileitem): allow editing json5/jsonc

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: motd pt 1, auto backups scaffolding, editing navbar changes

* feat: fancy sidebar animations

* fix: files

* fix: files pt2

* fix: faulty name validation disallowing spaces in file names

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor: fileitem props

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: upload files not refreshing files list

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(imgviewer): handle invalid/empty images

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: return of the sticky files header

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: prevent servericon from shrinking

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: wtf were we thinking with this anyway

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: further mobile optimization

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: propagate margin

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: truncation fixes

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: track navbar with sentinel

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(files): a11y

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: improve inspector styles

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: console preformance improvements, decrease blur

* feat(mobile): new server header

* fix: linting

* fix: useless z indeces

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust file filter names

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(files): true breadcrumbs

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(marketing): make custom responsive

* fix(marketing): mobile file manager card

* feat: trackable navtabs

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: oh no

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: smartly truncate

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(terminal): z-indexes

* fix: autofocus more inputs

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: color

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust copy

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: backup modal usability improvements

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: padding

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: title

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(content): update banner mobile support

* fix: server listing icons

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: ignore clicks in server listing for labels

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(mobile): backup card

* fix(backups): make plural conditional

* fix: debounce file item selectitem

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: lint

Signed-off-by: Evan Song <theevansong@gmail.com>

* stuff

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: temp sidebar fix until i can be smart

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: explictly set button type in file modals

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: properly sort backups

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: add getautobackup method to pyroservers

Signed-off-by: Evan Song <theevansong@gmail.com>

* choer: update autobackup params

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: update autobackup methods (REALLY GUYS)

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: implement autobackups

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: implement backup-while-running preference

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: make server labels a component

* feat: implement 'All details' modal

* fix(mobile): server manage page

* feat(files): mobile compatible

* fix(info labels): wrap

* chore(inspector): clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(backup settings): swap + and -

* fix(manage): new -> plans instead of modal

* feat: more small mobile fixes

* fix(auto backup modal): manual input validation

* fix(file browse navbar): home margin

* feat(purchase modal): mobile support

* fix(marketing): faded line alignments

* feat: add servers to mobile nav

* feat(network): dns record fixes

* feat: make all settings work on mobile

* fix(loader settings): modpack mobile

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(marketing): add 'Manage your servers' button

* fix(marketing): only check servers if logged in

* fix(network): allocation edit & delete button

* fix(backups): use UiServersTeleportOverflowMenu

* chore: linting

* chore: but here comes the sentence case

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(marketing): make buttons consistent

* lint

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(loader): prevent multiline version names in dropdown

Signed-off-by: Evan Song <theevansong@gmail.com>

* lint

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: copy

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: sentence case

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: linting

* chore: rename dumbass preference key

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor: rewrite power action buttons

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: robust download logic

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(loader mobile): modpack dropdown width

* fix: sentence case

* fix(save & 'working on it'): look good on mobile

* fix(TeleportDropdown): width

* fix(inspecting error): mobile

* fix: show action button dropdown when installing

* fix(navtabs): temp fix for mobile scrolling issue

* fix(install error): mobile compatible

* chore: just remove tracking

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: cleanup

* fix: broken svg clr in checkbox when using experimental styles

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust vanilla icon

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust loader props

Signed-off-by: Evan Song <theevansong@gmail.com>

* revert changes to serversidebar

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: server properties flicker

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(backups): plural

* fix: cases where the telepoverflow would clash with viewport edge

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(backups): auto-backups label

* fix(network): titlecase

* feat(fileitem): new rename icon

* fix(properties): wiki proper noun

* fix: disable motd for the time being

* chore: adjust wording for power conifmration

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: "external" to billing

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: icon

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: add EULA checkbox

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* me and bro deciding which case rules to enforce

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(sftp): copy address & username, launch tooltip

* feat(files): better move

* chore: attempt to mitigate excessive stack depth type

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(loader): prevent versions 1.2.4 and below

* feat(dns table): placeholder improvements

* feat(pyroServer): error handling

* fix: intrinsic size on loader icon

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust wording

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: sentence case

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust wording

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: types

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: "implemented" key in preference

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat(connection lost): redesign

* feat(connection error): make icon orange

* fix: cleanup

* chore(connection lost): redesign pt 2

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: OOOOHHH MY GOD

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: implement capacity api on marketing

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: update createdat backup type

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor: all of backups

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: update backup types

Signed-off-by: Evan Song <theevansong@gmail.com>

* refactor: backups pt 2

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: comically small icons

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: align designs

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: hide ram graph if ram as bytes enabled

Signed-off-by: Evan Song <theevansong@gmail.com>

* base add content page

* Fix conflict

* feat(content): mobile-compatible header, sticky

* fix(marketing): md instead of sm for custom

* fix: compiler macro warning

Signed-off-by: Evan Song <theevansong@gmail.com>

* again

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: loader type error

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: default uptime seconds prop

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: hydration errors on server listing

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: move custom URL to general

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: indiviudally checkj capacities

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: falsey

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: missing prop

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: Derive On That Thang

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: adjust gap

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: add default name for backups

* fix: the backup number should PROBABLY be computed lol

* fix(backups): truncate text, mobile fixes

* fix(loader): modpack mobile fix

* feat(plans): add vcpus

* fix(backup modal): blank by default, maxlength

* fix(subdomain): separate length & valid chars

* feat: mrpack installs functionality (untested), forbidden handling, backups grammar

* feat(content): make responsive on mobile

* fix: disable plan buttons separately

* fix(backup modal): update name max length

* fix(purchase): wrapping on eula, eula link

* fix: move skeleton

* fix(server mobile header): truncation

* fix(server header): proper alignment

* Finish content page fixes

* fix: who up rinthing

Signed-off-by: Evan Song <theevansong@gmail.com>

* wip

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(staging & email banner): z-index

* feat: make eula tickbox more visible

* fix: move "powered by pyro" below buttons on hero

* fix: oops sorry ellie, also updated the main screenshot

* feat: update content screenshot

* fix: content page card should hide image on lg

* feat: hide total storage for now

* fix: terminal card now uses terminal icon

* fix(marketing): make medium plan card border solid

* feat: modloader card, move pyro BACK below buttons, beta release pill

* fix: spinning logo should be behind hero

* feat: surgically remove the hero's massive forehead

* feat(marketing): mobile UI screenshot

* fix(hero): z-index goes over mobile nav

* fix: consistent borders, files breakpoints

* chore: update turbo

* chore: adjust hero sizing

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: mention region restrictions

* chore: double check if we are at capcity

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: measure twice cut once

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: bro cut twice and measured once 💀

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(marketing): login first

* fix: out of capacity text when logged out

* fix(slider): reset some values for frontend

* feat: wip hero section

Signed-off-by: Evan Song <theevansong@gmail.com>

* New navigation to support the new products (#2879)

* Nav

* oops extra file

* feat: mrpack uploading with existing modpack, fix: choose modpack duplicate

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: update features section

Signed-off-by: Evan Song <theevansong@gmail.com>

* Nav adjustments

* fix: server manager empty state clashing with loading state

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: query param hard

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: do not count uptime if crashed

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: grammar

Signed-off-by: Evan Song <theevansong@gmail.com>

* hide hero img on lg breakpoints

* Make plugins a plug

* chore: prep for buffered text selection terminal

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix: marketing responsive stuff, n fixes

* fix hoverable prop

* fix: edit mod spacing

* fix: type error for display name in dropdown

Signed-off-by: Evan Song <theevansong@gmail.com>

* feat: custom plans

* fix: no more console.log

* fix: properly linked prop label

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix(install hero mobile): padding

* fix: prevent x overflow on servers page

Signed-off-by: Evan Song <theevansong@gmail.com>

* fix lint oh ym fucking god yal

Signed-off-by: Evan Song <theevansong@gmail.com>

* Migrate modpack install to search

* fix(custom plan): warning icon variable

* fix: loading probally and modal loader things

* fix(marketing): login icon colours

* fix(marketing): responsiveness

* fix(marketing): responsiveness v2

* fix: sync button for icon tm

* fix(marketing): responsiveness v3

* fix: hero image

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: clean

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: switch to cdn links

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: switch to cdn links

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: switch to cdn links

Signed-off-by: Evan Song <theevansong@gmail.com>

* chore: switch to cdn links

Signed-off-by: Evan Song <theevansong@gmail.com>

* Remove prod override

---------

Signed-off-by: Evan Song <theevansong@gmail.com>
Co-authored-by: Evan Song <theevansong@gmail.com>
Co-authored-by: TheWander02 <48934424+thewander02@users.noreply.github.com>
Co-authored-by: he3als <65787561+he3als@users.noreply.github.com>
Co-authored-by: Evan Song <52982404+ferothefox@users.noreply.github.com>
Co-authored-by: Lio <git@lio.cat>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: not-nullptr <needhelpwithrift@gmail.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
Co-authored-by: Prospector <prospectordev@gmail.com>
Co-authored-by: sticks <tanner@teamhydra.dev>
2024-11-02 21:14:00 -07:00
Jai A
f165665a35
Fix primary filter 2024-11-02 01:44:05 -07:00
Jai A
ad38749f98
fix lint 2024-10-31 15:24:13 -07:00
Jai A
7825dd64ca
Sync app consent with inmobi consent 2024-10-31 15:14:41 -07:00
Jai A
f6af620643
Add inmobi to app iframe 2024-10-30 15:30:24 -07:00
Skye
b5aeef7ebf
Allow Bearer prefix on authorization tokens (#2854)
Signed-off-by: Skye <me@skye.vg>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-10-27 19:04:17 +00:00
June
f5a201dd94
add top margin to author actions section (#2861) 2024-10-27 11:27:06 -07:00
Erb3
72dab12033
fix(docs): correct favicon url (#2843)
Starlight defaults to favicon.svg, however a favicon.ico was added to the repo.

Changes:

- Format astro config according to Prettier
- Properly set favicon
2024-10-24 13:24:13 -07:00
Jai A
ce4b4ba41d
Fix daedalus run 2024-10-23 13:41:22 -07:00
Jai A
945206153d
ads.txt update 2024-10-22 12:10:54 -07:00
Geometrically
9f977d082b
Merge pull request #2840 from modrinth/daedalus-add
Add daedalus to monorepo
2024-10-21 15:33:58 -07:00
Jai A
4a2ec0c40c
Merge remote-tracking branch 'origin/daedalus-add' into daedalus-add 2024-10-21 13:22:30 -07:00
Jai A
70bf61a645
Fix fmt 2024-10-21 13:21:56 -07:00
Geometrically
674f4b1095
Merge branch 'main' into daedalus-add 2024-10-21 12:40:17 -07:00
Jai A
3304070034
Add custom parameter for app/web traffic 2024-10-21 12:34:46 -07:00
Geometrically
19ca5f08c6
Merge branch 'main' into daedalus-add 2024-10-21 12:16:41 -07:00
Jai A
5605910ac8
Build spec package 2024-10-21 12:11:14 -07:00
Erb3
b1eda435a5
fix: update old docs links (#2845)
- Markdown guide link to support article
- API version deprecated error to new docs
- Modpack permissions error to support article
- Labrinth README links to new docs
- App WebView2 link to support article
2024-10-21 12:08:06 -07:00
Jai A
e88ca8430e
rust update 2024-10-19 20:11:18 -07:00
Jai A
d39db02a73
Fix docker build 2024-10-19 20:04:21 -07:00
Jai A
86a64ca929
Update readmes 2024-10-19 19:46:40 -07:00
Jai A
5ea0f7d4c7
Fix docker build again 2024-10-19 19:42:52 -07:00
Jai A
b3fa2fa6d2
Fix docker build 2024-10-19 19:38:36 -07:00
Jai A
999dc640bc
fix package 2024-10-19 15:44:37 -07:00
Jai A
9be9658ffb
Add daedalus 2024-10-19 15:14:30 -07:00
Jai A
595d5362f6
Merge remote-tracking branch 'daedalus/monorepo-migration' into daedalus-add 2024-10-19 14:59:12 -07:00
Jai A
f212fcf892
Start monorepo migration 2024-10-19 14:40:58 -07:00
Geometrically
8c1c5572c0
Merge pull request #2517 from modrinth/labrinth-add
Add labrinth to monorepo
2024-10-19 12:42:38 -07:00
Jai A
31d151638a
Temp disable labrinth test in CI 2024-10-19 12:39:46 -07:00
Jai A
fb6b41630c
Fix compose script 2024-10-19 10:07:22 -07:00
Jai A
6ab806cbde
Merge remote-tracking branch 'origin/labrinth-add' into labrinth-add 2024-10-18 21:28:01 -07:00
Jai A
c0267f7746
Remove all features 2024-10-18 21:14:25 -07:00
Geometrically
a54b6dc7b9
Merge branch 'main' into labrinth-add 2024-10-18 19:45:43 -07:00
Jai A
9ec43ebe70
Fix lint 2024-10-18 19:45:00 -07:00
Geometrically
486cd68bf7
New docs site (#2521)
* initial docs

* more docs work

* Update readme + add license

* update frontend GH action
2024-10-18 17:36:20 -07:00
Jai A
98c050e7e9
Fix lint again 2024-10-18 17:33:15 -07:00
Jai A
25fcee984b
Add container labels 2024-10-18 17:00:36 -07:00
Jai A
86922c4547
Fix lint not working 2024-10-18 16:54:21 -07:00
Jai A
7bbdfd25cd
[skip ci] remove ds store 2024-10-18 16:28:40 -07:00
Jai A
b8ad22a6fb
Fix checks 2024-10-18 16:23:32 -07:00
Jai A
8dd955563e
Fix clippy errors + lint, use turbo CI 2024-10-18 16:07:35 -07:00
Jai A
663ab83b08
Fix build deps 2024-10-18 15:47:23 -07:00
Jai A
c143929b69
Move rust checks to own file 2024-10-18 15:43:30 -07:00
Jai A
1b73d248b3
bump rustc 2024-10-16 16:12:23 -07:00
Jai A
cc22a92daf
Update dockerfile 2024-10-16 16:07:24 -07:00
Jai A
39f0408929
Fix contact path 2024-10-16 16:04:45 -07:00
Jai A
e66f46a464
Fix check config 2024-10-16 16:02:55 -07:00
Jai A
9243296197
Fix again 2024-10-16 16:01:50 -07:00
Jai A
26ce83f8f1
Fix docker path 2024-10-16 15:59:29 -07:00
Jai A
907ef38189
make checks work 2024-10-16 15:57:44 -07:00
Jai A
a7d4001b00
Merge remote-tracking branch 'labrinth/mono-repo-migrate' 2024-10-16 14:15:45 -07:00
Jai A
e3a3379615
move to monorepo dir 2024-10-16 14:11:42 -07:00
Jai A
356a06e694
add signal for app vs web 2024-10-15 23:47:51 -07:00
Geometrically
fce516a76f
Remove ads muting (#2511) 2024-10-15 23:43:49 -07:00
Jai A
42ade0fbd1
make script non-async 2024-10-15 10:56:35 -07:00
Jai A
ba07f5dad4
Add clean.io direct 2024-10-15 10:52:00 -07:00
Jai A
cc89e0f3f1
remove ad cookie (main) 2024-10-14 23:49:27 -07:00
Jai A
0e14d3f9c1
update ads.txt 2024-10-14 23:47:42 -07:00
Geometrically
ff7975773e
Prorations (#975)
* Prorations

* Fix pyro integration

* set server uuid on creation

* fix comp

* Fix new charge date, pyro suspend reason

* Update server creation endpoint
2024-10-14 13:30:04 -07:00
Norbiros
6716e2277d
fix(theseus): Files drag & drop (#2499)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-10-12 13:27:07 -07:00
Mysticdrew
f986dc5d11
Remove extra "not" (#2506)
Signed-off-by: Mysticdrew <drewhaas@gmail.com>
2024-10-10 15:27:43 -07:00
Geometrically
570a4096f9
Update billing with backend changes (#2505) 2024-10-09 21:11:49 -07:00
Geometrically
c88bfbb5f0
Move charges to DB + fix subscription recurring payments (#971)
* Move charges to DB + fix subscription recurring payments

* Finish most + pyro integration

* Finish billing

* Run prepare

* Fix intervals

* Fix clippy

* Remove unused test
2024-10-09 21:11:30 -07:00
Jai A
d302795512
Fix ad init not working on no tauri invoke 2024-10-09 14:04:33 -07:00
Jai A
115acce80c
Add hashing to ads 2024-10-09 13:54:35 -07:00
Geometrically
a8731b0ca2
Fix unfollowing projects (#2496) 2024-10-08 15:19:46 -07:00
nekk
fd596bf418
type in ErrorModal.vue (#2492)
Signed-off-by: nekk <108535017+iam-nekk@users.noreply.github.com>
2024-10-06 21:11:39 +00:00
Geometrically
ef7cfffeb6
Add support for Optima (#2489) 2024-10-04 13:35:39 -07:00
Jai A
ac9bcabd9c
Add RPM to website 2024-10-02 13:33:47 -07:00
Geometrically
5bb961f16b
Fix linux appimage (#2482) 2024-10-02 12:02:14 -07:00
Jai A
a46677832b
Fix ads init 2024-09-29 17:57:16 -07:00
Geometrically
624abf0df4
Mute audio from playing in ads (#2471)
* Mute audio from playing in ads

* Update tauri version, get rid of custom

* bump wry

* fix more

* Fix lint
2024-09-29 17:51:51 -07:00
Erb3
e81a4ade97
chore: run lint (#2411)
* chore: run lint

* chore: fix lint
2024-09-28 01:28:13 +00:00
Geometrically
9708685506
Add GDPR export (#2461) 2024-09-27 13:33:28 -07:00
Geometrically
28b6bf8603
GDPR export route (#969)
* GDPR export route

* make users able to access
2024-09-27 12:43:17 -07:00
Geometrically
2713f0e610
Fix markdown images (#2452) 2024-09-25 12:29:51 -07:00
Geometrically
f7d1cd2a4f
Pause subscription renewals (#968) 2024-09-24 13:02:19 -07:00
Prospector
3b8963fad0 Update ads.txt 2024-09-16 19:19:34 -07:00
Prospector
060682a1ac Add moderation button to user menu 2024-09-14 15:02:23 -07:00
Geometrically
95cd48571e
Improve ad security, add CMP changes (#2399) 2024-09-13 20:33:51 -07:00
Jai A
3d619e6a98
Fix creator balance showing as zero 2024-09-12 15:52:37 -07:00
Geometrically
edb7e5f323
Integrate with Aditude API for payouts (#965)
* Integrate with Aditude API for payouts

* Update expiry

* Fix tests
2024-09-12 14:52:17 -07:00
Geometrically
0221034b60
Fix file paths opening (#2382) 2024-09-10 01:36:56 -07:00
Jai A
9500384100
Update ads.txt 2024-09-10 00:32:14 -07:00
Geometrically
0b31f2eb41
0.8.5 fixes (#2369)
* 0.8.5 fixes

* Attempt to fix binary name

* bump version + add nsis installmode

* (temp) Use cargo version of tauri CLI

* fix cli build

* Fix build env var

* Bump tauri version

* remove old invalid installs

* Fix old shortcuts + NSIS build
2024-09-10 00:24:17 -07:00
Sasha Sorokin
b3a6393c91
Add TypeScript to app-frontend (#2364)
* Add TypeScript to app-frontend

Co-authored-by: Evan Song <52982404+ferothefox@users.noreply.github.com>

* Switch app-frontend to ESLint 9 & Nuxt config

* Fix ESLint issues after config change in app-frontend

---------

Co-authored-by: Evan Song <52982404+ferothefox@users.noreply.github.com>
2024-09-07 23:40:40 -07:00
Geometrically
5b5599128a
Optimize user-generated images for reduced bandwidth (#961)
* Optimize user-generated images for reduced bandwidth

* run prepare

* Finish compression
2024-09-07 17:44:49 -07:00
Geometrically
cb0f03ca9c
Slack webhooks (#959)
* Slack webhooks

* Fix automod rejecting audio and locale packs

* Run prepare
2024-09-06 23:42:54 -07:00
Geometrically
2e35f3608b
Remove name field (and remove existing data) (#935)
* Remove name field (and remove existing data)

* run prep, fmt

* fix dummy data
2024-09-06 20:16:28 -07:00
Jai A
16c5a5a3a6
revert ads changes 2024-09-05 14:56:17 -07:00
Jai A
2e7db502a9
fix empty tag 2024-09-04 09:37:58 -07:00
Jai A
d29b71ec45
Fix app ads styling 2024-09-04 09:37:07 -07:00
Jai A
9cd0af914a
fix slot not rendering 2024-09-04 09:31:39 -07:00
Jai A
4a575393f0
remove inmobi 2024-09-04 09:29:06 -07:00
Jai A
76c93c767d
rev.iq support 2024-09-04 09:23:18 -07:00
Jai A
e69337a1fc
update ads.txt with new dsps 2024-09-03 21:22:24 -07:00
Sasha Sorokin
50734af6cd
Fix Game versions input not showing (#2358)
There is a bug in vue-multiselect library where it will default
`custom-label` property to raw properies object. Presumably this is a
bug that appeared because they ported library to Vue 3 and have not
considered that the signature for `default` prop's function has changed.

To work around this, we can provide custom `custom-label` property that
is just a function that returns the input itself. In other places, where
objects are passed, `label` property can be used. In this case the first
suggestion applies. DO NOT USE VUE-MULTISELECT WITOUT `LABEL` OR
`CUSTOM-LABEL` PROPS!
2024-09-03 16:44:21 +00:00
Norbiros
81b0922c93
chore(theseus): Updated Tauri links to v2 (#2345) 2024-09-01 21:57:13 +00:00
Norbiros
d4f8fff7af
fix(theseus): Posthog scripts, focus app when opening deeplink, update linux-schema (#2351)
* fix(theseus): Focus app when opening deeplink (#2347)

* fix(theseus): Allow for posthog scripts

* chores(theseus): Update `linux-schema.json`
2024-09-01 21:56:53 +00:00
Geometrically
bd61f5d591
Fix auto updater, add failure message, fix modals (#2335)
* Fix auto updater, add failure message, fix modals

* Fix ads hiding, updater UI

* dummy version, fix gh actions cache

* fix release conf

* actual version bump

* Fix ads hiding sometimes

* Fix event state init

* fix remaining bugs

* Fix lint on linux

* Fix deep linking on Windows

* Fix ad links opening multiple times
2024-08-30 10:42:58 -07:00
Geometrically
016c3d779b
Fix localhost windows opening (#2331) 2024-08-28 23:21:35 -07:00
Geometrically
acf26940d6
Implement ads in desktop app (#2318)
* Implement ads in desktop app

* Finish ads

* use git dep instead

* attempt to fix linux build (temp)

* bump version + lint

* comment more

* fix build

* try to fix linux build

* Fix crashing on windows

* Fix icons not showing

* Remove useless env vars

* Actual linux build fix

* Run fmt

* Fix scrolling

* fix clippy

* bump version + fix localhost

* rev linux build patch

* update version num

* update csp

* update csp

* update csp

* Switch to mousewheel event
2024-08-28 21:44:08 -07:00
Norbiros
4bafae881f
fix: Correctly fix App Build workflow (#2322)
Signed-off-by: Norbiros <norbiros@protonmail.com>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-08-28 10:18:54 -07:00
Prospector
8311451420
Update public-facing orgs page, componetize page headers (#2307)
* Update public-facing orgs page, componetize page headers

* Improve supported environments

* Move user page stats to top and remove details card

* Fix padding on orgs page when no navlinks

* fix lint

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-08-28 10:12:25 -07:00
Norbiros
4b75cb8357
fix: App Build workflow (#2320)
Signed-off-by: Norbiros <norbiros@protonmail.com>
2024-08-28 14:25:53 +00:00
Geometrically
bf16d360af
Switch to PostHog for app analytics (#2316) 2024-08-27 21:19:07 -07:00
Geometrically
38d95b4faf
Fix deep linking / file open on mac (#2314)
* Fix deep linking / file open on mac

* Update deep linking

* fix build

* fix build again

* update workdir

* try again

* update conf path

* try old conf

* use in house tauri

* move away from tauri GH act

* add rpm support

* Fix updater key

* Fix signing key pass

* fix ubuntu deps

* Fix macos artifacts
2024-08-27 17:50:10 -07:00
Jai A
b06e7d3cf4
Fix again 2024-08-27 13:59:16 -07:00
Jai A
9e7ea82f94
remove workdir 2024-08-27 13:50:48 -07:00
Jai A
d74fc8a5d5
fix release conf path 2024-08-27 13:39:29 -07:00
Erb3
4a43b45a99
fix(web): lint #2306 (#2309) 2024-08-27 19:48:44 +00:00
Norbiros
d6a72fbfc4
feat(theseus): Update to Tauri v2 (#2178)
* feat(theseus): Initial migration to Tauri v2

* feat(theseus): Added a way to zoom / scale UI

* chore(theseus): Started cleaning up some plugins

* fix(theseus): Github Actions

* refactor(theseus): Reduced boilerplate & more work

* feat(theseus): Allow multiple app instances to be open at once (#995)

* fix(theseus): Lint & more

* fix(theseus): App Release github action

* fix(theseus): Open links in browser & macos builds

* fix(theseus): Rebase fixes

* fix(theseus): Updater & app release action

* fix(theseus): Fixed definitions in `build.rs`

* Fix MacOS deep linking, window decorations

* fix(theseus): Closing & maximizing app

* Fix macos build

* add back release conf

* acc fix build

* make updater for release builds only

* focus window on startup

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-08-27 12:49:36 -07:00
Prospector
396f737612 Fix version page layout 2024-08-26 18:19:53 -07:00
Prospector
2dd8d5a119
Sidebar refinements (#2306)
* Begin sidebar refinement, change back to left as default

* New filters proof of concept

* Hide if only one option

* Version filters

* Update changelog page

* Use new cosmetic variable for sidebar position

* Fix safari issue and change defaults to left filters, right sidebars

* Fix download modal on safari and firefox

* Add date published tooltip to versions page

* Improve selection consistency

* Fix lint and extract i18n

* Remove unnecessary observer options
2024-08-26 16:53:27 -07:00
Erb3
656c5b61cc
Hotfix ci (#2296)
* ci: fix ci

* fix(eslint): remove code comment
2024-08-26 18:21:46 +00:00
Prospector
9fd0f6834a Fix missing a11y labels on project page buttons 2024-08-24 07:04:25 -07:00
Geometrically
58dac27186
Fix MRPACK export file include, add webview2 fail msg, fix window state (#2273)
* Fix MRPACK export file include, add webview2 fail msg, fix window state

* fix limt
2024-08-23 13:50:02 -05:00
Geometrically
c8befb6843
Fix forge again (#2268) 2024-08-22 23:52:38 -05:00
Jakob
fafd47fd90
Add align to img, p, and div & allow h1 to be centered (#2231)
* Add align to img, p, and div

Signed-off-by: Jakob <minenash@protonmail.com>

* fixed issue from porting pr

Signed-off-by: Jakob <minenash@protonmail.com>

* attempt to fix overflow of aligned imgs

Signed-off-by: Jakob <minenash@protonmail.com>

* Allow h1 to be centered

Signed-off-by: Jakob <minenash@protonmail.com>

* Excluded markdown-body from universal-card styling in components

* Fixed it in editor?

* undid previous attempt, did something simpler

---------

Signed-off-by: Jakob <minenash@protonmail.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-08-22 18:18:22 -07:00
Sasha Sorokin
e0990910f6
Remove shift caused by the Exclude filter button (#2265)
Previously, the Exclude button was removed from the the element tree
entirely until the group is hovered. Only when the group is hovered, the
button element was being switched to a proper display form. This has
caused the layout shift which was very visible when quickly moving
cursor over the filter options.

This commit makes it so that the Exclude button is always in its proper
display form (flex), however is transparent until the group is hovered.
The repeated transparency classes were removed from the icon as well to
prevent jarringly-looking double transition.
2024-08-22 18:17:59 -07:00
Geometrically
599f23c8aa
Optimize stripe links (#2258) 2024-08-22 15:37:48 -05:00
Jai A
a0bd011b80
bump app version (v0.8.2) 2024-08-21 22:24:44 -07:00
Geometrically
157c27c20d
Fix forge 1.15.2->1.16.5, Fabric 0.16.0+, and migration issues with Forge (#2232)
* Fix Forge versions, newer fabric, migration breakage

* lint

* fix lint
2024-08-21 21:24:35 -07:00
Mars
4d0407a3b3
Add tailwind to app-frontend (#2234) 2024-08-21 21:21:45 -07:00
Prospector
f73ed1213f Fix navbar modrinth plus link showing for subscribers 2024-08-21 19:58:04 -07:00
Jai A
679ffbcce7
Fix Fabric Loader 0.16.0, old forge versions 2024-08-21 18:42:02 -07:00
Prospector
daabe11d11 Fix nav for logged out users 2024-08-21 17:21:05 -07:00
Prospector
aaf125cfca Temporary nav revert 2024-08-21 14:08:56 -07:00
Jai A
161fc6bb68
remove .env 2024-08-21 10:05:12 -07:00
Jai A
1afed9f256
Fix version page not working 2024-08-21 09:53:56 -07:00
Prospector
e8d6c15fee Sort user tabs consisently 2024-08-21 09:31:34 -07:00
Prospector
8686b28c28 Fix collections button tooltip 2024-08-21 09:29:55 -07:00
Prospector
d68251ad4b Hide "Install with Modrinth App" for plugin-only projects 2024-08-21 09:17:37 -07:00
Prospector
a02b4ae08f Fix supported environments 2024-08-21 09:00:03 -07:00
Geometrically
9ed1dd714b
Fix ads showing with Modrinth PLus (#2187) 2024-08-21 00:30:23 -07:00
Prospector
95dc6c66d9 remove hardcoded url 2024-08-20 23:58:11 -07:00
Geometrically
e91c76c10c
Aditude integration (#2184)
* Aditude integration

* remove diff

* remove unused vars
2024-08-20 23:42:44 -07:00
Prospector
9deddbbe7c Improve environments compat description and fix accessibility issues project-wide 2024-08-20 23:34:53 -07:00
Geometrically
2d416d491c
Project, Search, User redesign (#1281)
* New project page

* fix silly icon tailwind classes

* Start new versions page, add new ButtonStyled component

* Pagination and finish mocking up versions page functionality

* green download button

* hover animation

* New Modal, Avatar refactor, subpages in NavTabs

* lint

* Download modal

* New user page + fix lint

* fix ui lint

* Download animation fix

* Versions filter + finish project page

* Improve consistency of buttons on home page

* Fix ButtonStyled breaking

* Fix margin on version summary

* finish search, new modals, user + project page mobile

* fix gallery image pages

* New project header

* Fix gallery tab showing improperly

* Use auto direction + position for all popouts

* Preliminary user page

* test to see if this fixes login stuff

* remove extra slash

* Add version actions, move download button on versions page

* Listed -> public

* Shorten download modal selector height

* Fix user menu open direction

* Change breakpoint for header collapse

* Only underline title

* Tighten padding on stats a little

* New nav

* Make mobile breakpoint more consistent

* fix header breakpoint regression

* Add sign in button

* Fix edit icon color

* Fix margin at top of screen

* Fix user bios and ad width

* Fix user nav showing when there's only one type of project

* Fix plural projects on user page & extract i18n

* Remove ads on mobile for now

* Fix overflow menu showing hidden items

* NavTabs on mobile

* Fix navbar z index

* Search filter overhaul + negative filters

* fix no-max-height

* port version filters, fix following/collections, lint

* hide promos

* ui lint

* Disable modal background animation to reduce reported motion sickness

* Hide install with modrinth app button on mobile

---------

Signed-off-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Prospector <prospectordev@gmail.com>
2024-08-20 23:03:16 -07:00
Geometrically
a19ce0458a
Finalize 0.8.1 release (#2182)
* Finalize 0.8.1 release

* Remove console.logs

* Fix build

* add default to users

* update release conf

* fix again?

* fix build (again)

* actually fix build

* Update config dir

* Update config dir

* Fix dir again
2024-08-20 17:53:14 -07:00
Magnus Jensen
3fca24e6fd
remove auto margin from square button svg (#2177) 2024-08-20 23:09:08 +00:00
Norbiros
6f956e0423
fix(theseus): Correctly open/highlight folders (#2180) 2024-08-20 23:08:26 +00:00
Geometrically
637a923e84
Fix empty subscriptions (#954) 2024-08-18 11:35:39 -07:00
ToBinio
bb3ce9fbc6
fix: not being able to Follow/Save/Report projects (#2173)
* fix: not being able to Follow/Save/Report projects

* fix lint
2024-08-18 18:08:04 +00:00
Jai A
06f2340569
[hotfix] fix stripe elements not working 2024-08-17 18:10:18 -07:00
Jai A
510c29cc71
[hotfix] fix env var 2024-08-17 17:55:31 -07:00
Geometrically
807aa04807
Apple pay support, fix publish key (#2171)
* Apple pay support, fix publish key

* fix api url
2024-08-17 17:43:12 -07:00
Geometrically
c84e2e0537
Switch to RustLS (#2169)
* Switch to RustLS

* Revert scroll change causing autoscroll to break

* App build remove
2024-08-17 13:37:45 -07:00
Jai A
1f8d569b79
Merge remote-tracking branch 'origin/master' 2024-08-17 13:28:20 -07:00
Jai A
93ae24e707
Fix forge format version 1 2024-08-17 13:28:00 -07:00
Geometrically
910e219c0e
0.8.0 beta fixes (#2154)
* initial fixes

* 0.8.0 beta fixes

* run actions

* run fmt

* Fix windows build

* Add purge cache opt

* add must revalidate to project req

* lint + clippy

* fix processes, open folder

* Update migrator to use old launcher cache for perf

* fix empty dirs not moving

* fix lint + create natives dir if not exist

* fix large request batches

* finish

* Fix deep linking on mac

* fix comp err

* fix comp err (2)

---------

Signed-off-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-08-16 23:20:11 -07:00
Geometrically
3a4843fb46
Billing / plus frontend (#2130)
* [wip] initial

* [wip] subscriptions/plus frontend

* [wip] finish payment flow

* Charges page

* finish most subscriptions work

* Finish

* update eslint

* Fix issues

* fix intl extract

* fix omorphia locale extract

* fix responsiveness

* fix lint
2024-08-15 23:21:30 -07:00
Jai A
1b3744baa2
update action to use prod branch 2024-08-15 20:32:45 -07:00
Geometrically
7dd340f0b6
Fix subscriptions edge case (#952)
* Fix subscriptions edge case

* prep
2024-08-15 02:03:46 -07:00
Geometrically
1d0d8d7fbe
Payments/subscriptions support (#943)
* [wip] Payments/subscriptions support

* finish

* working payment flow

* finish subscriptions, lint, clippy, etc

* docker compose
2024-08-14 17:14:52 -07:00
Norbiros
c7d8c8b104
fix: Correct discord link in README.md (#2149)
Signed-off-by: Norbiros <norbiros@protonmail.com>
2024-08-11 18:38:58 +00:00
Norbiros
a380d39865
feat(frontend): Package datapack as NeoForge mod (#2142) 2024-08-10 20:46:42 +00:00
Norbiros
34d3310eae
fix(frontend): Correctly parse neoforge.mods.toml (#2139) 2024-08-10 20:45:49 +00:00
Norbiros
6de8d2684a
fix: Disable Run Meta on forks (#19)
* fix: Disable `Run Meta` on forks

* fix: Also don't run `docker` action
2024-07-31 13:14:39 -07:00
Norbiros
9763a43943
fix: Correctly replace linux natives for LWJGL 3.3.1 (#20) 2024-07-31 13:14:30 -07:00
Jai A
f328eec26d
use bearer auth instead 2024-07-31 12:59:09 -07:00
Jai A
7684a54678
fix purge gh action (again) 2024-07-31 12:55:34 -07:00
Jai A
51f3174609
fix purge gh action 2024-07-31 12:48:37 -07:00
Sasha Sorokin
4fcd518b0a
Replace useAutoRef with Vue's toRef (#1332)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-07-31 19:44:48 +00:00
Sasha Sorokin
1e0d7c7e28
Rewrite cosmetics and theme preferences (#1328)
- Cosmetics and theme preferences are now only stored in cookies instead
  of a combination of both cookies and state.

- The theme plugin now supports client hints. This allows the server
  to render a page using the client-preferred theme provided it supplies
  this information (any browser other than Firefox), helping to avoid an
  annoying flash while the page is hydrating.

- For the future, the theme plugin now supports additional light themes.
  Light theme preferences are currently not stored, but this can easily
  be fixed if the need arises.

- The previous workaround using the Nitro plugin has been removed. Its
  functionality is now handled by the Nuxt theme plugin with cleaner
  code.

- All pages and components now use the new plugins.

- Compared to the previous attempt, this commit has been improved to be
  more robust in cases where the theme cookie contains invalid values.

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-07-31 19:42:55 +00:00
KTrain
984da93a7b
fix issue template descriptions (#1310)
* fix incorrect api urls

* fix descriptions on issue templates

* revert b51914e

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-07-31 19:42:16 +00:00
Norbiros
c2c7eda799
fix(frontend): Correctly infer Neoforge version info (#1326)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-07-31 19:41:52 +00:00
Geometrically
04b85630b9
Cache homepage projects in tags (#1336)
* Cache homepage projects in tags

* Update app page
2024-07-31 12:37:51 -07:00
Calum H.
ae4f3759c2
fix(knossos): Eslint config fix. (#1327)
* fix(knossos): Lint

* Fix lint issue.
2024-07-28 17:48:17 +00:00
Norbiros
a238dcc5e6
fix(theseus): Error modal (#1325)
* fix(theseus): Close button in ErrorModal

* fix(theseus): Overflow in ErrorModal
2024-07-27 19:00:02 +00:00
Jai A
57ba84107c
Revert "Rewrite cosmetics and theme preferences (#1292)"
This reverts commit 8704d3acb35e8a0c5c5a53c4f5c4f5532aae749a.
2024-07-25 17:38:37 -07:00
Norbiros
ca913cafbc
fix: README fixes (#1321) 2024-07-25 15:49:22 +00:00
Jai A
7032421096
revert inlineStyles 2024-07-24 16:24:56 -07:00
Geometrically
06ac959496
Fix duped styles + disable tailwind preflight (#1320) 2024-07-24 23:14:43 +00:00
Geometrically
41c15f8c96
Fix styling issues caused by omorphia/tailwind (#1319) 2024-07-24 12:40:36 -07:00
Jai A
5cad3dfbae
update rtb info 2024-07-24 11:32:38 -07:00
Geometrically
49a20a303a
Migrate to SQLite for Internal Launcher Data (#1300)
* initial migration

* barebones profiles

* Finish profiles

* Add back file watcher

* UI support progress

* Finish most of cache

* Fix options page

* Fix forge, finish modrinth auth

* Accounts, process cache

* Run SQLX prepare

* Finish

* Run lint + actions

* Fix version to be compat with windows

* fix lint

* actually fix lint

* actually fix lint again
2024-07-24 18:03:19 +00:00
ToBinio
90f74427d9
chore: update tauri (#1307) 2024-07-20 17:15:02 +00:00
Sasha Sorokin
ba9dc6ce26
Fix auth redirect URL being double encoded (#1280)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-07-20 00:24:35 +00:00
Norbiros
3a73994ad4
feat: Improve iframe parameter handling (#1299)
* fix(utils): Fix TypeScript issues in `parse.ts`

* feat: Improve iframe parameter handling (modrinth/knossos#362)
- Remove not whitelisted parameters instead of not rendering whole iframe
- Allowed `start` and `end` parameters in YouTube embeds
2024-07-20 00:24:29 +00:00
Norbiros
797e1f1f21
fix(theseus): Fixed multiple bugs (#1304)
* fix(theseus): Resolve log tab freezing entire app (#1127, #1237)
Switched to `vue-typed-virtual-list` due to freezing issues in WebKit caused by `vue-virtual-scroller`, which were difficult to resolve with the previous library.

* fix(theseus): Double opening of Socials Share link (#1136, #1074)

* fix(theseus): Proper symlinks resolution (#1236)
Ensures correct symlink resolution for specific mods, the mods directory, and the entire profile directory.

* fix(theseus): Correctly recognize NeoForge mods (#1215)

* fix(theseus): Corrected `Environments` and `Loaders` filters (#899)

* fix(theseus): Remove `_JAVA_OPTIONS` when testing JRE (#1171)

* fix(theseus): Fixed opening files using `show_in_folder`
Previously, opening a mod would display the contents of the JAR file instead of its location.

* fix(theseus): Hide `.DS_Store` files (#1274, #1002, #1174)

* fix(theseus): Corrected tooltip color

* fix(theseus): Fixed white mode issues (#1144, #1010)

* fix: Corrected `Slider` min and max value handling (#1008)

* fix: Fixed rebase problems

* fix: Fixed `:deep` usage warning

* chore: Updated eslint plugins to fix conflicts with Prettier
2024-07-20 00:20:12 +00:00
Norbiros
f1713647cf
More monorepo migration fixes (#1257)
* fix: More monorepo migration fixes

* fix: Corrected icon sizes & other fixes

* fix(theseus): Change color of mod installation button

* fix(theseus): More Turborepo fixes

* chore: Prettier

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-07-18 05:01:58 +00:00
Sasha Sorokin
8704d3acb3
Rewrite cosmetics and theme preferences (#1292)
- Cosmetics and theme preferences are now only stored in cookies instead
  of a combination of both cookies and state.

- The theme plugin now supports client hints. This allows the server
  to render a page using the client-preferred theme provided it supplies
  this information (any browser other than Firefox), helping to avoid an
  annoying flash while the page is hydrating.

- The previous workaround using the Nitro plugin has been removed. Its
  functionality is now handled by the Nuxt theme plugin with cleaner
  code.

- All pages and components now use the new plugins.
2024-07-13 19:20:43 +00:00
Sasha Sorokin
ce4250281f
Refactor auth middleware (#1279)
- Switch to TypeScript
- Use early return
- Switch to regular for loop

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-07-11 19:02:00 +00:00
Sasha Sorokin
aecbc714c4
Update @vintl/nuxt to ^1.9.2 (#1286)
This fixes the issue where types for NuxtApp would be incorrect due to
the incorrect Plugin return type by @vintl/nuxt.
2024-07-11 18:58:18 +00:00
Evan Song
c20242cf1c
Fix Cloudflare Pages build (#1285)
* fix(temp): remove box shadows from tailwind config

* fix(temp): "polyfill" global during build process

* refactor: use `import.meta` instead of deprecated `process`

* oops: replace `process.server` as well
2024-07-11 05:17:04 +00:00
Evan Song
04ba76aac8
Add NavTabs component (#1278)
* feat: NavTabs component

* fix: tw config using wrong variable

* fix: actually use the config now

* fix: revert testing
2024-07-10 03:33:50 +00:00
Geometrically
d1bc65c266
Monorepo missing features (#1273)
* fix tauri config

* fix package patch

* regen pnpm lock

* use new workflow

* New GH actions

* Update lockfile

* update scripts

* Fix build script

* Fix missing deps

* Fix assets eslint

* Update libraries lint

* Fix all lint configs

* update lockfile

* add fmt + clippy fails

* Separate App Tauri portion

* fix app features

* Fix lints

* install tauri cli

* update lockfile

* corepack, fix lints

* add store path

* fix unused import

* Fix tests

* Issue templates + port over tauri release

* fix actions

* fix before build command

* Add X86 target

* Update build matrix

* finalize actions

* make debug build smaller

* Use debug build to make cache smaller

* dummy commit

* change proj name

* update file name

* Use release builds for less space use

* Remove rust cache

* Readd for app build

* add merge queue trigger
2024-07-09 15:17:38 -07:00
PixelBedrock
60edbcd5f0
Allow user to select GitHub account (#922)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-07-09 15:12:15 -07:00
Evan Song
dab284f339
Frontend Tailwind Fixes + Small Fixes (#1258)
* Fix Tailwind not targeting the src dir

* Merge tw fixes

* Fix footer logo alignment in mobile layout
2024-07-07 18:28:55 -07:00
Norbiros
df76d9a50a
fix(theseus): Fixed scroll behavior bug (#1249) 2024-07-07 13:21:07 -07:00
Evan Song
abec2e48d4
Add TailwindCSS (#1252)
* Setup TailwindCSS

* Fully setup configuration

* Refactor some tailwind variables
2024-07-06 20:57:32 -07:00
Evan Song
0f2ddb452c
Migrate to Turborepo (#1251) 2024-07-04 21:46:29 -07:00
Jai A
6fa1acc461
prepare for initial push 2024-07-03 19:17:28 -07:00
Jai A
9502639447
Finish adding omorphia 2024-07-03 19:12:20 -07:00
Jai A
ef4acb1b66
Merge remote-tracking branch 'omorphia/monorepo-migration' 2024-07-03 16:24:41 -07:00
Jai A
8cb72d306b
Prepare for adding omorphia 2024-07-03 16:22:49 -07:00
Jai A
1ef8bf4690
Move files in preparation for monorepo migration 2024-07-03 16:21:07 -07:00
Jai A
22779c9dbc
Finish theseus 2024-07-03 16:03:41 -07:00
Jai A
b52467b6d6
Merge remote-tracking branch 'theseus/monorepo-migration' 2024-07-03 13:26:44 -07:00
Jai A
d33a0cd589
Prepare for adding theseus 2024-07-03 13:25:49 -07:00
Jai A
a04cb54d86
Move files in preparation for monorepo migration 2024-07-03 13:23:21 -07:00
Jai A
10785f156f
Add knossos 2024-07-03 13:05:14 -07:00
Jai A
4736fb8e32
Merge remote-tracking branch 'knossos/monorepo-migration' 2024-07-03 11:20:33 -07:00
Jai A
531e7ec73d
prepare for knossos merge 2024-07-03 11:20:25 -07:00
Jai A
ff946b4f2f
Move files in preparation for monorepo migration 2024-07-03 11:13:51 -07:00
Jai A
68f0e68343
Initial monorepo setup 2024-07-03 11:05:58 -07:00
Jai A
12a3520563
feat(nx): Generated CI workflow 2024-07-03 00:18:37 -07:00
Jai A
e84426a4f9
feat(nx): Added Nx Cloud token to your nx.json
To connect your workspace to Nx Cloud, push your repository
          to your git hosting provider and go to the following URL:

          https://cloud.nx.app/connect/BTN2S5oDFZ
2024-07-03 00:18:36 -07:00
Jai A
8b80934f77
Initial commit 2024-07-03 00:18:35 -07:00
Sasha Sorokin
b6618f81f8
Fix transition covering More download options btn (#1736)
This pushes bottom transition to a background level while setting it so
that any z-indexes are isolated within the hero to avoid any other
weirdness from happenning.
2024-07-02 22:05:27 -07:00
IlGrandeAnonimo
8140db32dd
Changed app category to “Game” to enable GameMode on macOS Sonoma 14+ (#1242)
Some references from Apple's Website:
https://support.apple.com/en-en/105118
https://forums.developer.apple.com/forums/thread/739387
2024-06-28 18:13:05 -07:00
Prospector
13db5f4423
New fancy readme (#1234)
* New fancy readme

* Add ATLauncher, clarify OneSix format support, and finish sentence.

* remove below

* missing comma

* use percentage instead of pixels for image size

* copy paste error
2024-06-28 18:12:48 -07:00
Jai A
0ae1e40d79
fix typo 2024-06-28 17:03:54 -07:00
Jai A
34d931573c
try with bookworm 2024-06-28 17:02:30 -07:00
Jai A
721365578a
update action to use master branch 2024-06-28 16:59:06 -07:00
Jai A
7be02318e0
add openssl 2024-06-28 16:55:54 -07:00
Jai A
88db79188c
use rustls 2024-06-28 16:50:47 -07:00
Jai A
8a0329b23d
don't run in detached mode 2024-06-28 16:48:03 -07:00
Jai A
02ebe59d2f
add dispatch support for meta 2024-06-28 16:45:06 -07:00
Jai A
6e8e053b88
fix newline 2024-06-28 16:40:12 -07:00
Jai A
fc3056b0e0
add rust log env 2024-06-28 15:53:59 -07:00
Geometrically
4274a8ed68
Fix forge install issues (#18)
* Fix forge install issues

* remove mac garb
2024-06-28 15:44:17 -07:00
Geometrically
8b16cd1b36
Daedalus Rewrite + Code Cleanup (#16)
* [wip] rewrite daedalus, vanilla, fabric, and quilt

* finish forge + neo

* fix docker

* fix neoforge 1.21+

* update concurrency limit

* finish

* remove mac garb
2024-06-25 15:47:27 -07:00
Sasha Sorokin
bd49d6bd89
Inject native router only in reactive scopes (#1730) 2024-06-15 08:27:38 -04:00
Sasha Sorokin
61fd6f1741
Fix Turnstile unable to read the siteKey (#1728)
It seems that Nuxt Turnstile's way of setting the key in `runtimeConfig`
is broken and doesn't work properly, resulting in an error in runtime,
because it has to be set. This commit sets the key in `runtimeConfig`
manually instead, which seems to fix the issue.
2024-06-14 23:26:45 -04:00
Geometrically
05d45d9aab
Fix page crash on orgs (#1727) 2024-06-14 15:43:09 -07:00
Geometrically
612eb64a83
fix broken navrow (#1725) 2024-06-14 15:29:35 -07:00
Sasha Sorokin
e0a9e62d84
Fix building for Cloudflare Nitro preset (#1726)
It seems that Rollup node-resolve module doesn't properly deal with
trailing slashes, causing it to thing that `string_decoder` is a
built-in Node.js dependency and attempt to import it from `unenv`, which
will obviously fail, because `string_decoder` is not, in fact, a Node.js
dependency, but an individual dependency of `readable-stream`.

This adds a small patch for `readable-stream@2.3.8` dependency, which
removes the leading slash, which seems to fix the builds.

This probably should be reported to relevant developers (Rollup
node-resolve plugin or Nitro?).
2024-06-14 15:26:12 -07:00
Sasha Sorokin
5db5f2251f
Fix bad if condition on languages page (#1721) 2024-06-14 15:21:22 -07:00
Sasha Sorokin
34fd9d29c8
Update Nuxt to v3.12.1 (#1720)
* Update Nuxt dependencies

* Fix ref access in ChartDisplay

* Fix feature flags cookie options type error

* Specify type-only imports

* Fix shorthands access to tags outside of reactive scope

* Replace most useRoute calls with useRoute from vue-router

Nuxt's version of this composable is horrendously broken (nuxt/nuxt#21340)

* Import all svgs with ?component parameter

Fixes weird hydration issues + gives correct type
2024-06-14 13:23:02 -07:00
Geometrically
5148e27448
Fix neoforge check, make forge validator more lenient (#928) 2024-06-14 13:16:05 -07:00
Sasha Sorokin
c6d8476963
Update pnpm to v9.3.0 (#1684) 2024-06-13 11:13:26 -07:00
Geometrically
608e55c01f
Fix duplicate file names (#927)
* Fix duplicate file names

* Fix checks
2024-06-12 21:40:24 -07:00
Geometrically
b8963d272a
Update validators again (#925)
* Update validators again

* fix tests + clippy
2024-06-12 14:38:35 -07:00
Geometrically
beaaed6613
Use row level locking for payouts (#926) 2024-06-12 14:19:15 -07:00
Sean O'Connor
6bbd8c9b16
Update link to LICENSE in COPYING.md (#865)
The link to the license was outdated and resulted in a broken path. The correct filename is "LICENSE.txt".

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-06-12 13:41:40 -07:00
Geometrically
872ffa02ce
fix version update route perf (#923)
* fix version update route perf

* fix tests
2024-06-12 09:58:01 -07:00
Prospector
1d9fe0c03d
Add new links card and feature flag system for incremental dev. (#1714)
* Add new links card and feature flag system for incremental dev.

* Switch to env variable for dev flags

* Add members card

* fix order of creators card

* Fix owner icon color and bring org owner to top of list

* lint + other fixes

* Revamp feature flag system, add flag config page

* Add button to flags page in dev mode

* fix env overrides

* make typescript happy with the refs
2024-06-11 19:46:07 -07:00
Jakob
5b2d36e976
Move extra loaders and change RP Resolutions to use OR (#1398)
* Put extra loaders at bottom of the list

* Added hidden loaders to a tag

* Made RP Resolutions use OR

* fixed lint
2024-06-11 19:45:48 -07:00
Prospector
547135f7d2
Fix lint 2024-05-20 21:58:58 -07:00
tobinio
15f1416f52 fix weird graph rendering 2024-05-17 13:57:20 -07:00
ItsNiceCraft
b2709aa816 docs(cmp-info): update last modified 2024-05-17 13:56:26 -07:00
ItsNiceCraft
9775d4e74d docs(cmp-info): update analytics section 2024-05-17 13:56:26 -07:00
intergrav
f5661af1f4 feat: third party packages on app page 2024-05-17 13:53:37 -07:00
Geometrically
7394fdc162
Fix auth timestamps (#1184)
* Fix auth timestamps

* Update error message, get valid timestamp on token refresh

* fix lint
2024-05-10 10:31:34 -07:00
Corey Shupe
a4f133eb46
Include crash reports and attempt to order by age. (#1178)
* Include crash reports and attempt to order by age.

* Do all sorting within rust.

* Remove excess debug.

* Remove new once_cell dep.

* Use EPOCH as fallback instead of now()

* Fix prettier lint warnings.
2024-05-09 10:29:19 -07:00
Corey Shupe
53007465cd
UUID implements copy so borrows are unnecessary. (#1154) 2024-05-09 10:25:53 -07:00
Sasha Sorokin
e1a748016a
Prompt users to provide debug info to support (#1172)
Many people contacting support forget to provide the debug information,
which significantly delays the resolution time because we're forced to
ask for this information anyway, as without it we cannot tell with
certainty the issue the person is facing.

Ideally in the future it would probably make sense to give a link to the
article describing the common issues for self-help, but there's no such
article yet. Perseus however is able to give suggestion for a few issues
given that it has the debug information.
2024-05-09 10:25:21 -07:00
Geometrically
b933202694
Fix quilt validator (#916) 2024-05-08 20:28:40 -07:00
Geometrically
611bec38b4
Pre-generate homepage (#1699)
* Pregenerate homepage:

* fix lint
2024-05-03 14:48:14 -07:00
Geometrically
89c7adfbcd
Fix auth device token (#1152) 2024-04-25 11:45:52 -07:00
Sasha Sorokin
4de64d9a43
Further auth requests consistency fixes (#1149)
* Further auth requests consistency fixes

- Generated device UUIDs are lowercase, whereas they're uppercase in MCL
- TitleId in SISU authenticate is supposed to be a string (it is in MCL)
- UseModernGamertag in SISU authorize, on the other hand, is a boolean
- Clarified charset of our requests like MCL does
- Specified rng gen call to generate u8 to fix compile error (???)

* Enable deflate, gzip and brotli compression support
2024-04-25 11:45:32 -07:00
Geometrically
deedf4fc8b
Switch to PKSE OAuth impl (#1146)
* Auth pkse

* add additional fields

* fix actions

* fix lint

* Purge broken auth + bump version
2024-04-24 21:27:25 -07:00
Geometrically
e9e99956ad
Remove unsafe unwraps causing crashes (#1135)
* Remove unsafe unwraps causing crashes

* run fmt

* bump version
2024-04-23 15:03:03 -07:00
ToBinio
08b26f9d5d
fix version page (#1121) 2024-04-23 12:09:02 -07:00
Geometrically
99ea06e22a
Bump to 0.7.0 + Add sign-in error (#1133) 2024-04-23 12:05:28 -07:00
Geometrically
49cf0c8a9a
Fix user deletion (#907)
* Fix user deletion

* run prep+fmt

* Update validators
2024-04-22 17:46:56 -07:00
Geometrically
83ccf4928f
Fix mod msg status (#896)
* Fix mod msg status

* Fix validators
2024-04-22 13:09:35 -07:00
Emma Alexia
28b0d34bff
Fix search query parameter validation (#863)
* Fix search query parameter validation

* fix compile

* make it actually work

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-04-22 11:40:31 -07:00
Geometrically
49cecf837b
Fix java installs (#1123)
* Fix java installs

* Finish java installs
2024-04-18 20:28:52 -07:00
Prospector
5a166d2455
Change to non-interactive turnstile (#1678) 2024-04-18 16:36:26 -07:00
Prospector
6808d270a7
Fix project header shadow (#1682) 2024-04-18 16:36:04 -07:00
Prospector
9dc68611a1
Remove incorrect minimum withdraw amount from dashboard (#1683) 2024-04-18 16:35:37 -07:00
Geometrically
2877919639
Switch to official launcher auth (#1118)
* Switch to official launcher auth

* add debug info

* Fix build
2024-04-15 13:58:20 -07:00
MelanX
76447019c0
Fix client-overrides not getting extracted (#1120)
Closes #1112

According to the [docs](https://support.modrinth.com/en/articles/8802351-modrinth-modpack-format-mrpack#h_3ad1b429f0), it needs to be `client-overrides`, not `client_overrides`. This PR fixes this typo.
2024-04-14 10:10:13 -07:00
Prospector
e932f38160
Fix pats and sessions using invalid translation keys (#1681) 2024-04-12 15:14:55 -07:00
Jai A
9014835880
fix translation issue 2024-04-10 18:48:06 -07:00
Geometrically
00328d04cd
Add messages to checklist (#1676) 2024-04-10 18:31:05 -07:00
Prospector
5b1850e161
Fix system theme not respecting preferred dark theme. (#1673) 2024-04-10 18:30:46 -07:00
Prospector
60727656c9
Fix project list layouts on mobile (#1671) 2024-04-10 18:30:27 -07:00
Prospector
372d021062
Refactor settings to use common lang keys for titles (#1674) 2024-04-10 18:30:13 -07:00
Prospector
9c4421bfe0
Fix theme preview width (#1670) 2024-04-09 19:56:32 -07:00
Prospector
5f85af76cd
Fix missing categories and environments on orgs and following collection (#1667) 2024-04-09 11:20:41 -07:00
Prospector
4c2565826f
Settings refactor and redesign (#1669)
* new settings work

* Polishing work on settings refactor

* Run intl:extract

* List view -> Rows view

* Remove current preferred system theme indicator to make the themes fit on one line

* Remove extra margin on top of navstack
2024-04-09 11:18:56 -07:00
ToBinio
3e7fd80824
chore: update dependencies (#1103)
* update trivial dependencies

* switch to sha1_smol

* update async_zip

* fix cli

* clippy & fmt

* js lints

* fix build for ci
2024-04-07 12:13:35 -07:00
KnifesmithCode
6699b4cb33
Use Tokio directly instead of Tauri in io.rs (#1087) 2024-04-03 14:44:16 -07:00
Jai A
ae2d83c8aa
update dashboard to apiv3 2024-03-29 22:20:31 -07:00
Jai A
3b0216ca7e
fix moderation dash 2024-03-29 22:09:45 -07:00
Geometrically
0a0837ea02
update ratelimiter (#897)
* update ratelimiter

* Switch to old scheduler
2024-03-27 15:56:29 -07:00
Geometrically
a0aa350a08
Fix cache stampede issues + generalize cache (#884)
* caching changes

* fix cache stampede issues

* Use pub/sub for better DB fetches

* remove pubsub

* remove debugs

* Fix caches not working

* fix search indexing removal
2024-03-26 21:15:50 -07:00
Jai A
1abfb175b5
remove unused import 2024-03-19 17:41:37 -07:00
Geometrically
a771695348
Remove mod inbox (#1661) 2024-03-19 17:36:09 -07:00
Geometrically
decfcb6c27
Fix issue with moderator identities being revealed (#892)
* Fix issue with moderator identities being revealed

* Fix on multiple threads route

* Fix thread notifs

* Fix failing test

* fix thread messages returning nothing
2024-03-19 17:25:49 -07:00
Geometrically
730913bec4
Fix issue in specifying dependencies (#891) 2024-03-18 13:56:06 -07:00
Geometrically
f8f037196e
Fix payouts desync (#890)
* Fix payouts desync

* fix tests + user payouts req
2024-03-12 10:52:40 -07:00
Sasha Sorokin
fe3e4edb04
Fix removing oneself from the team not working (#1657) 2024-03-10 13:03:35 -07:00
Geometrically
364a4faa75
Fix invalid auth error on project submit (#1655) 2024-03-09 16:31:57 -07:00
Geometrically
e2ffeab8fa
fix views analytics (#885)
* fix views analytics

* update ip stripping

* update clickhouse tables

* fix broken queries

* Fix panics

* fix download undercounting

* fix packerator failing sometimes

* run prep
2024-03-02 14:04:46 -07:00
Jai A
331787fe43
fix update projects 2024-02-24 22:43:20 -07:00
Jai A
9484a7237c
fix moderation route 2024-02-21 23:10:23 -07:00
Geometrically
04d834187b
Automatic moderation (#875)
* Automatic moderation

* finish

* modpack fixes

* fix unknown license msg

* fix moderation issues
2024-02-21 16:24:21 -07:00
Jai A
96063969ae
fix auth 2024-02-21 16:23:34 -07:00
Geometrically
cb1c8be870
Moderation checklist (#1635)
* Moderation checklist

* Skip button

* Fix modpacks

* Fix modpack types not being sent

* Fixes

* remove explainer

* pass auth to analytics
2024-02-21 16:11:11 -07:00
Geometrically
33b2a94d90
Fix version creation taking forever (#878)
* Fix version creation taking forever

* run fmt + prep

* fix tests?
2024-02-05 12:24:12 -07:00
Geometrically
ce3b024fea
Fix gift cards (#877)
* Fix gift card cashout

* Fix mutex locks
2024-02-05 12:02:07 -07:00
Geometrically
a02aa7586b
Fix version files updates route (#876)
* Fix version updates files route

* run fmt + prep

* actually work

* update query perf

* fix
2024-02-04 20:19:46 -07:00
Prospector
5ea71da181
Add .ts to commonMessages import in default.vue 2024-02-01 08:04:28 -08:00
Wyatt Verchere
3ff0ff238a
adds credentials refresh save (#1030) 2024-01-30 19:31:08 -05:00
Prospector
dda469d10e
Add translations for the default page layout (#1616)
* Convert default.vue to composition API

* Add translations to default page layout

* Generate index.json

* Fix sign up page

* Generate index.json

* Fix atUserLabel

* Fix composition API port

* Follow-up fixes for #1616 (#1618)

* Re-organize default layout messages

- Group some of the messages by their appearance (like banners)
  Grouping makes avoids having to think too much about the property
  names, keeps declarations clean, and also can be minified better,
  since variable names, unlike property names, can be easily mangled.

- Remove needless type specification in property name[^1]
  It's already clear from where the message is formatted what it does,
  and if you need clarification, you can Ctrl+hover and see the type in
  the key.

- Change some keys to conform to conventions
  We generally follow the pattern location > kind?. Things like 'label'
  are unnecessary, as everything is assumed to be label by default; the
  same applies to things like 'button', which are also often unnecessary
  as they're part of the location compound.

- Remove message for handle, which should not be translatable
  It's very unlikely user handle format changes between any of the
  locales.

[^1]: Common messages are pending restructuring that would fix this

* Fix navRoutes not being computed in default layout

* Fix untranslated Get Modrinth App buttons in default layout

* Make legal disclaimer in the default layout translatable

It wouldn't make much sense to leave it untranslated since it is meant
for the end users too. It is also so small that it's unlikely to be
mistranslated.

* Extract missed legal disclaimer message from default layout

* Make SEO strings in default layout translatable

---------

Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
2024-01-29 18:55:54 -08:00
Prospector
9f6e033c53
Add review delay link to moderation page (#1619) 2024-01-29 18:55:37 -08:00
Prospector
15f44adf3b
Add support and update footer links (#1615) 2024-01-28 13:15:51 -08:00
Mysterious_Dev
e9483cb242
Use omorphia icons for auth pages (#1614)
* Begin Work

* Use omorphia icons for sign-up page
2024-01-28 11:02:29 -08:00
Mysterious_Dev
5243d8bedf
Use Composition API for settings index (#1613) 2024-01-28 11:02:03 -08:00
Prospector
ed731fd7a6
Fix org project list sorting and add loaders to tags (#1610) 2024-01-28 11:00:17 -08:00
Prospector
07f5422132
Fix donation links in project settings (#1609) 2024-01-28 10:59:36 -08:00
Mysterious_Dev
5aa1764848
Add translation keys for authorize page (#1594)
* Begin Work

* Error label

* WIP

* Finish button & add authorize label

* Redirect URL Label

* Reorganize

* Finish work

* Fix lint error

* camelCase !

* Normalization

* Apply suggestion from brawaru

* Fix forgotten
2024-01-28 10:59:08 -08:00
Mysterious_Dev
4973ee555b
Add translation keys for Pats page (#1590)
* Begin Work

* More work

* Fix lint error

* More work on label

* Fix mistake

* Finish adding  delete pat modal keys

* More label and button

* More label keys

* Fix lint error

* Description key

* Finish page

* Forgot this

* Fix lint error

* Add to navstack

* Apply suggestions from brawaru

* Normalization

* Re-organize PATs page messages (#10)

- Group messages by their usage
- Fix spelling mistakes in some of the property names and keys
- Change some of the keys to conform to keying conventions
- Change variable name in token.expires-in message to inTime

* Regenrate index.json

---------

Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
2024-01-28 10:58:23 -08:00
Geometrically
d5107f2ef6
Fix unlisted showing (#873)
* Fix projects showing draft

* fix build

* run fmt
2024-01-27 19:11:00 -05:00
Geometrically
5b63b0b398
jemalloc (#861)
* jemalloc

* featurizeP

---------

Co-authored-by: Wyatt Verchere <wverchere@gmail.com>
2024-01-27 18:13:52 -05:00
Jai A
4bfccba4c0
remove search from home 2024-01-27 10:11:14 -08:00
Daniel Roe
5ddad8ebc2
fix: import nuxt composables from #imports (#1438)
* fix: import nuxt composables from #imports

* fix: combine import 🙈

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-01-27 10:02:41 -08:00
Mysterious_Dev
b5921897d6
Rework session keys for normalization (#1603) 2024-01-27 09:53:46 -08:00
Prospector
53a46b88b8
Regenerate en-US language file 2024-01-27 09:49:28 -08:00
AdamRaichu
da977ccace
add title to leave project button (#1583) 2024-01-27 09:44:10 -08:00
Martins Olumide
7b9a2167ad
Updated 2023 to 2024 (#1602)
Co-authored-by: devasMartins-Tmd <dev.as.martins3@gmail.com>
2024-01-27 09:38:23 -08:00
Mysterious_Dev
fc16771355
Fix: Projects in collections have less tags shown that they have (#1599)
* Fix: Projects in collections have less tags shown that they have

* Fix lint error
2024-01-27 09:37:35 -08:00
pseudonym-2669
3ef3fbfd0e
Fix scoped typo (#1605) 2024-01-27 09:36:38 -08:00
Mysterious_Dev
415a0aaf75
Fix: Copy ID button doesn't work (#1598) 2024-01-27 09:36:16 -08:00
Emma Alexia
5a4a9b570e
Fix discrepancy in Markdown rendering (#1595) 2024-01-27 09:35:04 -08:00
Misode
2df60d6387
Add download stat on organization pages (#1581)
* Add download stat to organization page

* Fix plural in projects stat
2024-01-27 09:32:11 -08:00
Mysterious_Dev
9c176013ab
Add translation keys for sign-in page (#1551)
* Begin Work

* WIP

* WIP

* WIP

* Use error notification keys

* Finish & fix error

* Fix lint error

* Normalize message IDs (#9)

It makes sense to compose message IDs in order:
- Place (page, sub page / "modal")
- Thing
- (optionally) Relation to the thing

For example, a label for a password field would be:
- auth.sign-in (on sign-in subpage of auth)
- password (password field)
- label (is a label for the field)

Another example - button to sign in:
- auth.sign-in
- action (this is an action to do something)
- sign-in (action to sign in)

This helps keep the IDs closer to the actual structure of the page,
oftentimes smaller in the code, and easier to understand by translators.

---------

Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-01-27 09:31:25 -08:00
Mysterious_Dev
036d251e15
Add translation keys for sign-up page (#1505)
* Begin Work

* WIP

* WIP

* Finish adding notification keys

* WIP

* Finish work

* Fix lint error

* Re-organize Sign up page messages (#13)

- Re-order messages by their appearance in template
- Change the keys to conform to conventions
- Inline password mismatch notification message

---------

Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-01-27 09:30:09 -08:00
Mysterious_Dev
925060689a
Add translation keys for verify email page (#1503)
* Begin Work

* Begin Work

* WIP

* Finish Work

* Fix lint error

* Re-organize keys on E-mail verification page (#12)

- Group messages by the step
- Use simpler keys for message properties as they're not public
- Change message keys to conform to conventions

---------

Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-01-27 09:28:52 -08:00
Mysterious_Dev
f0631d734e
Add translation keys for reset password page (#1502)
* Begin Work

* Add email sent notification keys

* Finish adding notification keys

* Fix lint error

* Finish work (I think)

* Remove password label (generic)

* Add password label key

* Re-organize Reset password page messages (#11)

- Group messages by their use
- Change some of the keys for clarity
- Change some keys to conform to conventions

---------

Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-01-27 09:27:34 -08:00
Mysterious_Dev
52b299315d
Add translation keys for collections (#1496)
* Begin Work

* Add more common messages

* Work on modal

* Add more keys

* Add keys for icon buttons

* Add more keys

* Handle error keys

* Add more keys

* Add more keys

* Edit fields keys

* Finish (almost)

* Finish work for collection page

* Dashboard Nav stack & Format

* WIP

* Move some messages to common

* Finish work

* Format

* Reorganization

* Fix some mistake

* add common collections label

* Add collections label key to default layout

* Make title and description reactive (#8)

---------

Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
2024-01-27 09:24:19 -08:00
Prospector
0195e94aa7
Add notification pagination (#1584)
* Add notification pagination

* Add grouping to dashboard home
2024-01-27 09:23:57 -08:00
Mysterious_Dev
75f0b2b82c
Add translation keys for welcome page (#1499)
* Begin Work

* WIP

* Add long title key

* Finish work (for now)

* Fix lint error

* Add continue button key

* Make continue button key generic
2024-01-18 09:05:54 -08:00
June
f26f283c1f
Added padding to account for .changelog-bar offset (#1354)
* Added padding to account for .changelog-bar offset

* Applied prettier code formatting

* Just update bottom padding

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2024-01-18 09:02:55 -08:00
Mysterious_Dev
7c387b2aee
Add autocomplete attribute for 2fa input (#1450)
* Add input mode attribute for 2fa input

* Add autocomplete property

* Remove inputmode property
2024-01-18 08:58:28 -08:00
Mysterious_Dev
071ecb284e
Add apple touch icon to head (#1453) 2024-01-18 08:57:20 -08:00
Mysterious_Dev
03242942c2
Fix: Minor grammar mistake in project Moderation page (#1487)
* Fix: Minor grammar mistake in project Moderation page

* Fin lint error
2024-01-18 08:57:05 -08:00
Mysterious_Dev
a476927595
Add enter shortcut for 2FA & email management (#1504)
* Add event for email changing

* Add event for 2fa setup & removal

* Fix lint error

* Update pages/settings/account.vue

Co-authored-by: Emma Alexia <wafflecoffee7@gmail.com>

---------

Co-authored-by: Emma Alexia <wafflecoffee7@gmail.com>
2024-01-18 08:56:43 -08:00
Mysterious_Dev
ec6e1704be
Fix: Project banners aren't showing in collections (#1562)
* Add featured image

* Use find method

* Fix lint error

* ...

* Fix

* Fix lint error
2024-01-18 08:56:14 -08:00
Mysterious_Dev
d2f189607e
Fix logic for featured image (#1580) 2024-01-18 08:55:52 -08:00
Mysterious_Dev
c13777e68d
Fix a mistake for "updated tooltip" on collection page (#1493) 2024-01-18 08:55:23 -08:00
Geometrically
fc577241bd
Update deps (#859) 2024-01-14 12:36:11 -05:00
Geometrically
bb8a0e596c
Fix settings fail (#856)
* Fix settings fail

* Revert settings equality checks
2024-01-13 21:09:28 -05:00
Geometrically
2a63b703f9
Fix additional categories not showing up correctly (#855) 2024-01-13 20:19:45 -05:00
Geometrically
bfeff78164
Update search queries (#854)
* Update search queries

* Bump accepted payload limit

* fixes

* push test changes

* fmt clippy prepare

---------

Co-authored-by: Wyatt Verchere <wverchere@gmail.com>
2024-01-13 18:20:28 -05:00
Wyatt Verchere
4826289020
hardcodes search facets (#852)
* hardcodes search facets

* disable search

* Uncomment

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-01-13 17:42:45 -05:00
Wyatt Verchere
0aebf37ef8
Index swapping when meilisearch reindex (#853)
* cycling indices

* removed printlns

* uses swap indices instead

* Bring back deletion

* Fix tests

* Fix version deletion

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2024-01-13 17:40:30 -05:00
Carter
2fb63dcfb1
Fix graph state & data handling (#1578)
* Rip out external color state

* Fix styling errors

* Allow charts to display personal/entity perspectives on routes

* Refactor analytics data processing and selection

* Include custom color icon
2024-01-12 17:51:03 -05:00
Carter
0adb7685f6
Refactor scopes to use Intl for labels and descriptions (#1570)
* Refactor scope labels for applications and pats

* move scopes to composables

* Refactor pages to use intl

* Fix merge error

* Extract messages
2024-01-12 15:55:51 -05:00
Geometrically
1cbe99a0d8
Allow users to override the org owner (#1577) 2024-01-12 15:29:50 -05:00
Geometrically
d1a09d0b95
Add assets and migrations to dockerfile (#851) 2024-01-12 15:00:37 -05:00
Geometrically
7b00003958
Org fixes (#850)
* Org fixes

* payouts bug

* Update dockerfile fix test

* Update to bookworm

* clippy
2024-01-12 14:19:39 -05:00
Wyatt Verchere
4483bb147c
re-modularizes-search-facets (#842)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-01-12 11:05:46 -05:00
Prospector
fa83da6085
Fix staging banner (#1573)
* Revert "Add API indicator and staging banner (#1563)"

This reverts commit a75de51198d59a6dc126ba5a92fa17c30bbb8b2e.

* Revert "Revert "Add API indicator and staging banner (#1563)""

This reverts commit b4d3b56b33ca4080fa3bc1b7a2dde7b21ba18e51.

* Fix banner to only show on staging

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2024-01-12 11:01:15 -05:00
Wyatt Verchere
ef31c0c0da
Cleans up and removes TODOs, adds tests (#844)
* removes version ordering from v2; simplifies now-unecessary three-level faceting

* resolved some todos

* test for game version updating

* merge fixes; display_categories fix
2024-01-11 21:11:27 -05:00
Carter
1392c16f12
Refactor scope labels for applications and pats (#1560) 2024-01-11 19:13:03 -05:00
Emma Alexia
d6393653e1
Add new section to the rules about bypassing Mojang restrictions (#1561) 2024-01-11 19:12:50 -05:00
Prospector
a75de51198
Add API indicator and staging banner (#1563)
* Change text of Modrinth logo depending on the API url being used

* Staging banner
2024-01-11 19:12:25 -05:00
Prospector
a21869ec9b
Add filters for transfer history page (#1564) 2024-01-11 19:11:58 -05:00
Prospector
f534e4ee37
Fix project page menu opening off-screen with right sidebar (#1565) 2024-01-11 19:11:39 -05:00
Carter
9add661a5b
Adjust colors to be controlled from outside chart component (#1568)
* Adjust colors to be controlled from outside chart component

* Access colors from source of truth

* Change access method to omit projects from params

* Just omit projects from query
2024-01-11 19:11:26 -05:00
Wyatt Verchere
76c885f080
Fixes incorrect loader fields (#849)
* loader_fields fix

* tested, fixed

* added direct file check for invalid file_parts

* search fixes

* removed printlns

* Adds check for loaders

* removes println
2024-01-11 18:36:01 -05:00
Emma Alexia
f16e93bd3a
Raise project limit on collections from 64 to 1024 (#847)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-01-11 10:27:38 -05:00
Geometrically
05d2a96900
Organization payouts (#848) 2024-01-11 10:27:15 -05:00
Carter
81948a5c29
Creator update frontend hotfixes (#1538)
* Fix donation link submission

* Refactor Charts to fit edgecase bugs in design

* edge and mobile bug fixes

* remove dead code

* fix width on mobile

* Update omorphia version to 0.7.3

* Refactor legend item styling in ChartDisplay.vue

* Update package dependencies
2024-01-10 15:50:21 -05:00
Geometrically
5924154a62
Fix org ownership (#1553) 2024-01-10 15:13:37 -05:00
Carter
354bfe58cd
Add withdrawal amount validation and display details (#1549)
* Add withdrawal amount validation and display transfer details

* Fixed amt should be consistent

* Empty amount rather than clamp

* Only mutate amount if fixed or 1 value

* Add badge to giftcard withdraw methods
2024-01-10 15:13:08 -05:00
Geometrically
c5974a8575
Fix unfollowing (#1552) 2024-01-10 13:43:28 -05:00
Prospector
c0275addb0
Add report reopening and message for reopening a report (#1550) 2024-01-10 13:33:57 -05:00
Julian Vennen
9c70c35669
Ignore spaces when parsing facets (#846) 2024-01-10 08:40:19 -08:00
Prospector
c85baf7fd0
Fix versions page bug: v-if instead of v-else-if (#1546) 2024-01-09 16:33:10 -05:00
Prospector
39e5778bd0
Country -> region (#1548) 2024-01-09 16:32:59 -05:00
Prospector
a3b77bb37f
Add private mod notes and message deletion (#1494)
* Really simply private messages impl

* Make private notes better

* Add thread message deletion

* Lint
2024-01-09 16:32:38 -05:00
Julian Vennen
9d54c41a2b
Fix melisearch name replacements with operators other than : (#845)
* Fix melisearch name replacements with operators other than :

* Pass facet by refrence

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-01-09 13:16:36 -08:00
Prospector
660cf0c1e4
Remove the ability to replace uploaded primary versions (#1542) 2024-01-09 15:43:38 -05:00
Wyatt Verchere
3464fbb2e8
fixes capitalization issue; modifies existing test to check for it (#841) 2024-01-09 15:42:17 -05:00
Carter
11020c4545
Update package.json version to 0.7.3 2024-01-08 10:15:10 -08:00
Carter
e93bf02e3a
Add wrap to editor 2024-01-08 10:14:54 -08:00
Wyatt Verchere
d51d6517be
fixes modpacks losing version data on modification (#840) 2024-01-08 10:28:33 -05:00
Geometrically
a629d7f048
Fix override perms orgs (#1536)
* Fix override perms orgs

* remove useless card?
2024-01-07 21:36:32 -05:00
Geometrically
5f6cc1281e
Fix user revenue display (#839)
* Fix user revenue display

* fix rev display
2024-01-07 20:57:37 -05:00
Carter
683b0f5c48
Add safety and state refresh when adding to collection (#1535) 2024-01-07 19:58:30 -05:00
Geometrically
42a80a41ca
Fix collection page (#1534)
* Fix collection page

* remove wrangler.toml
2024-01-07 19:27:30 -05:00
Jai A
035fc69060
temp pause 2024-01-07 18:38:40 -05:00
Geometrically
34baf44534
Fix packs logic (#837)
* Fix packs logic

* Clippy
2024-01-07 18:36:42 -05:00
Carter
9dcb90a9cf
Creator update hotfixes (#1531)
* Put image upload on v3

* Fix space encoding in search

* Add safety to any iterables
2024-01-07 17:28:51 -05:00
Wyatt Verchere
c3448033de
Fixes missing plugin/datapack in search (#829)
* fixes datapack/plugin issue

* fixes level

* server side searching; org projects

* total hits

* total hits fixes

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2024-01-07 16:36:26 -05:00
Geometrically
aee9b6a951
Fix Plugin/Datapack creation and featuring (#836) 2024-01-07 15:08:28 -05:00
Mysterious_Dev
1af0aa3f57
Fix: Wrong follower count on collections (#1528) 2024-01-07 14:32:40 -05:00
Sasha Sorokin
35c9338220
Fix no collections message on user page (#1501) 2024-01-07 14:32:05 -05:00
Mysterious_Dev
2e8fa0f6c5
Fix: Add collections to mobile nav instead of follow (broken link) (#1527)
* Add collections in nav instead of follow (broken link)

* Fix lint error
2024-01-07 14:31:39 -05:00
Geometrically
931aeda17f
More site fixes (#1530) 2024-01-07 14:31:22 -05:00
Carter
a037d24b0f
Creator update hotfixes
* Responsive avatar sizing fix

* random mounting bug

* User owned project list correctly filtered

* fix accepted member count

* Leave team fix

* Remove debug

* Remove debug

* hide view button if collections view
2024-01-07 01:30:23 -08:00
Wyatt Verchere
75e5bec962
test (#828) 2024-01-07 01:47:42 -05:00
Wyatt Verchere
59c269c8d0
Fixes game versions v2 display (#827)
* fixes game versions display

* reverses from version route
2024-01-07 01:04:13 -05:00
Geometrically
1fa556cd00
Fix moderation + oauth (#1515) 2024-01-07 00:17:22 -05:00
Geometrically
82e9ad8a20
Org fixes (#1513) 2024-01-06 23:48:15 -05:00
Wyatt Verchere
541022cdc3
Featured filtering patch (#825) 2024-01-06 22:31:34 -05:00
Carter
d893765b24
New organizations (#1488)
* [WIP] Transfer organizations to own branch

* push progress

* Setup organizations page

* Add organizations grid to user profile

* Remove debug

* Add error handling for failed organization fetch

* Refactor organization page and settings

* Restructure to composition setup api

* checklist completion

* Apply suggestions from code review

Co-authored-by: Emma Alexia <emma@modrinth.com>

* Update pages/[type]/[id]/settings/index.vue

Co-authored-by: Emma Alexia <emma@modrinth.com>

* Update pages/[type]/[id]/settings/index.vue

Co-authored-by: Emma Alexia <emma@modrinth.com>

* Update pages/[type]/[id]/settings/index.vue

Co-authored-by: Emma Alexia <emma@modrinth.com>

* Update pages/[type]/[id]/settings/index.vue

Co-authored-by: Emma Alexia <emma@modrinth.com>

* Clean up org state management

* Refactor useClientTry to simplify code

* Remove unused code and update dependencies

* Refactor bulkEditLinks event handler

* Refactor organization management functions

* Update heading from "Creators" to "Members"

* Refactor team member invitation

* Refactor member management functions

* Implement validation on clientside for org names

* Name sanitization for fun characters

* Update onInviteTeamMember function parameters

* Remove name

* sidebar

* random rendering issue

* Conform to org removal

* Org no projects conditional

* Update organization links in dashboard

* Update Cards to universal-cards

* Refactor gallery upload permissions

* Refactor to sidebar pattern

* Update button classes in gallery and versions components

* Finish (most)

* almost finish

* Finish orgs :D

* Fix lint

* orgs fixes

* fix most things

* project settings

* convert grid to cards

* clean up unused test class

* Settings -> Manage

* add org view to org management

* Fix prop mounting issue

* fix analytics grid layout overflow

* fix multiselect breaking layout

* Refactor chart selection logic in ChartDisplay.vue

* Add transfer modal

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Emma Alexia <emma@modrinth.com>
2024-01-06 18:09:26 -05:00
Wyatt Verchere
527521328f
Fixes search not reading sidetypes (#823) 2024-01-06 16:36:26 -05:00
Geometrically
917b89e44f
Fix org adding (#821) 2024-01-06 16:34:20 -05:00
Wyatt Verchere
87862f3e23
changes tests to a macro (#822) 2024-01-06 14:08:03 -05:00
Wyatt Verchere
10eed05d87
Fixes failing tests (#813)
* fixes failing  tests

* fmt clippy

* updated dockerfile

* fixes failing tests; adds important fix from extracts_versions PR

* assert_eq -> assert_status, giving better error messages

* fixed random failure bug

* fmt, clippy, etc
2024-01-05 11:20:56 -05:00
Geometrically
f5802fee31
Staging bug fixes (#819)
* Staging bug fixes

* Finish fixes

* fix tests

* Update migration

* Update migrations

* fix side types being added for ineligible loaders

* fix tests

* Fix tests

* Finish fixes

* Add slug display names
2024-01-04 16:24:33 -05:00
Mysterious_Dev
1108b0264e
Add missing extracted keys (#1498) 2024-01-03 11:42:44 -05:00
Geometrically
cf9c8cbb4f
Fix deletion of private notes (#814) 2023-12-28 20:25:55 -05:00
Carter
4f060579ca
bump 0.7.2 2023-12-28 16:49:17 -08:00
Carter
1940c6e1ba
Fix editor state issues (#173)
* Add MarkdownEditor component with default value and disabled option

* Add editorThemeCompartment for customizing editor theme
2023-12-28 16:48:10 -08:00
Geometrically
f199ecf8e9
Final release fixes (#811) 2023-12-27 13:54:17 -05:00
Mysterious_Dev
e754f6c234
Fix: "Set Password" button on profile page is not active (#1486)
* Fix disabled button for "Add password"

* Fix lint error

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-12-27 13:28:29 -05:00
Xander
d19dbbfe7e
Auto-focus 2FA input box (#1482) 2023-12-27 13:28:12 -05:00
Geometrically
3a735ea0ce
New collections (#1484)
* [WIP] Transfer collections to own branch

* fixes

* rewrite js

* Add visibility dropdown to collection edit modal

* Add visibility badges to collection page

* Update visibility options and icons in collection
page

* Add delete functionality to collection modal

* Collection project deletion flow

* remove "visit project" button on overflow

* Remove via checklist not individually

* Update manage title in settings.vue

* remove collections from settings page

* hook up collections page

* collection header to look like project header

* Refactor layout.scss and collections.vue

* fix omorphia

* Update

* Conform collections to old design structure

* Update navigation links and remove unused code

* Add collection view and collections to user page

* Refactor user project display logic

* Add collection creation functionality and update profile labels

* Add function calls to initialize user collections

* Refactor collection page layout and functionality

* Add initialization of user collections in create function

* Fix styling issue in collection page

* Update collection status to private

* remove name

* Refactor card component and update grid layout

* Finish collections

---------

Co-authored-by: Carter <safe@fea.st>
2023-12-27 13:27:50 -05:00
Geometrically
e319d19a54
New analytics (#1483)
* [WIP] Transfer analytics to own branch

* code style changes

* Refactor country name conversion

* Clean up api and ssr for settings page

* refactor analytics into reusables

* Refactor chart tooltip and reset functionality

* Update dayjs import and formatTimestamp function

* Fix bug in login functionality

* Abstract data fetching

* Refactor analytics data formatting

* Refactor useFetchAllAnalytics function signature

* Refactor analytics processing functions

* Fix chart data in ChartDisplay.vue

* Refactor analytics pages

* Refactor delete labrinth.ts test types

* Fix import statement for dayjs and update usage of
unix function

* Fix dropdown select in ChartDisplay.vue and add
Analytics link in creations.vue

* Update chart colors in ChartDisplay.vue and
analytics.js

* Update defaultRanges in ChartDisplay.vue

* Add colors to chart

* Update legend position in ChartDisplay.vue

* Refactor color conversion functions in
analytics.js

* Bug fixes

* Use softer colors

* Import dayjs unix module for analytics.js

* Refactor chart tooltip generation

* Fix calculation of total value in generateTooltip
function

* Fix button-base styling in ChartDisplay.vue

* Adopt intl standard rather than iso-3166-1

* Add support for potential flags

* Analytics rebased

* fix cf pages

* now?

* try now

* now?

* Fix this time

* address rev

* Finish analytics

* fix api url

---------

Co-authored-by: Carter <safe@fea.st>
2023-12-26 14:46:32 -05:00
Wyatt Verchere
3bdd551d40
fixes bug (#809) 2023-12-24 18:53:58 -05:00
Wyatt Verchere
4a7936a51d
adds text, fixed problem (#808) 2023-12-21 18:50:25 -08:00
Jakob
5f075e4936
Fixed Password matching msg showing when confirm is empty (#1400)
* Fixed Password matching msg showing when confirm is empty

* ran lint and == → ===
2023-12-21 20:09:48 -05:00
Wyatt Verchere
76e00c2432
Filtering refactoring (#806)
* switching computers

* fmt clippy sqlx prepare

* merge fixes
2023-12-21 16:36:30 -08:00
Wyatt Verchere
b46f3bf2c4
Live test fixes (#807)
* fixes

* changes
2023-12-21 15:34:42 -08:00
Wyatt Verchere
f7b4b782bf
Organization ownership (#796)
* organization changes

* changes

* fixes failing test

* version changes

* removed printlns

* add_team_member comes pre-accepted

* no notification on force accept

* fixes tests

* merge fixes
2023-12-20 17:27:57 -05:00
Wyatt Verchere
60c535e861
Misc testing improvements (#805)
* made dummy data more consistent; not an option

* fixed variable dropping issue crashing actix (?)

* removed scopes specific tests, removed schedule tests

* team routes use api

* removed printlns, fmt clippy prepare
2023-12-20 14:46:53 -05:00
Wyatt Verchere
d59c522f7f
Sanity checked all of V2 route conversions (#803)
* follows

* all v2 routes now either convert or have a comment

* added common structs, clippy

* merge fix

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-12-19 10:20:32 -08:00
Wyatt Verchere
9f798559cf
country testing (#801)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-12-15 12:49:55 -07:00
Wyatt Verchere
f939e59463
Testing bug fixes (#788)
* fixes

* adds tests- fixes failures

* changes

* moved transaction commits/caches around

* collections nullable

* merge fixes

* sqlx prepare

* revs

* lf fixes

* made changes back

* added collections update

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-12-14 15:19:50 -07:00
Wyatt Verchere
50e89ad98b
fix (#800) 2023-12-13 17:08:58 -07:00
Geometrically
c0c5978028
Bump meilisearch version (#799) 2023-12-12 21:04:40 -07:00
Emma Alexia
abbeed394e
Fix project visibility in hash routes (#792)
* Fix project visibility in hash routes

* improve

* clippy

* CLIPPYYYYYYYYYYYYYY

* clippy, I hope you know that I hate you

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-12-12 20:45:32 -07:00
Wyatt Verchere
f5b8c15388
small add (#795)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-12-12 20:20:09 -07:00
Geometrically
f53b6b550f
Fix high memory usage during search (#798)
* Fix high memory usage during search

* Fix settings lag

* Fix clippy + fmt
2023-12-12 20:11:56 -07:00
Wyatt Verchere
00e55b1874
get dependencies fix (#794) 2023-12-12 19:57:51 -07:00
Wyatt Verchere
90954dac49
Testing search prod (#791)
* testing push

* lowers it

* removed unwrap

* reduced to 500

* Really took down time

* reorders chunking

* rebuild docker

* reverted most changes

* cargo fmt

* reduced meilisearch limit

* added logs, removed deletion of index

* one client creation

* changes

* reverted gallery cahnge

* testing re-splitting again

* Remove chunking + index deletion

* Bring back chunking

* Update chunk size

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-12-11 20:01:15 -08:00
Wyatt Verchere
6217523cc8
Test permissions use api (#784)
* initial push

* fmt; clippy

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-12-11 18:24:49 -08:00
Wyatt Verchere
27ccd3dfa8
summary change to description (#793) 2023-12-11 18:53:30 -07:00
Wyatt Verchere
235f4f10ef
Chunking searches (#787)
* new attempt

* revised searching CTEs

* prepare fix

* fix tests

* fixes

* restructured project_item to use queries

* search changes! fmt clippy prepare

* small changes
2023-12-08 23:14:17 -07:00
Brady
d6ba3f3adf
Add NeoForge to infer (#1443)
* Add NeoForge inferring

* Add check for if below 1.20.2
2023-12-05 19:57:03 -07:00
Sasha Sorokin
b453e2cf1a
Fallback to project type message on unknown types (#1470)
This commit adds a fallback to getProjectTypeMessage function to return
a generic project type whenever it encounters an unknown project type,
ensuring there are no errors when the new project types are added.
2023-12-05 18:21:14 -07:00
Geometrically
2d14e5682d
New payouts system (#1456)
* initial

* finish withdraw page

* Finish frontend

* Fix UI a bit

* tester fixes
2023-12-05 12:13:27 -07:00
Geometrically
945e5a2dc3
Fix semi-colon causing query to fail (#785) 2023-12-04 21:18:50 -07:00
Wyatt Verchere
4b6a2685d0
fixed gallery mislabeled field (#783) 2023-12-04 20:44:48 -07:00
Carter
1f58aebb2b
Oauth 2 Flow UI (#1440)
* adjust existing sign-in flow

* test fetching of oauth client

* allow for apiversion override

* getAuthUrl refactor

* Adjust auth to accept complex url redirections

* introduce scopes

* accept oauth flow

* rename login/oauth to authorize

* conform to labrinth spec and oauth2 spec

* use cute icons for scope items

* applications pages

* Modal for copy client secret on creation

* rip out old state

* add authorizations

* add flow error state and implement feedback

* implement error notifications on error

* Client secret modal flow aligned with PAT copy

* Authorized scopes now aligned with Authorize screen

* Fix spelling and capitalization

* change redirect uris to include the input field

* refactor 2fa flow to be more stable

* visual adjustments for authorizations

* Fix empty field submission bug

* Add file upload for application icon

* Change shape of editing/create application

* replace icon with Avatar component

* Refactor authorization card styling

* UI feedback

* clean up spacing, styling

* Create a "Developer" section of user settings

* Fix spacing and scope access

* app description and url implementations

* clean up imports

* Update authorization endpoint

* Update placeholder URL in applications.vue

* Remove app information from authorization page

* Remove max scopes from application settings

* Fix import statement and update label styles

* Replace useless headers

* Update pages/auth/authorize.vue

Co-authored-by: Calum H. <contact@mineblock11.dev>

* Update pages/auth/authorize.vue

Co-authored-by: Calum H. <contact@mineblock11.dev>

* Finish PR

---------

Co-authored-by: Calum H. <contact@mineblock11.dev>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2023-12-04 20:26:50 -07:00
Sasha Sorokin
6d70ced93a
Add Omorphia locale files loading (#1447)
Implements loading of all locale files shipped with Omorphia package by
globbing and registering them during the `vintl:extendOptions` hook.

Also updated VIntl for Nuxt to ensure those files are properly loaded.
Previous version of VIntl for Nuxt had a somewhat broken module ID
tracking, preventing Omorphia locale files to be properly transformed
during the build; at least on systems like Windows, don't know about
*nix. The tracking approach was replaced in 1.8.0, and it seems to be
working now.
2023-12-04 19:48:12 -07:00
Geometrically
e76b6c3bde
Optimize country analytics (#782) 2023-12-04 19:45:17 -07:00
Geometrically
4630d175d7
Optimize analytics queries (#781)
* Optimize analytics queries

* fix clippy
2023-12-04 18:49:51 -07:00
Wyatt Verchere
27055b96e3
fixes urls (#780) 2023-12-04 18:03:13 -07:00
Wyatt Verchere
0ef96c0bca
fixed issue (#778) 2023-12-04 13:51:28 -08:00
Wyatt Verchere
b2be4a7d67
Search overhaul (#771)
* started work; switching context

* working!

* fmt clippy prepare

* fixes

* fixes

* revs

* merge fixes

* changed comments

* merge issues
2023-12-03 07:27:12 -07:00
Wyatt Verchere
a70df067bc
Misc v3 linear tasks (#767)
* v3_reroute 404 error

* hash change

* fixed issue with error conversion

* added new model confirmation tests
+ title name change

* renaming, fields

* owner; test changes

* clippy prepare

* fmt

* merge fixes

* clippy

* working merge

* revs

* merge fixes
2023-12-01 20:15:00 -07:00
Wyatt Verchere
2d92b08404
V2 removal and _internal rerouting (#770)
* deleteed v3 exclusive routes

* moved routes around

* fixed linkage that movement broke

* initial merge errors

* fixes
2023-12-01 10:02:11 -08:00
Wyatt Verchere
4bbc57b0dc
Links (#763) 2023-11-30 23:14:52 -08:00
Wyatt Verchere
756c14d988
fixed redis deserialization issue (#775) 2023-11-30 19:57:15 -08:00
Wyatt Verchere
b3b55210f7
Renamed default project type to unknown. (#774)
* small change

* plugins and datapacks now correctly return to project

* Adds to search
2023-11-30 17:17:21 -08:00
Wyatt Verchere
58093a9438
Modifies sql queries to use CTEs (#773)
* fixes huge slowodwn on version item

* changes!

* fixes, touch ups, indices

* clippy prepare
2023-11-30 11:10:56 -08:00
Wyatt Verchere
ed33dd2127
fixed issue (#772) 2023-11-30 10:30:30 -08:00
Carter
accc53c5dd
Implement Editor MOD-349 (#1427)
* Implement Editor

* content oveflow fix for description

* Description card fix

* make everything fix in report modal

* seperate report page with image upload

* Bump Omorphia

* Update pages/report.vue

Co-authored-by: Emma Alexia <emma@modrinth.com>

* suggested changes and cleanup

* fix button spacing

* clean up and replace report implementations

* corepack fix

* Remove ModalReport

* image uploads for conversations

* image uploading context for versions and threads

* adjust information about thread messages

* Update pages/report.vue

Co-authored-by: Emma Alexia <emma@modrinth.com>

* Adjust image upload imports

* fix api changes for useImageUpload

* correct report redirection uri

* report button feedback

* omorphia ver bump

---------

Co-authored-by: Emma Alexia <emma@modrinth.com>
2023-11-29 11:56:17 -07:00
Geometrically
d4f9c97cca
Payouts code (#765)
* push to rebase

* finish most

* finish most

* Finish impl

* Finish paypal

* run prep

* Fix comp err
2023-11-29 11:00:08 -07:00
Wyatt Verchere
f731c1080d
Side types overhaul (#762)
* side types overhaul

* fixes, fmt clippy

* migration fix for v3 bug

* fixed migration issues

* more tested migration changes

* fmt, clippy

* bump cicd

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-11-28 11:36:59 -07:00
Wyatt Verchere
fd18185ef0
More staging fixes (#768)
* Fixes issues

* staging fixes

* passes tests

* fixes. fmt/clippy

* drops datapack/plugin extras

* fixed failing test

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-11-26 20:29:59 -07:00
Carter
0efbbed5e2
Add fields to OAuth (#769)
* Add url and description fields to OAuthClient
model

* Add OAuth client icon editing and deleting
endpoints

* updated query data

* fix missed queries

* sqlx prep

* update with tests builds
2023-11-25 21:48:51 -07:00
Wyatt Verchere
bad350e49b
Plugins (#758)
* plugins; datapacks

* merge fixes/changes

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-11-25 18:11:38 -07:00
Wyatt Verchere
172b93d07f
Tests v2 recreate (#760)
* added common project information; setup for v2 test change

* all tests now use with_test_environment

* progress, failing

* finished re-adding tests

* prepare

* cargo sqlx prepare -- --tests

* fmt; clippy; prepare

* sqlx prepare

* adds version_create fix and corresponding test

* merge fixes; rev

* fmt, clippy, prepare

* test cargo sqlx prepare
2023-11-25 14:42:39 -07:00
Wyatt Verchere
ade8c162cd
Staging fixes (#766)
* fixes bugs

* fixed more things

* fixes version creation

* small change

* removed modpack
2023-11-24 11:42:06 -08:00
Wyatt Verchere
79e634316d
Analytics permissions (#761)
* adds test; permissions fix

* clippy

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-11-21 10:02:07 -07:00
Emma Alexia
e4cb8b71dd
Fix version editing on modpacks returning a "too large" error (#1455) 2023-11-20 18:57:06 -05:00
Wyatt Verchere
dfba6c7c91
Compiler improvements (#753)
* basic redis add

* toml; reverted unnecessary changes

* merge issues

* increased test connections

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-11-19 20:10:13 -07:00
Carter
f6eff090e7
Accept image pasting functionality (#151)
* Accept image pasting functionality

* Bump to 0.7.1

* Default alt text should be like github

* sync modelValue changes to codemirror state

* Refactor image uploading in paste

* Fix error handling in image upload
2023-11-18 21:55:34 -07:00
Wyatt Verchere
e06a77af28
Adds code coverage (#757)
* coverage initial push

* compiles on PR

* adds db env variable

* fixed env variables being on the wrong action

* added more tests yml code

* refresh

* tried copying over tests.yml

* removed accidental tests

* shotgun attempts

* generated yml

* more tries

* shotgun again

* small mistakes

* repush

* repush

* Adds env variables to tarp

* removes unused actions and tests cfg attribute on main.rs

* only will work on push to master

* changed to 60%

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-11-17 17:58:15 -08:00
Emma Alexia
61a2c362b9
Fix grammatical issue in privacy policy (#1449)
* Fix grammatical issue in privacy policy

* Update privacy.vue
2023-11-17 15:46:01 -07:00
Wyatt Verchere
74973e73e6
Tests 3 restructure (#754)
* moved files

* moved files

* initial v3 additions

* moves req data

* tests passing, restructuring, remove v2

* fmt; clippy; prepare

* merge conflicts + issues

* merge conflict, fmt, clippy, prepare

* revs

* fixed failing test

* fixed tests
2023-11-16 11:36:03 -07:00
Prospector
cbcee037a7
Merge pull request #147 from modrinth/redesign/new-promo-style
Port Promotion to redesign style
2023-11-15 17:14:28 -08:00
Prospector
de2e4a9c7f
Merge branch 'master' into redesign/new-promo-style 2023-11-15 17:14:20 -08:00
Prospector
0ba0a5bcd8
Merge pull request #148 from modrinth/feature/overflow-menu-links
Add link support to overflow menus
2023-11-15 17:11:24 -08:00
Prospector
70cc409402
docs 2023-11-15 17:10:10 -08:00
Prospector
160ca610ae
Bump version 2023-11-15 17:09:06 -08:00
Prospector
2f1aa95f4c
Allow links in overflow menus 2023-11-15 17:08:55 -08:00
Geometrically
ac07ac5234
Fix date parsing for partial versions (#15) 2023-11-15 16:35:33 -07:00
Carter
3eead128a6
Image-validation (#144)
* Add spoiler tag functionality to CodeMirror

* Refactor image insertion logic in
MarkdownEditor.vue

* Refactor modal state reset functions in
MarkdownEditor.vue
2023-11-15 12:36:34 -07:00
Prospector
4c22a73ff3
Decrease ad border opacity 2023-11-15 09:49:38 -08:00
Prospector
a78f58de92
Merge branch 'master' into redesign/new-promo-style 2023-11-15 09:38:02 -08:00
Prospector
fcda48903b
Merge pull request #146 from modrinth/fix/popout-pointer-events
Fix popout menu pointer events
2023-11-15 09:25:48 -08:00
Prospector
3f9805ac56
Fix bump version 2023-11-15 09:23:31 -08:00
Prospector
2131fed0bb
Update promo styling 2023-11-15 09:22:02 -08:00
Prospector
baa5d2fcac
Bump version 2023-11-15 08:18:34 -08:00
Prospector
7cf9b76eb5
Fix popout menu pointer events 2023-11-15 08:17:27 -08:00
Mysterious_Dev
200648275e
Convert EnvironmentIndicator component to Composition API (#125) 2023-11-14 17:35:41 -05:00
Wyatt Verchere
f4880d0519
more games information, games route (#756)
* more games information, games route

* adds banner url
2023-11-14 11:01:31 -07:00
Wyatt Verchere
375f992a0c
Adds ordering on loader fields enum (#755)
* now sorts on ordering, fmt clippy prepare

* fixed tests

* removed accidenetal printlns
2023-11-13 19:19:06 -07:00
Emma Alexia
a7584d62c7
Update omorphia to 0.6.7 (#1446)
* Update omorphia to 0.6.7

* shouldn't've been changed
2023-11-13 18:30:06 -07:00
Geometrically
74e6caf633
Fix use of unscoped CSS (#140) 2023-11-13 20:16:39 -05:00
Geometrically
f1f531cbfa
Fix links (#1445) 2023-11-13 16:16:43 -07:00
BD103
b5a275ad07
fix: remove sitemap property from robots.txt (#1441) 2023-11-13 13:56:55 -07:00
Sasha Sorokin
5051ad91ff
Fix ambiguous default export (#113)
Currently Omorphia's index file has both the default and named exports.
While this is totally supported by native ESM, it's pretty hard for
transpilers to process and may lead to situations where named exports
cannot be imported directly, requiring destructuring on the default
import. For this and just consistency reasons, you'd usually avoid
mixing default and named exports.

This commit removes the default export, making it just an another named
export called `plugin`.

BREAKING CHANGE: plugin is now exported using `plugin` export, rather
than the default export.
2023-11-13 13:36:07 -07:00
Mysterious_Dev
06d6cb6d19
Convert CopyCode component to Composition API (#124)
* Convert CopyCode component to Composition API

* ^^/
2023-11-13 13:08:28 -07:00
Mysterious_Dev
92116273b0
Convert Checkbox component to Composition API (#126)
* Convert Checkbox component to Composition API

* Apply suggestions from brawaru

* Fix lint error

* Apply suggestions from brawaru
2023-11-13 13:06:42 -07:00
Mysterious_Dev
6169ff99a2
Convert Pagination component to Composition API (#127)
* Convert Pagination component to Composition API

* Apply suggestions by brawaru

* Fix lint error

* Apply suggestions from brawaru
2023-11-13 13:06:06 -07:00
Mysterious_Dev
67f77d027a
Use Typescript for Card component (#128)
* Use Typescript for Card component

* Update Card.vue
2023-11-13 13:05:43 -07:00
Mysterious_Dev
39e1a803a1
Use TypeScript for Promotion component (#131)
* Use TypeScript for Promotion component

* Apply suggestion from brawaru
2023-11-13 13:05:01 -07:00
Mysterious_Dev
ba159e1a3e
Add translation keys for Environment Indicator component (#136)
* Begin Work

* Finish work
2023-11-13 13:04:35 -07:00
Mysterious_Dev
a60b77121a
Add translation keys for Badge Component & improve documentation (#137)
* Begin Work

* Ordering

* Add all keys to JSON file

* Add accepted, approved, archived & closed keys to vue component

* Add draft, failed, listed keys to vue component

* Format (fix lint) & improve documentation

* Finish the work
2023-11-13 13:04:14 -07:00
Erlend
810f0104be
Fix small typo on Avatar doc (#138) 2023-11-13 13:03:42 -07:00
Geometrically
07489fb405
Revert #87 (#139) 2023-11-13 12:58:33 -07:00
Sasha Sorokin
82f0bdfc18
Add handling for locale files parsing errors (#1408) 2023-11-12 11:49:05 -05:00
Wyatt Verchere
ae1c5342f2
Search test + v3 (#731)
* search patch for accurate loader/gv filtering

* backup

* basic search test

* finished test

* incomplete commit; backing up

* Working multipat reroute backup

* working rough draft v3

* most tests passing

* works

* search v2 conversion

* added some tags.rs v2 conversions

* Worked through warnings, unwraps, prints

* refactors

* new search test

* version files changes fixes

* redesign to revs

* removed old caches

* removed games

* fmt clippy

* merge conflicts

* fmt, prepare

* moved v2 routes over to v3

* fixes; tests passing

* project type changes

* moved files over

* fmt, clippy, prepare, etc

* loaders to loader_fields, added tests

* fmt, clippy, prepare

* fixed sorting bug

* reversed back- wrong order for consistency

* fmt; clippy; prepare

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2023-11-11 16:40:10 -08:00
Mysterious_Dev
66154b30c1
Add Prefers Reduced Motion support for most components (#133) 2023-11-11 17:22:01 -05:00
ToBinio
bf5d391d53
fix SearchFilter.vue (#123) 2023-11-11 15:12:24 -07:00
Sasha Sorokin
591ce0894e
Add translations support (#116) 2023-11-11 17:03:58 -05:00
ToBinio
1c18563dfb
update VitePress (#117) 2023-11-11 16:48:52 -05:00
ToBinio
b60e781767
convert slider to typescript (#108) 2023-11-11 16:39:25 -05:00
Sasha Sorokin
ca54544b82
Fix declaration types for icons (#114) 2023-11-11 16:32:56 -05:00
Sasha Sorokin
9c3ff71ce4
Make Omorphia an ESM-only module (#115) 2023-11-11 16:22:00 -05:00
Mysterious_Dev
fd82ec7659
Fix page for modal documentation (#132) 2023-11-11 16:09:19 -05:00
Carter
97ccb7df94
Knossos Oauth 2 Flow Changes (#752)
* adjust type and response format

* Replace Found with Ok for handled redirects

* scope parse fix

* change apps query from body to query

* adjust tests for new response type

* remove unused imports

* Clippy fixes
2023-11-11 10:42:01 -07:00
Geometrically
a818199b5a
fix download counts for ipv4 ips (#750) 2023-11-08 20:55:08 -07:00
Geometrically
6fe1fa3455
Fix crash when MC updates (#14)
* Fix crash when MC updates

* Fix fabric ordering + add neoforge support

* run clippy

* run clippy
2023-11-08 17:57:37 -07:00
Geometrically
aab95444a8
Fix download counts (#746) (#747)
* Fix download counts (#746)

* Fix download counts

* remove unsafe send

* update indexing time

* run prep

* run prep again
2023-11-06 15:04:32 -07:00
Wyatt Verchere
40f28be3b4
rounds dates for revenue (#745)
* rounds dates for revenue

* analytics tests pass
2023-11-03 21:03:30 -07:00
Jackson Kruger
911d442340
Version ordering [MOD-551] (#740)
* Version ordering

* cargo sqlx prepare

* Use version ordering for maven

* Use version ordering when sorting versions in Rust (not just SQL)

* Thanks clippy
2023-11-01 09:36:39 -07:00
Jackson Kruger
d5594b03e3
Fix organizations route typo (#743) 2023-10-31 10:58:05 -05:00
Emma Alexia
23ccaacdee
Fix outdated moderation warning (#1430) 2023-10-30 21:28:48 -04:00
Geometrically
89f1ddf4d7
Route to view user's orgs (#742) 2023-10-30 16:59:53 -07:00
Carter
39a4297168
Requested Changes for Editor Knossos Implementation (#129)
* placeholder

* max length & placeholder

* Accept editor comment conflict

* integrate requested features

* null check for ref

* Change prompt for image upload

* change filter for proper input blocking

* Add spoiler button

* change url of helper link

* shallow resource link style

* resource link inherit site style

* detach preview styling from markdown-body style

* remove sizing dependance on global styles

* Bump 0.6.5
2023-10-30 16:59:43 -07:00
Jackson Kruger
6cfd4637db
OAuth 2.0 Authorization Server [MOD-559] (#733)
* WIP end-of-day push

* Authorize endpoint, accept endpoints, DB stuff for oauth clients, their redirects, and client authorizations

* OAuth Client create route

* Get user clients

* Client delete

* Edit oauth client

* Include redirects in edit client route

* Database stuff for tokens

* Reorg oauth stuff out of auth/flows and into its own module

* Impl OAuth get access token endpoint

* Accept oauth access tokens as auth and update through AuthQueue

* User OAuth authorization management routes

* Forgot to actually add the routes lol

* Bit o cleanup

* Happy path test for OAuth and minor fixes for things it found

* Add dummy data oauth client (and detect/handle dummy data version changes)

* More tests

* Another test

* More tests and reject endpoint

* Test oauth client and authorization management routes

* cargo sqlx prepare

* dead code warning

* Auto clippy fixes

* Uri refactoring

* minor name improvement

* Don't compile-time check the test sqlx queries

* Trying to fix db concurrency problem to get tests to pass

* Try fix from test PR

* Fixes for updated sqlx

* Prevent restricted scopes from being requested or issued

* Get OAuth client(s)

* Remove joined oauth client info from authorization returns

* Add default conversion to OAuthError::error so we can use ?

* Rework routes

* Consolidate scopes into SESSION_ACCESS

* Cargo sqlx prepare

* Parse to OAuthClientId automatically through serde and actix

* Cargo clippy

* Remove validation requiring 1 redirect URI on oauth client creation

* Use serde(flatten) on OAuthClientCreationResult
2023-10-30 09:14:38 -07:00
Carter
544111846c
Tweaks for Knossos Integration (#122)
* placeholder

* max length & placeholder

* remove default placeholder

* remove scoped css

* allow for throwing in the upload process

* explicit import of info

* fix aggressive card input selection
2023-10-27 17:20:13 -07:00
Carter
79bdea0441
MOD-349 Contextual Uploads for MD Editor (#119)
* Migrate DropArea to composition

* remove hardcoded button styling

* let markdown editor call for image upload

* allow for local testing in the docs

* validate url on set

* add chips to modal with correct defaults

* update docs to show example url doesn't load

* Bump version 0.6.4
2023-10-26 14:34:15 -07:00
Adrian O.V
c056c4e79e
Improved graphs (#120)
* Complete chart overhaul

* Update package.json

* Update pnpm-lock.yaml

* run lint

* whoops

* Update pnpm-lock.yaml

* Update analytics.md

* Try again?

* Update Chart.vue

* Added Compact/Spark charts

* Added number formatting and cleanup

* Touch ups

* improve default colors

* removed unnecessary tooltip
2023-10-26 11:39:26 -07:00
Mysterious_Dev
19828e9070
Update to omorphia 0.6.2 (#1418) 2023-10-25 13:44:29 -07:00
Jakob
8231c736ca
Fixed aria-label (#1403) 2023-10-25 13:42:33 -07:00
Basil
85f639b1f0
Fixed report icons on version page when logged out (#1416) (#1417) 2023-10-25 13:41:29 -07:00
Mysterious_Dev
c471b6d66c
Update to @vintl/how-ago 3.0.1 (#1413)
* Update to @vintl/how-ago 3.0.1

* Fix mistake
2023-10-25 13:40:58 -07:00
Prospector
a363efccfb
new patreon logo (#1396) 2023-10-24 12:46:56 -07:00
Mysterious_Dev
871a17a108
Convert error page to Composition API and fix condition for 404 Logo (#1405)
* Convert error to Composition API

* Fixed 404 logo not being displayed every time
2023-10-24 12:46:09 -07:00
Carter
16a39b364c
Change editor to comply with domain rules MOD-537 (#118)
* insert link rules

* change error message
2023-10-23 17:02:08 -07:00
Jackson Kruger
8803e11945
Upgrade to sqlx 0.7.2 (#736)
* Update to sqlx 0.7.2

* Somehow missed one (and remove queries from other branch)
2023-10-23 14:30:39 -05:00
Geometrically
b1ca2cc2b6
Fix quilt + fabric intermediary syncing issues (#13)
* Fix quilt + fabric intermediary syncing issues

* fix comp

* Fix random versions not working/updating meta
2023-10-21 13:09:21 -07:00
Emma Alexia
91f79d2be0
Bump version v0.6.2 (#112) 2023-10-20 23:58:59 -04:00
Sasha Sorokin
9932fe5055
Fix relativeTime dayjs plugin import (#111) 2023-10-20 23:34:02 -04:00
Prospector
c296597427
Markdown editor (#92)
* Markdown editor

* use nocookie YT iframes

Co-authored-by: Emma Alexia Triphora <emma@modrinth.com>

* Fix line prefix-related Markdown editor bugs and add auto-lists

* Fix a couple codeblock issues

* address SearchFilter composition

* standardize code and patternize editor

* make editor typesafe

* adjust imports

* simplify key press handler

* Codemirror markdown implementation (#106)

* demo

* custom newline logic

* basic editor styling and buttons

* propogate styles

* validate and command structure for modals

* mobile safari event fix

* remove url field causing remount

* browser & mobile fix for link insertion

* override event passthrough to fix mobile

* fix modal state & disallow invalid url submission

* override paste behavior

* remove block flag in favor of newline insert

* cleanup before pr

* emit value from editor

* remove "a"

---------

Co-authored-by: Emma Alexia Triphora <emma@modrinth.com>
Co-authored-by: Carter <safe@fea.st>
2023-10-20 16:55:38 -07:00
Prospector
97cb5bc12c
Merge pull request #110 from modrinth/fix/dropdown-icon-animation
Only animate the dropdown svg if last child
2023-10-20 09:11:59 -07:00
Prospector
7c596d6bf1
bump version 2023-10-20 08:47:25 -07:00
Prospector
b68799e2d1
Only animate the dropdown svg if last child 2023-10-20 08:20:33 -07:00
Geometrically
9a8f3d7bad
Fix analytics routes + add revenue route (#734) 2023-10-19 09:42:49 -07:00
Prospector
a3d4db9fc1
Fix popout menu tab indices and buttons within being clickable when closed (#107) 2023-10-17 14:37:37 -07:00
Wyatt Verchere
9d0e762f36
More tests (#729)
* permissions tests

* finished permissions; organization tests

* clippy, fmt

* post-merge fixes

* teams changes

* refactored to use new api

* fmt, clippy

* sqlx prepare

* revs

* revs

* re-tested

* re-added name

* reverted to matrix
2023-10-17 00:53:10 -07:00
Emma Alexia
8369330053
Move many things over from Knossos (and other rearrangements) (#102) 2023-10-16 21:18:23 -04:00
ToBinio
46a6fee81d
fix Markdown table corners (#105) 2023-10-16 21:02:39 -04:00
ToBinio
b2c75130ce
remove dropdown-button link (#104) 2023-10-16 20:49:53 -04:00
ToBinio
ef444f2a6f
Fix slider snap points positioning (#103) 2023-10-16 20:49:20 -04:00
Carter
36f0871f69
Merge pull request #97 from brawaru/feat/typescript-hell-yeah
Enable TypeScript support
2023-10-16 14:53:40 -07:00
Carter
5adf27d345
Merge branch 'master' into feat/typescript-hell-yeah 2023-10-16 14:51:19 -07:00
Prospector
5e4c261332
Merge pull request #101 from modrinth/feature/joined-buttons
Joined buttons
2023-10-16 07:49:25 -07:00
Prospector
6fb04e23ad
Remove dropdown button 2023-10-16 07:44:11 -07:00
Prospector
2c850a612d
Version bump 2023-10-14 14:45:12 -07:00
Prospector
e555c4d083
Joined buttons 2023-10-14 14:44:27 -07:00
Sasha Sorokin
cb32cca6aa Enable TypeScript support
This commit enables TypeScript support in Omorphia. It reconfigures
Vite, adds two new TSConfig files as a replacement for the old JSConfig,
adds TypeScript linting to ESLint configuration.

Why?
====

TypeScript has became a standard in modern web development. In makes
JavaScript a more type-safe language, makes code more maintaible and
boosts effeciency by empowering development tools.

What's included in this commit?
===============================

TypeScript config files
-----------------------

Old and plain JSConfig has been replaced with two TSConfigs: one
designed for the code, and the other for the Vite configuration file.

JavaScript support is still enabled, therefore TypeScript files can
import JavaScript files as well, and vice versa. However, it is
recommended that all the new files will be written in TypeScript, and
old files are slowly converted over to TypeScript, so this option can be
disabled in the future, making this a safe TypeScript only project.

UMD output is replaced with CJS
-------------------------------

UMD is an old format that tries to stay compatible with both the Node.js
CJS, as well as Require.js. However, nowadays almost everyone is using a
transpiler where this format won't be beneficial.

To avoid it being a breaking change, it has been replaced with CJS. But
in the future it's worth considering removing CJS output as well and
making Omorphia an ESM module only, as it's designed only to be
consumed by the Modrinth project, and all of these projects are already
ESM-first.

Minification is disabled
------------------------

Because this is a library, the responsibility of minifying its code lies
solely on the consumer. Just like with CJS, all of the supported
consumers of this library are already performing minification, so
minifying this library beforehand is rather wasteful and harmful, as it
negatively impacts debugging experience.

More dependencies are now externalised
--------------------------------------

Disabling UMD output allows more easily externalise dependencies based
on the package.json file, making it way more approachable.

Vue is now a peer dependency
----------------------------

Because this is a component library, Vue is not a direct dependency of
this project. Instead, this library relies on consumer having a Vue as
its dependency.

`lib` is no longer included in package
--------------------------------------

`lib` folder contains sources for the imports, but it's outside of
export map and cannot be imported by the consumers. It is now excluded
from the package to reduce the package size and installation time.

Typings
-------

Consumers of this library should also be able to benefit from the type
safety. To achieve this, there's now a Vite plugin that generates type
declarations that represent the project structure.

To lesser the incompatibility with the consumers, some of the files were
changed to import `index.js` from folders rather than folders
themselves.

While both will work for building, not doing this requires consumer to
opt in to bundler module dependency, whereas if `index.js` is imported,
the consumer can use both the normal ESM / Node16 module resolution, as
well as the bundler module resolution.

ESLint configuration changes
----------------------------

ESLint has been reconfigured to support TypeScript, and include rules
recommended by the TypeScript ESLint package. In the future it would be
good to review the rules and override rules for TypeScript files to
disable rules that would conflict with ones from TypeScript ESLint.

Entry file is now a TypeScript file
-----------------------------------

To test the changes and begin the slow conversion, the entry point file
is now a proper TypeScript file.

SVG imports use `?component` parameter
--------------------------------------

All components are now imported with `?component` URL parameter so that
they have a proper file. By default, Vite imports all files like .svg
as strings containing path to the file.

Unfortunately, `vite-svg-loader` overrides this behaviour without
overriding the Vite import type declaration, leading to incorrect types.
However, it does expose a new parameter `?component`, which is properly
typed and does the same thing you'd expect - export a Vue component, so
most of the SVG imports have been converted to use this parameter.
2023-10-14 15:43:57 +02:00
Jackson Kruger
abf4cd71ba
Add redis caching to getting user notifications and projects [MOD-540] (#723)
* Add redis caching to getting a user's project ids

* Run `cargo sqlx prepare` to update the sqlx-data.json

* Add redis caching for getting user notifications

* Fix new clippy warnings

* Remove log that shouldn't have been committed

* Batch insert of notifications (untested)

* sqlx prepare...

* Fix merge conflict things and use new redis struct

* Fix bug with calling delete_many without any elements (caught by tests)

* cargo sqlx prepare

* Add tests around cache invalidation (and fix bug they caught!)

* Some test reorg based on code review suggestions
2023-10-12 15:52:24 -07:00
Geometrically
d66270eef0
Remove scheduling webhook check (#728) 2023-10-12 11:21:26 -07:00
Prospector
ffb491a61f
Merge pull request #98 from modrinth/feature/popout-menus
Small button refactor, overflow and popout menus
2023-10-12 08:42:44 -07:00
Prospector
4ecba93a25
Fix lint 2023-10-12 08:40:05 -07:00
Prospector
52ec1d09b8
Merge pull request #99 from modrinth/bump-master
Bump version to 0.4.41
2023-10-12 08:35:59 -07:00
Prospector
3d2e2e2278
Bump version to 0.5.0 2023-10-12 08:34:02 -07:00
Prospector
f9a9ece320
More button options and dividers in overflow menus 2023-10-12 08:33:50 -07:00
Prospector
ffc46d6a48
Fix button docs 2023-10-12 08:33:50 -07:00
Prospector
ce458642af
indent on popout menu docs 2023-10-12 08:33:50 -07:00
Prospector
820d3ef426
Add example docs for overflow menu 2023-10-12 08:33:50 -07:00
Prospector
145386b6a7
Change page title of overflow menu 2023-10-12 08:33:50 -07:00
Prospector
a708cf7f69
Small button refactor, overflow and popout menus 2023-10-12 08:33:50 -07:00
Prospector
c70ebb6cce
Bump version 2023-10-12 08:32:50 -07:00
Geometrically
07ecd13554
Switch to Trolley for Modrinth Payments (#727)
* most of trolley

* Switch to trolley for payments

* run prepare

* fix clippy

* fix more

* Fix most tests + bitflags

* Update src/auth/flows.rs

Co-authored-by: Jackson Kruger <jak.kruger@gmail.com>

* Finish trolley

* run prep for merge

* Update src/queue/payouts.rs

Co-authored-by: Jackson Kruger <jak.kruger@gmail.com>

---------

Co-authored-by: Jackson Kruger <jak.kruger@gmail.com>
2023-10-11 15:55:01 -07:00
Prospector
a260b6eac4
Merge pull request #96 from ToBinio/snapping-slider
add snappingPoints to slider
2023-10-11 14:04:22 -07:00
Prospector
0ab17e1ec8
Merge pull request #87 from Banzobotic/fix-clickable-edges
Fix clicking edges of clickable elements
2023-10-11 14:04:10 -07:00
Prospector
d1a0cd1173
Merge pull request #94 from ToBinio/better-dropdown-transition
improve dropdown transitions
2023-10-11 14:03:59 -07:00
BasiqueEvangelist
f1ff88f452
fix maven filters for versions with dashes (#725)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-10-11 14:01:32 -07:00
Jackson Kruger
d92272ffa0
Batch inserts [MOD-555] (#726)
* Batch a bunch of inserts, but still more to do

* Insert many for clickhouse (+ tests)

* Batch the remaining ones except those requiring deduplication

* Risky dedups

* Bit o cleanup and formatting

* cargo sqlx prepare

* Add test around batch editing project categories

* Add struct to satisfy clippy

* Fix silly mistake that was caught by the tests!

* Leave room for growth in dummy_data
2023-10-11 11:32:58 -07:00
tobinio
3955b973ef add snappingPoints to slider 2023-10-08 10:49:51 +02:00
Jackson Kruger
dfa43f3c5a
Add /metrics endpoint for Prometheus (#724) 2023-10-06 15:58:02 -07:00
Wyatt Verchere
259c5ef3d0
Tests (#719)
* computer switch

* some fixes; github action

* added pr to master

* sqlx database setup

* switched intial GHA test db

* removed sqlx database setup

* unfinished patch route

* bug fixes + tests

* more tests, more fixes, cargo fmt

* merge fixes

* more tests, full reorganization

* fmt, clippy

* sqlx-data

* revs

* removed comments

* delete revs
2023-10-06 09:57:33 -07:00
Wyatt Verchere
a1b59d4545
Organizations (#712)
* untested, unformatted, un-refactored

* minor simplification

* simplification fix

* refactoring, changes

* some fixes

* fixes, refactoring

* missed cache

* revs

* revs - more!

* removed donation links; added all org members to route

* renamed slug to title

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-10-02 10:56:57 -07:00
Mysterious_Dev
fcfa508cbc
Fix convertion to Composition API for Avatar component (#1391)
* Fix Convertion for Avatar component

* Use ref for img
2023-10-02 07:08:56 -04:00
Emma Alexia Triphora
58a61051b9
Don't show processing projects in thread message inbox (#722)
They already show up in the Review tab, so, no reason to also have them in the Messages tab
2023-10-01 13:22:29 -07:00
Emma Alexia Triphora
a6766ef1c0
Fix theme color not showing up properly in OpenGraph/Discord embeds (#1384) 2023-10-01 13:22:05 -07:00
chaos
606b5ac5ab
Disable save & remove password button when no input password. (#1387) 2023-10-01 16:21:44 -04:00
chaos
9acc463c7f
Fix dependencies list not updating on dependency remove. (#1388) 2023-10-01 16:19:23 -04:00
chaos
c4ddd08b0a
Fix license element deleting itself when pressing backspace. (#1389) 2023-10-01 15:57:37 -04:00
Sasha Sorokin
5c7dd10769
Preserve whitespace in extracted translatable strings (#1390) 2023-10-01 15:45:21 -04:00
Mysterious_Dev
3fa86cb441
Convert Avatar & Badge components to Composition API (#1386) 2023-10-01 11:47:47 -04:00
Emma Alexia Triphora
4a74ee0d72
Update legal pages, especially rules (#1373)
* WIP rules update

* Update

* Run fix

* Entirely unnecessary

* Address comments
2023-09-30 15:45:53 -07:00
Mysterious_Dev
8a8759b0d4
Add sessions translation to settings navstack (#1383) 2023-09-30 14:47:34 -04:00
Sasha Sorokin
f259072136
Post translation Sessions settings page fixes (#1382) 2023-09-30 14:47:26 -04:00
Sasha Sorokin
3fd74292ef
Remove unnecessary space in description on Sessions settings page (#1381) 2023-09-28 23:53:44 -04:00
Mysterious_Dev
f37c4293df
Token Modal confirm for removal (#1375) 2023-09-28 22:44:36 -04:00
Mysterious_Dev
b9248553be
Add translation keys for Sessions page (#1377)
Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
2023-09-28 22:43:53 -04:00
Geometrically
475d434e98
Hide app promotion (#1376) 2023-09-25 20:28:48 -07:00
Mysterious_Dev
05d568d1c1
Fix "Incorrect wording for expired pats" (#1378) 2023-09-24 15:35:34 -04:00
Emma Alexia Triphora
51777c3f33
Replace moderation project queue with moderation action log (#718) 2023-09-24 12:04:58 -04:00
Emma Alexia Triphora
3767e9fae9
Only show mod files in pack external dependencies (#710) 2023-09-24 11:49:41 -04:00
Emma Alexia Triphora
4bbfc8ccc5
Add NeoForge modpack and autoupdater support (#707) 2023-09-24 11:40:03 -04:00
Wyatt Verchere
531b8214c0
Analytics query (#716) 2023-09-24 11:22:35 -04:00
Emma Alexia Triphora
28b63bac38
Update XSS values to be consistent with knossos (#93)
Implements modrinth/knossos#1208
Implements modrinth/knossos#1239

Also closes modrinth/knossos#1371
2023-09-24 08:07:22 -05:00
Emma Alexia Triphora
5cab618bf7
Fix reports sometimes being broken on the mod dashboard (#717) 2023-09-24 08:04:18 -05:00
Emma Alexia Triphora
fc64719bb8
SEO cleanup (#1367)
* SEO/Metadata cleanup

May split rules changes into its own PR

* Revert rules/terms changes as they are now on a separate branch

* Update [searchProjectType].vue

* Update terms.vue
2023-09-22 11:45:03 -05:00
Wyatt Verchere
3380f4d11c
downloads route (#713) 2023-09-20 08:11:09 -07:00
Wyatt Verchere
4bf030993a
Collections users route (#711)
* users route

* Added user route

* collections
2023-09-18 11:43:58 -07:00
tobinio
323a74eef3 improve dropdown transitions 2023-09-18 16:34:41 +02:00
Sasha Sorokin
bd4da4f365
Improve i18n-related SEO (#1366) 2023-09-16 21:07:52 -04:00
Emma Alexia Triphora
f65f949a36
Fix issue with thread messages not being sent to moderators on non-processing projects (#705) 2023-09-15 15:39:03 -04:00
Julian Vennen
2864abd8c2
Add created and modified timestamp to search facets (#708) 2023-09-15 15:29:16 -04:00
Wyatt Verchere
9bd2cb3c7e
Collections (#688)
* initial draft; unfinished

* images, fixes

* fixes

* println

* revisions

* fixes

* alternate context setup version

* rev

* partial revs

* rev

* clippy ,fmt

* fmt/clippy/prepare

* fixes

* revs
2023-09-13 22:22:32 -07:00
Wyatt Verchere
35cd277fcf
analytics (#695)
* playtime

* other routes, improvements

* fmt clippy

* revs

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-09-13 16:35:47 -07:00
Adrian O.V
ae7f7e9bd6
Search dropdown (#91)
* Bar charts

* Update package.json

* Search Dropdown

* Add circle icon option
2023-09-13 16:21:13 -04:00
Geometrically
57b1932b5e
Fix minecraft meta links (#12)
* Fix minecraft meta links

* remove debug

* bump v

* no mut
2023-09-12 14:19:24 -04:00
Emma Alexia Triphora
e6818023a3
Allow moderators to edit version info (#703)
* Allow moderators to edit version info

* Clippy fix
2023-09-11 14:21:50 -04:00
BasiqueEvangelist
35a541f99b
Maven version filters for duplicate version numbers (#625) 2023-09-10 12:59:10 -04:00
Konicai
5fb00a947c
Allow BungeeCord plugins that use bungee.yml (#698)
Co-authored-by: Emma Alexia Triphora <emma@modrinth.com>
2023-09-10 12:49:35 -04:00
Modrinth Bot
6288f679b9
[no ci] synced file(s) with modrinth/.github (#706) 2023-09-10 12:45:44 -04:00
Mysterious_Dev
b88e63d133
Make .well-known/change-password redirect appropriately (#1360) 2023-09-10 12:25:33 -04:00
Mysterious_Dev
a85255df5a
Fix: Mistake for profile translations (#1362) 2023-09-10 12:23:42 -04:00
Mysterious_Dev
15c02e9e91
Update Discord invite link to use official (#1363) 2023-09-10 12:21:00 -04:00
Emma Alexia Triphora
ec35392cd1
Merge pull request #90 from modrinth/sync-issue-templates/default 2023-09-10 12:16:28 -04:00
modrinth-bot
b14b977bca [no ci] synced local '.github/ISSUE_TEMPLATE/' with remote 'issue_templates/' 2023-09-10 16:13:50 +00:00
Emma Alexia Triphora
54f55d44dc
Fix dependency capitalization (#1351) 2023-09-02 16:45:13 -04:00
Emma Alexia Triphora
568dc1625e
Skip CI in all Crowdin commits (#1338) 2023-09-02 09:42:00 -04:00
Mysterious_Dev
259b239e16
Fix: Incorrect notification history link on dashboard (#1350) 2023-09-02 09:41:32 -04:00
MMK21Hub
3033387ffc
Add autocomplete attributes to auth-related inputs (#1349) 2023-09-02 09:40:02 -04:00
Mysterious_Dev
d500c29493
Fix: Notifications are always unread on small windows (#1347) 2023-09-02 09:39:26 -04:00
Sasha Sorokin
799d8003eb
Skip regenerate workflow on forks (#1344) 2023-09-02 09:38:27 -04:00
Sasha Sorokin
5d34af6ac5
Make language label not translatable (#1343) 2023-09-02 09:38:10 -04:00
Mysterious_Dev
dca5b9f197
Support enter key for 2FA input field (#1341) 2023-09-02 09:37:42 -04:00
Mysterious_Dev
75e075ef8e
Add translations for profile page (#1340)
Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
2023-09-02 09:37:04 -04:00
Kxffie
9895976128
Add query to embed of search pages (#1284) 2023-09-02 09:33:52 -04:00
Calum
133367ddb5
Add "float: right|left" support for css. (#1208)
Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
2023-09-02 09:31:59 -04:00
Emma Alexia Triphora
57964282ee
Miscellaneous CSS cleanup (and make the report modal look better) (#1334) 2023-08-24 15:21:12 -04:00
Sasha Sorokin
51b07fc0c3
Add names of all languages on Crowdin (#1337) 2023-08-23 16:07:37 -04:00
Sasha Sorokin
d8f33641a5
Enable all locales on staging instances (#1336) 2023-08-23 15:18:58 -04:00
Emma Alexia Triphora
a7c7234589
Fix project deletion going to a non-existent page (#1332) 2023-08-23 12:13:25 -04:00
Geometrically
e766759b8c
Fix scheduling bug (#693)
* Fix scheduling bug

* Fix comp err
2023-08-23 12:08:18 -04:00
Emma Alexia Triphora
f22f1971cb
Don't abbreviate moderation statistics (#1333) 2023-08-23 12:02:45 -04:00
Emma Alexia Triphora
28a5806492
Remove defunct modpacks alpha notice setting (#1331) 2023-08-23 11:55:20 -04:00
Nitrrine
df98167706
Use Nuxt 3 documentation link instead of Nuxt 2 (#1327) 2023-08-23 10:40:45 -04:00
falseresync
06cc40055a
Extract Message banner component (#1105) 2023-08-23 10:40:16 -04:00
Nitrrine
66b47c08e6
Improve download button in changelog (#1311) 2023-08-23 10:39:30 -04:00
Sasha Sorokin
40cb8db1fc
Move language nav menu item and hide it on prod (#1329) 2023-08-23 10:26:02 -04:00
Geometrically
2454a03c2b
Fix broken dashboard (#1328) 2023-08-22 11:59:45 -04:00
naqaden
0a59a06121
Replace project icon border (#1319)
Icons in project pages with featured images and in search results with gallery view have borders that resize their 96x96 icons to 88x92.

These box-shadow replacements preserve icon size while retaining visual equivalency (rounded 4px border around left, top, and right).
2023-08-21 18:47:34 -04:00
Adrian O.V
a7191e8efb
Bar charts (#89)
* Bar charts

* Update package.json
2023-08-21 15:55:50 -04:00
Adrian O.V
e1f4d791ae
Charts (#88)
* Charts

* Version bump

* Update pnpm-lock.yaml
2023-08-21 15:29:24 -04:00
Jai A
c1d28381e8
actually bump version 2023-08-21 14:36:43 -04:00
Geometrically
2fa8371bae
Neoforge support (#11) 2023-08-21 14:34:22 -04:00
Wyatt Verchere
a1cfdf1a5b
Socket cleanup (#682)
* testing changes

* added success

* removed success

* Fix compile error

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2023-08-21 14:21:05 -04:00
Emma Alexia Triphora
806fcb6ed2
Project moderation tab improvements (#1323) 2023-08-21 13:29:09 -04:00
Sasha Sorokin
467b0fa988
Add the language setting page (#1210)
* Add initial language picker prototype

* Heap o' improvements and Pirate tongue

* Move .visually-hidden to shared utils and add copyright notice

* Add a little space before categories names

* Simplify search to input focus logic

* Remove larger font size and padding from the search field

* Some refactors

* Braw's descent into madness

Thanks web development!

In seriousness though, tried to make the list more accessible. Making it
fully accessible feels like unbearable task, so at least that.

* Litol refactoring

* Extract new strings and remove old ones

* Update @vintl/nuxt to 1.3.0

This fixes the bug where default locale won't be saved.

* A buncha refactorings and cleanup

* Scuttle the Pirate lingo

'Twas employed 'ere for testin' purposes, but fear not, for it shall be
returnin' in the days to come. Should ye require it fer testin', simply
roll back this here commit.

* Clean languages source file

* Change "US" to "United States"

I think it would make distinguishing two languages simpler as now
there's more than one letter of difference (US/UK vs United States/
United Kingdom).
2023-08-21 13:26:39 -04:00
Nitrrine
a420d5b203
Add SEO to Rewards Program Information page (#1320) 2023-08-21 13:20:18 -04:00
Emma Alexia Triphora
e9c7f5d664
Fix #683 (#691)
* Fix #683

* whitespace

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-08-21 10:44:09 -04:00
Emma Alexia Triphora
c85f12fe2c
Fix closing reports not marking the report as closed (#690)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-08-21 10:43:06 -04:00
Geometrically
13e5644c89
Fix creator payouts + scheduler (#686) 2023-08-21 10:42:33 -04:00
Banzobotic
5be3aec7d4 whitespace fix 2023-08-20 23:33:48 +01:00
Banzobotic
5e25a4a00e Simplify code and avoid breaking change 2023-08-20 23:16:06 +01:00
Banzobotic
810cf9ab2c Use better exception for markdown
Now more readable, and doesn't affect other external links such as in sidebar-card
2023-08-20 21:44:36 +01:00
Sasha Sorokin
eac029aef4
Webhook emojis update (#685) 2023-08-20 16:33:36 -04:00
Banzobotic
2a11de7571 Fix clicking the edges of clickables 2023-08-20 21:28:53 +01:00
Prospector
12543be913
Fix placement of Modrinth App promo and add toggle for the primary nav promos (#1315) 2023-08-20 12:23:17 -07:00
Prospector
cfbf08dbf5
Fix auth layout on mobile (#1316) 2023-08-20 12:23:06 -07:00
Emma Alexia Triphora
3649573ba1
Fix "approve with reply" button being always pressable (#1322) 2023-08-20 13:30:55 -04:00
Kavi/o
0fdc02d5e9
Fixed Leave Project button (#1321) 2023-08-20 12:10:40 -04:00
falseresync
0ffe8ef102
Refine the auth design; clean up the layout and styles there (#1240)
* Refine the auth design; clean up the layout and styles there

* It doesn't really sing, does it

* Tweak auth form spacing and wording

* Final tweaks to improved auth design

* Merge

* fix lockfile

---------

Co-authored-by: Prospector <prospectordev@gmail.com>
2023-08-18 12:00:44 -07:00
Adrian
ce995812d4
Added metadata inference support for Velocity Plugins (#1296) 2023-08-18 12:00:18 -07:00
Nitrrine
cd22e1779d
Add more buttons for finding the Modrinth App (#1312)
* Get the App button

* Get the App button

* Get the app -> Get Modrinth App & Add this button to account dropdown

* Using normal styles instead of inline styles
2023-08-18 12:00:02 -07:00
chaos
fbb50d8fb6
Add some text for when you haven't filed any reports (#1304)
* Add a message for no viewable reports.

* implement proposal
2023-08-18 11:55:16 -07:00
Adrian O.V
27172c2a19
Promotion tweaks (#85)
* Modify promotion, Fix #80, Fix #79

* Update Avatar.vue

* Version bump
2023-08-10 11:49:00 -04:00
Geometrically
f453dff438
add checkbox for monetization program + explainer (#1293)
* Fix bugs with threads

* remove modpack warning

* add back msg

* update project reveue info

* Add faq

* add checkbox with rewards terms
2023-08-09 20:27:49 -07:00
Geometrically
a437a40eee
Fix bugs with threads (#1288)
* Fix bugs with threads

* remove modpack warning

* add back msg

* update project reveue info

* Add faq
2023-08-09 18:02:12 -07:00
Adrian
70a173a16d
Added metadata inference support for Paper Plugins (#1282) 2023-08-09 14:06:32 -07:00
Apricot
7724fc74e5
Fix spelling mistake (accross -> across) (#1290) 2023-08-09 14:02:06 -07:00
Geometrically
6023c08554
bump pkg version (#84) 2023-08-08 15:25:14 -07:00
Geometrically
2de56065af
Fix resize text (#83)
* Fix resize text

* fix multiselect
2023-08-08 15:23:00 -07:00
Geometrically
a5195920fa
update validators (#678) 2023-08-08 14:27:38 -07:00
Geometrically
5676a13290
Fix sponge validator (#679) 2023-08-08 13:20:15 -07:00
Geometrically
d11f0e864e
gv loader cache bring back (#677)
* gv loader cache bring back

* run prep fmt
2023-08-08 10:14:49 -07:00
Geometrically
df83fcc5b9
Optimizations (#676) 2023-08-07 23:05:08 -07:00
Geometrically
f21c756793
Attempt to fix db timeouts (#674) 2023-08-07 12:37:29 -07:00
Adrian
4b07ee2fa8
Added Paper Plugins support (#673)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-08-07 11:53:21 -07:00
Jamalam
ae3a39ee65
remove 'source file' validation (#671) 2023-08-07 11:41:49 -07:00
Geometrically
e9f5bd4ac1
Fix redis pool timeout (#669)
* Fix redis pool timeout

* remove search dep project issues

* run fmt + prep
2023-08-06 15:34:03 -07:00
Geometrically
f5cf1ca08c
Update legal docs (#1260)
* Update legal docs

* add app

* fix homepage
2023-08-05 17:27:35 -07:00
Geometrically
1f4ad732fd
fix analytics route not working (#668) 2023-08-05 12:07:38 -07:00
Adrian O.V
37a1e67579
App landing fixes (#1257)
* Addressed all changes and bug fixes

* Run lint

* Delete linux.svg

* buttons are no longer tabbable

* Fix os issue

* Run lint

* Fix grid issues

* Update meta

* Run lint
2023-08-05 10:09:44 -07:00
Geometrically
a372cbbf52
Switch to new ad (#82) 2023-08-05 09:50:16 -07:00
Geometrically
5637d37ee1
fix updates route (#667) 2023-08-04 22:52:17 -07:00
Geometrically
c370da2fef
Fix version deps (#666) 2023-08-04 22:15:19 -07:00
Geometrically
d168209721
put assets in docker (#665) 2023-08-04 20:20:05 -07:00
Geometrically
ca0468b8d5
Auth fixes (#664)
* Auth fixes

* destroy flows after use

* fix comp err

* add bearer err msg
2023-08-04 16:22:15 -07:00
Adrian O.V
a67cf44453
Launcher page (#1249)
* Initial commit

* Update launcher.vue

* Finalize landing page!!!!!!!

* Run linter

* Address some changes

* Address changes

* Lint

* addressed more changes

* Add os logos

* Use install urls for linux

* Update app.vue

* intuitive buttons
2023-08-04 18:22:23 -04:00
Geometrically
039d26feeb
Add launcher analytics (#661)
* Add more analytics

* finish hydra move

* Finish websocket flow

* add minecraft account flow

* Finish playtime vals + payout automation
2023-08-02 14:43:04 -07:00
Emma
a4bead1bde
Fix report buttons not working for signed-out users (#1255) 2023-08-02 14:03:31 -07:00
Emma
0d15024bd2
Add links to the markdown reference on the docs (#1254) 2023-08-02 14:02:51 -07:00
Emma
6509d726b3
Remove useless moderation stuff (#1253)
Moderation messages are superseded by threads, so there is no need to have the ModalModeration anymore, it would only confuse new moderators
2023-08-02 14:02:29 -07:00
Brady
a132f0f41d
Change version infering to use full semver range spec (#1248)
* Add support for all semver and forge maven range.

* Fix that old forge was checking version as an object

* Fix new version range checking not being applied to quilt.mod.jsons

* run fix
2023-08-02 14:02:03 -07:00
Sasha Sorokin
7c2ea3dcfd
Don't run Deploy workflow on forks (#1252) 2023-08-01 19:38:47 -04:00
Emma
706c6d46da
Fix bug with wsrv (#1239)
* Fix bug with wsrv

* Address comment
2023-08-01 15:35:06 -07:00
Geometrically
04915cc65a
fix issues with auth (#1247) 2023-08-01 15:34:29 -07:00
Zefir
e2fb8827a7
Use en dash for versions range instead of em dash (#1246) 2023-07-30 16:19:42 -04:00
Geometrically
10e7b66f38
Fix loader ordering (#10) 2023-07-28 16:22:38 -07:00
Wyatt Verchere
05fda903c6
added options to promotion (#81)
* added options to promotion

* prettier

* incremented package.json
2023-07-28 12:52:14 -07:00
Prospector
91e1eff763
Add formatted name for NeoForge (#1241) 2023-07-22 14:45:56 -07:00
Prospector
2c4ffcfa7c
Initial frontend NeoForge support (#1233)
* Revert "fix: featured version ui shifts (#1191)"

This reverts commit 3036f43b756768453a66c973bebdd383f7c3c68a.

* Revert "Fix CTRL clicking on versions issue (#1189)"

This reverts commit f4560bd7d8a41f5d171b3ed90330cdb8fb131ae0.

* Add basic neoforge frontend support
2023-07-22 14:37:08 -07:00
Prospector
34d63f3557
Update master with new auth (#1236)
* Begin UI for threads and moderation overhaul

* Hide close button on non-report threads

* Fix review age coloring

* Add project count

* Remove action buttons from queue page and add queued date to project page

* Hook up to actual data

* Remove unused icon

* Get up to 1000 projects in queue

* prettier

* more prettier

* Changed all the things

* lint

* rebuild

* Add omorphia

* Workaround formatjs bug in ThreadSummary.vue

* Fix notifications page on prod

* Fix a few notifications and threads bugs

* lockfile

* Fix duplicate button styles

* more fixes and polishing

* More fixes

* Remove legacy pages

* More bugfixes

* Add some error catching for reports and notifications

* More error handling

* fix lint

* Add inbox links

* Remove loading component and rename member header

* Rely on threads always existing

* Handle if project update notifs are not grouped

* oops

* Fix chips on notifications page

* Import ModalModeration

* finish threads

* New authentication (#1234)

* Initial new auth work

* more auth pages

* Finish most

* more

* fix on landing page

* Finish everything but PATs + Sessions

* fix threads merge bugs

* fix cf pages ssr

* fix most issues

* Finish authentication

* Fix merge

---------

Co-authored-by: triphora <emma@modrinth.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-07-20 11:19:42 -07:00
Geometrically
4bb47d7e01
Finish authentication (#659) 2023-07-18 15:02:54 -07:00
Prospector
a5613ebb10
Threads and more! (#1232)
* Begin UI for threads and moderation overhaul

* Hide close button on non-report threads

* Fix review age coloring

* Add project count

* Remove action buttons from queue page and add queued date to project page

* Hook up to actual data

* Remove unused icon

* Get up to 1000 projects in queue

* prettier

* more prettier

* Changed all the things

* lint

* rebuild

* Add omorphia

* Workaround formatjs bug in ThreadSummary.vue

* Fix notifications page on prod

* Fix a few notifications and threads bugs

* lockfile

* Fix duplicate button styles

* more fixes and polishing

* More fixes

* Remove legacy pages

* More bugfixes

* Add some error catching for reports and notifications

* More error handling

* fix lint

* Add inbox links

* Remove loading component and rename member header

* Rely on threads always existing

* Handle if project update notifs are not grouped

* oops

* Fix chips on notifications page

* Import ModalModeration

* finish threads

---------

Co-authored-by: triphora <emma@modrinth.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2023-07-15 20:39:33 -07:00
Geometrically
ec80c2b9db
Next auth fixes (#658) 2023-07-14 22:55:00 -07:00
Geometrically
a89418e33b
First auth fixes (#656) 2023-07-13 19:50:42 -07:00
Geometrically
0d88ff8dae
Verify Email + Reset Password flows (#654)
* verifiers

* add missing emails

* fix gh perms
2023-07-12 20:40:24 -07:00
Geometrically
4bdf9bff3a
2FA + Add/Remove Auth Providers (#652)
* 2FA + Add/Remove Auth Providers

* fix fmt issue
2023-07-11 19:13:07 -07:00
Geometrically
7fbb8838e7
Scoped PATs (#651)
* Scoped PATs

* fix threads issues

* fix migration
2023-07-10 16:44:40 -07:00
Modrinth Bot
1a2b45eebd
[no ci] synced local '.github/ISSUE_TEMPLATE/' with remote 'issue_templates/' (#1219)
Co-authored-by: modrinth-bot <null>
2023-07-10 11:18:20 -07:00
Geometrically
366ea63209
Fix session del (#650) 2023-07-08 22:07:11 -07:00
Geometrically
6c0ad7fe1a
Sessions Route + Password Auth (#649)
* Sessions Route + Password Auth

* run prep + fix clippy

* changing passwords + logging in

* register login
2023-07-08 14:29:17 -07:00
Modrinth Bot
ef9c90a43a
[no ci] synced local '.github/ISSUE_TEMPLATE/' with remote 'issue_templates/' (#645)
Co-authored-by: modrinth-bot <null>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-07-08 14:11:30 -07:00
Geometrically
239214ef92
Initial Auth Impl + More Caching (#647)
* Port redis to staging

* redis cache on staging

* add back legacy auth callback

* Begin work on new auth flows

* Finish all auth flows

* Finish base session authentication

* run prep + fix clippy

* make compilation work
2023-07-07 12:20:16 -07:00
Geometrically
65791a58e9
Fix CF Pages on linkify (#1231) 2023-07-04 12:15:14 -07:00
Geometrically
6e0f22323b
Fix pages env vars (#1230)
* Fix pages env vars

* bring back vercel json
2023-07-03 18:08:05 -07:00
Geometrically
4c8c35a25a
move to cloudflare workers (#1229)
* move to cloudflare workers

* remove junk
2023-07-03 17:23:19 -07:00
Adrian O.V
a149f06f58
Dropdown Input + move to chevron (#78) 2023-06-30 08:09:57 -07:00
Adrian O.V
42f97f63d5
Share modal (#74)
* Creation of the share modal

* Update package.json

* Addressed comments

* Fixed dependency

* Update ShareModal.vue

* Fixed url

* Update ShareModal.vue

* Adressed changes
2023-06-28 08:44:47 -07:00
Modrinth Bot
227652de2e
[no ci] created local '.github/ISSUE_TEMPLATE/' from remote 'issue_templates/' (#73)
Co-authored-by: modrinth-bot <null>
2023-06-28 08:43:42 -07:00
Brady
dd205e849c
Copy Knossos parser changes to Omorphia (#76) 2023-06-28 08:43:25 -07:00
Emma
b0057b130e
[no ci] Sync issue templates (#641) 2023-06-21 19:32:36 -04:00
Emma
05d994889d
[no ci] Sync issue templates (#1216) 2023-06-21 19:32:21 -04:00
Prospector
4b381049c3
Fix/plugin datapack display (#1215)
* Fix plugin and data pack project type display

* plugin and data pack too
2023-06-21 06:59:07 -04:00
Geometrically
33f3479569
Fix tauri modal drag region (#72) 2023-06-20 17:14:48 -07:00
Prospector
6b940ed675
Revert #1189 and #1191 (#1214)
* Revert "fix: featured version ui shifts (#1191)"

This reverts commit 3036f43b756768453a66c973bebdd383f7c3c68a.

* Revert "Fix CTRL clicking on versions issue (#1189)"

This reverts commit f4560bd7d8a41f5d171b3ed90330cdb8fb131ae0.
2023-06-20 14:51:49 -07:00
MMK21Hub
247be0c11f
Fix search filters being hidden (#1205)
* Fix search filters being hidden (#1165)

Previously, `max-width` was used to hide the sidebar on mobile, which
meant that at exactly 1024 pixels wide, the sidebar would be hidden.
However, this breakpoint is also as a
`min-width` other media queries, notably the ones used to enable viewing
filters on mobile sizes. This has caused issue #1024.

To fix this, I have swapped the logic of the rule that hides the filters
on mobile: it is now hidden by default and a `min-width` query is used
to show it on wider viewports. This is more consistent with similar media
queries in the same file.

Looking to the future, these issues should become less common if we
switch to range-based media queries:
https://caniuse.com/css-media-range-syntax

* Delete package-lock.json

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2023-06-20 14:37:39 -07:00
kevoh1516
14b0e8875d
fix version filtering wrong page (#1206) 2023-06-20 14:33:34 -07:00
Younes
bd51741b01
fixed detail tab with summary and bold tags (#1198) 2023-06-20 14:32:42 -07:00
Prospector
afd60b8a16
Fix license selector (#1213) 2023-06-20 12:17:10 -07:00
Geometrically
6e0659af4c
add draggable attr to modal background (#71) 2023-06-20 09:19:47 -07:00
Prospector
6de1fa0878
Large and outlined buttons (#69) 2023-06-20 09:05:26 -07:00
Geometrically
61e00f1620
Add unclosable modals (#70) 2023-06-19 22:15:45 -07:00
Wyatt Verchere
d64c043838
sends own addr to auth callback (#639)
* sends own addr to auth callback

* shouldn't have http on local

* actually, both should have

* changed for consistency
2023-06-15 16:12:02 -07:00
Sasha Sorokin
c8c75b38c3
Update @vintl/nuxt to 1.2.3 (#1201)
This should fix TypeScript error related to nuxt.config.ts file and
unknown `vintl` property in it.
2023-06-15 12:24:12 -07:00
Geometrically
2bdd0a0e8d
Fix dropdown bug on webkit (#68) 2023-06-14 17:48:46 -07:00
Wyatt Verchere
dd3599f5b3
removed route (#637)
* removed route

* email change support
2023-06-13 14:43:20 -07:00
Geometrically
4131ad5016
Fix breadcrumb link style (#67) 2023-06-12 19:42:30 -07:00
Adrian O.V
4f74b3fafe
Dropdowns buttons colorized (#66)
* Buttons  colorized 

* Update package.json
2023-06-12 15:02:16 -07:00
Younes
177a487ead
fixed mobile navigation on iphones safari (#1193)
fixes #1164
2023-06-11 20:32:00 -04:00
Younes
99a4966786
fix logging out doesnt work (#1192)
Fixes #1108
2023-06-11 20:01:49 -04:00
Younes
db9279a6e5
fixed redirection back to followed projects (#1190)
Fixes #1158
2023-06-11 19:57:01 -04:00
Younes
3036f43b75
fix: featured version ui shifts (#1191) 2023-06-11 19:31:18 -04:00
Younes
f4560bd7d8
Fix CTRL clicking on versions issue (#1189)
Fixes #1184
2023-06-11 18:25:27 -04:00
Geometrically
0d56127758
Add new mojang args (#9) 2023-06-11 13:40:31 -07:00
Emma
97b9ec5cc7
Fix two bugs with Forge mod exporting (#1187) 2023-06-11 14:41:44 -04:00
Emma
cdab3d0eff
Change uses of "Include snapshots" to "Include all versions" (#1178) 2023-06-11 14:41:32 -04:00
Sasha Sorokin
de991041c4
Add internationalization support (#738) 2023-06-11 14:08:16 -04:00
Nerjal Nosk
776c16cd49
Theme switch cooldown (#1188) 2023-06-11 13:47:08 -04:00
Sasha Sorokin
d9f8746438
Consistent extension usage in imports (#1171) 2023-06-11 13:37:40 -04:00
Sasha Sorokin
20d1c4d242
Switch to bundler TypeScript moduleResolution (#1170) 2023-06-11 13:33:38 -04:00
Adrian O.V
6edac37031
fix some styling (oops) (#64)
* fix some styling (oops)

* Update pnpm-lock.yaml
2023-06-10 09:21:29 -07:00
Adrian O.V
cea5a18a7a
Slider and text input changes (#65) 2023-06-10 09:18:15 -07:00
Prospector
bf615303f1
Fix pagination (#1181) 2023-06-09 14:47:36 -07:00
Geometrically
ea043517c5
Fix version file visibility (#630)
* Fix version file visibility

* add missing

* update prepare
2023-06-08 20:25:03 -07:00
Wyatt Verchere
b84d9c5d55
github token support (#629)
* github token support

* sqlx-data

* renamed github, modrinth tokens

* removed prints
2023-06-08 16:35:12 -07:00
Geometrically
063585f563
Improve landing page performance (#1180)
* Improve landing page performance

* fix build
2023-06-08 15:42:18 -07:00
Geometrically
01304e807a
Fix dropdown quirks (#63) 2023-06-06 16:07:58 -07:00
kevoh1516
d275b3fd08
do not allow empty option on dropdown when adding dependency (#1155) 2023-06-06 14:23:08 -07:00
triphora
66364354da
Small landing page fixes (#993)
* Miscellaneous fixes/improvements to landing page

* The downsides of not being able to set up a local testing env, in a commit

* Update how stats are retrieved

* Fix prettier

* Make requested changes

* Restore nuxt.config.js

* Restore composables/tag.js

* Update index.vue
2023-06-06 14:22:36 -07:00
Brady
48203aedf9
Fix markdown styling (#1176) 2023-06-06 14:21:10 -07:00
Calum
a6ca893ec5
Add indicators for visibility on project settings page (#1092)
* Add indicators for visibility - replace confusingly worded description.

* Add better description alongside ticks

* CrossIcon -> CheckIcon

* Icon naming

* Update index.vue

Use x.svg as exit.svg might be removed in the future.

* Visibility -> Target Visibility

* Add suggestions.

* Target Visibility -> Visibility
2023-06-06 14:20:35 -07:00
triphora
d55f1163a2
Improve withheld message banner (#1167) 2023-06-06 14:15:30 -07:00
Brady
80530012b8
Fix hljs class parsing (#1174) 2023-06-06 14:13:23 -07:00
Adrian O.V
d98a6adfb3
Create button (#62) 2023-06-05 23:34:52 -04:00
Geometrically
6c628afe5d
Auto doing fixes (#8) 2023-06-02 16:13:00 -07:00
Geometrically
abc99c7e69
Fix report + mod deletion (#626) 2023-06-01 08:53:16 -07:00
Wyatt Verchere
fe25cd3bec
Minos push (#589) (#590)
* Minos push (#589)

* moving to other computer

* working redirection

* incomplete pat setup

* no more errors

* new migrations

* fixed bugs; added user check

* pats

* resized pats

* removed testing callback

* lowered kratos_id size

* metadata support

* google not working

* refactoring

* restructured github_id

* kratos-id optional, legacy accounts connect

* default picture

* merge mistake

* clippy

* sqlx-data.json

* env vars, clippy

* merge error

* scopes into an i64, name

* requested changes

* removed banning

* partial completion of github flow

* revision

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-05-31 16:03:08 -07:00
Geometrically
ae3a35816e
Fix publish act (#61)
* Fix publish act

* Fix again:
2023-05-28 16:59:52 -04:00
Geometrically
8ca4be5ac0
Fix publish act (#60) 2023-05-28 16:52:54 -04:00
Geometrically
1c814946d5
bump version (#59)
* Knossos Catch-up

* bump version

* fix build

* fix build again

* Fix lint

* downgrade pnpm

* fix modals

* fix btn style

* add missing styles

* bump again
2023-05-28 16:46:13 -04:00
Geometrically
1db59fc052
Knossos Catch-up (#58)
* Knossos Catch-up

* bump version

* fix build

* fix build again

* Fix lint

* downgrade pnpm

* fix modals

* fix btn style

* add missing styles
2023-05-28 16:36:49 -04:00
Geometrically
273a69258a
Fix wrong func being parsed, md parser (#1169) 2023-05-28 16:00:25 -04:00
Sasha Sorokin
3b0dc2195d
Switch to pnpm (#1168) 2023-05-28 14:21:14 -04:00
Geometrically
bbb2539ace
Add missing input styles (#57) 2023-05-25 20:49:32 -04:00
Geometrically
03cfe9bf62
Fix none size (#56)
* Fix none size not working

* bump
2023-05-25 17:43:15 -04:00
Geometrically
e29a4d79ba
Fix none size not working (#55) 2023-05-25 17:39:32 -04:00
Geometrically
4243bf9ba8
Remove uses of iconified-button (#54) 2023-05-25 16:25:36 -04:00
Prospector
2eb51edfb6
Merge pull request #623 from modrinth/reports-fixes
Reports fixes
2023-05-25 12:53:40 -07:00
Geometrically
715d564028
Merge branch 'master' into reports-fixes 2023-05-25 12:36:13 -07:00
Jai A
989b704efc
Reports fixes 2023-05-25 15:27:15 -04:00
Geometrically
7ae9627a79
Fix multiselect + tooltip styles (#53) 2023-05-25 14:26:03 -04:00
Geometrically
097a1cc799
Notifications (#52)
* Notifications

* fix docs
2023-05-22 14:33:45 -07:00
triphora
0bfaeb8521
Update Discord webhook emojis (#592)
Fixes #569
2023-05-19 11:04:40 -07:00
Geometrically
625511d28b
Disabling sliders (#51)
* Add disabled slider to omorphia

* lint
2023-05-18 19:57:35 -07:00
Geometrically
b6a58ee845
Mac disable outline (#50)
* Disable outline on macos

* bump
2023-05-18 16:43:14 -07:00
Geometrically
a349aed94c
Fix reload (#1154) 2023-05-15 10:41:57 -07:00
Geometrically
3db00534c2
Fix launcher overrides (#7)
* Fix launcher overrides

* Remove none set

* Patch to work with legacy versions

* remove mc
2023-05-12 20:42:18 -07:00
Geometrically
82b96d1a14
Fix GIFs (#1130) 2023-05-08 19:01:06 -07:00
Geometrically
b85ddd1a53
Fix link style (#49) 2023-05-06 14:20:13 -07:00
Mikhail Oleynikov
732f88ff51
Renovate config files (#1117)
* Renovate the config files

* Return Vue and TS ESLint plugins

* Revert Prettier config
Add typing to ESLint config
Re-revert package.json

* Re-add ESLint plugin for Prettier
(it went missing during merge, oops)

* Try to fix CI by explicit dependency

* Try to fix CI by explicit dependency x2

* Try to fix CI magically
Additionally, remove unneeded jsconfig.json

* Brawaru found the reason

Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>

---------

Co-authored-by: Sasha Sorokin <10401817+brawaru@users.noreply.github.com>
2023-05-06 12:17:43 -07:00
Emma Triphora
c08139b812
Revert "fix(xss): allow any query parameters in youtube embed, ported from #1001 (#1064)"
This reverts commit f34845fd7d99dc46eb1e182a55e3b3f276245388.
2023-05-06 14:56:59 -04:00
Emma Triphora
a6a6e73b04
Revert "Fix lint issues (#1126)"
This reverts commit 521e21072ed00ca97dc102919fbcb6d17e08f6c5.
2023-05-06 14:56:47 -04:00
Emma Triphora
9971201004
Revert "Fix the remove on the Discord theme because of the way the new remove… (#1127)"
This reverts commit e99b0f8052aa53c0627a86c948fe0c3ac2e7bfa6.
2023-05-06 14:56:14 -04:00
PandaNinjas
e99b0f8052
Fix the remove on the Discord theme because of the way the new remove… (#1127) 2023-05-06 12:46:54 -04:00
Calum
7a59b2b25d
Ascending/Descending order by button for projects dashboard page. (#1100) 2023-05-06 11:12:35 -04:00
triphora
b713b324f9
Fix incorrect response to invalid input on bulk edit route (#579) 2023-05-06 10:45:29 -04:00
triphora
521e21072e
Fix lint issues (#1126) 2023-05-06 10:44:51 -04:00
PandaNinjas
f34845fd7d
fix(xss): allow any query parameters in youtube embed, ported from #1001 (#1064) 2023-05-06 10:37:15 -04:00
Matias Koivikko
29ccadbd43
Add cf.way2muchnoise.eu as allowed image domain (#1123) 2023-05-06 10:31:05 -04:00
Mikhail Oleynikov
ffb4b395d0
Fix mobile navbar spacing (#1116) 2023-05-06 10:30:51 -04:00
Magnus Jensen
19eba9526a
add bstats.org as allowed domain name for markdown (#1122) 2023-05-06 10:25:14 -04:00
Colby Newman
09ed76904b
Prevent images from being treated as text in markdown (#1119) 2023-05-06 10:25:04 -04:00
Colby Newman
22932241bd
Support HTML image maps (#1118) 2023-05-06 10:24:53 -04:00
Nitro
afc95d99cb
Fix changelog-bar overflowing (#1115) 2023-05-06 10:24:32 -04:00
Adrian O.V
5fde3c53b8
Switch to composition API, Add custom names (#47)
* Switch to composition API, Add custom names

* Update package.json

* Update DropdownSelect.vue
2023-05-03 17:50:39 -04:00
Zach Baird
1135852f25
Merge pull request #46 from modrinth/remove-projectcard-underline
Remove projectcard underline
2023-05-02 13:36:02 -04:00
Zachary Baird
e892f0cb45 Removes global underline a style. 2023-05-02 13:27:26 -04:00
Zachary Baird
de56374c4d Merge branch 'master' of https://github.com/modrinth/omorphia 2023-05-02 12:49:00 -04:00
Geometrically
6512dbae1c
Merge pull request #6 from modrinth/quilt-m1-support
Support for ARM + Quilt
2023-04-26 12:05:46 -07:00
Jai A
3afda71349
fix some data 2023-04-26 10:41:43 -07:00
Jai A
568e5a9bb8
run fmt 2023-04-25 19:37:56 -07:00
Jai A
89e56ae279
Support for ARM + Quilt 2023-04-25 19:36:21 -07:00
Geometrically
339ac05443
Fix TM pending in project route (#584) 2023-04-22 17:44:51 -07:00
Geometrically
9d92b8cc6d
fix btn transparent, add shadows (#45) 2023-04-22 12:18:09 -07:00
Geometrically
d9b3ba0ff2
Fix logged in user stall (#1114) 2023-04-22 09:59:46 -07:00
Geometrically
4be6b11c1e
Fix data URL filtering (#1111)
* Fix data URL filtering

* upgrade nuxt
2023-04-21 18:39:11 -07:00
Adrian O.V
6794da0738
Dropdown improvements (#40)
* Disableability, Up or down rendering

* Switch to scale animation

* Update DropdownSelect.vue

* Fix animation

* bump

* adjustments

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-04-21 17:03:45 -07:00
Geometrically
5527170fab
Fix URL bug + Redundant call (#1110)
* Fix URL bug + Redundant call

* Fix prettier
2023-04-21 14:48:23 -07:00
Geometrically
72cfa683cf
Fix edit bug staging (#582)
* Fix edit bug staging

* Fix comp err

* Fix mod message bug

* Fix compile bug

* Run fmt

* Fix other bug
2023-04-21 13:55:50 -07:00
Geometrically
e732eed98a
Fix tables (#44) 2023-04-21 12:58:30 -07:00
Zach Baird
5244642dee
Adds a --color-super-raised-bg var. (#42)
* Adds card-divider and table styles.

* Adds parent table class. Adds button-span fix.

* Adds super-raised-bg vars.

* Changes super-raised var to use own value for light-mode.

* Removes erroneous var.
2023-04-21 11:41:06 -07:00
Geometrically
b329a44fef
Fix input styling (#43) 2023-04-21 11:40:48 -07:00
Geometrically
3a6b9f04f9
Fix reports creation (#580) 2023-04-21 11:10:57 -07:00
Geometrically
59f24df294
Add dependencies to search (#578)
* Add dependencies to search

* add attrs for faceting

* run prepare

* Add user data route from token

* update to 24hrs

* Fix report bugs
2023-04-20 16:38:30 -07:00
Zachary Baird
c93632421d Merge branch 'master' of https://github.com/modrinth/omorphia 2023-04-19 23:55:59 -04:00
Justsnoopy30
97e0fd9f43
Always use https for wsrv.nl usage (#41) 2023-04-19 19:03:06 -07:00
Zach Baird
ea536c5537
Adds card-divider and table styles. (#39)
* Adds card-divider and table styles.

* Bumps package version.

* Adds parent table class. Adds button-span fix.
2023-04-19 12:07:53 -07:00
Zachary Baird
970c906c97 Adds parent table class. Adds button-span fix. 2023-04-19 15:01:51 -04:00
Zachary Baird
fe738da633 Adds card-divider and table styles. 2023-04-19 11:11:37 -04:00
Geometrically
5c559af936
Fix project scheduling (#576)
* Fix project scheduling

* fix comp

* Fix again

* Fix compile err

* Fix compile err

* Fix compile err

* fix random err
2023-04-18 17:12:44 -07:00
Geometrically
bb80505b76
Return pending TMs, fix notifs serde (#575)
* Return pending TMs, fix notifs serde

* fix compile
2023-04-18 14:16:41 -07:00
Calum
5e3da71ce4
Fix bulk link editing (Fixes #1087) (#1097) 2023-04-17 15:07:21 -07:00
Prospector
a0cccb299e
Fix badge color being overridden by Categories (#1098) 2023-04-17 15:00:30 -07:00
Geometrically
a560f6e9f6
Monetization status, additional files fix, deps fix (#574) 2023-04-16 20:03:53 -07:00
Geometrically
95ae981698
Overhaul notifs + threads fixes (#573)
* Overhaul notifs + threads fixes

* fix lang
2023-04-15 19:48:21 -07:00
Geometrically
e56974f4b2
Navigation fixes (#1095)
* Navigation fixes

* remove console log

* Fix prettier

* Fix legal pages as well
2023-04-15 18:07:20 -07:00
Prospector
fd28da2a3b
Add transfer history and unify back elements with breadcrumbs (#1088)
* Add transfer history and unify back elements with breadcrumbs

* Increase padding of breadcrumbs, include previous query params, more consistent link underlining

* Prettier

* Add project type text and link to project pages

* Remove console.log
2023-04-15 12:08:11 -07:00
Prospector
257b35e4ae
Fix money rounding issue (#1094)
* Fix money rounding issue

* Re-add dollar signs

* Remove unncessary pre-rounding
2023-04-14 20:55:32 -07:00
Geometrically
4398563b85
Bump nuxt version (#1093)
* Bump nuxt version

* tests

* bump again

* fix modals
2023-04-13 15:27:41 -07:00
Geometrically
969eb67217
Add replies, private notes, get many threads (#572)
* Add replies, private notes, get many threads

* register multiple route

* filter out moderators in threads
2023-04-13 15:04:08 -07:00
Zach Baird
e23ace1bb0
Adds number input style and doc. Bumps package version. (#37) 2023-04-13 12:05:45 -07:00
Prospector
0dfebbad9d
Merge pull request #571 from modrinth/threads-fixes
more threads fixes
2023-04-13 10:18:28 -07:00
Jai A
f87f4bd8cc
more threads fixes 2023-04-13 09:54:03 -07:00
Geometrically
352caa85da
Fix messages not showing (#570) 2023-04-12 21:18:03 -07:00
Geometrically
8f61e9876f
Add report + moderation messaging (#567)
* Add report + moderation messaging

* Add system messages

* address review comments

* Remove ds store

* Update messaging

* run prep

---------

Co-authored-by: Geometrically <geometrically@Jais-MacBook-Pro.local>
2023-04-12 17:59:43 -07:00
Zach Baird
2ef333c66d
Merge pull request #36 from modrinth/fixes-modal-xicon
Imports XIcon in Modal component.
2023-04-12 11:12:11 -04:00
Zachary Baird
c6ee44010c Fixes lint error in package.json. 2023-04-12 11:08:55 -04:00
Zachary Baird
71d770e679 Fixes lint error in DropdownSelect. 2023-04-12 10:55:19 -04:00
Zachary Baird
cf17b93201 Bumps package version. 2023-04-12 10:43:12 -04:00
Zachary Baird
08f284ce29 Fixes Lint error. 2023-04-12 10:19:46 -04:00
Zachary Baird
4336aeb0ad Imports XIcon in Modal. 2023-04-12 10:16:38 -04:00
Prospector
5fd3a45c64
Fix duplicate version featured links being wrong sometimes Fixes #842 (#1085) 2023-04-07 18:43:10 -07:00
Prospector
77f8bfcf25
Fix nested lists having bottom margins Fixes #1033 (#1081)
* Fix nested lists having bottom margins Fixes #1033

* prettier
2023-04-07 18:41:00 -07:00
Prospector
509a97e532
Fix project icon label in settings id linking to project name Fixes #1045 (#1080) 2023-04-07 18:40:29 -07:00
Prospector
604683efd5
Fix project type in Dashboard & settings URLs Closes #1066 (#1078) 2023-04-07 18:39:04 -07:00
Prospector
c731515b94
Make pixel art more reliably get pixelated rendering (#1077)
* Make pixel art more reliably get pixelated rendering Closes #289

* Run prettier
2023-04-07 18:38:21 -07:00
Prospector
8d85158f91
Fix disabled css selector Closes #1042 (#1076)
* Fix disabled css selector Closes #1042

* Run prettier
2023-04-07 18:37:18 -07:00
Adrian O.V
0736f372dc
Update slider to composition API (#35)
* Update slider to composition API

* Version bump
2023-04-06 20:05:14 -04:00
Geometrically
fd19bb7cd5
Merge pull request #4 from modrinth/many-fixes-again
Fix forge syncing not working
2023-04-05 12:40:17 -07:00
Jai A
0c2e9137a2
Update id merging 2023-04-05 12:39:16 -07:00
Jai A
bf5a25a96f
fmt + clippy 2023-04-05 12:02:47 -07:00
Jai A
aa84f21fde
Fix forge syncing not working 2023-04-05 12:02:00 -07:00
Geometrically
b9de2b4b58
Merge pull request #3 from modrinth/many-fixes
Many fixes
2023-04-04 21:17:41 -07:00
Jai A
9754f2d1c5
Add limiter for forge downloading 2023-04-04 21:17:19 -07:00
Jai A
f66fc06b4f
fix debug stuff 2023-04-04 20:26:10 -07:00
Jai A
79ceb56c60
Fix issues 2023-04-04 20:25:17 -07:00
Geometrically
a37210b22e
Fix auth login (#1074) 2023-04-03 10:11:10 -07:00
Geometrically
ccf81ff7b9
Disable system theme detection (#1071) 2023-04-02 10:03:17 -07:00
Prospector
a4c1a65f10
Revert "Fix folia projects not showing as a plugin (#1069)" (#1070)
This reverts commit 02a82e1e5911c78e3109a1eee0489875379206ec.
2023-04-01 23:59:04 -07:00
Adrian O.V
6bdea219bf
Create component (#34) 2023-04-02 01:53:29 -04:00
Prospector
02a82e1e59
Fix folia projects not showing as a plugin (#1069) 2023-03-31 21:09:14 -04:00
Geometrically
d238b0b9f2
Add missing icons (#33)
* Markdown table styling

* Add missing icons

* add code icon
2023-03-31 14:04:09 -04:00
Geometrically
40026fbf53
Markdown table styling (#32) 2023-03-31 13:54:04 -04:00
Geometrically
4193818259
folia (#1067) 2023-03-29 15:12:59 -07:00
Adrian O.V
78840157ef
Dropdown fix (#31)
* Fix v-model not working

* Fix clicking off not closing dropdown

* Update DropdownSelect.vue
2023-03-29 14:06:50 -04:00
Geometrically
f3d69a29b9
Bump version (#30) 2023-03-29 07:36:29 -07:00
Adrian O.V
1ae6709b26
Merge pull request #29 from modrinth/navrow-markdown
Add navrow + markdown parsing
2023-03-28 18:03:34 -04:00
CodexAdrian
8cc44b3958 Update parse.js 2023-03-28 18:02:22 -04:00
Jai A
70e894c268
fix vars 2023-03-28 10:43:16 -07:00
Jai A
9ff3ab1a2b
lint 2023-03-28 10:42:03 -07:00
Jai A
8167f6f232
Add navrow + markdown parsing 2023-03-28 10:34:48 -07:00
Geometrically
de844e9b23
Bump package version (#28) 2023-03-28 09:46:24 -07:00
Geometrically
7214b71c29
Bump Nuxt + Minor Fixes (#1065)
* Bump Nuxt + Minor Fixes

* Run lint
2023-03-27 09:20:25 -07:00
Geometrically
be5df46803
Ads component (#27)
* Ads component

* run lint
2023-03-26 17:32:25 -07:00
Magnus Jensen
25bd61558b
fix(project): update follower count client side (#1038)
* fix(project): update follower count client side

* move following increment to user composable

---------

Co-authored-by: MagnusHJensen <magnus.holm.jensen@lego.dk>
2023-03-26 11:44:33 -07:00
Nicholas Christopher
41961de619
Use nuxt-link for team member element (#1062) 2023-03-26 11:43:23 -07:00
TheBossMagnus
1ca3f6ef8a
Update COPYING.md (#22) 2023-03-24 12:16:56 -07:00
Adrian O.V
f97c94832a
Toggles (#24)
* Toggles!

* Toggle component

* Ran prettier
2023-03-24 12:15:55 -07:00
Adrian O.V
4ae7786362
Modal report (#17)
* Base modal implementation

* Modal Report page

* Upgrade multiselect

* Fixed multiselect styling

* fix build err

* rev change

* Added dropdown component, addressed changes

Removed unused classes after vue multiselect was removed
Updated markdown-it and xss

* Update index.js

* fix lint

* Fix prettier code style

* Address most changes

* New dropdown

* Undo comment

Makes the component close when not focused

* Fix accessibility issues

* Fix double focus

* addressed changes to modal

* Run Prettier

* Update ModalReport.vue

* Fixed spacing issues

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2023-03-24 12:15:34 -07:00
Adrian O.V
d3d553ad5a
Update Slider.vue (#26)
* Update Slider.vue

* Ran prettier
2023-03-24 12:15:12 -07:00
triphora
4faab006e3
Fix #725 (#1060) 2023-03-24 12:07:54 -07:00
triphora
80621f598e
Small fixes (#1061) 2023-03-24 15:03:50 -04:00
Zach Baird
eaf689fe2f
Formats version text based on count. (#1053) 2023-03-24 11:47:44 -07:00
Zach Baird
211e3304f3
See all versions will navigate to versions#all-versions. (#1052)
* See all versions will navigate to versions#all-versions.

* Runs prettier.
2023-03-24 11:47:21 -07:00
Zach Baird
d4c3b70f15
Adds margin to confirmation-text. (#1051) 2023-03-24 11:46:09 -07:00
triphora
7605df1bd9
Fix some routes not working (#566) 2023-03-23 09:39:46 -07:00
Adrian O.V
f874941e4d
Merge pull request #23 from modrinth/final-components
Final few components
2023-03-17 13:34:07 -04:00
Geometrically
b91ec48178
Fix notification spam (#565) 2023-03-17 09:36:12 -07:00
triphora
3c2f144795
Perses finale (#558)
* Move v2 routes to v2 module

* Remove v1 routes and make it run

* Make config declaration consistent, add v3 module

* Readd API v1 msgs

* Fix imports
2023-03-16 11:56:04 -07:00
Geometrically
437b2ab30a
Fix serverless crash + Version Filters on reload (#1050) 2023-03-14 15:33:10 -07:00
masecla22
0271337f8e
Fixed an issue with colliding slugs when modifying a project (#562)
* Fixed an issue with colliding slugs when modifying a project

* Update projects.rs

---------

Co-authored-by: triphora <emma@modrinth.com>
2023-03-14 15:06:33 -07:00
Geometrically
630a71c46c
Queue Dates + Warnings, some cleanup (#549)
* Queue Dates + Warnings, some cleanup

* Fix ping

* Fix repeated discord messaging

* Fix compile error + run fmt
2023-03-14 14:48:46 -07:00
Jai A
dcc2a5afe0
Final few components 2023-03-14 14:22:50 -07:00
TheBossMagnus
078e952f30
Update COPYING.md (#1049) 2023-03-14 09:22:42 -04:00
Zach Baird
2d2fe4983c
Adds media query style to prevent Report button from overlapping username. (#1040) 2023-03-13 20:30:12 -07:00
Zach Baird
29ddc04f7b
Changes demo-search height to be min-height. (#1039) 2023-03-13 20:29:37 -07:00
Geometrically
aac2da70cf
Fix authentication hydration issue (#1048)
* Fix authentication hydration issue

* reset existing cookies

* Update if statement chaining
2023-03-13 20:21:55 -07:00
Geometrically
f5cbe0c4fe
Update package.json (#21) 2023-03-13 15:08:58 -07:00
Geometrically
ab28d0a9b3
Fix publish GH action (#20) 2023-03-13 13:59:10 -07:00
Geometrically
6aaf4ed9d9
run lint + fix build output (#19)
* run lint + fix build output

* remove unused env var
2023-03-13 13:28:30 -07:00
Geometrically
1b81a1f4a6
Omorphia Cleanup + Adding missing styles (#18)
* Add missing knossos styles + some knossos cleanup

* remove yarn.lock

* Update output syntax
2023-03-13 11:40:41 -07:00
Geometrically
e838fe30de
Fix datapack packaging (#1044) 2023-03-12 19:01:01 -07:00
Geometrically
150329dd4a
Fix GV + Loader syncing on version create (#564)
* Fix GV + Loader syncing on version create

* Update rustc v
2023-03-12 16:42:25 -07:00
Geometrically
6d9779a497
Fix hydration issue + Edit Page (#1043) 2023-03-12 13:00:09 -07:00
Geometrically
130ece3d2e
Fix upload version showing for everyone (#1037) 2023-03-10 16:37:23 -07:00
Geometrically
d63a794848
Search loading anim (#1036) 2023-03-10 16:18:26 -07:00
Geometrically
ba220abbbf
Fix nuxt3 issues (#1035)
* Fix nuxt3 issues

* fix unintentional npm use
2023-03-10 14:51:48 -07:00
triphora
3825575f70
Fix #1007 (#1030) 2023-03-10 14:50:40 -07:00
Geometrically
8d69961130
Fix overflow tablet (#1029)
* Fix tablet overflow

* Fix with videos as well
2023-03-09 11:06:40 -07:00
Geometrically
740357d120
Migrate to Nuxt 3 (#933)
* Migrate to Nuxt 3

* Update vercel config

* remove tsconfig comment

* Changelog experiment + working proj pages

* Fix package json

* Prevent vercel complaining

* fix deploy (hopefully)

* Tag generator

* Switch to yarn

* Vercel pls 🙏

* Fix tag generation bug

* Make (most) non-logged in pages work

* fix base build

* Linting + state

* Eradicate axios, make most user pages work

* Fix checkbox state being set incorrectly

* Make most things work

* Final stretch

* Finish (most) things

* Move to update model value

* Fix modal text getting blurred from transforms (#964)

* Adjust nav-link border radius when focused (#961)

* Transition between animation states on TextLogo (#955)

* Transition between animation states on TextLogo

* Remove unused refs

* Fixes from review

* Disable tabbing to pagination arrows when disabled (#972)

* Make position of the "no results" text on grid/gallery views consistent (fixes #963) (#965)

* Fix position of the "no results" text on grid view

* fix padding

* Remove extra margin on main page, fixes #957 (#959)

* Fix layout shift and placeholder line height (#973)

* Fix a lot of issues

* Fix more nuxt 3 issues

* fix not all versions showing up (temp)

* inline inter css file

* More nuxt 3 fixes

* [skip ci] broken- backup changes

* Change modpack warnings to blue instead of red (#991)

* Fix some hydration issues

* Update nuxt

* Fix some images not showing

* Add pagination to versions page + fix lag

* Make changelog page consistent with versions page

* sync before merge

* Delete old file

* Fix actions failing

* update branch

* Fixes navbar transition animation. (#1012)

* Fixes navbar transition animation.

* Fixes Y-axis animation. Fixes mobile menu. Removes highlightjs prop.

* Changes xss call to renderString.

* Fixes renderString call.

* Removes unnecessary styling.

* Reverts mobile nav change.

* Nuxt 3 Lazy Loading Search (#1022)

* Uses lazyFetch for results. onSearchChange refreshes. Adds loading circle.

* Removes console.log

* Preserves old page when paging.

* Diagnosing filtering bugs.

* Fix single facet filtering

* Implements useAuth in settings/account.

* tiny ssr fix

* Updating nuxt.config checklist.

* Implements useAuth in revenue, moneitzation, and dashboard index pages.

* Fixes setups.

* Eliminates results when path changes. Adds animated logo.

* Ensures loading animation renders on search page.

---------

Co-authored-by: Jai A <jaiagr+gpg@pm.me>

* Fix navigation issues

* Square button fix (#1023)

* Removes checklist from nuxt.config.

* Modifies Nuxt CI to build after linting.

* Fixes prettierignore file.

* bug fixes

* Update whitelist domains

* Page improvements, fix CLS

* Fix a lot of things

* Fix project type redirect

* Fix 404 errors

* Fix user settings + hydration error

* Final fixes

* fix(creator-section): border radius on icons not aligning with bg (#1027)

Co-authored-by: MagnusHJensen <magnus.holm.jensen@lego.dk>

* Improvements to the mobile navbar (#984)

* Transition between animation states on TextLogo

* Remove unused refs

* Fixes from review

* Improvements to the mobile nav menu

* fix avatar alt text

* Nevermind, got confused for a moment

* Tab bar, menu layout improvements

* Highlight search icon when menu is open

* Update layouts/default.vue

Co-authored-by: Magnus Jensen <magnushjensen.mail@gmail.com>

* Fix some issues

* Use caret instead

* Run prettier

* Add create a project

---------

Co-authored-by: Magnus Jensen <magnushjensen.mail@gmail.com>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>

* Fix mobile menu issues

* More issues

* Fix lint

---------

Co-authored-by: Kaeden Murphy <kmurphy@kaedenmurphy.dev>
Co-authored-by: triphora <emmaffle@modrinth.com>
Co-authored-by: Zach Baird <30800863+ZachBaird@users.noreply.github.com>
Co-authored-by: stairman06 <36215135+stairman06@users.noreply.github.com>
Co-authored-by: Zachary Baird <zdb1994@yahoo.com>
Co-authored-by: Magnus Jensen <magnushjensen.mail@gmail.com>
Co-authored-by: MagnusHJensen <magnus.holm.jensen@lego.dk>
2023-03-09 10:05:32 -07:00
Geometrically
5638f0f24b
Update privacy policy (#998)
* Update privacy policy

* fix prettier weirdness

* Fixes, modifications, and changes

* We don't prevent automated access, we monitor it

* Fix wonky link and fix header hierarchy

* Update address

* Fix lint

* Transfer over three sections from old policy

---------

Co-authored-by: Emma Triphora <emma@modrinth.com>
2023-03-08 15:22:15 -07:00
Adrian O.V
c8a30e793a
Update ProjectCard.vue (#16) 2023-03-08 12:20:44 -07:00
Adrian O.V
2264281e4d
Project card (#15)
* initial impl

* merge from main

* No more crashy

* Almost there

* fix import

* fix more imports

* Code cleanup, Fixed components, Added Tooltip

* Added Env ind and Category pages

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-03-07 14:59:21 -07:00
Adrian O.V
ce38d4ff6b
Slider & Text Input (#12)
* WIP Slider

* Text Input component

* Finalized

* Finishing touches

* remove styles

* Fix sizes and colors

* Fix text input being too restrictive

* Fix enter being ignored

* Fixed duplicate export
2023-03-06 15:26:10 -07:00
triphora
59d7bce518
Actually fix pagination (#557) 2023-03-04 08:53:26 -07:00
Magnus Jensen
3c1e3cd38e
Fix version name can be empty string (#537) 2023-03-03 18:20:04 -05:00
triphora
a2eb0bf9fe
Add license name to license_text response (#555) 2023-03-03 18:09:27 -05:00
Geometrically
74773ade62
Update logo documentation (#14)
* Update logo documentation

* remove redunant class

* fix style on safari

* Fix favicon
2023-03-02 16:29:00 -07:00
Geometrically
3faf777db1
Add vercel conf change package name (#13) 2023-03-02 13:41:34 -07:00
Adrian O.V
09e880a90d
Brand components (#11)
* Text + Animated logo

* Update text-logo.md

---------

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-03-02 13:02:50 -07:00
Orchid system (Emma)
5d48ecf86a
Project Perses (API v1 yeetenings): parts 4 and 5 (#554)
* Project Perses (API v1 yeetenings): parts 4 and 5

Resolves MOD-219
Resolves MOD-220

* Note to Emma: Please test your stuff
2023-03-02 10:50:46 -07:00
Geometrically
d5785e87e8
Avatar, Badge, Checkbox, Chips, Pagination components (#10) 2023-03-01 17:31:48 -07:00
Prospector
d4a43bf051
Fix oled mode table alt color (#1018) 2023-02-26 20:46:16 -05:00
Geometrically
00d09aa01e
Housekeeping + Fix DB perf issues (#542)
* Housekeeping + fix db perf issues

* run prep
2023-02-22 16:11:14 -07:00
triphora
9afdc55416
Add project color to embed accent color (#522)
Closes #521

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-02-21 17:44:18 -07:00
Prospector
76c0432f96
Merge pull request #9 from modrinth/make-a-lib
Make current code library + add docs
2023-02-18 23:44:22 -08:00
Jai A
4434796aab
Make current code library + add docs 2023-02-18 11:43:12 -07:00
Prospector
0faa24d5d3
Start omorphia 2 (#8) 2023-02-16 15:02:39 -07:00
Geometrically
2c942c8809
Fix limit ordering (#543) 2023-02-16 14:24:57 -07:00
Geometrically
c15acc4ce3
Add API V1 flickers (#541)
Co-authored-by: triphora <emmaffle@modrinth.com>
2023-02-15 17:05:28 -05:00
Geometrically
b056610eaa
Version slugs (#533)
* Version slugs

* Get rid of new field, finish it up
2023-02-15 13:38:37 -07:00
Magnus Jensen
8eb9fb1834
fix slug colliding error not showing when editing project (#534)
* fix slug colliding error not showing when editing project

* format

* re-introduce old code

* run sqlx prepare

---------

Co-authored-by: MagnusHJensen <magnus.holm.jensen@lego.dk>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-02-15 10:41:00 -07:00
Magnus Jensen
7ec518b41c
update index to use approval date if set (#540)
Co-authored-by: MagnusHJensen <magnus.holm.jensen@lego.dk>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-02-15 10:20:34 -07:00
Magnus Jensen
dc15914a85
chore(validate): update error description to space actual error (#538)
Co-authored-by: MagnusHJensen <magnus.holm.jensen@lego.dk>
2023-02-15 09:40:32 -07:00
Geometrically
6c3b87c9b9
Update ads + careers (#994)
* Update ads + careers

* fix prettier errors
2023-02-14 20:22:13 -07:00
triphora
2fb31f5944
Make mod message card background red to stand out more (#987) 2023-02-08 16:41:14 -07:00
Geometrically
8be42e78de
Update IP headers to support lowercase (#979) 2023-02-02 11:15:37 -07:00
Geometrically
6d242ee6c3
Fix analytics on vercel (#976) 2023-02-01 14:31:40 -07:00
Geometrically
6c910d2b5f
Sync analytics w/ api changes (#975) 2023-02-01 11:34:20 -07:00
Geometrically
3b22f59988
Fix ariadne req URL (#531) 2023-02-01 11:17:46 -07:00
Geometrically
afdab0300e
Update Analytics req + Fix versions list (#529)
* Update Analytics req + Fix versions list

* Fix sentry support

* Fix lint
2023-02-01 10:08:02 -07:00
Prospector
0caa56e618
Recalculate changelog deduplication when the filters change (#954) 2023-01-30 17:28:16 -07:00
Prospector
e5dc843d6a
Fix version pages by non-members being broken (#952) 2023-01-29 12:16:51 -05:00
Geometrically
26533c47e7
Add loaders + game versions param to mods (#528) 2023-01-27 19:24:40 -07:00
triphora
3efd1ee325
Fix #934 (#943) 2023-01-23 12:55:31 -07:00
triphora
56a1367322
Fix floating clear message on every project (#938) 2023-01-21 16:25:54 -05:00
triphora
544aba53dc
Miscellaneous fixes relating to statuses, et al (#920) 2023-01-21 16:02:11 -05:00
Sasha Sorokin
d68bbbf9a1
GitHub Actions: Use Node 16 to build Knossos (#913) 2023-01-18 19:39:53 -05:00
triphora
df3aeed291
Add scary warning for people still using API v1 (#525)
* Add scary warning for people still using API v1

* change [] brackets to headers
2023-01-17 15:01:26 -07:00
Geometrically
489737274a
Careers button (#921)
* Careers button

* Add link target
2023-01-17 10:11:29 -07:00
Geometrically
867ba7b68f
Fix various issues (#524)
* Fix various issues

* Fix multipart body hang

* drop req if error

* Make multipart errors more helpful
2023-01-16 16:45:19 -07:00
triphora
4c1fabffc3
Add nag for adding external resources (#918) 2023-01-14 13:23:10 -05:00
Geometrically
6a52d03329
Landing + other fixes (#909) 2023-01-13 12:01:20 -07:00
Prospector
17f00e6fea
Fix moderation queue, moderation status card when approved, and invalid datapack packages (#907)
* Fool behavior

* Add leading underscore to packaged datapack package if it starts with a number

* Hide mod status card for all approved statuses without mod messages

* Fix project id sanitization
2023-01-11 16:21:39 -07:00
Prospector
c67bc33c23
Fix custom license erroring with spaces (#905) 2023-01-11 13:10:59 -08:00
Prospector
bb80dcb4e4
Improve moderation messages and add moderation UI on projects. (#889) 2023-01-11 16:05:11 -05:00
Prospector
8fff3e5389
Add release channel filter to versions pages (#902)
* Add release channel filter to versions pages

* Allow filtering by multiple release channels
2023-01-11 13:59:29 -07:00
Prospector
233109d23e
Fix a couple of misc. page errors I noticed (#900)
* Fix for a couple of random bugs I noticed

* Add project status update to NOTIFICATION_TYPES

* Update wording

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
2023-01-11 13:57:06 -07:00
Prospector
a6aa78e3b6
Balance search pages to have view mode-aware max search results (#858)
* Balance search pages to have view mode-aware max search results

* Remove console.log

* Implement #829 to prevent invalid pages when changing the max results

* dammit
2023-01-11 13:49:44 -07:00
Prospector
7536322e53
Remove numbers at the start of slugs when converting to mod ID (#897)
* Remove numbers at the start of slugs when converting to mod ID

* If mod id is all digits, replace with project ID
2023-01-11 13:49:13 -07:00
Prospector
b690e3d149
Add featured icon to featured versions on versions page Closes #769 (#890) 2023-01-11 11:13:24 -07:00
Prospector
aabf270144
Remove default description and license and add checklist nag for license (#892)
* Remove default description, remove default license, and add a checklist nag for setting a license

* Make Unknown license display nicer in License settings

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-01-11 11:06:29 -07:00
Prospector
61a4f15e53
Prevent user from adding the same dependency multiple times (#859) 2023-01-11 11:03:40 -07:00
Prospector
de212322e2
Fix project settings not allowing you to remove links & trim certain project fields (#895)
* Fix project settings not allowing you to remove links

* Trim project fields

Closes #850
2023-01-11 11:00:42 -07:00
Prospector
cda18fb957
Add support for loading Implementation-Version from MANIFEST.MF for Forge mods (#894)
* Add support for loading Implementation-Version from MANIFEST.MF for Forge mods

* Remove debug lines

* Replace just the key instead of the whole version number
2023-01-11 10:55:55 -07:00
Prospector
011ba5056a
Overwrite default notification colors with !important (#898) 2023-01-11 10:54:41 -07:00
Prospector
44c871270b
Remove dimming of featured gallery images in project cards (#899) 2023-01-11 10:54:01 -07:00
Prospector
9f6b0e1018
Add latest version URLs (Closes #830) (#901) 2023-01-11 10:52:43 -07:00
Prospector
2d9293732b
Make landing page project cards use actual links instead of JS (#896)
* Make landing page project cards use actual links instead of JS

* Make landing page links animate like other clickable elements
2023-01-11 10:32:32 -07:00
jade
d4a131ad31
fix issue #855 (#856) 2023-01-09 18:07:53 -07:00
triphora
fa2316fb28
Fix various gallery issues reported on Discord (#854)
* Fix various gallery issues reported on Discord

Fixes #849

* fix stupidity on my part
2023-01-09 13:04:44 -07:00
triphora
6e5d1fb613
Account for new statuses (#853)
* Account for new statuses

More work is going to be needed for scheduling projects, but this is a stopgap measure to fix #852

* Fix lint

* Why, Prettier, why?
2023-01-09 13:03:57 -07:00
Geometrically
e45f0f0299
Fix text wrap (#841)
* Fix overflow search

* Make animation infinite
2023-01-07 23:26:39 -07:00
Prospector
62125d0284 Sort featured versions and remove heart fill when not signed in 2023-01-07 19:41:12 -08:00
Geometrically
d5ffede5ea
Add changes from prod to master (#837)
* redo 6346b5b

* Fix incorrect caps

* Fix reduced motion
2023-01-07 19:40:34 -07:00
triphora
1679a3f844
Fix file uploading for admins (#519) 2023-01-07 19:35:40 -07:00
Prospector
212bb33142
Projects overhaul for creators (#827)
* Projects page

* Continue work on bulk edit

* editLinks is now bulkEdit

* Bulk Edit Links completed

* Edit URL clear fields.

* Create project button + other bulk buttons.

* Pagination (w/o reactivity.)

* Apply suggestions from code review

Co-authored-by: triphora <emmaffle@modrinth.com>

* Sorting fixed, broken page count though?

* Only make editable projects selectable + remove delete button

* Shorthand

* Start using computed

* Fix pagination

* Add Pagination Switching

* Final Style Changes

* Cleanup

* Action Affects dropdown

* Switch to checkbox swizzle

* Projects dashboard, the most hellish thing I have ever worked on

* Rewrite project dashboard without tables

* why's that there

* Fix mod message icon

* New project settings page

* Remove extra slash

* Bulk project route and improve styling of links UI

* Remove beta label from Monetization

* Relevant page links in project settings

* Don't vertically center header rows

* Improve error messages, add remove project icon button, add saving feedback, begin project checklist, fix license settings

* Remove contextual link from project settings, disable WIP checklist

* Fix bulk edit

* Project checklist, add featured gallery image to project pages, fix random bugs

* Remove old check

* Remove icon border on grid mode and hide project status card when unnecessary

* Fix build

* Make checklist progress smaller and add collapsing

* Remove uneven gap on nav cards

* Improve wrapping of checklist

* Replace project settings header link with status

* Fix bugs + status stuff

* Fix warns + compile error

* Update wording

* Hide environment type nag for project types without it

* Make member dropdown match

Co-authored-by: mineblock11 <93472213+mineblock11@users.noreply.github.com>
Co-authored-by: triphora <emmaffle@modrinth.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2023-01-07 18:37:47 -07:00
Geometrically
1d8c80c062
New landing page (#834)
* New landing page

* Edit gradient

* User + Creator sections, some css cleanup

* Most stuff

* Finish page (mostly)

* Compress images

* Moar compression

* Fix mobile zoom + adjust wording

* add utm stuff to subscribe link

* Fix border overlay

* Remove redundant CSS class

* Fix most issues (?)

* Add notifs showcase

* Spacing changes, update copy, fix lag

* add and

* Update spacing

* save work

* Update mobile support

* Update discovery copy

* Light theme

* Adjust logo banner on various screen sizes

* Add launcher links

* Oxipng

* Switch to cdn links for images

* Add animation

* Fix animation

* fix tags

Co-authored-by: Emma Cypress Pointer-Null <emmaffle@modrinth.com>
2023-01-07 18:04:43 -07:00
Robert
e8e11257d2
Make summaries and bios wrap (#833) 2023-01-06 04:49:57 -08:00
triphora
1611049623
Fix query params giving plain text error (#509) 2023-01-05 17:14:39 -05:00
Geometrically
7d195367a8
Bulk Editing + Random Projects Route (#517)
* Bulk Editing + Random Projects Route

* Run fmt + clippy + prepare

* Remove license_url
2023-01-04 19:23:47 -07:00
Geometrically
b4236b9a95
Fix duplicate version nums + etc (#831)
* Fix duplicate version nums + etc

* Update link info

* Remove useless loading conditions

* Update pages/legal/privacy.vue

Co-authored-by: triphora <emmaffle@modrinth.com>

* Update plugins/xss.js

Co-authored-by: triphora <emmaffle@modrinth.com>

Co-authored-by: triphora <emmaffle@modrinth.com>
2023-01-03 19:06:30 -07:00
Geometrically
d2b1404907
New gallery creation/editing/deleting UI (#826)
* New gallery creation/editing/deleting UI

* Finish new gallery UI

* port dp changes here

* Add ordering fix optional fields

* Fix dropping

* Fix fmt

* Fix version creation broken, edit issues, project type setting

* Update gallery in search
2022-12-31 23:47:47 -07:00
Geometrically
88a4f25689
Required slugs (#516) 2022-12-30 20:03:13 -07:00
BasiqueEvangelist
161dee89ec
Add notification for project status updates (#511)
* Add notification for project status updates

* aaaaaa

* cargo sqlx prepare

* use friendly name of statuses

* Update src/models/projects.rs

Co-authored-by: triphora <emma@modrinth.com>

* only send notifications to accepted users

* only send notifications for people not on the team

* cargo sqlx prepare

* !=

* fully address pr comments

Co-authored-by: triphora <emma@modrinth.com>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-12-30 14:40:00 -07:00
Geometrically
34af33607b
Update file restrictions, download counting, project colors, etc (#515)
* Update file restrictions, download counting, project colors, etc

* Run fmt + clippy + prepare
2022-12-30 13:56:41 -07:00
Geometrically
5bb188a822
Project Colors (#512)
* Inital tests

* Finish project colors

* Run fmt + clippy + prepare

* Fix dp+rp fmting
2022-12-29 17:20:50 -07:00
triphora
f11aab6c19
SPDX: Fix niche issue with checkbox (#825) 2022-12-29 16:55:00 -07:00
Geometrically
1f133dbcd0
Datapack support (#815)
* Shader support PR

* Make search page work

* Fix env showing

* Make moderation look reasonable

* Fix search for shaders

* Datapack support

* Make file types work + datapack inferring

* Add editing to file types

* Finish datapack file generation

* Fix bugs, make forge support work

* Fix inconsistent data pack label

* Final fixes
2022-12-29 09:59:41 -07:00
Geometrically
60bb6f105d
Nullable file types (#514) 2022-12-29 09:32:46 -07:00
Geometrically
df4680ee09
Fix data pack webhook (#513) 2022-12-29 09:13:39 -07:00
triphora
879576b613
Add animated logo in header and update copying info (#819) 2022-12-27 19:11:03 -05:00
Geometrically
6aaab09601
Fix file type setting (#510)
Co-authored-by: triphora <emmaffle@modrinth.com>
2022-12-26 13:21:37 -07:00
Geometrically
5da42575fd
Add validator for file types + datapacks (#507)
* Add validator for file types + datapacks

* Make it compile
2022-12-23 19:49:47 -07:00
triphora
7a105a1538
Fix issues geo discovered (#818) 2022-12-23 17:30:32 -07:00
Geometrically
fe256d6a62
File types (#506)
* File types

* Run prepare + fmt

* Switch to struct

* Update docker version
2022-12-23 16:36:53 -07:00
triphora
5f175141e1
Improve error messages for report with invalid input (#505) 2022-12-23 15:24:45 -05:00
triphora
983e2df065
Miscellaneous improvements and removals (#502) 2022-12-23 15:19:15 -05:00
frikinjay
7408d7bc95
Change 'changelog-item' display to block from flex. (#812) 2022-12-23 14:36:51 -05:00
triphora
1d9820a7c9
Force authors to use the project status sidebar (#810) 2022-12-23 14:36:14 -05:00
beansquared
c536f7d342
Fix formatting of money values (#784)
Fixes https://github.com/modrinth/knossos/issues/736
2022-12-23 14:35:55 -05:00
Arbee
6d9dfb5deb
make long Projectnames wrap with a '-' (#771)
fixes https://github.com/modrinth/knossos/issues/770
2022-12-23 14:35:41 -05:00
Max Henkel
a3d469a101
Persistent version filters (#700)
* Add version filter query string

* Add query parameter for showSnapshots

* Empty commit

* Use input event instead of watch

* Remove validateFilters method

* Shorten query params

* Inline getAsQuery

* Use fetch instead of mounted

* Await updateQuery

* Remove support for query parameters as array

* Await updateQuery
2022-12-23 12:35:04 -07:00
triphora
16d5a70c08
Add ordering to categories, gallery images, and team members (#501) 2022-12-23 14:34:04 -05:00
Jai A
b7e2d7fb8e
Update copyright 2022-12-22 20:14:26 -07:00
Jai A
fb5f7a336d
bump rust version in container (2) 2022-12-22 20:12:05 -07:00
Jai A
78dc5f4bf4
bump rust version in container 2022-12-22 20:11:22 -07:00
Jai A
45dbf5393f
Bump versions + switch AWS/S3 library 2022-12-22 19:01:41 -07:00
Geometrically
97ecb0a5d6
Shaderpack support (#798)
* Shader support PR

* Make search page work

* Fix env showing

* Make moderation look reasonable

* Fix search for shaders
2022-12-20 13:47:41 -07:00
Geometrically
6f58e9e7bb
Redo version page (#777)
* Redo version page

* More work on editing page

* Make saving work

* Finish version editing

* Version creation (base)

* Add creation buttons

* Add file uploader to versions page

* Add version file parsing

* Finish PR

* Fix version page responsiveness and use more consistent card design

* Whoops that wasn't supposed to be there

* Fixes + allow whole page dragging

* Re-add lost merge data

* Remove debug line

* Move back to list btm

Co-authored-by: Prospector <prospectordev@gmail.com>
2022-12-20 11:15:31 -07:00
stairman06
0de19a09ad
Fix follow button being filled in when signed-out (#811) 2022-12-17 14:16:12 -05:00
Antikyth
17a56189dc
fix "open-source" link on homepage's whitespace (#807) 2022-12-14 19:39:19 -05:00
triphora
520f9801be
Corresponding frontend PR to modrinth/labrinth#449 (#763)
Co-authored-by: Prospector <prospectordev@gmail.com>
Fixes https://github.com/modrinth/knossos/issues/597
Fixes https://github.com/modrinth/knossos/issues/593
Fixes https://github.com/modrinth/knossos/issues/768
2022-12-14 19:36:28 -05:00
triphora
03a6b0311f
Fix #673 (#687) 2022-12-14 19:36:04 -05:00
Geometrically
9fed1cde25
Fix webhook again (#499) 2022-12-09 12:29:16 -07:00
Geometrically
5c7b175e90
Webhook update (#498)
* Update webhook

* Run clippy
2022-12-08 19:44:46 -07:00
Geometrically
30b29de8ce
Fix statuses again (#497)
* Fix statuses again

* Make it compile
2022-12-08 17:25:24 -07:00
Geometrically
a5f9331023
Fix hashes not showing (#496)
* Fix hashes not showing

* Run prepare + fmt
2022-12-08 15:42:59 -07:00
Geometrically
d8b9d8431e
Shader fixes (#495)
* Shader fixes

* Add core shaders validator

* Update validator again

* Rename shaders

* Fix build
2022-12-08 15:13:01 -07:00
Geometrically
91a2ce2b3f
Switch out references of 'TO_JSONB' (#494) 2022-12-07 23:30:41 -07:00
Geometrically
4da1871567
Public Webhook Fixes (#493)
* Public discord webhook

* Switch to jsonb for most queries + make gallery featured first

* Run fmt + clippy + prepare
2022-12-07 09:56:53 -07:00
Geometrically
e809f77461
Public discord webhook (#492) 2022-12-06 19:51:03 -07:00
jade
1a922d41df
Fix modal URL field autofill allowing invalid characters (#790)
Closes #785
2022-12-06 18:13:18 -05:00
Geometrically
050f8f3c81
Fix lint errors (#794) 2022-12-06 18:12:38 -05:00
HyperSoop
5fc32c7b85
Fix a small wording mistake (#791) 2022-12-06 15:57:33 -07:00
Geometrically
e96d23cc3f
Initial work on new status sys + scheduling releases (#489)
* Initial work on new status sys + scheduling releases

* Finish project statuses + begin work on version statuses

* Finish version statuses

* Regenerate prepare

* Run fmt + clippy
2022-12-06 09:14:52 -07:00
Prospector
964fa69fb4
Add gallery view to search pages (#773) 2022-12-03 10:29:49 -08:00
Geometrically
c34e2ab3e1
Fix team member splits being set to 0 by default (#490) 2022-12-02 10:32:17 -07:00
Trash Panda
f1a33db800
Fix header spacing (#787) 2022-12-01 17:35:37 -05:00
triphora
820519b4f7
Move to SPDX licenses (#449)
* Move to SPDX licenses

Found a way to do this without breaking API compat, so here it is, instead of waiting for v3

Resolves MOD-129
Resolves #396

* License URL updates

* what was I thinking

* Do a thing

* Add open source filter

* Remove dead imports

* Borrow

* Update 20220910132835_spdx-licenses.sql

* Add license text route

* Update migration

* Address comments
2022-11-29 21:53:24 -07:00
Geometrically
2e3b56c52f
Fix ads not loading (#781) 2022-11-28 13:11:27 -07:00
Geometrically
8f137cf49d
Security notice (#767)
Co-authored-by: triphora <emmaffle@modrinth.com>
2022-11-26 21:16:34 -05:00
triphora
34688852a4
Remove redundant files (#488) 2022-11-26 19:11:56 -07:00
Sasha Sorokin
de170ebdd2
Fix notifications fetching (#776) 2022-11-26 17:40:15 -05:00
triphora
e5ae1db49c
Prevent people from selecting unknown environment (#775) 2022-11-26 13:35:13 -05:00
Geometrically
151f28081a
[skip ci] Add security notice (#486)
* [skip ci] Add security notice

* Fix grammar
2022-11-24 22:13:31 -07:00
Sisby
63035196af
Re-word "my profile" to "your profile"/"this profile" (#766) 2022-11-22 12:51:06 -05:00
Geometrically
213a64b1ff
FlameAnvil fixes (#484) 2022-11-21 18:59:21 -07:00
Geometrically
e08d803a33
Add project redir + fix version 404 (#762) 2022-11-20 21:18:30 -07:00
Geometrically
df1a939798
Add adrinth link (#761)
* Add adrinth link

* Use article instead of aside to improve SEO

* Fix bad change

* Fix #737
2022-11-20 20:47:32 -07:00
Geometrically
f259d81249
FlameAnvil Project Sync (#481)
* FlameAnvil Project Sync

* Perm fixes

* Fix compile

* Fix clippy + run prepare
2022-11-20 19:50:14 -07:00
Geometrically
848f0db3d1
Fix user errors when logged out (#759) 2022-11-20 19:23:50 -07:00
Geometrically
9e2d47eab5
Fix user page err (#758) 2022-11-20 18:32:51 -07:00
triphora
589761bfd9
Statistics route (#453)
* Statistics route

Staging: https://i.imgur.com/YWx9uPA.png

* Remove users

* Address comment
2022-11-20 15:35:22 -07:00
Prospector
88fa103acb
Improve badges and work on a more unified color scheme for random colors (#756) 2022-11-20 13:57:44 -08:00
Prospector
9849bc055c
Use safe insets on bottom of screen (#755) 2022-11-20 12:57:53 -08:00
Prospector
1cf75a7169
Improve accessibility on contrast themes (#751) 2022-11-20 12:50:10 -08:00
triphora
e297dff0d4
Massively improved moderator message visibility (#754)
Co-authored-by: Prospector <prospectordev@gmail.com>
2022-11-20 15:49:29 -05:00
triphora
aafd7ed21f
Add feature flag for opening external links in a new tab (#749)
Closes https://github.com/modrinth/knossos/issues/438
2022-11-20 12:43:01 -08:00
triphora
ab2c31aa8a
Improve user deletion workflow (#686) 2022-11-20 00:02:58 -05:00
triphora
18fde86a20
Fix #464 (#467)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-11-19 17:54:56 -07:00
Geometrically
47111819e7
Fix heart not showing up (#752) 2022-11-18 09:22:07 -07:00
triphora
ddd3f7c196
Fix text box resizing (#750)
Closes #416
Closes #475
Closes #525
2022-11-17 22:06:07 -05:00
triphora
1738f92ce2
Make download/follower displays consistent (#746)
Closes #602
2022-11-17 22:05:52 -05:00
Ennui Langeweile
074695b50c
Remove bottom padding on <details>' last element (#748)
* Remove bottom padding on <details>' last element

* Fix linting screwup, refine the fix

* Fix linting for real
2022-11-17 22:03:02 -05:00
Tom Martin
ba28bc94d3
Fix all default clippy warnings (#480)
All trivial, fixes were for:
 - #[deny(clippy::if_same_then_else)]
 - #[warn(clippy::explicit_auto_deref)]
 - #[warn(clippy::bool_assert_comparison)]

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-11-17 10:09:53 -07:00
Geometrically
da19a07943
Payouts fees changes (#478)
* Payouts fees changes

* Update src/queue/payouts.rs

Co-authored-by: triphora <emmaffle@modrinth.com>

Co-authored-by: triphora <emmaffle@modrinth.com>
2022-11-16 13:46:36 -07:00
Sasha Sorokin
95ac136720
Bump Vue to 2.7 (#727)
List of changes in Vue 2.7:
https://blog.vuejs.org/posts/vue-2-7-naruto.html
2022-11-15 12:43:01 -07:00
Prospector
ecced27853
CMP Update Hotfixes (#729)
* Remove WIP for getting paid

* Fix beta badge border

* Update money formatting

* Add required "not affiliated with Mojang" notice

* Replace search video on home page
2022-11-15 12:41:38 -07:00
Sasha Sorokin
e86aa6b541
Fix project layout on right not working correctly (#730)
Fixes #726
2022-11-15 12:41:28 -07:00
Geometrically
91f74b44a0
New ads (same size + layout) (#735) 2022-11-15 08:22:46 -07:00
Geometrically
35d8e28b8c
Update privacy policy (#724) 2022-11-12 19:16:49 -07:00
triphora
26a6af4ab2
Fix 404 error when creating a resource pack (#723)
Redo of #681
2022-11-12 18:11:17 -07:00
Geometrically
20785926e2
Rewrite Parity (#647)
* Rewrite Parity

* Update SEO, fix modals, add dashes to changelog

* Edit create version title

* Cache tags, SEO for search/partial noscript support, notifications fix

* Deploy?

* Fix vercel config

* Fix it again

* Finish user editing

* Remove broken docker build

* Switch reports to modals

* Update project card

* Navbar line animation in most places

* Add chips

* Move to navlink query params

* remove autogen file

* Add copy code

* Fix webkit text box outlines, port report modal

* Update error page

* Switch to avatar component

* Make keyboard nav work

* Fix team member spacing

* improve project ID display (#676)

* Bug fixes

* Update OG site title

* More fixes

* Design tweaks

* Fix card wrapping on mobile

* Darken light theme color a little

* Sidebar navigation for settings, notifications, and moderation

* Change follow icon from a heart to a bell

* Revert "Change follow icon from a heart to a bell"

This reverts commit e30b46ec5d93c57df847be88eba123c7419dd03b.

* Change follows icon in settings

* AaaaUUUUUUUGghghhhhhhhh

* Project sidebar transparent button animations

* Update file input button styling and change icon remove button text

* Fix environments filter condition being inverted

* Remove -> revert

* Improve readability of warning banners on light mode

* Fix mobile menu button colors

* Clean up notifications page more

* Creator dashboard and monetization work

* Add processing fees declarations and acknowledgement box

* Beta badges

* Downgrade Nuxt Vercel Builder

* Update the style of button groups to be more consistent

* More button consistency

* Remove desktop navbar on mobile

* Update home page progress indicators

* Fix page jumping (Thanks @stairman06)

* Make checkbox checked style consistent with other selection indicators

* More home page updates

* Properly reset NavRows

* Move filters menu on mobile

* Stylized checkbox updated to match active styling

* Filters icon

* Respect prefers-reduced-motion

* Add most backend payouts changes (untested)

* Finish tested payouts code

* Allow monetization unenrolling

* No longer use brand color for active highlights on standard nav elements

* More consistent button group on project page

* Rounded tables

* Fix some things (#716)

* Team member fixes + re-add changelog/versions stuff

* Remove dummy data

* The great CSS refactor

* Remove commented out css

* Give modals the legacy label styles and update profile edit labels

* Fix active chip size

* Remove shadow from selected chip

* Require email set for CMP

* Update styles of notifications to universal-card

* Equivalent exchange, trading some jank for some less bad jank

* Fix all gallery buttons being missing when there is only 1 image

* Update project creation modal

* Make beta badge less bright

* Beta badge heading styling

* Update withdraw processing fees info

* Remove redundant label

* be

* Fix inverted logic

* 2% is 0.02

* Add toggle to turn off alpha modpacks banner

* Why warning button?

* Add more footer links (#719)

* Add more footer links

* Move twitter

* Make items on user pages less comically large and move ad above navigation

* Bump text down a little on home page

* Update favicon colors

* Remove task list package and change default description to use bullet points

* I don't remember why I made this important but let's not

* Ah, yes

* this doesn't actually need to be important

* Align items in input groups

* Adjust some spacings and clear creation modal on opening

* Versions now clickable

* Add link to edit page to default description

* Improve monetization information text

* Make wrapped text inputs not shrink

* Make chips work better

* smol margin on clear mod message button

* Allow non-authenticated users to access settings

* Remove settings anchors

* Fix versions page button style on firefox

* Add advanced rendering toggle

* Update slug input and icon card in project edit page

* Legal sidebar

* h1 at beginning of description no longer has top margin

* Use universal card for legal pages

* Update email addresses on legal pages

* Update various page titles and descriptions for consistency

* Various fixes and consolidation to API URL retrieval

Prevents a bug where it's possible to generate the tags under one API, switch the API, and still have tags leftover from the old API

Also finally fixes staging URL being jank

* Make the theme button show regardless of login state

Also remove the change theme from the user dropdown because it's very redundant with the several other ways of changing theme

* Make mobile profile dropdown ordering consistent with desktop

* Change the base url back

* Revert "Change the base url back"

This reverts commit c1da89fddb83776b39f626eab33c8dc67f8a75e4.

* constantize

* Tiny fixes (#722)

* Box-shadow chip outlines

* Show settings when signed out

* mods -> projects

* space

* Beta badge border

* Slug input overflow fix, scrollable

* 🙈 it will all be okay 🙊 this is just temporary 🙉 😭😭 forgive me

* Fix minor bugs

* fix moderation  page

* More fixes

* Temp fix for download button

* BEGONE TABLES

* Fix download button

Co-authored-by: Ryan Cao <70191398+ryanccn@users.noreply.github.com>
Co-authored-by: Prospector <prospectordev@gmail.com>
Co-authored-by: stairman06 <36215135+stairman06@users.noreply.github.com>
Co-authored-by: triphora <emmaffle@modrinth.com>
2022-11-12 17:57:40 -07:00
Geometrically
ecc500fc91
Fix payouts bug with decimals (#477) 2022-11-11 10:04:46 -07:00
Geometrically
c22ac1e60a
Support unenrolling from payouts (#476) 2022-11-09 16:01:10 -07:00
Geometrically
55d9aa2a4c
Allow owner payout split to be edited (#475) 2022-11-08 19:15:30 -07:00
Geometrically
1d391e68e5
Better ser/deser for payouts vals (#474) 2022-11-08 14:14:07 -07:00
Geometrically
0429c44d18
Fix payouts conditions (#473)
* Fix payouts conditions

* Make it build
2022-11-07 20:17:44 -07:00
Geometrically
2c1bcaafc1
Use auto payments with paypal (#472)
* Use auto payments with paypal

* Remove sandbox key
2022-11-07 15:38:25 -07:00
Geometrically
35891c74cd
Final fixes payouts (#471)
* Final fixes payouts

* add minimum payout
2022-11-01 09:53:43 -07:00
Geometrically
2ca6e67b37
Payouts finish (#470)
* Almost done

* More work on midas

* Finish payouts backend

* Update Cargo.lock

* Run fmt + prepare
2022-10-30 23:34:56 -07:00
Geometrically
66d0ee8156
Switch back to EthicalAds (#701)
* Switch back to EthicalAds

* Update privacy policy

* Cleanup a little
2022-10-26 10:21:03 -07:00
Geometrically
6e72be54cb
R2 impl (#466)
* Add Cloudflare R2 impl

* Bump actix version

* Fix sec issues
2022-10-22 21:23:31 -07:00
Geometrically
6138b060d7
Fix typo in messages (#697) 2022-10-21 08:09:46 -07:00
Andre_601
308d661d7e
Add Prism Launcher (#696) 2022-10-20 16:48:40 -04:00
GreenTriangle
4e106c2355
fix the "pack creators" I added by accident (#694) 2022-10-17 18:34:37 -04:00
GreenTriangle
456160fa29
remove link to PolyMC (#693) 2022-10-17 17:41:44 -04:00
Geometrically
07edb998e4
Fix integration with backblaze API (#461)
* Fix integration with backblaze API

* Remove keys (already reset, dw)
2022-10-09 19:10:06 -07:00
HERO
b553ac58d3
Fixed favicon not loading in some cases (#679) 2022-10-06 11:35:11 -04:00
evan
2c26f43035
Fix special characters in gallery title/description (#683) 2022-10-06 11:30:10 -04:00
Geometrically
3e52f804a7
More reasonable length restrictions (#458) 2022-09-26 18:09:50 -07:00
Sasha Sorokin
1b49844012
Bump @nuxtjs/color-mode to v2.1.1 (#678) 2022-09-26 19:38:33 -04:00
Geometrically
75b7583832
Increase dependency limit (#454) 2022-09-21 21:27:02 -07:00
wafflecoffee
75d45e8907
Quick fix #668 (#669) 2022-09-17 17:52:35 -04:00
wafflecoffee
d754eb74f7
Ignore any dependencies set manually for modpacks (#433)
* Ignore any dependencies set manually for modpacks

* actually build
2022-09-17 13:17:32 -07:00
wafflecoffee
b78bd5d6fd
Prevent modpacks from manually adding dependencies (#575) 2022-09-17 15:26:16 -04:00
Sasha Sorokin
5d53344b75
More reliably detect ad load faults (#661)
Detecting that ad has failed to load with timeout is not accurate and
won't work on slow connections. This commit fixes that by changing
detection to use 'onerror' event on <script> tag instead, which will be
triggered if ad script fails to load due to blocking.
2022-09-12 08:14:32 -07:00
Geometrically
7cd58bd534
Fix stacked ads (#660) 2022-09-11 19:11:45 -07:00
Andre_601
9826bf67c2
Minor typo correction (#657) 2022-09-11 08:46:10 -04:00
Geometrically
350fe124d0
Update privacy policy (#656) 2022-09-09 09:31:36 -07:00
Geometrically
20aac83e5e
Handle double ads shown (#655) 2022-09-08 20:50:52 -07:00
Geometrically
9d1c822ba1
Fix adblock message again (#654) 2022-09-08 20:42:08 -07:00
Geometrically
b8d46e2863
Fix adblock message (#653) 2022-09-08 20:25:39 -07:00
Geometrically
cd2f2d42a3
Try CarbonAds (#629)
* Try CarbonAds

* Move location

* add border, fix adblock msg

* Fix advertisement label look (#636)

Ever since changes for Carbon ads were introduced, the label did not
match the appearance of the card, leaving the bottom right corner of the
card not round. With more recent changes, where border was added, that
became even more apparent - now the border covers the label, which does
not look good; this effect only becomes worse when zooming.

This commit attempts to mitigate these issues with the following:

- To fix the border issues, label's absolute position is now calculated
  from the card wrapper, where the border is applied. This allows label
  to cover the border for seamless look. That is done by changing
  position of the card wrapper to relative instead of doing so for the
  ad contents container.

- The label now tries to take over the border, to do so the bottom and
  right relative positions have been changed to -3px.

- To account for the position change, the label is now a bit more
  padded, to make text content of it to look more or less as before,
  otherwise it would shift a bit. Not sure if the padding changes are
  accurate, but it does look close to how it looked before.

* Fix message again

* Update user ads position

* Remove privacy toggles (placebo and didn't do anything)

* Remove other code

* Link docs page

Co-authored-by: Sasha Sorokin <10401817+Brawaru@users.noreply.github.com>
2022-09-08 17:33:13 -07:00
wafflecoffee
60252267d5
Add slug to searchable attributes and add project_id to facets (#447)
Fixes #358

Adding project_id to the facets would allow the inclusion or exclusion of individual projects from search. For example, this would allow people to be able to exclude projects which they've already followed or are not interested in. My personal vision for this is to merge the [followed projects page](https://modrinth.com/settings/follows) into search itself.
2022-09-05 21:39:50 -07:00
Geometrically
4bfab89292
Fix misplaced buttons on versions page (#646) 2022-09-04 16:54:06 -07:00
Geometrically
1d3e8aedcd
Fix required indicators showing on view page (#645) 2022-09-04 15:47:18 -07:00
Geometrically
b25af641e2
Fix gallery date display (#445)
* Fix gallery date display

* Fix approved date not setting
2022-09-04 13:37:11 -07:00
kevoh1516
75c41644c6
Enhance version creation (#535) (#616) 2022-09-04 10:56:32 -07:00
Sasha Sorokin
3e221f3b6a
Minor fixes for "See all" link design (#627)
- Now styled as a proper link.
- Change :focus to :focus-visible to avoid link getting stuck in that
  'hovered' state because focus does not actually change (it deffo
  should though, something to fix in the future - should be one
  fragment change).
- Removed all padding and transition.
2022-09-03 22:34:19 -07:00
Geometrically
e7c3f8bf47
Initial work on payouts (badges, perms, splits) (#440)
* Initial work on payouts (badges, perms, splits)

* Fix clippy error, bitflag consistency
2022-09-02 12:38:58 -07:00
wafflecoffee
4c1dca73c4
Replace remaining icon.ext image paths with hash (#435)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-09-02 12:19:39 -07:00
mooz
0bbb6b91fe
Add plugin.yml support for bungeecord & waterfall (#438) 2022-09-02 08:39:58 -07:00
wafflecoffee
ee93d9b495
Sort version files and mods on user profile (#432)
* ???

* Moardering fixes

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-08-28 21:54:42 -07:00
Geometrically
535abdc481
Fix mobile navbar (#634) 2022-08-27 16:20:20 -07:00
Geometrically
3684126250
???????? (#633) 2022-08-27 15:59:36 -07:00
Geometrically
bf8ac214a1
Attempt to fix multipart errors (#436) 2022-08-27 15:18:25 -07:00
Andre_601
d3fc34c824
Don't close dropdown when selecting loaders (#632) 2022-08-27 16:03:27 -04:00
Sasha Sorokin
8769b5d1b5
Improve design of "See all" link in feat. section (#625) 2022-08-24 13:30:57 -04:00
Ryan Cao
59bb132dd7
Add support for GitHub-styled color scheme dependent images (#617) 2022-08-23 22:38:22 -04:00
Igor Bedesqui
8a53fa0aab
Add "See all" link next to featured versions (#550) 2022-08-23 22:16:47 -04:00
jade
71f42e405d
Fixed description * wrap in project create page (#623) 2022-08-23 22:14:40 -04:00
Geometrically
64b89dd226
Fix search categories (#620)
* Fix search categories

* Invert condition
2022-08-22 15:29:03 -07:00
Geometrically
27d6b855b8
Fix loaders not showing (#622)
* Fix loaders not showing

* p

Co-authored-by: wafflecoffee <emmaffle@modrinth.com>
2022-08-22 15:25:42 -07:00
Geometrically
9c7b34d5e6
Apply additional categories fix to search indexing (#428)
* Apply additional categories fix to search indexing

* fix edit version validator
2022-08-20 22:34:00 -07:00
Geometrically
20c4f0dc10
Fix plugin URLs, display, redirects (#619)
* Fix plugin URLs, display, redirects

* Fix user profile + some redirects not working
2022-08-20 11:08:21 -07:00
Arbee
7c166d85e1
Fix inconsistent donation icons and add OpenCollective (#609)
resolved #608
* fixes Inconsistent donation icons and colours #608
replaces all donation png's with svg's from https://simpleicons.org
removes svg files with "-svg" at the end

* fixes the issues due to vscode formatting the code

* fixes Discord icon
fixes some formatting errors, caused by copy& from the previous commit with wrong formatting

* fixed else-if's
added Open Collective Icon
I couldn't find the icon for the Economy Category from Feather

* added unknown_donation.svg
replaced unknown donation icon
removed old unknown.svg icon

* renamed unkown donation icon for consistency

* somehow the cmmits before didn't add the new Icon
Fixed formatting issues (again)

* fixes formatting issues (I need to look into that)

* fixed else-if's that somehow got reverted

* Fix lint

* Strict equals

* Fix lint again
2022-08-18 10:34:27 -04:00
jade
093080894b
added support for the kbd tag in markdown (#611) 2022-08-18 09:51:34 -04:00
Geometrically
76c0fa2fe2
Remove database requirement (#427) 2022-08-17 22:06:28 -07:00
Geometrically
ac3a17b178
Fix plugin validator, fix version urls, clippy lints, additional categories (#421) 2022-08-16 17:42:04 -07:00
Geometrically
9a2243da9f
Fix devtools being enabled in prod (#601) 2022-08-14 22:18:13 -07:00
Geometrically
0f5aa9f8d9
Fix version sorting (#600) 2022-08-14 15:20:42 -07:00
Geometrically
673f7a82d1
New features (#592)
* New features

* Lots of bug fixes

* Fix respack creation

* Improve mobile nav with more project types

* Fix resolution sorting and remove icons

* Move cookie consent to top on small devices to get out of the way of navigation

* Move cookie consent + fix hydration

* Fix project editing + update search features

* Centralize hardcoding of loader/category names, fix cookie consent shadow, fix mobile navbar rounding

* Fix plugin platforms formatting

* Kitchen sink!

* Add support for display names

* LiteLoader formatting

* Fixed "show all loaders" toggle not resetting when changing pages

* Allow multiple loaders in version filter controls

* Fix clear filters button

* Revert "Add support for display names"

This reverts commit 370838763d86bcae51bf06c304248f7a1f8fc28f.

* Let's see how this goes. Upstream filters, attempt 1

* github? hello?

* No more "Server mod" on plugins

* Fix formatting of project types in project creation

* Move where project creation sets the resource pack loader

* Allow setting pixelated image-rendering

Allows to apply 'style' attribute to IMG tags with value
'image-rendering' set to 'pixelated', which can be useful for people who
use pixel art in their READMEs (to demonstrate items, for example).

* fix user page + hydration issue fix from Brawaru

* Rename to proxies

* Make categories use title case

* Always show project type on moderation page, improve project type display on project pages

* Remove invalid key

* Missed a check

* Fix browse menu animation

* Fix disabled button condition and minimum width for 2 lines

* Body -> Description in edit pages

* More casing consistency issues

* Fix duplicate version URLs

* Fix version creation

* Edit URLs, fix privacy page buttons

* Fix notifications popup overlaying

* Final merge fixes

Co-authored-by: Prospector <prospectordev@gmail.com>
Co-authored-by: Sasha Sorokin <10401817+Brawaru@users.noreply.github.com>
2022-08-14 12:42:58 -07:00
Geometrically
c76b527b93
Make maven support duplicate versions (#418) 2022-08-13 18:53:12 -07:00
Geometrically
ded4f95537
Fix additional category editing (#417) 2022-08-12 20:48:01 -07:00
wafflecoffee
87251878a5
Merge pull request #5 from jadelily18/generate-docs-spelling
fixed minor spelling mistake

[no ci]
2022-08-12 06:37:49 -04:00
wafflecoffee
3a14f363d9
Merge pull request #4 from frikinjay/main
object-fit property to contain to prevent avatar stretching.
2022-08-12 06:37:10 -04:00
jade
84921f04cd
fixed minor spelling mistake 2022-08-11 23:00:55 -05:00
Geometrically
8272386733
Fix approved value setting (#415) 2022-08-07 09:21:49 -07:00
Geometrically
33988ed3fb
Allow duplicate version numbers, fix version sorting, edit validators (#414) 2022-08-06 17:44:16 -07:00
frikinjay
b16475b8bd
Change the link to Modrinth CDN from #581 (#582)
* Fix the bunny fonts link from #580

* Change the link to Modrinth CDN from #581
2022-08-06 12:06:55 -07:00
wafflecoffee
411b8e3cb6
Initial work on site moderation improvements (#410) 2022-08-02 23:31:56 -07:00
Geometrically
848e26eec6
Revert "Additional categories + fix project creation" (#591)
This reverts commit 62e86f95076929907c4326a8b8ced482313e9854.
2022-08-02 20:28:43 -07:00
Geometrically
916da16523
Fix filters (#389) 2022-08-01 21:23:13 -07:00
Geometrically
d165c081f7
Fix API breakage project creation (#409) 2022-07-31 21:54:17 -07:00
Jai A
62e86f9507
Additional categories + fix project creation 2022-07-31 20:19:41 -07:00
Geometrically
992de7d66e
Fix search not working (#408) 2022-07-31 15:26:25 -07:00
Geometrically
46ab7bbcbe
Fix category query (#407) 2022-07-31 14:42:22 -07:00
Geometrically
b04bced37f
More project data (#406)
* More project data

* Array_agg fixes + cleanup

* fix prepare

* Add approval dates to search

* Update migrations/20220725204351_more-project-data.sql

Co-authored-by: wafflecoffee <emmaffle@modrinth.com>

* Add category labels + display categories

Co-authored-by: wafflecoffee <emmaffle@modrinth.com>
2022-07-31 13:29:20 -07:00
frikinjay
5b306f365e
object-fit property to contain to prevent avatar stretching. 2022-07-31 11:00:33 +05:30
github-actions
ce8950da43 Bump package version [skip ci] 2022-07-29 20:46:43 +00:00
venashial
0e1c7cd8ed Add landing page data for statistics & contributors 2022-07-29 13:44:34 -07:00
github-actions
fba6dd750d Bump package version [skip ci] 2022-07-29 06:37:10 +00:00
venashial
e73b6bc39e Move fonts folder + Update setup docs for Vite 2022-07-28 23:34:43 -07:00
github-actions
fa3cbbee67 Bump package version [skip ci] 2022-07-29 05:52:18 +00:00
venashial
029e52eb5f Fix up setup docs and leftover CSS 2022-07-28 22:50:09 -07:00
github-actions
13914507e8 Bump package version [skip ci] 2022-07-29 05:48:24 +00:00
venashial
533f0213e3 Self-host fonts + Move Vite plugins export 2022-07-28 22:45:53 -07:00
Ricky12Awesome
13335cadc6
Adds /teams route (#373)
* basic list (no grouping yet)

* now groups and checks auth, moved Team::get_many to TeamMember::get_from_team_full_many

* Ran 'cargo sqlx prepare'

* batch TeamMember::get_from_user_id

* Batches before for loop

* Ran 'cargo sqlx prepare'

Co-authored-by: Emma Cypress <emmaffle@modrinth.com>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-07-26 22:40:20 -07:00
github-actions
95d6dac055 Bump package version [skip ci] 2022-07-26 21:05:14 +00:00
venashial
2001d7f02a Fix scroll not being reset 2022-07-26 14:01:59 -07:00
github-actions
bae5b70023 Bump package version [skip ci] 2022-07-26 20:34:59 +00:00
venashial
8341d343d3 Fix noScroll & add prefetch to NavRow 2022-07-26 13:32:09 -07:00
frikinjay
278a56e580
Fix the bunny fonts link from #580 (#581) 2022-07-26 11:25:43 -07:00
moehreag
6ab44ccf0c
Switch from google fonts to bunny (#580) 2022-07-26 13:32:12 -04:00
wafflecoffee
b864791fa6
Limit 'superuser' status of current moderators (#386)
Resolves MOD-88

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-07-23 18:47:32 -07:00
github-actions
918898d6fe Bump package version [skip ci] 2022-07-17 00:08:07 +00:00
venashial
566e5dea57 Run CI on pull requests + Test packaging 2022-07-16 17:04:53 -07:00
venashial
5d1bfa18b1
Merge pull request #3 from Wuzado/main
Add svelte2tsx to fix package builds
2022-07-16 17:03:41 -07:00
Wuzado
800540ce7f
Add svelte2tsx to fix package builds 2022-07-17 01:49:13 +02:00
github-actions
74ee74365e Bump package version [skip ci] 2022-07-16 23:30:45 +00:00
venashial
75f6235111 Fix sveld plugin 2022-07-16 16:28:15 -07:00
venashial
fe415cbd77 Upgrade to Vite 3 2022-07-16 16:15:06 -07:00
Emma, Cypress, Rose ⚘
dc69c0d3e5
Implement new content rules (#570)
* Overhaul of the legal pages (rules, terms, privacy policy)

Resolves MOD-90
Resolves MOD-91

* Revert changes to privacy policy & terms

The privacy policy and terms are gonna require a lot more effort to review and we just want the rules stuff in ASAP

* CI fix

* Fix the headings of all things

* Update content section of terms
2022-07-16 15:35:05 -04:00
UbiOne
40b3f39249
Hoverable "joined" fields on user pages (#555) 2022-07-16 15:03:56 -04:00
Andre_601
a9acc55735
Create config.yml for issue selection (#566) 2022-07-16 15:03:47 -04:00
github-actions
9c07612274 Bump package version [skip ci] 2022-07-11 20:25:06 +00:00
venashial
3e87d88825 Add .link underline 2022-07-11 13:23:19 -07:00
github-actions
e280c0c5ca Bump package version [skip ci] 2022-07-10 22:41:44 +00:00
Emma Cypress ⚘
6614b56298
Revert "Add auto-reporting inappropriate text content" (#397)
* Revert "Add auto-reporting inappropriate text content (#387)"

This reverts commit 68f7dc951278f76a1d8b42b3fc9d6681ed0aa6f9.

* Maybe don't revert the whole thing
2022-07-10 10:02:41 -07:00
Emma Cypress ⚘
02c3894fc9
Add even more validators (#385)
* Add even more validators

I was gonna add shaderpacks too, but those have no standard metadata file at all.

* Make it compile

* Fix logic

* Update validators

* fix mistake

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-07-09 20:25:44 -07:00
Emma Cypress ⚘
68f7dc9512
Add auto-reporting inappropriate text content (#387)
* Add initial support for blocking inappropriate text content

To make something clear, **nothing** is automatically censored or
deleted as a result of this pull request. This pull request is
meant to add two things:
- Regenerate new IDs (project, version, user, etc.) with profanity
- Send reports to the moderators for new inappropriate content

* Make it build

* Fix logic issue

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-07-09 18:51:55 -07:00
venashial
64f750a097 Fix lint 2022-07-09 14:53:03 -07:00
venashial
48bc18017e Add Code component 2022-07-09 14:51:04 -07:00
venashial
18d1bc56fd
Fix HTTP status code 200 -> 204 (#394) 2022-07-08 13:18:41 -07:00
github-actions
035fa3be3f Bump package version [skip ci] 2022-07-03 05:16:10 +00:00
venashial
f62723c274 Add .file class + Generator user agent 2022-07-02 22:14:20 -07:00
Geometrically
aca59019c1
Fix analytics env error (#562) 2022-07-02 15:50:01 -07:00
Geometrically
2186ea9a90
Use nuxt lifecycle hook for analytics (#561) 2022-07-02 11:23:24 -07:00
Geometrically
928f6e7009
Add ariadnee (#560) 2022-07-01 20:15:01 -07:00
Geometrically
1e4d07a52c
Download counting (#388) 2022-07-01 19:31:37 -07:00
github-actions
64ed5fca3b Bump package version [skip ci] 2022-07-02 00:22:02 +00:00
venashial
4c7fc79843 CheckboxList, Modal, Select, & .link-group fixes 2022-07-01 17:20:08 -07:00
Emma Cypress ⚘
153d77359f
Add more banners and warnings for some statuses & other fixes (#558)
* Add more banners and warnings for some statuses & other fixes

* Remove unused css
2022-07-01 08:20:35 -07:00
github-actions
c8a2fb92d2 Bump package version [skip ci] 2022-07-01 00:47:52 +00:00
venashial
dcc252b371 Update Select component 2022-06-30 17:42:15 -07:00
github-actions
846aadd7c6 Bump package version [skip ci] 2022-06-30 20:18:51 +00:00
venashial
3c604db234 Add .member hover style + NavRow & parse fixes 2022-06-30 13:17:07 -07:00
github-actions
cb3efb1c1d Bump package version [skip ci] 2022-06-30 19:20:06 +00:00
venashial
1423db35eb Fix NavRow on mobile 2022-06-30 12:17:55 -07:00
Geometrically
1fc579e907
Add project check route (#384)
* Add project check route

* Fix responsee
2022-06-28 14:36:47 -07:00
Danielle Hutzley
827c4e31ee fixup! Migrate to piston-meta 2022-06-27 13:59:06 -07:00
Danielle Hutzley
c2a1ed926e Migrate to piston-meta 2022-06-27 13:54:09 -07:00
Geometrically
4f86c117c3
Merge pull request #2 from modrinth/feature/bincode
Add Bincode support
2022-06-26 18:41:00 -07:00
Danielle Hutzley
93817ba92f Actually compile without Bincode 2022-06-26 16:41:22 -07:00
Danielle Hutzley
18153e0fcc Bump version 2022-06-26 16:23:57 -07:00
Danielle Hutzley
3123f6444f Add Bincode feature for efficient binary storage 2022-06-26 16:23:41 -07:00
Geometrically
cb2a7a88fc
Fix auth URL using staging (#556) 2022-06-26 16:17:55 -07:00
stairman06
e530111283
Version search fix (#554) 2022-06-26 12:52:05 -07:00
Geometrically
4e97a3b3d5
More project type validators (#383) 2022-06-26 10:39:38 -07:00
Emma Cypress
332c4a1f98
Add note about adding multiple files to a version (#546)
* Add note about adding multiple files to a version

Closes #545 as not planned

Related to modrinth/docs#50

* Fix note showing on version.vue when it shouldn't
2022-06-25 22:10:22 -07:00
Emma Cypress
8541b95d8b
Add Embedded dependency type (#553)
* Add Embedded dependency type

* Why, lint, did you not complain about this in my dev env???
2022-06-25 22:09:10 -07:00
Emma Cypress
e4584e3f04
Force file input to accept file type based on project type (#552) 2022-06-25 22:08:50 -07:00
Emma Cypress
134c43ad9e
Always return the username as fetched from the database (#382)
Co-authored-by: Patrick <cryne@gmx.de>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-06-25 22:04:34 -07:00
John Paul
e74b4b35b9
Don't consider a user's name taken by self (#376)
* Don't consider a user's name taken if self

* Fix incorrect types

* try-use more idiomatic Option tech

* true if `None`

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-06-25 21:50:41 -07:00
Emma Cypress
16e7194dfe
Add Embedded dependency type (#380)
* Add Embedded dependency type

I couldn't find any SQL tables or anything for dependency types, so I'm going to assume there aren't any

* Make modpacks use Embedded instead of Required

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-06-25 19:16:46 -07:00
Geometrically
168ec9092a
Fix random Nuxt internal server errors (#551)
* Fix random Nuxt internal server errors

* Fix ratelimit key being exposed

* Add GDPR clarification
2022-06-25 16:46:10 -07:00
github-actions
914b6c757d Bump package version [skip ci] 2022-06-25 20:25:26 +00:00
venashial
48d10d701e Expose fetching from `send function 2022-06-25 13:23:39 -07:00
github-actions
6479e94c4f Bump package version [skip ci] 2022-06-25 20:10:16 +00:00
venashial
fb3a9f1f29 Fix send function headers error 2022-06-25 13:08:20 -07:00
github-actions
e9d7df8862 Bump package version [skip ci] 2022-06-25 19:33:51 +00:00
venashial
123de56f38 Refactor setup documentation 2022-06-25 12:32:03 -07:00
github-actions
8627132d6a Bump package version [skip ci] 2022-06-25 07:40:01 +00:00
venashial
3ef9c4c626 Add .gitkeep to /generated to fix tsconfig 2022-06-25 00:37:57 -07:00
venashial
aec03294d6 Create send function for API requests 2022-06-25 00:17:42 -07:00
github-actions
2e6e1f4060 Bump package version [skip ci] 2022-06-25 05:53:31 +00:00
venashial
07f1103784 Add registry-url to workflow 2022-06-24 22:52:02 -07:00
Jai A
ffc8f133c9
Fix auth URL compute 2022-06-24 22:44:47 -07:00
github-actions
507f2a4c7c Bump package version [skip ci] 2022-06-25 05:42:29 +00:00
venashial
1c9e9b9367 Use npm for publishing 2022-06-24 22:41:05 -07:00
github-actions
4d81775f8d Bump package version [skip ci] 2022-06-25 05:32:53 +00:00
venashial
cf042931b6 Use alternate NPM_TOKEN config for release 2022-06-24 22:31:11 -07:00
github-actions
f6a931599a Bump package version [skip ci] 2022-06-25 05:28:29 +00:00
venashial
1b17049e94 Cut down highlight.js size 2022-06-24 22:26:49 -07:00
venashial
81c039d645 Fix packaging to correctly handle utils/ 2022-06-24 20:36:16 -07:00
Emma Cypress
932b0ccf24
Allow archived projects to show in search (#381)
Resolves MOD-96
2022-06-24 14:26:18 -07:00
github-actions
e245edc843 Bump package version [skip ci] 2022-06-23 06:18:30 +00:00
venashial
8494ed8ac3 Add NavRow animation 2022-06-22 23:17:00 -07:00
stairman06
371f14d2e4
Show report button when logged out (#548) 2022-06-22 22:33:57 -04:00
Emma Cypress
3e5c7f62d0
Update Mojang meta URL (#379)
Urgent, needs to be on prod before the next snapshot comes out
2022-06-22 12:22:19 -07:00
github-actions
1109fbfcc3 Bump package version [skip ci] 2022-06-22 05:48:57 +00:00
venashial
ff88f242fa Run pnpm format 2022-06-21 22:47:15 -07:00
venashial
bd3dd69ae1 Fix package.json + NavRow indicator 2022-06-21 22:37:26 -07:00
github-actions
06780c2805 Bump package version [skip ci] 2022-06-22 04:30:34 +00:00
venashial
e44e227af6 Reorder workflow pnpm installation 2022-06-21 21:29:17 -07:00
venashial
4ca06a9218 Fix workflow NPM publish auth secret 2022-06-21 21:25:22 -07:00
venashial
9e29761581 Fix NPM package script 2022-06-21 19:11:26 -07:00
venashial
110c389d85 Fix packaging index.ts 2022-06-21 19:08:22 -07:00
github-actions
d856ed89ff Bump package version [skip ci] 2022-06-22 00:26:48 +00:00
venashial
fa747515e9 NavRow animation improvements 2022-06-21 17:25:07 -07:00
venashial
b15c9d7655 Fix release workflow (replace pnpmnpm) 2022-06-21 00:45:16 -07:00
venashial
15c3ee4af2 Update release workflow 2022-06-21 00:41:53 -07:00
venashial
748248deab Fix formatting + Update README 2022-06-21 00:38:52 -07:00
venashial
70671ac672 Merge branch 'main' of https://github.com/modrinth/kleos 2022-06-20 23:50:41 -07:00
venashial
f70f670ed3 Skip Typescript compilation on packaging 2022-06-20 23:50:33 -07:00
github-actions
4b685716d5 Bump package version [skip ci] 2022-06-20 22:35:38 +00:00
venashial
252c812125 Add FileUpload component 2022-06-20 15:34:45 -07:00
John Paul
69a437a1a8
StatelessFIleInput: add maxSize and showIcon (#544) 2022-06-20 17:04:08 -04:00
github-actions
b8b36b6248 Bump package version [skip ci] 2022-06-20 04:46:09 +00:00
venashial
28e24cb9d6 .link-group minor fix 2022-06-19 21:45:24 -07:00
github-actions
2a0609fdb8 Bump package version [skip ci] 2022-06-20 04:28:30 +00:00
venashial
b3233cab71 .link fixes + Add Modal defaultData 2022-06-19 21:27:20 -07:00
Geometrically
bf19f5b9c0
Fix auth URL condition again (#378) 2022-06-19 17:20:21 -07:00
Geometrically
08a879bbb1
Fix auth URL condition (#377) 2022-06-19 14:41:41 -07:00
Prospector
405a3eda60
Nuxt Season Finale (#531)
Co-authored-by: Emma Cypress Pointer-Null <emmaffle@modrinth.com>
2022-06-18 21:39:53 -04:00
github-actions
49acfc496b Bump package version [skip ci] 2022-06-19 00:32:08 +00:00
venashial
a1932fa3dc sm Modal size 2022-06-18 17:31:29 -07:00
github-actions
87a8706299 Bump package version [skip ci] 2022-06-18 22:41:11 +00:00
venashial
92ec46147b Modal fixes 2022-06-18 15:40:17 -07:00
Geometrically
cd514285d9
Fix rejected files showing in hash routes (#375)
* Fix rejected files showing in hash routes

* Run prepare and formatter

* Add modrinth.com exception for callback URLs

* run fmt
2022-06-18 14:09:37 -07:00
John Paul
2bda7566b4
Reset version page state when currently selected version changes (#543)
* reset versions state on current version change

* 'mode' should not be reset
2022-06-17 22:19:15 -07:00
github-actions
43488cb57b Bump package version [skip ci] 2022-06-18 02:58:57 +00:00
venashial
137fbb638b Refactor folder structure 2022-06-17 19:58:01 -07:00
Geometrically
782bb11894
Secure auth route, fix quilt deps bug, optimize queries more (#374)
* Secure auth route, fix quilt deps bug, optimize queries more

* Add to_lowercase for multiple hashes functions
2022-06-17 16:56:28 -07:00
John Paul
76ed8d58fa
Create StatelessFileInput, use in version.vue (#537) 2022-06-15 17:49:42 -04:00
github-actions
8204139df8 Bump package version [skip ci] 2022-06-14 04:44:37 +00:00
venashial
7926684930 Add Modal triggers 2022-06-13 21:43:57 -07:00
github-actions
73946a4ede Bump package version [skip ci] 2022-06-13 19:49:44 +00:00
venashial
aa88115d45 Add Field 2022-06-13 12:48:43 -07:00
github-actions
496c08b075 Bump package version [skip ci] 2022-06-13 18:47:51 +00:00
venashial
2388d1782f Add license + Fix CI 2022-06-13 11:46:57 -07:00
github-actions
e0e1c59d41 Bump package version [skip ci] 2022-06-13 18:35:46 +00:00
venashial
f2cb6ce972 Add Modal 2022-06-13 11:34:46 -07:00
github-actions
ed3535e9c9 Bump package version [skip ci] 2022-06-11 02:14:34 +00:00
venashial
62f1830197 Improve :focus accessibility & Polish animations 2022-06-10 19:13:28 -07:00
Geometrically
2fb62fe8be
Add ratelimit key header on SSR (#532) 2022-06-09 15:34:30 -07:00
Geometrically
355689ed19
Replace ignore IP system with keys (#368) 2022-06-09 15:28:40 -07:00
Geometrically
75614fb13c
Move downloads to queue for better performance (#367) 2022-06-09 12:21:51 -07:00
Geometrically
5c4a864680
Fix dep out of bounds error (#366) 2022-06-08 23:03:22 -07:00
Geometrically
eaeff891d6
Reimplement old database code for better performance (#365) 2022-06-08 22:24:20 -07:00
Geometrically
f0ab40d748
Fix update route (#364)
* Fix version updates route

* Run formatter, fix clippy, run prepare
2022-06-08 21:17:17 -07:00
github-actions
3243cbf039 Bump package version [skip ci] 2022-06-07 21:01:36 +00:00
venashial
eb171ecb21 Update CSS guidelines + Prefer rem 2022-06-07 14:00:53 -07:00
Geometrically
e497af4c26
Add deps list for override mods, fix version editing for packs (#363) 2022-06-05 10:42:33 -07:00
Geometrically
43b8941f7a
External dependencies list (#518) 2022-06-04 12:43:32 -07:00
Ellemes
0b16839d7f
Fix custom license being empty when editing a project. (#527) 2022-06-04 14:02:04 -04:00
venashial
164ba46259
Merge pull request #521 from modrinth/fix/512
Hotfix #512 not showing the correct date
2022-06-04 09:19:19 -07:00
Prospector
b174f7a023
Fix donation URLs hidden when there's no external links (#520) 2022-06-04 11:44:29 -04:00
venashial
c9ec9f14de Run prettier 2022-06-04 00:46:23 -07:00
venashial
597c071c3d Update Permissions class & docs 2022-06-04 00:05:23 -07:00
Geometrically
f860f57363
Fix version editing (#362) 2022-06-02 20:56:12 -07:00
Emma Cypress
91d05434ca
Hotfix #512 not showing the correct date
Co-authored-by: Essem <smswessem@gmail.com>
2022-06-01 12:31:35 -04:00
github-actions
5b0aba99bb Bump package version [skip ci] 2022-06-01 04:04:01 +00:00
venashial
87c7d1a5f4 Update ago to respect user's language 2022-05-31 21:03:22 -07:00
github-actions
d841d69bd4 Bump package version [skip ci] 2022-06-01 02:14:22 +00:00
venashial
512bf1d013 Update Option interface for type-checking 2022-05-31 19:13:36 -07:00
Geometrically
02bf5ada89
Increase file size limit (#361) 2022-05-30 16:29:23 -07:00
Essem
adbd58a949
Add date tooltips (#512) 2022-05-30 16:29:07 -07:00
Josiah (Gaming32) Glosson
a0959d2730
Make system theme selectable (#505)
Also fixes #504
2022-05-30 11:33:39 -07:00
UbiOne
f455722bed
Added missing PolyMC link from modpack pages. (#499)
* Added missing PolyMC link from modpack pages.

Fix of #498

* Fixed messed up things.
2022-05-30 11:28:38 -07:00
Emma C. Pointer-Null
735d23c9eb
fix 'unknown' version in footer (#511)
fixes #483
2022-05-30 11:28:23 -07:00
github-actions
0fd6a23c78 Bump package version [skip ci] 2022-05-29 18:31:07 +00:00
venashial
fd73d8d67e
Merge pull request #1 from baka-gourd/main
Add chs date format
2022-05-29 11:30:26 -07:00
venashial
347366e8d7 Fix server-side rendering 2022-05-29 11:29:53 -07:00
github-actions
eb8d4abcbe Bump package version [skip ci] 2022-05-29 04:26:46 +00:00
venashial
86acccebb0
Merge pull request #2 from wafflecoffee/report-types
Add report type tag
2022-05-28 21:26:03 -07:00
Emma Cypress Pointer-Null
8f184f76fa
fix formatting 2022-05-28 13:11:01 -04:00
Emma Cypress Pointer-Null
1daabfa3e0
Add report type tag 2022-05-28 13:09:57 -04:00
baka-gourd
90b49106f0
add chs date format 2022-05-28 20:53:24 +08:00
github-actions
1a5638426c Bump package version [skip ci] 2022-05-27 02:17:55 +00:00
venashial
8d4da009af Update prettier config + Run pnpm format 2022-05-26 19:17:15 -07:00
venashial
89571d57bd Fix oled theme, docs, component bugs 2022-05-26 19:16:46 -07:00
4JX
d3b578fe8f
Fix wrongfully parsed hashes for the version_files route(s) (#353)
* Fix wrongfully parsed hashes for the version_files route(s)

* Remove the hex dependency

* Remove unwraps

.

.

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-05-26 18:32:32 -07:00
Geometrically
d29d910ac6
Add mod lists for modpacks, liteloader support, update actix, fix moderation webhook (#357) 2022-05-26 10:08:19 -07:00
github-actions
5d4e06074a Bump package version [skip ci] 2022-05-26 06:20:56 +00:00
venashial
98522cf6e4 Move utils exports to separate path 2022-05-25 23:20:02 -07:00
github-actions
7cdb751606 Bump package version [skip ci] 2022-05-26 00:23:46 +00:00
venashial
4ffc90f963 Fix CheckBoxList SVG icons + Move docs source 2022-05-25 17:22:54 -07:00
github-actions
8da6572074 Bump package version [skip ci] 2022-05-25 04:40:41 +00:00
venashial
ee64aad670 Merge branch 'main' of https://github.com/modrinth/kleos 2022-05-24 21:39:55 -07:00
venashial
92cee2321f Add "icon" class to generated icons 2022-05-24 21:39:49 -07:00
github-actions
7f969b1252 Bump package version [skip ci] 2022-05-25 04:20:04 +00:00
venashial
a02e2e1fa1 Merge branch 'main' of https://github.com/modrinth/kleos 2022-05-24 21:19:07 -07:00
venashial
d690e1b37a Fix generator API URL & Button props 2022-05-24 21:18:54 -07:00
DioEgizio
3300c2302c
add polymc to the list of supported pack launchers (#497) 2022-05-24 10:07:46 -04:00
stairman06
685470cf23
iOS video fix (#496) 2022-05-23 21:53:35 -07:00
stairman06
c545a959ac
Mobile category overlap fix (#495)
* mobile spacing fix

* slightly less spacing
2022-05-23 21:53:28 -07:00
Prospector
a7832ef40f
Fix font weight on code blocks (#494) 2022-05-23 21:53:22 -07:00
Prospector
3e941999d5
Make modpacks show as an yellow check mark to show it's alpha (#493) 2022-05-23 21:40:27 -07:00
Prospector
bebdfc259c
Improved styling of the version file upload button (#492)
* Update SmartFileInput to be styled like the other file input

* Fix gallery upload layout
2022-05-23 21:40:17 -07:00
Prospector
d31a920eb7
Fix gallery floating buttons and text in light mode (#491) 2022-05-23 21:38:25 -07:00
Prospector
ec87821bcd
Workaround ModLoader capitalization issue and make loaders list collapsible (#490) 2022-05-23 21:38:17 -07:00
Emma C. Pointer-Null
21df0e32c4
Fix #485 by removing default loader from version filters (#487)
* Fix #485 by removing default loader from version filters

It's really not our place to be imposing a default loader on people, especially as we start adding more loaders

* Fix Clear Filters button and capitalise loaders
2022-05-23 21:38:08 -07:00
stairman06
afaa235c75
Save OR facets in query string (#486)
* Save OR Facets

* revert back to staging
2022-05-23 21:37:56 -07:00
UbiOne
8d97e7136f
Project ID removes spaces (Issue #467) (#484)
* Dependency Add fields now only accepts letters

No more annoying spaces, numbers or special characters

* Fixed problem(s)

Now it only disallows spaces
2022-05-23 21:37:41 -07:00
github-actions
89ac422929 Bump package version [skip ci] 2022-05-21 06:26:13 +00:00
venashial
d8d55f032e Fix tag icon generator 2022-05-20 23:25:35 -07:00
github-actions
c83d694c7a Bump package version [skip ci] 2022-05-21 04:48:01 +00:00
venashial
ea55650d45 Merge branch 'main' of https://github.com/modrinth/kleos 2022-05-20 21:47:16 -07:00
venashial
ec1aee60a1 Update brand color & preprocess config 2022-05-20 21:47:14 -07:00
github-actions
3a7a0918d3 Bump package version [skip ci] 2022-05-21 02:54:02 +00:00
venashial
8bf90714da Update utilities and documentation 2022-05-20 19:53:13 -07:00
venashial
d8b59925b0 Update Node version in workflow 2022-05-20 19:52:47 -07:00
venashial
d37fd6bea0 Run pnpm format 2022-05-20 00:10:45 -07:00
venashial
0f6263d82e Add generator plugin 2022-05-20 00:10:15 -07:00
Florentin Schleuß
e7c70945e6
Add skip links for "skip to main content" and "skip to search results" (#445) 2022-05-17 18:31:58 -07:00
UbiOne
095a936891
Fixed GitHub Issue #423 (#453)
Incrased line hights from default to 1.3 at text boxes.
2022-05-17 18:31:46 -07:00
stairman06
c49ce91fac
History spam fix (#461) 2022-05-17 18:29:38 -07:00
Geometrically
dd52727055
Fix resubmit for approval button (#478) 2022-05-17 18:29:23 -07:00
Prospector
b48068c63c
Add modpacks icon on mobile (#474) 2022-05-16 06:19:08 -04:00
Geometrically
c39d04e8a5
Fix broken discord link (#472) 2022-05-15 22:04:44 -07:00
venashial
0eff8e4bc8
Merge pull request #470 from modrinth/modpack-alpha-fixes
Add modpack page warning + Fix notifications nav titles
2022-05-15 18:39:44 -07:00
venashial
178551a467 Remove console.log 2022-05-15 18:36:41 -07:00
venashial
720739e50a Add modpack page warning + Fix notifications nav titles 2022-05-15 18:27:02 -07:00
venashial
46d1537d8f
Modpack alpha release (#469) 2022-05-15 17:54:59 -07:00
Jai A
63b2bb55a1
Fix version editing 2022-05-15 13:06:08 -07:00
Jai A
e7b41f9a4c
Urgent fixes 2022-05-15 12:05:44 -07:00
Geometrically
dd0aed4614
Bump version (#348) 2022-05-15 09:27:02 -07:00
Geometrically
b9b4f2bb7f
Fix download count logic (#347) 2022-05-14 15:55:02 -07:00
Geometrically
3533d2a2cc
Fix search rules, register download route (#346) 2022-05-11 18:09:29 -04:00
Geometrically
26d9ef5398
Rework download route (#345) 2022-05-11 11:32:01 -04:00
github-actions
06c210f5c8 Bump package version [skip ci] 2022-05-08 19:40:47 +00:00
venashial
a545c42047 Add secondary & tertiary buttons + Add utils index 2022-05-08 12:40:10 -07:00
github-actions
da4b4de292 Bump package version [skip ci] 2022-05-08 00:23:15 +00:00
venashial
fd936e5bf3 Update illustrations & icons docs + Fixes 2022-05-07 17:22:33 -07:00
Geometrically
a0f840bcf8
Add quilt validators, Deps fix, Fix slug collisions (#338) 2022-04-24 13:02:41 -07:00
stairman06
33d2a77e37
Maven fix (#337) 2022-04-24 10:55:56 -07:00
Geometrically
dc11340faf
Switch loaders to OR filtering (#460)
* Switch loaders to OR filtering

* Add or filters to clear button

* Fix clear filters button again
2022-04-22 11:36:48 -07:00
Jai A
06d921d855
Fix login button 2022-04-18 10:54:15 -07:00
github-actions
91b602341b Bump package version [skip ci] 2022-04-16 23:13:43 +00:00
Prospector
ad853ca342 Add basic slider component 2022-04-16 16:13:13 -07:00
github-actions
14fa3481b0 Bump package version [skip ci] 2022-04-16 07:33:39 +00:00
venashial
2b6fee0455 docs: Fix pnpm-lock.yaml 2022-04-16 00:32:57 -07:00
venashial
a48e6f82d1 docs: Improve example component + Fix sidebar on mobile 2022-04-16 00:29:35 -07:00
Jai A
1020904fe0
Fix #450, Fix 449 2022-04-10 14:58:43 -07:00
github-actions
6aaced0c04 Bump package version [skip ci] 2022-04-03 18:45:37 +00:00
venashial
3646c0d0a3 Remove lodash.uniqueId 2022-04-03 11:45:04 -07:00
github-actions
44c8574f1b Bump package version [skip ci] 2022-04-03 06:19:35 +00:00
venashial
ea1ff65db7 Move svelte config + postcss config to package/config 2022-04-02 23:18:57 -07:00
venashial
85b7147927 Add classes: Actions + Divider + Illustration + InfoTable + Stat, Add utilities (needs docs) 2022-04-02 16:17:58 -07:00
github-actions
6b54c342aa Bump package version [skip ci] 2022-03-31 01:50:02 +00:00
venashial
60720b04db docs: fix breakpoints 2022-03-30 18:49:27 -07:00
github-actions
323a593159 Bump package version [skip ci] 2022-03-31 01:37:04 +00:00
venashial
baef94f14a docs: add mobile support + seo 2022-03-30 18:36:27 -07:00
github-actions
59b3cfee66 Bump package version [skip ci] 2022-03-30 21:05:48 +00:00
venashial
cbc85ca98f Move COMPONENT_API to src/generated 2022-03-30 14:05:15 -07:00
github-actions
425c8cd1d3 Bump package version [skip ci] 2022-03-30 05:07:15 +00:00
venashial
1d7949ded6 Add component API to built docs + Add Checkbox, CheckboxList, & CheckboxVirtualList 2022-03-29 22:06:43 -07:00
stairman06
2507170816
YouTube embed fix (#442) 2022-03-29 21:27:05 -07:00
Emma C. Pointer-Null
2c83425b42
Make newlines behave like GitHub (#441)
fixes #440, fixes #436 too somehow
2022-03-29 21:26:43 -07:00
Geometrically
80e00a80d5
Switch to time crate, add file sizes (#329)
* Switch to time crate, add file sizes

* Update deps, adjust pack format

* Run formatter, fix clippy
2022-03-29 19:35:09 -07:00
github-actions
1da281de8a Bump package version [skip ci] 2022-03-29 07:46:27 +00:00
venashial
98baab4d03 Update docs examples + Add Select component + Add Card, Base, Title classes 2022-03-29 00:44:23 -07:00
Geometrically
a3d5479878
Optimize DB pooling (#328) 2022-03-28 19:39:02 -07:00
Jai A
a49dc04f5d
Add download set check 2022-03-27 19:14:39 -07:00
Geometrically
d1c0c9739d
Shulkers of fixes (#327)
* Shulkers of fixes

* Fix validation message

* Update deps

* Bump docker image version
2022-03-27 19:12:42 -07:00
Emma C. Pointer-Null
7415b07586
Add more version creation data aliases (#325)
For consistency and also for making the OpenAPI spec a bit less janky
2022-03-24 19:58:07 -07:00
Geometrically
441069aa76
Send authentication headers for all project requests (#431) 2022-03-20 15:29:17 -07:00
github-actions
8c5bf55b51 Bump package version [skip ci] 2022-03-20 18:15:25 +00:00
venashial
b6d6955b39 Add Chips component 2022-03-20 11:14:46 -07:00
github-actions
0d68b1a73e (bot) Bump package version [skip ci] 2022-03-20 07:20:35 +00:00
venashial
15b7c241ff Update style vars + Add examples to docs + Add Avatar, NavRow, Pagination, & Link 2022-03-20 00:19:51 -07:00
venashial
de9c62617b Merge remote-tracking branch 'origin/main' 2022-03-16 23:35:10 -07:00
venashial
a0e05115a3 Add component API to docs (ex: props, events, slots) 2022-03-16 23:34:56 -07:00
Geometrically
023663b268
Fix permissions checks for projects, fix gallery URLs (#321) 2022-03-16 07:49:09 -07:00
Prospector
aaf58272f1
Add an indicator for required fields (#413) 2022-03-15 22:11:00 -07:00
Prospector
5ebaf5663d
Add image description, make controls less obtrusive, display native size by default (Fixes #407), Fixed closing modal by clicking out of it (Fixes #405) (#412) 2022-03-15 22:10:30 -07:00
venashial
7dc3e6a08b Bump package version [skip ci] 2022-03-14 07:07:26 +00:00
venashial
5a5f817e59 Manually bump version 2022-03-14 00:06:52 -07:00
venashial
b650320a34 Prevent version bumping from committing tags 2022-03-14 00:03:36 -07:00
venashial
424fd8e4d3 Reorder release workflow 2022-03-13 23:59:51 -07:00
venashial
cfbf80fdfe Commit bumped package version in workflow 2022-03-13 23:48:54 -07:00
venashial
9b8ced2803 Auto bump NPM package 2022-03-13 23:40:17 -07:00
venashial
630a1d42b8 Prepare for NPM + Cloudflare pages 2022-03-13 23:10:58 -07:00
venashial
b69ff6ca8a docs: Improve header + sidebar
docs: Create workflows
lib: Start pagination
2022-03-12 01:34:09 -08:00
Glare
1a23b6178b
Fixes confusing text in analytics description (#414) 2022-03-10 12:37:41 -05:00
venashial
de536d7305 docs: Improve theming + introduction 2022-03-10 00:08:59 -08:00
venashial
6dcd33bbc5 Add CSS & Icons docs 2022-03-09 23:17:28 -08:00
venashial
c6df78eb81 Improve docs 2022-03-09 22:18:22 -08:00
venashial
d1babe27ec Start work 2022-03-09 21:27:53 -08:00
Prospector
7596f62ca5
Gallery improvements (#404)
* Redo gallery controls

* Remove old css

* Geo's fixes to the gallery

* Fix filters not updating when clearing them

* Add max width to expanded images

* Center text as it gets super long

* Object-fit: cover

* Fix extra margin 😱
2022-03-08 21:43:06 -07:00
venashial
139e57f1eb Initial commit 2022-03-07 21:55:31 -08:00
Geometrically
e87d85b088
Removes google ads from codebase, fix analytics (#403) 2022-03-07 19:01:38 -07:00
Geometrically
91b79b703c
Fix dependency display (#402) 2022-03-07 17:26:40 -07:00
Prospector
bdefa4a967
Fix version dropdowns and add link hover/active colors in markdown (#398)
* Fix version dropdowns and add link hover/active colors in markdown

* Add 'Clear filters' button to version filtering

* *Actually* fix #394

* semicolon
2022-03-07 08:27:10 -07:00
Geometrically
3883c509b9
Bypass compile-time query check (#317) 2022-03-06 21:06:29 -07:00
Prospector
b82efb6e3c
Continue the cleanup train (#396)
* Improve links and search page controls... I know it looks kinda insane

* Fix donation padding Fixes #393

* Improve text field styling

* white icon

* Improve pagination and disabled button colors

* Round tab indicator

* Fix rounding of home page points card

* I hate browsers

* Change verbiage of legacy options
2022-03-06 19:34:40 -08:00
Prospector
a50e109043
Some more cleanup to prepare for 2.1.0 release (#395)
* Make syntax highlighting green match the brand color

* Fix version filter control wrapping and not obeying snapshot filter

* Fix checkbox hover state Closes #390

* Update components/ui/VersionFilterControl.vue

Co-authored-by: Emma Pointer-Null <emmaffle@modrinth.com>

* Fix missing hover and active states for various buttons

Co-authored-by: Emma Pointer-Null <emmaffle@modrinth.com>
2022-03-06 15:37:07 -07:00
Emma Pointer-Null
8b5db12e1d
Make links on project pages more consistent, fix some selectors showing when they shouldn't (#391)
* Make links on project pages more consistent, fix some selectors showing when they shouldn't

* Update components/ui/VersionFilterControl.vue

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2022-03-06 13:35:11 -08:00
Prospector
f1f8163bb7
Add Minecraft version snapshot filter to version edit/create page (#387) 2022-03-05 17:36:15 -07:00
Prospector
c0fac90b52
Improve Multiselect styling to not overlap other elements (#386)
* Make improvements to the Multiselects in VersionFilterControl apply to all Multiselects Closes #384

* Remove unnecessary unset
2022-03-05 17:36:02 -07:00
Prospector
15717ddca0
Fix sorting on version filtering (#389) 2022-03-05 17:35:53 -07:00
Prospector
a7ce9aaca5
Fix bad contrast ratio with secondary text in dark mode (#388)
* Fix bad contrast ratio with secondary text in dark mode

* Add some more accessibility improvements
2022-03-05 17:35:45 -07:00
Prospector
d8df8e1033
Use dropdown SVG for profile dropdown (#379)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-03-05 13:35:05 -07:00
Prospector
440a35e491
Improve the file download icon so it's more obviously a download icon (#377) 2022-03-05 13:10:38 -07:00
Prospector
dbbc6ed0bb
Add easier access to the Following page and add scroll support to mobile overflow menu (#382) 2022-03-05 13:09:45 -07:00
Prospector
86fbb383fd
Fix changelog textarea being unusably small (#381) 2022-03-05 13:09:31 -07:00
Geometrically
18f34b4f83
Fix dep route again (#316) 2022-03-05 13:09:19 -07:00
Prospector
1c07a74bef
Add version filter controls to Changelog and Versions pages (#378) 2022-03-05 09:18:44 -07:00
BasiqueEvangelist
2df93c2ceb
Fix download buttons in the changelog page (#376) 2022-03-04 13:16:45 -07:00
Prospector
6ca40afac0
Add expanding gallery images by clicking on them (#371)
* Random css variable cleanup

* Add an option for developers to temporarily switch between staging and production API

* Added a feature to expand gallery images to view them larger.
2022-03-03 21:18:42 -07:00
Jai A
36a8f044ae
Show dependency when project version is not found 2022-02-28 16:02:59 -07:00
Jai A
caed86d846
Fix filenames, dep route again 2022-02-28 16:00:12 -07:00
Jai A
276e5453f1
Fix dep project not showing 2022-02-28 10:07:06 -07:00
Geometrically
459e36c027
Run fmt, fix dep route (#312) 2022-02-27 21:44:00 -07:00
Jai A
0f81986684
Fix head attr for version pages 2022-02-27 19:00:35 -07:00
Jai A
bc54e536af
Fix lint error 2022-02-27 18:00:19 -07:00
Jai A
acb57b3e9c
Remove modpacks from mobile nav 2022-02-27 17:58:07 -07:00
Geometrically
725f8571bb
Fix deps, download URLs, remove duplicate deps (#310) 2022-02-26 21:16:11 -07:00
Danielle
b7c7c0e862
Fix download counting (#309) 2022-02-26 08:37:24 -07:00
Geometrically
de0e30de57
Fix version creation, remove obsolete download counters, dep fix (#357) 2022-02-25 07:44:28 -07:00
Danielle
3f671b918a
Move download counting to worker (#306)
* Move download counting to worker

* Run `cargo sqlx prepare`

* Format & some Clippy fixes
2022-02-21 19:57:40 -07:00
Geometrically
b8b942cdae
Update embed, homepage and project creation fixes (#356) 2022-02-21 16:29:13 -07:00
Geometrically
9492363b22
Fix uploading (#305)
* Upgrade rust-s3 to fix tokio panics

* Run fmt

* Update deps
2022-02-20 20:16:32 -07:00
BasiqueEvangelist
3ee144459f
Allow setting primary file when creating version (#304)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-02-20 19:44:59 -07:00
Geometrically
c0c80c0fdf
See if RateLimit is cors issue (#303) 2022-02-19 17:51:24 -07:00
Emma
0146a077e8
Bundle of small fixes (#355)
* Bundle of small fixes

![bundle of small fixes](https://i.imgur.com/IkPE3uP.png)

- List items in project body may overflow
- Reduce margin between pagination buttons for better mobile support
- Prevent titles from overflowing in search for better mobile support
- Don't show ThisOrThats with only one item
- Fix style inconsistencies on homepage
- Add more links to homepage to docs, GH, and discord, so they can't be missed

* Appease lint

* Dryer lint isn't even the worst type of lint. It's this.
2022-02-19 13:09:58 -07:00
ramidzkh
7c80b61666
Automatically generate updates.json for Forge mods (#298)
* Automatically generate updates.json for Forge mods

https://api.modrinth.com/updates/{id}/forge_updates.json serves a minimal update JSON for the Forge update checker

Closes #281

* Authenticate update JSON requests

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-02-19 13:09:09 -07:00
Jai A
a0fcf515cd
Fix default base URL 2022-02-16 18:03:51 -07:00
Jai A
1719ad81a4
Fix home page on chromium 2022-02-16 18:01:34 -07:00
Geometrically
51a9a7b75d
Landing page (#353)
* Landing page

* Change legal corp name, remove google from privacy policy, other fixes
2022-02-16 17:39:48 -07:00
Geometrically
d128f3e14e
Send CORS wildcard, allow editing of non-accepted team members (#299) 2022-02-15 13:09:10 -07:00
Geometrically
4498b89ac4
Fix lax cors configuration (#295) 2022-02-12 19:57:00 -07:00
Geometrically
e576a58ead
Fix error messages, auth routes, and remove category unique constraint (#293)
* Fix error messages, auth routes, and remove category unique constraint

* Run prepare

* Remove debug secrets

* Fix team member editing
2022-02-10 10:56:45 -07:00
Geometrically
eb4375258e
Fix routing errors 2 + Version File Response (#290) 2022-02-06 17:54:01 -07:00
Geometrically
0cbc2001e2
Fix routing errors] (#289) 2022-02-06 16:35:52 -07:00
Geometrically
6bf5dbabee
Upgrade to Actix V2, bump SQLX version, code cleanup, intergrate ratelimiter (#288)
* Upgrade to Actix V2, bump SQLX version, code cleanup, intergrate ratelimiter

* Add pack file path validation

* Fix compilation error caused by incorrect merge
2022-02-05 23:08:30 -07:00
BasiqueEvangelist
6a89646e66
Support other project types in maven (#284) 2022-02-05 22:19:02 -07:00
Geometrically
e91b0500c5
Fix browser base URL not working 2022-01-28 19:42:01 -07:00
Emma
2a17361a90
Fix issues with new left/right side toggles (#348)
https://canary.discord.com/channels/734077874708938864/734082619352023081/936801072146690079 - "cosmetics toggles v-model the wrong variable"
Also improves formatting of title/description of these options
2022-01-28 19:40:22 -07:00
Jai A
1eca3a8603
Fix right sidebar width being messed up 2022-01-28 18:25:43 -07:00
Geometrically
86f37863a7
Lots of fixes - see trello (#347)
* A ton of fixes

* Fix project deletion message
2022-01-28 18:11:34 -07:00
Emma
f3234a6b5e
fix v1 parity issue: local- removed from mod_id field (#283) 2022-01-28 16:04:34 -07:00
Geometrically
73a8c302e9
Fix duplicate dates (#282) 2022-01-25 13:00:32 -07:00
BasiqueEvangelist
989f2d3001
Add support for hashes in Maven (#264)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2022-01-25 10:57:45 -07:00
Geometrically
2badcfa546
Fix dependency updates and creating versions with no game versions/loaders (#280) 2022-01-24 11:27:39 -07:00
stairman06
643cd87706
Mostly accessibility stuff (#344) 2022-01-20 21:21:13 -07:00
Geometrically
98c85441f8
Fix a lot of bugs - see description (#343) 2022-01-17 21:49:34 -07:00
Prospector
1345f996da
Rework user dropdown, redo mobile navigation, improve 'home' page (#342)
* Merge

* Mobile Navigation + home page fixes

* Remove debug line

* Fix "More" menu text
2022-01-17 21:49:10 -07:00
Emma
ff48f08241
Add OpenSearch for searching mods in browser bar (#337)
For more about what OpenSearch is, see [here](https://developer.mozilla.org/en-US/docs/Web/OpenSearch).
2022-01-12 09:37:45 -07:00
Emma
b5f438aa0c
Fix various issues reported on the Trello (#341)
* Fix various issues reported on the Trello

* Remove accidental additions
2022-01-12 09:37:20 -07:00
Geometrically
384e14b32d
Fix pack URL validation, Version file update route, and spaces in file download URLs (#275) 2022-01-09 15:35:01 -07:00
Redblueflame
a2266adb3f
Add initial support for the v2 of the API (Still WIP) (#250)
* Functionally implement modpacks

* Add LogoAnimated to logo license

* Fix eslint errors

* Add `z-index: 20` to user dropdown (#287)

* Fix pages not working, add changelog page, redesign versions page

* Update theme colors, add OLED theme, update some project creation text. (#292)

* Update theme colors, add OLED theme, update some project creation text.

* Make summary normal text color

* Update favicons, update logos to use dynamic colors, updated filters panel a bit

* Update wording from #250

* Version page rework

* Manually apply some commits from master, other minor v2 fixes (#296)

* Homepage styling improvements (#285)

* Add border radius to video + example code colors

* Change color + allow overflow scroll

* Minor v2 fixes

- Makes multiple loaders display correctly (used to be `Fabric,Forge` is now `Fabric, Forge`
- Fix oopses in #292
- Allow .jar and .zip in file prompt
- Apply 30cbd3a6c372940d1e86cc8134d0dfc7e8e5ee9c to pages/create/project.vue
- Display `fabric, forge` instead of broken icons on pages/create/project.vue

* Markdown styling fixes (#268)

* Add table color variables (+ prettier fixes)

* Add details and table styling to .markdown-body

* Add indexing meta value depending on the status of the mod. (#261)

* General UI Improvement (again) (#255)

* Add and fix some stuff

* Add warning when leaving to `mod/create`

* Fix mods/create not working

* Fix a bug & add improvements to a couple moderation aspects (#278)

This PR fixes reports on the moderation dashboard going to `/dashboard/mod/_id` instead of to `/mod/_id`.
It also allows the ability for moderators to unlist mods in the queue from the frontend instead of having to do it via the backend.
![image](https://i.imgur.com/x8shSVn.png)
Unlisted mods should have the ability to resubmit for approval, so I've also changed "Submit for Review" to "Submit for approval", allowing unlisted mods to do that as well.
![image](https://i.imgur.com/OC8Vyfo.png)

* Add project guidelines to Terms page (#275)

* Add project guidelines to Terms page

This adds the project guidelines as outlined [here](https://discord.com/channels/734077874708938864/734077874708938867/806556531491471368).
NOTE: I've made a few tweaks in wording to accommodate this format, so this is not an exact copy.

* Move rules to its own page

* Allow users to login from search page when it is rendered serverside (#272)

* Change `this.$route.fullPath` → `this.$route.path`

* Closes modrinth/knossos#256

* Wrap mod icon and title in link (#273)

* Wrap mod icon and title in link

* Fixes #218

* Editor's note

    Skipped #249 (search was rewritten), #266 (couldn't figure out how to apply it), #270 (didn't seem to apply properly), #252 (manually merged in with #292), #262 (superceded by #270), #282, #271, #277, #283, and #281 (those five didn't get wiped)

Co-authored-by: venashial <venashial.levo@aleeas.com>
Co-authored-by: Redblueflame <contact@redblueflame.com>
Co-authored-by: Johan Novak <wickedtree@wickedtree.codes>

* SSR descriptions, version edit page

* Working version editing + dependency management (besides files)

* Version create page, file functionality

* Fix some issues with the version page

* More versions page fixes

* Project gallery

* Box shadows, user profile page, WIP header

* Finish user dashboard

* Finish search and fix minor issues

* Moderator page + messages, notifications page

* Fix dropdown menu, fix XSS, fix team members page

* Change doc url on main page (#309)

* Re-Fix docs url (#313)

* Clean up. Part 1: Fix immediate problems (#316)

* Clean up tabs and cards CSS a little

* Fix project page; Remove bad styles from search

* Yeet and flatten lots of styles; fix font sizes

* Restyle search; fix moderation

* Fix profile page

* Remove injected SCSS entirely

* Fix a mobile layout overflowing

* Apiv2-support fixes (#320)

* Fix member user_id -> user.id

* Fix incorrect report redirect

* Change theme switcher from button to multiselect

* Fix remaining items

Co-authored-by: Jai A <jaiagr+gpg@pm.me>

* Fix bugs

* Full mobile support, update create project page, fix various bugs

* New Dark Mode brand colors (#325)

* Use "color-brand-hover" for auth-prompt when hover over

* New dark mode brand colors

* Fix new version featured bug

* Remove old home page, other fixes

* Fix error when merging

* Fix prettier error :(

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: venashial <venashial.levo@aleeas.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
Co-authored-by: Emma <emmaffle@modrinth.com>
Co-authored-by: Johan Novak <wickedtree@wickedtree.codes>
Co-authored-by: Jai A <jaiagr@pm.me>
Co-authored-by: Mysterious_Dev <40738104+Mysterious-Dev@users.noreply.github.com>
Co-authored-by: Mikhail Oleynikov <contact@falseresync.ru>
Co-authored-by: Christian Popov <30723811+Xrey274@users.noreply.github.com>
2022-01-09 15:19:27 -07:00
Geometrically
016e743653
Fix version deletion (#273) 2021-12-29 22:46:37 -05:00
Jai A
00adf3631a
Remove replacing assets index URL in manifest to preserve file integrity 2021-12-20 09:11:40 -07:00
Jai A
09aef18999
Fix incorrect condition for forge and incorrect fabric loader version ordering 2021-12-19 20:51:34 -07:00
Jai A
1d86aac338
Fix java version not being optional 2021-12-19 19:56:56 -07:00
Jai A
80173634a0
Fix java version specifier being in snake case 2021-12-19 19:04:42 -07:00
Jai A
c9598b674c
Fix forge erroring out due to wonky version 2021-12-19 18:52:00 -07:00
Jai A
2a588d1e9a
Make java stuff public, fix forge erroring out due to ratelimiting 2021-12-19 15:09:36 -07:00
Jai A
5a6c06c8a3
Host all loaders for forge, fix stable markers, add java version to daedalus 2021-12-18 22:55:03 -07:00
Geometrically
b2ef4e9619
Fix modpack env field being required (#270) 2021-12-14 22:25:46 -07:00
Geometrically
9e9d6e45b4
Set pack format content type (#269) 2021-12-14 21:07:43 -07:00
Geometrically
6752457ad8
Pack format changes (#268) 2021-12-14 18:08:53 -07:00
Geometrically
ddcb5cd4d3
Fix game version ordering, fix deleting versions with deps not working (#265) 2021-12-09 18:12:21 -07:00
Geometrically
a54b2db81b
Fix gallery creation validation and validators returning incorrect er… (#263)
* Fix gallery creation validation and validators returning incorrect errors

* Remove docker image

* Add URL validation for pack files

* Remove unneeded dependencies
2021-11-30 20:07:23 -07:00
Geometrically
6740124364
Fix search returning incorrect ownership information (#261) 2021-11-24 13:20:25 -07:00
Geometrically
157731e4f8
Remove package lists to preserve space (#260) 2021-11-14 17:49:55 -07:00
Geometrically
2dd1496ef4
Fix HTTPS requests not working in the image (#259) 2021-11-14 16:27:33 -07:00
Geometrically
d1e4e72693
Switch docker image OS (#258) 2021-11-14 14:36:01 -07:00
Geometrically
77e8143290
Fix transferring ownership (#256) 2021-11-13 16:35:21 -07:00
Geometrically
7f791d4919
Move validators to seperate thread, other fixes (#253)
* Move validators to seperate thread, other fixes

* Update rust version in Dockerfile

* Fix notifs not working

* Fix pack validator not enforcing files
2021-11-13 15:46:08 -07:00
Jai A
d7e0468776
Fix library URL being set incorrectly 2021-11-10 18:40:12 -07:00
Jai A
f6c611bbba
Add classpath variable for libraries 2021-11-10 17:34:53 -07:00
Jai A
0990ac4fc1
Add forge data to main version info 2021-11-08 20:17:20 -07:00
Jai A
e91f8f693b
Add local libs to modrinth maven and other fixes 2021-11-07 18:42:33 -07:00
Jai A
2a7dbda133
Bump version + Fix partial version and full version argument joining 2021-11-03 17:49:58 -07:00
Jai A
793e542312
Bump version 2021-11-02 21:44:59 -07:00
Jai A
240269eb25
Fix lib not parsing maven file extensions 2021-11-02 21:44:31 -07:00
Jai A
c744dc8cc3
Bump library version 2021-11-02 20:25:55 -07:00
Jai A
d596bdb454
Fix import errors 2021-11-02 20:24:51 -07:00
Jai A
bec54b4283
Fix action title 2021-11-02 20:20:55 -07:00
Jai A
061b88f5b5
Fix docker action again 2021-11-02 20:19:43 -07:00
Jai A
8704eff632
Fix docker action 2021-11-02 20:17:12 -07:00
Jai A
fb16f25b07
Fixes in forge universal lib + other things 2021-11-02 19:59:10 -07:00
Jai A
e8057a5c8a Fix incorrect docker registry 2021-10-24 16:22:02 -07:00
Geometrically
3c5edb6171
Delete clippy.yml~ 2021-10-24 16:18:17 -07:00
Jai A
e36a191240
Fix incorrect file names (again) 2021-10-24 16:16:49 -07:00
Jai A
ecdfd65f50
Fix incorrect file names 2021-10-24 16:16:23 -07:00
Jai A
4294081abb
Add GitHub actions again 2021-10-24 16:13:04 -07:00
Jai A
5218543c58
Add GitHub Actions 2021-10-24 16:10:38 -07:00
Jai A
d8332a27e5
Finish newer forge versions 2021-10-24 14:25:24 -07:00
Jai A
673658dfd2
Simplify mod loader manifests, start work on new forge profiles 2021-10-19 23:08:44 -07:00
Jai A
6528d3d7da
Legacy Forge Support (forgot to git add) 2021-10-17 23:23:27 -07:00
Jai A
16af479b83
Legacy Forge Support 2021-10-17 23:22:23 -07:00
Leo Chen
13187de97d
Rustic cleanups, dedups and making the code less hard to read in general (#251)
* typos :help_me:

* (part 1/?) massive cleanup to make the code more Rust-ic and cut down heap allocations.

* (part 2/?) massive cleanup to make the code more Rust-ic and cut down heap allocations.

* (part 3/?) cut down some pretty major heap allocations here - more Bytes and BytesMuts, less Vec<u8>s

also I don't really understand why you need to `to_vec` when you don't really use it again afterwards

* (part 4/?) deduplicate error handling in backblaze logic

* (part 5/?) fixes, cleanups, refactors, and reformatting

* (part 6/?) cleanups and refactors

* remove loads of `as_str` in types that already are `Display`

* Revert "remove loads of `as_str` in types that already are `Display`"

This reverts commit 4f974310cfb167ceba03001d81388db4f0fbb509.

* reformat and move routes util to the util module

* use streams

* Run prepare + formatting issues

Co-authored-by: Jai A <jaiagr+gpg@pm.me>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2021-10-11 20:26:59 -07:00
Jai A
32850f6770
Fabric support 2021-10-09 14:04:45 -07:00
Jai A
4a7f4bde4a
Working mirroring of minecraft metadata 2021-10-05 22:52:17 -07:00
venashial
c518f373df
Makes mod editing only send changed data (#286)
* Add getDifferences lib

* Only send mod diff to backend for changes

* Disable fields when lacking permissions
2021-10-02 16:47:59 -07:00
Kir_Antipov
0010119440
Maven repo should return primary file by default (#252)
* Maven repo should return primary file by default

* Added fallback for versions that don't have a primary file
2021-10-02 16:10:16 -07:00
Emma
f4636fdca2
Direct people to docs for contributing (#306)
[no ci]
2021-10-02 14:29:33 -07:00
Emma
91065a6168
[no ci] Remove contributing file and instead direct people to docs (#248)
This fixes a long standing issue where people would point to the frontend homepage where it says 'fully documented' then point to the README here and say 'well that's sure hypocritical'

Thus the branch name :tiny_pumpkin:

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2021-09-26 15:41:10 -07:00
Redblueflame
efa8d5c575
Added monitoring, limited concurent connections (#245)
* reduced the default, and added environment override.

* Using parse is more stable and doesn't fail CI this time :P

* Added support for monitoring
This support is currently basic, but it can be improved later down the road.

* Forgot scheduler file

* Added health check

* Cargo fix

* Update cargo.lock to avoid action fails.

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2021-09-20 21:26:16 -07:00
Mysterious_Dev
4108d7827a
Issues Forms (#304)
* Issues Forms

* Fix mistake

* Delete title
2021-09-11 19:26:15 -07:00
Geometrically
04998d0215
Fix gallery validation (again) (#247)
* Remove accidental URL validation for gallery

* Remove accidental URL validation for gallery
2021-09-02 22:39:29 -07:00
Geometrically
d0efa5d3fe
Remove accidental URL validation for gallery (#246) 2021-09-01 21:19:49 -07:00
Geometrically
c87e72e08e
Switch to alternate query strategy which simplifies code (#244) 2021-09-01 06:04:38 -07:00
Geometrically
efb82847cb
Switch to ARRAY_AGG for database aggregations to improve peformance + fix gallery images not showing up (#242) 2021-08-31 15:29:51 -07:00
Geometrically
f37e267a5e
Make gallery item featuring exclusive (#241)
* Make gallery featured value exclusive

* Run prepare
2021-08-29 15:18:45 -07:00
Geometrically
69928219a3
Fix project creation hash lookups failing (#239) 2021-08-25 23:18:44 -07:00
apersomany
5ccd40f530
Fixed minor issues (#291)
* Fixed xss sanitizer config for checkboxes

* Fixed typo in version navigation tree href

* Fixed navigation tabs' margins with pure css

* Prettier

For some weird reason my prettier config seems to be different

Co-authored-by: Redblueflame <contact@redblueflame.com>
2021-08-23 14:39:03 +02:00
venashial
8798340d48
Allow Youtube through iframes + using image syntax in markdown (#294)
* Allow iframes in markdown from acceptable sources

* Remove Discord from allowed sources

* Make youtube regex more specific

* Fix prettier not wanting new line for regex

* Extend image syntax to autodetect youtube links

* Fix image rendering to support normal images
2021-08-23 14:34:04 +02:00
Emma
e8d2959350
Add follow count & user ID to user page (#253)
* Add follows & user ID to user page
Closes #192

* Why did package lock change?

* Change name follows -> followers
2021-08-23 14:31:44 +02:00
Geometrically
fdf8845a2f
Fix validators (#237)
* Fix file extension checks not working

* Fix validators not validating files of a non-matching extension
2021-08-22 09:11:38 -07:00
Geometrically
4073a7abc3
Force files to be unique, require all new versions to have at least one file (#236) 2021-08-21 19:38:32 -07:00
Geometrically
ffd9a34cf5
Query optimization (#235)
* Optimize version queries and decrease some query complexity

* Run formatter
2021-08-20 16:33:09 -07:00
Johan Novak
07226c6d21
Fix Docs Link (#233)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2021-08-14 12:39:06 -07:00
Geometrically
b1bc7c1fc2
Add fields to gallery items (#234) 2021-08-05 22:01:26 -07:00
Geometrically
1b33f0cea9
Fix multiple projects query taking seconds to complete (#232) 2021-08-01 19:55:36 -07:00
Geometrically
8ece3b00f5
Fix project dependencies returning invalid values (#231)
* Fix project dependencies returning invalid values

* Run prepare
2021-08-01 16:11:07 -07:00
Geometrically
c9c58b65a6
Optimize dependencies route and change return value (#230) 2021-07-31 19:23:06 -07:00
Geometrically
66becbc4cc
Fix dependencies route only showing one dependency per version (#229) 2021-07-28 11:34:47 -07:00
Geometrically
5b8612c919
Fix dependency route having incorrect return value (#228) 2021-07-27 18:48:56 -07:00
Geometrically
430c22e06e
Add gallery parameter to meilisearch attributes (#227) 2021-07-27 18:10:40 -07:00
Geometrically
76b62eda3a
Allow gallery featuring, add gallery images to search, rename rejection reasons, transfer ownership route (#226) 2021-07-27 16:50:07 -07:00
venashial
bc983162f3
Detect if redirect url contains a query string (#225) 2021-07-27 16:31:41 -07:00
Geometrically
4922598aee
Add gallery item deletion + making them optional (#224) 2021-07-21 09:54:29 -07:00
Geometrically
b2f8bb9990
Fix panic on requesting projects (#223) 2021-07-19 14:47:14 -07:00
Geometrically
9ee92fb9e9
Project gallery, webhook fixes, remove cache, re-enable donation URLs (#222) 2021-07-19 11:30:39 -07:00
venashial
f1d838de6b
Homepage styling improvements (#285)
* Add border radius to video + example code colors

* Change color + allow overflow scroll
2021-07-17 17:37:40 -07:00
Emma
ec92a4cd34
Fix a bug introduced in #278 ("submit for approval" always being present) (#283)
This fixes a bug where the "Submit for approval" button was always present no matter the project status. These things are finnicky.
2021-07-14 12:10:01 -07:00
Geometrically
b3b9788d37
License clarification on modrinth branding (#282)
* License clarification on modrinth branding

* Add favicon
2021-07-11 14:42:05 -07:00
venashial
67739e8e39
Correctly handle "" as custom license URL (#271)
* Fix `mod.license.url` check

* Fixes modrinth/knossos#267
2021-07-11 09:06:06 -07:00
Emma
be3ed7d380
Improve MIME type detection (fixes #279) (#281)
* Specify which application file types are allowed

* Attempt two

* attempt 3

* Update version edit too

good thing these commits will be squashed!

* Fix warnings
2021-07-11 09:05:21 -07:00
venashial
9b4d58cfe8
Add mod title to mod page meta description (#277) 2021-07-02 10:04:49 -07:00
venashial
fb6a8d999c
Mod search fixes (#249)
* Remove all uses of `process.env.domain`

* Revert "Remove all uses of `process.env.domain`"

This reverts commit 5af9b83091f395d3a0f954cf6776494c1cfe7a04.

* Increase minimum amount of pages for pagination

Fixes modrinth/knossos#231

* Detect mod search query removal

Fixes modrinth/knossos#240

* Increase margin on project card categories mobile

Fixes modrinth/knossos#230
2021-07-02 10:04:08 -07:00
venashial
b2f6a06a1f
Wrap mod icon and title in link (#273)
* Wrap mod icon and title in link

* Fixes #218
2021-07-02 10:02:55 -07:00
venashial
f7da32702f
Allow users to login from search page when it is rendered serverside (#272)
* Change `this.$route.fullPath` → `this.$route.path`

* Closes modrinth/knossos#256
2021-07-02 10:02:15 -07:00
Emma
219d2246fa
Add project guidelines to Terms page (#275)
* Add project guidelines to Terms page

This adds the project guidelines as outlined [here](https://discord.com/channels/734077874708938864/734077874708938867/806556531491471368).
NOTE: I've made a few tweaks in wording to accommodate this format, so this is not an exact copy.

* Move rules to its own page
2021-07-02 10:01:24 -07:00
Emma
979b5eb89c
Fix a bug & add improvements to a couple moderation aspects (#278)
This PR fixes reports on the moderation dashboard going to `/dashboard/mod/_id` instead of to `/mod/_id`.
It also allows the ability for moderators to unlist mods in the queue from the frontend instead of having to do it via the backend.
![image](https://i.imgur.com/x8shSVn.png)
Unlisted mods should have the ability to resubmit for approval, so I've also changed "Submit for Review" to "Submit for approval", allowing unlisted mods to do that as well.
![image](https://i.imgur.com/OC8Vyfo.png)
2021-07-02 09:58:29 -07:00
venashial
a58811b1bf
Fix notifications not being able to be dismissed (#270)
* Change undefined check to null check

* Make notification index and action index more clear

Fixes #178
2021-06-21 21:32:17 +02:00
venashial
be0e18d4b0
Markdown styling fixes (#268)
* Add table color variables (+ prettier fixes)

* Add details and table styling to .markdown-body
2021-06-21 21:06:11 +02:00
Geometrically
981bf1d56f
Fix caching bug, and moderation webhook being sent at the wrong time (#215) 2021-06-19 22:01:11 -07:00
macbrayne
fea6f0ce81
fix #237 by alphabetically sorting the licenses (#266) 2021-06-19 21:17:41 +02:00
Johan Novak
5859ac7a58
General UI Improvement (again) (#255)
* Add and fix some stuff

* Add warning when leaving to `mod/create`

* Fix mods/create not working
2021-06-17 22:03:12 -07:00
Geometrically
d2c2503cfa
Final V2 Changes (#212)
* Redo dependencies, add rejection reasons, make notifications more readable

* Fix errors, add dependency route, finish PR

* Fix clippy errors
2021-06-16 09:05:35 -07:00
venashial
566833da6e
Fix first notification not performing action (#262)
* Change IF statement to accept 0

* Get rid of console.log()
2021-06-10 13:44:26 -07:00
Redblueflame
d174602cc0
Add indexing meta value depending on the status of the mod. (#261) 2021-06-10 07:17:03 -07:00
Geometrically
2a4caa856e
More APIv2 Fixes (#210)
* Refactor search to not spam the database with queries, new utility routes for V2

* Run prepare

* More V2 Fixes

* Run prepare + formatter
2021-06-05 20:59:21 -07:00
Emma
46bc04f69f
Adjust quite a bit of wording (#252)
* Adjust quite a bit of wording
Also converts many title case things to sentence case (fixes #238)

* Change advised to recommended

* Oops, I missed a page

* That page too

* Missed a spot
2021-06-05 20:34:43 -07:00
Geometrically
157962e42a
Improve peformance of search indexing, v2 fixes + new routes (#205)
* Refactor search to not spam the database with queries, new utility routes for V2

* Run prepare
2021-06-02 18:33:11 -07:00
Geometrically
16db28060c
Project Types, Code Cleanup, and Rename Mods -> Projects (#192)
* Initial work for modpacks and project types

* Code cleanup, fix some issues

* Username route getting, remove pointless tests

* Base validator types + fixes

* Fix strange IML generation

* Multiple hash requests for version files

* Fix docker build (hopefully)

* Legacy routes

* Finish validator architecture

* Update rust version in dockerfile

* Added caching and fixed typo (#203)

* Added caching and fixed typo

* Fixed clippy error

* Removed log for cache

* Add final validators, fix how loaders are handled and add icons to tags

* Fix search module

* Fix parts of legacy API not working

Co-authored-by: Redblueflame <contact@redblueflame.com>
2021-05-30 15:02:07 -07:00
venashial
bb8fd5500d
Remove all uses of process.env.domain (#247)
* Remove all uses of `process.env.domain`

* Remove broken link on logout on revoke token page
2021-05-28 22:39:35 -07:00
Geometrically
d0df105dda
Move auth domain to public runtime config (#246)
* Allow specifying a custom auth URL

* Readd default

* Move Host URL to top

* wat

* Move auth domain to public runtime config
2021-05-28 21:32:06 -07:00
Geometrically
a061fb5421
Allow specifying a custom auth URL (#245)
* Allow specifying a custom auth URL

* Readd default

* Move Host URL to top

* wat
2021-05-28 13:57:13 -07:00
Redblueflame
fd17e5a4c0
Add retrying logic for ethical ads, add variable for the API url (#244) 2021-05-28 13:20:22 -07:00
Geometrically
cd8bc7a7a1
Fix base URL conflicting with default axios ones (#243) 2021-05-28 12:43:44 -07:00
Geometrically
e22a586a41
Allow Base URL to be set by environment variable (#242)
* Switch site to use axios base url

* Fix team invites

* Fix find/replace setting the wrong thing

* Fix analytics being blocking, small issues

* Allow base url to be set by env variable
2021-05-28 12:26:05 -07:00
Geometrically
5017c5a5f1
Use base URL for axios (#241)
* Switch site to use axios base url

* Fix team invites

* Fix find/replace setting the wrong thing

* Fix analytics being blocking, small issues
2021-05-28 10:19:13 -07:00
venashial
03cbab5267
Checkboxes: use v-model value prop instead of "checked" prop (#227)
* Use v-model value prop instead of "checked" prop

* Scope CSS & Rename component

* Mod settings: Update prop & make Owner check all
2021-05-27 21:00:44 -07:00
venashial
2c22837d9f
Fix notification & follow list sorting, Add notification badge + loading animation (#206)
* Order notifications and followed mods

Fixes modrinth/knossos#195

* Add user notification badge on avatar

Closes modrinth/knossos#145

* Add loading animation

* Chain calls, remove console.log

* Chain calls

* Fix formatting to match prettier

* Remove unused userFollows

* Create user vuex store

* Add notification count indication on dashboard

* Fix background for light mode

* Move delay check to action, add force parameter

* Slightly decrease notification badge opacity on dashboard

* Remove SVG for image masking, use border around bubble

Also adds CSS for when the dropdown is opened/hovered

* Fix merge conflicts

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2021-05-27 09:32:34 -07:00
venashial
4d64df37f5
Versatile auth URLs & many UI fixes (#199)
* Make project cards right-align their last element

Spaces out elements in a `.project-card` using `justify-content: space-between;`.

Fixes modrinth/knossos#170

* Automatically set URL for auth redirect

* Make login button use base url or current origin

Allows the login button to work in dev environment

* Remove Axios base URL trailing slash

* Update authUrl() on dashboard to match default

* Remove 'code' query from URL on page load
Allow non-exact paths to highlight mod & dashboard tabs

Fixes modrinth/knossos#200

* Make page 5 button visible on page 4 (pagination)

Fixes modrinth/knossos#184

* Color links on legal pages

Fixes modrinth/knossos#166

* Set max notifications to 5 and ignore duplicates

Fixes modrinth/knossos#175

* Add space above report button when no user desc

Fixes modrinth/knossos#143

* Better text spacing from edge of mobile screen

Fixes modrinth/knossos#179

* Fix slanted bars in modrinth/knossos#57

* Fix checkbox grid and role label

Fixes modrinth/knossos#191

* Move mod 'settings' button to the far right

Fixes modrinth/knossos#138

* Abbreviate minutes to min. when time is too long

Not a perfect solution imo, but works for now

Fixes modrinth/knossos#193

* Fix mobile header margins & add breakpoints

Fixes modrinth/knossos#203

* Clean up nuxt config
Silence babel warning & styleResources

* Upgrade sass-loader to 10.1.1 and remove warning

* Remove added horizontal footer padding

https://github.com/modrinth/knossos/pull/199#discussion_r629011624

* Improve mobile header fix

* Fix up minor inconsistencies in mod header

* Remove hard coded date

* Cleans up pagination to be more intuitive

* Fixes member invite input on moble

* Fix login button when searching mods

* Improved mobile mod search

Consistently sized pagination buttons

Breakpoint for sort buttons on smaller screens

* Consistent link style on text-only pages

* Better 4k support

* Slightly better mobile project-card support

Shuffles categories under mod icon when there is room

* Animate homepage typewriter effect backwards

* Tiny commit to align mod icons in mod headers

* Make processing status include 'Under Review'

This can be later updated once the backend has a separate status

* Create vercel.json

* Update domain auto detection

* Test vercel NODE_ENV

* Remove console.log for debugging hosting services

* Make mobile first + fix shrinked text circle size

* Optimize SVG

* Change media queries to be more mobile first

* Remove `|| window.location.origin`

* re-deploy vercel

* Change "Processing" message to "Under review"
2021-05-27 09:27:13 -07:00
Geometrically
b224f1d78d
Fix descriptions not showing for some mod pages (#228) 2021-05-26 13:45:21 -07:00
venashial
52e018989d
Add show snapshots to URL + Add snapshot checkbox (#210)
* Add show snapshots to URL + Add snapshot checkbox

* Revert spacing changes

* Make checkbox more reusable

* Use new checkbox for team permissions

* Remove XMLNS from imags/utils SVGs
2021-05-25 22:26:14 -07:00
Johan Novak
eb14193b23
Small Landing Page Fixes (#226)
* Front Page Fixes

* add webm video format
2021-05-25 22:24:44 -07:00
Redblueflame
001c2c88cd
Fixed issue where ads would not show in some places. (#225) 2021-05-24 09:58:59 -07:00
venashial
98ab83976e
Hide report button on user's own page (#222)
* Create vercel.json

* Add user ID check to report button

* Revert "Create vercel.json"

This reverts commit 3b261f09faa25fec6409fb3ddfc7b56d68ffb348.
2021-05-20 15:55:45 -07:00
Redblueflame
9cd5bf2992
Fixed issue where ads would not show in some places. (#216) 2021-05-20 15:44:21 -07:00
venashial
e876712af5
Revert "Fix report on own user page (#220)" (#221)
This reverts commit 9fc8d666016625969d941f833695bc7a24bd0d24.
2021-05-20 15:40:17 -07:00
Mysterious_Dev
9fc8d66601
Fix report on own user page (#220) 2021-05-21 00:18:29 +02:00
Redblueflame
12d86493bf
Switch ads provider, and switch the analytics system to Ariadne (#214)
* Switch ads provider, and switch the analytics system to Ariadne

* Fix CI error

* Remove debug messages and errors

* Updated nuxtjs
2021-05-18 07:48:26 -07:00
venashial
c97cba69b9
Client-side/server-side filters (#204)
* Add client and server side categories

* Quick fix for mistyped facet

* Get rid of console.logs used for debugging

* Re-add eslint overrides

* Optimize SVG

* Simplify .includes() checks
2021-05-16 12:35:46 -07:00
Jai A
63ed7a734b
Fix downloading files on version pages not working 2021-05-11 20:23:26 -07:00
Geometrically
0e338ef453
Move mod pages to nuxt child (#201)
* Move mod pages to nuxt child

* Minor fixes

* Fix lockfile
2021-05-10 21:35:03 -07:00
Jai A
d914b38f9f
Fix some page components not being imported 2021-05-02 16:22:52 -07:00
Geometrically
3ee00a4824
Remove analytics (#197) 2021-05-02 14:58:27 -07:00
Mysterious_Dev
5198c69f6b
Fix "Available For" None (#189) 2021-04-28 20:13:52 -07:00
Emma
40704c4549
Add more detailed infos to about page (#180) 2021-04-24 19:54:33 -07:00
Milan
83df59e5f1
Allow webp images on mod creation (#186) 2021-04-24 19:53:48 -07:00
Milan
246602e275
Allow webp images on mod edit (#185) 2021-04-24 19:53:39 -07:00
Emma
d3449609da
Add 'Switch to Dark/Light Mode' to header & footer (Fixes #174) (#177)
* Add 'Switch to Dark/Light Mode' to footer (Fixes #174)

* Cursed mess

* Adds mobile header dark/light mode toggle

I do not like CSS.
Mobile works fine, desktop does not

* Remove unused div & other things I don't remember

* Fixes dark/light mode toggles on desktop

Also simplifies css for footer slightly.
Sometimes a good night's sleep really does do ya good.
https://cdn.discordapp.com/attachments/745980892735864953/835256687803367464/modrinth-2021-04-23_16.50.59.webm

* that was a mistake for the login button but it actually works well
2021-04-24 19:52:49 -07:00
Mysterious_Dev
a872058704
Fix page title for dashboard (#181)
* Fix page title for dashboard

* Fix Notifications page title

* Fix My Mods title

* Fix M lowercase
2021-04-24 19:51:39 -07:00
Mysterious_Dev
3033376028
Fix "Available For" field who is set to None (#183)
* Fix "Available For" field who is set to None

* Fix 2
2021-04-24 19:51:02 -07:00
Mysterious_Dev
712424c339
Add alphabetically sorting (#190) 2021-04-24 19:44:11 -07:00
Redblueflame
0bda636113
Added mobile friendly ads & ads (#161)
* Fix spacing issues on mobile

* Added back linting on modules directory.
Please don't look at the dirty fixes :x

* Add support for responsive ads.

* Add lazy loading of images.
2021-04-15 06:48:33 -07:00
Geometrically
28092d6862
Remove analytics consent (#163)
* Remove analytics consent

* Use watch for cookie popup visibility

* Fix double scrollbar, delete account not centered
2021-04-11 14:31:21 -07:00
Jai A
cecafb726c
Change auth token lifetime 2021-04-11 11:39:05 -07:00
Jai A
8418c21096
Fix privacy settings not reflecting cookie values 2021-04-11 11:21:41 -07:00
Redblueflame
c4ace1972a
Fix server error (#160) 2021-04-11 19:41:19 +02:00
Redblueflame
862df1d2df
Fixed double scrollbar (#159) 2021-04-11 10:03:52 -07:00
Redblueflame
487c1a58d6
Fix issues (#158)
* Fix accept all button simply not working

* Switched privacy settings icons to a shield
Fixed auth changing the theme and consent
Fixed server error on log in / out

* Fixed scrolling issue on mobile

* Fixed GPDR concerns
2021-04-11 08:21:07 -07:00
Geometrically
c06c3d48d2
Partial Mobile Support (#156)
* Add partial mobile support

* Remove file used for seperate PR

* Add mobile support for cookie consent, make dropdown close on page change
2021-04-10 22:51:10 -07:00
Jai A
7d3ad5a639
Fix issues with privacy settings 2021-04-10 21:54:16 -07:00
Redblueflame
03b2d02742
Change ads provider, and add consent system for advertising (#155)
* Add GAM integration & base for GPDR consent

* Moved consent to a specific page.

* Added functionality to the privacy page, and desactivate tracking if consent is not given.

* Added GeoEdge support, and fixed auth issues

* Fix actions issue

* Fix actions issue, attempt 2

* Added a module for analytics with consent support.

* Remove unnecessary function

* Add support for runtime config
2021-04-08 19:44:25 -07:00
Ruby
103ce44ba9
Update _id.vue (#152)
* Update _id.vue

https://discord.com/channels/734077874708938864/734077874708938867/828344523205246976
@Geometrically

* fix eslint?

* fix eslint
2021-04-04 19:38:37 -07:00
BasiqueEvangelist
22219af133
Fix adding team members (#153) 2021-04-04 19:38:20 -07:00
Emma
7d7377ab15
Fix two typos & clarify some wording (#147)
* Fix two typos

* Clarify a bit of wording
2021-03-31 18:59:29 -07:00
Redblueflame
af8fc53704
Layout refactor (#150)
* Revert recent commits

* Move things around, and do preparation work for nested page systems.

* Fixed issue on side bar not appearing
2021-03-31 19:09:18 +02:00
Jai A
e80a5d82a4
Fix icons not showing up 2021-03-30 21:52:04 -07:00
Jai A
2b73e745da
Bring back popup 2021-03-30 21:45:49 -07:00
Jai A
e61a1080f7
Organize components, switch auth to not use session 2021-03-30 21:38:12 -07:00
Redblueflame
464f336790
Confirm popups (#135)
* Added confirmation popup for account deletion
(I nearly deleted my account twice, please help me)
Added component for easy adding of new confirmation popups.

* Add confirmation popup for mod deleting

* Add confirmation popup for version & file deletion

* Changed the placeholder to a generic value
2021-03-30 09:02:45 -07:00
Redblueflame
1dc6e085cc
Ordered the licences in alphabetical order, and put custom at the bottom (#134)
* Ordered the licences in alphabetical order, and put custom at the bottom.

* Fixed package-lock.json version change
2021-03-30 09:02:26 -07:00
Redblueflame
8594ff0c23
Automatic redirection once you create a new version (#137) 2021-03-30 08:43:28 -07:00
Redblueflame
e58963410e
Added illustration & mezssage when a page doe not contain any mod / projects (#133)
* Added new messages with illustration displaying that this page does not contain any elements
Fixed 404 error after deleting mod

* Fixed typo
2021-03-30 08:41:20 -07:00
Jai A
1e0d118930
Final auth fix 2021-03-29 19:15:18 -07:00
Jai A
723e6dd13f
Fix auth again 2021-03-29 18:34:57 -07:00
Jai A
e941af0905
Fix broken login button 2021-03-29 18:14:06 -07:00
Geometrically
24c8e29691
More secure custom authentication solution (#126)
* Remove Nuxt Auth from the project, and switch to a custom solution

* Replace old testing code

* Remove warnings

* Add comments to hard to understand function calls in middleware

* Use arrow functions
2021-03-29 09:43:00 -07:00
Siphalor
8911bdf966
Fix #85 (Notification icon sized incorrectly for short user names) (#127) 2021-03-29 17:15:39 +02:00
Redblueflame
0834759e1a
Add version support for the docker builds & local builds. (#128)
Add experimental support for github actions
2021-03-29 16:51:49 +02:00
BasiqueEvangelist
15c56dfcb8
Maven endpoint support (#180)
* Basic maven endpoint

* Clean up maven endpoint

* cargo sqlx prepare

* Minor cleanup

* Remove indentation

* Borrow &str instead of &String

* Refactor mod_data-getting
2021-03-29 10:36:55 +02:00
Redblueflame
b98ad47618
Fixed spacing (#181)
Co-authored-by: 0SoggyMustache0 <george@georgekazan.dev>

Co-authored-by: 0SoggyMustache0 <george@georgekazan.dev>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2021-03-28 22:30:56 -07:00
Redblueflame
4778c5f5e8
Github container repository support (#183)
* Add GHCR support

* Add layer caching
2021-03-28 14:01:19 -07:00
MulverineX
d041671dc5
Update banner URL & Fix spelling (#105)
* Update banner URL

From https://gist.github.com/MulverineX/6f0a27bc67692f14567816ce1c3f7710 instead of a discord attachment

* Fix spelling of proper laboratory

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
Co-authored-by: Redblueflame <contact@redblueflame.com>
2021-03-28 12:40:21 -07:00
Redblueflame
bb8c0d264e
Github Container Registry support (#125)
* Initial tests for ghcr.io integration

* Fixed login issue

* Try with only GHCR

* Removed unused system

* Time to break everything with hub.docker.com support

* Fix format error

* Update dockerfile to use latest recommended version of nodejs.
2021-03-28 12:27:17 -07:00
Redblueflame
c7da8c5fd3
Follow page, and edit button consistency (#123)
* WIP: Added base for follow page

* Updated style for moderation page, and added label for unfollow button (not sure about that one)

* Fixed overflow issue, and width of element

* Updated npm to restore the package-lock.json file
2021-03-28 09:20:40 -07:00
Geometrically
5cab65d197
Fix #178 (#179) 2021-03-26 22:10:30 -07:00
Jai A
30789ff6e2
Merge 2021-03-26 22:08:13 -07:00
Jai A
e6ece10716
Fix #9, Fix #42, Fix #48, Fix #95, Fix #96, Fix #97, Fix #99, Fix #119. Fix 120 2021-03-26 22:07:15 -07:00
TheEpicBlock
ea7a255006
Implement header ids (#115) 2021-03-14 10:46:47 -07:00
Jai A
98df1f5312
Follows + Reports 2021-03-11 18:14:11 -07:00
Jai A
b5bf627fb1
Fix ID serialization being broken on report create route 2021-03-11 15:52:38 -07:00
Jai A
6104150b77 Fix users not being able to see their own unapproved mods 2021-03-11 10:32:47 -07:00
Jai A
a13bae2f39
Fix report create route 2021-03-10 20:20:37 -07:00
Jai A
fd80e98207
Register report type routes 2021-03-09 21:18:04 -07:00
Jai A
f43b95f001
Fix primary files not showing when requesting multiple versions 2021-03-09 13:40:19 -07:00
Geometrically
38802d3522
Fix primary files, file deletion, checks for mod following, fix user following route (#175) 2021-03-08 12:52:48 -07:00
Jai A
9f7813622d
Fix team invites 2021-03-07 20:46:04 -07:00
Jai A
75d67207aa
Register users notification route 2021-03-07 18:53:38 -07:00
Jai A
e596a8f731
Fix search 2021-03-07 18:44:24 -07:00
Jai A
5b0cc73792
Change server side and client side fields to optionals 2021-03-07 17:52:04 -07:00
Jai A
2163d4465f
Fix license field not working: 2021-03-07 17:07:32 -07:00
Jai A
8becf45714
Fix broken search 2021-03-07 16:39:47 -07:00
Jai A
2bf08787d8
Switch notifications to new route, fix normal text from being bright white 2021-03-07 16:12:11 -07:00
Jai A
853ead26ca
Register notification routes, add action method for notifications, and fix auto-featuring versions 2021-03-06 13:47:49 -07:00
Geometrically
0ccb6cb873
Follows (#172)
* Follows initial

* Fix #171, Fix #170, Fix #169, Fix #164

* More work on follows

* Fix compile error

* Upgrade meili version, add follows to search
2021-03-04 20:35:23 -07:00
Prospector
b8f7e4211c
Clarify that monetization is not yet available (#110) 2021-02-25 07:34:53 -07:00
BasiqueEvangelist
e46ff3de8b
Add slug validation (#168) 2021-02-23 08:04:10 -07:00
BasiqueEvangelist
b581d0c44f
Fix uploading files to existing versions (#106) 2021-02-20 20:37:17 -07:00
Jai A
0b613812f7
Fix #93, Fix #105, Add Mod Secondary Nav Bar, Add featured versions, Remove page transition, Make load bar smaller 2021-02-14 12:02:23 -07:00
Geometrically
a02e08a879
Fix featured versions sorting (#166)
* Reports WIP

* Finish reports

* Clippy fixes

* Fix featured versions sorting

Co-authored-by: Geometrically <geometrically@pop-os.localdomain>
2021-02-13 22:38:00 -07:00
dependabot[bot]
4d066a762f
Bump marked from 1.2.0 to 2.0.0 (#104)
Bumps [marked](https://github.com/markedjs/marked) from 1.2.0 to 2.0.0.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/release.config.js)
- [Commits](https://github.com/markedjs/marked/compare/v1.2.0...v2.0.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-02-13 13:00:14 -07:00
Geometrically
109d7d87bd
Reports (#165)
* Reports WIP

* Finish reports

* Clippy fixes

Co-authored-by: Geometrically <geometrically@pop-os.localdomain>
2021-02-13 12:11:13 -07:00
Geometrically
3df740702c
Fix version hash (#154) 2021-01-30 16:51:32 -07:00
Geometrically
8a30a65818
Fix lint 2021-01-29 20:53:57 -07:00
Geometrically
01703aff43
Visual fixes 2021-01-29 20:49:13 -07:00
Geometrically
06bb6f7bff
Dependencies, fix panic on version get, Filtered Versions route (#153) 2021-01-29 20:35:29 -07:00
Mysterious_Dev
9d62931af9
Fix Discord and wiki not open new tab (#94) 2021-01-29 16:05:47 -07:00
Geometrically
e33738a876
Fix queries, also add error message for database (#152) 2021-01-28 14:36:53 -07:00
Geometrically
f887f5dca3
Return database error so I can actually debug this 2021-01-28 11:15:29 -07:00
Geometrically
257c16690a
Merge pull request #151 from modrinth/fix-duplicates
Fix some mods and versions 'dissapearing'
2021-01-28 09:36:23 -07:00
Geometrically
7114e88992
Merge branch 'master' into fix-duplicates 2021-01-28 09:08:08 -07:00
Geometrically
de7e869ca9
Fix some mods and versions 'dissapearing' 2021-01-28 09:07:10 -07:00
Geometrically
eaee9c9522
Merge pull request #150 from modrinth/fix-duplicates
Fix several bugs
2021-01-27 16:01:03 -07:00
Geometrically
bee11a6d41
Fix several bugs 2021-01-27 15:43:44 -07:00
Geometrically
647e44147f
Merge pull request #149 from modrinth/fix-version-get
Fix version get
2021-01-27 09:18:08 -07:00
Geometrically
4a5d46915d
Fix version get 2021-01-27 08:46:38 -07:00
Geometrically
8ad19585cb
Merge pull request #148 from modrinth/sentry
Sentry Integration
2021-01-27 07:27:21 -07:00
AppleTheGolden
951a33fae9
Add Sentry integration 2021-01-27 14:38:18 +01:00
Geometrically
bcf174cd1e
Delete labelsync.yml 2021-01-25 15:27:04 -07:00
Geometrically
1e82909f58 Update issue templates 2021-01-25 15:23:07 -07:00
Geometrically
33e83b8414
Merge pull request #144 from modrinth/query-optimizations
Fixes
2021-01-25 14:43:43 -07:00
Geometrically
592c56cb20
Merge branch 'master' into query-optimizations 2021-01-25 14:43:36 -07:00
Geometrically
710528c01a
Fixes 2021-01-25 14:42:26 -07:00
Geometrically
03cadc2604
Delete labels.yml 2021-01-25 14:35:57 -07:00
Geometrically
dd73bb95a4
Merge pull request #143 from modrinth/query-optimizations
Query Optimization
2021-01-25 14:14:42 -07:00
Geometrically
40e0a55378
Merge branch 'master' into query-optimizations 2021-01-25 13:51:48 -07:00
Geometrically
269884d9f3
Fix docker build failing 2021-01-25 13:15:32 -07:00
Geometrically
fcd548c313
Fix queries not working 2021-01-25 13:00:04 -07:00
Geometrically
140a8b6804
Fix docker image build failing 2021-01-24 22:49:28 -07:00
Geometrically
b5378c1296
Query Optimization 2021-01-24 21:33:32 -07:00
Prospector
e53d8fd4fa
Mod icons link to the mod page (#92) 2021-01-23 22:16:03 -07:00
Prospector
0dbde32ed4
Attempt to fix flex-shrink issue with Safari (#90) 2021-01-23 17:51:08 -07:00
Geometrically
1445d6ea8c
Merge pull request #142 from modrinth/follows
Hotfix everything broken
2021-01-23 11:49:12 -07:00
Geometrically
5385431051
make compile 2021-01-23 11:37:25 -07:00
Geometrically
f14f4498fb
Hotfix everything broken 2021-01-23 11:32:32 -07:00
Geometrically
d506fdb68c Merge branch 'master' of https://github.com/modrinth/knossos 2021-01-22 22:44:07 -07:00
Geometrically
9c10186158
Mod page fixes, better ad wrapper to make it look better with the site 2021-01-22 22:43:55 -07:00
boredomh1
3eed51dbac
Fix summary tags being always escaped by XSS (#84)
* Fix summary tags being removed by XSS

* Follow falseresync's suggestion

Co-authored-by: joaoh1 <joaoh1@users.noreply.github.com>
2021-01-21 14:40:09 -07:00
Geometrically
1c1855f0c3
Fix possible (?) page hang 2021-01-18 11:40:44 -07:00
Geometrically
e0a277fa45
Fix version ordering 2021-01-18 11:15:34 -07:00
Geometrically
3d6c7171d2
Remove version moderation 2021-01-18 10:47:04 -07:00
Geometrically
fc2786f5e8
Merge pull request #138 from modrinth/fixes
A number of fixes
2021-01-18 10:46:17 -07:00
Geometrically
174dbb5e74
Fix auth params, Add params to indexing, Order version game versions, Remove version moderation, Return donation platforms in get routes 2021-01-18 10:10:45 -07:00
Geometrically
0fee90e4df
Fix broken placements 2021-01-18 08:56:41 -07:00
Geometrically
0cced44491
Switch to Google Adsense 2021-01-17 20:14:10 -07:00
Geometrically
f21f758591
Fix #81, Fix #82, Add missing data to mod pages, donation platforms WIP 2021-01-16 22:54:37 -07:00
Geometrically
68517c15f2
Merge pull request #136 from modrinth/small-fixes
Fix version number editing
2021-01-15 08:18:15 -07:00
Geometrically
11ee142e4b
Merge branch 'master' into small-fixes 2021-01-15 07:59:39 -07:00
Geometrically
51e9527d53
Fix #78 2021-01-15 07:52:25 -07:00
Geometrically
1e1d047e07
Run prepare 2021-01-15 07:48:37 -07:00
Geometrically
62f1e39e6e
Fix version number editing 2021-01-15 07:45:59 -07:00
Geometrically
05756da495
Merge pull request #135 from modrinth/fix/file-upload-permissions
Fix #134
2021-01-15 07:36:43 -07:00
Mikhail Oleynikov
fa35b2a66f
Fix #134 2021-01-15 16:13:08 +03:00
Geometrically
268cd131dc
Fix mod body editing 2021-01-14 22:44:33 -07:00
Geometrically
26997ad5c3
Fix delete button showing for unauthorized users 2021-01-14 21:54:46 -07:00
Geometrically
ce1786f128
Version editing, user, mod, version deletion 2021-01-14 21:43:58 -07:00
Geometrically
d2094e2b68
Merge pull request #132 from modrinth/move-descriptions
Bug Fixes
2021-01-14 13:41:09 -07:00
Geometrically
075b2df738
Fix lint failures 2021-01-14 12:23:39 -07:00
Geometrically
ec3c31a106
Move descriptions to database, switch to SHA-512 hashes, fix declining invites not working, allow user deletion, fix broken permission checks for many things, security fixes 2021-01-14 10:08:38 -07:00
Geometrically
888057f64a
Fix version sorting 2021-01-12 07:48:38 -07:00
Geometrically
3c6c4d9601 Merge branch 'master' of https://github.com/modrinth/knossos 2021-01-11 14:04:22 -07:00
Geometrically
5e8bcf8faf
Version moderation 2021-01-11 14:01:56 -07:00
Mikhail Oleynikov
0d6f2f93bf
Select only a subset of hljs languages (#70) 2021-01-05 08:22:26 -07:00
Geometrically
937b00cfcc
Fix accepting team invites on frontend 2021-01-03 17:55:01 -07:00
Geometrically
0d4432720c
Fix icon editing for mod pages 2021-01-03 12:32:52 -07:00
Geometrically
0ec49643ee
Fix teams 2021-01-03 11:52:44 -07:00
Geometrically
0d80ea4f4c
Fix download button for files on version page 2021-01-03 11:38:59 -07:00
Geometrically
d2b26124e4
Fetch descriptions from origin 2021-01-02 18:34:59 -07:00
Geometrically
343116ea24 Merge branch 'master' of https://github.com/modrinth/knossos 2021-01-01 11:47:41 -07:00
Geometrically
10dc699b21
Fix last broken link 2021-01-01 11:47:24 -07:00
Geometrically
e2183c2214
Merge pull request #123 from modrinth/fix-ratelimit
Bump ratelimit to 200 RPM, allow specified IPs to have lax ratelimit …
2021-01-01 11:19:14 -07:00
Geometrically
4994064e6e
Fix lint 2021-01-01 09:27:37 -07:00
Mysterious_Dev
015c5f07bc
Fix User Page Title (#68) 2021-01-01 09:21:13 -07:00
Geometrically
a40b9f4054
Fix clippy error (?) 2021-01-01 09:13:27 -07:00
Geometrically
a0b6a3bed6
Better error handling, fix some more broken OG links 2021-01-01 09:09:53 -07:00
Geometrically
ee8d65977d
Fix YAML syntax error 2020-12-31 21:47:17 -07:00
Geometrically
b4ea11e55e
Fix actions to use build cache 2020-12-31 19:25:19 -07:00
Geometrically
b8d2ef1eb5
Fix SQLX errors 2020-12-31 19:09:23 -07:00
Geometrically
0efeffeaa3
Bump ratelimit to 200 RPM, allow specified IPs to have lax ratelimit restrictions, and allow wildcard for CORS 2020-12-31 18:54:58 -07:00
Geometrically
9de5950f4d
Fix version and other pages not working 2020-12-31 12:20:28 -07:00
Geometrically
26488b793a
Teams (#67)
* Teams

* Fix errors on versions with no files

* Fix user lookup

* Fix mod pages breaking
2020-12-31 12:12:11 -07:00
Geometrically
7a86d272bb
Merge pull request #121 from modrinth/fix-description-cache
Fix description cache
2020-12-31 10:58:40 -07:00
calum6541
5a6c2dfcd5
Add small ease-in-out transition between pages. (#66)
Really makes a big difference than before.
2020-12-31 10:21:00 -07:00
Geometrically
4d780904d1
Fix formatting, remove failing backblaze test due to expired token 2020-12-31 10:16:32 -07:00
Geometrically
0a6fa65075
Fix clippy 2020-12-31 10:09:57 -07:00
Geometrically
6440220640
Fix again 2020-12-29 22:25:52 -07:00
Geometrically
4350c9a72b
Fix again 2020-12-29 22:19:03 -07:00
Geometrically
77feae0ab9 Merge branch 'fix-description-cache' of https://github.com/modrinth/labrinth into fix-description-cache 2020-12-29 22:12:00 -07:00
Geometrically
1261696ba2
Make it compile 2020-12-29 22:11:23 -07:00
Geometrically
6b35a0a527
Merge branch 'master' into fix-description-cache 2020-12-29 21:57:54 -07:00
Geometrically
fd33ff81c9
Fix description cache 2020-12-29 21:49:01 -07:00
Geometrically
7e891ecb79
Fix user lookup (#65)
* Teams

* Fix errors on versions with no files

* Fix user lookup
2020-12-28 22:06:50 -07:00
Geometrically
178b1e8bb0
Merge pull request #120 from modrinth/team-member-fixes
Fix revocation of invites, allow for /user_id/teams to be useful
2020-12-28 10:51:16 -07:00
Geometrically
12840f2428
Teams (#64)
* Teams

* Fix errors on versions with no files
2020-12-28 10:50:59 -07:00
Geometrically
9d50f03cb1
Fix game version editing for versions 2020-12-27 18:58:27 -07:00
Geometrically
8c1688657a
Fix revocation of invites, allow for /user_id/teams to be useful 2020-12-27 18:50:10 -07:00
Geometrically
833cb99f41
Merge pull request #119 from modrinth/team-member-fixes
Add 'accepted' field to TeamMember
2020-12-27 08:18:34 -07:00
Geometrically
bd5d84abcd
Add 'accepted' field to TeamMember 2020-12-26 22:49:07 -07:00
Geometrically
d451ba9b6e
Merge pull request #118 from modrinth/fix-invites
Fix invites
2020-12-26 15:21:41 -07:00
Geometrically
14bd02a569
Merge branch 'master' into fix-invites 2020-12-26 15:18:47 -07:00
Geometrically
4beace1bb0
Fix inites (again) 2020-12-26 15:17:51 -07:00
Geometrically
6996dfcd3b
Fix incorrect route for team fetching (#117)
* Fix invites failing

* Fix incorrect route for team fetching
2020-12-26 12:25:27 -07:00
Geometrically
42c46d7d5c
Fix incorrect route for team fetching 2020-12-26 12:20:23 -07:00
Geometrically
9b31ce83c5
Fix invites failing (#116) 2020-12-26 12:13:09 -07:00
Geometrically
cb5250527b
Fix invites failing 2020-12-26 12:08:28 -07:00
Geometrically
0b160a6741
GitHub Actions 2020-12-24 18:48:50 -07:00
calum6541
dff34a8ae2
Added new options to the settings dashboard tab. (#60)
* Created developer tools dashboard

* Remove PopUp and use inline version

* Moved developer tools to the settings tab

At request of Geo

* Fixed some bugs.

* Fix Typos and flex on buttons

* Lowercased token

* Fix button styles

* Move screenshot in-house.

* Move screenshot in-house.

* Completed Developer Settings and Added features to Settings Tab.

Also fixed the about page, updated the "alpha" mention to beta.

* Update revoke-token.vue
2020-12-24 18:24:37 -07:00
Geometrically
8f780ad89e
Google ad verification code 2020-12-22 19:35:33 -07:00
Jai A
4624ef393d Merge branch 'master' of https://github.com/modrinth/knossos 2020-12-21 22:26:01 -07:00
Jai A
2ce8a890e2
Re-add EthicalAds 2020-12-21 22:25:46 -07:00
Prospector
90e0e9000e Fix environment supportedness on create page too 2020-12-21 19:00:08 -08:00
Jai A
a6bb1c156d
Fix bio description 2020-12-20 22:03:47 -07:00
ProspectorDev
31db8161b5 Remove the broken No Functionality side option and replace with Optional 2020-12-17 22:43:29 -08:00
Jai A
c0d1448080
Fix some links not using slugs 2020-12-16 16:19:49 -07:00
Jai A
4e4f4e60b6
Merge 2020-12-16 13:32:06 -07:00
Jai A
dcc83271af
Add slugs 2020-12-16 13:30:20 -07:00
Geometrically
a38458c9be
Add user settings page (#58)
* Several fixes

* User edit page
2020-12-16 13:24:17 -07:00
Gamebuster
7934f65ae8
Mod authors don't give rights to modrinth forever (#56)
Modrinth's terms has an issue similar to what overwolf used to have:

https://curseforge-ideas.overwolf.com/ideas/CF-I-222
2020-12-15 12:57:58 -07:00
Geometrically
f0b73fd696
Change index interval, add slug to search documents (#110)
* Change index interval, add slug to search documents

* Allow the removal of '@' for slug get

* Fix

* Remove name and rename side type

* Run prepare
2020-12-13 18:10:58 -07:00
Alistair Jenkins
aea0cec061
Accessibility Changes (#53)
* Semantic HTML: Cards are now articles.

* Semantic HTML: Changed aside to header.

* Changed some references from aside to header.

* Added aria-label to left and right buttons.

* Added aria-hidden to catergory icons.

* Added aria-label to the logo.

* Added aria-hidden on more icons.

* Added aria-hidden to some icons.
2020-12-11 13:11:31 -07:00
Jai A
7ac56b1a0c
Peformance fixes for mod pages, Fix #52, #51 2020-12-10 17:01:00 -07:00
Jai A
f5ed0b700f
Ad ads code 2020-12-06 18:04:04 -07:00
Jai A
1ff3b83766
File input fixes 2020-12-06 17:41:45 -07:00
Jai A
40eca1727e
Icon editing, ready for review button 2020-12-03 15:41:09 -07:00
Jai A
9505e68ef7
Ad verification 2020-12-02 19:55:51 -07:00
Jai A
5847806a16
Allow editing of drafts 2020-12-02 13:06:26 -07:00
Jai A
e427ea44aa
Fix Internal Server Error 2020-12-02 12:00:38 -07:00
Jai A
8df8bf33a4
Fix sorting 2020-12-02 10:56:50 -07:00
Jai A
29d2b942e8
Cleaner request formatting 2020-12-02 10:45:31 -07:00
Geometrically
df5684a9f8
Fix access controls (#109)
* Fix access controls

* Remove CF indexing, fix some stuff
2020-12-02 10:24:20 -07:00
Jai A
992cdb992a
Fix some moderation bugs 2020-12-01 11:39:47 -07:00
Prospector
db0dc71319 Fix discord field model 2020-12-01 02:29:26 -08:00
Prospector
2c871d1339 Make edit button on dashboard more visible and fix edit button on mod page 2020-11-30 19:10:17 -08:00
Prospector
9673922ca1 Prevent sign in button from wrapping Closes #43 2020-11-30 19:03:58 -08:00
Jai A
d311870b61
Fix file upload box showing for everyone 2020-11-30 17:51:01 -07:00
Jai A
8dd1ff593a
Add version title to request 2020-11-30 16:05:40 -07:00
Jai A
0f64a769c2
Fix mod creation 2020-11-30 15:47:21 -07:00
Jai A
a8d150db5c
Remove CurseForge integration - some more minor fixes 2020-11-30 15:34:04 -07:00
Jai A
d7e6367ff3
Minor Fixes 2020-11-30 15:10:30 -07:00
Prospector
7b84d8c3d5
[WIP] Rework design (#34)
* WIP: Redesign the default layout

* Merge old & new default layouts

* Fix login logic; add proper user controls dropdown

* Fix latest version listing (#31) (#32)

Co-authored-by: Aeledfyr <45501007+Aeledfyr@users.noreply.github.com>

* First pass of design cleanup

* Improve ad integration and fix light theme

* Begin splitting up variables, change some styling to new mockup

* Continue redesign progress

* Work on some more pages

* Add missing dark theme variables for text

* Continue working on modularizing

* Continue progress, redo pagination

* Fix auth buttons in navbar layout

* Continue progress

* Continue progress more

* Redo ModResult

* Scope ModPage :irritater:

* Continue Dashboard

* Continue progress on Dashboard and cleanup

* Add missing variables for dark theme

* Small tweaks, cleanup, and continue mod page progress

* Fix user not being able to see hidden mods that they own

* Start reworking mod creation

* Continue revamp of mod creation page

* Yank v-html out

* Hotfix markdown rendering and some spacing issues

* Move legal; continue with mod creation; create reusable footer

* Create README.md

* Update README.md

* Update README.md

* Add in basic usage instructions

* Fix some stuff

* Continue with mod creation; fix some CSS errors

* Start user page

* Start transition to vue-select; fix a few bugs

* Continue mod creation page

* Finish mod pages

* Add very raw version editing

* Mod editing + creation

* Fixed versions that were in processing causing a 404 (#39)

Co-authored-by: Mikhail Oleynikov <falseresync@gmail.com>
Co-authored-by: Aeledfyr <45501007+Aeledfyr@users.noreply.github.com>
Co-authored-by: Jai A <jai.a@tuta.io>
Co-authored-by: MulverineX <mulverin3@gmail.com>
Co-authored-by: diabolical17 <calumproh28@gmail.com>
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2020-11-30 14:55:01 -07:00
Aeledfyr
b3f724c799
Hotfix: fix version delete permissions and CORS allowed methods (#107) 2020-11-30 10:45:59 -07:00
Geometrically
a7be6504a2
Fix hash (#106)
* More mod info

* Downloading mods

* Run prepare

* User editing + icon editing

* Finish

* Some fixes

* Fix clippy errors

* Fix hash lookup

* Run prepare

* Run formatter
2020-11-29 14:27:40 -07:00
Jai A
e025df0824
Fix main page, fix mod creation 2020-11-28 08:57:14 -07:00
Jai A
c3392d5386
Fix mod creation again 2020-11-27 14:30:07 -07:00
Geometrically
1da5357df6
More mod info (#104)
* More mod info

* Downloading mods

* Run prepare

* User editing + icon editing

* Finish

* Some fixes

* Fix clippy errors
2020-11-27 10:57:04 -07:00
Jai A
2c09e6a7c0
Update mod creation 2020-11-27 10:56:38 -07:00
Jamie Mansfield
2a0740e135
Apply 'active-paginate' to Previous button (#35)
This has the effect of the cursor being shown when hovering over
the previous button.
2020-11-19 13:41:54 +03:00
diabolical17
ac65357c8a
Template Codeblock with example for index.vue (#29)
* Replace runkit GIF with actual code on index.vue

Sometimes the GIF will not load due to a slow or crappy connection.
Syntax highlighting could be added at a later date.

* Added syntax highlighting with vue highlightJS

* Move scss to highlightjs.scss

* Introduce better syntax highlighting.

* Changed to monospace font
2020-11-16 16:28:33 +03:00
Aeledfyr
92e1847c59
Hotfix: route new moderation routes (#103) 2020-11-15 20:47:45 -07:00
Geometrically
0500994def
Moderation + Mod Editing (#101)
* Moderation + Mod Editing WIP

* Run prepare, fix perms

* Make it compile

* Finish moderation and edit routes

* More fixes

* Use better queries

* Final Fixes
2020-11-15 19:58:11 -07:00
Aeledfyr
07c255f7f8
Fix latest version listing (#31) 2020-11-10 10:59:54 -07:00
Aeledfyr
da911bfeb8
Minor fixes to orderings and permission serialization (#102)
* Fix latest_version in search results

* Handle users with invalid permissions instead of skipping them

* Specify order of some queries, fix serialization of permissions

* Run sqlx prepare
2020-11-10 09:27:36 -07:00
Geometrically
578d673a4e
Team routes (#92)
* Team routes template

* More work on teams

* Updating routes WIP

* Edit routes

* Fixes

* Run prepare, prevent non-members from seeing perms

* More fixes

* Finish team routes

* More fixes

* Unpushed changes

* Some more fixes and error handling

* Fix sqlx prepare, formatting

Co-authored-by: Aeledfyr <aeledfyr@gmail.com>
2020-11-09 19:39:23 -07:00
Jai A
198b3c9f1b
Full mobile support 2020-11-05 21:44:08 -07:00
Jai A
f5c567eb90 Merge branch 'master' of https://github.com/modrinth/knossos 2020-11-05 18:01:00 -07:00
Jai A
8ca09f6384
Fix ad warning, add snapshot search 2020-11-05 18:00:40 -07:00
Aeledfyr
c8e58a1e5b
Fix indexing, upgrade MeiliSearch sdk (#100)
* Hotfixes for indexing

* Handles missing INDEX_CACHE_PATH environment variable
* Exits on startup if environment variables are missing. The flag
  --allow-missing-vars disables this, but that is generally a bad
  idea, since most environment variables are required (and the ones
  that aren't should be marked as such).
* Disables the query loggers

* Upgrade meilisearch-sdk to 0.4.0 for MeiliSearch 0.16 support

* Fix swap of Forge and Fabric labeling
2020-11-05 08:38:03 -07:00
Charalampos Fanoulis
386dfe42d0
fix: word the alt text (#27) 2020-11-04 22:11:41 +03:00
Jai A
7445f43b1b
Tooltips, alternate ad text, better error messages 2020-11-03 21:29:45 -07:00
Aeledfyr
d477874535
Optimize and fix some bugs in indexing (#98)
* Improve curseforge and local indexing

This should make curseforge indexing more efficient, and reuses
some of the normal local indexing for the queued indexing of
recently created mods.

* Unify impls for single and multiple routes for mods and versions

This uses the same backend for the single and multiple query
routes so that they no longer return inconsistent information.

* Cache valid curseforge mod ids to reduce request load

This caches the ids of minecraft mods and reuses them on indexing
to reduce the amount of unused addons that are returned.
2020-11-03 17:55:50 -07:00
Jai A
5b77e78662
Unpushed stuff 2020-11-02 22:05:08 -07:00
Jai A
4b0b8d4de2
New error page, add legal pages, responsiveness for home page 2020-11-02 22:04:40 -07:00
Aeledfyr
da79386cc3
Track and sort by release date of game_versions tags (#95) 2020-10-31 21:06:47 -07:00
Jai A
b7de47b6fb
Fix Theme Change breaking ads 2020-10-31 09:59:57 -07:00
Jai A
3434907f52
Update Ad Placement, fix version sorting 2020-10-30 22:15:08 -07:00
Jai A
099adb3853 Merge branch 'master' of https://github.com/modrinth/knossos 2020-10-28 20:43:10 -07:00
Jai A
dd9b1c047c
Change to EthicalAds 2020-10-28 20:39:44 -07:00
Aeledfyr
a4ba6d1444
Game Version types, indexing, and bugfixes (#91)
* Add types to game_versions, allow filtering by version type

- Fixes an issue with version numbers in the initial mod indexing
  queue
- Modifies the /api/v1/categories/game_versions route to take an
  optional query parameter `type` to filter the listed game versions
- Creating tags is now idempotent
- Creating game_versions now requires a JSON body that specifies
  the version type

* Implement automatic indexing of new Minecraft versions

It's currently set to run every 6 hours and isn't configurable; we
could add config for it, but it doesn't seem likely to be rate
limited or have issues with frequency.
2020-10-28 09:11:49 -07:00
Aeledfyr
6084bb15cf
Fix meta tags for embeds (#11) 2020-10-26 19:21:43 -07:00
Jai A
42b568952e
Edit version route 2020-10-25 14:03:18 -07:00
Geometrically
ef28459b61
Rate limiting + version fixes (#90)
* Rate limiting + version fixes

* Move patch to proper place

* More fixes

* Fix commit hash pin
2020-10-25 13:51:07 -07:00
Jai A
d3bac307bb
Test ads, fix search reload on non-relevance sort types 2020-10-25 13:48:13 -07:00
Jai A
7e488b0fa3
Allow null changelogs 2020-10-25 09:15:04 -07:00
Jai A
7d7a6191ce
Fix version creation 2020-10-25 08:55:55 -07:00
Jai A
5c644b31ca
Make edit buttons hidden when not authorized 2020-10-23 19:27:04 -07:00
Jai A
7b4398dfee
Finish ability to add files to versions and create new versions 2020-10-23 13:48:42 -07:00
Jai A
663418e943
Move everything to components, (WIP) Version creation 2020-10-22 22:46:10 -07:00
Jai A
969bec248a
Add version page 2020-10-21 21:24:39 -07:00
Jai A
8f487d7d4e
Bug Fixes 2020-10-21 14:30:13 -07:00
Jai A
89ebce79b2
Add versions section 2020-10-21 13:43:49 -07:00
Geometrically
1ff8c908b8
Add way to fetch team members (#89)
* Add way to fetch team members, fix files not being returned with version route

* Make it compile

* Fixes

* Use default error handling
2020-10-21 12:30:35 -07:00
Jai A
34ce510fbd
Mod pages base 2020-10-20 22:33:49 -07:00
Aeledfyr
e966ef96e5
Await an unused future and change #![allow(unused)] to dead_code (#88)
Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2020-10-19 22:24:40 -07:00
Geometrically
b05b38b269
Add files to initial versions/mods (#84)
* Add files to initial versions/mods

* Remove useless code, fix actual problem

* Remove debug text

* Rename body to description
2020-10-19 22:08:47 -07:00
Jai A
39f29399e7
Turn off dev mode in production, work on mod pages 2020-10-19 22:02:29 -07:00
Geometrically
8e1f1ff2e6
Fix another bug (#87) 2020-10-19 20:04:26 -07:00
Geometrically
680d6c20ca
Search hotfix (#86) 2020-10-19 19:46:33 -07:00
Geometrically
c886e7949e
Support for using a master key (#83)
* Support for using a master key

* Expand scope of PR, add wrapper struct, add files to intitial versions/mods

* Change changelog path, run formatter

* Split file changes into different PR

* Formatting, rename main variable

Co-authored-by: Aeledfyr <aeledfyr@gmail.com>
2020-10-19 14:23:05 -07:00
Jai A
8cd4cc7d0d
Fix SVGs, cleanup, switch stats backend 2020-10-18 20:00:03 -07:00
Geometrically
e0b972f6d6
Add S3 File Host (#81)
* Add S3 File Host

* Fix tests, set default ACL level to public

* Refactor

* Fix merge conflicts

* Env fixes

* Run formatter

* Remove extra allocations
2020-10-18 13:26:13 -07:00
Aeledfyr
25daa9f2da
Update actix-web to 3.0, update deps (#82) 2020-10-18 10:50:37 -07:00
Aeledfyr
d0fb5c3bd5
Refactor mod creation route, add more checks (#80)
This also removes the `team_members` field of `InitialModData`, as
team members are no longer specified at mod creation.
2020-10-17 19:34:23 -07:00
Jai A
608ab8f4ad
Fix creation + make it more accessible. Also added User Pages. User Context Menu moved to settings cog 2020-10-17 11:28:05 -07:00
Aeledfyr
520b12e56b
Make mod creation always create initial versions & don't require mod id for mod creation versions (#79)
* Make mod creation always create initial versions, other fixes

* Fix sqlx prepare

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2020-10-16 13:28:53 -07:00
Jai A
e95643f198
Remove console statements 2020-10-16 12:45:47 -07:00
Jai A
3b1712345b
Creation fixes 2020-10-16 12:44:32 -07:00
Geometrically
5c8ffe961e
Fix local indexing (#78) 2020-10-16 11:21:07 -07:00
Aeledfyr
7983e82b60
Fix some issues with search and mod creation (#77) 2020-10-16 10:04:38 -07:00
Jai A
6effe47bcc
Finish mod creation 2020-10-15 20:23:01 -07:00
Geometrically
77d35b61a9
Fix indexing (#76) 2020-10-15 09:56:41 -07:00
Geometrically
285a97aaf8
Creation fix (#74)
* Lots of little fixes

* Change + Add TODOs back that were incomplete

* Fix migrations

* Run prepare

* Minor fixes

* Fix formatting

* SQLX Prepare

* Add status to creation query
2020-10-14 20:43:40 -07:00
Jai A
205080a210
Creation work 2020-10-14 16:03:09 -07:00
Geometrically
ad29f2477e
Lots of little fixes (#73)
* Lots of little fixes

* Change + Add TODOs back that were incomplete

* Fix migrations

* Run prepare

* Minor fixes

* Fix formatting

* SQLX Prepare
2020-10-14 13:19:38 -07:00
Jai A
bc998988c2
Mod creation WIP 2020-10-12 22:33:56 -07:00
Aeledfyr
1072d1306b
Make indexing date format consistent (#72) 2020-10-12 14:08:43 -07:00
Jai A
80b470cfd3
Fix scaling issue 2020-10-11 22:46:26 -07:00
Geometrically
b8eda40937
Fix date format (#71) 2020-10-11 11:35:50 -07:00
Jai A
3df2b4b7f8
Add ackee analytics 2020-10-10 20:12:08 -07:00
Jai A
6141b60294
Fix embed finally 2020-10-09 20:09:38 -07:00
Jai A
e1cfb0cab6
Edit embed again 2020-10-09 19:52:12 -07:00
Jai A
9b9782ce94
Change embed 2020-10-09 18:57:26 -07:00
Jai A
5d9eb25e38
Fix meta tags 2020-10-09 15:48:02 -07:00
Jai A
f4a518ce6b
Remove lots of inline SVGs, use moment.js for times, add some pages for future work 2020-10-09 14:25:02 -07:00
Geometrically
2719ae5df2
Add API routes to request multiple of an item (#70)
* Change header name

* Add default bio value

* Remove default

* Make name null

* Run prepare

* Add new API Routes for requesting multiple of an item

* Run formatter

* Simplify get mods query

* Run prepare

* Refactor to use one query for most routes, change version create route to have mod_id in data

* More fixes
2020-10-05 14:25:32 -07:00
Jai A
3656e6ef54
Some search fixes, switch from created() to fetch() for SSR 2020-10-04 20:19:48 -07:00
Jai A
a545d7d8b1
Add user context menu 2020-10-03 22:55:58 -07:00
Geometrically
68ee2bdcdc
Fix another GitHub OAuth Bug, allow users to register with null names. (#69)
* Change header name

* Add default bio value

* Remove default

* Make name null

* Run prepare
2020-10-03 16:31:10 -07:00
Geometrically
da654fdff5
Add default bio value, to fix GitHub integration errors (#68)
* Change header name

* Add default bio value

* Remove default
2020-10-03 12:11:36 -07:00
Jai A
3127f7a31b
A little bit of SEO, fix auth callback URL 2020-10-02 22:50:41 -07:00
Jai A
f561de200d
Auth 2020-10-02 21:05:43 -07:00
Geometrically
d7f9d5a66f
Change header name (#67) 2020-10-02 15:55:47 -07:00
Jai A
d85a063db8
General fixes, compress gifs 2020-10-02 12:58:00 -07:00
Jai A
d6bf935ceb Lazy load GIFs 2020-10-01 22:56:59 -07:00
Jai A
0d6ff822e7
Landing page 2020-10-01 22:46:07 -07:00
Jai A
1c0cc8e91c
Homepage base 2020-09-30 22:37:34 -07:00
Aeledfyr
c4fb7b7928
General cleanup: fix some bugs, some refactoring (#65)
* Merged mod file upload in version creation, mod creation and
  version file add to one function;  This makes sure that they are
  consistent
* Made some fields on `User` optional: `github_id`, `avatar_url`, `bio`.
    * We may not want to publicly show the `github_id` to everyone
      with access to the API
    * If we allow non-github users, some of those fields would be
      invalid; some oauth providers may not have avatars or bios
* Made CORS origins should configurable
* Made `--reconfigure-indices` and `--reset-indices` exit after
  completion instead of starting the server
2020-09-30 22:07:52 -07:00
Geometrically
43a791db65
Merge pull request #64 from modrinth/auth-fix
Make scopes safe for browser
2020-09-29 12:56:58 -07:00
Jai A
217311211a
Remove org read scope 2020-09-29 11:55:12 -07:00
Jai A
ca55890ad2
Make scopes safe for browser 2020-09-29 11:46:11 -07:00
Geometrically
d6ecf5b8a9
Merge pull request #63 from modrinth/ghauth
GitHub Authentication
2020-09-29 11:27:56 -07:00
Jai A
e52edde11f Run prepare scripts 2020-09-29 07:36:28 -07:00
Jai A
2e514735ec User retrieval routes 2020-09-28 22:30:13 -07:00
Jai A
3d32c30d2d Authenticate protected routes 2020-09-28 21:05:42 -07:00
Jai A
05235f8385 Implement users in API 2020-09-28 10:48:15 -07:00
Jai A
cd28a75c86 Authentication workflow complete, add database link 2020-09-27 22:49:38 -07:00
Jai A
34075738ea Basic GitHub integration 2020-09-26 22:49:16 -07:00
Jai A
fb38573b7e
Make Search fully SSR 2020-09-22 08:21:07 -07:00
stairman06
8a2f45ec23
Make responsive (#8)
* Refactor ModResult to use CSS Grid

* Mobile support for ModResult

* Mobile navbar

* Mobile fixes, get rid of x overflow

* Mobile filter support

* Fully responsive

* Collapse categories view later

* Mobile-first

* Fix version selector width
2020-09-18 13:05:13 -07:00
Jai A
fee2eb9251 Fix spinner CSS, add snapshots + alpha/beta versions 2020-09-18 10:23:25 -07:00
Jai A
24035c4ae8 Finish Search 2020-09-17 22:14:57 -07:00
Jai A
aa8215df34
URL Handling 2020-09-16 22:35:58 -07:00
Jai A
eb78e3d640 Version filters 2020-09-15 21:43:11 -07:00
Jai A
f8201cd2bc Fix filters using OR queries 2020-09-14 22:13:11 -07:00
Jai A
f37b3ecd26 Dark Theme 2020-09-13 20:11:34 -07:00
Geometrically
88c0b8a8f0
Search fixes (#62) 2020-09-12 18:16:05 -07:00
Jai A
e6dba59ae6 Add normalize css and clear filters button 2020-09-11 22:34:11 -07:00
Jai A
a7bc6b4f36 Platform filters 2020-09-10 18:12:43 -07:00
Jai A
cacc5ac803 License disclosure 2020-09-08 22:09:46 -07:00
Jai A
46dc0f144b Fix clipping on select, fix another scaling issue 2020-09-07 17:37:15 -07:00
Jai A
3cc5275592 Make search results conform to window size 2020-09-07 17:31:24 -07:00
Jai A
a3955a1ba8 Sort types 2020-09-07 17:11:26 -07:00
Jai A
89dfaf1d5d Pagination fixes, change displayed results to 6 2020-09-07 13:01:42 -07:00
Geometrically
e8bbc117e1
Allow for API user to change the amount of mods responded with in search (#61)
* Add more info to search route:

* Run formatter

* Allow for API user to change the amount of mods responded with in search

* Refactor SearchResults

* Fix searchresults usage
2020-09-07 11:44:21 -07:00
Jai A
fc6246c5cb Pagination 2020-09-06 22:29:35 -07:00
Jai A
ce8a0cab2a Unpushed stuff 2020-09-06 18:58:55 -07:00
Geometrically
b99f45874f
Add more info to search route (#60)
* Add more info to search route:

* Run formatter
2020-09-06 08:19:53 -07:00
Jai A
b36b6c78a2 Add search filters 2020-09-05 14:23:19 -07:00
Jai A
5232dc6485 Fix no results bug 2020-09-04 20:19:19 -07:00
Jai A
b1d9fc6c9a Filters base 2020-09-03 22:01:23 -07:00
Geometrically
0dfa378e38
Add modrinth.com to CORS (#59)
Co-authored-by: Redblueflame <redblueflame1@gmail.Com>
2020-09-02 08:24:42 -07:00
Geometrically
80ded84f7a
Search (#7)
* Initial Search Item

* Pagination thing

* Local changes

* Push component

* Interface with API

* Temporary loader indication

* Fix sidebar spacing

* Filters sidebar

* Add filters sidebar

* Make package files the same
2020-09-02 07:55:48 -07:00
Jai A
8394535725 Remove security vulnerability 2020-09-01 11:43:12 -07:00
Geometrically
adf780d25b
Google Ads (#6) 2020-09-01 11:30:09 -07:00
Geometrically
749ae3deb3
Dockerize knossos (#5)
* Dockerize knossos

* Docker actions

* Remove useless thing
2020-09-01 09:08:35 -07:00
Redblueflame
3da0c07bcd
fix: Fixed ssl error with the docker container. (#58) 2020-08-29 20:24:15 +02:00
Redblueflame
2196b53075
Switched base container for the docker build (#57) 2020-08-29 07:56:50 -07:00
Redblueflame
a8340f37bb
Update Dockerfile (#56)
* Update Dockerfile

* Update Dockerfile
2020-08-28 12:03:00 -07:00
Redblueflame
7b1710ee63
Update Dockerfile (#55) 2020-08-28 20:24:43 +02:00
Redblueflame
38b7d9724e
feat(migration): Added automatic migration (#54) 2020-08-28 08:48:01 -07:00
Geometrically
2b1ed49e9a
Update Meilisearch SDK (#53)
* Update Meilisearch SDK

* Run Formatter

* Fixes
2020-08-27 17:53:40 -07:00
Geometrically
017cf9e464
Make CORS work (#52)
* Make CORS work

* Add use statement

* Add to TOML
2020-08-27 08:47:18 -07:00
Aeledfyr
781f0c843e
Implement more database methods and basic API routes (#50)
* feat: Implement more database methods & add mod and version routes

* feat: Implement deleting mods/versions & implement categories

* feat: Implement routes for categories, game versions & loaders

* feat: Reorganize API routes in a (hopefully) usable way
2020-08-12 12:54:03 -07:00
Geometrically
e2bf474332
Version Creation (#47)
* Creation Stuff

* Make it work

* Response structs + Mod ID validation

* Run code formatter

* Push local changes

* Finish up version creation - fix comments, impl file creation

* fix: Add sqlx prepare data

Co-authored-by: Aeledfyr <aeledfyr@gmail.com>
2020-08-12 11:05:49 -07:00
AppleTheGolden
7e2f1c9a8b
Update rust version in dockerfile (#49) 2020-08-02 09:48:02 -07:00
Aeledfyr
8e798dde48
feat(search): Faceted search based on mod host (curse/modrinth) (#48)
This also adds a commandline argument library (gumdrop) for dealing
with indices - reseting, reconfiguring, and skipping them. I don't
know which library is best for this case, but gumdrop has shorter
compile times and many fewer dependencies than clap, which is why
I chose it.
2020-07-31 18:18:23 -07:00
Aeledfyr
c05ae6e94c
fix(postgres): Fix sqlx's misinterpretation of Ids, update sqlx (#46) 2020-07-30 20:45:22 -07:00
Aeledfyr
ff28ea8fa8
Refactor Meilisearch, update to latest SDK, and implement faceted search (#44)
* feat(indexing): Reindex curseforge & local database at an interval

* fix(indexing): Use strings for meilisearch primary key

Fixes #17 by prefixing curseforge ids with "curse-" and local ids
with "local-".

* feat(indexing): Add newly created mods to the index more quickly

* feat(indexing): Implement faceted search, update to meilisearch master

Fixes #9, but only uses faceted search for categories.  It should
be reasonably simple to add support for versions, but it may not
be as useful due to the large number of versions and the large
number of supported versions for each mod.

* feat(indexing): Allow skipping initial indexing

Co-authored-by: Geometrically <18202329+Geometrically@users.noreply.github.com>
2020-07-27 16:54:10 -07:00
Charalampos Fanoulis
7914e89212
fix: quote the numbers on the github label (#43) 2020-07-23 23:26:53 +02:00
Valentin Ricard
558ff90e27
fix/ci: Fix build matrix (#42)
* ci: Test #1

* ci: Test #2

* ci: Fix an unrelated issue

* ci: Restore the branch filter
2020-07-23 23:18:36 +02:00
AppleTheGolden
ee69653a83
Switch to Postgres (#39)
* WIP Switch to Postgres

* feat(postgres): more work on porting to postgres, now compiles

* feat(docker-compose): Changed the docker-compose.yml file to use postgres.

* Update docker, documentation, gh actions...

* Remove bson dependency

* Remove bson import

* feat: move mock filehost to trait rather than cargo feature

* feat(postgres): transactions for mod creation, multipart refactor

* fix: Add Cargo.lock so that sqlx functions

* Update sqlx offline build data

* fix: Use SQLX_OFFLINE to force sqlx into offline mode for CI

* Default release channels

* feat(postgres): refactor database models to fit postgres models

* fix: Fix sqlx prepare, fix double allocation in indexing

* Add dockerfile (#40)

Co-authored-by: Charalampos Fanoulis <charalampos.fanoulis@gmail.com>

Co-authored-by: Aeledfyr <aeledfyr@gmail.com>
Co-authored-by: redblueflame <contact@redblueflame.com>
Co-authored-by: Jai A <jai.a@tuta.io>
Co-authored-by: Valentin Ricard <redblueflame1@gmail.Com>
Co-authored-by: Charalampos Fanoulis <charalampos.fanoulis@gmail.com>
2020-07-23 22:46:33 +02:00
Siphalor
2d7760e67c
Add line ending configuration (#4) 2020-07-17 20:38:16 +03:00
Aeledfyr
95339a8338
Create a mock file host for dev, Fix mod creation route (#38)
* fix(mod-creation): fix actix server data & mod creation route

* feat(file-host): implement mock file hosting

This implements a mock file hosting system backed by the system's
filesystem.  It mirrors the API of the backblaze integration, but
puts the files directly on disk in the path specified by the
MOCK_FILE_PATH environment variable (defaults to /tmp/modrinth).

The mock file hosting is enabled by default using cargo features
to allow people to work on modrinth without access to a valid
backblaze account and setup.  To enable backblaze, specify the
cargo feature "backblaze" when running, ex. `cargo run --features
backblaze`.

* feat(file-hosting): implement basic backblaze API error handling

* fix(mod-creation): fix extension parsing, use base62 ids for paths
fix(file-hosting): reduce unnecessary allocations

* fix: fix auth with docker mongodb

* fix: fix failing checks

* fix: remove testing files
2020-07-16 21:06:58 -07:00
Geometrically
39b1435725
Mod Creation (#34)
* Inital creation stuff

* File Reader

* Upload bodies

* Major rework:

* Finish Multiple Files

* Proper Error Handling

* Switch to database models

* Run formatter

* Make dependencies dependent on Versions over mods

* Fixes

* Fix clippy

* Run lint one last time

* Update src/models/mods.rs

Co-authored-by: AppleTheGolden <scotsbox@protonmail.com>

Co-authored-by: AppleTheGolden <scotsbox@protonmail.com>
2020-07-16 10:16:35 -07:00
Aeledfyr
b1d3e258bd
fix(indexing): chunk adding documents to indexing server (#36)
This should prevent adding too many mods and going over
meilisearch's request size limit by attempting to add all mods in
one request.
2020-07-15 15:01:49 -07:00
Mikhail Oleynikov
c915926e0f Merge branch 'master' of github.com:modrinth/dungeon 2020-07-14 16:43:03 +03:00
Mikhail Oleynikov
25203934e6 Switch to Nuxt 2020-07-14 16:42:46 +03:00
Aeledfyr
6ff7fa74e2
Improve error handling (#33)
* refactor: improve error handling

* fix: specify bind address instead of port

* fix: remove temporary testing file

* fix(errors): change error names to snake_case

* refactor(errors): split indexing error types, remove unused errors

* feat: add env variable checking at program start

This just checks whether the enviroment variables exist and can
parse to the given type and gives a warning if they can't. This
should prevent cases where the program fails at runtime due to
checking an environment variable that doesn't exist.
2020-07-03 10:44:39 -07:00
Geometrically
91305262f1
Add Backblaze Driver (#32)
* Backblaze Driver

* Update action to work with new tests

* Fix minor issues

* Run Formatter + Switch to reqwest json parser
2020-07-02 14:00:04 +02:00
Aeledfyr
6d16b68f11
Create schema for the API (#28)
* feat(schema): add basic structs for schema

* feat(schema): implement base62 id parsing

* docs(schema): add documentation for schema structs
fix(schema): prevent integer overflow in base62 decoding

* refactor(schema): move ids into submodules, reexport from ids mod

* feat(schema): add random generation of base62 ids
style: run rustfmt
2020-07-01 22:24:42 +02:00
Charalampos Fanoulis
f22e4f1cc7
feat: Add label syncing. (#30)
* ci: Add label syncing

* ci: add more label sprinkles
2020-07-01 11:32:23 -07:00
Geometrically
4b1b2878ea Create LICENSE.md 2020-07-01 11:15:45 +03:00
MulverineX
2851d12357
readme edits (#29)
* Update README.md

* Update README.md
2020-07-01 08:43:44 +02:00
Valentin Ricard
73968e4277
fix(env): Hotfixed the env name (#27) 2020-06-30 20:00:41 +02:00
Valentin Ricard
7a6ecd86c6
Rewrite the app (#23)
* chore: Removed everything not needed, and added base for rewrite
feat(error_handling): Added 404 general cache
feat(index): Added informations about the app in the / route.

* feat(indexing): Brought back the indexing, with conditions to make it easier

* fix: Fixed build error with a forgotten call

* feat: Add Docker development enviroment (#19)

* ci: add a *lot* of new actions

* fix: rename linting action

* fix: invalid yaml begone(?)

* ci: Added cache to speed up build times

* fix(ci): 🦀ed the yaml errors

* fix(ci): fixed a missing hyphen

* ci: Added matrix of rust versions, and changed way to install rust toolchain

* fix(ci): Added names to build with the matrix so it's easier to find the source of the problem

* style(ci): Added eof lines

* refactor: Finished moving the search.rs file to a separate module.

* Search Endpoint

* refactor: Moved around functions and struct for a better understanding of what it does.

* chore: Change env default settings to resolve conversation

* refactor: Removed #[use_macros]
fix: Fixed meilisearch address from env

* chore: Added email to Aeledfyr

* fix: Brought back the dotenv variables

* style: Ran `cargo fmt`

Co-authored-by: Charalampos Fanoulis <charalampos.fanoulis@gmail.com>
Co-authored-by: Jai A <jai.a@tuta.io>
2020-06-30 19:23:52 +02:00
Mikhail Oleynikov
b11d5514b9 Initial commit 2020-06-29 11:56:46 +03:00
Jai A
1ff2a08d19 Final push before rewrite 2020-06-28 13:53:03 -07:00
Geometrically
d1efd62e7b
Merge pull request #14 from Aeledfyr/master
Minify icons and implement SVG spritesheets
2020-06-27 20:18:01 -07:00
Aeledfyr
366c95cd3c
Fix a few display bugs 2020-06-27 17:30:35 -05:00
Aeledfyr
7e03f3958e
Implement SVG sprite sheet for icons, use thumbnails for mod icons 2020-06-27 17:30:34 -05:00
Aeledfyr
e069184721
Compress/Minify icons 2020-06-27 17:26:59 -05:00
Geometrically
5182441cb3
Merge pull request #12 from joaoh1/master
Make category badges more generic
2020-06-27 15:06:02 -07:00
joaoh1
0de55a8ff5 Make category badges more generic 2020-06-27 16:22:09 -03:00
Jai A
0900d7c764 Add staging popup 2020-06-27 10:29:49 -07:00
Jai A
8540e09ba7 Fix #11 and Cleanup dependencies 2020-06-26 22:35:20 -07:00
Jai A
6e301601f9 Fix minor styling issues 2020-06-25 22:40:29 -07:00
Geometrically
1bf0eab2d9
Merge pull request #7 from Aeledfyr/master
Improve styling for narrower screens
2020-06-25 19:23:16 -07:00
Aeledfyr
d560f656f4
Reduce duplication of Forge logo using svg <use>
This uses svg <use href="#..."> to avoid having to duplicate the
logo at every use.  Surprisingly this just works with the current
theme css, and doesn't require any changes.
2020-06-25 21:14:50 -05:00
Aeledfyr
0bc256aa23
Miscellaneous fixes and requested changes 2020-06-25 20:19:07 -05:00
Aeledfyr
ebc073a52e
Tweak styles for narrower screens, add indicator for no results
Makes the styles of search results work better with narrower
screens.  The category badges on each result collapse to just an
icon (with title text) when the screen is too narrow.

Adds a text label for the Forge/Fabric icons.

Adds a message for when a query returns no results.
2020-06-25 17:14:12 -05:00
Jai A
23503dc439 Base creation page 2020-06-22 21:04:17 -07:00
Geometrically
1f4985c7dd
Merge pull request #6 from emilyploszaj/master
Implemented a dark theme
2020-06-22 19:57:37 -07:00
emilyploszaj
ed88d9e10d Implemented a dark theme 2020-06-22 21:48:42 -05:00
Jai A
906196bac3 Staging Test 2020-06-20 18:19:19 -07:00
Jai A
cb9751be04 Add CONTRIBUTING.md 2020-06-19 20:19:19 -07:00
Geometrically
09e03d579b
Merge pull request #4 from Geometrically/dependabot/add-v2-config-file
Create Dependabot config file
2020-06-18 22:21:47 -07:00
dependabot-preview[bot]
9fcca2698e
Create Dependabot config file 2020-06-19 05:21:30 +00:00
Geometrically
bba8cd9b58
Merge pull request #2 from Geometrically/dependabot/cargo/bson-1.0.0
Update bson requirement from 0.14.1 to 1.0.0
2020-06-18 22:21:07 -07:00
dependabot-preview[bot]
c8bb30289a
Update bson requirement from 0.14.1 to 1.0.0
Updates the requirements on [bson](https://github.com/mongodb/bson-rust) to permit the latest version.
- [Release notes](https://github.com/mongodb/bson-rust/releases)
- [Commits](https://github.com/mongodb/bson-rust/compare/v0.14.1...v1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-19 05:13:06 +00:00
Geometrically
69f56c1eb7
Merge pull request #3 from Geometrically/dependabot/cargo/mongodb-1.0.0
Update mongodb requirement from 0.10.0 to 1.0.0
2020-06-18 22:11:42 -07:00
dependabot-preview[bot]
adc8e23356
Update mongodb requirement from 0.10.0 to 1.0.0
Updates the requirements on [mongodb](https://github.com/mongodb/mongo-rust-driver) to permit the latest version.
- [Release notes](https://github.com/mongodb/mongo-rust-driver/releases)
- [Commits](https://github.com/mongodb/mongo-rust-driver/compare/v0.10.0...v1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-19 05:09:44 +00:00
Jai A
88005c6603 API Page 2020-06-09 21:57:52 -07:00
Jai A
33ee4c36b4 API Page base 2020-06-05 20:19:19 -07:00
Jai A
1a142b7fe6 Versions Search 2020-06-04 20:19:19 -07:00
Jai A
90373806c0 Main mod page 2020-06-03 20:19:19 -07:00
Jai A
a47634bf49 Static content serving from non-root routes 2020-06-02 20:59:20 -07:00
Jai A
e03e58323b Cleanup + Database code 2020-06-02 12:03:45 -07:00
Jai A
ab1e31c0e7 Finish search 2020-06-01 17:01:13 -07:00
Jai A
aa5505d693 Edit CF indexer 2020-05-31 22:20:16 -07:00
Jai A
74f8f687cf Github Actions checks 2020-05-30 17:09:24 -07:00
Jai A
d54500bad5 Sort Types 2020-05-30 16:53:56 -07:00
Jai A
4966b4d58d Sort by WIP 2020-05-29 22:21:53 -07:00
Jai A
b75a4667c2 Migrate to MongoDB 2020-05-28 13:28:58 -07:00
Geometrically
14579a9320
Merge pull request #1 from Scotsguy/master
Fix clippy warnings & rustfmt
2020-05-27 12:28:57 -07:00
AppleTheGolden
1d92eff974
Fix serde attributes 2020-05-27 21:25:39 +02:00
AppleTheGolden
91274267e5
Run rustfmt on everything 2020-05-27 20:51:28 +02:00
AppleTheGolden
c49f0ede16
Fix clippy warnings 2020-05-27 20:46:59 +02:00
Jai A
42a0f452b1 FOSS 2020-05-27 11:03:19 -07:00
Jai A
c24ab9831a Add categories + Infinite Scroll 2020-05-23 21:06:36 -07:00
Jai A
506a68ee6a Fixes + Finish Indexer 2020-05-22 22:48:17 -07:00
Jai A
1291f792ab Curseforge Indexer 2020-05-21 22:38:39 -07:00
Jai A
51cfb1903d CF Indexer start 2020-05-20 22:32:57 -07:00
Jai A
1b1c15694a Fix Mod page styling 2020-05-19 22:39:05 -07:00
Jai A
251f1941a9 Finish mod main page 2020-05-18 22:35:03 -07:00
Jai A
625617bb20 Mod navigation bar 2020-05-18 22:20:34 -07:00
Jai A
f80f161886 Start mods page 2020-05-16 22:37:02 -07:00
Jai A
4b4889d5f2 Finish database code 2020-05-15 22:00:47 -07:00
Jai A
fee34ba257 Basic Database 2020-05-14 22:53:22 -07:00
Jai A
c29ab25dd2 Version Selector 2020-05-13 22:34:19 -07:00
Jai A
e0308a11c9 Search filters 2020-05-12 22:27:31 -07:00
Jai A
a738998c2c Badges + Refactoring 2020-05-11 22:53:08 -07:00
Jai A
6be22c474d Working Search 2020-05-10 22:30:28 -07:00
Jai A
da19743ba5 Initial Commit 2020-05-09 22:11:48 -07:00
2537 changed files with 278549 additions and 32225 deletions

View File

@ -1,3 +1,9 @@
# Windows has stack overflows when calling from Tauri, so we increase compiler size
# Windows has stack overflows when calling from Tauri, so we increase the default stack size used by the compiler
[target.'cfg(windows)']
rustflags = ["-C", "link-args=/STACK:16777220"]
rustflags = ["-C", "link-args=/STACK:16777220", "--cfg", "tokio_unstable"]
[target.x86_64-pc-windows-msvc]
linker = "rust-lld"
[build]
rustflags = ["--cfg", "tokio_unstable"]

1
.dockerignore Symbolic link
View File

@ -0,0 +1 @@
.gitignore

View File

@ -1,13 +1,18 @@
# Editor configuration, see http://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
trim_trailing_whitespace = true
max_line_length = 100
[*.md]
max_line_length = off
trim_trailing_whitespace = false
[*.{rs,java,kts}]
indent_size = 4

35
.gitattributes vendored Normal file
View File

@ -0,0 +1,35 @@
* text=auto eol=lf
# SQLx calculates a checksum of migration scripts at build time to compare
# it with the checksum of the applied migration for the same version at
# runtime, to know if the migration script has been changed, and thus the
# DB schema went out of sync with the code.
#
# However, such checksum treats the script as a raw byte stream, taking
# into account inconsequential differences like different line endings
# in different OSes. When combined with Git's EOL conversion and mixed
# native and cross-compilation scenarios, this leads to existing
# migrations that didn't change having potentially different checksums
# according to the environment they were built in, which can break the
# migration system when deploying the Modrinth App, rendering it
# unusable.
#
# The gitattribute above ensures that all text files are checked out
# with LF line endings, but widely deployed app versions were built
# without this attribute set, which left such line endings variable to
# the platform. Thus, there is no perfect solution to this problem:
# forcing CRLF here would break Linux and macOS users, forcing LF
# breaks Windows users, and leaving it unspecified may still lead to
# line ending differences when cross-compiling from Linux to Windows
# or vice versa, or having Git configured with different line
# conversion settings. Moreover, there is no `eol=native` attribute,
# and using CI-only scripts to convert line endings would make the
# builds differ between CI and most local environments. So, let's pick
# the least bad option: let Git handle line endings using its
# configuration by leaving it unspecified, which works fine as long as
# people don't mess with Git's line ending settings, which is the vast
# majority of cases.
/packages/app-lib/migrations/20240711194701_init.sql !eol
/packages/app-lib/migrations/20240813205023_drop-active-unique.sql !eol
/packages/app-lib/migrations/20240930001852_disable-personalized-ads.sql !eol
/packages/app-lib/migrations/20241222013857_feature-flags.sql !eol

59
.github/ISSUE_TEMPLATE/1-app-bug.yml vendored Normal file
View File

@ -0,0 +1,59 @@
name: 🎮 Modrinth App bug
description: Report an issue in the Modrinth Launcher.
labels: [bug, app]
body:
- type: checkboxes
attributes:
label: Please confirm the following.
options:
- label: I checked the [existing issues](https://github.com/modrinth/code/issues?q=is%3Aissue) for duplicate problems
required: true
- label: I have tried resolving the issue using the [support portal](https://support.modrinth.com)
required: true
- label: I have ensured my Modrinth App installation is up to date
required: true
- type: input
id: version
attributes:
label: What version of the Modrinth App are you using?
description: Find this in ⚙️ Settings (bottom right) -> After Modrinth App (bottom left)
validations:
required: true
- type: dropdown
id: oses
attributes:
label: What operating systems are you seeing the problem on?
multiple: true
options:
- Windows
- MacOS
- Linux
- type: textarea
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is. Include screenshots if applicable.
validations:
required: true
- type: textarea
attributes:
label: Steps to reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error
validations:
required: false
- type: textarea
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
validations:
required: false
- type: textarea
attributes:
label: Additional context
description: Add any other context about the problem here.
validations:
required: false

52
.github/ISSUE_TEMPLATE/2-web-bug.yml vendored Normal file
View File

@ -0,0 +1,52 @@
name: 🌐 Website bug (modrinth.com)
description: Report an issue on the Modrinth website.
labels: [bug, web]
body:
- type: checkboxes
attributes:
label: Please confirm the following.
options:
- label: I checked the [existing issues](https://github.com/modrinth/code/issues?q=is%3Aissue) for duplicate problems
required: true
- label: I have tried resolving the issue using the [support portal](https://support.modrinth.com)
required: true
- type: dropdown
id: browsers
attributes:
label: What browsers are you seeing the problem on?
multiple: true
options:
- Chrome (including Arc, Brave, Opera, Vivaldi)
- Microsoft Edge
- Firefox
- Safari
- Other (please specify)
- type: textarea
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is. Include screenshots if applicable.
validations:
required: false
- type: textarea
attributes:
label: Steps to reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error
validations:
required: false
- type: textarea
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
validations:
required: false
- type: textarea
attributes:
label: Additional context
description: Add any other context about the problem here.
validations:
required: false

View File

@ -1,11 +1,19 @@
name: Bug report
description: Create a report to help us improve Modrinth
labels: [bug]
name: 🛠️ API issue (api.modrinth.com)
description: Report an issue regarding the Modrinth API.
labels: [bug, backend]
body:
- type: checkboxes
attributes:
label: Please confirm the following.
options:
- label: I checked the [existing issues](https://github.com/modrinth/code/issues?q=is%3Aissue) for duplicate problems
required: true
- label: I have tried resolving the issue using the [support portal](https://support.modrinth.com)
required: true
- type: textarea
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
description: A clear and concise description of what the bug is. Include screenshots if applicable.
validations:
required: false
- type: textarea
@ -25,13 +33,9 @@ body:
description: A clear and concise description of what you expected to happen.
validations:
required: false
- type: textarea
attributes:
label: System information
description: Add any information about what OS you are on (like Windows or Mac), and what version of the app you are using.
- type: textarea
attributes:
label: Additional context
description: Add any other context about the problem here. This might include logs, screenshots, etc. The more the merrier!
description: Add any other context about the problem here.
validations:
required: false

View File

@ -1,10 +1,28 @@
name: Enhancement
description: Suggest an enhancement for an existing Modrinth feature
name: 💡 Feature Request
description: Suggest an idea
labels: [enhancement]
body:
- type: checkboxes
attributes:
label: Please confirm the following.
options:
- label: I checked the [existing issues](https://github.com/modrinth/code/issues?q=is%3Aissue) for duplicate feature requests
required: true
- label: I have checked that this feature request is not on our [roadmap](https://roadmap.modrinth.com)
required: true
- type: dropdown
id: projects
attributes:
label: What parts of Modrinth is your feature request related too?
multiple: true
options:
- App
- Website
- API
- type: textarea
attributes:
label: Is your suggested enhancement related to a problem? Please describe.
label: Is your suggested feature related to a problem? Please describe.
description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
validations:
required: false

View File

@ -1,16 +1,14 @@
blank_issues_enabled: true
contact_links:
- name: Discord
about: Ask questions on our Discord Server.
- name: 🫶 Support Portal
about: Get support using through our portal.
url: https://support.modrinth.com
- name: 💬 Chat
about: Join our Discord server to chat about Modrinth.
url: https://discord.modrinth.com
- name: Roadmap
- name: 🛣️ Roadmap
about: View our Roadmap. Please do not open issues for items on our roadmap.
url: https://roadmap.modrinth.com
- name: Discussions (Feature requests)
about: |
Please use Issues for reporting bugs and suggesting enhancements to existing features.
Suggestions for new features should be made as a Discussion.
url: https://github.com/orgs/modrinth/discussions/categories/feature-requests
- name: Documentation
about: Useful documentation about Modrinth, its API, and how you can contribute.
- name: 📚 Documentation
about: Useful documentation about Modrinth's API
url: https://docs.modrinth.com

BIN
.github/assets/api_cover.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

BIN
.github/assets/app_cover.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
.github/assets/monorepo_cover.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 KiB

BIN
.github/assets/web_cover.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -1,44 +0,0 @@
name: CLI Build + Lint
on:
push:
branches: [ master ]
pull_request:
env:
CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./theseus_cli
steps:
- name: Checkout
uses: actions/checkout@v3
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
- name: Rust setup
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'
- uses: actions-rs/cargo@v1
name: Build program
with:
command: build
args: --bin theseus_cli
- name: Run Lint
uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --bin theseus_cli

47
.github/workflows/daedalus-docker.yml vendored Normal file
View File

@ -0,0 +1,47 @@
name: daedalus-docker-build
on:
push:
branches:
- '**'
paths:
- .github/workflows/daedalus-docker.yml
- 'apps/daedalus_client/**'
- 'packages/daedalus/**'
pull_request:
types: [opened, synchronize]
paths:
- .github/workflows/daedalus-docker.yml
- 'apps/daedalus_client/**'
- 'packages/daedalus/**'
merge_group:
types: [checks_requested]
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Fetch docker metadata
id: docker_meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/modrinth/daedalus
- name: Login to GitHub Images
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
file: ./apps/daedalus_client/Dockerfile
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}
cache-from: type=registry,ref=ghcr.io/modrinth/daedalus:main
cache-to: type=inline

51
.github/workflows/daedalus-run.yml vendored Normal file
View File

@ -0,0 +1,51 @@
name: Run Meta
on:
schedule:
- cron: '*/5 * * * *'
workflow_dispatch:
jobs:
run-docker:
if: github.repository_owner == 'modrinth'
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Log in to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Pull Docker image from GHCR
run: docker pull ghcr.io/modrinth/daedalus:main
- name: Run Docker container
env:
BASE_URL: ${{ secrets.BASE_URL }}
S3_ACCESS_TOKEN: ${{ secrets.S3_ACCESS_TOKEN }}
S3_SECRET: ${{ secrets.S3_SECRET }}
S3_URL: ${{ secrets.S3_URL }}
S3_REGION: ${{ secrets.S3_REGION }}
S3_BUCKET_NAME: ${{ secrets.S3_BUCKET_NAME }}
CLOUDFLARE_INTEGRATION: ${{ secrets.CLOUDFLARE_INTEGRATION }}
CLOUDFLARE_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }}
CLOUDFLARE_ZONE_ID: ${{ secrets.CLOUDFLARE_ZONE_ID }}
run: |
docker run \
--name daedalus \
-e RUST_LOG=warn,daedalus_client=trace \
-e BASE_URL=$BASE_URL \
-e S3_ACCESS_TOKEN=$S3_ACCESS_TOKEN \
-e S3_SECRET=$S3_SECRET \
-e S3_URL=$S3_URL \
-e S3_REGION=$S3_REGION \
-e S3_BUCKET_NAME=$S3_BUCKET_NAME \
-e CLOUDFLARE_INTEGRATION=$CLOUDFLARE_INTEGRATION \
-e CLOUDFLARE_TOKEN=$CLOUDFLARE_TOKEN \
-e CLOUDFLARE_ZONE_ID=$CLOUDFLARE_ZONE_ID \
ghcr.io/modrinth/daedalus:main

30
.github/workflows/frontend-pages.yml vendored Normal file
View File

@ -0,0 +1,30 @@
name: Clear pages cache
on:
push:
branches:
- prod
jobs:
wait:
if: github.repository_owner == 'modrinth'
runs-on: ubuntu-latest
permissions:
contents: read
deployments: write
steps:
- name: Cloudflare Pages deployment
uses: WalshyDev/cf-pages-await@v1
with:
apiToken: ${{ secrets.CF_API_TOKEN }}
accountId: '9ddae624c98677d68d93df6e524a6061'
project: 'frontend'
commitHash: ${{ steps.push-changes.outputs.commit-hash }}
- name: Purge cache
if: github.ref == 'refs/heads/prod'
run: |
curl -X POST \
-H "Authorization: Bearer ${{ secrets.CF_API_TOKEN }}" \
-H "Content-Type: application/json" \
--data '{"hosts": ["modrinth.com", "www.modrinth.com"]}' \
https://api.cloudflare.com/client/v4/zones/e39df17b9c4ef44cbce2646346ee6d33/purge_cache

View File

@ -1,42 +0,0 @@
name: GUI Build + Lint
on:
push:
branches: [master]
pull_request:
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./theseus_gui
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Install pnpm via corepack
shell: bash
run: |
corepack enable
corepack prepare --activate
- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Setup pnpm cache
uses: actions/cache@v3
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Run Lint
run: pnpm lint
- name: Build
run: pnpm build

45
.github/workflows/labrinth-docker.yml vendored Normal file
View File

@ -0,0 +1,45 @@
name: docker-build
on:
push:
branches:
- '**'
paths:
- .github/workflows/labrinth-docker.yml
- 'apps/labrinth/**'
pull_request:
types: [opened, synchronize]
paths:
- .github/workflows/labrinth-docker.yml
- 'apps/labrinth/**'
merge_group:
types: [checks_requested]
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Fetch docker metadata
id: docker_meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/modrinth/labrinth
- name: Login to GitHub Images
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v6
with:
file: ./apps/labrinth/Dockerfile
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.docker_meta.outputs.tags }}
labels: ${{ steps.docker_meta.outputs.labels }}
cache-from: type=registry,ref=ghcr.io/modrinth/labrinth:main
cache-to: type=inline

View File

@ -1,109 +0,0 @@
name: 'Tauri GUI Build'
on:
push:
branches: [ master ]
pull_request:
jobs:
test-tauri:
strategy:
fail-fast: false
matrix:
platform: [macos-latest, windows-latest, ubuntu-20.04, ubuntu-22.04]
runs-on: ${{ matrix.platform }}
defaults:
run:
working-directory: ./theseus_gui
steps:
- uses: actions/checkout@v3
- name: Rust setup (mac)
if: startsWith(matrix.platform, 'macos')
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
targets: aarch64-apple-darwin
- name: Rust setup
if: "!startsWith(matrix.platform, 'macos')"
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: 18.x
- name: Install pnpm via corepack
shell: bash
run: |
corepack enable
corepack prepare --activate
- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: Setup pnpm cache
uses: actions/cache@v3
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: install dependencies (ubuntu only)
if: startsWith(matrix.platform, 'ubuntu')
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf libselinux1
- name: Install frontend dependencies
run: pnpm install
- name: build app (macos)
uses: tauri-apps/tauri-action@v0
id: build_os_mac
if: startsWith(matrix.platform, 'macos')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
with:
args: --target universal-apple-darwin
- name: build app
uses: tauri-apps/tauri-action@v0
id: build_os
if: "!startsWith(matrix.platform, 'macos')"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
- name: upload ${{ matrix.platform }}
uses: actions/upload-artifact@v3
if: startsWith(matrix.platform, 'macos')
with:
name: ${{ matrix.platform }}
path: "${{ join(fromJSON(steps.build_os_mac.outputs.artifactPaths), '\n') }}"
- name: upload ${{ matrix.platform }}
uses: actions/upload-artifact@v3
if: "!startsWith(matrix.platform, 'macos')"
with:
name: ${{ matrix.platform }}
path: "${{ join(fromJSON(steps.build_os.outputs.artifactPaths), '\n') }}"

152
.github/workflows/theseus-build.yml vendored Normal file
View File

@ -0,0 +1,152 @@
name: Modrinth App build
on:
push:
branches:
- main
tags:
- 'v*'
paths:
- .github/workflows/theseus-build.yml
- 'apps/app/**'
- 'apps/app-frontend/**'
- 'packages/app-lib/**'
- 'packages/app-macros/**'
- 'packages/assets/**'
- 'packages/ui/**'
- 'packages/utils/**'
workflow_dispatch:
inputs:
sign-windows-binaries:
description: Sign Windows binaries
type: boolean
default: true
required: false
jobs:
build:
name: Build
strategy:
fail-fast: false
matrix:
platform: [macos-latest, windows-latest, ubuntu-22.04]
include:
- platform: macos-latest
artifact-target-name: universal-apple-darwin
- platform: windows-latest
artifact-target-name: x86_64-pc-windows-msvc
- platform: ubuntu-22.04
artifact-target-name: x86_64-unknown-linux-gnu
runs-on: ${{ matrix.platform }}
steps:
- name: 📥 Check out code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: 🧰 Setup Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
rustflags: ''
target: ${{ startsWith(matrix.platform, 'macos') && 'x86_64-apple-darwin' || '' }}
- name: 🧰 Install pnpm
uses: pnpm/action-setup@v4
- name: 🧰 Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: .nvmrc
cache: pnpm
- name: 🧰 Install Linux build dependencies
if: startsWith(matrix.platform, 'ubuntu')
run: |
sudo apt-get update
sudo apt-get install -yq libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev
- name: 🧰 Setup Dasel
uses: jaxxstorm/action-install-gh-release@v2.1.0
with:
repo: TomWright/dasel
tag: v2.8.1
extension-matching: disable
rename-to: ${{ startsWith(matrix.platform, 'windows') && 'dasel.exe' || 'dasel' }}
chmod: 0755
- name: ⚙️ Set application version and environment
shell: bash
run: |
APP_VERSION="$(git describe --tags --always | sed -E 's/-([0-9]+)-(g[0-9a-fA-F]+)$/-canary+\1.\2/')"
echo "Setting application version to $APP_VERSION"
dasel put -f apps/app/Cargo.toml -t string -v "${APP_VERSION#v}" 'package.version'
dasel put -f packages/app-lib/Cargo.toml -t string -v "${APP_VERSION#v}" 'package.version'
dasel put -f apps/app-frontend/package.json -t string -v "${APP_VERSION#v}" 'version'
cp packages/app-lib/.env.prod packages/app-lib/.env
- name: 💨 Setup Turbo cache
uses: rharkor/caching-for-turbo@v1.8
- name: 🧰 Install dependencies
run: pnpm install
- name: ✍️ Set up Windows code signing
if: startsWith(matrix.platform, 'windows')
shell: bash
run: |
if [ '${{ startsWith(github.ref, 'refs/tags/v') || inputs.sign-windows-binaries }}' = 'true' ]; then
choco install jsign --ignore-dependencies # GitHub runners come with a global Java installation already
else
dasel delete -f apps/app/tauri-release.conf.json 'bundle.windows.signCommand'
fi
- name: 🔨 Build macOS app
run: pnpm --filter=@modrinth/app run tauri build --target universal-apple-darwin --config tauri-release.conf.json
if: startsWith(matrix.platform, 'macos')
env:
ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
- name: 🔨 Build Linux app
run: pnpm --filter=@modrinth/app run tauri build --config tauri-release.conf.json
if: startsWith(matrix.platform, 'ubuntu')
env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
- name: 🔨 Build Windows app
run: |
[System.Convert]::FromBase64String("$env:DIGICERT_ONE_SIGNER_CLIENT_CERTIFICATE_BASE64") | Set-Content -Path signer-client-cert.p12 -AsByteStream
$env:DIGICERT_ONE_SIGNER_CREDENTIALS = "$env:DIGICERT_ONE_SIGNER_API_KEY|$PWD\signer-client-cert.p12|$env:DIGICERT_ONE_SIGNER_CLIENT_CERTIFICATE_PASSWORD"
$env:JAVA_HOME = "$env:JAVA_HOME_11_X64"
pnpm --filter=@modrinth/app run tauri build --config tauri-release.conf.json --verbose --bundles 'nsis,updater'
Remove-Item -Path signer-client-cert.p12 -ErrorAction SilentlyContinue
if: startsWith(matrix.platform, 'windows')
env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
DIGICERT_ONE_SIGNER_API_KEY: ${{ secrets.DIGICERT_ONE_SIGNER_API_KEY }}
DIGICERT_ONE_SIGNER_CLIENT_CERTIFICATE_BASE64: ${{ secrets.DIGICERT_ONE_SIGNER_CLIENT_CERTIFICATE_BASE64 }}
DIGICERT_ONE_SIGNER_CLIENT_CERTIFICATE_PASSWORD: ${{ secrets.DIGICERT_ONE_SIGNER_CLIENT_CERTIFICATE_PASSWORD }}
- name: 📤 Upload app bundles
uses: actions/upload-artifact@v4
with:
name: App bundle (${{ matrix.artifact-target-name }})
path: |
target/release/bundle/appimage/Modrinth App_*.AppImage*
target/release/bundle/deb/Modrinth App_*.deb*
target/release/bundle/rpm/Modrinth App-*.rpm*
target/universal-apple-darwin/release/bundle/macos/Modrinth App.app.tar.gz*
target/universal-apple-darwin/release/bundle/dmg/Modrinth App_*.dmg*
target/release/bundle/nsis/Modrinth App_*-setup.exe*
target/release/bundle/nsis/Modrinth App_*-setup.nsis.zip*

118
.github/workflows/theseus-release.yml vendored Normal file
View File

@ -0,0 +1,118 @@
name: Modrinth App release
on:
workflow_dispatch:
inputs:
version-tag:
description: Version tag to release to the wide public
type: string
required: true
release-notes:
description: Release notes to include in the Tauri version manifest
default: A new release of the Modrinth App is available!
type: string
required: true
jobs:
release:
name: Release Modrinth App
runs-on: ubuntu-latest
env:
LINUX_X64_BUNDLE_ARTIFACT_NAME: App bundle (x86_64-unknown-linux-gnu)
WINDOWS_X64_BUNDLE_ARTIFACT_NAME: App bundle (x86_64-pc-windows-msvc)
MACOS_UNIVERSAL_BUNDLE_ARTIFACT_NAME: App bundle (universal-apple-darwin)
LAUNCHER_FILES_BUCKET_BASE_URL: https://launcher-files.modrinth.com
steps:
- name: 📥 Download Modrinth App artifacts
uses: dawidd6/action-download-artifact@v11
with:
workflow: theseus-build.yml
workflow_conclusion: success
event: push
branch: ${{ inputs.version-tag }}
use_unzip: true
- name: 🛠️ Generate version manifest
env:
VERSION_TAG: ${{ inputs.version-tag }}
RELEASE_NOTES: ${{ inputs.release-notes }}
run: |
# Reference: https://tauri.app/plugin/updater/#server-support
jq -nc \
--arg versionTag "${VERSION_TAG#v}" \
--arg releaseNotes "$RELEASE_NOTES" \
--rawfile macOsAarch64UpdateArtifactSignature "${MACOS_UNIVERSAL_BUNDLE_ARTIFACT_NAME}/universal-apple-darwin/release/bundle/macos/Modrinth App.app.tar.gz.sig" \
--rawfile macOsX64UpdateArtifactSignature "${MACOS_UNIVERSAL_BUNDLE_ARTIFACT_NAME}/universal-apple-darwin/release/bundle/macos/Modrinth App.app.tar.gz.sig" \
--rawfile linuxX64UpdateArtifactSignature "${LINUX_X64_BUNDLE_ARTIFACT_NAME}/release/bundle/appimage/Modrinth App_${VERSION_TAG#v}_amd64.AppImage.tar.gz.sig" \
--rawfile windowsX64UpdateArtifactSignature "${WINDOWS_X64_BUNDLE_ARTIFACT_NAME}/release/bundle/nsis/Modrinth App_${VERSION_TAG#v}_x64-setup.nsis.zip.sig" \
'{
"version": $versionTag,
"notes": $releaseNotes,
"pub_date": now | todateiso8601,
"platforms": {
"darwin-aarch64": {
"signature": $macOsAarch64UpdateArtifactSignature,
"url": @uri "${{ env.LAUNCHER_FILES_BUCKET_BASE_URL }}/versions/\($versionTag)/macos/\("Modrinth App.app.tar.gz")",
"install_urls": [@uri "${{ env.LAUNCHER_FILES_BUCKET_BASE_URL }}/versions/\($versionTag)/macos/\("Modrinth App_" + $versionTag + "_universal.dmg")"]
},
"darwin-x86_64": {
"signature": $macOsX64UpdateArtifactSignature,
"url": @uri "${{ env.LAUNCHER_FILES_BUCKET_BASE_URL }}/versions/\($versionTag)/macos/\("Modrinth App.app.tar.gz")",
"install_urls": [@uri "${{ env.LAUNCHER_FILES_BUCKET_BASE_URL }}/versions/\($versionTag)/macos/\("Modrinth App_" + $versionTag + "_universal.dmg")"]
},
"linux-x86_64": {
"signature": $linuxX64UpdateArtifactSignature,
"url": @uri "${{ env.LAUNCHER_FILES_BUCKET_BASE_URL }}/versions/\($versionTag)/linux/\("Modrinth App_" + $versionTag + "_amd64.AppImage.tar.gz")",
"install_urls": [
@uri "${{ env.LAUNCHER_FILES_BUCKET_BASE_URL }}/versions/\($versionTag)/linux/\("Modrinth App_" + $versionTag + "_amd64.deb")",
@uri "${{ env.LAUNCHER_FILES_BUCKET_BASE_URL }}/versions/\($versionTag)/linux/\("Modrinth App_" + $versionTag + "_amd64.AppImage")",
@uri "${{ env.LAUNCHER_FILES_BUCKET_BASE_URL }}/versions/\($versionTag)/linux/\("Modrinth App-" + $versionTag + "-1.x86_64.rpm")"
]
},
"windows-x86_64": {
"signature": $windowsX64UpdateArtifactSignature,
"url": @uri "${{ env.LAUNCHER_FILES_BUCKET_BASE_URL }}/versions/\($versionTag)/windows/\("Modrinth App_" + $versionTag + "_x64-setup.nsis.zip")",
"install_urls": [@uri "${{ env.LAUNCHER_FILES_BUCKET_BASE_URL }}/versions/\($versionTag)/windows/\("Modrinth App_" + $versionTag + "_x64-setup.exe")"]
}
}
}' > updates.json
echo "Generated manifest for version ${VERSION_TAG}:"
cat updates.json
- name: 📤 Upload release artifacts
env:
VERSION_TAG: ${{ inputs.version-tag }}
AWS_ACCESS_KEY_ID: ${{ secrets.LAUNCHER_FILES_BUCKET_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.LAUNCHER_FILES_BUCKET_SECRET_ACCESS_KEY }}
AWS_BUCKET: ${{ secrets.LAUNCHER_FILES_BUCKET_NAME }}
AWS_REGION: ${{ secrets.LAUNCHER_FILES_BUCKET_REGION }}
AWS_ENDPOINT_URL: ${{ secrets.LAUNCHER_FILES_BUCKET_ENDPOINT_URL }}
AWS_PAGER: ''
# Work around incompatible checksum behavior with some S3-like object storage providers,
# such as Cloudflare R2. See:
# - https://developers.cloudflare.com/r2/examples/aws/aws-cli/
# - https://developers.cloudflare.com/r2/examples/aws/aws-sdk-java/
AWS_REQUEST_CHECKSUM_CALCULATION: when_required
AWS_RESPONSE_CHECKSUM_VALIDATION: when_required
run: |
for macosBundleType in 'macos' 'dmg'; do
aws s3 cp --recursive \
"${MACOS_UNIVERSAL_BUNDLE_ARTIFACT_NAME}/universal-apple-darwin/release/bundle/${macosBundleType}" \
"s3://${AWS_BUCKET}/versions/${VERSION_TAG#v}/macos"
done
for linuxBundleType in 'appimage' 'deb' 'rpm'; do
aws s3 cp --recursive \
"${LINUX_X64_BUNDLE_ARTIFACT_NAME}/release/bundle/${linuxBundleType}" \
"s3://${AWS_BUCKET}/versions/${VERSION_TAG#v}/linux"
done
for windowsBundleType in 'nsis'; do
aws s3 cp --recursive \
"${WINDOWS_X64_BUNDLE_ARTIFACT_NAME}/release/bundle/${windowsBundleType}" \
"s3://${AWS_BUCKET}/versions/${VERSION_TAG#v}/windows"
done
aws s3 cp updates.json "s3://${AWS_BUCKET}"

87
.github/workflows/turbo-ci.yml vendored Normal file
View File

@ -0,0 +1,87 @@
name: CI
on:
push:
branches: [main]
pull_request:
types: [opened, synchronize]
merge_group:
types: [checks_requested]
jobs:
build:
name: Lint and Test
runs-on: ubuntu-22.04
env:
# Ensure pnpm output is colored in GitHub Actions logs
FORCE_COLOR: 3
# Make cargo nextest successfully ignore projects without tests
NEXTEST_NO_TESTS: pass
steps:
- name: 📥 Check out code
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: 🧰 Install build dependencies
run: |
sudo apt-get update
sudo apt-get install -yq libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev
- name: 🧰 Install pnpm
uses: pnpm/action-setup@v4
- name: 🧰 Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: .nvmrc
cache: pnpm
- name: 🧰 Setup Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
rustflags: ''
components: clippy, rustfmt
cache: false
- name: 🧰 Setup nextest
uses: taiki-e/install-action@nextest
# cargo-binstall does not have pre-built binaries for sqlx-cli, so we fall
# back to a cached cargo install
- name: 🧰 Setup cargo-sqlx
uses: taiki-e/cache-cargo-install-action@v2
with:
tool: sqlx-cli
locked: false
no-default-features: true
features: rustls,postgres
- name: 💨 Setup Turbo cache
uses: rharkor/caching-for-turbo@v1.8
- name: 🧰 Install dependencies
run: pnpm install
- name: ⚙️ Start services
run: docker compose up --wait
- name: ⚙️ Setup Labrinth environment and database
working-directory: apps/labrinth
run: |
cp .env.local .env
sqlx database setup
- name: ⚙️ Set app environment
working-directory: packages/app-lib
run: cp .env.staging .env
- name: 🔍 Lint and test
run: pnpm run ci
- name: 🔍 Verify intl:extract has been run
run: |
pnpm intl:extract
git diff --exit-code --color */*/src/locales/en-US/index.json

163
.gitignore vendored
View File

@ -1,114 +1,63 @@
/target
node_modules/
.svelte-kit/
theseus_gui/build/
theseus_gui/generated/
WixTools
.direnv/
# See http://help.github.com/ignore-files/ for more about ignoring files.
# compiled output
dist
tmp
/out-tsc
# dependencies
node_modules
# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace
# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
# misc
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings
# System Files
.DS_Store
.pnpm-debug.log
Thumbs.db
minecraft
config
# Nuxt dev/build outputs
.output
.data
.nuxt
.nitro
.cache
[#]*[#]
# frontend generated files
apps/frontend/src/generated
# TEMPORARY: ignore my test instance and metadata
theseus_cli/foo
.turbo
target
generated
.env
### Intellij+all ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
# app testing dir
app-playground-data/*
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# AWS User-specific
.idea/**/aws.xml
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# SonarLint plugin
.idea/sonarlint/
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
### Intellij+all Patch ###
# Ignore everything but code style settings and run configurations
# that are supposed to be shared within teams.
.idea/*
!.idea/codeStyles
!.idea/runConfigurations
# These are backup files generated by rustfmt
**/*.rs.bk
# MSVC Windows builds of rustc generate these, which store debugging information
*.pdb
theseus.iml
# soley because i need the PORT to be 3002 due to WSL stuff
.env
apps/frontend/.env
.astro

8
.idea/.gitignore generated vendored Normal file
View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

19
.idea/code.iml generated Normal file
View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/apps/daedalus_client/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/packages/daedalus/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/apps/app-playground/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/apps/app/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/apps/labrinth/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/apps/labrinth/tests" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/packages/app-lib/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/packages/ariadne/src" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

7
.idea/discord.xml generated Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT_FILES" />
<option name="description" value="" />
</component>
</project>

26
.idea/libraries/KotlinJavaRuntime.xml generated Normal file
View File

@ -0,0 +1,26 @@
<component name="libraryTable">
<library name="KotlinJavaRuntime" type="repository">
<properties maven-id="org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0" />
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.0/kotlin-stdlib-jdk8-1.8.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.8.0/kotlin-stdlib-1.8.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.0/kotlin-stdlib-common-1.8.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.0/kotlin-stdlib-jdk7-1.8.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.0/kotlin-stdlib-jdk8-1.8.0-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.8.0/kotlin-stdlib-1.8.0-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.0/kotlin-stdlib-common-1.8.0-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0-javadoc.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.0/kotlin-stdlib-jdk7-1.8.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.0/kotlin-stdlib-jdk8-1.8.0-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib/1.8.0/kotlin-stdlib-1.8.0-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-common/1.8.0/kotlin-stdlib-common-1.8.0-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/annotations/13.0/annotations-13.0-sources.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.0/kotlin-stdlib-jdk7-1.8.0-sources.jar!/" />
</SOURCES>
</library>
</component>

8
.idea/modules.xml generated Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/code.iml" filepath="$PROJECT_DIR$/.idea/code.iml" />
</modules>
</component>
</project>

12
.idea/vcs.xml generated Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CommitMessageInspectionProfile">
<profile version="1.0">
<inspection_tool class="CommitFormat" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="CommitNamingConvention" enabled="true" level="WARNING" enabled_by_default="true" />
</profile>
</component>
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

2
.npmrc Normal file
View File

@ -0,0 +1,2 @@
strict-peer-dependencies=false
auto-install-peers=true

1
.nvmrc Normal file
View File

@ -0,0 +1 @@
20.19.2

View File

@ -1,12 +1,3 @@
{
"recommendations": [
"tauri-apps.tauri-vscode",
"vunguyentuan.vscode-css-variables",
"stylelint.vscode-stylelint",
"eamodio.gitlens",
"esbenp.prettier-vscode",
"pivaszbs.svelte-autoimport",
"svelte.svelte-vscode",
"ardenivanov.svelte-intellisense"
]
}
"recommendations": ["esbenp.prettier-vscode", "Vue.volar", "rust-lang.rust-analyzer"]
}

160
.vscode/launch.json vendored
View File

@ -1,160 +0,0 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug unit tests in library 'theseus'",
"cargo": {
"args": [
"test",
"--no-run",
"--lib",
"--package=theseus"
],
"filter": {
"name": "theseus",
"kind": "lib"
}
},
"args": [],
"cwd": "${workspaceFolder}"
},
{
"type": "lldb",
"request": "launch",
"name": "Debug executable 'theseus_cli'",
"cargo": {
"args": [
"build",
"--bin=theseus_cli",
"--package=theseus_cli"
],
"filter": {
"name": "theseus_cli",
"kind": "bin"
}
},
"args": [],
"cwd": "${workspaceFolder}"
},
{
"type": "lldb",
"request": "launch",
"name": "Debug unit tests in executable 'theseus_cli'",
"cargo": {
"args": [
"test",
"--no-run",
"--bin=theseus_cli",
"--package=theseus_cli"
],
"filter": {
"name": "theseus_cli",
"kind": "bin"
}
},
"args": [],
"cwd": "${workspaceFolder}"
},
{
"type": "lldb",
"request": "launch",
"name": "Debug executable 'theseus_playground'",
"cargo": {
"args": [
"build",
"--bin=theseus_playground",
"--package=theseus_playground"
],
"filter": {
"name": "theseus_playground",
"kind": "bin"
}
},
"args": [],
"cwd": "${workspaceFolder}"
},
{
"type": "lldb",
"request": "launch",
"name": "Debug unit tests in executable 'theseus_playground'",
"cargo": {
"args": [
"test",
"--no-run",
"--bin=theseus_playground",
"--package=theseus_playground"
],
"filter": {
"name": "theseus_playground",
"kind": "bin"
}
},
"args": [],
"cwd": "${workspaceFolder}"
},
{
"type": "lldb",
"request": "launch",
"name": "Debug executable 'theseus_gui'",
"cargo": {
"args": [
"build",
"--bin=theseus_gui",
"--package=theseus_gui"
],
"filter": {
"name": "theseus_gui",
"kind": "bin"
}
},
"args": [],
"cwd": "${workspaceFolder}"
},
{
"type": "lldb",
"request": "launch",
"name": "Debug unit tests in executable 'theseus_gui'",
"cargo": {
"args": [
"test",
"--no-run",
"--bin=theseus_gui",
"--package=theseus_gui"
],
"filter": {
"name": "theseus_gui",
"kind": "bin"
}
},
"args": [],
"cwd": "${workspaceFolder}"
},
{
"type": "lldb",
"request": "launch",
"name": "Tauri Development Debug",
"cargo": {
"args": [
"build",
"--manifest-path=./theseus_gui/src-tauri/Cargo.toml",
"--no-default-features"
]
},
"preLaunchTask": "ui:dev"
},
{
"type": "lldb",
"request": "launch",
"name": "Tauri Production Debug",
"cargo": {
"args": ["build", "--release", "--manifest-path=.theseus_gui/src-tauri/Cargo.toml"]
},
"preLaunchTask": "ui:build"
}
]
}

67
.vscode/settings.json vendored
View File

@ -1,60 +1,9 @@
{
"cssVariables.lookupFiles": [
"**/*.postcss",
"**/node_modules/omorphia/**/*.postcss"
],
"cssVariables.blacklistFolders": [
"**/.git",
"**/.svn",
"**/.hg",
"**/CVS",
"**/.DS_Store",
"**/.git",
"**/bower_components",
"**/tmp",
"**/dist",
"**/tests"
],
"gitlens.showWelcomeOnInstall": false,
"gitlens.showWhatsNewAfterUpgrades": false,
"gitlens.plusFeatures.enabled": false,
"gitlens.currentLine.enabled": false,
"gitlens.currentLine.pullRequests.enabled": false,
"gitlens.currentLine.scrollable": true,
"gitlens.codeLens.enabled": false,
"gitlens.hovers.enabled": false,
"CSSNavigation.activeCSSFileExtensions": [
"css",
"postcss"
],
"CSSNavigation.activeHTMLFileExtensions": [
"html",
"svelte",
"js",
"ts"
],
"CSSNavigation.excludeGlobPatterns": [
"**/bower_components/**",
"**/vendor/**",
"**/coverage/**"
],
"CSSNavigation.alwaysIncludeGlobPatterns": [
"./theseus_gui/node_modules/omorphia/**/*.postcss"
],
"html-css-class-completion.HTMLLanguages": [
"html",
"svelte"
],
"html-css-class-completion.includeGlobPattern": "**/*.{postcss,svelte}",
"html-css-class-completion.CSSLanguages": [
"postcss",
],
"svelte.enable-ts-plugin": true,
"svelte.ask-to-enable-ts-plugin": false,
"svelte.plugin.css.diagnostics.enable": false,
"svelte.plugin.svelte.diagnostics.enable": false,
"rust-analyzer.linkedProjects": [
"./theseus/Cargo.toml"
],
"rust-analyzer.showUnlinkedFileNotification": false,
}
"prettier.endOfLine": "lf",
"editor.formatOnSave": true,
"eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact"],
"editor.detectIndentation": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
}
}

32
.vscode/tasks.json vendored
View File

@ -1,32 +0,0 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "ui:dev",
"type": "shell",
// `dev` keeps running in the background
// ideally you should also configure a `problemMatcher`
// see https://code.visualstudio.com/docs/editor/tasks#_can-a-background-task-be-used-as-a-prelaunchtask-in-launchjson
"isBackground": true,
// change this to your `beforeDevCommand`:
"command": "yarn",
"args": ["dev"],
"options": {
"cwd": "${workspaceFolder}/theseus_gui"
}
},
{
"label": "ui:build",
"type": "shell",
// change this to your `beforeBuildCommand`:
"command": "yarn",
"args": ["build"],
"options": {
"cwd": "${workspaceFolder}/theseus_gui"
}
}
]
}

View File

@ -1,13 +1,13 @@
# Copying
# Copying Guidelines
The source code of the theseus repository is licensed under the GNU General Public License, Version 3 only, which is provided in the file [LICENSE](./LICENSE). However, some files listed below are licensed under a different license.
All packages in this repository are licensed under their respective licenses. For more information, refer to the LICENSE file in each package.
## Modrinth logo
For detailed information, consult each package's COPYING.md file, if available.
Any files depicting the Modrinth branding, including the wrench-in-labyrinth logo, the landing image, and variations thereof, are licensed as follows:
## Modrinth Branding
> All rights reserved. © 2020-2023 Rinth, Inc.
The use of Modrinth branding elements, including but not limited to the wrench-in-labyrinth logo, the landing image, and any variations thereof, is strictly prohibited without explicit written permission from Rinth, Inc. This includes trademarks, logos, or other branding elements.
This includes, but may not be limited to, the following files:
All rights reserved. © 2020-2024 Rinth, Inc.
- theseus_gui/src-tauri/icons/*
If you fork this repository, you must remove all Modrinth branding assets from your fork.

9453
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,28 +1,240 @@
[workspace]
resolver = "2"
members = [
"theseus",
"theseus_cli",
"theseus_playground",
"theseus_gui/src-tauri",
"theseus_macros"
"apps/app",
"apps/app-playground",
"apps/daedalus_client",
"apps/labrinth",
"packages/app-lib",
"packages/ariadne",
"packages/daedalus",
]
[profile.dev]
opt-level = 0
debug = true
debug-assertions = true
overflow-checks = true
lto = false
panic = 'unwind'
incremental = true
codegen-units = 256
rpath = false
[workspace.package]
edition = "2024"
[workspace.dependencies]
actix-cors = "0.7.1"
actix-files = "0.6.6"
actix-http = "3.11.0"
actix-multipart = "0.7.2"
actix-rt = "2.10.0"
actix-web = "4.11.0"
actix-web-prom = "0.10.0"
actix-ws = "0.3.0"
argon2 = { version = "0.5.3", features = ["std"] }
ariadne = { path = "packages/ariadne" }
async_zip = "0.0.17"
async-compression = { version = "0.4.25", default-features = false }
async-recursion = "1.1.1"
async-stripe = { version = "0.41.0", default-features = false, features = [
"runtime-tokio-hyper-rustls",
] }
async-trait = "0.1.88"
async-tungstenite = { version = "0.29.1", default-features = false, features = [
"futures-03-sink",
] }
async-walkdir = "2.1.0"
base64 = "0.22.1"
bitflags = "2.9.1"
bytemuck = "1.23.0"
bytes = "1.10.1"
censor = "0.3.0"
chardetng = "0.1.17"
chrono = "0.4.41"
clap = "4.5.40"
clickhouse = "0.13.3"
color-thief = "0.2.2"
console-subscriber = "0.4.1"
daedalus = { path = "packages/daedalus" }
dashmap = "6.1.0"
data-url = "0.3.1"
deadpool-redis = "0.21.1"
dirs = "6.0.0"
discord-rich-presence = "0.2.5"
dotenv-build = "0.1.1"
dotenvy = "0.15.7"
dunce = "1.0.5"
either = "1.15.0"
encoding_rs = "0.8.35"
enumset = "1.1.6"
flate2 = "1.1.2"
fs4 = { version = "0.13.1", default-features = false }
futures = { version = "0.3.31", default-features = false }
futures-util = "0.3.31"
hashlink = "0.10.0"
heck = "0.5.0"
hex = "0.4.3"
hickory-resolver = "0.25.2"
hmac = "0.12.1"
hyper = "1.6.0"
hyper-rustls = { version = "0.27.7", default-features = false, features = [
"http1",
"native-tokio",
"ring",
"tls12",
] }
hyper-util = "0.1.14"
iana-time-zone = "0.1.63"
image = { version = "0.25.6", default-features = false, features = ["rayon"] }
indexmap = "2.9.0"
indicatif = "0.17.11"
itertools = "0.14.0"
jemalloc_pprof = "0.7.0"
json-patch = { version = "4.0.0", default-features = false }
lettre = { version = "0.11.17", default-features = false, features = [
"builder",
"hostname",
"pool",
"ring",
"rustls",
"rustls-native-certs",
"smtp-transport",
] }
maxminddb = "0.26.0"
meilisearch-sdk = { version = "0.28.0", default-features = false }
murmur2 = "0.1.0"
native-dialog = "0.9.0"
notify = { version = "8.0.0", default-features = false }
notify-debouncer-mini = { version = "0.6.0", default-features = false }
p256 = "0.13.2"
paste = "1.0.15"
phf = { version = "0.12.1", features = ["macros"] }
png = "0.17.16"
prometheus = "0.14.0"
quartz_nbt = "0.2.9"
quick-xml = "0.37.5"
rand = "=0.8.5" # Locked on 0.8 until argon2 and p256 update to 0.9
rand_chacha = "=0.3.1" # Locked on 0.3 until we can update rand to 0.9
redis = "=0.31.0" # Locked on 0.31 until deadpool-redis updates to 0.32
regex = "1.11.1"
reqwest = { version = "0.12.20", default-features = false }
rgb = "0.8.50"
rust_decimal = { version = "1.37.2", features = [
"serde-with-float",
"serde-with-str",
] }
rust_iso3166 = "0.1.14"
rust-s3 = { version = "0.35.1", default-features = false, features = [
"fail-on-err",
"tags",
"tokio-rustls-tls",
] }
rusty-money = "0.4.1"
sentry = { version = "0.41.0", default-features = false, features = [
"backtrace",
"contexts",
"debug-images",
"panic",
"reqwest",
"rustls",
] }
sentry-actix = "0.41.0"
serde = "1.0.219"
serde_bytes = "0.11.17"
serde_cbor = "0.11.2"
serde_ini = "0.2.0"
serde_json = "1.0.140"
serde_with = "3.13.0"
serde-xml-rs = "0.8.1" # Also an XML (de)serializer, consider dropping yaserde in favor of this
sha1 = "0.10.6"
sha1_smol = { version = "1.0.1", features = ["std"] }
sha2 = "0.10.9"
spdx = "0.10.8"
sqlx = { version = "0.8.6", default-features = false }
sysinfo = { version = "0.35.2", default-features = false }
tar = "0.4.44"
tauri = "2.6.1"
tauri-build = "2.3.0"
tauri-plugin-deep-link = "2.4.0"
tauri-plugin-dialog = "2.3.0"
tauri-plugin-http = "2.5.0"
tauri-plugin-opener = "2.4.0"
tauri-plugin-os = "2.3.0"
tauri-plugin-single-instance = "2.3.0"
tauri-plugin-updater = { version = "2.9.0", default-features = false, features = [
"rustls-tls",
"zip",
] }
tauri-plugin-window-state = "2.3.0"
tempfile = "3.20.0"
theseus = { path = "packages/app-lib" }
thiserror = "2.0.12"
tikv-jemalloc-ctl = "0.6.0"
tikv-jemallocator = "0.6.0"
tokio = "1.45.1"
tokio-stream = "0.1.17"
tokio-util = "0.7.15"
totp-rs = "5.7.0"
tracing = "0.1.41"
tracing-actix-web = "0.7.18"
tracing-error = "0.2.1"
tracing-subscriber = "0.3.19"
url = "2.5.4"
urlencoding = "2.1.3"
uuid = "1.17.0"
validator = "0.20.0"
webp = { version = "0.3.0", default-features = false }
whoami = "1.6.0"
winreg = "0.55.0"
woothee = "0.13.0"
yaserde = "0.12.0"
zip = { version = "4.2.0", default-features = false, features = [
"bzip2",
"deflate",
"deflate64",
"zstd",
] }
zxcvbn = "3.1.0"
[workspace.lints.clippy]
bool_to_int_with_if = "warn"
borrow_as_ptr = "warn"
cfg_not_test = "warn"
clear_with_drain = "warn"
cloned_instead_of_copied = "warn"
collection_is_never_read = "warn"
dbg_macro = "warn"
default_trait_access = "warn"
explicit_iter_loop = "warn"
filter_map_next = "warn"
flat_map_option = "warn"
format_push_string = "warn"
get_unwrap = "warn"
large_include_file = "warn"
large_stack_arrays = "warn"
manual_assert = "warn"
manual_instant_elapsed = "warn"
manual_is_variant_and = "warn"
manual_let_else = "warn"
map_unwrap_or = "warn"
match_bool = "warn"
needless_collect = "warn"
negative_feature_names = "warn"
non_std_lazy_statics = "warn"
pathbuf_init_then_push = "warn"
read_zero_byte_vec = "warn"
redundant_clone = "warn"
redundant_feature_names = "warn"
redundant_type_annotations = "warn"
todo = "warn"
unnested_or_patterns = "warn"
wildcard_dependencies = "warn"
[workspace.lints.rust]
# Turn warnings into errors by default
warnings = "deny"
[patch.crates-io]
wry = { git = "https://github.com/modrinth/wry", rev = "21db186" }
# Optimize for speed and reduce size on release builds
[profile.release]
panic = "abort" # Strip expensive panic clean-up logic
codegen-units = 1 # Compile crates one after another so the compiler can optimize better
lto = true # Enables link to optimizations
opt-level = "s" # Optimize for binary size
strip = true # Remove debug symbols
opt-level = "s" # Optimize for binary size
strip = true # Remove debug symbols
lto = true # Enables link to optimizations
panic = "abort" # Strip expensive panic clean-up logic
codegen-units = 1 # Compile crates one after another so the compiler can optimize better
[profile.dev.package.sqlx-macros]
opt-level = 3

View File

@ -1,9 +1,39 @@
# theseus
A game launcher which can be used as a CLI, GUI, and a library for creating and playing modrinth projects
# ![Modrinth Monorepo Cover](/.github/assets/monorepo_cover.png)
Theseus aims to provide three components:
- A library (theseus)
- A CLI (theseus-cli)
- A GUI (theseus-gui)
![Issues](https://img.shields.io/github/issues-raw/Modrinth/code?color=c78aff&label=issues&style=for-the-badge)
![Pull Requests](https://img.shields.io/github/issues-pr-raw/Modrinth/code?color=c78aff&label=PRs&style=for-the-badge)
![Contributors](https://img.shields.io/github/contributors/Modrinth/code?color=c78aff&label=contributors&style=for-the-badge)
![Lines](https://img.shields.io/endpoint?url=https://ghloc.vercel.app/api/modrinth/code/badge?style=flat&logoColor=white&color=c78aff&style=for-the-badge)
![Commit Activity](https://img.shields.io/github/commit-activity/m/Modrinth/code?color=c78aff&label=commits&style=for-the-badge)
![Last Commit](https://img.shields.io/github/last-commit/Modrinth/code?color=c78aff&label=last%20commit&style=for-the-badge)
Feel free to contribute!
## Modrinth Monorepo
Welcome to the Modrinth Monorepo, the primary codebase for the Modrinth web interface and app. It contains ![Lines](https://img.shields.io/endpoint?url=https://ghloc.vercel.app/api/modrinth/olympus/badge?logoColor=white&color=black&label=) lines of code and has ![Contributors](https://img.shields.io/github/contributors/Modrinth/code?color=black&label=) contributors!
If you're not a developer and you've stumbled upon this repository, you can access the web interface on the [Modrinth website](https://modrinth.com) and download the latest release of the app [here](https://modrinth.com/app).
## Development
This repository contains two primary packages. For detailed development information, please refer to their respective READMEs:
- [Web Interface](apps/frontend/README.md)
- [Desktop App](apps/app/README.md)
## Contributing
We welcome contributions! Before submitting any contributions, please read our [contributing guidelines](https://docs.modrinth.com/contributing/getting-started/).
If you plan to fork this repository for your own purposes, please review our [copying guidelines](COPYING.md).
## Security
If you discover a security vulnerability within our codebase, please follow our [responsible disclosure guidelines](https://modrinth.com/legal/security).
## Support
If you need help with the Modrinth web interface or app, please visit our [support page](https://support.modrinth.com). For general inquiries, you can also join our [Discord server](https://discord.modrinth.com).
## License
All packages in this repository are licensed under their respective licenses. Refer to the LICENSE file in each package for more information.

View File

@ -0,0 +1,2 @@
**/dist
*.gltf

View File

@ -0,0 +1,13 @@
# Copying
The source code of the theseus repository is licensed under the GNU General Public License, Version 3 only, which is provided in the file [LICENSE](./LICENSE). However, some files listed below are licensed under a different license.
## Modrinth logo
The use of Modrinth branding elements, including but not limited to the wrench-in-labyrinth logo, the landing image, and any variations thereof, is strictly prohibited without explicit written permission from Rinth, Inc. This includes trademarks, logos, or other branding elements.
> All rights reserved. © 2020-2023 Rinth, Inc.
This includes, but may not be limited to, the following files:
- theseus_gui/src-tauri/icons/\*

View File

@ -0,0 +1,22 @@
import { createConfigForNuxt } from '@nuxt/eslint-config/flat'
import { fixupPluginRules } from '@eslint/compat'
import turboPlugin from 'eslint-plugin-turbo'
export default createConfigForNuxt().append([
{
name: 'turbo',
plugins: {
turbo: fixupPluginRules(turboPlugin),
},
rules: {
'turbo/no-undeclared-env-vars': 'error',
},
},
{
name: 'modrinth',
rules: {
'vue/html-self-closing': 'off',
'vue/multi-word-component-names': 'off',
},
},
])

View File

@ -1,10 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<!doctype html>
<html lang="en" class="dark-mode">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Modrinth App</title>
<link rel="stylesheet" href="/src/assets/stylesheets/global.scss" />
</head>
<body>

View File

@ -0,0 +1,64 @@
{
"name": "@modrinth/app-frontend",
"private": true,
"version": "1.0.0-local",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vue-tsc --noEmit && vite build",
"tsc:check": "vue-tsc --noEmit",
"lint": "eslint . && prettier --check .",
"fix": "eslint . --fix && prettier --write .",
"intl:extract": "formatjs extract \"src/**/*.{vue,ts,tsx,js,jsx,mts,cts,mjs,cjs}\" --ignore \"**/*.d.ts\" --ignore node_modules --out-file src/locales/en-US/index.json --format crowdin --preserve-whitespace",
"test": "vue-tsc --noEmit"
},
"dependencies": {
"@geometrically/minecraft-motd-parser": "^1.1.4",
"@modrinth/assets": "workspace:*",
"@modrinth/ui": "workspace:*",
"@modrinth/utils": "workspace:*",
"@sentry/vue": "^8.27.0",
"@tauri-apps/api": "^2.5.0",
"@tauri-apps/plugin-dialog": "^2.2.1",
"@tauri-apps/plugin-http": "^2.5.0",
"@tauri-apps/plugin-opener": "^2.2.6",
"@tauri-apps/plugin-os": "^2.2.1",
"@tauri-apps/plugin-updater": "^2.7.1",
"@tauri-apps/plugin-window-state": "^2.2.2",
"@types/three": "^0.172.0",
"@vintl/vintl": "^4.4.1",
"@vueuse/core": "^11.1.0",
"dayjs": "^1.11.10",
"floating-vue": "^5.2.2",
"ofetch": "^1.3.4",
"pinia": "^2.1.7",
"posthog-js": "^1.158.2",
"three": "^0.172.0",
"vite-svg-loader": "^5.1.0",
"vue": "^3.5.13",
"vue-multiselect": "3.0.0",
"vue-router": "4.3.0",
"vue-virtual-scroller": "v2.0.0-beta.8"
},
"devDependencies": {
"@eslint/compat": "^1.1.1",
"@formatjs/cli": "^6.2.12",
"@nuxt/eslint-config": "^0.5.6",
"@taijased/vue-render-tracker": "^1.0.7",
"@vitejs/plugin-vue": "^5.0.4",
"autoprefixer": "^10.4.19",
"eslint": "^9.9.1",
"eslint-config-custom": "workspace:*",
"eslint-plugin-turbo": "^2.5.4",
"postcss": "^8.4.39",
"prettier": "^3.2.5",
"sass": "^1.74.1",
"tailwindcss": "^3.4.4",
"tsconfig": "workspace:*",
"typescript": "^5.5.4",
"vite": "^5.4.6",
"vue-tsc": "^2.1.6"
},
"packageManager": "pnpm@9.4.0",
"web-types": "../../web-types.json"
}

View File

@ -0,0 +1,6 @@
export default {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}

View File

@ -0,0 +1,891 @@
<script setup>
import { computed, onMounted, onUnmounted, ref, watch, provide } from 'vue'
import { RouterView, useRoute, useRouter } from 'vue-router'
import {
ArrowBigUpDashIcon,
ChangeSkinIcon,
CompassIcon,
DownloadIcon,
HomeIcon,
LeftArrowIcon,
LibraryIcon,
LogInIcon,
LogOutIcon,
MaximizeIcon,
MinimizeIcon,
PlusIcon,
RestoreIcon,
RightArrowIcon,
SettingsIcon,
WorldIcon,
XIcon,
NewspaperIcon,
} from '@modrinth/assets'
import {
Avatar,
Button,
ButtonStyled,
Notifications,
OverflowMenu,
NewsArticleCard,
} from '@modrinth/ui'
import { useLoading, useTheming } from '@/store/state'
import ModrinthAppLogo from '@/assets/modrinth_app.svg?component'
import AccountsCard from '@/components/ui/AccountsCard.vue'
import InstanceCreationModal from '@/components/ui/InstanceCreationModal.vue'
import { get } from '@/helpers/settings.ts'
import Breadcrumbs from '@/components/ui/Breadcrumbs.vue'
import RunningAppBar from '@/components/ui/RunningAppBar.vue'
import SplashScreen from '@/components/ui/SplashScreen.vue'
import ErrorModal from '@/components/ui/ErrorModal.vue'
import ModrinthLoadingIndicator from '@/components/LoadingIndicatorBar.vue'
import { handleError, useNotifications } from '@/store/notifications.js'
import { command_listener, warning_listener } from '@/helpers/events.js'
import { type } from '@tauri-apps/plugin-os'
import { getOS, isDev, restartApp } from '@/helpers/utils.js'
import { debugAnalytics, initAnalytics, optOutAnalytics, trackEvent } from '@/helpers/analytics'
import { getCurrentWindow } from '@tauri-apps/api/window'
import { getVersion } from '@tauri-apps/api/app'
import URLConfirmModal from '@/components/ui/URLConfirmModal.vue'
import { create_profile_and_install_from_file } from './helpers/pack'
import { useError } from '@/store/error.js'
import { useCheckDisableMouseover } from '@/composables/macCssFix.js'
import ModInstallModal from '@/components/ui/install_flow/ModInstallModal.vue'
import IncompatibilityWarningModal from '@/components/ui/install_flow/IncompatibilityWarningModal.vue'
import InstallConfirmModal from '@/components/ui/install_flow/InstallConfirmModal.vue'
import { useInstall } from '@/store/install.js'
import { invoke } from '@tauri-apps/api/core'
import { get_opening_command, initialize_state } from '@/helpers/state'
import { saveWindowState, StateFlags } from '@tauri-apps/plugin-window-state'
import { renderString } from '@modrinth/utils'
import { useFetch } from '@/helpers/fetch.js'
import { check } from '@tauri-apps/plugin-updater'
import NavButton from '@/components/ui/NavButton.vue'
import { cancelLogin, get as getCreds, login, logout } from '@/helpers/mr_auth.js'
import { get_user } from '@/helpers/cache.js'
import AppSettingsModal from '@/components/ui/modal/AppSettingsModal.vue'
import AuthGrantFlowWaitModal from '@/components/ui/modal/AuthGrantFlowWaitModal.vue'
import PromotionWrapper from '@/components/ui/PromotionWrapper.vue'
import { hide_ads_window, init_ads_window } from '@/helpers/ads.js'
import FriendsList from '@/components/ui/friends/FriendsList.vue'
import { openUrl } from '@tauri-apps/plugin-opener'
import QuickInstanceSwitcher from '@/components/ui/QuickInstanceSwitcher.vue'
import { get_available_capes, get_available_skins } from './helpers/skins'
import { generateSkinPreviews } from './helpers/rendering/batch-skin-renderer'
const themeStore = useTheming()
const news = ref([])
const urlModal = ref(null)
const offline = ref(!navigator.onLine)
window.addEventListener('offline', () => {
offline.value = true
})
window.addEventListener('online', () => {
offline.value = false
})
const showOnboarding = ref(false)
const nativeDecorations = ref(false)
const os = ref('')
const stateInitialized = ref(false)
const criticalErrorMessage = ref()
const isMaximized = ref(false)
onMounted(async () => {
await useCheckDisableMouseover()
document.querySelector('body').addEventListener('click', handleClick)
document.querySelector('body').addEventListener('auxclick', handleAuxClick)
})
onUnmounted(() => {
document.querySelector('body').removeEventListener('click', handleClick)
document.querySelector('body').removeEventListener('auxclick', handleAuxClick)
})
async function setupApp() {
stateInitialized.value = true
const {
native_decorations,
theme,
telemetry,
collapsed_navigation,
advanced_rendering,
onboarded,
default_page,
toggle_sidebar,
developer_mode,
feature_flags,
} = await get()
if (default_page === 'Library') {
await router.push('/library')
}
os.value = await getOS()
const dev = await isDev()
const version = await getVersion()
showOnboarding.value = !onboarded
nativeDecorations.value = native_decorations
if (os.value !== 'MacOS') await getCurrentWindow().setDecorations(native_decorations)
themeStore.setThemeState(theme)
themeStore.collapsedNavigation = collapsed_navigation
themeStore.advancedRendering = advanced_rendering
themeStore.toggleSidebar = toggle_sidebar
themeStore.devMode = developer_mode
themeStore.featureFlags = feature_flags
isMaximized.value = await getCurrentWindow().isMaximized()
await getCurrentWindow().onResized(async () => {
isMaximized.value = await getCurrentWindow().isMaximized()
})
initAnalytics()
if (!telemetry) {
optOutAnalytics()
}
if (dev) debugAnalytics()
trackEvent('Launched', { version, dev, onboarded })
if (!dev) document.addEventListener('contextmenu', (event) => event.preventDefault())
const osType = await type()
if (osType === 'macos') {
document.getElementsByTagName('html')[0].classList.add('mac')
} else {
document.getElementsByTagName('html')[0].classList.add('windows')
}
await warning_listener((e) =>
notificationsWrapper.value.addNotification({
title: 'Warning',
text: e.message,
type: 'warn',
}),
)
useFetch(
`https://api.modrinth.com/appCriticalAnnouncement.json?version=${version}`,
'criticalAnnouncements',
true,
)
.then((response) => response.json())
.then((res) => {
if (res && res.header && res.body) {
criticalErrorMessage.value = res
}
})
.catch(() => {
console.log(
`No critical announcement found at https://api.modrinth.com/appCriticalAnnouncement.json?version=${version}`,
)
})
useFetch(`https://modrinth.com/news/feed/articles.json`, 'news', true)
.then((response) => response.json())
.then((res) => {
if (res && res.articles) {
// Format expected by NewsArticleCard component.
news.value = res.articles
.map((article) => ({
...article,
path: article.link,
thumbnail: article.thumbnail,
title: article.title,
summary: article.summary,
date: article.date,
}))
.slice(0, 4)
}
})
get_opening_command().then(handleCommand)
checkUpdates()
fetchCredentials()
try {
const skins = (await get_available_skins()) ?? []
const capes = (await get_available_capes()) ?? []
generateSkinPreviews(skins, capes)
} catch (error) {
console.warn('Failed to generate skin previews in app setup.', error)
}
}
const stateFailed = ref(false)
initialize_state()
.then(() => {
setupApp().catch((err) => {
stateFailed.value = true
console.error(err)
error.showError(err, null, false, 'state_init')
})
})
.catch((err) => {
stateFailed.value = true
console.error('Failed to initialize app', err)
error.showError(err, null, false, 'state_init')
})
const handleClose = async () => {
await saveWindowState(StateFlags.ALL)
await getCurrentWindow().close()
}
const router = useRouter()
router.afterEach((to, from, failure) => {
trackEvent('PageView', { path: to.path, fromPath: from.path, failed: failure })
})
const route = useRoute()
const loading = useLoading()
loading.setEnabled(false)
const notifications = useNotifications()
const notificationsWrapper = ref()
const error = useError()
const errorModal = ref()
const install = useInstall()
const modInstallModal = ref()
const installConfirmModal = ref()
const incompatibilityWarningModal = ref()
const credentials = ref()
const modrinthLoginFlowWaitModal = ref()
async function fetchCredentials() {
const creds = await getCreds().catch(handleError)
if (creds && creds.user_id) {
creds.user = await get_user(creds.user_id).catch(handleError)
}
credentials.value = creds
}
async function signIn() {
modrinthLoginFlowWaitModal.value.show()
try {
await login()
await fetchCredentials()
} catch (error) {
if (
typeof error === 'object' &&
typeof error['message'] === 'string' &&
error.message.includes('Login canceled')
) {
// Not really an error due to being a result of user interaction, show nothing
} else {
handleError(error)
}
} finally {
modrinthLoginFlowWaitModal.value.hide()
}
}
async function logOut() {
await logout().catch(handleError)
await fetchCredentials()
}
const MIDAS_BITFLAG = 1 << 0
const hasPlus = computed(
() =>
credentials.value &&
credentials.value.user &&
(credentials.value.user.badges & MIDAS_BITFLAG) === MIDAS_BITFLAG,
)
const sidebarToggled = ref(true)
themeStore.$subscribe(() => {
sidebarToggled.value = !themeStore.toggleSidebar
})
const forceSidebar = computed(
() => route.path.startsWith('/browse') || route.path.startsWith('/project'),
)
const sidebarVisible = computed(() => sidebarToggled.value || forceSidebar.value)
const showAd = computed(() => !(!sidebarVisible.value || hasPlus.value))
watch(
showAd,
() => {
if (!showAd.value) {
hide_ads_window(true)
} else {
init_ads_window(true)
}
},
{ immediate: true },
)
onMounted(() => {
invoke('show_window')
notifications.setNotifs(notificationsWrapper.value)
error.setErrorModal(errorModal.value)
install.setIncompatibilityWarningModal(incompatibilityWarningModal)
install.setInstallConfirmModal(installConfirmModal)
install.setModInstallModal(modInstallModal)
})
const accounts = ref(null)
provide('accountsCard', accounts)
command_listener(handleCommand)
async function handleCommand(e) {
if (!e) return
if (e.event === 'RunMRPack') {
// RunMRPack should directly install a local mrpack given a path
if (e.path.endsWith('.mrpack')) {
await create_profile_and_install_from_file(e.path).catch(handleError)
trackEvent('InstanceCreate', {
source: 'CreationModalFileDrop',
})
}
} else {
// Other commands are URL-based (deep linking)
urlModal.value.show(e)
}
}
const updateAvailable = ref(false)
async function checkUpdates() {
const update = await check()
updateAvailable.value = !!update
setTimeout(
() => {
checkUpdates()
},
5 * 1000 * 60,
)
}
function handleClick(e) {
let target = e.target
while (target != null) {
if (target.matches('a')) {
if (
target.href &&
['http://', 'https://', 'mailto:', 'tel:'].some((v) => target.href.startsWith(v)) &&
!target.classList.contains('router-link-active') &&
!target.href.startsWith('http://localhost') &&
!target.href.startsWith('https://tauri.localhost') &&
!target.href.startsWith('http://tauri.localhost')
) {
openUrl(target.href)
}
e.preventDefault()
break
}
target = target.parentElement
}
}
function handleAuxClick(e) {
// disables middle click -> new tab
if (e.button === 1) {
e.preventDefault()
// instead do a left click
const event = new MouseEvent('click', {
view: window,
bubbles: true,
cancelable: true,
})
e.target.dispatchEvent(event)
}
}
</script>
<template>
<SplashScreen v-if="!stateFailed" ref="splashScreen" data-tauri-drag-region />
<div id="teleports"></div>
<div v-if="stateInitialized" class="app-grid-layout experimental-styles-within relative">
<Suspense>
<AppSettingsModal ref="settingsModal" />
</Suspense>
<Suspense>
<AuthGrantFlowWaitModal ref="modrinthLoginFlowWaitModal" @flow-cancel="cancelLogin" />
</Suspense>
<Suspense>
<InstanceCreationModal ref="installationModal" />
</Suspense>
<div
class="app-grid-navbar bg-bg-raised flex flex-col p-[0.5rem] pt-0 gap-[0.5rem] w-[--left-bar-width]"
>
<NavButton v-tooltip.right="'Home'" to="/">
<HomeIcon />
</NavButton>
<NavButton v-if="themeStore.featureFlags.worlds_tab" v-tooltip.right="'Worlds'" to="/worlds">
<WorldIcon />
</NavButton>
<NavButton
v-tooltip.right="'Discover content'"
to="/browse/modpack"
:is-primary="() => route.path.startsWith('/browse') && !route.query.i"
:is-subpage="(route) => route.path.startsWith('/project') && !route.query.i"
>
<CompassIcon />
</NavButton>
<NavButton v-tooltip.right="'Skins (Beta)'" to="/skins">
<ChangeSkinIcon />
</NavButton>
<NavButton
v-tooltip.right="'Library'"
to="/library"
:is-subpage="
() =>
route.path.startsWith('/instance') ||
((route.path.startsWith('/browse') || route.path.startsWith('/project')) &&
route.query.i)
"
>
<LibraryIcon />
</NavButton>
<div class="h-px w-6 mx-auto my-2 bg-button-bg"></div>
<suspense>
<QuickInstanceSwitcher />
</suspense>
<NavButton
v-tooltip.right="'Create new instance'"
:to="() => $refs.installationModal.show()"
:disabled="offline"
>
<PlusIcon />
</NavButton>
<div class="flex flex-grow"></div>
<NavButton v-if="updateAvailable" v-tooltip.right="'Install update'" :to="() => restartApp()">
<DownloadIcon />
</NavButton>
<NavButton v-tooltip.right="'Settings'" :to="() => $refs.settingsModal.show()">
<SettingsIcon />
</NavButton>
<ButtonStyled v-if="credentials" type="transparent" circular>
<OverflowMenu
:options="[
{
id: 'sign-out',
action: () => logOut(),
color: 'danger',
},
]"
direction="left"
>
<Avatar
:src="credentials.user.avatar_url"
:alt="credentials.user.username"
size="32px"
circle
/>
<template #sign-out> <LogOutIcon /> Sign out </template>
</OverflowMenu>
</ButtonStyled>
<NavButton v-else v-tooltip.right="'Sign in'" :to="() => signIn()">
<LogInIcon />
<template #label>Sign in</template>
</NavButton>
</div>
<div data-tauri-drag-region class="app-grid-statusbar bg-bg-raised h-[--top-bar-height] flex">
<div data-tauri-drag-region class="flex p-3">
<ModrinthAppLogo class="h-full w-auto text-contrast pointer-events-none" />
<div class="flex items-center gap-1 ml-3">
<button
class="cursor-pointer p-0 m-0 text-contrast border-none outline-none bg-button-bg rounded-full flex items-center justify-center w-6 h-6 hover:brightness-75 transition-all"
@click="router.back()"
>
<LeftArrowIcon />
</button>
<button
class="cursor-pointer p-0 m-0 text-contrast border-none outline-none bg-button-bg rounded-full flex items-center justify-center w-6 h-6 hover:brightness-75 transition-all"
@click="router.forward()"
>
<RightArrowIcon />
</button>
</div>
<Breadcrumbs class="pt-[2px]" />
</div>
<section class="flex ml-auto items-center">
<ButtonStyled
v-if="!forceSidebar && themeStore.toggleSidebar"
:type="sidebarToggled ? 'standard' : 'transparent'"
circular
>
<button
class="mr-3 transition-transform"
:class="{ 'rotate-180': !sidebarToggled }"
@click="sidebarToggled = !sidebarToggled"
>
<RightArrowIcon />
</button>
</ButtonStyled>
<div class="flex mr-3">
<Suspense>
<RunningAppBar />
</Suspense>
</div>
<section v-if="!nativeDecorations" class="window-controls" data-tauri-drag-region-exclude>
<Button class="titlebar-button" icon-only @click="() => getCurrentWindow().minimize()">
<MinimizeIcon />
</Button>
<Button
class="titlebar-button"
icon-only
@click="() => getCurrentWindow().toggleMaximize()"
>
<RestoreIcon v-if="isMaximized" />
<MaximizeIcon v-else />
</Button>
<Button class="titlebar-button close" icon-only @click="handleClose">
<XIcon />
</Button>
</section>
</section>
</div>
</div>
<div
v-if="stateInitialized"
class="app-contents experimental-styles-within"
:class="{ 'sidebar-enabled': sidebarVisible }"
>
<div class="app-viewport flex-grow router-view">
<div
class="loading-indicator-container h-8 fixed z-50"
:style="{
top: 'calc(var(--top-bar-height))',
left: 'calc(var(--left-bar-width))',
width: 'calc(100% - var(--left-bar-width) - var(--right-bar-width))',
}"
>
<ModrinthLoadingIndicator />
</div>
<div
v-if="themeStore.featureFlags.page_path"
class="absolute bottom-0 left-0 m-2 bg-tooltip-bg text-tooltip-text font-semibold rounded-full px-2 py-1 text-xs z-50"
>
{{ route.fullPath }}
</div>
<div
id="background-teleport-target"
class="absolute h-full -z-10 rounded-tl-[--radius-xl] overflow-hidden"
:style="{
width: 'calc(100% - var(--right-bar-width))',
}"
></div>
<div
v-if="criticalErrorMessage"
class="m-6 mb-0 flex flex-col border-red bg-bg-red rounded-2xl border-2 border-solid p-4 gap-1 font-semibold text-contrast"
>
<h1 class="m-0 text-lg font-extrabold">{{ criticalErrorMessage.header }}</h1>
<div
class="markdown-body text-primary"
v-html="renderString(criticalErrorMessage.body ?? '')"
></div>
</div>
<RouterView v-slot="{ Component }">
<template v-if="Component">
<Suspense @pending="loading.startLoading()" @resolve="loading.stopLoading()">
<component :is="Component"></component>
</Suspense>
</template>
</RouterView>
</div>
<div
class="app-sidebar mt-px shrink-0 flex flex-col border-0 border-l-[1px] border-[--brand-gradient-border] border-solid overflow-auto"
:class="{ 'has-plus': hasPlus }"
>
<div
class="app-sidebar-scrollable flex-grow shrink overflow-y-auto relative"
:class="{ 'pb-12': !hasPlus }"
>
<div id="sidebar-teleport-target" class="sidebar-teleport-content"></div>
<div class="sidebar-default-content" :class="{ 'sidebar-enabled': sidebarVisible }">
<div class="p-4 border-0 border-b-[1px] border-[--brand-gradient-border] border-solid">
<h3 class="text-lg m-0">Playing as</h3>
<suspense>
<AccountsCard ref="accounts" mode="small" />
</suspense>
</div>
<div class="p-4 border-0 border-b-[1px] border-[--brand-gradient-border] border-solid">
<suspense>
<FriendsList :credentials="credentials" :sign-in="() => signIn()" />
</suspense>
</div>
<div v-if="news && news.length > 0" class="pt-4 flex flex-col items-center">
<h3 class="px-4 text-lg m-0 text-left w-full">News</h3>
<div class="px-4 pt-2 space-y-4 flex flex-col items-center w-full">
<NewsArticleCard
v-for="(item, index) in news"
:key="`news-${index}`"
:article="item"
/>
<ButtonStyled color="brand" size="large">
<a href="https://modrinth.com/news" target="_blank" class="my-4">
<NewspaperIcon /> View all news
</a>
</ButtonStyled>
</div>
</div>
</div>
</div>
<template v-if="showAd">
<a
href="https://modrinth.plus?app"
class="absolute bottom-[250px] w-full flex justify-center items-center gap-1 px-4 py-3 text-purple font-medium hover:underline z-10"
target="_blank"
>
<ArrowBigUpDashIcon class="text-2xl" /> Upgrade to Modrinth+
</a>
<PromotionWrapper />
</template>
</div>
</div>
<URLConfirmModal ref="urlModal" />
<Notifications ref="notificationsWrapper" sidebar />
<ErrorModal ref="errorModal" />
<ModInstallModal ref="modInstallModal" />
<IncompatibilityWarningModal ref="incompatibilityWarningModal" />
<InstallConfirmModal ref="installConfirmModal" />
</template>
<style lang="scss" scoped>
.window-controls {
z-index: 20;
display: none;
flex-direction: row;
align-items: center;
.titlebar-button {
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all ease-in-out 0.1s;
background-color: transparent;
color: var(--color-base);
height: 100%;
width: 3rem;
position: relative;
box-shadow: none;
&:last-child {
padding-right: 0.75rem;
width: 3.75rem;
}
svg {
width: 1.25rem;
height: 1.25rem;
}
&::before {
content: '';
border-radius: 999999px;
width: 3rem;
height: 3rem;
aspect-ratio: 1 / 1;
margin-block: auto;
position: absolute;
background-color: transparent;
scale: 0.9;
transition: all ease-in-out 0.2s;
z-index: -1;
}
&.close {
&:hover,
&:active {
color: var(--color-accent-contrast);
&::before {
background-color: var(--color-red);
}
}
}
&:hover,
&:active {
color: var(--color-contrast);
&::before {
background-color: var(--color-button-bg);
scale: 1;
}
}
}
}
.app-grid-layout,
.app-contents {
--top-bar-height: 3rem;
--left-bar-width: 4rem;
--right-bar-width: 300px;
}
.app-grid-layout {
display: grid;
grid-template: 'status status' 'nav dummy';
grid-template-columns: auto 1fr;
grid-template-rows: auto 1fr;
position: relative;
//z-index: 0;
background-color: var(--color-raised-bg);
height: 100vh;
}
.app-grid-navbar {
grid-area: nav;
}
.app-grid-statusbar {
grid-area: status;
}
[data-tauri-drag-region] {
-webkit-app-region: drag;
}
[data-tauri-drag-region-exclude] {
-webkit-app-region: no-drag;
}
.app-contents {
position: absolute;
z-index: 1;
left: var(--left-bar-width);
top: var(--top-bar-height);
right: 0;
bottom: 0;
height: calc(100vh - var(--top-bar-height));
background-color: var(--color-bg);
border-top-left-radius: var(--radius-xl);
display: grid;
grid-template-columns: 1fr 0px;
// transition: grid-template-columns 0.4s ease-in-out;
&.sidebar-enabled {
grid-template-columns: 1fr 300px;
}
}
.loading-indicator-container {
border-top-left-radius: var(--radius-xl);
overflow: hidden;
}
.app-sidebar {
overflow: visible;
width: 300px;
position: relative;
height: calc(100vh - var(--top-bar-height));
background: var(--brand-gradient-bg);
--color-button-bg: var(--brand-gradient-button);
--color-button-bg-hover: var(--brand-gradient-border);
--color-divider: var(--brand-gradient-border);
--color-divider-dark: var(--brand-gradient-border);
}
.app-sidebar::after {
content: '';
position: absolute;
bottom: 250px;
left: 0;
right: 0;
height: 5rem;
background: var(--brand-gradient-fade-out-color);
pointer-events: none;
}
.app-sidebar.has-plus::after {
display: none;
}
.app-sidebar::before {
content: '';
box-shadow: -15px 0 15px -15px rgba(0, 0, 0, 0.2) inset;
top: 0;
bottom: 0;
left: -2rem;
width: 2rem;
position: absolute;
pointer-events: none;
}
.app-viewport {
flex-grow: 1;
height: 100%;
overflow: auto;
overflow-x: hidden;
}
.app-contents::before {
z-index: 1;
content: '';
position: fixed;
left: var(--left-bar-width);
top: var(--top-bar-height);
right: calc(-1 * var(--left-bar-width));
bottom: calc(-1 * var(--left-bar-width));
border-radius: var(--radius-xl);
box-shadow:
1px 1px 15px rgba(0, 0, 0, 0.2) inset,
inset 1px 1px 1px rgba(255, 255, 255, 0.23);
pointer-events: none;
}
.sidebar-teleport-content {
display: contents;
}
.sidebar-default-content {
display: none;
}
.sidebar-teleport-content:empty + .sidebar-default-content.sidebar-enabled {
display: contents;
}
</style>
<style>
.mac {
.app-grid-statusbar {
padding-left: 5rem;
}
}
.windows {
.fake-appbar {
height: 2.5rem !important;
}
.window-controls {
display: flex !important;
}
.info-card {
right: 8rem;
}
.profile-card {
right: 8rem;
}
}
</style>
<style src="vue-multiselect/dist/vue-multiselect.css"></style>

View File

Before

Width:  |  Height:  |  Size: 952 B

After

Width:  |  Height:  |  Size: 952 B

View File

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

Before

Width:  |  Height:  |  Size: 901 B

After

Width:  |  Height:  |  Size: 901 B

View File

Before

Width:  |  Height:  |  Size: 757 B

After

Width:  |  Height:  |  Size: 757 B

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 718 B

After

Width:  |  Height:  |  Size: 718 B

View File

Before

Width:  |  Height:  |  Size: 962 B

After

Width:  |  Height:  |  Size: 962 B

View File

Before

Width:  |  Height:  |  Size: 257 B

After

Width:  |  Height:  |  Size: 257 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 415 B

After

Width:  |  Height:  |  Size: 415 B

View File

Before

Width:  |  Height:  |  Size: 274 B

After

Width:  |  Height:  |  Size: 274 B

View File

Before

Width:  |  Height:  |  Size: 706 B

After

Width:  |  Height:  |  Size: 706 B

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 924 B

After

Width:  |  Height:  |  Size: 924 B

View File

Before

Width:  |  Height:  |  Size: 881 B

After

Width:  |  Height:  |  Size: 881 B

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 315 B

After

Width:  |  Height:  |  Size: 315 B

View File

Before

Width:  |  Height:  |  Size: 427 B

After

Width:  |  Height:  |  Size: 427 B

View File

@ -1,14 +1,9 @@
export { default as ServerIcon } from './server.svg'
export { default as MinimizeIcon } from './minimize.svg'
export { default as MaximizeIcon } from './maximize.svg'
export { default as SwapIcon } from './arrow-left-right.svg'
export { default as ToggleIcon } from './toggle.svg'
export { default as PackageIcon } from './package.svg'
export { default as VersionIcon } from './milestone.svg'
export { default as MoreIcon } from './more.svg'
export { default as TextInputIcon } from './text-cursor-input.svg'
export { default as AddProjectImage } from './add-project.svg'
export { default as NewInstanceImage } from './new-instance.svg'
export { default as MenuIcon } from './menu.svg'
export { default as BugIcon } from './bug.svg'
export { default as ChatIcon } from './messages-square.svg'

View File

Before

Width:  |  Height:  |  Size: 326 B

After

Width:  |  Height:  |  Size: 326 B

View File

Before

Width:  |  Height:  |  Size: 359 B

After

Width:  |  Height:  |  Size: 359 B

View File

Before

Width:  |  Height:  |  Size: 322 B

After

Width:  |  Height:  |  Size: 322 B

View File

Before

Width:  |  Height:  |  Size: 315 B

After

Width:  |  Height:  |  Size: 315 B

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 461 B

After

Width:  |  Height:  |  Size: 461 B

View File

Before

Width:  |  Height:  |  Size: 405 B

After

Width:  |  Height:  |  Size: 405 B

View File

Before

Width:  |  Height:  |  Size: 449 B

After

Width:  |  Height:  |  Size: 449 B

View File

Before

Width:  |  Height:  |  Size: 309 B

After

Width:  |  Height:  |  Size: 309 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:serif="http://www.serif.com/" version="1.1" viewBox="0 0 1793 199">
<g>
<g id="Layer_1">
<g id="green" fill="var(--color-brand)">
<path d="M1184.1,166.6c-8,0-15.6-1-22.9-3.1s-13.1-4.6-17.4-7.6l8.5-16.9c4.3,2.7,9.4,5,15.3,6.8,5.9,1.8,11.9,2.7,17.8,2.7s12.1-.9,15.2-2.8c3.1-1.9,4.7-4.5,4.7-7.7s-1.1-4.6-3.2-6c-2.1-1.4-4.9-2.4-8.4-3.1-3.4-.7-7.3-1.4-11.5-2-4.2-.6-8.4-1.4-12.6-2.4-4.2-1-8-2.5-11.5-4.5-3.4-2-6.2-4.6-8.4-7.9-2.1-3.3-3.2-7.7-3.2-13.2s1.7-11.3,5.2-15.8c3.4-4.5,8.3-7.9,14.5-10.3,6.2-2.4,13.6-3.7,22.2-3.7s12.9.7,19.4,2.1c6.5,1.4,11.9,3.4,16.2,6.1l-8.5,16.9c-4.5-2.7-9.1-4.6-13.6-5.6-4.6-1-9.1-1.5-13.6-1.5-6.8,0-11.8,1-15,3-3.3,2-4.9,4.6-4.9,7.7s1.1,5,3.2,6.4c2.1,1.4,4.9,2.6,8.4,3.4,3.4.8,7.3,1.5,11.5,2,4.2.5,8.4,1.3,12.6,2.4,4.2,1.1,8,2.5,11.5,4.4,3.5,1.8,6.3,4.4,8.5,7.7,2.1,3.3,3.2,7.7,3.2,13s-1.8,11.1-5.3,15.5c-3.5,4.4-8.5,7.8-14.9,10.2-6.4,2.4-14.1,3.7-23,3.7Z"/>
<path d="M1291.1,166.6c-10.6,0-19.8-2.1-27.7-6.3-7.9-4.2-14-10-18.3-17.4-4.3-7.4-6.5-15.7-6.5-25.1s2.1-17.9,6.3-25.2c4.2-7.3,10-13,17.5-17.2,7.4-4.2,15.9-6.2,25.4-6.2s17.5,2,24.8,6.1c7.2,4,12.9,9.7,17.1,17.1,4.2,7.4,6.2,16,6.2,26s0,2,0,3.2c0,1.2-.2,2.3-.3,3.4h-79.3v-14.8h67.5l-8.7,4.6c.1-5.5-1-10.3-3.4-14.4-2.4-4.2-5.6-7.4-9.7-9.8-4.1-2.4-8.8-3.6-14.2-3.6s-10.2,1.2-14.3,3.6c-4.1,2.4-7.3,5.7-9.6,9.9-2.3,4.2-3.5,9.2-3.5,14.9v3.6c0,5.7,1.3,10.7,3.9,15.1,2.6,4.4,6.3,7.8,11,10.2,4.7,2.4,10.2,3.6,16.4,3.6s10.2-.8,14.4-2.5c4.3-1.7,8.1-4.3,11.4-7.8l11.9,13.7c-4.3,5-9.6,8.8-16.1,11.5-6.5,2.7-13.9,4-22.2,4Z"/>
<path d="M1357.2,165.3v-95.1h21.2v26.2l-2.5-7.7c2.8-6.4,7.3-11.3,13.4-14.6,6.1-3.3,13.7-5,22.9-5v21.2c-1-.2-1.8-.4-2.7-.4-.8,0-1.7,0-2.5,0-8.4,0-15.1,2.5-20.1,7.4-5,4.9-7.5,12.3-7.5,22v46.1h-22.3Z"/>
<path d="M1460,165.3l-40.8-95.1h23.2l35.1,83.9h-11.4l36.3-83.9h21.4l-40.8,95.1h-23Z"/>
<path d="M1579.6,166.6c-10.6,0-19.8-2.1-27.7-6.3-7.9-4.2-14-10-18.3-17.4-4.3-7.4-6.5-15.7-6.5-25.1s2.1-17.9,6.3-25.2c4.2-7.3,10-13,17.5-17.2,7.4-4.2,15.9-6.2,25.4-6.2s17.5,2,24.8,6.1c7.2,4,12.9,9.7,17.1,17.1,4.2,7.4,6.2,16,6.2,26s0,2,0,3.2c0,1.2-.2,2.3-.3,3.4h-79.3v-14.8h67.5l-8.7,4.6c.1-5.5-1-10.3-3.4-14.4-2.4-4.2-5.6-7.4-9.7-9.8-4.1-2.4-8.8-3.6-14.2-3.6s-10.2,1.2-14.3,3.6c-4.1,2.4-7.3,5.7-9.6,9.9-2.3,4.2-3.5,9.2-3.5,14.9v3.6c0,5.7,1.3,10.7,3.9,15.1,2.6,4.4,6.3,7.8,11,10.2,4.7,2.4,10.2,3.6,16.4,3.6s10.2-.8,14.4-2.5c4.3-1.7,8.1-4.3,11.4-7.8l11.9,13.7c-4.3,5-9.6,8.8-16.1,11.5-6.5,2.7-13.9,4-22.2,4Z"/>
<path d="M1645.7,165.3v-95.1h21.2v26.2l-2.5-7.7c2.8-6.4,7.3-11.3,13.4-14.6,6.1-3.3,13.7-5,22.9-5v21.2c-1-.2-1.8-.4-2.7-.4-.8,0-1.7,0-2.5,0-8.4,0-15.1,2.5-20.1,7.4-5,4.9-7.5,12.3-7.5,22v46.1h-22.3Z"/>
<path d="M1749.9,166.6c-8,0-15.6-1-22.9-3.1s-13.1-4.6-17.4-7.6l8.5-16.9c4.3,2.7,9.4,5,15.3,6.8,5.9,1.8,11.9,2.7,17.8,2.7s12.1-.9,15.2-2.8c3.1-1.9,4.7-4.5,4.7-7.7s-1.1-4.6-3.2-6c-2.1-1.4-4.9-2.4-8.4-3.1-3.4-.7-7.3-1.4-11.5-2-4.2-.6-8.4-1.4-12.6-2.4-4.2-1-8-2.5-11.5-4.5-3.4-2-6.2-4.6-8.4-7.9-2.1-3.3-3.2-7.7-3.2-13.2s1.7-11.3,5.2-15.8c3.4-4.5,8.3-7.9,14.5-10.3,6.2-2.4,13.6-3.7,22.2-3.7s12.9.7,19.4,2.1c6.5,1.4,11.9,3.4,16.2,6.1l-8.5,16.9c-4.5-2.7-9.1-4.6-13.6-5.6-4.6-1-9.1-1.5-13.6-1.5-6.8,0-11.8,1-15,3-3.3,2-4.9,4.6-4.9,7.7s1.1,5,3.2,6.4c2.1,1.4,4.9,2.6,8.4,3.4,3.4.8,7.3,1.5,11.5,2,4.2.5,8.4,1.3,12.6,2.4,4.2,1.1,8,2.5,11.5,4.4,3.5,1.8,6.3,4.4,8.5,7.7,2.1,3.3,3.2,7.7,3.2,13s-1.8,11.1-5.3,15.5c-3.5,4.4-8.5,7.8-14.9,10.2-6.4,2.4-14.1,3.7-23,3.7Z"/>
<g>
<path d="M9.8,143l63.4-38.1-5.8-15.3,18.1-18.6,22.9-4.9,6.6,8.2-10.6,10.7-9.2,2.9-6.6,6.8,3.2,9,6.5,6.9,9.2-2.5,6.6-7.2,14.3-4.5,4.3,9.6-14.8,18.1-24.8,7.8-11.1-12.4-63.6,38.2c-3-3.9-6.5-9.4-8.8-14.7ZM192.8,65.4l-50.4,13.6c2.8,7.4,3.7,11.7,4.5,16.5l50.3-13.6c-.8-5.4-2.2-10.8-4.4-16.5Z" fill-rule="evenodd"/>
<path d="M17.3,106.5c3.6,42.1,38.9,75.2,82,75.2s60.7-18.9,74-46.3l16.4,5.7c-15.8,34.1-50.3,57.9-90.4,57.9S3.6,158.2,0,106.5h17.3ZM.3,89.4C5.3,39.2,47.8,0,99.3,0s99.5,44.6,99.5,99.5-1.1,17.4-3.3,25.5l-16.3-5.7c1.6-6.5,2.4-13.1,2.4-19.8,0-45.4-36.9-82.3-82.3-82.3S22.6,48.7,17.6,89.4H.3Z" fill-rule="evenodd"/>
<path d="M99,51.6c-26.4,0-47.9,21.5-47.9,48s21.5,48,48,48,2.7,0,4-.2l4.8,16.8c-2.9.4-5.8.6-8.8.6-36,0-65.2-29.2-65.2-65.2S63.1,34.4,99,34.4s1.8,0,2.7,0l-2.7,17.1ZM118.6,37.4c26.4,8.3,45.6,33,45.6,62.2s-16.4,50.2-39.8,60l-4.8-16.7c16.2-7.7,27.4-24.2,27.4-43.3s-13-38.1-31.1-44.9l2.7-17.2Z" fill-rule="evenodd"/>
</g>
</g>
<g id="black" fill="currentColor">
<path d="M354.8,69.2c12,0,21.7,3.4,28.6,10.4,7,7.2,10.6,17.5,10.6,31.5v54.8h-22.4v-51.9c0-8.4-1.8-14.7-5.5-19-3.8-4.1-8.9-6.3-15.9-6.3s-13.6,2.5-18.1,7.3c-4.5,5-6.8,12.2-6.8,21.3v48.5h-22.4v-51.9c0-8.4-1.8-14.7-5.5-19-3.8-4.1-8.9-6.3-15.9-6.3s-13.6,2.5-18.1,7.3c-4.5,4.8-6.8,12-6.8,21.3v48.5h-22.4v-95.6h21.3v12.2c3.6-4.3,8.1-7.5,13.4-9.8,5.4-2.3,11.3-3.4,17.9-3.4s13.6,1.3,19.2,3.9c5.5,2.9,9.8,6.8,13.1,12,3.9-5,8.9-8.9,15.2-11.8,6.3-2.7,13.1-4.1,20.6-4.1ZM466,167.2c-9.7,0-18.4-2.1-26.1-6.3-7.6-4-13.8-10.1-18.1-17.5-4.5-7.3-6.6-15.7-6.6-25.2s2.1-17.9,6.6-25.2c4.3-7.4,10.6-13.4,18.1-17.4,7.7-4.1,16.5-6.3,26.1-6.3s18.6,2.1,26.3,6.3c7.7,4.1,13.8,10,18.3,17.4,4.3,7.3,6.4,15.7,6.4,25.2s-2.1,17.9-6.4,25.2c-4.5,7.5-10.6,13.4-18.3,17.5-7.7,4.1-16.5,6.3-26.3,6.3h0ZM466,148c8.2,0,15-2.7,20.4-8.2,5.4-5.5,8.1-12.7,8.1-21.7s-2.7-16.1-8.1-21.7c-5.4-5.5-12.2-8.2-20.4-8.2s-15,2.7-20.2,8.2c-5.4,5.5-8.1,12.7-8.1,21.7s2.7,16.1,8.1,21.7c5.2,5.5,12,8.2,20.2,8.2ZM631.5,33.1v132.8h-21.5v-12.3c-3.7,4.4-8.3,7.9-13.6,10.2-5.5,2.3-11.5,3.4-18.1,3.4s-17.4-2-24.7-6.1c-7.3-4.1-13.2-9.8-17.4-17.4-4.1-7.3-6.3-15.9-6.3-25.6s2.1-18.3,6.3-25.6c4.1-7.3,10-13.1,17.4-17.2,7.3-4.1,15.6-6.1,24.7-6.1s12.2,1.1,17.4,3.2c5.2,2.1,9.8,5.4,13.4,9.7v-49h22.4ZM581.1,148c5.4,0,10.2-1.3,14.5-3.8,4.3-2.3,7.7-5.9,10.2-10.4,2.5-4.5,3.8-9.8,3.8-15.7s-1.3-11.3-3.8-15.7c-2.5-4.5-5.9-8.1-10.2-10.6-4.3-2.3-9.1-3.6-14.5-3.6s-10.2,1.3-14.5,3.6c-4.3,2.5-7.7,6.1-10.2,10.6-2.5,4.5-3.8,9.8-3.8,15.7s1.3,11.3,3.8,15.7c2.5,4.5,5.9,8.1,10.2,10.4,4.3,2.5,9.1,3.8,14.5,3.8ZM681.6,84.3c6.4-10,17.7-15,34-15v21.3c-1.7-.3-3.4-.5-5.2-.5-8.8,0-15.6,2.5-20.4,7.5-4.8,5.2-7.3,12.5-7.3,22v46.4h-22.4v-95.6h21.3v14h0ZM734.1,70.3h22.4v95.6h-22.4v-95.6ZM745.4,54.6c-4.1,0-7.5-1.3-10.2-3.9-2.7-2.4-4.2-5.9-4.1-9.5,0-3.8,1.4-7,4.1-9.7,2.7-2.5,6.1-3.8,10.2-3.8s7.5,1.3,10.2,3.6c2.7,2.5,4.1,5.5,4.1,9.3s-1.3,7.2-3.9,9.8c-2.7,2.7-6.3,4.1-10.4,4.1ZM839.5,69.2c12,0,21.7,3.6,29,10.6,7.3,7,10.9,17.5,10.9,31.3v54.8h-22.4v-51.9c0-8.4-2-14.7-5.9-19-3.9-4.1-9.5-6.3-16.8-6.3s-14.7,2.5-19.5,7.3c-4.8,5-7.2,12.2-7.2,21.5v48.3h-22.4v-95.6h21.3v12.3c3.8-4.5,8.4-7.7,14-10,5.5-2.3,12-3.4,19-3.4ZM964.8,160.7c-2.8,2.2-6,3.9-9.5,4.8-3.9,1.1-7.9,1.6-12,1.6-10.6,0-18.6-2.7-24.3-8.2-5.7-5.5-8.6-13.4-8.6-24v-46h-15.7v-17.9h15.7v-21.8h22.4v21.8h25.6v17.9h-25.6v45.5c0,4.7,1.1,8.2,3.4,10.6,2.3,2.5,5.5,3.8,9.8,3.8s9.1-1.3,12.5-3.9l6.3,15.9ZM1036.9,69.2c12,0,21.7,3.6,29,10.6,7.3,7,10.9,17.5,10.9,31.3v54.8h-22.4v-51.9c0-8.4-2-14.7-5.9-19-3.9-4.1-9.5-6.3-16.8-6.3s-14.7,2.5-19.5,7.3c-4.8,5-7.2,12.2-7.2,21.5v48.3h-22.4V33.1h22.4v48.3c3.8-3.9,8.2-7,13.8-9.1,5.4-2,11.5-3,18.1-3Z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,5 +1,45 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@font-face {
font-family: 'bundled-minecraft-font-mrapp';
font-style: normal;
font-display: swap;
font-weight: 400;
src: url('https://cdn-raw.modrinth.com/fonts/minecraft/regular.otf') format('opentype');
}
@font-face {
font-family: 'bundled-minecraft-font-mrapp';
font-style: italic;
font-display: swap;
font-weight: 400;
src: url('https://cdn-raw.modrinth.com/fonts/minecraft/italic.otf') format('opentype');
}
@font-face {
font-family: 'bundled-minecraft-font-mrapp';
font-style: normal;
font-display: swap;
font-weight: 600;
src: url('https://cdn-raw.modrinth.com/fonts/minecraft/bold.otf') format('opentype');
}
@font-face {
font-family: 'bundled-minecraft-font-mrapp';
font-style: italic;
font-display: swap;
font-weight: 600;
src: url('https://cdn-raw.modrinth.com/fonts/minecraft/bold-italic.otf') format('opentype');
}
.font-minecraft {
font-family: 'bundled-minecraft-font-mrapp', monospace;
}
:root {
font-family: var(--font-standard);
font-family: var(--font-standard, sans-serif), sans-serif;
color-scheme: dark;
--view-width: calc(100% - 5rem);
--expanded-view-width: calc(100% - 13rem);
@ -69,55 +109,32 @@ input {
}
}
.mac {
.nav-container {
padding-top: calc(var(--gap-md) + 1.75rem);
}
.account-card,
.card-section {
top: calc(var(--gap-md) + 1.75rem);
}
}
.windows {
.fake-appbar {
height: 2.5rem !important;
}
.window-controls {
display: flex !important;
}
.info-card {
right: 8rem;
}
.profile-card {
right: 8rem;
}
}
* {
scrollbar-width: auto;
scrollbar-color: var(--color-button-bg) var(--color-bg);
scrollbar-color: var(--color-scrollbar) var(--color-bg);
}
/* Chrome, Edge, and Safari */
*::-webkit-scrollbar {
width: var(--gap-md);
border: 3px solid var(--color-bg);
width: 16px;
border: 3px solid transparent;
opacity: 0.5;
transition: opacity 0.2s ease-in-out;
}
*::-webkit-scrollbar:hover {
opacity: 1;
}
*::-webkit-scrollbar-track {
background: var(--color-bg);
border: 3px solid var(--color-bg);
background: transparent;
}
*::-webkit-scrollbar-thumb {
background-color: var(--color-button-bg);
background-color: var(--color-scrollbar);
border-radius: var(--radius-lg);
border: 3px solid var(--color-bg);
border: 5px solid transparent;
background-clip: content-box;
}
.highlighted {
@ -135,3 +152,9 @@ img {
-moz-user-select: none;
-ms-user-select: none;
}
.card-shadow {
box-shadow: var(--shadow-card);
}
@import '@modrinth/assets/omorphia.scss';

View File

@ -9,19 +9,16 @@ import {
TrashIcon,
StopCircleIcon,
EyeIcon,
Card,
DropdownSelect,
SearchIcon,
XIcon,
Button,
formatCategoryHeader,
ModalConfirm,
} from 'omorphia'
} from '@modrinth/assets'
import { Button, DropdownSelect } from '@modrinth/ui'
import { formatCategoryHeader } from '@modrinth/utils'
import ContextMenu from '@/components/ui/ContextMenu.vue'
import dayjs from 'dayjs'
import { useTheming } from '@/store/theme.js'
import { duplicate, remove } from '@/helpers/profile.js'
import { handleError } from '@/store/notifications.js'
import ConfirmModalWrapper from '@/components/ui/modal/ConfirmModalWrapper.vue'
const props = defineProps({
instances: {
@ -38,14 +35,13 @@ const props = defineProps({
const instanceOptions = ref(null)
const instanceComponents = ref(null)
const themeStore = useTheming()
const currentDeleteInstance = ref(null)
const confirmModal = ref(null)
async function deleteProfile() {
if (currentDeleteInstance.value) {
instanceComponents.value = instanceComponents.value.filter(
(x) => x.instance.path !== currentDeleteInstance.value
(x) => x.instance.path !== currentDeleteInstance.value,
)
await remove(currentDeleteInstance.value).catch(handleError)
}
@ -88,7 +84,7 @@ const handleRightClick = (event, profilePathId) => {
color: 'primary',
},
...baseOptions,
]
],
)
}
@ -124,52 +120,41 @@ const handleOptionsClick = async (args) => {
}
const search = ref('')
const group = ref('Category')
const filters = ref('All profiles')
const group = ref('Group')
const sortBy = ref('Name')
const filteredResults = computed(() => {
let instances = props.instances.filter((instance) => {
return instance.metadata.name.toLowerCase().includes(search.value.toLowerCase())
const instances = props.instances.filter((instance) => {
return instance.name.toLowerCase().includes(search.value.toLowerCase())
})
if (sortBy.value === 'Name') {
instances.sort((a, b) => {
return a.metadata.name.localeCompare(b.metadata.name)
return a.name.localeCompare(b.name)
})
}
if (sortBy.value === 'Game version') {
instances.sort((a, b) => {
return a.metadata.game_version.localeCompare(b.metadata.game_version)
return a.game_version.localeCompare(b.game_version, undefined, { numeric: true })
})
}
if (sortBy.value === 'Last played') {
instances.sort((a, b) => {
return dayjs(b.metadata.last_played ?? 0).diff(dayjs(a.metadata.last_played ?? 0))
return dayjs(b.last_played ?? 0).diff(dayjs(a.last_played ?? 0))
})
}
if (sortBy.value === 'Date created') {
instances.sort((a, b) => {
return dayjs(b.metadata.date_created).diff(dayjs(a.metadata.date_created))
return dayjs(b.date_created).diff(dayjs(a.date_created))
})
}
if (sortBy.value === 'Date modified') {
instances.sort((a, b) => {
return dayjs(b.metadata.date_modified).diff(dayjs(a.metadata.date_modified))
})
}
if (filters.value === 'Custom instances') {
instances = instances.filter((instance) => {
return !instance.metadata?.linked_data
})
} else if (filters.value === 'Downloaded modpacks') {
instances = instances.filter((instance) => {
return instance.metadata?.linked_data?.modrinth_modpack
return dayjs(b.date_modified).diff(dayjs(a.date_modified))
})
}
@ -177,7 +162,7 @@ const filteredResults = computed(() => {
if (group.value === 'Loader') {
instances.forEach((instance) => {
const loader = formatCategoryHeader(instance.metadata.loader)
const loader = formatCategoryHeader(instance.loader)
if (!instanceMap.has(loader)) {
instanceMap.set(loader, [])
}
@ -186,19 +171,19 @@ const filteredResults = computed(() => {
})
} else if (group.value === 'Game version') {
instances.forEach((instance) => {
if (!instanceMap.has(instance.metadata.game_version)) {
instanceMap.set(instance.metadata.game_version, [])
if (!instanceMap.has(instance.game_version)) {
instanceMap.set(instance.game_version, [])
}
instanceMap.get(instance.metadata.game_version).push(instance)
instanceMap.get(instance.game_version).push(instance)
})
} else if (group.value === 'Category') {
} else if (group.value === 'Group') {
instances.forEach((instance) => {
if (instance.metadata.groups.length === 0) {
instance.metadata.groups.push('None')
if (instance.groups.length === 0) {
instance.groups.push('None')
}
for (const category of instance.metadata.groups) {
for (const category of instance.groups) {
if (!instanceMap.has(category)) {
instanceMap.set(category, [])
}
@ -228,59 +213,53 @@ const filteredResults = computed(() => {
instanceMap.set(entry[0], entry[1])
})
}
// default sorting would do 1.20.4 < 1.8.9 because 2 < 8
// localeCompare with numeric=true puts 1.8.9 < 1.20.4 because 8 < 20
if (group.value === 'Game version') {
const sortedEntries = [...instanceMap.entries()].sort((a, b) => {
return a[0].localeCompare(b[0], undefined, { numeric: true })
})
instanceMap.clear()
sortedEntries.forEach((entry) => {
instanceMap.set(entry[0], entry[1])
})
}
return instanceMap
})
</script>
<template>
<ModalConfirm
ref="confirmModal"
title="Are you sure you want to delete this instance?"
description="If you proceed, all data for your instance will be removed. You will not be able to recover it."
:has-to-type="false"
proceed-label="Delete"
:noblur="!themeStore.advancedRendering"
@proceed="deleteProfile"
/>
<Card class="header">
<div class="iconified-input">
<div class="flex gap-2">
<div class="iconified-input flex-1">
<SearchIcon />
<input v-model="search" type="text" placeholder="Search" class="search-input" />
<Button @click="() => (search = '')">
<input v-model="search" type="text" placeholder="Search" />
<Button class="r-btn" @click="() => (search = '')">
<XIcon />
</Button>
</div>
<div class="labeled_button">
<span>Sort by</span>
<DropdownSelect
v-model="sortBy"
class="sort-dropdown"
name="Sort Dropdown"
:options="['Name', 'Last played', 'Date created', 'Date modified', 'Game version']"
placeholder="Select..."
/>
</div>
<div class="labeled_button">
<span>Filter by</span>
<DropdownSelect
v-model="filters"
class="filter-dropdown"
name="Filter Dropdown"
:options="['All profiles', 'Custom instances', 'Downloaded modpacks']"
placeholder="Select..."
/>
</div>
<div class="labeled_button">
<span>Group by</span>
<DropdownSelect
v-model="group"
class="group-dropdown"
name="Group Dropdown"
:options="['Category', 'Loader', 'Game version', 'None']"
placeholder="Select..."
/>
</div>
</Card>
<DropdownSelect
v-slot="{ selected }"
v-model="sortBy"
name="Sort Dropdown"
class="max-w-[16rem]"
:options="['Name', 'Last played', 'Date created', 'Date modified', 'Game version']"
placeholder="Select..."
>
<span class="font-semibold text-primary">Sort by: </span>
<span class="font-semibold text-secondary">{{ selected }}</span>
</DropdownSelect>
<DropdownSelect
v-slot="{ selected }"
v-model="group"
class="max-w-[16rem]"
name="Group Dropdown"
:options="['Group', 'Loader', 'Game version', 'None']"
placeholder="Select..."
>
<span class="font-semibold text-primary">Group by: </span>
<span class="font-semibold text-secondary">{{ selected }}</span>
</DropdownSelect>
</div>
<div
v-for="instanceSection in Array.from(filteredResults, ([key, value]) => ({
key,
@ -303,6 +282,14 @@ const filteredResults = computed(() => {
/>
</section>
</div>
<ConfirmModalWrapper
ref="confirmModal"
title="Are you sure you want to delete this instance?"
description="If you proceed, all data for your instance will be removed. You will not be able to recover it."
:has-to-type="false"
proceed-label="Delete"
@proceed="deleteProfile"
/>
<ContextMenu ref="instanceOptions" @option-clicked="handleOptionsClick">
<template #play> <PlayIcon /> Play </template>
<template #stop> <StopCircleIcon /> Stop </template>
@ -320,7 +307,6 @@ const filteredResults = computed(() => {
flex-direction: column;
align-items: flex-start;
width: 100%;
padding: 1rem;
.divider {
display: flex;
@ -388,9 +374,9 @@ const filteredResults = computed(() => {
.instances {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
width: 100%;
gap: 1rem;
gap: 0.75rem;
margin-right: auto;
scroll-behavior: smooth;
overflow-y: auto;

View File

@ -0,0 +1,141 @@
<script setup>
import { computed, onBeforeUnmount, ref, watch } from 'vue'
import { useLoading } from '@/store/state.js'
const props = defineProps({
throttle: {
type: Number,
default: 0,
},
duration: {
type: Number,
default: 1000,
},
height: {
type: Number,
default: 2,
},
color: {
type: String,
default: 'var(--loading-bar-gradient)',
},
})
const indicator = useLoadingIndicator({
duration: props.duration,
throttle: props.throttle,
})
onBeforeUnmount(() => indicator.clear)
const loading = useLoading()
watch(loading, (newValue) => {
if (newValue.barEnabled) {
if (newValue.loading) {
indicator.start()
} else {
indicator.finish()
}
}
})
function useLoadingIndicator(opts) {
const progress = ref(0)
const isLoading = ref(false)
const step = computed(() => 10000 / opts.duration)
let _timer = null
let _throttle = null
function start() {
clear()
progress.value = 0
if (opts.throttle) {
_throttle = setTimeout(() => {
isLoading.value = true
_startTimer()
}, opts.throttle)
} else {
isLoading.value = true
_startTimer()
}
}
function finish() {
progress.value = 100
_hide()
}
function clear() {
clearInterval(_timer)
clearTimeout(_throttle)
_timer = null
_throttle = null
}
function _increase(num) {
progress.value = Math.min(100, progress.value + num)
}
function _hide() {
clear()
setTimeout(() => {
isLoading.value = false
setTimeout(() => {
progress.value = 0
}, 400)
}, 500)
}
function _startTimer() {
_timer = setInterval(() => {
_increase(step.value)
}, 100)
}
return { progress, isLoading, start, finish, clear }
}
</script>
<template>
<div
class="loading-indicator-bar"
:style="{
'--_width': `${indicator.progress.value}%`,
'--_height': `${indicator.isLoading.value ? props.height : 0}px`,
'--_opacity': `${indicator.isLoading.value ? 1 : 0}`,
top: `0`,
right: `0`,
left: `${props.offsetWidth}`,
pointerEvents: 'none',
width: `var(--_width)`,
height: `var(--_height)`,
borderRadius: `var(--_height)`,
// opacity: `var(--_opacity)`,
background: `${props.color}`,
backgroundSize: `${(100 / indicator.progress.value) * 100}% auto`,
transition: 'width 0.1s ease-in-out, height 0.1s ease-out',
zIndex: 6,
}"
>
<slot />
</div>
</template>
<style lang="scss" scoped>
.loading-indicator-bar::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
width: var(--_width);
bottom: 0;
background-image: radial-gradient(80% 100% at 20% 0%, var(--color-brand) 0%, transparent 80%);
opacity: calc(var(--_opacity) * 0.1);
z-index: 5;
transition:
width 0.1s ease-in-out,
opacity 0.1s ease-out;
}
</style>

View File

@ -10,28 +10,22 @@ import {
StopCircleIcon,
ExternalIcon,
EyeIcon,
ChevronRightIcon,
ModalConfirm,
} from 'omorphia'
} from '@modrinth/assets'
import ConfirmModalWrapper from '@/components/ui/modal/ConfirmModalWrapper.vue'
import Instance from '@/components/ui/Instance.vue'
import { computed, onMounted, onUnmounted, ref } from 'vue'
import ContextMenu from '@/components/ui/ContextMenu.vue'
import ProjectCard from '@/components/ui/ProjectCard.vue'
import InstallConfirmModal from '@/components/ui/InstallConfirmModal.vue'
import ModInstallModal from '@/components/ui/ModInstallModal.vue'
import {
get_all_running_profile_paths,
get_uuids_by_profile_path,
kill_by_uuid,
} from '@/helpers/process.js'
import { get_by_profile_path } from '@/helpers/process.js'
import { handleError } from '@/store/notifications.js'
import { duplicate, remove, run } from '@/helpers/profile.js'
import { duplicate, kill, remove, run } from '@/helpers/profile.js'
import { useRouter } from 'vue-router'
import { showProfileInFolder } from '@/helpers/utils.js'
import { useFetch } from '@/helpers/fetch.js'
import { install as pack_install } from '@/helpers/pack.js'
import { useTheming } from '@/store/state.js'
import { mixpanel_track } from '@/helpers/mixpanel'
import { trackEvent } from '@/helpers/analytics'
import { handleSevereError } from '@/store/error.js'
import { install as installVersion } from '@/store/install.js'
import { openUrl } from '@tauri-apps/plugin-opener'
import { HeadingLink } from '@modrinth/ui'
const router = useRouter()
@ -50,18 +44,17 @@ const props = defineProps({
})
const actualInstances = computed(() =>
props.instances.filter((x) => x && x.instances && x.instances[0])
props.instances.filter(
(x) => (x && x.instances && x.instances[0] && x.show === undefined) || x.show,
),
)
const modsRow = ref(null)
const instanceOptions = ref(null)
const instanceComponents = ref(null)
const rows = ref(null)
const confirmModal = ref(null)
const deleteConfirmModal = ref(null)
const modInstallModal = ref(null)
const themeStore = useTheming()
const currentDeleteInstance = ref(null)
async function deleteProfile() {
@ -89,23 +82,24 @@ const handleInstanceRightClick = async (event, passedInstance) => {
},
]
const running = await get_all_running_profile_paths().catch(handleError)
const runningProcesses = await get_by_profile_path(passedInstance.path).catch(handleError)
const options = running.includes(passedInstance.path)
? [
{
name: 'stop',
color: 'danger',
},
...baseOptions,
]
: [
{
name: 'play',
color: 'primary',
},
...baseOptions,
]
const options =
runningProcesses.length > 0
? [
{
name: 'stop',
color: 'danger',
},
...baseOptions,
]
: [
{
name: 'play',
color: 'primary',
},
...baseOptions,
]
instanceOptions.value.showMenu(event, passedInstance, options)
}
@ -129,24 +123,24 @@ const handleProjectClick = (event, passedInstance) => {
const handleOptionsClick = async (args) => {
switch (args.option) {
case 'play':
await run(args.item.path).catch(handleError)
mixpanel_track('InstanceStart', {
loader: args.item.metadata.loader,
game_version: args.item.metadata.game_version,
await run(args.item.path).catch((err) =>
handleSevereError(err, { profilePath: args.item.path }),
)
trackEvent('InstanceStart', {
loader: args.item.loader,
game_version: args.item.game_version,
})
break
case 'stop':
for (const u of await get_uuids_by_profile_path(args.item.path).catch(handleError)) {
await kill_by_uuid(u).catch(handleError)
}
mixpanel_track('InstanceStop', {
loader: args.item.metadata.loader,
game_version: args.item.metadata.game_version,
await kill(args.item.path).catch(handleError)
trackEvent('InstanceStop', {
loader: args.item.loader,
game_version: args.item.game_version,
})
break
case 'add_content':
await router.push({
path: `/browse/${args.item.metadata.loader === 'vanilla' ? 'datapack' : 'mod'}`,
path: `/browse/${args.item.loader === 'vanilla' ? 'datapack' : 'mod'}`,
query: { i: args.item.path },
})
break
@ -169,84 +163,100 @@ const handleOptionsClick = async (args) => {
await navigator.clipboard.writeText(args.item.path)
break
case 'install': {
const versions = await useFetch(
`https://staging-api.modrinth.com/v2/project/${args.item.project_id}/version`,
'project versions'
)
await installVersion(args.item.project_id, null, null, 'ProjectCardContextMenu')
if (args.item.project_type === 'modpack') {
await pack_install(
args.item.project_id,
versions[0].id,
args.item.title,
args.item.icon_url
)
} else {
modInstallModal.value.show(args.item.project_id, versions)
}
break
}
case 'open_link':
window.__TAURI_INVOKE__('tauri', {
__tauriModule: 'Shell',
message: {
cmd: 'open',
path: `https://modrinth.com/${args.item.project_type}/${args.item.slug}`,
},
})
openUrl(`https://modrinth.com/${args.item.project_type}/${args.item.slug}`)
break
case 'copy_link':
await navigator.clipboard.writeText(
`https://modrinth.com/${args.item.project_type}/${args.item.slug}`
`https://modrinth.com/${args.item.project_type}/${args.item.slug}`,
)
break
}
}
const maxInstancesPerCompactRow = ref(1)
const maxInstancesPerRow = ref(1)
const maxProjectsPerRow = ref(1)
const calculateCardsPerRow = () => {
if (rows.value.length === 0) {
return
}
// Calculate how many cards fit in one row
const containerWidth = rows.value[0].clientWidth
// Convert container width from pixels to rem
const containerWidthInRem =
containerWidth / parseFloat(getComputedStyle(document.documentElement).fontSize)
maxInstancesPerRow.value = Math.floor((containerWidthInRem + 1) / 11)
maxProjectsPerRow.value = Math.floor((containerWidthInRem + 1) / 19)
maxInstancesPerCompactRow.value = Math.floor((containerWidthInRem + 0.75) / 18.75)
maxInstancesPerRow.value = Math.floor((containerWidthInRem + 0.75) / 20.75)
maxProjectsPerRow.value = Math.floor((containerWidthInRem + 0.75) / 18.75)
if (maxInstancesPerRow.value < 5) {
maxInstancesPerRow.value *= 2
}
if (maxInstancesPerCompactRow.value < 5) {
maxInstancesPerCompactRow.value *= 2
}
if (maxProjectsPerRow.value < 3) {
maxProjectsPerRow.value *= 2
}
}
const rowContainer = ref(null)
const resizeObserver = ref(null)
onMounted(() => {
calculateCardsPerRow()
resizeObserver.value = new ResizeObserver(calculateCardsPerRow)
if (rowContainer.value) {
resizeObserver.value.observe(rowContainer.value)
}
window.addEventListener('resize', calculateCardsPerRow)
})
onUnmounted(() => {
window.removeEventListener('resize', calculateCardsPerRow)
if (rowContainer.value) {
resizeObserver.value.unobserve(rowContainer.value)
}
})
</script>
<template>
<ModalConfirm
<ConfirmModalWrapper
ref="deleteConfirmModal"
title="Are you sure you want to delete this instance?"
description="If you proceed, all data for your instance will be removed. You will not be able to recover it."
:has-to-type="false"
proceed-label="Delete"
:noblur="!themeStore.advancedRendering"
@proceed="deleteProfile"
/>
<div class="content">
<div ref="rowContainer" class="flex flex-col gap-4">
<div v-for="row in actualInstances" ref="rows" :key="row.label" class="row">
<div class="header">
<router-link :to="row.route">{{ row.label }}</router-link>
<ChevronRightIcon />
</div>
<section v-if="row.instances[0].metadata" ref="modsRow" class="instances">
<HeadingLink class="mt-1" :to="row.route">
{{ row.label }}
</HeadingLink>
<section
v-if="row.instance"
ref="modsRow"
class="instances"
:class="{ compact: row.compact }"
>
<Instance
v-for="instance in row.instances.slice(0, maxInstancesPerRow)"
:key="(instance?.project_id || instance?.id) + instance.install_stage"
v-for="(instance, instanceIndex) in row.instances.slice(
0,
row.compact ? maxInstancesPerCompactRow : maxInstancesPerRow,
)"
:key="row.label + instance.path"
:instance="instance"
:compact="row.compact"
:first="instanceIndex === 0"
@contextmenu.prevent.stop="(event) => handleInstanceRightClick(event, instance)"
/>
</section>
@ -257,8 +267,6 @@ onUnmounted(() => {
ref="instanceComponents"
class="item"
:project="project"
:confirm-modal="confirmModal"
:mod-install-modal="modInstallModal"
@contextmenu.prevent.stop="(event) => handleProjectClick(event, project)"
/>
</section>
@ -277,8 +285,6 @@ onUnmounted(() => {
<template #open_link> <GlobeIcon /> Open in Modrinth <ExternalIcon /> </template>
<template #copy_link> <ClipboardCopyIcon /> Copy link </template>
</ContextMenu>
<InstallConfirmModal ref="confirmModal" />
<ModInstallModal ref="modInstallModal" />
</template>
<style lang="scss" scoped>
.content {
@ -287,7 +293,6 @@ onUnmounted(() => {
align-items: center;
justify-content: center;
width: 100%;
padding: 1rem;
gap: 1rem;
-ms-overflow-style: none;
@ -321,31 +326,36 @@ onUnmounted(() => {
a {
margin: 0;
font-size: var(--font-size-lg);
font-size: var(--font-size-md);
font-weight: bolder;
white-space: nowrap;
color: var(--color-contrast);
color: var(--color-base);
}
svg {
height: 1.5rem;
width: 1.5rem;
color: var(--color-contrast);
height: 1.25rem;
width: 1.25rem;
color: var(--color-base);
}
}
.instances {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
grid-gap: 1rem;
grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
grid-gap: 0.75rem;
width: 100%;
&.compact {
grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
gap: 0.75rem;
}
}
.projects {
display: grid;
width: 100%;
grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
grid-gap: 1rem;
grid-gap: 0.75rem;
.item {
width: 100%;

View File

@ -2,19 +2,21 @@
<div
v-if="mode !== 'isolated'"
ref="button"
v-tooltip.right="'Minecraft accounts'"
class="button-base avatar-button"
class="button-base mt-2 px-3 py-2 bg-button-bg rounded-xl flex items-center gap-2"
:class="{ expanded: mode === 'expanded' }"
@click="showCard = !showCard"
@click="toggleMenu"
>
<Avatar
:size="mode === 'expanded' ? 'xs' : 'sm'"
size="36px"
:src="
selectedAccount
? `https://mc-heads.net/avatar/${selectedAccount.id}/128`
: 'https://launcher-files.modrinth.com/assets/steve_head.png'
selectedAccount ? avatarUrl : 'https://launcher-files.modrinth.com/assets/steve_head.png'
"
/>
<div class="flex flex-col w-full">
<span>{{ selectedAccount ? selectedAccount.profile.name : 'Select account' }}</span>
<span class="text-secondary text-xs">Minecraft account</span>
</div>
<DropdownIcon class="w-5 h-5 shrink-0" />
</div>
<transition name="fade">
<Card
@ -24,28 +26,40 @@
:class="{ expanded: mode === 'expanded', isolated: mode === 'isolated' }"
>
<div v-if="selectedAccount" class="selected account">
<Avatar size="xs" :src="`https://mc-heads.net/avatar/${selectedAccount.id}/128`" />
<Avatar size="xs" :src="avatarUrl" />
<div>
<h4>{{ selectedAccount.username }}</h4>
<h4>{{ selectedAccount.profile.name }}</h4>
<p>Selected</p>
</div>
<Button v-tooltip="'Log out'" icon-only color="raised" @click="logout(selectedAccount.id)">
<Button
v-tooltip="'Log out'"
icon-only
color="raised"
@click="logout(selectedAccount.profile.id)"
>
<TrashIcon />
</Button>
</div>
<div v-else class="logged-out account">
<h4>Not signed in</h4>
<Button v-tooltip="'Log in'" icon-only color="primary" @click="login()">
<LogInIcon />
<Button
v-tooltip="'Log in'"
:disabled="loginDisabled"
icon-only
color="primary"
@click="login()"
>
<LogInIcon v-if="!loginDisabled" />
<SpinnerIcon v-else class="animate-spin" />
</Button>
</div>
<div v-if="displayAccounts.length > 0" class="account-group">
<div v-for="account in displayAccounts" :key="account.id" class="account-row">
<div v-for="account in displayAccounts" :key="account.profile.id" class="account-row">
<Button class="option account" @click="setAccount(account)">
<Avatar :src="`https://mc-heads.net/avatar/${account.id}/128`" class="icon" />
<p>{{ account.username }}</p>
<Avatar :src="getAccountAvatarUrl(account)" class="icon" />
<p>{{ account.profile.name }}</p>
</Button>
<Button v-tooltip="'Log out'" icon-only @click="logout(account.id)">
<Button v-tooltip="'Log out'" icon-only @click="logout(account.profile.id)">
<TrashIcon />
</Button>
</div>
@ -56,68 +70,25 @@
</Button>
</Card>
</transition>
<Modal ref="loginModal" class="modal" header="Signing in" :noblur="!themeStore.advancedRendering">
<div class="modal-body">
<QrcodeVue :value="loginUrl" class="qr-code" margin="3" size="160" />
<div class="modal-text">
<div class="label">Copy this code</div>
<div class="code-text">
<div class="code">
{{ loginCode }}
</div>
<Button
v-tooltip="'Copy code'"
icon-only
large
color="raised"
@click="() => clipboardWrite(loginCode)"
>
<ClipboardCopyIcon />
</Button>
</div>
<div>And enter it on Microsoft's website to sign in.</div>
<div class="iconified-input">
<LogInIcon />
<input type="text" :value="loginUrl" readonly />
<Button
v-tooltip="'Open link'"
icon-only
color="raised"
@click="() => clipboardWrite(loginUrl)"
>
<GlobeIcon />
</Button>
</div>
</div>
</div>
</Modal>
</template>
<script setup>
import {
Avatar,
Button,
Card,
PlusIcon,
TrashIcon,
LogInIcon,
Modal,
GlobeIcon,
ClipboardCopyIcon,
} from 'omorphia'
import { DropdownIcon, PlusIcon, TrashIcon, LogInIcon, SpinnerIcon } from '@modrinth/assets'
import { Avatar, Button, Card } from '@modrinth/ui'
import { ref, computed, onMounted, onBeforeUnmount, onUnmounted } from 'vue'
import {
users,
remove_user,
authenticate_begin_flow,
authenticate_await_completion,
set_default_user,
login as login_flow,
get_default_user,
} from '@/helpers/auth'
import { get, set } from '@/helpers/settings'
import { handleError } from '@/store/state.js'
import { useTheming } from '@/store/theme.js'
import { mixpanel_track } from '@/helpers/mixpanel'
import QrcodeVue from 'qrcode.vue'
import { trackEvent } from '@/helpers/analytics'
import { process_listener } from '@/helpers/events'
import { handleSevereError } from '@/store/error.js'
import { get_available_skins } from '@/helpers/skins'
import { getPlayerHeadUrl } from '@/helpers/rendering/batch-skin-renderer.ts'
defineProps({
mode: {
@ -129,65 +100,96 @@ defineProps({
const emit = defineEmits(['change'])
const loginCode = ref(null)
const themeStore = useTheming()
const settings = ref({})
const accounts = ref([])
const loginUrl = ref('')
const loginModal = ref(null)
const accounts = ref({})
const loginDisabled = ref(false)
const defaultUser = ref()
const equippedSkin = ref(null)
const headUrlCache = ref(new Map())
async function refreshValues() {
settings.value = await get().catch(handleError)
defaultUser.value = await get_default_user().catch(handleError)
accounts.value = await users().catch(handleError)
try {
const skins = await get_available_skins()
equippedSkin.value = skins.find((skin) => skin.is_equipped)
if (equippedSkin.value) {
try {
const headUrl = await getPlayerHeadUrl(equippedSkin.value)
headUrlCache.value.set(equippedSkin.value.texture_key, headUrl)
} catch (error) {
console.warn('Failed to get head render for equipped skin:', error)
}
}
} catch {
equippedSkin.value = null
}
}
function setLoginDisabled(value) {
loginDisabled.value = value
}
defineExpose({
refreshValues,
setLoginDisabled,
loginDisabled,
})
await refreshValues()
const displayAccounts = computed(() =>
accounts.value.filter((account) => settings.value.default_user !== account.id)
accounts.value.filter((account) => defaultUser.value !== account.profile.id),
)
const avatarUrl = computed(() => {
if (equippedSkin.value?.texture_key) {
const cachedUrl = headUrlCache.value.get(equippedSkin.value.texture_key)
if (cachedUrl) {
return cachedUrl
}
return `https://mc-heads.net/avatar/${equippedSkin.value.texture_key}/128`
}
if (selectedAccount.value?.profile?.id) {
return `https://mc-heads.net/avatar/${selectedAccount.value.profile.id}/128`
}
return 'https://launcher-files.modrinth.com/assets/steve_head.png'
})
function getAccountAvatarUrl(account) {
if (
account.profile.id === selectedAccount.value?.profile?.id &&
equippedSkin.value?.texture_key
) {
const cachedUrl = headUrlCache.value.get(equippedSkin.value.texture_key)
if (cachedUrl) {
return cachedUrl
}
}
return `https://mc-heads.net/avatar/${account.profile.id}/128`
}
const selectedAccount = computed(() =>
accounts.value.find((account) => account.id === settings.value.default_user)
accounts.value.find((account) => account.profile.id === defaultUser.value),
)
async function setAccount(account) {
settings.value.default_user = account.id
await set(settings.value).catch(handleError)
defaultUser.value = account.profile.id
await set_default_user(account.profile.id).catch(handleError)
emit('change')
}
const clipboardWrite = async (a) => {
navigator.clipboard.writeText(a)
}
async function login() {
const loginSuccess = await authenticate_begin_flow().catch(handleError)
loginModal.value.show()
loginCode.value = loginSuccess.user_code
loginUrl.value = loginSuccess.verification_uri
await window.__TAURI_INVOKE__('tauri', {
__tauriModule: 'Shell',
message: {
cmd: 'open',
path: loginSuccess.verification_uri,
},
})
const loggedIn = await authenticate_await_completion().catch(handleError)
loginModal.value.hide()
loginDisabled.value = true
const loggedIn = await login_flow().catch(handleSevereError)
if (loggedIn) {
await setAccount(loggedIn)
await refreshValues()
}
loginModal.value.hide()
mixpanel_track('AccountLogIn')
trackEvent('AccountLogIn')
loginDisabled.value = false
}
const logout = async (id) => {
@ -199,12 +201,12 @@ const logout = async (id) => {
} else {
emit('change')
}
mixpanel_track('AccountLogOut')
trackEvent('AccountLogOut')
}
let showCard = ref(false)
let card = ref(null)
let button = ref(null)
const showCard = ref(false)
const card = ref(null)
const button = ref(null)
const handleClickOutside = (event) => {
const elements = document.elementsFromPoint(event.clientX, event.clientY)
if (
@ -213,7 +215,15 @@ const handleClickOutside = (event) => {
!elements.includes(card.value.$el) &&
!button.value.contains(event.target)
) {
toggleMenu(false)
}
}
function toggleMenu(override = true) {
if (showCard.value || !override) {
showCard.value = false
} else {
showCard.value = true
}
}
@ -264,11 +274,11 @@ onUnmounted(() => {
}
.account-card {
position: absolute;
position: fixed;
display: flex;
flex-direction: column;
top: 0.5rem;
left: 5.5rem;
margin-top: 0.5rem;
right: 2rem;
z-index: 11;
gap: 0.5rem;
padding: 1rem;
@ -343,12 +353,17 @@ onUnmounted(() => {
.fade-enter-active,
.fade-leave-active {
transition: opacity 0.3s ease;
transition:
opacity 0.25s ease,
translate 0.25s ease,
scale 0.25s ease;
}
.fade-enter-from,
.fade-leave-to {
opacity: 0;
translate: 0 -2rem;
scale: 0.9;
}
.avatar-button {
@ -356,9 +371,10 @@ onUnmounted(() => {
align-items: center;
gap: 0.5rem;
color: var(--color-base);
background-color: var(--color-raised-bg);
background-color: var(--color-button-bg);
border-radius: var(--radius-md);
width: 100%;
padding: 0.5rem 0.75rem;
text-align: left;
&.expanded {

View File

@ -0,0 +1,60 @@
<script setup lang="ts">
import { DropdownIcon, PlusIcon, FolderOpenIcon } from '@modrinth/assets'
import { ButtonStyled, OverflowMenu } from '@modrinth/ui'
import { open } from '@tauri-apps/plugin-dialog'
import { add_project_from_path } from '@/helpers/profile.js'
import { handleError } from '@/store/notifications.js'
import { useRouter } from 'vue-router'
const props = defineProps({
instance: {
type: Object,
required: true,
},
})
const router = useRouter()
const handleAddContentFromFile = async () => {
const newProject = await open({ multiple: true })
if (!newProject) return
for (const project of newProject) {
await add_project_from_path(props.instance.path, project.path ?? project).catch(handleError)
}
}
const handleSearchContent = async () => {
await router.push({
path: `/browse/${props.instance.loader === 'vanilla' ? 'resourcepack' : 'mod'}`,
query: { i: props.instance.path },
})
}
</script>
<template>
<div class="joined-buttons">
<ButtonStyled>
<button @click="handleSearchContent">
<PlusIcon />
Install content
</button>
</ButtonStyled>
<ButtonStyled>
<OverflowMenu
:options="[
{
id: 'from_file',
action: handleAddContentFromFile,
},
]"
>
<DropdownIcon />
<template #from_file>
<FolderOpenIcon />
<span class="no-wrap"> Add from file </span>
</template>
</OverflowMenu>
</ButtonStyled>
</div>
</template>

View File

@ -0,0 +1,63 @@
<template>
<div data-tauri-drag-region class="flex items-center gap-1 pl-3">
<Button v-if="false" class="breadcrumbs__back transparent" icon-only @click="$router.back()">
<ChevronLeftIcon />
</Button>
<Button
v-if="false"
class="breadcrumbs__forward transparent"
icon-only
@click="$router.forward()"
>
<ChevronRightIcon />
</Button>
{{ breadcrumbData.resetToNames(breadcrumbs) }}
<template v-for="breadcrumb in breadcrumbs" :key="breadcrumb.name">
<router-link
v-if="breadcrumb.link"
:to="{
path: breadcrumb.link.replace('{id}', encodeURIComponent($route.params.id)),
query: breadcrumb.query,
}"
class="text-primary"
>{{
breadcrumb.name.charAt(0) === '?'
? breadcrumbData.getName(breadcrumb.name.slice(1))
: breadcrumb.name
}}
</router-link>
<span
v-else
data-tauri-drag-region
class="text-contrast font-semibold cursor-default select-none"
>{{
breadcrumb.name.charAt(0) === '?'
? breadcrumbData.getName(breadcrumb.name.slice(1))
: breadcrumb.name
}}</span
>
<ChevronRightIcon v-if="breadcrumb.link" data-tauri-drag-region class="w-5 h-5" />
</template>
</div>
</template>
<script setup>
import { ChevronRightIcon, ChevronLeftIcon } from '@modrinth/assets'
import { Button } from '@modrinth/ui'
import { useBreadcrumbs } from '@/store/breadcrumbs'
import { useRoute } from 'vue-router'
import { computed } from 'vue'
const route = useRoute()
const breadcrumbData = useBreadcrumbs()
const breadcrumbs = computed(() => {
const additionalContext =
route.meta.useContext === true
? breadcrumbData.context
: route.meta.useRootContext === true
? breadcrumbData.rootContext
: null
return additionalContext ? [additionalContext, ...route.meta.breadcrumb] : route.meta.breadcrumb
})
</script>

View File

@ -60,9 +60,9 @@ defineExpose({
})
const isLinkedData = (item) => {
if (item.instance != undefined && item.instance.metadata.linked_data) {
if (item.instance != undefined && item.instance.linked_data) {
return true
} else if (item.metadata != undefined && item.metadata.linked_data) {
} else if (item != undefined && item.linked_data) {
return true
}
return false

View File

@ -0,0 +1,377 @@
<script setup>
import {
CheckIcon,
DropdownIcon,
XIcon,
HammerIcon,
LogInIcon,
UpdatedIcon,
CopyIcon,
} from '@modrinth/assets'
import { ChatIcon } from '@/assets/icons'
import { ButtonStyled, Collapsible } from '@modrinth/ui'
import { ref, computed } from 'vue'
import { login as login_flow, set_default_user } from '@/helpers/auth.js'
import { handleError } from '@/store/notifications.js'
import { handleSevereError } from '@/store/error.js'
import { cancel_directory_change } from '@/helpers/settings.ts'
import { install } from '@/helpers/profile.js'
import { trackEvent } from '@/helpers/analytics'
import ModalWrapper from '@/components/ui/modal/ModalWrapper.vue'
const errorModal = ref()
const error = ref()
const closable = ref(true)
const errorCollapsed = ref(false)
const title = ref('An error occurred')
const errorType = ref('unknown')
const supportLink = ref('https://support.modrinth.com')
const metadata = ref({})
defineExpose({
async show(errorVal, context, canClose = true, source = null) {
closable.value = canClose
if (errorVal.message && errorVal.message.includes('Minecraft authentication error:')) {
title.value = 'Unable to sign in to Minecraft'
errorType.value = 'minecraft_auth'
supportLink.value =
'https://support.modrinth.com/en/articles/9038231-minecraft-sign-in-issues'
if (
errorVal.message.includes('existing connection was forcibly closed') ||
errorVal.message.includes('error sending request for url')
) {
metadata.value.network = true
}
if (errorVal.message.includes('because the target machine actively refused it')) {
metadata.value.hostsFile = true
}
} else if (errorVal.message && errorVal.message.includes('User is not logged in')) {
title.value = 'Sign in to Minecraft'
errorType.value = 'minecraft_sign_in'
supportLink.value = 'https://support.modrinth.com'
} else if (errorVal.message && errorVal.message.includes('Move directory error:')) {
title.value = 'Could not change app directory'
errorType.value = 'directory_move'
supportLink.value = 'https://support.modrinth.com'
if (errorVal.message.includes('directory is not writeable')) {
metadata.value.readOnly = true
}
if (errorVal.message.includes('Not enough space')) {
metadata.value.notEnoughSpace = true
}
} else if (errorVal.message && errorVal.message.includes('No loader version selected for')) {
title.value = 'No loader selected'
errorType.value = 'no_loader_version'
supportLink.value = 'https://support.modrinth.com'
metadata.value.profilePath = context.profilePath
} else if (source === 'state_init') {
title.value = 'Error initializing Modrinth App'
errorType.value = 'state_init'
supportLink.value = 'https://support.modrinth.com'
} else {
title.value = 'An error occurred'
errorType.value = 'unknown'
supportLink.value = 'https://support.modrinth.com'
metadata.value = {}
}
error.value = errorVal
errorModal.value.show()
},
})
const loadingMinecraft = ref(false)
async function loginMinecraft() {
try {
loadingMinecraft.value = true
const loggedIn = await login_flow()
if (loggedIn) {
await set_default_user(loggedIn.profile.id).catch(handleError)
}
await trackEvent('AccountLogIn', { source: 'ErrorModal' })
loadingMinecraft.value = false
errorModal.value.hide()
} catch (err) {
loadingMinecraft.value = false
handleSevereError(err)
}
}
async function cancelDirectoryChange() {
try {
await cancel_directory_change()
window.location.reload()
} catch (err) {
handleError(err)
}
}
function retryDirectoryChange() {
window.location.reload()
}
const loadingRepair = ref(false)
async function repairInstance() {
loadingRepair.value = true
try {
await install(metadata.value.profilePath, false)
errorModal.value.hide()
} catch (err) {
handleSevereError(err)
}
loadingRepair.value = false
}
const hasDebugInfo = computed(
() =>
errorType.value === 'directory_move' ||
errorType.value === 'minecraft_auth' ||
errorType.value === 'state_init' ||
errorType.value === 'no_loader_version',
)
const debugInfo = computed(() => error.value.message ?? error.value ?? 'No error message.')
const copied = ref(false)
async function copyToClipboard(text) {
await navigator.clipboard.writeText(text)
copied.value = true
setTimeout(() => {
copied.value = false
}, 3000)
}
</script>
<template>
<ModalWrapper ref="errorModal" :header="title" :closable="closable">
<div class="modal-body">
<div class="markdown-body">
<template v-if="errorType === 'minecraft_auth'">
<template v-if="metadata.network">
<h3>Network issues</h3>
<p>
It looks like there were issues with the Modrinth App connecting to Microsoft's
servers. This is often the result of a poor connection, so we recommend trying again
to see if it works. If issues continue to persist, follow the steps in
<a
href="https://support.modrinth.com/en/articles/9038231-minecraft-sign-in-issues#h_e71a5f805f"
>
our support article
</a>
to troubleshoot.
</p>
</template>
<template v-else-if="metadata.hostsFile">
<h3>Network issues</h3>
<p>
The Modrinth App tried to connect to Microsoft / Xbox / Minecraft services, but the
remote server rejected the connection. This may indicate that these services are
blocked by the hosts file. Please visit
<a
href="https://support.modrinth.com/en/articles/9038231-minecraft-sign-in-issues#h_d694a29256"
>
our support article
</a>
for steps on how to fix the issue.
</p>
</template>
<template v-else>
<h3>Try another Microsoft account</h3>
<p>
Double check you've signed in with the right account. You may own Minecraft on a
different Microsoft account.
</p>
<div class="cta-button">
<button class="btn btn-primary" :disabled="loadingMinecraft" @click="loginMinecraft">
<LogInIcon /> Try another account
</button>
</div>
<h3>Using PC Game Pass, coming from Bedrock, or just bought the game?</h3>
<p>
Try signing in with the
<a href="https://www.minecraft.net/en-us/download">official Minecraft Launcher</a>
first. Once you're done, come back here and sign in!
</p>
</template>
<div class="cta-button">
<button class="btn btn-primary" :disabled="loadingMinecraft" @click="loginMinecraft">
<LogInIcon /> Try signing in again
</button>
</div>
</template>
<template v-if="errorType === 'directory_move'">
<template v-if="metadata.readOnly">
<h3>Change directory permissions</h3>
<p>
It looks like the Modrinth App is unable to write to the directory you selected.
Please adjust the permissions of the directory and try again or cancel the directory
change.
</p>
</template>
<template v-else-if="metadata.notEnoughSpace">
<h3>Not enough space</h3>
<p>
It looks like there is not enough space on the disk containing the directory you
selected. Please free up some space and try again or cancel the directory change.
</p>
</template>
<template v-else>
<p>
The Modrinth App is unable to migrate to the new directory you selected. Please
contact support for help or cancel the directory change.
</p>
</template>
<div class="cta-button">
<button class="btn" @click="retryDirectoryChange">
<UpdatedIcon /> Retry directory change
</button>
<button class="btn btn-danger" @click="cancelDirectoryChange">
<XIcon /> Cancel directory change
</button>
</div>
</template>
<div v-else-if="errorType === 'minecraft_sign_in'">
<p>
To play this instance, you must sign in through Microsoft below. If you don't have a
Minecraft account, you can purchase the game on the
<a href="https://www.minecraft.net/en-us/store/minecraft-java-bedrock-edition-pc"
>Minecraft website</a
>.
</p>
<div class="cta-button">
<button class="btn btn-primary" :disabled="loadingMinecraft" @click="loginMinecraft">
<LogInIcon /> Sign in to Minecraft
</button>
</div>
</div>
<template v-else-if="errorType === 'state_init'">
<p>
Modrinth App failed to load correctly. This may be because of a corrupted file, or
because the app is missing crucial files.
</p>
<p>You may be able to fix it through one of the following ways:</p>
<ul>
<li>Ensuring you are connected to the internet, then try restarting the app.</li>
<li>Redownloading the app.</li>
</ul>
</template>
<template v-else-if="errorType === 'no_loader_version'">
<p>The Modrinth App failed to find the loader version for this instance.</p>
<p>To resolve this, you need to repair the instance. Click the button below to do so.</p>
<div class="cta-button">
<button class="btn btn-primary" :disabled="loadingRepair" @click="repairInstance">
<HammerIcon /> Repair instance
</button>
</div>
</template>
<template v-else>
{{ debugInfo }}
</template>
<template v-if="hasDebugInfo">
<hr />
<p>
If nothing is working and you need help, visit
<a :href="supportLink">our support page</a>
and start a chat using the widget in the bottom right and we will be more than happy to
assist! Make sure to provide the following debug information to the agent:
</p>
</template>
</div>
<div class="flex items-center gap-2">
<ButtonStyled>
<a :href="supportLink" @click="errorModal.hide()"><ChatIcon /> Get support</a>
</ButtonStyled>
<ButtonStyled v-if="closable">
<button @click="errorModal.hide()"><XIcon /> Close</button>
</ButtonStyled>
<ButtonStyled v-if="hasDebugInfo">
<button :disabled="copied" @click="copyToClipboard(debugInfo)">
<template v-if="copied"> <CheckIcon class="text-green" /> Copied! </template>
<template v-else> <CopyIcon /> Copy debug info </template>
</button>
</ButtonStyled>
</div>
<template v-if="hasDebugInfo">
<div class="bg-button-bg rounded-xl mt-2 overflow-clip">
<button
class="flex items-center justify-between w-full bg-transparent border-0 px-4 py-3 cursor-pointer"
@click="errorCollapsed = !errorCollapsed"
>
<span class="text-contrast font-extrabold m-0">Debug information:</span>
<DropdownIcon
class="h-5 w-5 text-secondary transition-transform"
:class="{ 'rotate-180': !errorCollapsed }"
/>
</button>
<Collapsible :collapsed="errorCollapsed">
<pre class="m-0 px-4 py-3 bg-bg rounded-none">{{ debugInfo }}</pre>
</Collapsible>
</div>
</template>
</div>
</ModalWrapper>
</template>
<style>
.light-mode {
--color-orange-bg: rgba(255, 163, 71, 0.2);
}
.dark-mode,
.oled-mode {
--color-orange-bg: rgba(224, 131, 37, 0.2);
}
</style>
<style scoped lang="scss">
.cta-button {
display: flex;
align-items: center;
justify-content: center;
padding: 0.5rem;
gap: 0.5rem;
}
.warning-banner {
display: flex;
flex-direction: column;
gap: 0.5rem;
padding: var(--gap-lg);
background-color: var(--color-orange-bg);
border: 2px solid var(--color-orange);
border-radius: var(--radius-md);
margin-bottom: 1rem;
}
.warning-banner__title {
display: flex;
align-items: center;
gap: 0.5rem;
font-weight: 700;
svg {
color: var(--color-orange);
height: 1.5rem;
width: 1.5rem;
}
}
.modal-body {
display: flex;
flex-direction: column;
gap: var(--gap-md);
}
.markdown-body {
overflow: auto;
}
</style>

View File

@ -1,11 +1,12 @@
<script setup>
import { Button, Checkbox, Modal, XIcon, PlusIcon } from 'omorphia'
import { XIcon, PlusIcon } from '@modrinth/assets'
import { Button, Checkbox } from '@modrinth/ui'
import { PackageIcon, VersionIcon } from '@/assets/icons'
import { ref } from 'vue'
import { export_profile_mrpack, get_pack_export_candidates } from '@/helpers/profile.js'
import { open } from '@tauri-apps/api/dialog'
import { open } from '@tauri-apps/plugin-dialog'
import { handleError } from '@/store/notifications.js'
import { useTheming } from '@/store/theme'
import ModalWrapper from '@/components/ui/modal/ModalWrapper.vue'
const props = defineProps({
instance: {
@ -22,15 +23,13 @@ defineExpose({
})
const exportModal = ref(null)
const nameInput = ref(props.instance.metadata.name)
const nameInput = ref(props.instance.name)
const exportDescription = ref('')
const versionInput = ref('1.0.0')
const files = ref([])
const folders = ref([])
const showingFiles = ref(false)
const themeStore = useTheming()
const initFiles = async () => {
const newFolders = new Map()
const sep = '/'
@ -49,9 +48,9 @@ const initFiles = async () => {
disabled:
folder === 'profile.json' ||
folder.startsWith('modrinth_logs') ||
folder.startsWith('.fabric') ||
folder.includes('.DS_Store'),
folder.startsWith('.fabric'),
}))
.filter((pathData) => !pathData.path.includes('.DS_Store'))
.forEach((pathData) => {
const parent = pathData.path.split(sep).slice(0, -1).join(sep)
if (parent !== '') {
@ -63,7 +62,7 @@ const initFiles = async () => {
} else {
files.value.push(pathData)
}
})
}),
)
folders.value = [...newFolders.entries()].map(([name, value]) => [
{
@ -97,7 +96,7 @@ const exportPack = async () => {
filesToExport,
versionInput.value,
exportDescription.value,
nameInput.value
nameInput.value,
).catch((err) => handleError(err))
exportModal.value.hide()
}
@ -105,14 +104,14 @@ const exportPack = async () => {
</script>
<template>
<Modal ref="exportModal" header="Export modpack" :noblur="!themeStore.advancedRendering">
<ModalWrapper ref="exportModal" header="Export modpack">
<div class="modal-body">
<div class="labeled_input">
<p>Modpack Name</p>
<div class="iconified-input">
<PackageIcon />
<input v-model="nameInput" type="text" placeholder="Modpack name" class="input" />
<Button @click="nameInput = ''">
<Button class="r-btn" @click="nameInput = ''">
<XIcon />
</Button>
</div>
@ -122,7 +121,7 @@ const exportPack = async () => {
<div class="iconified-input">
<VersionIcon />
<input v-model="versionInput" type="text" placeholder="1.0.0" class="input" />
<Button @click="versionInput = ''">
<Button class="r-btn" @click="versionInput = ''">
<XIcon />
</Button>
</div>
@ -152,7 +151,7 @@ const exportPack = async () => {
</div>
</div>
<div v-if="showingFiles" class="table-content">
<div v-for="[path, children] of folders" :key="path.name" class="table-row">
<div v-for="[path, children] in folders" :key="path.name" class="table-row">
<div class="table-cell file-entry">
<div class="file-primary">
<Checkbox
@ -207,12 +206,11 @@ const exportPack = async () => {
</Button>
</div>
</div>
</Modal>
</ModalWrapper>
</template>
<style scoped lang="scss">
.modal-body {
padding: var(--gap-xl);
display: flex;
flex-direction: column;
gap: var(--gap-md);
@ -287,6 +285,7 @@ const exportPack = async () => {
flex-direction: row;
justify-content: space-between;
align-items: center;
gap: 1rem;
}
.textarea-wrapper {

View File

@ -0,0 +1,249 @@
<script setup>
import { computed, onMounted, onUnmounted, ref } from 'vue'
import { useRouter } from 'vue-router'
import {
DownloadIcon,
GameIcon,
PlayIcon,
SpinnerIcon,
StopCircleIcon,
TimerIcon,
} from '@modrinth/assets'
import { Avatar, ButtonStyled, useRelativeTime } from '@modrinth/ui'
import { convertFileSrc } from '@tauri-apps/api/core'
import { finish_install, kill, run } from '@/helpers/profile'
import { get_by_profile_path } from '@/helpers/process'
import { process_listener } from '@/helpers/events'
import { handleError } from '@/store/state.js'
import { showProfileInFolder } from '@/helpers/utils.js'
import { handleSevereError } from '@/store/error.js'
import { trackEvent } from '@/helpers/analytics'
import dayjs from 'dayjs'
const formatRelativeTime = useRelativeTime()
const props = defineProps({
instance: {
type: Object,
default() {
return {}
},
},
compact: {
type: Boolean,
default: false,
},
first: {
type: Boolean,
default: false,
},
})
const playing = ref(false)
const loading = ref(false)
const modLoading = computed(
() =>
loading.value ||
currentEvent.value === 'installing' ||
(currentEvent.value === 'launched' && !playing.value),
)
const installing = computed(() => props.instance.install_stage.includes('installing'))
const installed = computed(() => props.instance.install_stage === 'installed')
const router = useRouter()
const seeInstance = async () => {
await router.push(`/instance/${encodeURIComponent(props.instance.path)}`)
}
const checkProcess = async () => {
const runningProcesses = await get_by_profile_path(props.instance.path).catch(handleError)
playing.value = runningProcesses.length > 0
}
const play = async (e, context) => {
e?.stopPropagation()
loading.value = true
await run(props.instance.path)
.catch((err) => handleSevereError(err, { profilePath: props.instance.path }))
.finally(() => {
trackEvent('InstancePlay', {
loader: props.instance.loader,
game_version: props.instance.game_version,
source: context,
})
})
loading.value = false
}
const stop = async (e, context) => {
e?.stopPropagation()
playing.value = false
await kill(props.instance.path).catch(handleError)
trackEvent('InstanceStop', {
loader: props.instance.loader,
game_version: props.instance.game_version,
source: context,
})
}
const repair = async (e) => {
e?.stopPropagation()
await finish_install(props.instance)
}
const openFolder = async () => {
await showProfileInFolder(props.instance.path)
}
const addContent = async () => {
await router.push({
path: `/browse/${props.instance.loader === 'vanilla' ? 'datapack' : 'mod'}`,
query: { i: props.instance.path },
})
}
defineExpose({
play,
stop,
seeInstance,
openFolder,
addContent,
instance: props.instance,
})
const currentEvent = ref(null)
const unlisten = await process_listener((e) => {
if (e.profile_path_id === props.instance.path) {
currentEvent.value = e.event
if (e.event === 'finished') {
playing.value = false
}
}
})
onMounted(() => checkProcess())
onUnmounted(() => unlisten())
</script>
<template>
<template v-if="compact">
<div
class="card-shadow grid grid-cols-[auto_1fr_auto] bg-bg-raised rounded-xl p-3 pl-4 gap-2 cursor-pointer hover:brightness-90 transition-all"
@click="seeInstance"
@mouseenter="checkProcess"
>
<Avatar
size="48px"
:src="instance.icon_path ? convertFileSrc(instance.icon_path) : null"
:tint-by="instance.path"
alt="Mod card"
/>
<div class="h-full flex items-center font-bold text-contrast leading-normal">
<span class="line-clamp-2">{{ instance.name }}</span>
</div>
<div class="flex items-center">
<ButtonStyled v-if="playing" color="red" circular @mousehover="checkProcess">
<button v-tooltip="'Stop'" @click="(e) => stop(e, 'InstanceCard')">
<StopCircleIcon />
</button>
</ButtonStyled>
<ButtonStyled v-else-if="modLoading" color="standard" circular>
<button v-tooltip="'Instance is loading...'" disabled>
<SpinnerIcon class="animate-spin" />
</button>
</ButtonStyled>
<ButtonStyled v-else :color="first ? 'brand' : 'standard'" circular>
<button
v-tooltip="'Play'"
@click="(e) => play(e, 'InstanceCard')"
@mousehover="checkProcess"
>
<!-- Translate for optical centering -->
<PlayIcon class="translate-x-[1px]" />
</button>
</ButtonStyled>
</div>
<div class="flex items-center col-span-3 gap-1 text-secondary font-semibold">
<TimerIcon />
<span class="text-sm">
<template v-if="instance.last_played">
Played {{ formatRelativeTime(dayjs(instance.last_played).toISOString()) }}
</template>
<template v-else> Never played </template>
</span>
</div>
</div>
</template>
<div v-else>
<div
class="button-base bg-bg-raised p-4 rounded-xl flex gap-3 group"
@click="seeInstance"
@mouseenter="checkProcess"
>
<div class="relative flex items-center justify-center">
<Avatar
size="48px"
:src="instance.icon_path ? convertFileSrc(instance.icon_path) : null"
:tint-by="instance.path"
alt="Mod card"
:class="`transition-all ${modLoading || installing ? `brightness-[0.25] scale-[0.85]` : `group-hover:brightness-75`}`"
/>
<div class="absolute inset-0 flex items-center justify-center">
<ButtonStyled v-if="playing" size="large" color="red" circular>
<button
v-tooltip="'Stop'"
:class="{ 'scale-100 opacity-100': playing }"
class="transition-all scale-75 origin-bottom opacity-0 card-shadow"
@click="(e) => stop(e, 'InstanceCard')"
@mousehover="checkProcess"
>
<StopCircleIcon />
</button>
</ButtonStyled>
<SpinnerIcon
v-else-if="modLoading || installing"
v-tooltip="modLoading ? 'Instance is loading...' : 'Installing...'"
class="animate-spin w-8 h-8"
tabindex="-1"
/>
<ButtonStyled v-else-if="!installed" size="large" color="brand" circular>
<button
v-tooltip="'Repair'"
class="transition-all scale-75 group-hover:scale-100 group-focus-within:scale-100 origin-bottom opacity-0 group-hover:opacity-100 group-focus-within:opacity-100 card-shadow"
@click="(e) => repair(e)"
>
<DownloadIcon />
</button>
</ButtonStyled>
<ButtonStyled v-else size="large" color="brand" circular>
<button
v-tooltip="'Play'"
class="transition-all scale-75 group-hover:scale-100 group-focus-within:scale-100 origin-bottom opacity-0 group-hover:opacity-100 group-focus-within:opacity-100 card-shadow"
@click="(e) => play(e, 'InstanceCard')"
@mousehover="checkProcess"
>
<PlayIcon class="translate-x-[2px]" />
</button>
</ButtonStyled>
</div>
</div>
<div class="flex flex-col gap-1">
<p class="m-0 text-md font-bold text-contrast leading-tight line-clamp-1">
{{ instance.name }}
</p>
<div class="flex items-center col-span-3 gap-1 text-secondary font-semibold mt-auto">
<GameIcon class="shrink-0" />
<span class="text-sm capitalize">
{{ instance.loader }} {{ instance.game_version }}
</span>
</div>
</div>
</div>
</div>
</template>

View File

@ -1,5 +1,5 @@
<template>
<Modal ref="modal" header="Create instance" :noblur="!themeStore.advancedRendering">
<ModalWrapper ref="modal" header="Creating an instance">
<div class="modal-header">
<Chips v-model="creationType" :items="['custom', 'from file', 'import from launcher']" />
</div>
@ -110,7 +110,7 @@
placeholder="Path to launcher"
@change="setPath"
/>
<Button @click="() => (selectedLauncherPath = '')">
<Button class="r-btn" @click="() => (selectedLauncherPath = '')">
<XIcon />
</Button>
</div>
@ -177,14 +177,14 @@
loading
? 'Importing...'
: Array.from(profiles.values())
.flatMap((e) => e)
.some((e) => e.selected)
? `Import ${
Array.from(profiles.values())
.flatMap((e) => e)
.filter((e) => e.selected).length
} profiles`
: 'Select profiles to import'
.some((e) => e.selected)
? `Import ${
Array.from(profiles.values())
.flatMap((e) => e)
.filter((e) => e.selected).length
} profiles`
: 'Select profiles to import'
}}
</Button>
<ProgressBar
@ -193,51 +193,39 @@
/>
</div>
</div>
</Modal>
</ModalWrapper>
</template>
<script setup>
import ModalWrapper from '@/components/ui/modal/ModalWrapper.vue'
import {
Avatar,
Button,
Chips,
Modal,
CodeIcon,
FolderOpenIcon,
FolderSearchIcon,
InfoIcon,
PlusIcon,
UpdatedIcon,
UploadIcon,
XIcon,
CodeIcon,
Checkbox,
FolderOpenIcon,
InfoIcon,
FolderSearchIcon,
UpdatedIcon,
} from 'omorphia'
} from '@modrinth/assets'
import { Avatar, Button, Checkbox, Chips } from '@modrinth/ui'
import { computed, onUnmounted, ref, shallowRef } from 'vue'
import { get_loaders } from '@/helpers/tags'
import { create } from '@/helpers/profile'
import { open } from '@tauri-apps/api/dialog'
import { tauri } from '@tauri-apps/api'
import {
get_game_versions,
get_fabric_versions,
get_forge_versions,
get_quilt_versions,
get_neoforge_versions,
} from '@/helpers/metadata'
import { open } from '@tauri-apps/plugin-dialog'
import { convertFileSrc } from '@tauri-apps/api/core'
import { get_game_versions, get_loader_versions } from '@/helpers/metadata'
import { handleError } from '@/store/notifications.js'
import Multiselect from 'vue-multiselect'
import { mixpanel_track } from '@/helpers/mixpanel'
import { useTheming } from '@/store/state.js'
import { listen } from '@tauri-apps/api/event'
import { install_from_file } from '@/helpers/pack.js'
import { trackEvent } from '@/helpers/analytics'
import { create_profile_and_install_from_file } from '@/helpers/pack.js'
import {
get_default_launcher_path,
get_importable_instances,
import_instance,
} from '@/helpers/import.js'
import ProgressBar from '@/components/ui/ProgressBar.vue'
const themeStore = useTheming()
import { getCurrentWebview } from '@tauri-apps/api/webview'
const profile_name = ref('')
const game_version = ref('')
@ -249,7 +237,7 @@ const display_icon = ref(null)
const showAdvanced = ref(false)
const creating = ref(false)
const showSnapshots = ref(false)
const creationType = ref('from file')
const creationType = ref('custom')
const isShowing = ref(false)
defineExpose({
@ -267,20 +255,22 @@ defineExpose({
isShowing.value = true
modal.value.show()
unlistener.value = await listen('tauri://file-drop', async (event) => {
unlistener.value = await getCurrentWebview().onDragDropEvent(async (event) => {
// Only if modal is showing
if (!isShowing.value) return
if (event.payload.type !== 'drop') return
if (creationType.value !== 'from file') return
hide()
if (event.payload && event.payload.length > 0 && event.payload[0].endsWith('.mrpack')) {
await install_from_file(event.payload[0]).catch(handleError)
mixpanel_track('InstanceCreate', {
const { paths } = event.payload
if (paths && paths.length > 0 && paths[0].endsWith('.mrpack')) {
await create_profile_and_install_from_file(paths[0]).catch(handleError)
trackEvent('InstanceCreate', {
source: 'CreationModalFileDrop',
})
}
})
mixpanel_track('InstanceCreateStart', { source: 'CreationModal' })
trackEvent('InstanceCreateStart', { source: 'CreationModal' })
},
})
@ -308,19 +298,23 @@ const [
all_game_versions,
loaders,
] = await Promise.all([
get_fabric_versions().then(shallowRef).catch(handleError),
get_forge_versions().then(shallowRef).catch(handleError),
get_quilt_versions().then(shallowRef).catch(handleError),
get_neoforge_versions().then(shallowRef).catch(handleError),
get_loader_versions('fabric').then(shallowRef).catch(handleError),
get_loader_versions('forge').then(shallowRef).catch(handleError),
get_loader_versions('quilt').then(shallowRef).catch(handleError),
get_loader_versions('neo').then(shallowRef).catch(handleError),
get_game_versions().then(shallowRef).catch(handleError),
get_loaders()
.then((value) =>
value
.filter((item) => item.supported_project_types.includes('modpack'))
.map((item) => item.name.toLowerCase())
ref(
value
.filter((item) => item.supported_project_types.includes('modpack'))
.map((item) => item.name.toLowerCase()),
),
)
.then(ref)
.catch(handleError),
.catch((err) => {
handleError(err)
return ref([])
}),
])
loaders.value.unshift('vanilla')
@ -367,10 +361,10 @@ const create_instance = async () => {
game_version.value,
loader.value,
loader.value === 'vanilla' ? null : loader_version_value ?? 'stable',
icon.value
icon.value,
).catch(handleError)
mixpanel_track('InstanceCreate', {
trackEvent('InstanceCreate', {
profile_name: profile_name.value,
game_version: game_version.value,
loader: loader.value,
@ -381,7 +375,7 @@ const create_instance = async () => {
}
const upload_icon = async () => {
icon.value = await open({
const res = await open({
multiple: false,
filters: [
{
@ -391,8 +385,10 @@ const upload_icon = async () => {
],
})
icon.value = res.path ?? res
if (!icon.value) return
display_icon.value = tauri.convertFileSrc(icon.value)
display_icon.value = convertFileSrc(icon.value)
}
const reset_icon = () => {
@ -427,9 +423,9 @@ const openFile = async () => {
const newProject = await open({ multiple: false })
if (!newProject) return
hide()
await install_from_file(newProject).catch(handleError)
await create_profile_and_install_from_file(newProject.path ?? newProject).catch(handleError)
mixpanel_track('InstanceCreate', {
trackEvent('InstanceCreate', {
source: 'CreationModalFileOpen',
})
}
@ -441,7 +437,7 @@ const profiles = ref(
['ATLauncher', []],
['Curseforge', []],
['PrismLauncher', []],
])
]),
)
const loading = ref(false)
@ -470,9 +466,9 @@ const promises = profileOptions.value.map(async (option) => {
profileOptions.value.find((profile) => profile.name === option.name).path = path
profiles.value.set(
option.name,
instances.map((name) => ({ name, selected: false }))
instances.map((name) => ({ name, selected: false })),
)
} catch (error) {
} catch {
// Allow failure silently
}
})
@ -489,12 +485,12 @@ const selectLauncherPath = async () => {
const reload = async () => {
const instances = await get_importable_instances(
selectedProfileType.value.name,
selectedProfileType.value.path
selectedProfileType.value.path,
).catch(handleError)
if (instances) {
profiles.value.set(
selectedProfileType.value.name,
instances.map((name) => ({ name, selected: false }))
instances.map((name) => ({ name, selected: false })),
)
} else {
profiles.value.set(selectedProfileType.value.name, [])
@ -533,8 +529,8 @@ const next = async () => {
.modal-body {
display: flex;
flex-direction: column;
padding: var(--gap-lg);
gap: var(--gap-md);
margin-top: var(--gap-lg);
}
.input-label {
@ -603,7 +599,6 @@ const next = async () => {
flex-direction: row;
justify-content: space-between;
align-items: center;
padding: var(--gap-lg);
padding-bottom: 0;
}

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