From 48bf9c11653ddaa6b6253dfbb9f226ae77f9c7c7 Mon Sep 17 00:00:00 2001 From: static Date: Tue, 20 Oct 2026 03:12:53 +0900 Subject: [PATCH] =?UTF-8?q?=EC=82=AC=EC=86=8C=ED=95=9C=20=EB=A6=AC?= =?UTF-8?q?=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 2 +- .gitignore | 2 +- package.json | 4 ++-- pnpm-workspace.yaml | 3 +-- src/lib/client/storage/indexed-db/cache-index.ts | 15 ++++++++------- src/params.ts | 15 +++++++++------ .../file/{[id=int] => [id=natural]}/+page.svelte | 0 .../file/{[id=int] => [id=natural]}/+page.ts | 0 .../AddToCategoryBottomSheet.svelte | 0 .../DownloadStatus.svelte | 0 .../{[id=int] => [id=natural]}/TopBarMenu.svelte | 0 .../{[[id=int]] => [[id=natural]]}/+page.svelte | 0 .../{[[id=int]] => [[id=natural]]}/+page.ts | 0 .../CategoryDeleteModal.svelte | 0 .../CategoryMenuBottomSheet.svelte | 0 .../CategoryRenameModal.svelte | 0 .../service.svelte.ts | 0 .../{[[id=int]] => [[id=natural]]}/+page.svelte | 0 .../{[[id=int]] => [[id=natural]]}/+page.ts | 0 .../DirectoryCreateModal.svelte | 0 .../DuplicateFileModal.svelte | 0 .../EntryCreateBottomSheet.svelte | 0 .../EntryDeleteModal.svelte | 0 .../EntryMenuBottomSheet.svelte | 0 .../EntryRenameModal.svelte | 0 .../TransferStatusCard.svelte | 0 .../directory-entries/DirectoryEntries.svelte | 0 .../directory-entries/UploadingFile.svelte | 0 .../directory-entries/index.ts | 0 .../service.svelte.ts | 0 .../[[thumbnail=thumbnail]]/download/+server.ts | 0 .../chunks/[index=natural]}/+server.ts | 10 +--------- src/service-worker/tsconfig.json | 4 +--- {tests => test}/e2e/auth.spec.ts | 0 {tests => test}/e2e/cache.spec.ts | 0 {tests => test}/e2e/docker-compose.yaml | 2 +- {tests => test}/e2e/files.spec.ts | 0 {tests => test}/e2e/playwright.config.ts | 0 {tests => test}/e2e/run.sh | 0 {tests => test}/e2e/streaming.spec.ts | 0 {tests => test}/e2e/support/app.ts | 0 {tests => test}/e2e/support/assets.ts | 0 {tests => test}/e2e/support/global-setup.ts | 0 {tests => test}/helpers/database.ts | 0 {tests => test}/helpers/storage.ts | 0 {tests => test}/server/deletion.test.ts | 0 {tests => test}/server/download.test.ts | 0 {tests => test}/server/ownership.test.ts | 0 {tests => test}/server/trpc.test.ts | 0 {tests => test}/server/upload.test.ts | 0 {tests => test}/setup/database.ts | 0 {tests => test}/setup/polyfills.ts | 0 {tests => test}/setup/server.ts | 0 {tests => test}/unit/chunked-upload.test.ts | 0 {tests => test}/unit/concurrency.test.ts | 0 {tests => test}/unit/crypto.test.ts | 0 {tests => test}/unit/decryption-stream.test.ts | 0 {tests => test}/unit/filesystem-cache.test.ts | 0 {tests => test}/unit/keyring.test.ts | 0 {tests => test}/unit/range.test.ts | 0 tsconfig.json | 3 +-- vitest.config.ts | 10 +++++----- 62 files changed, 31 insertions(+), 39 deletions(-) rename src/routes/(fullscreen)/file/{[id=int] => [id=natural]}/+page.svelte (100%) rename src/routes/(fullscreen)/file/{[id=int] => [id=natural]}/+page.ts (100%) rename src/routes/(fullscreen)/file/{[id=int] => [id=natural]}/AddToCategoryBottomSheet.svelte (100%) rename src/routes/(fullscreen)/file/{[id=int] => [id=natural]}/DownloadStatus.svelte (100%) rename src/routes/(fullscreen)/file/{[id=int] => [id=natural]}/TopBarMenu.svelte (100%) rename src/routes/(main)/category/{[[id=int]] => [[id=natural]]}/+page.svelte (100%) rename src/routes/(main)/category/{[[id=int]] => [[id=natural]]}/+page.ts (100%) rename src/routes/(main)/category/{[[id=int]] => [[id=natural]]}/CategoryDeleteModal.svelte (100%) rename src/routes/(main)/category/{[[id=int]] => [[id=natural]]}/CategoryMenuBottomSheet.svelte (100%) rename src/routes/(main)/category/{[[id=int]] => [[id=natural]]}/CategoryRenameModal.svelte (100%) rename src/routes/(main)/category/{[[id=int]] => [[id=natural]]}/service.svelte.ts (100%) rename src/routes/(main)/directory/{[[id=int]] => [[id=natural]]}/+page.svelte (100%) rename src/routes/(main)/directory/{[[id=int]] => [[id=natural]]}/+page.ts (100%) rename src/routes/(main)/directory/{[[id=int]] => [[id=natural]]}/DirectoryCreateModal.svelte (100%) rename src/routes/(main)/directory/{[[id=int]] => [[id=natural]]}/DuplicateFileModal.svelte (100%) rename src/routes/(main)/directory/{[[id=int]] => [[id=natural]]}/EntryCreateBottomSheet.svelte (100%) rename src/routes/(main)/directory/{[[id=int]] => [[id=natural]]}/EntryDeleteModal.svelte (100%) rename src/routes/(main)/directory/{[[id=int]] => [[id=natural]]}/EntryMenuBottomSheet.svelte (100%) rename src/routes/(main)/directory/{[[id=int]] => [[id=natural]]}/EntryRenameModal.svelte (100%) rename src/routes/(main)/directory/{[[id=int]] => [[id=natural]]}/TransferStatusCard.svelte (100%) rename src/routes/(main)/directory/{[[id=int]] => [[id=natural]]}/directory-entries/DirectoryEntries.svelte (100%) rename src/routes/(main)/directory/{[[id=int]] => [[id=natural]]}/directory-entries/UploadingFile.svelte (100%) rename src/routes/(main)/directory/{[[id=int]] => [[id=natural]]}/directory-entries/index.ts (100%) rename src/routes/(main)/directory/{[[id=int]] => [[id=natural]]}/service.svelte.ts (100%) rename src/routes/api/file/{[id=int] => [id=natural]}/[[thumbnail=thumbnail]]/download/+server.ts (100%) rename src/routes/api/upload/{[id]/chunks/[index] => [id=uuid]/chunks/[index=natural]}/+server.ts (73%) rename {tests => test}/e2e/auth.spec.ts (100%) rename {tests => test}/e2e/cache.spec.ts (100%) rename {tests => test}/e2e/docker-compose.yaml (94%) rename {tests => test}/e2e/files.spec.ts (100%) rename {tests => test}/e2e/playwright.config.ts (100%) rename {tests => test}/e2e/run.sh (100%) rename {tests => test}/e2e/streaming.spec.ts (100%) rename {tests => test}/e2e/support/app.ts (100%) rename {tests => test}/e2e/support/assets.ts (100%) rename {tests => test}/e2e/support/global-setup.ts (100%) rename {tests => test}/helpers/database.ts (100%) rename {tests => test}/helpers/storage.ts (100%) rename {tests => test}/server/deletion.test.ts (100%) rename {tests => test}/server/download.test.ts (100%) rename {tests => test}/server/ownership.test.ts (100%) rename {tests => test}/server/trpc.test.ts (100%) rename {tests => test}/server/upload.test.ts (100%) rename {tests => test}/setup/database.ts (100%) rename {tests => test}/setup/polyfills.ts (100%) rename {tests => test}/setup/server.ts (100%) rename {tests => test}/unit/chunked-upload.test.ts (100%) rename {tests => test}/unit/concurrency.test.ts (100%) rename {tests => test}/unit/crypto.test.ts (100%) rename {tests => test}/unit/decryption-stream.test.ts (100%) rename {tests => test}/unit/filesystem-cache.test.ts (100%) rename {tests => test}/unit/keyring.test.ts (100%) rename {tests => test}/unit/range.test.ts (100%) diff --git a/.dockerignore b/.dockerignore index 393fada..429a543 100644 --- a/.dockerignore +++ b/.dockerignore @@ -32,4 +32,4 @@ vite.config.js.timestamp-* vite.config.ts.timestamp-* # E2E tests -/tests/e2e/results +/test/e2e/results diff --git a/.gitignore b/.gitignore index 1582057..f5b6479 100644 --- a/.gitignore +++ b/.gitignore @@ -30,4 +30,4 @@ vite.config.js.timestamp-* vite.config.ts.timestamp-* # E2E tests -/tests/e2e/results +/test/e2e/results diff --git a/package.json b/package.json index 68a712b..c2c1a1c 100644 --- a/package.json +++ b/package.json @@ -8,13 +8,13 @@ "dev:remote": "__VITE_ADDITIONAL_SERVER_ALLOWED_HOSTS=.ts.net vite dev --host 0.0.0.0", "build": "vite build", "preview": "vite preview", - "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json && tsc --noEmit -p ./src/service-worker", + "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json && tsc --noEmit --project ./src/service-worker", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", "format": "prettier --write .", "lint": "prettier --check . && eslint .", "test": "vitest run", "test:watch": "vitest", - "test:e2e": "bash tests/e2e/run.sh", + "test:e2e": "bash test/e2e/run.sh", "db:up": "docker compose -f docker-compose.dev.yaml -p arkvault-dev up -d", "db:down": "docker compose -f docker-compose.dev.yaml -p arkvault-dev down", "db:migrate": "kysely migrate" diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index f9c9c54..146f78a 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,7 +1,6 @@ allowBuilds: argon2: true cpu-features: false - esbuild: true - exifreader: true + exifreader: false protobufjs: false ssh2: false diff --git a/src/lib/client/storage/indexed-db/cache-index.ts b/src/lib/client/storage/indexed-db/cache-index.ts index efaeb37..ded4a49 100644 --- a/src/lib/client/storage/indexed-db/cache-index.ts +++ b/src/lib/client/storage/indexed-db/cache-index.ts @@ -15,14 +15,15 @@ const cacheIndex = new Dexie("cacheIndex") as Dexie & { fileCache: EntityTable; }; -cacheIndex.version(1).stores({ - fileCache: "fileId", -}); - // Files were cached as single files before version 2 -cacheIndex.version(2).upgrade(async (trx) => { - await trx.table("fileCache").clear(); -}); +cacheIndex + .version(2) + .stores({ + fileCache: "fileId", + }) + .upgrade(async (trx) => { + await trx.table("fileCache").clear(); + }); export const getFileCacheIndex = async () => { return await cacheIndex.fileCache.toArray(); diff --git a/src/params.ts b/src/params.ts index f12fef2..db0d26d 100644 --- a/src/params.ts +++ b/src/params.ts @@ -1,10 +1,13 @@ import { defineParams } from "@sveltejs/kit/params"; +import { z } from "zod"; export const params = defineParams({ - // Positive integers such as the ids of files, directories, and categories - int: (param) => { - const value = Number(param); - return /^[1-9]\d*$/.test(param) && Number.isSafeInteger(value) ? value : undefined; - }, - thumbnail: (param) => (param === "thumbnail" ? param : undefined), + // Natural numbers starting from 1, such as the ids of files, directories, and categories + natural: z + .string() + .regex(/^[1-9]\d*$/) + .transform(Number) + .pipe(z.int()), + uuid: z.uuidv4(), + thumbnail: z.literal("thumbnail"), }); diff --git a/src/routes/(fullscreen)/file/[id=int]/+page.svelte b/src/routes/(fullscreen)/file/[id=natural]/+page.svelte similarity index 100% rename from src/routes/(fullscreen)/file/[id=int]/+page.svelte rename to src/routes/(fullscreen)/file/[id=natural]/+page.svelte diff --git a/src/routes/(fullscreen)/file/[id=int]/+page.ts b/src/routes/(fullscreen)/file/[id=natural]/+page.ts similarity index 100% rename from src/routes/(fullscreen)/file/[id=int]/+page.ts rename to src/routes/(fullscreen)/file/[id=natural]/+page.ts diff --git a/src/routes/(fullscreen)/file/[id=int]/AddToCategoryBottomSheet.svelte b/src/routes/(fullscreen)/file/[id=natural]/AddToCategoryBottomSheet.svelte similarity index 100% rename from src/routes/(fullscreen)/file/[id=int]/AddToCategoryBottomSheet.svelte rename to src/routes/(fullscreen)/file/[id=natural]/AddToCategoryBottomSheet.svelte diff --git a/src/routes/(fullscreen)/file/[id=int]/DownloadStatus.svelte b/src/routes/(fullscreen)/file/[id=natural]/DownloadStatus.svelte similarity index 100% rename from src/routes/(fullscreen)/file/[id=int]/DownloadStatus.svelte rename to src/routes/(fullscreen)/file/[id=natural]/DownloadStatus.svelte diff --git a/src/routes/(fullscreen)/file/[id=int]/TopBarMenu.svelte b/src/routes/(fullscreen)/file/[id=natural]/TopBarMenu.svelte similarity index 100% rename from src/routes/(fullscreen)/file/[id=int]/TopBarMenu.svelte rename to src/routes/(fullscreen)/file/[id=natural]/TopBarMenu.svelte diff --git a/src/routes/(main)/category/[[id=int]]/+page.svelte b/src/routes/(main)/category/[[id=natural]]/+page.svelte similarity index 100% rename from src/routes/(main)/category/[[id=int]]/+page.svelte rename to src/routes/(main)/category/[[id=natural]]/+page.svelte diff --git a/src/routes/(main)/category/[[id=int]]/+page.ts b/src/routes/(main)/category/[[id=natural]]/+page.ts similarity index 100% rename from src/routes/(main)/category/[[id=int]]/+page.ts rename to src/routes/(main)/category/[[id=natural]]/+page.ts diff --git a/src/routes/(main)/category/[[id=int]]/CategoryDeleteModal.svelte b/src/routes/(main)/category/[[id=natural]]/CategoryDeleteModal.svelte similarity index 100% rename from src/routes/(main)/category/[[id=int]]/CategoryDeleteModal.svelte rename to src/routes/(main)/category/[[id=natural]]/CategoryDeleteModal.svelte diff --git a/src/routes/(main)/category/[[id=int]]/CategoryMenuBottomSheet.svelte b/src/routes/(main)/category/[[id=natural]]/CategoryMenuBottomSheet.svelte similarity index 100% rename from src/routes/(main)/category/[[id=int]]/CategoryMenuBottomSheet.svelte rename to src/routes/(main)/category/[[id=natural]]/CategoryMenuBottomSheet.svelte diff --git a/src/routes/(main)/category/[[id=int]]/CategoryRenameModal.svelte b/src/routes/(main)/category/[[id=natural]]/CategoryRenameModal.svelte similarity index 100% rename from src/routes/(main)/category/[[id=int]]/CategoryRenameModal.svelte rename to src/routes/(main)/category/[[id=natural]]/CategoryRenameModal.svelte diff --git a/src/routes/(main)/category/[[id=int]]/service.svelte.ts b/src/routes/(main)/category/[[id=natural]]/service.svelte.ts similarity index 100% rename from src/routes/(main)/category/[[id=int]]/service.svelte.ts rename to src/routes/(main)/category/[[id=natural]]/service.svelte.ts diff --git a/src/routes/(main)/directory/[[id=int]]/+page.svelte b/src/routes/(main)/directory/[[id=natural]]/+page.svelte similarity index 100% rename from src/routes/(main)/directory/[[id=int]]/+page.svelte rename to src/routes/(main)/directory/[[id=natural]]/+page.svelte diff --git a/src/routes/(main)/directory/[[id=int]]/+page.ts b/src/routes/(main)/directory/[[id=natural]]/+page.ts similarity index 100% rename from src/routes/(main)/directory/[[id=int]]/+page.ts rename to src/routes/(main)/directory/[[id=natural]]/+page.ts diff --git a/src/routes/(main)/directory/[[id=int]]/DirectoryCreateModal.svelte b/src/routes/(main)/directory/[[id=natural]]/DirectoryCreateModal.svelte similarity index 100% rename from src/routes/(main)/directory/[[id=int]]/DirectoryCreateModal.svelte rename to src/routes/(main)/directory/[[id=natural]]/DirectoryCreateModal.svelte diff --git a/src/routes/(main)/directory/[[id=int]]/DuplicateFileModal.svelte b/src/routes/(main)/directory/[[id=natural]]/DuplicateFileModal.svelte similarity index 100% rename from src/routes/(main)/directory/[[id=int]]/DuplicateFileModal.svelte rename to src/routes/(main)/directory/[[id=natural]]/DuplicateFileModal.svelte diff --git a/src/routes/(main)/directory/[[id=int]]/EntryCreateBottomSheet.svelte b/src/routes/(main)/directory/[[id=natural]]/EntryCreateBottomSheet.svelte similarity index 100% rename from src/routes/(main)/directory/[[id=int]]/EntryCreateBottomSheet.svelte rename to src/routes/(main)/directory/[[id=natural]]/EntryCreateBottomSheet.svelte diff --git a/src/routes/(main)/directory/[[id=int]]/EntryDeleteModal.svelte b/src/routes/(main)/directory/[[id=natural]]/EntryDeleteModal.svelte similarity index 100% rename from src/routes/(main)/directory/[[id=int]]/EntryDeleteModal.svelte rename to src/routes/(main)/directory/[[id=natural]]/EntryDeleteModal.svelte diff --git a/src/routes/(main)/directory/[[id=int]]/EntryMenuBottomSheet.svelte b/src/routes/(main)/directory/[[id=natural]]/EntryMenuBottomSheet.svelte similarity index 100% rename from src/routes/(main)/directory/[[id=int]]/EntryMenuBottomSheet.svelte rename to src/routes/(main)/directory/[[id=natural]]/EntryMenuBottomSheet.svelte diff --git a/src/routes/(main)/directory/[[id=int]]/EntryRenameModal.svelte b/src/routes/(main)/directory/[[id=natural]]/EntryRenameModal.svelte similarity index 100% rename from src/routes/(main)/directory/[[id=int]]/EntryRenameModal.svelte rename to src/routes/(main)/directory/[[id=natural]]/EntryRenameModal.svelte diff --git a/src/routes/(main)/directory/[[id=int]]/TransferStatusCard.svelte b/src/routes/(main)/directory/[[id=natural]]/TransferStatusCard.svelte similarity index 100% rename from src/routes/(main)/directory/[[id=int]]/TransferStatusCard.svelte rename to src/routes/(main)/directory/[[id=natural]]/TransferStatusCard.svelte diff --git a/src/routes/(main)/directory/[[id=int]]/directory-entries/DirectoryEntries.svelte b/src/routes/(main)/directory/[[id=natural]]/directory-entries/DirectoryEntries.svelte similarity index 100% rename from src/routes/(main)/directory/[[id=int]]/directory-entries/DirectoryEntries.svelte rename to src/routes/(main)/directory/[[id=natural]]/directory-entries/DirectoryEntries.svelte diff --git a/src/routes/(main)/directory/[[id=int]]/directory-entries/UploadingFile.svelte b/src/routes/(main)/directory/[[id=natural]]/directory-entries/UploadingFile.svelte similarity index 100% rename from src/routes/(main)/directory/[[id=int]]/directory-entries/UploadingFile.svelte rename to src/routes/(main)/directory/[[id=natural]]/directory-entries/UploadingFile.svelte diff --git a/src/routes/(main)/directory/[[id=int]]/directory-entries/index.ts b/src/routes/(main)/directory/[[id=natural]]/directory-entries/index.ts similarity index 100% rename from src/routes/(main)/directory/[[id=int]]/directory-entries/index.ts rename to src/routes/(main)/directory/[[id=natural]]/directory-entries/index.ts diff --git a/src/routes/(main)/directory/[[id=int]]/service.svelte.ts b/src/routes/(main)/directory/[[id=natural]]/service.svelte.ts similarity index 100% rename from src/routes/(main)/directory/[[id=int]]/service.svelte.ts rename to src/routes/(main)/directory/[[id=natural]]/service.svelte.ts diff --git a/src/routes/api/file/[id=int]/[[thumbnail=thumbnail]]/download/+server.ts b/src/routes/api/file/[id=natural]/[[thumbnail=thumbnail]]/download/+server.ts similarity index 100% rename from src/routes/api/file/[id=int]/[[thumbnail=thumbnail]]/download/+server.ts rename to src/routes/api/file/[id=natural]/[[thumbnail=thumbnail]]/download/+server.ts diff --git a/src/routes/api/upload/[id]/chunks/[index]/+server.ts b/src/routes/api/upload/[id=uuid]/chunks/[index=natural]/+server.ts similarity index 73% rename from src/routes/api/upload/[id]/chunks/[index]/+server.ts rename to src/routes/api/upload/[id=uuid]/chunks/[index=natural]/+server.ts index 2c2f088..f04186a 100644 --- a/src/routes/api/upload/[id]/chunks/[index]/+server.ts +++ b/src/routes/api/upload/[id=uuid]/chunks/[index=natural]/+server.ts @@ -1,7 +1,6 @@ import { error } from "@sveltejs/kit"; import { Readable } from "stream"; import type { ReadableStream } from "stream/web"; -import { z } from "zod"; import { authorize } from "#lib/server/auth.ts"; import { handleAppErrors } from "#lib/server/http.ts"; import { UploadService } from "#lib/server/services/index.ts"; @@ -10,14 +9,7 @@ import type { RequestHandler } from "./$types"; export const POST: RequestHandler = handleAppErrors(async ({ locals, params, request }) => { const { userId } = await authorize(locals, "activeClient"); - const zodRes = z - .object({ - id: z.uuidv4(), - index: z.coerce.number().int().positive(), - }) - .safeParse(params); - if (!zodRes.success) error(400, "Invalid path parameters"); - const { id: sessionId, index: chunkIndex } = zodRes.data; + const { id: sessionId, index: chunkIndex } = params; if (!request.body) { error(400, "Invalid request body"); diff --git a/src/service-worker/tsconfig.json b/src/service-worker/tsconfig.json index a2024ac..c5f29e3 100644 --- a/src/service-worker/tsconfig.json +++ b/src/service-worker/tsconfig.json @@ -1,8 +1,6 @@ { "extends": "$app/tsconfig/service-worker", "compilerOptions": { - "strict": true, "noUncheckedIndexedAccess": true - }, - "include": ["."] + } } diff --git a/tests/e2e/auth.spec.ts b/test/e2e/auth.spec.ts similarity index 100% rename from tests/e2e/auth.spec.ts rename to test/e2e/auth.spec.ts diff --git a/tests/e2e/cache.spec.ts b/test/e2e/cache.spec.ts similarity index 100% rename from tests/e2e/cache.spec.ts rename to test/e2e/cache.spec.ts diff --git a/tests/e2e/docker-compose.yaml b/test/e2e/docker-compose.yaml similarity index 94% rename from tests/e2e/docker-compose.yaml rename to test/e2e/docker-compose.yaml index bc78921..0a10801 100644 --- a/tests/e2e/docker-compose.yaml +++ b/test/e2e/docker-compose.yaml @@ -49,6 +49,6 @@ services: - ../..:/work # Accessed by the tests to manipulate the stored files - ${E2E_DATA_DIR:?}:/data - command: npx playwright test -c tests/e2e/playwright.config.ts ${E2E_ARGS:-} + command: npx playwright test -c test/e2e/playwright.config.ts ${E2E_ARGS:-} depends_on: - app diff --git a/tests/e2e/files.spec.ts b/test/e2e/files.spec.ts similarity index 100% rename from tests/e2e/files.spec.ts rename to test/e2e/files.spec.ts diff --git a/tests/e2e/playwright.config.ts b/test/e2e/playwright.config.ts similarity index 100% rename from tests/e2e/playwright.config.ts rename to test/e2e/playwright.config.ts diff --git a/tests/e2e/run.sh b/test/e2e/run.sh similarity index 100% rename from tests/e2e/run.sh rename to test/e2e/run.sh diff --git a/tests/e2e/streaming.spec.ts b/test/e2e/streaming.spec.ts similarity index 100% rename from tests/e2e/streaming.spec.ts rename to test/e2e/streaming.spec.ts diff --git a/tests/e2e/support/app.ts b/test/e2e/support/app.ts similarity index 100% rename from tests/e2e/support/app.ts rename to test/e2e/support/app.ts diff --git a/tests/e2e/support/assets.ts b/test/e2e/support/assets.ts similarity index 100% rename from tests/e2e/support/assets.ts rename to test/e2e/support/assets.ts diff --git a/tests/e2e/support/global-setup.ts b/test/e2e/support/global-setup.ts similarity index 100% rename from tests/e2e/support/global-setup.ts rename to test/e2e/support/global-setup.ts diff --git a/tests/helpers/database.ts b/test/helpers/database.ts similarity index 100% rename from tests/helpers/database.ts rename to test/helpers/database.ts diff --git a/tests/helpers/storage.ts b/test/helpers/storage.ts similarity index 100% rename from tests/helpers/storage.ts rename to test/helpers/storage.ts diff --git a/tests/server/deletion.test.ts b/test/server/deletion.test.ts similarity index 100% rename from tests/server/deletion.test.ts rename to test/server/deletion.test.ts diff --git a/tests/server/download.test.ts b/test/server/download.test.ts similarity index 100% rename from tests/server/download.test.ts rename to test/server/download.test.ts diff --git a/tests/server/ownership.test.ts b/test/server/ownership.test.ts similarity index 100% rename from tests/server/ownership.test.ts rename to test/server/ownership.test.ts diff --git a/tests/server/trpc.test.ts b/test/server/trpc.test.ts similarity index 100% rename from tests/server/trpc.test.ts rename to test/server/trpc.test.ts diff --git a/tests/server/upload.test.ts b/test/server/upload.test.ts similarity index 100% rename from tests/server/upload.test.ts rename to test/server/upload.test.ts diff --git a/tests/setup/database.ts b/test/setup/database.ts similarity index 100% rename from tests/setup/database.ts rename to test/setup/database.ts diff --git a/tests/setup/polyfills.ts b/test/setup/polyfills.ts similarity index 100% rename from tests/setup/polyfills.ts rename to test/setup/polyfills.ts diff --git a/tests/setup/server.ts b/test/setup/server.ts similarity index 100% rename from tests/setup/server.ts rename to test/setup/server.ts diff --git a/tests/unit/chunked-upload.test.ts b/test/unit/chunked-upload.test.ts similarity index 100% rename from tests/unit/chunked-upload.test.ts rename to test/unit/chunked-upload.test.ts diff --git a/tests/unit/concurrency.test.ts b/test/unit/concurrency.test.ts similarity index 100% rename from tests/unit/concurrency.test.ts rename to test/unit/concurrency.test.ts diff --git a/tests/unit/crypto.test.ts b/test/unit/crypto.test.ts similarity index 100% rename from tests/unit/crypto.test.ts rename to test/unit/crypto.test.ts diff --git a/tests/unit/decryption-stream.test.ts b/test/unit/decryption-stream.test.ts similarity index 100% rename from tests/unit/decryption-stream.test.ts rename to test/unit/decryption-stream.test.ts diff --git a/tests/unit/filesystem-cache.test.ts b/test/unit/filesystem-cache.test.ts similarity index 100% rename from tests/unit/filesystem-cache.test.ts rename to test/unit/filesystem-cache.test.ts diff --git a/tests/unit/keyring.test.ts b/test/unit/keyring.test.ts similarity index 100% rename from tests/unit/keyring.test.ts rename to test/unit/keyring.test.ts diff --git a/tests/unit/range.test.ts b/test/unit/range.test.ts similarity index 100% rename from tests/unit/range.test.ts rename to test/unit/range.test.ts diff --git a/tsconfig.json b/tsconfig.json index 5a889e1..f10604c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,9 +2,8 @@ "extends": "$app/tsconfig", "compilerOptions": { "sourceMap": true, - "strict": true, "noUncheckedIndexedAccess": true }, - "include": ["src", "vite.config.ts", "tests"], + "include": ["src", "test", "*.ts"], "exclude": ["src/service-worker"] } diff --git a/vitest.config.ts b/vitest.config.ts index 91ce458..38eb9b9 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -10,17 +10,17 @@ export default defineConfig({ extends: true, test: { name: "unit", - include: ["tests/unit/**/*.test.ts"], - setupFiles: ["tests/setup/polyfills.ts"], + include: ["test/unit/**/*.test.ts"], + setupFiles: ["test/setup/polyfills.ts"], }, }, { extends: true, test: { name: "server", - include: ["tests/server/**/*.test.ts"], - globalSetup: ["tests/setup/database.ts"], - setupFiles: ["tests/setup/server.ts"], + include: ["test/server/**/*.test.ts"], + globalSetup: ["test/setup/database.ts"], + setupFiles: ["test/setup/server.ts"], // Test files share a single database fileParallelism: false, hookTimeout: 60_000,