Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .babelrc

This file was deleted.

2 changes: 0 additions & 2 deletions .eslintrc.cjs

This file was deleted.

24 changes: 0 additions & 24 deletions .eslintrc.esm.mjs

This file was deleted.

30 changes: 30 additions & 0 deletions .github/actions/setup-node-pnpm/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: "Setup Node.js and pnpm"
description: "Setup Node.js and pnpm with caching"
inputs:
node-version:
description: "Node.js version to use"
required: false
default: "22.18.0"
pnpm-version:
description: "pnpm version to use"
required: false
default: "10.14.0"

runs:
using: "composite"
steps:
- name: Setup PNPM
uses: pnpm/action-setup@v4
with:
version: ${{ inputs.pnpm-version }}
run_install: false

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}
cache: "pnpm"

- name: Install dependencies
shell: bash
run: pnpm install --frozen-lockfile
34 changes: 0 additions & 34 deletions .github/workflows/build.yml

This file was deleted.

40 changes: 40 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: CI

on:
push:
branches: [main]
pull_request:
branches: [main]

env:
NODE_OPTIONS: --max_old_space_size=4096

jobs:
build-and-test:
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Node.js and pnpm
uses: ./.github/actions/setup-node-pnpm

- name: Build application
run: pnpm run build

- name: Run checks
run: pnpm check:ci

- name: Install Playwright Chromium
run: pnpm run test:e2e:install

- name: Run Playwright tests
run: pnpm run test:e2e

- name: Upload test results
uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30
16 changes: 0 additions & 16 deletions .github/workflows/e2e.yml

This file was deleted.

36 changes: 36 additions & 0 deletions .github/workflows/setup-node-pnpm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Setup Node.js and pnpm

on:
workflow_call:
inputs:
node-version:
description: "Node.js version to use"
required: false
type: string
default: "22.18.0"
pnpm-version:
description: "pnpm version to use"
required: false
type: string
default: "10.14.0"

jobs:
setup:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup PNPM
uses: pnpm/action-setup@v4
with:
version: ${{ inputs.pnpm-version }}
run_install: false

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}
cache: "pnpm"

- name: Install dependencies
run: pnpm install --frozen-lockfile
18 changes: 16 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
test-results
# Logs
logs
*.log
Expand All @@ -7,13 +8,21 @@ yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

# Package manager files
package-lock.json
yarn.lock
.npm
.yarn

node_modules
dist
dist-ssr
*.local

# Prettier cache
.cache

# Lint
.eslintcache

