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.
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
* 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>
* 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>
* 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>
* 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: 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>
* 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>
* 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>
* 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>
* 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.
Resolvesmodrinth/code#1370
* chore: revert import sort
* Attempt at fixing popouts? no idea if will work
* Try with no theme?
* Revert "Try with no theme?"
This reverts commit 7fb3a6c6a6.
* 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>
* 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
* 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>
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
* 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>
* 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
* 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
* 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>
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
* 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>
Starlight defaults to favicon.svg, however a favicon.ico was added to the repo.
Changes:
- Format astro config according to Prettier
- Properly set favicon
- 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
* 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
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!
* 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
* 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>
* 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
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.
* 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>
* 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>
- 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>
* 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
- 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.
* 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
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
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.
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.
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?).
* 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
* 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
* 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
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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
* Revert "Add API indicator and staging banner (#1563)"
This reverts commit a75de51198.
* 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>
* removes version ordering from v2; simplifies now-unecessary three-level faceting
* resolved some todos
* test for game version updating
* merge fixes; display_categories fix
* 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
* 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
* 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
* [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>
* [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>
* 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
* 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>
* 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>
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.
* 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>
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.
* 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
* 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>
* Add spoiler tag functionality to CodeMirror
* Refactor image insertion logic in
MarkdownEditor.vue
* Refactor modal state reset functions in
MarkdownEditor.vue
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.
* 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
* 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>
* 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
* Version ordering
* cargo sqlx prepare
* Use version ordering for maven
* Use version ordering when sorting versions in Rust (not just SQL)
* Thanks clippy
* 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
* 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
* 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
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.
* 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
* 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>
* 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
* 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
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).
* 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).
* 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>
* 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
* 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
* 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
* 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>
* 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>
* 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
* Revert "fix: featured version ui shifts (#1191)"
This reverts commit 3036f43b75.
* Revert "Fix CTRL clicking on versions issue (#1189)"
This reverts commit f4560bd7d8.
* 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>
* 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
* 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>
* 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>
* 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.
* 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
* fix(project): update follower count client side
* move following increment to user composable
---------
Co-authored-by: MagnusHJensen <magnus.holm.jensen@lego.dk>
* 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>
* 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>
* 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>
* 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
* 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>
* 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
* 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>
* 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
* 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?
* 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>
* 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>
* 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
* 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>
* Initial work on new status sys + scheduling releases
* Finish project statuses + begin work on version statuses
* Finish version statuses
* Regenerate prepare
* Run fmt + clippy
* 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
* 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>
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.
* 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>
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.
- 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.
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
* 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>
* 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>
* 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
* 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>
* 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>
* 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
* 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>
* 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>
* 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
* Dependency Add fields now only accepts letters
No more annoying spaces, numbers or special characters
* Fixed problem(s)
Now it only disallows spaces
* 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 😱
* Fix version dropdowns and add link hover/active colors in markdown
* Add 'Clear filters' button to version filtering
* *Actually* fix#394
* semicolon
* 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
* 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>
* 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.
* Bundle of small fixes

- 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.
* 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.

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.

