diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..6e4c9e5 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# EditorConfig helps maintain consistent coding styles +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +indent_style = space +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..1c5c0fb --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,12 @@ +// Root ESLint config for monorepo +/** @type {import('eslint').Linter.Config} */ +module.exports = { + root: true, + env: { es2022: true, node: true, browser: true }, + extends: ['eslint:recommended', 'prettier'], + parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, + ignorePatterns: ['node_modules/', 'dist/', 'build/', '.svelte-kit/', 'coverage/'], + overrides: [ + { files: ['**/*.cjs'], parserOptions: { sourceType: 'script' } }, + ], +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5737097 --- /dev/null +++ b/.gitignore @@ -0,0 +1,45 @@ +# Node & package managers +node_modules/ +.npm/ +.pnpm-store/ +.npmrc.local + +# Logs & caches +*.log +pnpm-debug.log* +.npm-debug.log* +.yarn-debug.log* +.yarn-error.log* +.eslintcache +.cache/ + +# Build & dist +build/ +dist/ +coverage/ + +# SvelteKit / Vite +.svelte-kit/ +.vite/ + +# Test artifacts (Vitest/Playwright) +playwright-report/ +blob-report/ +test-results/ +coverage/ + +# Nix & direnv +result +.direnv/ +.devenv/ + +# OS/editor +.DS_Store +Thumbs.db +.vscode/ +.idea/ + +# Misc +*.local +*.swp +*.swo diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..0fca347 --- /dev/null +++ b/.npmrc @@ -0,0 +1,5 @@ +shamefully-hoist=false +prefer-workspace-packages=true +workspace-concurrency=3 +auto-install-peers=true +fund=false diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..67d2b32 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,6 @@ +node_modules +pnpm-lock.yaml +coverage +build +dist +.svelte-kit diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..fe25ad3 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,9 @@ +{ + "printWidth": 100, + "singleQuote": true, + "semi": true, + "trailingComma": "es5", + "arrowParens": "avoid", + "tabWidth": 2, + "useTabs": false +} diff --git a/package.json b/package.json index aacc258..89743a7 100644 --- a/package.json +++ b/package.json @@ -9,5 +9,13 @@ "lint": "pnpm -r --if-present lint", "typecheck": "pnpm -r --if-present typecheck || pnpm -r --if-present check", "format": "pnpm -r --if-present format" - } + }, + "devDependencies": { + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "prettier": "^3.3.3", + "typescript": "^5.5.4", + "svelte-check": "^3.8.5" + }, + "packageManager": "pnpm@9.0.0" } diff --git a/specs/001-glowtrack-a-mood/tasks.md b/specs/001-glowtrack-a-mood/tasks.md index 5df497f..24a63e2 100644 --- a/specs/001-glowtrack-a-mood/tasks.md +++ b/specs/001-glowtrack-a-mood/tasks.md @@ -37,7 +37,7 @@ Paths below are absolute to this repo. - Create /home/jawz/Development/Projects/GlowTrack/pnpm-workspace.yaml listing apps/* and packages/* - Dependencies: T001 -- [ ] T004 Configure linting, formatting, types +- [X] T004 Configure linting, formatting, types - Root: .editorconfig, .eslintrc.cjs, .prettierrc, .prettierignore, .npmrc (pnpm settings) - Add dev deps: eslint, eslint-config-prettier, prettier, typescript, svelte-check - Dependencies: T003