lo-fuzz.test.ts hands every fuzz seed to LibreOffice as .odt and .docx and compares what comes back, listing the differences LibreOffice makes by design. test:layout opens the corpus, the showcase and fuzz seeds in the browser, holds the page count against LibreOffice and checks the lines for overlap, margin escapes and stranded headings. test:monkey types at random on corpus documents and asserts the schema, undo to the start, redo, and that both saved formats read back. browser.mjs now carries the dev server and the settle helper.
78 lines
2.7 KiB
JSON
78 lines
2.7 KiB
JSON
{
|
|
"name": "edentext",
|
|
"version": "0.1.0",
|
|
"type": "module",
|
|
"description": "A fully client-side, serverless rich-text editor that saves documents as .odt",
|
|
"license": "AGPL-3.0-only",
|
|
"author": "Steffen Becker <stffn.becker@gmail.com>",
|
|
"homepage": "https://stffnb.github.io/edentext/",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/stffnb/edentext.git"
|
|
},
|
|
"scripts": {
|
|
"dev": "vite --host",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"check": "svelte-check --tsconfig ./tsconfig.json",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"test:lo": "vitest run tests/lo-roundtrip.test.ts tests/lo-fuzz.test.ts tests/lo-render-consistency.test.ts tests/lo-password.test.ts",
|
|
"test:smoke": "node tests/smoke/run.mjs",
|
|
"test:dom": "node tests/dom/run.mjs",
|
|
"test:layout": "node tests/layout/run.mjs",
|
|
"test:monkey": "node tests/monkey/run.mjs",
|
|
"test:coverage": "vitest run --coverage",
|
|
"test:parity": "node tests/render-parity/run.mjs",
|
|
"test:parity:fixtures": "node tests/render-parity/make-fixtures.mjs"
|
|
},
|
|
"devDependencies": {
|
|
"@sveltejs/vite-plugin-svelte": "^7.1.2",
|
|
"@tsconfig/svelte": "^5.0.8",
|
|
"@vitest/coverage-v8": "^4.1.10",
|
|
"dictionary-de": "^3.0.0",
|
|
"dictionary-en": "^4.0.0",
|
|
"jsdom": "^29.1.1",
|
|
"playwright-core": "^1.62.1",
|
|
"svelte": "^5.55.9",
|
|
"svelte-check": "^4.7.1",
|
|
"typescript": "^6.0.3",
|
|
"vite": "^8.0.14",
|
|
"vitest": "^4.1.9"
|
|
},
|
|
"dependencies": {
|
|
"@noble/ciphers": "^2.4.0",
|
|
"@noble/hashes": "^2.4.0",
|
|
"@tiptap/core": "^3.23.6",
|
|
"@tiptap/extension-bold": "^3.23.6",
|
|
"@tiptap/extension-bullet-list": "^3.23.6",
|
|
"@tiptap/extension-document": "^3.23.6",
|
|
"@tiptap/extension-font-family": "^3.23.6",
|
|
"@tiptap/extension-hard-break": "^3.23.6",
|
|
"@tiptap/extension-heading": "^3.23.6",
|
|
"@tiptap/extension-highlight": "3.23.6",
|
|
"@tiptap/extension-history": "^3.23.6",
|
|
"@tiptap/extension-italic": "^3.23.6",
|
|
"@tiptap/extension-link": "3.23.6",
|
|
"@tiptap/extension-list-item": "^3.23.6",
|
|
"@tiptap/extension-ordered-list": "^3.23.6",
|
|
"@tiptap/extension-paragraph": "^3.23.6",
|
|
"@tiptap/extension-placeholder": "^3.23.6",
|
|
"@tiptap/extension-strike": "^3.23.6",
|
|
"@tiptap/extension-subscript": "^3.23.6",
|
|
"@tiptap/extension-superscript": "^3.23.6",
|
|
"@tiptap/extension-table": "3.23.6",
|
|
"@tiptap/extension-text": "^3.23.6",
|
|
"@tiptap/extension-text-align": "^3.23.6",
|
|
"@tiptap/extension-text-style": "^3.23.6",
|
|
"@tiptap/extension-underline": "^3.23.6",
|
|
"@tiptap/pm": "^3.23.6",
|
|
"docx": "^9.7.1",
|
|
"html2canvas": "^1.4.1",
|
|
"hunspell-asm": "^4.0.2",
|
|
"jspdf": "^4.2.1",
|
|
"odf-kit": "^0.13.5",
|
|
"utif2": "^4.1.0"
|
|
}
|
|
}
|