You've already forked AstralRinth
forked from didirus/AstralRinth
Monorepo missing features (#1273)
* fix tauri config * fix package patch * regen pnpm lock * use new workflow * New GH actions * Update lockfile * update scripts * Fix build script * Fix missing deps * Fix assets eslint * Update libraries lint * Fix all lint configs * update lockfile * add fmt + clippy fails * Separate App Tauri portion * fix app features * Fix lints * install tauri cli * update lockfile * corepack, fix lints * add store path * fix unused import * Fix tests * Issue templates + port over tauri release * fix actions * fix before build command * Add X86 target * Update build matrix * finalize actions * make debug build smaller * Use debug build to make cache smaller * dummy commit * change proj name * update file name * Use release builds for less space use * Remove rust cache * Readd for app build * add merge queue trigger
This commit is contained in:
@@ -1,3 +0,0 @@
|
||||
BASE_URL=https://api.modrinth.com/v2/
|
||||
BROWSER_BASE_URL=https://api.modrinth.com/v2/
|
||||
PYRO_BASE_URL=https://39d5-144-172-172-236.ngrok-free.app/
|
||||
4
apps/frontend/.eslintrc.cjs
Normal file
4
apps/frontend/.eslintrc.cjs
Normal file
@@ -0,0 +1,4 @@
|
||||
module.exports = {
|
||||
root: true,
|
||||
extends: ["custom/nuxt"],
|
||||
};
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"extends": ["@nuxt/eslint-config", "plugin:prettier/recommended", "prettier"],
|
||||
"env": {
|
||||
"browser": true,
|
||||
"node": true
|
||||
},
|
||||
"ignorePatterns": [".nuxt/**", ".output/**", "node_modules"],
|
||||
"overrides": [
|
||||
{
|
||||
"files": ["*.ts", "*.tsx", "*.js", "*.jsx", "*.vue"],
|
||||
"rules": {
|
||||
"no-console": "off",
|
||||
"vue/no-v-html": "off",
|
||||
"vue/multi-word-component-names": "off"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
**/.nuxt
|
||||
**/dist
|
||||
**/node_modules
|
||||
**/.output
|
||||
src/generated/**
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-extra-semi */
|
||||
import { promises as fs } from "fs";
|
||||
import { pathToFileURL } from "node:url";
|
||||
import svgLoader from "vite-svg-loader";
|
||||
@@ -374,9 +373,6 @@ export default defineNuxtConfig({
|
||||
},
|
||||
nitro: {
|
||||
moduleSideEffects: ["@vintl/compact-number/locale-data"],
|
||||
output: {
|
||||
dir: "../../dist/apps/knossos/.output",
|
||||
},
|
||||
},
|
||||
devtools: {
|
||||
enabled: true,
|
||||
|
||||
@@ -8,40 +8,26 @@
|
||||
"generate": "nuxi generate",
|
||||
"preview": "nuxi preview",
|
||||
"postinstall": "nuxi prepare",
|
||||
"lint:js": "eslint ./src --ext .js,.vue,.ts",
|
||||
"lint": "npm run lint:js && prettier --check .",
|
||||
"lint": "eslint . && prettier --check .",
|
||||
"fix": "eslint . --fix && prettier --write .",
|
||||
"intl:extract": "formatjs extract \"{,components,composables,layouts,middleware,modules,pages,plugins,utils}/**/*.{vue,ts,tsx,js,jsx,mts,cts,mjs,cjs}\" --ignore '**/*.d.ts' --ignore 'node_modules' --out-file locales/en-US/index.json --format crowdin --preserve-whitespace"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@formatjs/cli": "^6.1.2",
|
||||
"eslint": "^8.57.0",
|
||||
"@nuxt/devtools": "^1.3.3",
|
||||
"@nuxt/eslint-config": "^0.3.13",
|
||||
"@nuxtjs/eslint-config-typescript": "^12.1.0",
|
||||
"@nuxtjs/turnstile": "^0.8.0",
|
||||
"@types/node": "^20.1.0",
|
||||
"@typescript-eslint/eslint-plugin": "^7.15.0",
|
||||
"@typescript-eslint/parser": "^7.15.0",
|
||||
"@vintl/compact-number": "^2.0.5",
|
||||
"@vintl/how-ago": "^3.0.1",
|
||||
"@vintl/nuxt": "^1.8.0",
|
||||
"autoprefixer": "^10.4.19",
|
||||
"eslint": "^8.41.0",
|
||||
"eslint-config-custom": "workspace:*",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-import-resolver-typescript": "^3.5.5",
|
||||
"eslint-plugin-import": "^2.27.5",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"eslint-plugin-vue": "^9.27.0",
|
||||
"glob": "^10.2.7",
|
||||
"nuxt": "^3.12.3",
|
||||
"postcss": "^8.4.39",
|
||||
"prettier": "^3.3.2",
|
||||
"prettier-plugin-tailwindcss": "^0.6.5",
|
||||
"sass": "^1.58.0",
|
||||
"tailwindcss": "^3.4.4",
|
||||
"typescript": "^5.4.5",
|
||||
"vite-plugin-eslint": "^1.8.1",
|
||||
"vite-svg-loader": "^5.1.0",
|
||||
"vue-tsc": "^2.0.24"
|
||||
},
|
||||
@@ -66,10 +52,5 @@
|
||||
"vue-multiselect": "3.0.0-alpha.2",
|
||||
"vue3-apexcharts": "^1.5.2",
|
||||
"xss": "^1.0.14"
|
||||
},
|
||||
"pnpm": {
|
||||
"patchedDependencies": {
|
||||
"readable-stream@2.3.8": "patches/readable-stream@2.3.8.patch"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<span :class="'badge flex items-center gap-2 ' + color + ' type--' + type">
|
||||
<span :class="'badge flex items-center gap-1 ' + color + ' type--' + type">
|
||||
<template v-if="color"> <span class="circle" /> {{ $capitalizeString(type) }}</template>
|
||||
|
||||
<!-- User roles -->
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-undef */
|
||||
export const useAuth = async (oldToken = null) => {
|
||||
const auth = useState("auth", () => ({
|
||||
user: null,
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars */
|
||||
export const scopeMessages = defineMessages({
|
||||
userReadEmailLabel: {
|
||||
id: "scopes.userReadEmail.label",
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-undef */
|
||||
export const useCosmetics = () =>
|
||||
useState("cosmetics", () => {
|
||||
const cosmetics = useCookie("cosmetics", {
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
/* eslint-disable no-undef */
|
||||
import dayjs from "dayjs";
|
||||
import relativeTime from "dayjs/plugin/relativeTime";
|
||||
|
||||
dayjs.extend(relativeTime);
|
||||
dayjs.extend(relativeTime); // eslint-disable-line import/no-named-as-default-member
|
||||
|
||||
export const useCurrentDate = () => useState("currentDate", () => Date.now());
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-undef */
|
||||
export const useBaseFetch = async (url, options = {}, skipAuth = false) => {
|
||||
const config = useRuntimeConfig();
|
||||
let base = process.server ? config.apiBaseUrl : config.public.apiBaseUrl;
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-undef */
|
||||
export const useLoading = () => useState("loading", () => false);
|
||||
|
||||
export const startLoading = () => {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-undef */
|
||||
export const useNotifications = () => useState("notifications", () => []);
|
||||
|
||||
export const addNotification = (notification) => {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-undef */
|
||||
/**
|
||||
* Extracts the [id] from the route params and returns it as a ref.
|
||||
*
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-undef */
|
||||
import tags from "~/generated/state.json";
|
||||
|
||||
export const useTags = () =>
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-undef */
|
||||
export const useTheme = () =>
|
||||
useState("theme", () => {
|
||||
const colorMode = useCookie("color-mode", {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-undef */
|
||||
export const useUser = async (force = false) => {
|
||||
const user = useState("user", () => {});
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ export const inferVersionInfo = async function (rawFile, project, gameVersions)
|
||||
const inferFunctions = {
|
||||
// Forge 1.13+ and NeoForge
|
||||
"META-INF/mods.toml": async (file, zip) => {
|
||||
const metadata = TOML.parse(file, { joiner: "\n" });
|
||||
const metadata = TOML.parse(file, { joiner: "\n" }); // eslint-disable-line import/no-named-as-default-member
|
||||
|
||||
if (metadata.mods && metadata.mods.length > 0) {
|
||||
let versionNum = metadata.mods[0].version;
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-undef */
|
||||
import { useNuxtApp } from "#imports";
|
||||
|
||||
async function getBulk(type, ids, apiVersion = 2) {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-undef */
|
||||
import JSZip from "jszip";
|
||||
import TOML from "@ltd/j-toml";
|
||||
|
||||
@@ -132,7 +131,7 @@ export const createDataPackVersion = async function (
|
||||
primaryZipReader.file("quilt.mod.json", JSON.stringify(quiltModJson));
|
||||
}
|
||||
if (loaders.includes("forge")) {
|
||||
primaryZipReader.file("META-INF/mods.toml", TOML.stringify(forgeModsToml, { newline: "\n" }));
|
||||
primaryZipReader.file("META-INF/mods.toml", TOML.stringify(forgeModsToml, { newline: "\n" })); // eslint-disable-line import/no-named-as-default-member
|
||||
}
|
||||
|
||||
if (!newForge && loaders.includes("forge")) {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-undef */
|
||||
export const getProjectTypeForUrl = (type, categories) => {
|
||||
return getProjectTypeForUrlShorthand(type, categories);
|
||||
};
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-undef */
|
||||
export const acceptTeamInvite = async (teamId) => {
|
||||
await useBaseFetch(`team/${teamId}/join`, {
|
||||
apiVersion: 3,
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-undef */
|
||||
const whitelistedParams = ["flow", "error"];
|
||||
|
||||
export default defineNuxtRouteMiddleware(async (_to, from) => {
|
||||
|
||||
@@ -94,10 +94,9 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { DropdownSelect } from "@modrinth/ui";
|
||||
import { XIcon, PayPalIcon, UnknownIcon } from "@modrinth/assets";
|
||||
import { capitalizeString } from "@modrinth/utils";
|
||||
import { Badge, Breadcrumbs } from "@modrinth/ui";
|
||||
import { Badge, Breadcrumbs, DropdownSelect } from "@modrinth/ui";
|
||||
import dayjs from "dayjs";
|
||||
import TremendousIcon from "~/assets/images/external/tremendous.svg?component";
|
||||
import VenmoIcon from "~/assets/images/external/venmo-small.svg?component";
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-undef */
|
||||
export default defineNuxtPlugin(async (nuxtApp) => {
|
||||
await useAuth();
|
||||
await useUser();
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import dayjs from "dayjs";
|
||||
|
||||
// eslint-disable-next-line no-undef
|
||||
export default defineNuxtPlugin(() => {
|
||||
return {
|
||||
provide: {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-undef */
|
||||
export default defineNuxtPlugin(() => {
|
||||
const nuxtApp = useNuxtApp();
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable no-undef */
|
||||
import { getProjectTypeForUrlShorthand } from "~/helpers/projects.js";
|
||||
|
||||
export default defineNuxtPlugin((nuxtApp) => {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import FloatingVue from "floating-vue";
|
||||
import "floating-vue/dist/style.css";
|
||||
|
||||
// eslint-disable-next-line no-undef
|
||||
export default defineNuxtPlugin(({ vueApp }) => {
|
||||
vueApp.use(FloatingVue);
|
||||
});
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
// eslint-disable-next-line no-undef
|
||||
export default defineNitroPlugin((nitroApp) => {
|
||||
nitroApp.hooks.hook("render:html", (html, { event }) => {
|
||||
try {
|
||||
// eslint-disable-next-line no-undef
|
||||
const cookies = parseCookies(event);
|
||||
|
||||
if (cookies && cookies["color-mode"]) {
|
||||
@@ -24,15 +22,12 @@ export default defineNitroPlugin((nitroApp) => {
|
||||
};
|
||||
|
||||
if (cookies["auth-token"]) {
|
||||
// eslint-disable-next-line no-undef
|
||||
setCookie(event, "auth-token", cookies["auth-token"], opts);
|
||||
}
|
||||
if (cookies["color-mode"]) {
|
||||
// eslint-disable-next-line no-undef
|
||||
setCookie(event, "color-mode", cookies["color-mode"], opts);
|
||||
}
|
||||
if (cookies.cosmetics) {
|
||||
// eslint-disable-next-line no-undef
|
||||
setCookie(event, "cosmetics", cookies.cosmetics, opts);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,11 +5,10 @@ import { ref, watch, computed } from "vue";
|
||||
// note: build step can miss unix import for some reason, so
|
||||
// we have to import it like this
|
||||
|
||||
const { unix } = dayjs;
|
||||
const { unix } = dayjs; // eslint-disable-line import/no-named-as-default-member
|
||||
|
||||
export function useCountryNames(style = "long") {
|
||||
const formattingOptions = { type: "region", style };
|
||||
// eslint-disable-next-line no-undef
|
||||
const { formats } = useVIntl();
|
||||
return function formatCountryName(code) {
|
||||
return formats.displayName(code, formattingOptions);
|
||||
@@ -220,7 +219,6 @@ export const processAnalytics = (category, projects, labelFn, sortFn, mapFn, cha
|
||||
},
|
||||
],
|
||||
colors: projectData.map((_, i) => {
|
||||
// eslint-disable-next-line no-undef
|
||||
const theme = useTheme();
|
||||
const project = chartData[i];
|
||||
|
||||
@@ -279,7 +277,6 @@ export const processAnalyticsByCountry = (category, projects, sortFn) => {
|
||||
};
|
||||
};
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
const sortCount = ([_a, a], [_b, b]) => b - a;
|
||||
const sortTimestamp = ([a], [b]) => a - b;
|
||||
const roundValue = ([ts, value]) => [ts, Math.round(parseFloat(value) * 100) / 100];
|
||||
@@ -296,7 +293,6 @@ const useFetchAnalytics = (
|
||||
apiVersion: 3,
|
||||
},
|
||||
) => {
|
||||
// eslint-disable-next-line no-undef
|
||||
return useBaseFetch(url, baseOptions);
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user