diff --git a/Dockerfile b/Dockerfile index 59b711a..2c342ea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,6 +22,7 @@ COPY package.json bun.lock ./ RUN bun install --frozen-lockfile --production COPY server/ ./server/ +COPY shared/ ./shared/ COPY --from=builder /app/dist ./dist/ RUN mkdir -p data diff --git a/server/db.test.ts b/server/db.test.ts index eef7fed..1b37155 100644 --- a/server/db.test.ts +++ b/server/db.test.ts @@ -2,7 +2,7 @@ import { existsSync, rmSync } from 'node:fs' import { tmpdir } from 'node:os' import { join } from 'node:path' import { afterEach, describe, expect, it, setSystemTime } from 'bun:test' -import { createEmptyBook, createEmptyTeachingDesign } from '../src/domain/teachingDesign' +import { createEmptyBook, createEmptyTeachingDesign } from '../shared/domain/teachingDesign' import { createBook, deleteBook, getBook, listBooks, openDb, renameBook, saveBookData, createUser, findUserByUsername, findUserById, listUsers, deleteUser, updateUserPasswordHash, diff --git a/server/db.ts b/server/db.ts index eb302b0..86a30f5 100644 --- a/server/db.ts +++ b/server/db.ts @@ -1,5 +1,5 @@ import { Database } from 'bun:sqlite' -import { createEmptyBook, type TeachingBook } from '../src/domain/teachingDesign' +import { createEmptyBook, type TeachingBook } from '../shared/domain/teachingDesign' export interface BookSummary { id: string diff --git a/server/routes/books.test.ts b/server/routes/books.test.ts index f340108..e0a8c80 100644 --- a/server/routes/books.test.ts +++ b/server/routes/books.test.ts @@ -1,7 +1,7 @@ import { beforeEach, describe, expect, it } from 'bun:test' import type { Database } from 'bun:sqlite' import { Hono } from 'hono' -import { createEmptyBook, createEmptyTeachingDesign } from '../../src/domain/teachingDesign' +import { createEmptyBook, createEmptyTeachingDesign } from '../../shared/domain/teachingDesign' import { openDb } from '../db' import { createBooksRouter } from './books' diff --git a/server/routes/books.ts b/server/routes/books.ts index f31a3d2..e00742d 100644 --- a/server/routes/books.ts +++ b/server/routes/books.ts @@ -1,6 +1,6 @@ import type { Database } from 'bun:sqlite' import { Hono } from 'hono' -import type { TeachingBook } from '../../src/domain/teachingDesign' +import type { TeachingBook } from '../../shared/domain/teachingDesign' import { createBook, deleteBook, getBook, listBooks, renameBook, saveBookData } from '../db' export function createBooksRouter(db: Database): Hono { diff --git a/src/domain/teachingDesign.test.ts b/shared/domain/teachingDesign.test.ts similarity index 100% rename from src/domain/teachingDesign.test.ts rename to shared/domain/teachingDesign.test.ts diff --git a/src/domain/teachingDesign.ts b/shared/domain/teachingDesign.ts similarity index 100% rename from src/domain/teachingDesign.ts rename to shared/domain/teachingDesign.ts diff --git a/src/App.test.ts b/src/App.test.ts index 84cd74b..3e1de6e 100644 --- a/src/App.test.ts +++ b/src/App.test.ts @@ -2,7 +2,7 @@ import { flushPromises, mount } from '@vue/test-utils' import { computed } from 'vue' import { beforeEach, describe, expect, it, vi } from 'vitest' import App from './App.vue' -import { createEmptyBook } from './domain/teachingDesign' +import { createEmptyBook } from '../shared/domain/teachingDesign' import * as booksApi from './services/booksApi' vi.mock('./services/booksApi') diff --git a/src/components/A4Workspace.test.ts b/src/components/A4Workspace.test.ts index 53c0f0b..70f2d31 100644 --- a/src/components/A4Workspace.test.ts +++ b/src/components/A4Workspace.test.ts @@ -1,6 +1,6 @@ import { mount } from '@vue/test-utils' import { describe, expect, it } from 'vitest' -import { createEmptyTeachingDesign } from '../domain/teachingDesign' +import { createEmptyTeachingDesign } from '../../shared/domain/teachingDesign' import A4Workspace from './A4Workspace.vue' describe('A4Workspace', () => { diff --git a/src/components/BookListPage.test.ts b/src/components/BookListPage.test.ts index 27744bb..aaf27fc 100644 --- a/src/components/BookListPage.test.ts +++ b/src/components/BookListPage.test.ts @@ -1,6 +1,6 @@ import { flushPromises, mount } from '@vue/test-utils' import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import { createEmptyBook } from '../domain/teachingDesign' +import { createEmptyBook } from '../../shared/domain/teachingDesign' import * as booksApi from '../services/booksApi' import BookListPage from './BookListPage.vue' diff --git a/src/components/LessonSidebar.test.ts b/src/components/LessonSidebar.test.ts index 4b7f20a..a6a5b26 100644 --- a/src/components/LessonSidebar.test.ts +++ b/src/components/LessonSidebar.test.ts @@ -1,6 +1,6 @@ import { mount } from '@vue/test-utils' import { describe, expect, it } from 'vitest' -import { createEmptyTeachingDesign } from '../domain/teachingDesign' +import { createEmptyTeachingDesign } from '../../shared/domain/teachingDesign' import LessonSidebar from './LessonSidebar.vue' describe('LessonSidebar', () => { diff --git a/src/components/PrintBook.test.ts b/src/components/PrintBook.test.ts index 6c5e8d8..2af3d0e 100644 --- a/src/components/PrintBook.test.ts +++ b/src/components/PrintBook.test.ts @@ -1,6 +1,6 @@ import { mount } from '@vue/test-utils' import { describe, expect, it } from 'vitest' -import { createEmptyTeachingDesign } from '../domain/teachingDesign' +import { createEmptyTeachingDesign } from '../../shared/domain/teachingDesign' import PrintBook from './PrintBook.vue' describe('PrintBook', () => { diff --git a/src/components/TeachingDesignPage.test.ts b/src/components/TeachingDesignPage.test.ts index 1a1e2c2..ce8679f 100644 --- a/src/components/TeachingDesignPage.test.ts +++ b/src/components/TeachingDesignPage.test.ts @@ -1,6 +1,6 @@ import { mount } from '@vue/test-utils' import { describe, expect, it } from 'vitest' -import { createEmptyTeachingDesign, type TeachingDesign } from '../domain/teachingDesign' +import { createEmptyTeachingDesign, type TeachingDesign } from '../../shared/domain/teachingDesign' import TeachingDesignPage from './TeachingDesignPage.vue' describe('TeachingDesignPage', () => { diff --git a/src/components/WorkspaceView.test.ts b/src/components/WorkspaceView.test.ts index 753a9eb..060dcf7 100644 --- a/src/components/WorkspaceView.test.ts +++ b/src/components/WorkspaceView.test.ts @@ -1,6 +1,6 @@ import { flushPromises, mount } from '@vue/test-utils' import { beforeEach, describe, expect, it, vi } from 'vitest' -import { createEmptyBook, createEmptyTeachingDesign } from '../domain/teachingDesign' +import { createEmptyBook, createEmptyTeachingDesign } from '../../shared/domain/teachingDesign' import * as booksApi from '../services/booksApi' import * as zipExporter from '../services/zipExporter' import BatchGenerateDialog from './BatchGenerateDialog.vue' diff --git a/src/composables/useTeachingBook.test.ts b/src/composables/useTeachingBook.test.ts index 49364ae..f951966 100644 --- a/src/composables/useTeachingBook.test.ts +++ b/src/composables/useTeachingBook.test.ts @@ -1,6 +1,6 @@ import { flushPromises } from '@vue/test-utils' import { beforeEach, describe, expect, it, vi } from 'vitest' -import { createEmptyBook, createEmptyTeachingDesign, type TeachingBook } from '../domain/teachingDesign' +import { createEmptyBook, createEmptyTeachingDesign, type TeachingBook } from '../../shared/domain/teachingDesign' import * as booksApi from '../services/booksApi' import { useTeachingBook } from './useTeachingBook' diff --git a/src/composables/useTeachingBook.ts b/src/composables/useTeachingBook.ts index c300758..06db554 100644 --- a/src/composables/useTeachingBook.ts +++ b/src/composables/useTeachingBook.ts @@ -4,7 +4,7 @@ import { type DesignId, type TeachingBook, type TeachingDesign, -} from '../domain/teachingDesign' +} from '../../shared/domain/teachingDesign' import * as booksApi from '../services/booksApi' import { parseTeachingDesign } from '../services/markdownParser' import { sortFilesNaturally } from '../services/naturalSort' diff --git a/src/services/booksApi.test.ts b/src/services/booksApi.test.ts index a7f08c0..b0a8c3e 100644 --- a/src/services/booksApi.test.ts +++ b/src/services/booksApi.test.ts @@ -1,5 +1,5 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' -import { createEmptyBook } from '../domain/teachingDesign' +import { createEmptyBook } from '../../shared/domain/teachingDesign' import * as booksApi from './booksApi' describe('booksApi', () => { diff --git a/src/services/booksApi.ts b/src/services/booksApi.ts index 51438d1..c3aeefa 100644 --- a/src/services/booksApi.ts +++ b/src/services/booksApi.ts @@ -1,4 +1,4 @@ -import type { TeachingBook } from '../domain/teachingDesign' +import type { TeachingBook } from '../../shared/domain/teachingDesign' import { authedFetch } from '../composables/useAuth' export interface BookSummary { diff --git a/src/services/markdownParser.ts b/src/services/markdownParser.ts index 82c68e5..b13111d 100644 --- a/src/services/markdownParser.ts +++ b/src/services/markdownParser.ts @@ -4,7 +4,7 @@ import { type ParseWarning, type TeachingDesign, type TeachingStep, -} from '../domain/teachingDesign' +} from '../../shared/domain/teachingDesign' import { extractMarkdownTable } from './markdownTable' const BR = //gi diff --git a/src/services/markdownWriter.ts b/src/services/markdownWriter.ts index d33b52b..7e836de 100644 --- a/src/services/markdownWriter.ts +++ b/src/services/markdownWriter.ts @@ -1,4 +1,4 @@ -import type { TeachingDesign } from '../domain/teachingDesign' +import type { TeachingDesign } from '../../shared/domain/teachingDesign' function escapeCell(value: string): string { return value diff --git a/src/services/zipExporter.test.ts b/src/services/zipExporter.test.ts index 6a776fa..5472637 100644 --- a/src/services/zipExporter.test.ts +++ b/src/services/zipExporter.test.ts @@ -1,6 +1,6 @@ import JSZip from 'jszip' import { describe, expect, it } from 'vitest' -import { createEmptyTeachingDesign } from '../domain/teachingDesign' +import { createEmptyTeachingDesign } from '../../shared/domain/teachingDesign' import { createBookZip } from './zipExporter' describe('createBookZip', () => { diff --git a/src/services/zipExporter.ts b/src/services/zipExporter.ts index 43d4426..4a7484e 100644 --- a/src/services/zipExporter.ts +++ b/src/services/zipExporter.ts @@ -1,5 +1,5 @@ import JSZip from 'jszip' -import type { TeachingDesign } from '../domain/teachingDesign' +import type { TeachingDesign } from '../../shared/domain/teachingDesign' import { writeTeachingDesignMarkdown } from './markdownWriter' export async function createBookZip(designs: readonly TeachingDesign[]): Promise {