Compare commits

...

3 Commits

14 changed files with 5257 additions and 4342 deletions

View File

@ -1,7 +1,9 @@
;;; Directory Local Variables -*- no-byte-compile: t -*-
;;; For more information see (info "(emacs) Directory Variables")
((less-css-mode . ((css-indent-offset . 2)))
((js-json-mode . ((js-indent-level . 2)
(tab-width . 2)))
(less-css-mode . ((css-indent-offset . 2)))
(typescript-mode . ((typescript-indent-level . 2)))
(web-mode . ((web-mode-code-indent-offset . 2)
(web-mode-attr-indent-offset . 2)

2
.envrc Normal file
View File

@ -0,0 +1,2 @@
use flake
dotenv

2
.gitignore vendored
View File

@ -30,3 +30,5 @@ coverage
*.tsbuildinfo
*.production
/.yarn/
/.env
/.direnv/

View File

@ -1,13 +0,0 @@
{
"$schema": "https://json.schemastore.org/prettierrc",
"semi": true,
"tabWidth": 2,
"useTabs": false,
"singleQuote": true,
"quoteProps": "as-needed",
"printWidth": 100,
"trailingComma": "es5",
"bracketSpacing": true,
"bracketSameLine": true,
"arrowParens": "always"
}

9
.prettierrc.toml Normal file
View File

@ -0,0 +1,9 @@
semi = true
tabWidth = 2
useTabs = false
singleQuote = true
printWidth = 100
trailingComma = "es5"
bracketSpacing = true
bracketSameLine = true
endOfLine = "lf"

View File

@ -1,3 +0,0 @@
enableMessageNames: false
nodeLinker: node-modules

61
flake.lock Normal file
View File

@ -0,0 +1,61 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1722813957,
"narHash": "sha256-IAoYyYnED7P8zrBFMnmp7ydaJfwTnwcnqxUElC1I26Y=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "cb9a96f23c491c081b38eab96d22fa958043c9fa",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

21
flake.nix Normal file
View File

@ -0,0 +1,21 @@
{
description = "Frontend for GéJDR";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils, ... }:
flake-utils.lib.eachSystem ["x86_64-linux" "x86_64-darwin"] (system:
let
pkgs = import nixpkgs { inherit system; };
in {
devShell = with pkgs; mkShell {
buildInputs = [
nodejs_20
nodePackages."@volar/vue-language-server" # LSP server
];
};
});
}

5107
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -7,13 +7,13 @@
"dev": "vite",
"build": "run-p type-check \"build-only {@}\" --",
"preview": "vite preview",
"test:unit": "vitest",
"test:unit": "vitest -c vitest.config.ci.ts",
"test:unit:local": "vitest -c vitest.config.local.ts --ui",
"build-only": "vite build",
"type-check": "vue-tsc --build --force",
"lint": "yarn lint:eslint && yarn lint:oxlint",
"lint:eslint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
"lint:oxlint": "oxlint -D perf",
"format": "prettier --write src/"
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
"format": "prettier --write src/",
"format-check": "prettier --check src/"
},
"dependencies": {
"@fontsource/poppins": "^5.0.8",
@ -23,29 +23,28 @@
"pinia": "^2.1.7",
"pocketbase": "^0.21.1",
"rxjs": "^7.8.1",
"vue": "^3.4.19",
"vue-router": "^4.2.5"
"vue": "^3.4.29",
"vue-router": "^4.3.3"
},
"devDependencies": {
"@rushstack/eslint-patch": "^1.7.2",
"@tsconfig/node20": "^20.1.2",
"@types/jsdom": "^21.1.6",
"@types/node": "^20.11.17",
"@vitejs/plugin-vue": "^5.0.4",
"@rushstack/eslint-patch": "^1.8.0",
"@tsconfig/node20": "^20.1.4",
"@types/jsdom": "^21.1.7",
"@types/node": "^20.14.5",
"@vitejs/plugin-vue": "^5.0.5",
"@vitest/ui": "^1.6.0",
"@vue/eslint-config-prettier": "^9.0.0",
"@vue/eslint-config-typescript": "^12.0.0",
"@vue/test-utils": "^2.4.4",
"@vue/eslint-config-typescript": "^13.0.0",
"@vue/test-utils": "^2.4.6",
"@vue/tsconfig": "^0.5.1",
"eslint": "^8.56.0",
"eslint-plugin-vue": "^9.21.1",
"jsdom": "^24.0.0",
"npm-run-all2": "^6.1.2",
"oxlint": "^0.2.8",
"eslint": "^8.57.0",
"eslint-plugin-vue": "^9.23.1",
"jsdom": "^24.1.0",
"npm-run-all2": "^6.2.0",
"prettier": "^3.2.5",
"typescript": "~5.3.3",
"vite": "^5.1.1",
"vitest": "^1.2.2",
"vue-tsc": "^1.8.27"
},
"packageManager": "yarn@4.1.0"
"typescript": "~5.4.0",
"vite": "^5.3.1",
"vitest": "^1.6.0",
"vue-tsc": "^2.0.21"
}
}

14
vitest.config.ci.ts Normal file
View File

@ -0,0 +1,14 @@
import { fileURLToPath } from 'node:url';
import { mergeConfig, defineConfig, configDefaults } from 'vitest/config';
import viteConfig from './vite.config';
export default mergeConfig(
viteConfig,
defineConfig({
test: {
environment: 'jsdom',
exclude: [...configDefaults.exclude, 'e2e/**'],
root: fileURLToPath(new URL('./', import.meta.url)),
},
})
);

14
vitest.config.local.ts Normal file
View File

@ -0,0 +1,14 @@
import { fileURLToPath } from 'node:url';
import { mergeConfig, defineConfig, configDefaults } from 'vitest/config';
import viteConfig from './vite.config';
export default mergeConfig(
viteConfig,
defineConfig({
test: {
environment: 'jsdom',
exclude: [...configDefaults.exclude, 'e2e/**'],
root: fileURLToPath(new URL('./', import.meta.url)),
},
})
);

View File

@ -1,14 +0,0 @@
import { fileURLToPath } from 'node:url'
import { mergeConfig, defineConfig, configDefaults } from 'vitest/config'
import viteConfig from './vite.config'
export default mergeConfig(
viteConfig,
defineConfig({
test: {
environment: 'jsdom',
exclude: [...configDefaults.exclude, 'e2e/*'],
root: fileURLToPath(new URL('./', import.meta.url))
}
})
)

4286
yarn.lock

File diff suppressed because it is too large Load Diff