* 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`
* Closesmodrinth/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>
* Move validators to seperate thread, other fixes
* Update rust version in Dockerfile
* Fix notifs not working
* Fix pack validator not enforcing files
* 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>
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>
* 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>
* 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>
* 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
* Specify which application file types are allowed
* Attempt two
* attempt 3
* Update version edit too
good thing these commits will be squashed!
* Fix warnings
* 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
Fixesmodrinth/knossos#231
* Detect mod search query removal
Fixesmodrinth/knossos#240
* Increase margin on project card categories mobile
Fixesmodrinth/knossos#230
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.

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.

* 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
* 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>
* 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
* Order notifications and followed mods
Fixesmodrinth/knossos#195
* Add user notification badge on avatar
Closesmodrinth/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>
* Make project cards right-align their last element
Spaces out elements in a `.project-card` using `justify-content: space-between;`.
Fixesmodrinth/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
Fixesmodrinth/knossos#200
* Make page 5 button visible on page 4 (pagination)
Fixesmodrinth/knossos#184
* Color links on legal pages
Fixesmodrinth/knossos#166
* Set max notifications to 5 and ignore duplicates
Fixesmodrinth/knossos#175
* Add space above report button when no user desc
Fixesmodrinth/knossos#143
* Better text spacing from edge of mobile screen
Fixesmodrinth/knossos#179
* Fix slanted bars in modrinth/knossos#57
* Fix checkbox grid and role label
Fixesmodrinth/knossos#191
* Move mod 'settings' button to the far right
Fixesmodrinth/knossos#138
* Abbreviate minutes to min. when time is too long
Not a perfect solution imo, but works for now
Fixesmodrinth/knossos#193
* Fix mobile header margins & add breakpoints
Fixesmodrinth/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"
* 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
* 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
* 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
* 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.
* 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
* 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
* 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
* 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
* 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.
* 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
* 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
* 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.
* 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>
* More mod info
* Downloading mods
* Run prepare
* User editing + icon editing
* Finish
* Some fixes
* Fix clippy errors
* Fix hash lookup
* Run prepare
* Run formatter
* 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
* Moderation + Mod Editing WIP
* Run prepare, fix perms
* Make it compile
* Finish moderation and edit routes
* More fixes
* Use better queries
* Final Fixes
* 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
* 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>
* 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
* 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.
* 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.
* 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>
* 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
* 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
* 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
* 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
* 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
* 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
* 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>
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.
* 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>
* 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>
* 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
* 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.
* 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
* 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>
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.
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.
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:
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:
<img src="https://cdn-raw.modrinth.com/app-landing/app-screenshot.webp" alt="Screenshot of the Modrinth App's home page" align="right" width="50%">
## Modrinth Monorepo
The Modrinth App, codenamed theseus, is a modern launcher for Minecraft: Java Edition with a clean look, easy-to-use interface, and deep integration into Modrinth services.
Welcome to the Modrinth Monorepo, the primary codebase for the Modrinth web interface and app. It contains  lines of code and has  contributors!
### Features
- One-click installation of modpacks
- Automatic management of Java versions
- Windows, Mac, and Linux[^1] support
- Import your instances from CurseForge, Prism[^2], ATLauncher, MultiMC[^2], or GDLauncher
- Supports offline play once you've authenticated with your Minecraft account at least once
- Fully open source under GPLv3[^3]!
[^1]: While Linux is supported, due to the wide range of distributions out there, your mileage may vary with how well the Modrinth App works on your system. We officially distribute `.deb` and `.AppImage` packages, but third party packages have been created for a number of other package platforms. Additionally, some have reported lag issues running on Linux, we believe this to be due to an upstream Tauri issue, which we hope improves with further development.
[^2]: Certain features of the OneSix format used by Prism and MultiMC are not yet supported, so some instances may not import correctly, primarily on older Minecraft versions or unsupported mod loaders.
[^3]: Modrinth's logos, branding, and other trademarks are not free for use, see the [licensing section](#license) for more information.
## Contributing
You're welcome to help contribute to the Modrinth App if you'd like! Please review our [contribution guide](https://support.modrinth.com/en/articles/8802215-contributing-to-modrinth) before attempting to contribute or make a pull request though.
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
To get started, install [pnpm](https://pnpm.io/), [Rust](https://www.rust-lang.org/tools/install), and the [Tauri prerequisites](https://tauri.app/v1/guides/getting-started/prerequisites/#installing) for your system. Then, run the following commands:
```
cd theseus_gui
pnpm install
pnpm run tauri dev
```
This repository contains two primary packages. For detailed development information, please refer to their respective READMEs:
Once the commands finish, you'll be viewing a Tauri window with Nuxt.js hot reloading.
- [Web Interface](apps/frontend/README.md)
- [Desktop App](apps/app/README.md)
You can use `pnpm run lint` to find any eslint problems, and `pnpm run fix` to try automatically fixing those problems.
## 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
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](https://github.com/modrinth/theseus/blob/master/LICENSE). However, some files are licensed under a different license.
Any files depicting the Modrinth branding, including the wrench-in-labyrinth logo, the landing image, and variations thereof, are licensed as follows:
Forking is permitted under the GPLv3, however do be aware that you must remove all Modrinth branding, including logos, brand colors, background images, or anything else that is related to trademarks or copyrights held by Rinth, Inc.
All packages in this repository are licensed under their respective licenses. Refer to the LICENSE file in each package for more information.
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.
Loaded 100 of 1960 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.