chore: rename project from glossa to lila

- Update all package names from @glossa/* to @lila/*
- Update all imports, container names, volume names
- Update documentation references
- Recreate database with new credentials
This commit is contained in:
lila 2026-04-13 10:00:52 +02:00
parent 1699f78f0b
commit 3f7bc4111e
37 changed files with 116 additions and 182 deletions

View file

@ -1,5 +1,5 @@
{
"name": "@glossa/api",
"name": "@lila/api",
"version": "1.0.0",
"private": true,
"type": "module",
@ -10,8 +10,8 @@
"test": "vitest"
},
"dependencies": {
"@glossa/db": "workspace:*",
"@glossa/shared": "workspace:*",
"@lila/db": "workspace:*",
"@lila/shared": "workspace:*",
"better-auth": "^1.6.2",
"cors": "^2.8.6",
"express": "^5.2.1"

View file

@ -1,12 +1,9 @@
import { describe, it, expect, vi, beforeEach } from "vitest";
import request from "supertest";
vi.mock("@glossa/db", () => ({
getGameTerms: vi.fn(),
getDistractors: vi.fn(),
}));
vi.mock("@lila/db", () => ({ getGameTerms: vi.fn(), getDistractors: vi.fn() }));
import { getGameTerms, getDistractors } from "@glossa/db";
import { getGameTerms, getDistractors } from "@lila/db";
import { createApp } from "../app.js";
const app = createApp();

View file

@ -1,5 +1,5 @@
import type { Request, Response, NextFunction } from "express";
import { GameRequestSchema, AnswerSubmissionSchema } from "@glossa/shared";
import { GameRequestSchema, AnswerSubmissionSchema } from "@lila/shared";
import { createGameSession, evaluateAnswer } from "../services/gameService.js";
import { ValidationError } from "../errors/AppError.js";

View file

@ -1,7 +1,7 @@
import { betterAuth } from "better-auth";
import { drizzleAdapter } from "better-auth/adapters/drizzle";
import { db } from "@glossa/db";
import * as schema from "@glossa/db/schema";
import { db } from "@lila/db";
import * as schema from "@lila/db/schema";
export const auth = betterAuth({
database: drizzleAdapter(db, { provider: "pg", schema }),

View file

@ -1,12 +1,9 @@
import { describe, it, expect, vi, beforeEach } from "vitest";
import type { GameRequest, AnswerSubmission } from "@glossa/shared";
import type { GameRequest, AnswerSubmission } from "@lila/shared";
vi.mock("@glossa/db", () => ({
getGameTerms: vi.fn(),
getDistractors: vi.fn(),
}));
vi.mock("@lila/db", () => ({ getGameTerms: vi.fn(), getDistractors: vi.fn() }));
import { getGameTerms, getDistractors } from "@glossa/db";
import { getGameTerms, getDistractors } from "@lila/db";
import { createGameSession, evaluateAnswer } from "./gameService.js";
const mockGetGameTerms = vi.mocked(getGameTerms);

View file

@ -1,5 +1,5 @@
import { randomUUID } from "crypto";
import { getGameTerms, getDistractors } from "@glossa/db";
import { getGameTerms, getDistractors } from "@lila/db";
import type {
GameRequest,
GameSession,
@ -7,7 +7,7 @@ import type {
AnswerOption,
AnswerSubmission,
AnswerResult,
} from "@glossa/shared";
} from "@lila/shared";
import { InMemoryGameSessionStore } from "../gameSessionStore/index.js";
import { NotFoundError } from "../errors/AppError.js";

View file

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>glossa</title>
<title>lila</title>
<!--TODO: add favicon-->
<link rel="icon" href="data:," />
</head>

View file

@ -1,5 +1,5 @@
{
"name": "@glossa/web",
"name": "@lila/web",
"private": true,
"version": "0.0.0",
"type": "module",
@ -9,7 +9,7 @@
"preview": "vite preview"
},
"dependencies": {
"@glossa/shared": "workspace:*",
"@lila/shared": "workspace:*",
"@tailwindcss/vite": "^4.2.2",
"@tanstack/react-router": "^1.168.1",
"@tanstack/react-router-devtools": "^1.166.10",

View file

@ -4,8 +4,8 @@ import {
SUPPORTED_POS,
DIFFICULTY_LEVELS,
GAME_ROUNDS,
} from "@glossa/shared";
import type { GameRequest } from "@glossa/shared";
} from "@lila/shared";
import type { GameRequest } from "@lila/shared";
const LABELS: Record<string, string> = {
en: "English",
@ -92,7 +92,7 @@ export const GameSetup = ({ onStart }: GameSetupProps) => {
return (
<div className="flex flex-col items-center gap-6 w-full max-w-md mx-auto">
<div className="bg-white rounded-3xl shadow-lg p-8 w-full text-center">
<h1 className="text-3xl font-bold text-purple-900 mb-1">Glossa</h1>
<h1 className="text-3xl font-bold text-purple-900 mb-1">lila</h1>
<p className="text-sm text-gray-400">Set up your quiz</p>
</div>

View file

@ -1,5 +1,5 @@
import { useState } from "react";
import type { GameQuestion, AnswerResult } from "@glossa/shared";
import type { GameQuestion, AnswerResult } from "@lila/shared";
import { OptionButton } from "./OptionButton";
type QuestionCardProps = {

View file

@ -1,4 +1,4 @@
import type { AnswerResult } from "@glossa/shared";
import type { AnswerResult } from "@lila/shared";
type ScoreScreenProps = { results: AnswerResult[]; onPlayAgain: () => void };

View file

@ -14,7 +14,7 @@ const LoginPage = () => {
return (
<div className="flex flex-col items-center justify-center gap-4 p-8">
<h1 className="text-2xl font-bold">Sign in to Glossa</h1>
<h1 className="text-2xl font-bold">sign in to lila</h1>
<button
className="w-64 rounded bg-gray-800 px-4 py-2 text-white hover:bg-gray-700"
onClick={() =>

View file

@ -1,6 +1,6 @@
import { createFileRoute, redirect } from "@tanstack/react-router";
import { useState, useCallback } from "react";
import type { GameSession, GameRequest, AnswerResult } from "@glossa/shared";
import type { GameSession, GameRequest, AnswerResult } from "@lila/shared";
import { QuestionCard } from "../components/game/QuestionCard";
import { ScoreScreen } from "../components/game/ScoreScreen";
import { GameSetup } from "../components/game/GameSetup";

View file

@ -12,7 +12,7 @@
"noEmit": true,
"target": "ES2023",
"types": ["vite/client", "vitest/globals"],
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo"
},
"include": ["src", "vitest.config.ts"],
"include": ["src", "vitest.config.ts"]
}