Compare commits
34 Commits
main
...
teaser-202
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5b2ca21b86 | ||
|
|
dbee3d1a82 | ||
|
|
69a95e0205 | ||
|
|
c005bc06cc | ||
|
|
425e093f67 | ||
|
|
7cf2f36fb4 | ||
|
|
551feba079 | ||
|
|
ed47a53901 | ||
|
|
46b701dc50 | ||
|
|
78950cf19e | ||
|
|
4b66bb0001 | ||
|
|
2178ae523e | ||
|
|
bf21ea0b40 | ||
|
|
6224190c85 | ||
|
|
070d1e83ca | ||
|
|
1036fe1f13 | ||
|
|
e04999b664 | ||
|
|
cc67b8411a | ||
|
|
9552175793 | ||
| b02cf57205 | |||
| fd26f02a2f | |||
|
|
e2f3047602 | ||
|
|
d03dc421e2 | ||
|
|
9956e67db6 | ||
|
|
0ddca1b751 | ||
|
|
a6287a9298 | ||
|
|
1ce8c04b64 | ||
|
|
7f7b82fdc4 | ||
|
|
90f6bdc300 | ||
|
|
8705551269 | ||
|
|
792f14be3e | ||
|
|
b604442c46 | ||
|
|
d6950317af | ||
|
|
47a8a5857f |
21
.github/workflows/build.yml
vendored
@@ -2,24 +2,21 @@ name: build
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_call:
|
workflow_call:
|
||||||
inputs:
|
|
||||||
ref:
|
|
||||||
description: Branch or tag to checkout
|
|
||||||
required: false
|
|
||||||
default: development
|
|
||||||
type: string
|
|
||||||
secrets:
|
secrets:
|
||||||
USER_AUTH:
|
USER_AUTH:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: prox-2
|
runs-on: prox-1
|
||||||
steps:
|
steps:
|
||||||
|
- name: Clear .next cache
|
||||||
|
env:
|
||||||
|
SUDO_PASSWORD: ${{ secrets.USER_AUTH }}
|
||||||
|
run: echo "$SUDO_PASSWORD" | sudo -S rm -rf $GITHUB_WORKSPACE/.next
|
||||||
|
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
|
||||||
ref: ${{ inputs.ref }}
|
|
||||||
|
|
||||||
- name: Setup Bun
|
- name: Setup Bun
|
||||||
uses: oven-sh/setup-bun@v2
|
uses: oven-sh/setup-bun@v2
|
||||||
@@ -31,15 +28,13 @@ jobs:
|
|||||||
|
|
||||||
- name: Ensure symlink to database before Drizzle migrations
|
- name: Ensure symlink to database before Drizzle migrations
|
||||||
run: |
|
run: |
|
||||||
rm -rf "$GITHUB_WORKSPACE/data"
|
rm -rf $GITHUB_WORKSPACE/data
|
||||||
ln -s /home/github/data "$GITHUB_WORKSPACE/data"
|
ln -s ~/data $GITHUB_WORKSPACE/data
|
||||||
|
|
||||||
- name: Generate Drizzle schema
|
- name: Generate Drizzle schema
|
||||||
if: ${{ inputs.ref == 'main' }}
|
|
||||||
run: bun drizzle-kit generate
|
run: bun drizzle-kit generate
|
||||||
|
|
||||||
- name: Run Drizzle migrations
|
- name: Run Drizzle migrations
|
||||||
if: ${{ inputs.ref == 'main' }}
|
|
||||||
run: bun drizzle-kit migrate
|
run: bun drizzle-kit migrate
|
||||||
|
|
||||||
- name: Build project
|
- name: Build project
|
||||||
|
|||||||
2
.github/workflows/deploy.yml
vendored
@@ -8,7 +8,7 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
deploy:
|
deploy:
|
||||||
runs-on: prox-2
|
runs-on: prox-1
|
||||||
steps:
|
steps:
|
||||||
- name: Restart NextJS service
|
- name: Restart NextJS service
|
||||||
env:
|
env:
|
||||||
|
|||||||
3
.github/workflows/main.yml
vendored
@@ -3,8 +3,7 @@ name: main
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- development
|
- main
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 135 KiB |
105
README.md
@@ -1,46 +1,83 @@
|
|||||||
# 🎮 TIPILAN
|
# TipiLAN
|
||||||
|
|
||||||
**TIPILAN** is the official web platform for the TipiLAN LAN event — built using [Next.js](https://nextjs.org) and powered by the lightning-fast [Bun](https://bun.sh) runtime.
|
Official website for **TipiLAN** — Estonia's largest student-organised LAN event.
|
||||||
|
|
||||||
> ⚠️ This is a work in progress! Contributions welcome.
|
> Work in progress. Event date: **September 11, 2026**.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 🚀 Features
|
## Tech Stack
|
||||||
|
|
||||||
- Event information & schedule
|
- [Next.js 16](https://nextjs.org/) — App Router, SSG, Turbopack
|
||||||
- Stream
|
- [React 19](https://react.dev/)
|
||||||
- Responsive dark-themed UI
|
- [TypeScript 5](https://www.typescriptlang.org/)
|
||||||
- Built with Next.js, styled with Tailwind (if applicable), powered by Bun
|
- [Tailwind CSS 4](https://tailwindcss.com/)
|
||||||
|
- [next-intl](https://next-intl.dev/) — ET / EN localisation
|
||||||
|
- [react-icons](https://react-icons.github.io/react-icons/)
|
||||||
|
|
||||||
|
Requires **Bun**.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 📦 Tech Stack
|
## Quickstart
|
||||||
|
|
||||||
- [Next.js](https://nextjs.org/)
|
|
||||||
- [Bun](https://bun.sh/)
|
|
||||||
- [TypeScript](https://www.typescriptlang.org/)
|
|
||||||
- [React](https://reactjs.org/)
|
|
||||||
- [Tailwind CSS](https://tailwindcss.com/) *(if used)*
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🛠️ Setup Instructions
|
|
||||||
|
|
||||||
📖 See [`docs/SETUP.md`](./docs/SETUP.md) for a full setup guide on:
|
|
||||||
|
|
||||||
- ✅ Windows (native)
|
|
||||||
- 🐧 Windows with WSL
|
|
||||||
- 🐧 Linux (Ubuntu, Arch, Fedora, etc.)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 🧪 Scripts
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
bun dev # Run development server
|
bun install
|
||||||
bun run build # Build for production
|
bun dev
|
||||||
bun start # Start production server
|
```
|
||||||
|
|
||||||
bun test # Run tests (if configured)
|
Open [http://localhost:3000](http://localhost:3000) — redirects to `/et` by default.
|
||||||
bun run lint # Run linter (if configured)
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Scripts
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bun dev # Dev server (Turbopack, localhost:3000)
|
||||||
|
bun run build # Production build (outputs SSG for /et and /en)
|
||||||
|
bun start # Serve production build
|
||||||
|
bun lint:fix # ESLint with auto-fix
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Project Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
src/
|
||||||
|
app/[locale]/ # Locale-based pages (et, en)
|
||||||
|
components/teaser/ # HeroSection, CarouselSection, EndSection, Footer
|
||||||
|
components/ # LanguageSwitcher, TeaserPage
|
||||||
|
i18n/ # next-intl routing + request config
|
||||||
|
lib/ # blurPlaceholders.ts (auto-generated)
|
||||||
|
proxy.ts # next-intl routing middleware
|
||||||
|
|
||||||
|
translations/ # et.json, en.json
|
||||||
|
public/images/
|
||||||
|
backgrounds/ # Full-viewport background WebPs
|
||||||
|
heros/ # Character/hero image WebPs
|
||||||
|
flags/ # Language switcher SVGs
|
||||||
|
original/ # Original PNG sources (not served)
|
||||||
|
scripts/ # Image processing utilities
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Image Utilities
|
||||||
|
|
||||||
|
When adding or replacing images, re-run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Convert new PNGs → WebP (quality 85)
|
||||||
|
bun scripts/convert-images.mjs
|
||||||
|
|
||||||
|
# Regenerate blur placeholders for all images
|
||||||
|
bun scripts/gen-blur-placeholders.mjs
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Localisation
|
||||||
|
|
||||||
|
Translation files live in `translations/et.json` and `translations/en.json`.
|
||||||
|
Routing is handled by `src/proxy.ts` — `/` redirects to `/et` (default locale).
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://ui.shadcn.com/schema.json",
|
|
||||||
"style": "new-york",
|
|
||||||
"rsc": true,
|
|
||||||
"tsx": true,
|
|
||||||
"tailwind": {
|
|
||||||
"config": "",
|
|
||||||
"css": "src/app/globals.css",
|
|
||||||
"baseColor": "neutral",
|
|
||||||
"cssVariables": true,
|
|
||||||
"prefix": ""
|
|
||||||
},
|
|
||||||
"aliases": {
|
|
||||||
"components": "@/components",
|
|
||||||
"utils": "@/lib/utils",
|
|
||||||
"ui": "@/components/ui",
|
|
||||||
"lib": "@/lib",
|
|
||||||
"hooks": "@/hooks"
|
|
||||||
},
|
|
||||||
"iconLibrary": "lucide"
|
|
||||||
}
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
# Setup
|
|
||||||
|
|
||||||
## Prerequisites
|
|
||||||
- Git
|
|
||||||
- Bun
|
|
||||||
- If on Windows, it's recommended to use WSL (Windows Subsystem for Linux) and do the following steps there.
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
1. Clone the repository:
|
|
||||||
```bash
|
|
||||||
git clone https://github.com/Lapikud/tipilan.git
|
|
||||||
```
|
|
||||||
2. Install bun:
|
|
||||||
```bash
|
|
||||||
curl -fsSL https://bun.sh/install | bash
|
|
||||||
```
|
|
||||||
3. Install dependencies:
|
|
||||||
```bash
|
|
||||||
cd tipilan
|
|
||||||
bun install
|
|
||||||
```
|
|
||||||
4. Run the application:
|
|
||||||
```bash
|
|
||||||
bun --bun run dev
|
|
||||||
```
|
|
||||||
|
|
||||||
(ONLY FOR PRODUCTION!!) Build the application:
|
|
||||||
```bash
|
|
||||||
bun --bun run build
|
|
||||||
```
|
|
||||||
## Accessing the Application
|
|
||||||
- The application is now running at `http://localhost:3000`.
|
|
||||||
|
|
||||||
## Git branch
|
|
||||||
- The current production branch is `main`.
|
|
||||||
- Please make sure you make changes in your branch before creating a pull request.
|
|
||||||
### Making git branch
|
|
||||||
- Create a new branch:
|
|
||||||
```bash
|
|
||||||
git checkout -b <branch-name>
|
|
||||||
```
|
|
||||||
- Commit your changes:
|
|
||||||
```bash
|
|
||||||
git add .
|
|
||||||
git commit -m "<commit-message>"
|
|
||||||
```
|
|
||||||
- Push your branch:
|
|
||||||
```bash
|
|
||||||
git push origin <branch-name>
|
|
||||||
```
|
|
||||||
- Create a pull request:
|
|
||||||
Go to Github,
|
|
||||||
open up this project's repository and make a new pull request.
|
|
||||||
```
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
import { defineConfig } from "drizzle-kit";
|
|
||||||
|
|
||||||
export default defineConfig({
|
|
||||||
schema: "./src/db/schema/schema.ts",
|
|
||||||
out: "./migrations",
|
|
||||||
dialect: "sqlite",
|
|
||||||
dbCredentials: {
|
|
||||||
url: "data/tipilan.db",
|
|
||||||
},
|
|
||||||
});
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
CREATE TABLE `member` (
|
|
||||||
`id` text PRIMARY KEY NOT NULL,
|
|
||||||
`user_id` text NOT NULL,
|
|
||||||
`team_id` text,
|
|
||||||
`role` text NOT NULL,
|
|
||||||
FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON UPDATE no action ON DELETE cascade,
|
|
||||||
FOREIGN KEY (`team_id`) REFERENCES `team`(`id`) ON UPDATE no action ON DELETE cascade
|
|
||||||
);
|
|
||||||
--> statement-breakpoint
|
|
||||||
CREATE UNIQUE INDEX `user_team_unique` ON `member` (`user_id`,`team_id`);--> statement-breakpoint
|
|
||||||
CREATE TABLE `team` (
|
|
||||||
`id` text PRIMARY KEY NOT NULL,
|
|
||||||
`name` text NOT NULL
|
|
||||||
);
|
|
||||||
--> statement-breakpoint
|
|
||||||
CREATE TABLE `tournament_team` (
|
|
||||||
`id` text PRIMARY KEY NOT NULL,
|
|
||||||
`tournament_id` text NOT NULL,
|
|
||||||
`team_id` text NOT NULL,
|
|
||||||
`registration_date` integer NOT NULL,
|
|
||||||
FOREIGN KEY (`tournament_id`) REFERENCES `tournament`(`id`) ON UPDATE no action ON DELETE cascade,
|
|
||||||
FOREIGN KEY (`team_id`) REFERENCES `team`(`id`) ON UPDATE no action ON DELETE cascade
|
|
||||||
);
|
|
||||||
--> statement-breakpoint
|
|
||||||
CREATE UNIQUE INDEX `tournament_team_unique` ON `tournament_team` (`tournament_id`,`team_id`);--> statement-breakpoint
|
|
||||||
CREATE TABLE `tournament` (
|
|
||||||
`id` text PRIMARY KEY NOT NULL,
|
|
||||||
`name` text NOT NULL
|
|
||||||
);
|
|
||||||
--> statement-breakpoint
|
|
||||||
CREATE TABLE `user` (
|
|
||||||
`id` text PRIMARY KEY NOT NULL,
|
|
||||||
`email` text NOT NULL,
|
|
||||||
`steam_id` text,
|
|
||||||
`first_name` text NOT NULL,
|
|
||||||
`last_name` text NOT NULL,
|
|
||||||
`ticket_id` text,
|
|
||||||
`ticket_type` text
|
|
||||||
);
|
|
||||||
--> statement-breakpoint
|
|
||||||
CREATE UNIQUE INDEX `user_email_unique` ON `user` (`email`);--> statement-breakpoint
|
|
||||||
CREATE UNIQUE INDEX `user_steam_id_unique` ON `user` (`steam_id`);--> statement-breakpoint
|
|
||||||
CREATE UNIQUE INDEX `user_ticket_id_unique` ON `user` (`ticket_id`);
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
DROP INDEX `user_email_unique`;
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
DROP INDEX `user_steam_id_unique`;
|
|
||||||
@@ -1,295 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "6",
|
|
||||||
"dialect": "sqlite",
|
|
||||||
"id": "efe4e865-a061-4ab0-8023-5211e6d86e14",
|
|
||||||
"prevId": "00000000-0000-0000-0000-000000000000",
|
|
||||||
"tables": {
|
|
||||||
"member": {
|
|
||||||
"name": "member",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"user_id": {
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"team_id": {
|
|
||||||
"name": "team_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"role": {
|
|
||||||
"name": "role",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"user_team_unique": {
|
|
||||||
"name": "user_team_unique",
|
|
||||||
"columns": [
|
|
||||||
"user_id",
|
|
||||||
"team_id"
|
|
||||||
],
|
|
||||||
"isUnique": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {
|
|
||||||
"member_user_id_user_id_fk": {
|
|
||||||
"name": "member_user_id_user_id_fk",
|
|
||||||
"tableFrom": "member",
|
|
||||||
"tableTo": "user",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
},
|
|
||||||
"member_team_id_team_id_fk": {
|
|
||||||
"name": "member_team_id_team_id_fk",
|
|
||||||
"tableFrom": "member",
|
|
||||||
"tableTo": "team",
|
|
||||||
"columnsFrom": [
|
|
||||||
"team_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"team": {
|
|
||||||
"name": "team",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"tournament_team": {
|
|
||||||
"name": "tournament_team",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"tournament_id": {
|
|
||||||
"name": "tournament_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"team_id": {
|
|
||||||
"name": "team_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"registration_date": {
|
|
||||||
"name": "registration_date",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"tournament_team_unique": {
|
|
||||||
"name": "tournament_team_unique",
|
|
||||||
"columns": [
|
|
||||||
"tournament_id",
|
|
||||||
"team_id"
|
|
||||||
],
|
|
||||||
"isUnique": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {
|
|
||||||
"tournament_team_tournament_id_tournament_id_fk": {
|
|
||||||
"name": "tournament_team_tournament_id_tournament_id_fk",
|
|
||||||
"tableFrom": "tournament_team",
|
|
||||||
"tableTo": "tournament",
|
|
||||||
"columnsFrom": [
|
|
||||||
"tournament_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
},
|
|
||||||
"tournament_team_team_id_team_id_fk": {
|
|
||||||
"name": "tournament_team_team_id_team_id_fk",
|
|
||||||
"tableFrom": "tournament_team",
|
|
||||||
"tableTo": "team",
|
|
||||||
"columnsFrom": [
|
|
||||||
"team_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"tournament": {
|
|
||||||
"name": "tournament",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"email": {
|
|
||||||
"name": "email",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"steam_id": {
|
|
||||||
"name": "steam_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"first_name": {
|
|
||||||
"name": "first_name",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"last_name": {
|
|
||||||
"name": "last_name",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"ticket_id": {
|
|
||||||
"name": "ticket_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"ticket_type": {
|
|
||||||
"name": "ticket_type",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"user_email_unique": {
|
|
||||||
"name": "user_email_unique",
|
|
||||||
"columns": [
|
|
||||||
"email"
|
|
||||||
],
|
|
||||||
"isUnique": true
|
|
||||||
},
|
|
||||||
"user_steam_id_unique": {
|
|
||||||
"name": "user_steam_id_unique",
|
|
||||||
"columns": [
|
|
||||||
"steam_id"
|
|
||||||
],
|
|
||||||
"isUnique": true
|
|
||||||
},
|
|
||||||
"user_ticket_id_unique": {
|
|
||||||
"name": "user_ticket_id_unique",
|
|
||||||
"columns": [
|
|
||||||
"ticket_id"
|
|
||||||
],
|
|
||||||
"isUnique": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"views": {},
|
|
||||||
"enums": {},
|
|
||||||
"_meta": {
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {},
|
|
||||||
"columns": {}
|
|
||||||
},
|
|
||||||
"internal": {
|
|
||||||
"indexes": {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,288 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "6",
|
|
||||||
"dialect": "sqlite",
|
|
||||||
"id": "eae7a237-8469-4a6a-acac-1910adfc98ff",
|
|
||||||
"prevId": "efe4e865-a061-4ab0-8023-5211e6d86e14",
|
|
||||||
"tables": {
|
|
||||||
"member": {
|
|
||||||
"name": "member",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"user_id": {
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"team_id": {
|
|
||||||
"name": "team_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"role": {
|
|
||||||
"name": "role",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"user_team_unique": {
|
|
||||||
"name": "user_team_unique",
|
|
||||||
"columns": [
|
|
||||||
"user_id",
|
|
||||||
"team_id"
|
|
||||||
],
|
|
||||||
"isUnique": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {
|
|
||||||
"member_user_id_user_id_fk": {
|
|
||||||
"name": "member_user_id_user_id_fk",
|
|
||||||
"tableFrom": "member",
|
|
||||||
"tableTo": "user",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
},
|
|
||||||
"member_team_id_team_id_fk": {
|
|
||||||
"name": "member_team_id_team_id_fk",
|
|
||||||
"tableFrom": "member",
|
|
||||||
"tableTo": "team",
|
|
||||||
"columnsFrom": [
|
|
||||||
"team_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"team": {
|
|
||||||
"name": "team",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"tournament_team": {
|
|
||||||
"name": "tournament_team",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"tournament_id": {
|
|
||||||
"name": "tournament_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"team_id": {
|
|
||||||
"name": "team_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"registration_date": {
|
|
||||||
"name": "registration_date",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"tournament_team_unique": {
|
|
||||||
"name": "tournament_team_unique",
|
|
||||||
"columns": [
|
|
||||||
"tournament_id",
|
|
||||||
"team_id"
|
|
||||||
],
|
|
||||||
"isUnique": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {
|
|
||||||
"tournament_team_tournament_id_tournament_id_fk": {
|
|
||||||
"name": "tournament_team_tournament_id_tournament_id_fk",
|
|
||||||
"tableFrom": "tournament_team",
|
|
||||||
"tableTo": "tournament",
|
|
||||||
"columnsFrom": [
|
|
||||||
"tournament_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
},
|
|
||||||
"tournament_team_team_id_team_id_fk": {
|
|
||||||
"name": "tournament_team_team_id_team_id_fk",
|
|
||||||
"tableFrom": "tournament_team",
|
|
||||||
"tableTo": "team",
|
|
||||||
"columnsFrom": [
|
|
||||||
"team_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"tournament": {
|
|
||||||
"name": "tournament",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"email": {
|
|
||||||
"name": "email",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"steam_id": {
|
|
||||||
"name": "steam_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"first_name": {
|
|
||||||
"name": "first_name",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"last_name": {
|
|
||||||
"name": "last_name",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"ticket_id": {
|
|
||||||
"name": "ticket_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"ticket_type": {
|
|
||||||
"name": "ticket_type",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"user_steam_id_unique": {
|
|
||||||
"name": "user_steam_id_unique",
|
|
||||||
"columns": [
|
|
||||||
"steam_id"
|
|
||||||
],
|
|
||||||
"isUnique": true
|
|
||||||
},
|
|
||||||
"user_ticket_id_unique": {
|
|
||||||
"name": "user_ticket_id_unique",
|
|
||||||
"columns": [
|
|
||||||
"ticket_id"
|
|
||||||
],
|
|
||||||
"isUnique": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"views": {},
|
|
||||||
"enums": {},
|
|
||||||
"_meta": {
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {},
|
|
||||||
"columns": {}
|
|
||||||
},
|
|
||||||
"internal": {
|
|
||||||
"indexes": {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,281 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "6",
|
|
||||||
"dialect": "sqlite",
|
|
||||||
"id": "5d600618-0105-4104-b150-c63015ae55c7",
|
|
||||||
"prevId": "eae7a237-8469-4a6a-acac-1910adfc98ff",
|
|
||||||
"tables": {
|
|
||||||
"user": {
|
|
||||||
"name": "user",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"email": {
|
|
||||||
"name": "email",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"steam_id": {
|
|
||||||
"name": "steam_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"first_name": {
|
|
||||||
"name": "first_name",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"last_name": {
|
|
||||||
"name": "last_name",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"ticket_id": {
|
|
||||||
"name": "ticket_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"ticket_type": {
|
|
||||||
"name": "ticket_type",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"user_ticket_id_unique": {
|
|
||||||
"name": "user_ticket_id_unique",
|
|
||||||
"columns": [
|
|
||||||
"ticket_id"
|
|
||||||
],
|
|
||||||
"isUnique": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"team": {
|
|
||||||
"name": "team",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"member": {
|
|
||||||
"name": "member",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"user_id": {
|
|
||||||
"name": "user_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"team_id": {
|
|
||||||
"name": "team_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": false,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"role": {
|
|
||||||
"name": "role",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"user_team_unique": {
|
|
||||||
"name": "user_team_unique",
|
|
||||||
"columns": [
|
|
||||||
"user_id",
|
|
||||||
"team_id"
|
|
||||||
],
|
|
||||||
"isUnique": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {
|
|
||||||
"member_user_id_user_id_fk": {
|
|
||||||
"name": "member_user_id_user_id_fk",
|
|
||||||
"tableFrom": "member",
|
|
||||||
"tableTo": "user",
|
|
||||||
"columnsFrom": [
|
|
||||||
"user_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
},
|
|
||||||
"member_team_id_team_id_fk": {
|
|
||||||
"name": "member_team_id_team_id_fk",
|
|
||||||
"tableFrom": "member",
|
|
||||||
"tableTo": "team",
|
|
||||||
"columnsFrom": [
|
|
||||||
"team_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"tournament_team": {
|
|
||||||
"name": "tournament_team",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"tournament_id": {
|
|
||||||
"name": "tournament_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"team_id": {
|
|
||||||
"name": "team_id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"registration_date": {
|
|
||||||
"name": "registration_date",
|
|
||||||
"type": "integer",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {
|
|
||||||
"tournament_team_unique": {
|
|
||||||
"name": "tournament_team_unique",
|
|
||||||
"columns": [
|
|
||||||
"tournament_id",
|
|
||||||
"team_id"
|
|
||||||
],
|
|
||||||
"isUnique": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreignKeys": {
|
|
||||||
"tournament_team_tournament_id_tournament_id_fk": {
|
|
||||||
"name": "tournament_team_tournament_id_tournament_id_fk",
|
|
||||||
"tableFrom": "tournament_team",
|
|
||||||
"tableTo": "tournament",
|
|
||||||
"columnsFrom": [
|
|
||||||
"tournament_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
},
|
|
||||||
"tournament_team_team_id_team_id_fk": {
|
|
||||||
"name": "tournament_team_team_id_team_id_fk",
|
|
||||||
"tableFrom": "tournament_team",
|
|
||||||
"tableTo": "team",
|
|
||||||
"columnsFrom": [
|
|
||||||
"team_id"
|
|
||||||
],
|
|
||||||
"columnsTo": [
|
|
||||||
"id"
|
|
||||||
],
|
|
||||||
"onDelete": "cascade",
|
|
||||||
"onUpdate": "no action"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
},
|
|
||||||
"tournament": {
|
|
||||||
"name": "tournament",
|
|
||||||
"columns": {
|
|
||||||
"id": {
|
|
||||||
"name": "id",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": true,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"name": "name",
|
|
||||||
"type": "text",
|
|
||||||
"primaryKey": false,
|
|
||||||
"notNull": true,
|
|
||||||
"autoincrement": false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"indexes": {},
|
|
||||||
"foreignKeys": {},
|
|
||||||
"compositePrimaryKeys": {},
|
|
||||||
"uniqueConstraints": {},
|
|
||||||
"checkConstraints": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"views": {},
|
|
||||||
"enums": {},
|
|
||||||
"_meta": {
|
|
||||||
"schemas": {},
|
|
||||||
"tables": {},
|
|
||||||
"columns": {}
|
|
||||||
},
|
|
||||||
"internal": {
|
|
||||||
"indexes": {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "7",
|
|
||||||
"dialect": "sqlite",
|
|
||||||
"entries": [
|
|
||||||
{
|
|
||||||
"idx": 0,
|
|
||||||
"version": "6",
|
|
||||||
"when": 1751642215588,
|
|
||||||
"tag": "0000_awesome_wendigo",
|
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 1,
|
|
||||||
"version": "6",
|
|
||||||
"when": 1752632968857,
|
|
||||||
"tag": "0001_cool_ma_gnuci",
|
|
||||||
"breakpoints": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idx": 2,
|
|
||||||
"version": "6",
|
|
||||||
"when": 1754400044471,
|
|
||||||
"tag": "0002_real_korath",
|
|
||||||
"breakpoints": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -4,23 +4,8 @@ import createNextIntlPlugin from "next-intl/plugin";
|
|||||||
const withNextIntl = createNextIntlPlugin("./src/i18n/request.ts");
|
const withNextIntl = createNextIntlPlugin("./src/i18n/request.ts");
|
||||||
|
|
||||||
const nextConfig: NextConfig = {
|
const nextConfig: NextConfig = {
|
||||||
async headers() {
|
images: {
|
||||||
return [
|
qualities: [75, 90],
|
||||||
{
|
|
||||||
source: "/(.*)",
|
|
||||||
headers: [
|
|
||||||
{
|
|
||||||
key: "Content-Security-Policy",
|
|
||||||
value:
|
|
||||||
"frame-src 'self' https://tipilan.ee https://player.twitch.tv https://embed.twitch.tv; frame-ancestors 'self' https://tipilan.ee;",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key: "X-Frame-Options",
|
|
||||||
value: "SAMEORIGIN",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
];
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
10386
package-lock.json
generated
40
package.json
@@ -10,51 +10,25 @@
|
|||||||
"build": "next build",
|
"build": "next build",
|
||||||
"start": "next start",
|
"start": "next start",
|
||||||
"lint": "next lint",
|
"lint": "next lint",
|
||||||
"drizzle:generate": "drizzle-kit generate:sqlite",
|
"lint:fix": "next lint --fix"
|
||||||
"drizzle:push": "drizzle-kit push:sqlite",
|
|
||||||
"drizzle:studio": "drizzle-kit studio"
|
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@libsql/client": "^0.15.15",
|
"next": "^16.2.1",
|
||||||
"@paralleldrive/cuid2": "^2.2.2",
|
|
||||||
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
||||||
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
||||||
"@radix-ui/react-select": "^2.2.6",
|
|
||||||
"@radix-ui/react-slot": "^1.2.3",
|
|
||||||
"@radix-ui/react-tooltip": "^1.2.8",
|
|
||||||
"@tanstack/react-table": "^8.21.3",
|
|
||||||
"@types/three": "^0.178.1",
|
|
||||||
"class-variance-authority": "^0.7.1",
|
|
||||||
"clsx": "^2.1.1",
|
|
||||||
"drizzle-orm": "^0.44.5",
|
|
||||||
"lucide-react": "^0.522.0",
|
|
||||||
"material-symbols": "^0.31.9",
|
|
||||||
"next": "15.3.0",
|
|
||||||
"next-intl": "^4.3.9",
|
"next-intl": "^4.3.9",
|
||||||
"next-themes": "^0.4.6",
|
"react": "^19.2.4",
|
||||||
"react": "^19.1.1",
|
"react-dom": "^19.2.4",
|
||||||
"react-dom": "^19.1.1",
|
"react-icons": "^5.5.0"
|
||||||
"react-icons": "^5.5.0",
|
|
||||||
"react-markdown": "^10.1.0",
|
|
||||||
"tailwind-merge": "^3.3.1",
|
|
||||||
"three": "^0.178.0",
|
|
||||||
"tw-animate-css": "^1.4.0"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/eslintrc": "^3.3.1",
|
"@eslint/eslintrc": "^3.3.1",
|
||||||
"@tailwindcss/postcss": "^4.1.13",
|
"@tailwindcss/postcss": "^4.1.13",
|
||||||
"@types/bun": "^1.2.22",
|
"@types/node": "^22.15.0",
|
||||||
"@types/node": "^20.19.17",
|
|
||||||
"@types/react": "^19.1.13",
|
"@types/react": "^19.1.13",
|
||||||
"@types/react-dom": "^19.1.9",
|
"@types/react-dom": "^19.1.9",
|
||||||
"autoprefixer": "^10.4.21",
|
|
||||||
"dotenv": "^16.6.1",
|
|
||||||
"drizzle-kit": "^0.31.4",
|
|
||||||
"eslint": "^9.36.0",
|
"eslint": "^9.36.0",
|
||||||
"eslint-config-next": "15.3.0",
|
"eslint-config-next": "^15.3.3",
|
||||||
"postcss": "^8.5.6",
|
"postcss": "^8.5.6",
|
||||||
"tailwindcss": "^4.1.13",
|
"tailwindcss": "^4.1.13",
|
||||||
"ts-node": "^10.9.2",
|
|
||||||
"typescript": "^5.9.2"
|
"typescript": "^5.9.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
5928
pnpm-lock.yaml
generated
@@ -1 +0,0 @@
|
|||||||
<svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg>
|
|
||||||
|
Before Width: | Height: | Size: 391 B |
@@ -1 +0,0 @@
|
|||||||
<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg>
|
|
||||||
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 126 KiB |
@@ -1,50 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 1080">
|
|
||||||
<defs>
|
|
||||||
<style>
|
|
||||||
.cls-1 {
|
|
||||||
fill: #ff343a;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cls-2 {
|
|
||||||
fill: #00ff50;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cls-3 {
|
|
||||||
fill: #ff3398;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cls-4 {
|
|
||||||
fill: #0284ff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cls-5 {
|
|
||||||
fill: #ffc703;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</defs>
|
|
||||||
<g>
|
|
||||||
<path class="cls-5" d="M147.26,50.24h-46.56c-29.7,0-53.78,24.08-53.78,53.78v322.66c0,29.7,24.08,53.78,53.78,53.78h46.56c118.61,0,215.11-96.5,215.11-215.11S265.87,50.24,147.26,50.24ZM154.48,372.67v-214.63c55.95,3.73,100.34,50.43,100.34,107.31s-44.38,103.59-100.34,107.31Z"/>
|
|
||||||
<path class="cls-4" d="M1424.13,50.24c-29.7,0-53.78,24.08-53.78,53.78v218.47c0,27.8-22.62,50.42-50.42,50.42s-50.42-22.62-50.42-50.42V104.02c0-29.7-24.08-53.78-53.78-53.78s-53.78,24.08-53.78,53.78v218.47c0,87.1,70.86,157.97,157.97,157.97s157.97-70.87,157.97-157.97V104.02c0-29.7-24.08-53.78-53.78-53.78Z"/>
|
|
||||||
<path class="cls-3" d="M666.67,157.8c29.7,0,53.78-24.08,53.78-53.78s-24.08-53.78-53.78-53.78h-174.78c-29.7,0-53.78,24.08-53.78,53.78v322.66c0,29.7,24.08,53.78,53.78,53.78h174.78c29.7,0,53.78-24.08,53.78-53.78s-24.08-53.78-53.78-53.78h-121v-53.78h121c29.7,0,53.78-24.08,53.78-53.78s-24.08-53.78-53.78-53.78h-121v-53.78h121Z"/>
|
|
||||||
<path class="cls-2" d="M100.71,599.52c-29.7,0-53.78,24.08-53.78,53.78v322.66c0,29.7,24.08,53.78,53.78,53.78s53.78-24.08,53.78-53.78v-322.66c0-29.7-24.08-53.78-53.78-53.78Z"/>
|
|
||||||
<path class="cls-2" d="M1064.09,372.91h-154.61V104.02c0-29.7-24.08-53.78-53.78-53.78s-53.78,24.08-53.78,53.78v322.66c0,29.7,24.08,53.78,53.78,53.78h208.39c29.7,0,53.78-24.08,53.78-53.78s-24.08-53.78-53.78-53.78Z"/>
|
|
||||||
<path class="cls-1" d="M1819.29,922.19h-154.61v-268.88c0-29.7-24.08-53.78-53.78-53.78s-53.78,24.08-53.78,53.78v322.66c0,29.7,24.08,53.78,53.78,53.78h208.39c29.7,0,53.78-24.08,53.78-53.78s-24.08-53.78-53.78-53.78Z"/>
|
|
||||||
<path class="cls-5" d="M1353.21,634.4c-7.86-20.95-27.86-34.84-50.23-34.89h-.12c-22.32,0-42.33,13.79-50.26,34.67l-122.68,322.66c-10.55,27.76,3.39,58.82,31.16,69.38,27.76,10.56,58.82-3.39,69.38-31.15l72.07-189.54,70.99,189.31c8.1,21.59,28.59,34.91,50.36,34.91,6.27,0,12.65-1.11,18.87-3.44,27.81-10.43,41.9-41.43,31.47-69.23l-121-322.66Z"/>
|
|
||||||
<path class="cls-4" d="M993.75,599.52c-29.7,0-53.78,24.08-53.78,53.78v140.27l-109.43-169.45c-12.94-20.03-37.52-29.15-60.38-22.41-22.87,6.74-38.57,27.74-38.57,51.58v322.66c0,29.7,24.08,53.78,53.78,53.78s53.78-24.08,53.78-53.78v-140.27l109.43,169.45c10.09,15.62,27.26,24.61,45.18,24.61,5.06,0,10.17-.72,15.21-2.2,22.87-6.74,38.57-27.74,38.57-51.58v-322.66c0-29.7-24.08-53.78-53.78-53.78Z"/>
|
|
||||||
<path class="cls-3" d="M1870.74,208.11c0-87.05-70.82-157.86-157.86-157.86-41.3,0-77.48,10.14-104.63,29.31-34.33,24.25-53.23,62.01-53.23,106.31,0,24.5,7.18,57.43,38.23,85.23-22.12,6.67-38.23,27.2-38.23,51.49,0,87.05,70.82,157.86,157.86,157.86,41.77,0,76.58-9.1,103.46-27.05,35.08-23.42,54.4-60.95,54.4-105.66,0-25.05-7.86-59.2-42.83-86.99,24.45-5.06,42.83-26.71,42.83-52.66ZM1712.88,372.91c-27.74,0-50.31-22.57-50.31-50.31,0-5.01-.69-9.86-1.97-14.46,12.7,4.54,25.66,8.47,38.43,12.34,18.06,5.48,35.12,10.65,48.33,16.68,11.18,5.1,15.06,9.2,15.06,12.77,0,16.85-25.7,22.97-49.55,22.97ZM1730.25,217.55c-22.59-6.85-45.67-14.41-59.79-22.57-5.1-2.95-7.89-7.91-7.89-13.44,0-7.07,3.82-11.37,7.74-14.14,8.64-6.1,24.15-9.6,42.57-9.6,27.74,0,50.31,22.57,50.31,50.31,0,7.62,1.58,14.87,4.44,21.43-12.35-4.39-24.96-8.22-37.38-11.98Z"/>
|
|
||||||
<path class="cls-1" d="M442.11,599.52c-118.61,0-215.11,96.5-215.11,215.11s96.5,215.11,215.11,215.11,215.11-96.5,215.11-215.11-96.5-215.11-215.11-215.11ZM442.11,922.18c-59.31,0-107.55-48.25-107.55-107.55s48.25-107.55,107.55-107.55,107.55,48.25,107.55,107.55-48.25,107.55-107.55,107.55Z"/>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<path d="M147.27,493.9h-46.56c-37.07,0-67.22-30.15-67.22-67.22V104.02c0-37.07,30.15-67.22,67.22-67.22h46.56c126.02,0,228.55,102.53,228.55,228.55s-102.53,228.55-228.55,228.55ZM100.71,63.69c-22.24,0-40.33,18.09-40.33,40.33v322.66c0,22.24,18.09,40.33,40.33,40.33h46.56c111.2,0,201.66-90.47,201.66-201.66S258.46,63.69,147.27,63.69h-46.56ZM141.04,387.04v-243.37l14.34.96c63.3,4.21,112.89,57.24,112.89,120.73s-49.59,116.52-112.89,120.73l-14.34.96ZM167.93,173.53v183.65c42.17-9.48,73.45-47.36,73.45-91.83s-31.27-82.34-73.45-91.82Z"/>
|
|
||||||
<path d="M1319.94,493.9c-94.52,0-171.41-76.9-171.41-171.42V104.02c0-37.07,30.15-67.22,67.22-67.22s67.22,30.15,67.22,67.22v218.47c0,20.39,16.58,36.97,36.97,36.97s36.97-16.59,36.97-36.97V104.02c0-37.07,30.15-67.22,67.22-67.22s67.22,30.15,67.22,67.22v218.47c0,94.52-76.9,171.42-171.42,171.42ZM1215.75,63.69c-22.24,0-40.33,18.09-40.33,40.33v218.47c0,79.69,64.83,144.53,144.52,144.53s144.53-64.83,144.53-144.53V104.02c0-22.24-18.09-40.33-40.33-40.33s-40.33,18.09-40.33,40.33v218.47c0,35.21-28.65,63.86-63.86,63.86s-63.86-28.65-63.86-63.86V104.02c0-22.24-18.09-40.33-40.33-40.33Z"/>
|
|
||||||
<path d="M666.67,493.9h-174.78c-37.07,0-67.22-30.15-67.22-67.22V104.02c0-37.07,30.15-67.22,67.22-67.22h174.78c37.07,0,67.22,30.15,67.22,67.22s-30.15,67.22-67.22,67.22h-107.55v26.89h107.55c37.07,0,67.22,30.15,67.22,67.22s-30.15,67.22-67.22,67.22h-107.55v26.89h107.55c37.07,0,67.22,30.15,67.22,67.22s-30.15,67.22-67.22,67.22ZM491.9,63.69c-22.24,0-40.33,18.09-40.33,40.33v322.66c0,22.24,18.09,40.33,40.33,40.33h174.78c22.24,0,40.33-18.09,40.33-40.33s-18.09-40.33-40.33-40.33h-121c-7.42,0-13.44-6.02-13.44-13.44v-53.78c0-7.42,6.02-13.44,13.44-13.44h121c22.24,0,40.33-18.09,40.33-40.33s-18.09-40.33-40.33-40.33h-121c-7.42,0-13.44-6.02-13.44-13.44v-53.78c0-7.42,6.02-13.44,13.44-13.44h121c22.24,0,40.33-18.09,40.33-40.33s-18.09-40.33-40.33-40.33h-174.78Z"/>
|
|
||||||
<path d="M100.71,1043.17c-37.07,0-67.22-30.15-67.22-67.22v-322.66c0-37.06,30.15-67.22,67.22-67.22s67.22,30.15,67.22,67.22v322.66c0,37.06-30.15,67.22-67.22,67.22ZM100.71,612.96c-22.24,0-40.33,18.09-40.33,40.33v322.66c0,22.24,18.09,40.33,40.33,40.33s40.33-18.09,40.33-40.33v-322.66c0-22.24-18.09-40.33-40.33-40.33Z"/>
|
|
||||||
<path d="M1064.09,493.9h-208.38c-37.07,0-67.22-30.15-67.22-67.22V104.02c0-37.07,30.16-67.22,67.22-67.22s67.22,30.15,67.22,67.22v255.44h141.16c37.07,0,67.22,30.15,67.22,67.22s-30.15,67.22-67.22,67.22ZM855.71,63.69c-22.24,0-40.33,18.09-40.33,40.33v322.66c0,22.24,18.09,40.33,40.33,40.33h208.38c22.24,0,40.33-18.09,40.33-40.33s-18.09-40.33-40.33-40.33h-168.05V104.02c0-22.24-18.09-40.33-40.33-40.33Z"/>
|
|
||||||
<path d="M1819.29,1043.18h-208.38c-37.07,0-67.22-30.15-67.22-67.22v-322.66c0-37.06,30.15-67.22,67.22-67.22s67.22,30.15,67.22,67.22v255.44h141.17c37.07,0,67.22,30.15,67.22,67.22s-30.15,67.22-67.22,67.22ZM1610.91,612.97c-22.24,0-40.33,18.09-40.33,40.33v322.66c0,22.24,18.09,40.33,40.33,40.33h208.38c22.24,0,40.33-18.09,40.33-40.33s-18.09-40.33-40.33-40.33h-154.61c-7.43,0-13.44-6.02-13.44-13.44v-268.89c0-22.24-18.09-40.33-40.33-40.33Z"/>
|
|
||||||
<path d="M1180.2,1043.21c-8.07,0-16.15-1.47-23.91-4.42-16.78-6.38-30.08-18.92-37.43-35.3-7.36-16.38-7.9-34.64-1.51-51.43l122.68-322.66c9.85-25.92,35.1-43.33,62.83-43.33,27.95.07,53.18,17.59,62.94,43.62h0l121,322.66c6.31,16.81,5.69,35.07-1.75,51.42-7.43,16.35-20.78,28.82-37.59,35.13-7.6,2.85-15.54,4.29-23.59,4.29-27.87,0-53.16-17.53-62.95-43.63l-58.49-155.98-59.41,156.26c-6.38,16.78-18.92,30.08-35.3,37.43-8.8,3.95-18.15,5.93-27.51,5.93ZM1302.94,612.95c-16.73,0-31.88,10.45-37.79,26l-122.68,322.66c-3.83,10.07-3.51,21.03.91,30.86,4.42,9.83,12.39,17.35,22.46,21.18,10.06,3.83,21.02,3.51,30.85-.91,9.83-4.41,17.35-12.39,21.18-22.46l72.06-189.54c1.98-5.22,6.98-8.67,12.57-8.67h.03c5.59.01,10.6,3.49,12.56,8.72l70.99,189.32c5.87,15.66,21.06,26.18,37.77,26.18,4.82,0,9.58-.87,14.15-2.58,20.82-7.81,31.41-31.1,23.6-51.93l-120.99-322.66c-5.86-15.62-21-26.13-37.68-26.17Z"/>
|
|
||||||
<path d="M993.76,1043.18c-22.92,0-44.03-11.5-56.47-30.75l-84.7-131.14v94.67c0,37.06-30.15,67.22-67.22,67.22s-67.22-30.15-67.22-67.22v-322.66c0-29.59,19.83-56.11,48.21-64.48,28.38-8.36,59.42,3.16,75.48,28.01l84.69,131.14v-94.67c0-37.06,30.15-67.22,67.22-67.22s67.22,30.15,67.22,67.22v322.66c0,29.59-19.83,56.11-48.21,64.48-6.18,1.82-12.58,2.74-19.01,2.74ZM839.14,822.24c4.48,0,8.77,2.25,11.29,6.15l109.44,169.45c7.46,11.56,20.13,18.46,33.88,18.46,3.86,0,7.69-.56,11.4-1.65,17.03-5.02,28.93-20.93,28.93-38.68v-322.66c0-22.24-18.09-40.33-40.33-40.33s-40.33,18.09-40.33,40.33v140.27c0,5.96-3.93,11.21-9.64,12.9-5.72,1.67-11.86-.6-15.1-5.6l-109.43-169.45c-9.63-14.92-28.26-21.85-45.29-16.81-17.03,5.02-28.92,20.93-28.92,38.68v322.66c0,22.24,18.09,40.33,40.33,40.33s40.33-18.09,40.33-40.33v-140.27c0-5.96,3.93-11.21,9.64-12.9,1.26-.37,2.54-.55,3.8-.55Z"/>
|
|
||||||
<path d="M1712.88,493.9c-94.46,0-171.31-76.85-171.31-171.31,0-22.37,11.37-43.03,29.19-55.38-23.75-28.24-29.19-59.06-29.19-81.34,0-48.8,20.92-90.45,58.92-117.3,29.43-20.79,68.29-31.78,112.39-31.78,94.46,0,171.31,76.85,171.31,171.31,0,23.66-12.53,45.08-31.78,57.1,25.83,28.18,31.78,59.59,31.78,82.55,0,49.34-21.45,90.84-60.38,116.84-29.13,19.45-66.45,29.31-110.92,29.31ZM1712.88,63.69c-38.51,0-72.01,9.28-96.87,26.85-30.66,21.66-47.55,55.52-47.55,95.33,0,29.86,11.35,55.16,33.75,75.22,3.62,3.24,5.21,8.19,4.16,12.93s-4.59,8.55-9.24,9.95c-16.88,5.09-28.66,20.97-28.66,38.62,0,79.63,64.79,144.42,144.42,144.42,39.06,0,71.36-8.34,95.99-24.79,31.23-20.85,48.43-54.4,48.43-94.48,0-30.84-12.7-56.56-37.75-76.46-4.08-3.25-5.93-8.56-4.72-13.64,1.21-5.08,5.25-9,10.36-10.06,18.6-3.85,32.11-20.46,32.11-39.49,0-79.63-64.79-144.42-144.42-144.42ZM1712.88,386.35c-35.15,0-63.75-28.6-63.75-63.75,0-3.69-.49-7.34-1.47-10.86-1.35-4.84.11-10.03,3.79-13.45,3.68-3.42,8.96-4.51,13.69-2.82,12.35,4.42,25.23,8.32,37.67,12.1,18.63,5.65,36.1,10.95,50.15,17.36,6.86,3.13,22.92,10.46,22.92,25,0,22.8-23.55,36.42-62.99,36.42ZM1676.35,327.57c2.43,17.99,17.89,31.89,36.53,31.89s30.38-3.96,34.49-7.21c-1.29-.76-3.09-1.72-5.58-2.86-12.41-5.66-29.04-10.71-46.65-16.05-6.21-1.88-12.49-3.79-18.78-5.78ZM1767.62,242.98c-1.51,0-3.03-.25-4.5-.78-12.03-4.28-24.58-8.09-36.71-11.77l3.84-12.88-3.9,12.87c-23.43-7.11-47.24-14.91-62.62-23.8-9.14-5.28-14.6-14.66-14.6-25.08,0-7.13,2.33-17.28,13.42-25.12,11.02-7.78,28.89-12.07,50.33-12.07,35.15,0,63.75,28.6,63.75,63.75,0,5.59,1.12,11,3.33,16.07,2.14,4.91,1.16,10.63-2.5,14.54-2.59,2.77-6.17,4.27-9.83,4.27ZM1712.88,171.24c-18.22,0-29.93,3.69-34.82,7.14-2.05,1.45-2.05,2.24-2.05,3.16,0,.57.09,1.17,1.17,1.8,13.05,7.55,36.12,15.03,56.96,21.35l-3.9,12.87,3.96-12.85c5.12,1.55,10.32,3.13,15.55,4.76,0-.45-.01-.91-.01-1.36,0-20.33-16.53-36.86-36.86-36.86Z"/>
|
|
||||||
<path d="M442.11,1043.17c-126.02,0-228.55-102.53-228.55-228.55s102.53-228.55,228.55-228.55,228.55,102.53,228.55,228.55-102.53,228.55-228.55,228.55ZM442.11,612.96c-111.2,0-201.66,90.47-201.66,201.66s90.47,201.66,201.66,201.66,201.66-90.47,201.66-201.66-90.47-201.66-201.66-201.66ZM442.11,935.62c-66.72,0-121-54.28-121-121s54.28-121,121-121,121,54.28,121,121-54.28,121-121,121ZM442.11,720.51c-51.89,0-94.11,42.22-94.11,94.11s42.22,94.11,94.11,94.11,94.11-42.22,94.11-94.11-42.22-94.11-94.11-94.11Z"/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 816 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 257 KiB |
|
Before Width: | Height: | Size: 71 KiB |
|
Before Width: | Height: | Size: 282 KiB |
|
Before Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 298 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 335 KiB |
|
Before Width: | Height: | Size: 368 KiB |
|
Before Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 205 KiB |
|
Before Width: | Height: | Size: 103 KiB |
|
Before Width: | Height: | Size: 2.2 MiB |
|
Before Width: | Height: | Size: 18 MiB |
|
Before Width: | Height: | Size: 36 MiB |
|
Before Width: | Height: | Size: 75 KiB |
|
Before Width: | Height: | Size: 313 KiB |
|
Before Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 860 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 2.0 MiB |
|
Before Width: | Height: | Size: 642 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 750 KiB |
BIN
public/images/TipiLAN_og.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
public/images/backgrounds/compete_teaser.webp
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
public/images/backgrounds/explore_teaser.webp
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
public/images/backgrounds/hero_teaser.webp
Normal file
|
After Width: | Height: | Size: 117 KiB |
BIN
public/images/backgrounds/play_teaser.webp
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
public/images/backgrounds/sponsors_teaser.webp
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
public/images/backgrounds/tickets_teaser.webp
Normal file
|
After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 12 MiB |
|
Before Width: | Height: | Size: 7.8 MiB |
|
Before Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 2.7 MiB |
|
Before Width: | Height: | Size: 2.6 MiB |
|
Before Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 4.7 MiB |
6
public/images/flags/flag-en.svg
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<svg width="40" height="30" viewBox="0 0 40 30" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M0 4.68346V9.23077H6.25333L0 4.68346ZM5.18222 30H14.4444V23.265L5.18222 30ZM25.5556 23.2662V30H34.8167L25.5556 23.2662ZM0 20.7692V25.3165L6.25556 20.7692H0ZM34.8189 0H25.5556V6.735L34.8189 0ZM40 25.3177V20.7692H33.7433L40 25.3177ZM40 9.23077V4.68346L33.7456 9.23077H40ZM14.4444 0H5.18222L14.4444 6.735V0Z" fill="#00247D"/>
|
||||||
|
<path d="M27.9332 20.7696L38.7243 28.6169C39.2513 28.0531 39.6301 27.3583 39.8243 26.5989L31.8076 20.7696H27.9332ZM14.4443 20.7696H12.0654L1.27543 28.6158C1.85432 29.2273 2.59654 29.6646 3.42876 29.8677L14.4443 21.8577V20.7696ZM25.5554 9.23118H27.9343L38.7243 1.38503C38.1355 0.764575 37.3891 0.330442 36.5721 0.133104L25.5554 8.1431V9.23118ZM12.0654 9.23118L1.27543 1.38503C0.748709 1.94923 0.369666 2.64392 0.174316 3.4031L8.19098 9.23118H12.0654Z" fill="#C8102E"/>
|
||||||
|
<path d="M40 18.4615H23.3333V30H25.5556V23.2662L34.8167 30H35.5556C36.1458 30.0001 36.7302 29.8778 37.2744 29.6402C37.8185 29.4026 38.3114 29.055 38.7243 28.6169L27.9332 20.7696H31.8076L39.8243 26.5989C39.9276 26.21 40 25.8069 40 25.3846V25.3177L33.7433 20.7692H40V18.4615ZM0 18.4615V20.7692H6.25556L0 25.3165V25.3846C0 26.6435 0.48765 27.7827 1.27543 28.6158L12.0654 20.7696H14.4443V21.8577L3.42889 29.8662C3.75556 29.9469 4.09333 30 4.44444 30H5.18222L14.4444 23.265V30H16.6667V18.4615H0ZM40 4.61538C40.0007 3.40613 39.5422 2.24574 38.7243 1.38503L27.9343 9.23118H25.5554V8.1431L36.5721 0.133104C36.2393 0.0483274 35.8982 0.00339006 35.5556 4.3659e-07L34.8189 0L25.5556 6.735V0L23.3333 4.3659e-07V11.5385H40V9.23077H33.7456L40 4.68346V4.61538ZM14.4444 0V6.735L5.18222 0L4.44444 4.3659e-07C3.85403 -0.000266737 3.26952 0.122092 2.72531 0.359879C2.1811 0.597666 1.68805 0.946488 1.27543 1.38503L12.0654 9.23118H8.19098L0.174316 3.4031C0.0640721 3.79738 0.00552601 4.20486 0 4.61538V4.68346L6.25333 9.23077H0V11.5385H16.6667V4.3659e-07L14.4444 0Z" fill="white"/>
|
||||||
|
<path d="M23.3333 11.5385V4.3659e-07H16.6667V11.5385H0V18.4615H16.6667V30H23.3333V18.4615H40V11.5385H23.3333Z" fill="#C8102E"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.0 KiB |
5
public/images/flags/flag-et.svg
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<svg width="40" height="30" viewBox="0 0 40 30" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M35.5556 0H4.44444C3.2657 0 2.13524 0.468252 1.30175 1.30175C0.468253 2.13524 0 3.2657 0 4.44444V10H40V4.44444C40 3.2657 39.5317 2.13524 38.6983 1.30175C37.8648 0.468252 36.7343 0 35.5556 0Z" fill="#0072CE"/>
|
||||||
|
<path d="M0 10H40V20H0V10Z" fill="black"/>
|
||||||
|
<path d="M35.5556 30H4.44444C3.2657 30 2.13524 29.4732 1.30175 28.5355C0.468253 27.5979 0 26.3261 0 25V20H40V25C40 26.3261 39.5317 27.5979 38.6983 28.5355C37.8648 29.4732 36.7343 30 35.5556 30Z" fill="white"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 574 B |
BIN
public/images/heros/compete_hero.webp
Normal file
|
After Width: | Height: | Size: 135 KiB |
BIN
public/images/heros/explore_hero.webp
Normal file
|
After Width: | Height: | Size: 136 KiB |
BIN
public/images/heros/play_hero.webp
Normal file
|
After Width: | Height: | Size: 145 KiB |
|
Before Width: | Height: | Size: 4.3 MiB |
|
Before Width: | Height: | Size: 6.5 MiB |
|
Before Width: | Height: | Size: 12 MiB |
|
Before Width: | Height: | Size: 8.1 MiB |
|
Before Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 235 KiB |
|
Before Width: | Height: | Size: 860 KiB |
|
Before Width: | Height: | Size: 100 KiB |
|
Before Width: | Height: | Size: 842 KiB |
|
Before Width: | Height: | Size: 67 KiB |
|
Before Width: | Height: | Size: 180 KiB |
|
Before Width: | Height: | Size: 157 KiB |
|
Before Width: | Height: | Size: 470 KiB |
BIN
public/images/original/compete_hero.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
public/images/original/compete_teaser.png
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
BIN
public/images/original/explore_hero.png
Normal file
|
After Width: | Height: | Size: 1015 KiB |
BIN
public/images/original/explore_teaser.png
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
public/images/original/hero_teaser.png
Normal file
|
After Width: | Height: | Size: 2.2 MiB |
BIN
public/images/original/play_hero.png
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
public/images/original/play_teaser.png
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
public/images/original/sponsors_teaser.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
public/images/original/tickets_teaser.png
Normal file
|
After Width: | Height: | Size: 1.2 MiB |