# Editor directories and files
.vscode/*
Expand All @@ -30,4 +39,9 @@ src/generatedContent

archive

vite.config.js.timestamp*
vite.config.js.timestamp*

playwright-report
test-results

public/_redirects
1 change: 0 additions & 1 deletion .husky/pre-commit

This file was deleted.

1 change: 0 additions & 1 deletion .nvmrc

This file was deleted.

156 changes: 156 additions & 0 deletions .oxlintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"plugins": ["typescript", "unicorn"],
"categories": {
"correctness": "off"
},
"env": {
"builtin": true,
"browser": true,
"commonjs": true,
"node": true,
"shared-node-browser": true
},
"ignorePatterns": [
"**/logs",
"**/*.log",
"**/npm-debug.log*",
"**/yarn-debug.log*",
"**/yarn-error.log*",
"**/pnpm-debug.log*",
"**/lerna-debug.log*",
"**/node_modules",
"**/dist",
"**/dist-ssr",
"**/*.local",
".vscode/*",
"!.vscode/extensions.json",
"**/.idea",
"**/.DS_Store",
"**/*.suo",
"**/*.ntvs*",
"**/*.njsproj",
"**/*.sln",
"**/*.sw?",
"src/generatedContent",
"**/archive",
"**/vite.config.js.timestamp*",
"content/**"
],
"rules": {
"for-direction": "error",
"no-async-promise-executor": "error",
"no-case-declarations": "error",
"no-class-assign": "error",
"no-compare-neg-zero": "error",
"no-cond-assign": "error",
"no-const-assign": "error",
"no-constant-binary-expression": "error",
"no-constant-condition": "error",
"no-control-regex": "error",
"no-debugger": "error",
"no-delete-var": "error",
"no-dupe-class-members": "error",
"no-dupe-else-if": "error",
"no-dupe-keys": "error",
"no-duplicate-case": "error",
"no-empty": "error",
"no-empty-character-class": "error",
"no-empty-pattern": "error",
"no-empty-static-block": "error",
"no-ex-assign": "error",
"no-extra-boolean-cast": "error",
"no-fallthrough": "error",
"no-func-assign": "error",
"no-global-assign": "error",
"no-import-assign": "error",
"no-invalid-regexp": "error",
"no-irregular-whitespace": "error",
"no-loss-of-precision": "error",
"no-new-native-nonconstructor": "error",
"no-nonoctal-decimal-escape": "error",
"no-obj-calls": "error",
"no-prototype-builtins": "error",
"no-redeclare": "error",
"no-regex-spaces": "error",
"no-self-assign": "error",
"no-setter-return": "error",
"no-shadow-restricted-names": "error",
"no-sparse-arrays": "error",
"no-this-before-super": "error",
"no-unexpected-multiline": "off",
"no-unsafe-finally": "error",
"no-unsafe-negation": "error",
"no-unsafe-optional-chaining": "error",
"no-unused-labels": "error",
"no-unused-private-class-members": "error",
"no-unused-vars": "error",
"no-useless-backreference": "error",
"no-useless-catch": "error",
"no-useless-escape": "error",
"no-with": "error",
"require-yield": "error",
"use-isnan": "error",
"valid-typeof": "error",
"@typescript-eslint/ban-ts-comment": "error",
"no-array-constructor": "error",
"@typescript-eslint/no-duplicate-enum-values": "error",
"@typescript-eslint/no-empty-object-type": "error",
"@typescript-eslint/no-explicit-any": "error",
"@typescript-eslint/no-extra-non-null-assertion": "error",
"@typescript-eslint/no-misused-new": "error",
"@typescript-eslint/no-namespace": "error",
"@typescript-eslint/no-non-null-asserted-optional-chain": "error",
"@typescript-eslint/no-require-imports": "error",
"@typescript-eslint/no-this-alias": "error",
"@typescript-eslint/no-unnecessary-type-constraint": "error",
"@typescript-eslint/no-unsafe-declaration-merging": "error",
"@typescript-eslint/no-unsafe-function-type": "error",
"no-unused-expressions": "error",
"@typescript-eslint/no-wrapper-object-types": "error",
"@typescript-eslint/prefer-as-const": "error",
"@typescript-eslint/prefer-namespace-keyword": "error",
"@typescript-eslint/triple-slash-reference": "error",
"curly": "off",
"unicorn/empty-brace-spaces": "off",
"unicorn/no-nested-ternary": "off",
"unicorn/number-literal-case": "off"
},
"overrides": [
{
"files": ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts"],
"rules": {
"no-class-assign": "off",
"no-const-assign": "off",
"no-dupe-class-members": "off",
"no-dupe-keys": "off",
"no-func-assign": "off",
"no-import-assign": "off",
"no-new-native-nonconstructor": "off",
"no-obj-calls": "off",
"no-redeclare": "off",
"no-setter-return": "off",
"no-this-before-super": "off",
"no-unsafe-negation": "off",
"no-var": "error",
"no-with": "off",
"prefer-rest-params": "error",
"prefer-spread": "error"
}
},
{
"files": ["*.svelte", "**/*.svelte"],
"rules": {
"no-inner-declarations": "off",
"no-self-assign": "off"
}
},
{
"files": ["*.svelte", "**/*.svelte"],
"rules": {
"no-inner-declarations": "off",
"no-self-assign": "off"
}
}
]
}
Loading