diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml
new file mode 100644
index 0000000..2ee41cb
--- /dev/null
+++ b/.gitea/workflows/ci.yml
@@ -0,0 +1,96 @@
+name: CI
+
+on:
+ push:
+ branches: [main, master]
+ pull_request:
+ branches: [main, master]
+
+env:
+ GITEA_URL: https://git.example.com
+
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+ container:
+ image: gitea-job-image
+ steps:
+ - name: Clone repo
+ run: |
+ rm -rf $GITHUB_WORKSPACE/*
+ git clone --depth 1 $GITEA_URL/$GITHUB_REPOSITORY $GITHUB_WORKSPACE
+ git -C $GITHUB_WORKSPACE checkout $GITHUB_SHA 2>/dev/null || true
+
+ - name: Run npm lint (JS/TS)
+ if: always()
+ run: |
+ if [[ -f package.json ]]; then
+ npm ci
+ npm run lint --if-present || true
+ else
+ echo "No Node.js project detected, skipping npm lint"
+ fi
+
+ test:
+ runs-on: ubuntu-latest
+ container:
+ image: gitea-job-image
+ steps:
+ - name: Clone repo
+ run: |
+ rm -rf $GITHUB_WORKSPACE/*
+ git clone --depth 1 $GITEA_URL/$GITHUB_REPOSITORY $GITHUB_WORKSPACE
+ git -C $GITHUB_WORKSPACE checkout $GITHUB_SHA 2>/dev/null || true
+
+ - name: Install dependencies
+ run: npm ci
+
+ - name: Run tests with coverage
+ run: npm test
+
+ docker-build:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Clone repo
+ run: |
+ rm -rf $GITHUB_WORKSPACE/*
+ git clone --depth 1 $GITEA_URL/$GITHUB_REPOSITORY $GITHUB_WORKSPACE
+ git -C $GITHUB_WORKSPACE checkout $GITHUB_SHA 2>/dev/null || true
+
+ - name: Build Docker image
+ if: always()
+ run: |
+ if [[ -f Dockerfile ]]; then
+ docker build -t $GITHUB_REPOSITORY:test .
+ else
+ echo "No Dockerfile found, skipping docker build"
+ fi
+
+ security:
+ runs-on: ubuntu-latest
+ container:
+ image: gitea-job-image
+ steps:
+ - name: Clone repo
+ run: |
+ rm -rf $GITHUB_WORKSPACE/*
+ git clone --depth 1 $GITEA_URL/$GITHUB_REPOSITORY $GITHUB_WORKSPACE
+ git -C $GITHUB_WORKSPACE checkout $GITHUB_SHA 2>/dev/null || true
+
+ - name: Run npm audit (JS/TS)
+ if: always()
+ run: |
+ if [[ -f package.json ]]; then
+ npm ci
+ npm audit --audit-level=high 2>/dev/null || echo "npm audit: vulnerabilities found (non-blocking)"
+ else
+ echo "No Node.js project detected, skipping npm audit"
+ fi
+
+ build-result:
+ needs: [lint, test, docker-build, security]
+ runs-on: ubuntu-latest
+ if: always()
+ steps:
+ - name: Summary
+ run: echo "All CI checks completed"
diff --git a/.gitignore b/.gitignore
index 94ad199..63a10ad 100644
--- a/.gitignore
+++ b/.gitignore
@@ -35,6 +35,9 @@ jspm_packages/
.idea/
*.swp
*.swo
+*~
+*.js-e
+.*.swp
# OS
.DS_Store
@@ -74,4 +77,4 @@ __pycache__/
# Test coverage
coverage/
-.nyc_output/
\ No newline at end of file
+.nyc_output/
diff --git a/index.html b/index.html
index 3e2ad03..0305321 100644
--- a/index.html
+++ b/index.html
@@ -637,6 +637,29 @@
0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+