From e2085c43c5a7726806420b6a27a6541d7d1a757b Mon Sep 17 00:00:00 2001 From: coolbot <76798835+coolbot100s@users.noreply.github.com> Date: Mon, 20 Jul 2026 13:52:46 -0700 Subject: [PATCH] Feat: Many moderation checklist changes (#6730) * Rule 1.x, 3.2 and 3.3x support * reorganize * Kinda Jank dynamic list stuff that should probably be implemented better but its 1:30 am * Checklist Stage Title * Make Stage Title Good * Rule 1.x, 3.2 and 3.3x support * reorganize * Kinda Jank dynamic list stuff that should probably be implemented better but its 1:30 am * Checklist Stage Title * Make Stage Title Good * oops i forgot 3.1 * Insufficient description improvement test * "i forgor" checklist tooltips tooltips (kinda jank but they work) update to latest * only use indexedDb for moderation storage, localStorage forces a bunch of cringe * store moderation stuff separately + compact checklist stuff * give stages actual titles + rename what was previously called titles to hints * Title & Slug, Summary Description, Links, License, Gallery, Versions and Reupload migrated to new system:tm: * put stageoptions before nodes * do state and variablse in tooltips * checklist fully migrated to new system, not much new has been added (yet) * forgot to only do modpack permissions for modpacks * Idk why I wasn't just mutating the builder * actual node type hierarchy + action abstraction + improve message/text handling * dropdown + "functional" quick fixes * dropdown + "functional" quick fixes * Allow moderators to suggest correct environment. * remove vestigial function * Prioritization:tm: * quickest fixes in the west * start of metadata stage + optimize checklist parsing + a couple of qol features * futureproof:tm: environment metadata + just give me project context everywhere * tidy up after today's refactoring * tidy up after tidying up after today's refactoring * move loaders to metadata (from versions) * better required display + vueify + reorganize messages + tag quick fixes + todo * fix log spam + concat md * more bugs * nested state access * update description stage, add showcase clarity * Fix links stage mostly, and tweak metadata stage. * fix links lag + actions on stages * setup links bonus buttons * Change stage order * Update rules stage * Move conditional stages to the top where they belong. * fix some metadata stuff * fix stage selector * don't show non-english buttons on servers without english support. * prepr * stop linter from trying to break my markdown * fix: some issues * fix: lint * not sure why but link's links weren't links * fix quick fixes (again) (idk how they keep breaking) * make messages only actually count as messages if they actually have content * rename horror button to spoilers button * Update links name to match the links settings * re-review stage * unbreak stage selector * passing off version stage fixing. * actually fix the stage selector this time * fix showcase clarity msg * redirect when checklist updates slug fix initial stage not being first if first stage is only shown under certain conditions move to a consistent naming scheme * redirect when checklist updates slug fix initial stage not being first if first stage is only shown under certain conditions move to a consistent naming scheme * ok maybe lets use kebab * move custom description advice stage to first button. * temp priority on corrections applied * make metadata page go to non setting versions page * links stage bonus buttons, src required flag, show link value in msgs, fix msg groupings. * update re-review button * reupload stage navigates to project Description. * fix: link stage using page context too late * chore: run prepr * fix(ci): tell typo check to ignore moderation utils * fix: pr comment if storybook fails * make complex nodes less complex (for the most part) fix re-review stage shown condition new fancy message collection system all buttons that contribute to messages now have relevant tooltips don't store default values in checklist db * make complex nodes less complex (for the most part) fix re-review stage shown condition new fancy message collection system all buttons that contribute to messages now have relevant tooltips don't store default values in checklist db * maybe fixed markdown escaping? * tweak re-review wording. * Update license stage handling and info * add mixed option back for env info * fix: formatEnvironments fix: formatEnvironments * update metadata environment group shown * fix: status alert priority * fix: display suggested slug in slug/misused message * actually navigate when we change project slug * ok like redirect but like don't lose state when slug changes :smart: * make checklist reset button reset only current stage if there's modifications to it instead of full checklist * fix versions stage messages not working * fix donation links not being in a column * I think slug stuff is working? also like actually 100% garunteed markdown escaping works now * prepr * pseudo stages no longer interact with non-pseudo stages at all also query projects better I think? fix repetitive message spam in links stage * apply quick fixes before refreshing page * differentiate reset and return to start * remove random empty lines in some situations * better inaccurate slug message * slug correction input reset button resets to current slug again instead of auto * better keybind navigation * incorrect environment message tweak * use environment name(s) in checklist info * prepr --------- Signed-off-by: Prospector <6166773+Prospector@users.noreply.github.com> Co-authored-by: chyzman Co-authored-by: Calum H. (IMB11) Co-authored-by: Gravy Boat Co-authored-by: Michael H. Co-authored-by: chyz <32403637+chyzman@users.noreply.github.com> Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com> --- .github/workflows/frontend-preview.yml | 17 +- _typos.toml | 1 + .../checklist/ModerationChecklist.vue | 1665 +++++++---------- .../ui/moderation/checklist/NodeRenderer.vue | 780 ++++++++ .../moderation/checklist/checklist-context.ts | 23 + apps/frontend/src/pages/[type]/[project].vue | 28 +- .../src/pages/[type]/[project]/moderation.vue | 19 +- .../services/moderation-checklist-storage.ts | 628 +------ apps/frontend/src/services/moderation-db.ts | 94 + .../src/services/moderation-queue-storage.ts | 198 +- packages/moderation/src/data/checklist.ts | 83 +- packages/moderation/src/data/keybinds.ts | 4 +- .../insufficient/insufficient-packs.md | 8 - .../insufficient/insufficient-projects.md | 8 - .../description/insufficient/insufficient.md | 6 - .../description/unfinished.md | 4 - .../checklist-messages/links/misused.md | 4 - .../links/not_accessible-discord.md | 1 - .../links/not_accessible-source.md | 1 - .../checklist-messages/slug/misused.md | 5 - .../status-alerts/automod_confusion.md | 5 - .../messages/checklist-text/categories.md | 2 - .../environment/environment-multiple.md | 2 - .../checklist-text/environment/environment.md | 4 - .../data/messages/checklist-text/licensing.md | 2 - .../messages/checklist-text/links/base.md | 4 - .../checklist-text/links/donation/donation.md | 1 - .../links/donation/donations.md | 2 - .../messages/checklist-text/links/server.md | 4 - .../checklist-text/status-alerts/text.md | 1 - .../checklist-text/summary/summary.md | 2 - .../messages/checklist-text/title-slug.md | 4 - .../checklist-text/title-slug/slug.md | 3 - .../checklist-text/title-slug/title.md | 1 - .../messages}/description/clarity.md | 0 .../messages/description}/headers-as-body.md | 0 .../messages/description}/image-only.md | 0 .../description/insufficient/default/packs.md | 3 + .../insufficient/default/projects.md | 3 + .../insufficient/default/servers.md} | 7 +- .../description/insufficient/header.md | 6 + .../description/insufficient/piece/fork.md | 1 + .../insufficient/piece/spoiler-guide.md | 19 + .../insufficient/piece/spoilers.md | 1 + .../insufficient/piece/unfinished.md | 1 + .../description}/non-english-server.md | 0 .../messages/description}/non-english.md | 0 .../description}/non-standard-text.md | 0 .../messages}/gallery/insufficient.md | 0 .../messages}/gallery/not-relevant.md | 0 .../messages/gallery/showcase-clarity.md | 10 + .../messages/license/invalid-link.md} | 0 .../license/invalid-link/custom-license.md} | 0 .../messages/license/no-source-fork.md} | 0 .../messages/license/no-source.md} | 0 .../messages/links/discord/expiring.md | 1 + .../messages/links/discord/inaccessible.md | 1 + .../messages/links/header.md} | 3 +- .../messages/links/inaccessible-header.md | 3 + .../messages/links/issues/disabled.md | 1 + .../messages/links/misused-header.md | 3 + .../checklist/messages/links/source/empty.md | 1 + .../messages/links/source/inaccessible.md | 1 + .../checklist/messages/links/wiki/disabled.md | 1 + .../metadata/environment/correction.md | 1 + .../metadata}/environment/inaccurate.md | 2 + .../messages/metadata/environment/mixed.md | 1 + .../permissions/invalid-permissions.md} | 0 .../permissions/missing-permissions.md} | 0 .../non-commercial-external-content.md} | 0 .../prohibited-external-content.md} | 0 .../messages}/post-approval/issue-warning.md | 0 .../messages}/post-approval/metadata-issue.md | 0 .../metadata-issue}/dependencies.md | 0 .../post-approval/metadata-issue/license.md} | 0 .../post-approval/metadata-issue}/loaders.md | 0 .../metadata-issue}/mc-versions.md | 0 .../post-approval/missed-deadline.md | 0 .../checklist/messages/re-review/ignored.md | 1 + .../messages/re-review/ignored/warning.md | 1 + .../reupload/custom-pack-prohibited.md} | 0 .../reupload/custom-pack-verification.md} | 0 .../custom-pack-verification/list.md} | 0 .../reupload/identity-verification-server.md} | 0 .../reupload/identity-verification.md} | 0 .../messages/reupload/insufficient-fork.md} | 0 .../reupload/request-proof-server.md} | 0 .../messages/reupload/request-proof.md} | 0 .../messages}/reupload/reupload.md | 0 .../messages/reupload/unclear-fork.md} | 0 .../rules/cheat-or-hack-advertising.md | 5 + .../messages/rules/excessive-languages.md} | 0 .../messages/rules}/paid-access-server.md | 0 .../rules/prohibited-content-header.md | 3 + .../prohibited-content/discriminatory.md | 1 + .../prohibited-content/false-endorsement.md | 1 + .../rules/prohibited-content/harmful.md | 1 + .../prohibited-content/illegal-activity.md | 1 + .../rules/prohibited-content/impersonation.md | 1 + .../prohibited-content/ip-infringement.md | 1 + .../rules/prohibited-content/legal-rights.md | 1 + .../rules/prohibited-content/misleading.md | 1 + .../rules/prohibited-content/mojang-bypass.md | 1 + .../rules/prohibited-content/objectionable.md | 1 + .../rules/prohibited-content/profanity.md | 1 + .../prohibited-content/undisclosed-upload.md | 1 + .../messages/rules/rule-breaking-other.md} | 0 .../rules/server-side-opt-in-header.md | 3 + .../rules/server-side-opt-in/aim-bot.md | 1 + .../rules/server-side-opt-in/hiding-mods.md | 1 + .../server-side-opt-in/item-duplication.md | 1 + .../rules/server-side-opt-in/movement.md | 1 + .../messages/rules/server-side-opt-in/pvp.md | 1 + .../rules/server-side-opt-in/x-ray.md | 1 + .../messages/rules/server-side-opt-out.md | 3 + .../messages/status-alerts/account-issues.md} | 2 +- .../corrections-applied-approved.md} | 0 .../status-alerts/corrections-applied.md} | 0 .../status-alerts}/demonetized-modpack.md | 0 .../messages/status-alerts}/demonetized.md | 0 .../status-alerts/private-use-server.md} | 0 .../messages/status-alerts/private-use.md} | 0 .../messages/status-alerts/server-use.md} | 0 .../status-alerts/tec/source-request-bins.md} | 0 .../status-alerts/tec/source-request-obfs.md} | 0 .../messages}/summary/formatting.md | 0 .../messages}/summary/insufficient.md | 0 .../messages}/summary/non-english.md | 0 .../messages}/summary/repeat-ip.md | 0 .../messages}/summary/repeat-title.md | 0 .../messages/tags}/inaccurate.md | 0 .../messages/tags/optimization-misused.md} | 0 .../messages/tags/resolutions-misused.md} | 0 .../messages/title-slug/slug/correction.md | 1 + .../messages/title-slug/slug/misused.md | 8 + .../title-slug}/title/minecraft-branding.md | 0 .../title-slug}/title/similarities.md | 0 .../title-slug/title/similarities/fork.md} | 0 .../title-slug/title/similarities/modpack.md} | 0 .../title-slug}/title/useless-info.md | 0 .../undefined-project/no-versions.md} | 0 .../alternate-versions/additional.md} | 0 .../versions/alternate-versions/mono.md} | 0 .../versions/alternate-versions/primary.md} | 0 .../alternate-versions/server-additional.md} | 0 .../versions/alternate-versions/server.md} | 0 .../versions/alternate-versions/zip.md} | 0 .../versions/duplicate-primary-files.md} | 0 .../versions/incorrect-additional-files.md} | 0 .../messages/versions/incorrect-loader.md | 4 + .../incorrect-project-type/datapack.md} | 0 .../incorrect-project-type/modpack.md} | 0 .../incorrect-project-type/resourcepack.md} | 0 .../messages/versions/redist-libs.md} | 0 .../messages/versions/unsupported.md} | 0 .../messages/versions/vanilla-assets.md} | 0 .../src/data/modpack-permissions-stage.ts | 35 - packages/moderation/src/data/nags/core.ts | 2 +- packages/moderation/src/data/nags/links.ts | 33 +- .../src/data/nags/server-projects.ts | 6 +- packages/moderation/src/data/priorities.ts | 11 + .../moderation/src/data/stages/categories.ts | 63 - .../moderation/src/data/stages/categories.tsx | 76 + .../moderation/src/data/stages/description.ts | 159 -- .../src/data/stages/description.tsx | 87 + .../environment/environment-multiple.ts | 32 - .../data/stages/environment/environment.ts | 32 - .../moderation/src/data/stages/gallery.ts | 39 - .../moderation/src/data/stages/gallery.tsx | 33 + .../moderation/src/data/stages/license.ts | 94 - .../moderation/src/data/stages/license.tsx | 72 + packages/moderation/src/data/stages/links.ts | 99 - packages/moderation/src/data/stages/links.tsx | 156 ++ .../moderation/src/data/stages/metadata.tsx | 170 ++ .../src/data/stages/other-rules.tsx | 104 + .../moderation/src/data/stages/permissions.ts | 69 - .../src/data/stages/permissions.tsx | 46 + .../src/data/stages/post-approval.ts | 127 -- .../src/data/stages/post-approval.tsx | 72 + .../moderation/src/data/stages/re-review.tsx | 46 + .../moderation/src/data/stages/reupload.ts | 258 --- .../moderation/src/data/stages/reupload.tsx | 104 + .../src/data/stages/rule-following.ts | 67 - .../src/data/stages/status-alerts.ts | 124 -- .../src/data/stages/status-alerts.tsx | 118 ++ .../moderation/src/data/stages/summary.ts | 70 - .../moderation/src/data/stages/summary.tsx | 69 + .../moderation/src/data/stages/title-slug.ts | 105 -- .../moderation/src/data/stages/title-slug.tsx | 338 ++++ .../src/data/stages/undefined-project.ts | 27 - .../src/data/stages/undefined-project.tsx | 23 + .../moderation/src/data/stages/versions.ts | 197 -- .../moderation/src/data/stages/versions.tsx | 110 ++ packages/moderation/src/index.ts | 7 +- packages/moderation/src/types/actions.ts | 26 +- packages/moderation/src/types/node.ts | 880 +++++++++ packages/moderation/src/types/priority.ts | 34 + packages/moderation/src/types/stage.ts | 7 +- packages/moderation/src/utils.ts | 128 +- packages/ui/src/components/base/Alert.vue | 44 + .../ui/src/components/base/StyledInput.vue | 21 +- .../components/base/TeleportOverflowMenu.vue | 103 +- packages/ui/src/components/base/index.ts | 1 + .../src/components/nav/NotificationPanel.vue | 2 +- packages/ui/src/providers/project-page.ts | 4 +- 205 files changed, 4689 insertions(+), 3574 deletions(-) create mode 100644 apps/frontend/src/components/ui/moderation/checklist/NodeRenderer.vue create mode 100644 apps/frontend/src/components/ui/moderation/checklist/checklist-context.ts create mode 100644 apps/frontend/src/services/moderation-db.ts delete mode 100644 packages/moderation/src/data/messages/checklist-messages/description/insufficient/insufficient-packs.md delete mode 100644 packages/moderation/src/data/messages/checklist-messages/description/insufficient/insufficient-projects.md delete mode 100644 packages/moderation/src/data/messages/checklist-messages/description/insufficient/insufficient.md delete mode 100644 packages/moderation/src/data/messages/checklist-messages/description/unfinished.md delete mode 100644 packages/moderation/src/data/messages/checklist-messages/links/misused.md delete mode 100644 packages/moderation/src/data/messages/checklist-messages/links/not_accessible-discord.md delete mode 100644 packages/moderation/src/data/messages/checklist-messages/links/not_accessible-source.md delete mode 100644 packages/moderation/src/data/messages/checklist-messages/slug/misused.md delete mode 100644 packages/moderation/src/data/messages/checklist-messages/status-alerts/automod_confusion.md delete mode 100644 packages/moderation/src/data/messages/checklist-text/categories.md delete mode 100644 packages/moderation/src/data/messages/checklist-text/environment/environment-multiple.md delete mode 100644 packages/moderation/src/data/messages/checklist-text/environment/environment.md delete mode 100644 packages/moderation/src/data/messages/checklist-text/licensing.md delete mode 100644 packages/moderation/src/data/messages/checklist-text/links/base.md delete mode 100644 packages/moderation/src/data/messages/checklist-text/links/donation/donation.md delete mode 100644 packages/moderation/src/data/messages/checklist-text/links/donation/donations.md delete mode 100644 packages/moderation/src/data/messages/checklist-text/links/server.md delete mode 100644 packages/moderation/src/data/messages/checklist-text/status-alerts/text.md delete mode 100644 packages/moderation/src/data/messages/checklist-text/summary/summary.md delete mode 100644 packages/moderation/src/data/messages/checklist-text/title-slug.md delete mode 100644 packages/moderation/src/data/messages/checklist-text/title-slug/slug.md delete mode 100644 packages/moderation/src/data/messages/checklist-text/title-slug/title.md rename packages/moderation/src/data/messages/{checklist-messages => checklist/messages}/description/clarity.md (100%) rename packages/moderation/src/data/messages/{checklist-messages/description/accessability => checklist/messages/description}/headers-as-body.md (100%) rename packages/moderation/src/data/messages/{checklist-messages/description/accessability => checklist/messages/description}/image-only.md (100%) create mode 100644 packages/moderation/src/data/messages/checklist/messages/description/insufficient/default/packs.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/description/insufficient/default/projects.md rename packages/moderation/src/data/messages/{checklist-messages/description/insufficient/insufficient-servers.md => checklist/messages/description/insufficient/default/servers.md} (51%) create mode 100644 packages/moderation/src/data/messages/checklist/messages/description/insufficient/header.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/description/insufficient/piece/fork.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/description/insufficient/piece/spoiler-guide.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/description/insufficient/piece/spoilers.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/description/insufficient/piece/unfinished.md rename packages/moderation/src/data/messages/{checklist-messages/description/accessability/non-english => checklist/messages/description}/non-english-server.md (100%) rename packages/moderation/src/data/messages/{checklist-messages/description/accessability/non-english => checklist/messages/description}/non-english.md (100%) rename packages/moderation/src/data/messages/{checklist-messages/description/accessability => checklist/messages/description}/non-standard-text.md (100%) rename packages/moderation/src/data/messages/{checklist-messages => checklist/messages}/gallery/insufficient.md (100%) rename packages/moderation/src/data/messages/{checklist-messages => checklist/messages}/gallery/not-relevant.md (100%) create mode 100644 packages/moderation/src/data/messages/checklist/messages/gallery/showcase-clarity.md rename packages/moderation/src/data/messages/{checklist-messages/license/invalid_link.md => checklist/messages/license/invalid-link.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/license/invalid_link-custom_license.md => checklist/messages/license/invalid-link/custom-license.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/license/no_source-fork.md => checklist/messages/license/no-source-fork.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/license/no_source.md => checklist/messages/license/no-source.md} (100%) create mode 100644 packages/moderation/src/data/messages/checklist/messages/links/discord/expiring.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/links/discord/inaccessible.md rename packages/moderation/src/data/messages/{checklist-messages/links/not_accessible.md => checklist/messages/links/header.md} (55%) create mode 100644 packages/moderation/src/data/messages/checklist/messages/links/inaccessible-header.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/links/issues/disabled.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/links/misused-header.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/links/source/empty.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/links/source/inaccessible.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/links/wiki/disabled.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/metadata/environment/correction.md rename packages/moderation/src/data/messages/{checklist-messages => checklist/messages/metadata}/environment/inaccurate.md (97%) create mode 100644 packages/moderation/src/data/messages/checklist/messages/metadata/environment/mixed.md rename packages/moderation/src/data/messages/{checklist-messages/externals-permissions/invalid.md => checklist/messages/permissions/invalid-permissions.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/externals-permissions/missing.md => checklist/messages/permissions/missing-permissions.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/externals-permissions/non-commercial.md => checklist/messages/permissions/non-commercial-external-content.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/externals-permissions/prohibited.md => checklist/messages/permissions/prohibited-external-content.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages => checklist/messages}/post-approval/issue-warning.md (100%) rename packages/moderation/src/data/messages/{checklist-messages => checklist/messages}/post-approval/metadata-issue.md (100%) rename packages/moderation/src/data/messages/{checklist-messages/misc-metadata => checklist/messages/post-approval/metadata-issue}/dependencies.md (100%) rename packages/moderation/src/data/messages/{checklist-messages/misc-metadata/inconsistent-license.md => checklist/messages/post-approval/metadata-issue/license.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/misc-metadata => checklist/messages/post-approval/metadata-issue}/loaders.md (100%) rename packages/moderation/src/data/messages/{checklist-messages/misc-metadata => checklist/messages/post-approval/metadata-issue}/mc-versions.md (100%) rename packages/moderation/src/data/messages/{checklist-messages => checklist/messages}/post-approval/missed-deadline.md (100%) create mode 100644 packages/moderation/src/data/messages/checklist/messages/re-review/ignored.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/re-review/ignored/warning.md rename packages/moderation/src/data/messages/{checklist-messages/reupload/custom_server/custom_server_overrides-prohibited.md => checklist/messages/reupload/custom-pack-prohibited.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/reupload/custom_server/custom_server_overrides-verification.md => checklist/messages/reupload/custom-pack-verification.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/reupload/custom_server/custom_server_overrides-verification-list.md => checklist/messages/reupload/custom-pack-verification/list.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/reupload/identity-verification/identity_verification-server.md => checklist/messages/reupload/identity-verification-server.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/reupload/identity-verification/identity_verification.md => checklist/messages/reupload/identity-verification.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/reupload/insufficient_fork.md => checklist/messages/reupload/insufficient-fork.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/reupload/custom_server/custom_server_permissions.md => checklist/messages/reupload/request-proof-server.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/reupload/proof_of_permissions.md => checklist/messages/reupload/request-proof.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages => checklist/messages}/reupload/reupload.md (100%) rename packages/moderation/src/data/messages/{checklist-messages/reupload/fork.md => checklist/messages/reupload/unclear-fork.md} (100%) create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/cheat-or-hack-advertising.md rename packages/moderation/src/data/messages/{checklist-messages/misc-metadata/excessive_languages-server.md => checklist/messages/rules/excessive-languages.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages => checklist/messages/rules}/paid-access-server.md (100%) create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/prohibited-content-header.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/prohibited-content/discriminatory.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/prohibited-content/false-endorsement.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/prohibited-content/harmful.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/prohibited-content/illegal-activity.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/prohibited-content/impersonation.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/prohibited-content/ip-infringement.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/prohibited-content/legal-rights.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/prohibited-content/misleading.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/prohibited-content/mojang-bypass.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/prohibited-content/objectionable.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/prohibited-content/profanity.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/prohibited-content/undisclosed-upload.md rename packages/moderation/src/data/messages/{checklist-messages/rule-breaking.md => checklist/messages/rules/rule-breaking-other.md} (100%) create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/server-side-opt-in-header.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/server-side-opt-in/aim-bot.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/server-side-opt-in/hiding-mods.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/server-side-opt-in/item-duplication.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/server-side-opt-in/movement.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/server-side-opt-in/pvp.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/server-side-opt-in/x-ray.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/rules/server-side-opt-out.md rename packages/moderation/src/data/messages/{checklist-messages/status-alerts/account_issues.md => checklist/messages/status-alerts/account-issues.md} (80%) rename packages/moderation/src/data/messages/{checklist-messages/status-alerts/fixed-approved.md => checklist/messages/status-alerts/corrections-applied-approved.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/status-alerts/fixed.md => checklist/messages/status-alerts/corrections-applied.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/status-alerts/demonetized => checklist/messages/status-alerts}/demonetized-modpack.md (100%) rename packages/moderation/src/data/messages/{checklist-messages/status-alerts/demonetized => checklist/messages/status-alerts}/demonetized.md (100%) rename packages/moderation/src/data/messages/{checklist-messages/status-alerts/private/private-server.md => checklist/messages/status-alerts/private-use-server.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/status-alerts/private/private.md => checklist/messages/status-alerts/private-use.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/status-alerts/serverpack.md => checklist/messages/status-alerts/server-use.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/status-alerts/tec/source_request-bins.md => checklist/messages/status-alerts/tec/source-request-bins.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/status-alerts/tec/source_request-obfs.md => checklist/messages/status-alerts/tec/source-request-obfs.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages => checklist/messages}/summary/formatting.md (100%) rename packages/moderation/src/data/messages/{checklist-messages => checklist/messages}/summary/insufficient.md (100%) rename packages/moderation/src/data/messages/{checklist-messages => checklist/messages}/summary/non-english.md (100%) rename packages/moderation/src/data/messages/{checklist-messages => checklist/messages}/summary/repeat-ip.md (100%) rename packages/moderation/src/data/messages/{checklist-messages => checklist/messages}/summary/repeat-title.md (100%) rename packages/moderation/src/data/messages/{checklist-messages/categories => checklist/messages/tags}/inaccurate.md (100%) rename packages/moderation/src/data/messages/{checklist-messages/categories/optimization_misused.md => checklist/messages/tags/optimization-misused.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/categories/resolutions_misused.md => checklist/messages/tags/resolutions-misused.md} (100%) create mode 100644 packages/moderation/src/data/messages/checklist/messages/title-slug/slug/correction.md create mode 100644 packages/moderation/src/data/messages/checklist/messages/title-slug/slug/misused.md rename packages/moderation/src/data/messages/{checklist-messages => checklist/messages/title-slug}/title/minecraft-branding.md (100%) rename packages/moderation/src/data/messages/{checklist-messages => checklist/messages/title-slug}/title/similarities.md (100%) rename packages/moderation/src/data/messages/{checklist-messages/title/similarities-fork.md => checklist/messages/title-slug/title/similarities/fork.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/title/similarities-modpack.md => checklist/messages/title-slug/title/similarities/modpack.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages => checklist/messages/title-slug}/title/useless-info.md (100%) rename packages/moderation/src/data/messages/{checklist-messages/undefined-project/no_versions.md => checklist/messages/undefined-project/no-versions.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/versions/alternate_versions-additional.md => checklist/messages/versions/alternate-versions/additional.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/versions/alternate_versions-mono.md => checklist/messages/versions/alternate-versions/mono.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/versions/alternate_versions-primary.md => checklist/messages/versions/alternate-versions/primary.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/versions/alternate_versions-server-additional.md => checklist/messages/versions/alternate-versions/server-additional.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/versions/alternate_versions-server.md => checklist/messages/versions/alternate-versions/server.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/versions/alternate_versions-zip.md => checklist/messages/versions/alternate-versions/zip.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/versions/broken_version.md => checklist/messages/versions/duplicate-primary-files.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/versions/incorrect_additional_files.md => checklist/messages/versions/incorrect-additional-files.md} (100%) create mode 100644 packages/moderation/src/data/messages/checklist/messages/versions/incorrect-loader.md rename packages/moderation/src/data/messages/{checklist-messages/versions/invalid-datapacks.md => checklist/messages/versions/incorrect-project-type/datapack.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/versions/invalid-modpacks.md => checklist/messages/versions/incorrect-project-type/modpack.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/versions/invalid-resourcepacks.md => checklist/messages/versions/incorrect-project-type/resourcepack.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/versions/redist_libs.md => checklist/messages/versions/redist-libs.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/versions/unsupported_project.md => checklist/messages/versions/unsupported.md} (100%) rename packages/moderation/src/data/messages/{checklist-messages/versions/vanilla_assets.md => checklist/messages/versions/vanilla-assets.md} (100%) delete mode 100644 packages/moderation/src/data/modpack-permissions-stage.ts create mode 100644 packages/moderation/src/data/priorities.ts delete mode 100644 packages/moderation/src/data/stages/categories.ts create mode 100644 packages/moderation/src/data/stages/categories.tsx delete mode 100644 packages/moderation/src/data/stages/description.ts create mode 100644 packages/moderation/src/data/stages/description.tsx delete mode 100644 packages/moderation/src/data/stages/environment/environment-multiple.ts delete mode 100644 packages/moderation/src/data/stages/environment/environment.ts delete mode 100644 packages/moderation/src/data/stages/gallery.ts create mode 100644 packages/moderation/src/data/stages/gallery.tsx delete mode 100644 packages/moderation/src/data/stages/license.ts create mode 100644 packages/moderation/src/data/stages/license.tsx delete mode 100644 packages/moderation/src/data/stages/links.ts create mode 100644 packages/moderation/src/data/stages/links.tsx create mode 100644 packages/moderation/src/data/stages/metadata.tsx create mode 100644 packages/moderation/src/data/stages/other-rules.tsx delete mode 100644 packages/moderation/src/data/stages/permissions.ts create mode 100644 packages/moderation/src/data/stages/permissions.tsx delete mode 100644 packages/moderation/src/data/stages/post-approval.ts create mode 100644 packages/moderation/src/data/stages/post-approval.tsx create mode 100644 packages/moderation/src/data/stages/re-review.tsx delete mode 100644 packages/moderation/src/data/stages/reupload.ts create mode 100644 packages/moderation/src/data/stages/reupload.tsx delete mode 100644 packages/moderation/src/data/stages/rule-following.ts delete mode 100644 packages/moderation/src/data/stages/status-alerts.ts create mode 100644 packages/moderation/src/data/stages/status-alerts.tsx delete mode 100644 packages/moderation/src/data/stages/summary.ts create mode 100644 packages/moderation/src/data/stages/summary.tsx delete mode 100644 packages/moderation/src/data/stages/title-slug.ts create mode 100644 packages/moderation/src/data/stages/title-slug.tsx delete mode 100644 packages/moderation/src/data/stages/undefined-project.ts create mode 100644 packages/moderation/src/data/stages/undefined-project.tsx delete mode 100644 packages/moderation/src/data/stages/versions.ts create mode 100644 packages/moderation/src/data/stages/versions.tsx create mode 100644 packages/moderation/src/types/node.ts create mode 100644 packages/moderation/src/types/priority.ts create mode 100644 packages/ui/src/components/base/Alert.vue diff --git a/.github/workflows/frontend-preview.yml b/.github/workflows/frontend-preview.yml index 0c9d5f2d2..4bf94d4f0 100644 --- a/.github/workflows/frontend-preview.yml +++ b/.github/workflows/frontend-preview.yml @@ -87,7 +87,11 @@ jobs: command: versions upload --preview-alias git-${{ steps.meta.outputs.sha_short }} comment: - if: github.repository_owner == 'modrinth' && github.event.pull_request.head.repo.full_name == github.repository + if: | + !cancelled() + && github.repository_owner == 'modrinth' + && github.event.pull_request.head.repo.full_name == github.repository + && needs.deploy.result == 'success' runs-on: ubuntu-latest needs: [deploy, deploy-storybook] steps: @@ -101,16 +105,25 @@ jobs: id: urls env: HEAD_SHA: ${{ github.event.pull_request.head.sha }} + STORYBOOK_RESULT: ${{ needs.deploy-storybook.result }} + RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} run: | STAGING_PREVIEW_URL=$(cat deployment-url-staging-preview.txt) PRODUCTION_PREVIEW_URL=$(cat deployment-url-production-preview.txt) + if [ "$STORYBOOK_RESULT" = "success" ]; then + STORYBOOK_PREVIEW_URL="https://git-${HEAD_SHA::8}-storybook.modrinth.workers.dev" + else + STORYBOOK_PREVIEW_URL="⚠️ Deployment $STORYBOOK_RESULT ([logs]($RUN_URL))" + fi + echo "Production preview URL: $PRODUCTION_PREVIEW_URL" echo "Staging preview URL: $STAGING_PREVIEW_URL" + echo "Storybook preview URL: $STORYBOOK_PREVIEW_URL" echo "staging-preview-url=$STAGING_PREVIEW_URL" >> $GITHUB_OUTPUT echo "production-preview-url=$PRODUCTION_PREVIEW_URL" >> $GITHUB_OUTPUT - echo "storybook-preview-url=https://git-${HEAD_SHA::8}-storybook.modrinth.workers.dev" >> $GITHUB_OUTPUT + echo "storybook-preview-url=$STORYBOOK_PREVIEW_URL" >> $GITHUB_OUTPUT - name: Find comment if: github.event_name == 'pull_request' diff --git a/_typos.toml b/_typos.toml index 10e569e22..74efbceb9 100644 --- a/_typos.toml +++ b/_typos.toml @@ -8,6 +8,7 @@ extend-exclude = [ "packages/blog/", # contains licenses like `CC-BY-ND-4.0` "packages/moderation/src/data/stages/license.ts", + "packages/moderation/src/utils.ts", # contains payment card IDs like `IY1VMST1MOXS` which are flagged "apps/labrinth/src/queue/payouts/mod.rs", # contains domain names with deliberate typos diff --git a/apps/frontend/src/components/ui/moderation/checklist/ModerationChecklist.vue b/apps/frontend/src/components/ui/moderation/checklist/ModerationChecklist.vue index 015ac19c7..21acd31a1 100644 --- a/apps/frontend/src/components/ui/moderation/checklist/ModerationChecklist.vue +++ b/apps/frontend/src/components/ui/moderation/checklist/ModerationChecklist.vue @@ -1,7 +1,7 @@