Repository navigation
Expand file tree
/
Copy pathpackage.json
More file actions
118 lines (118 loc) · 6.14 KB
/
Copy pathpackage.json
File metadata and controls
118 lines (118 loc) · 6.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
{
"name": "readge",
"private": true,
"license": "Apache-2.0",
"version": "0.1.8",
"type": "module",
"scripts": {
"start:local": "node scripts/start-local.mjs",
"translation:setup": "node scripts/install-hymt2.mjs",
"translation:start": "node scripts/hymt2-service.mjs",
"tts:setup": "npm install --prefix local-data/kokoro-runtime --no-audit --no-fund --save-exact kokoro-js@1.2.1",
"tts:setup-french": "npm install --prefix local-data/kokoro-runtime --no-audit --no-fund --save-exact @echogarden/espeak-ng-emscripten@0.3.5 && node scripts/install-french-voice.mjs",
"tts:setup-japanese": "node scripts/install-japanese-voice.mjs",
"tts:start": "node scripts/kokoro-service.mjs",
"build:extension": "node extension/build.mjs",
"check:extension": "tsc -p extension/tsconfig.json --noEmit",
"check:dictionary": "tsc -p packages/dictionary/tsconfig.json --noEmit",
"dev": "tsx server.ts",
"build": "node scripts/build-web.mjs",
"build:particles": "npm --prefix prototypes/rec-particles run build",
"dictionary:extract": "node scripts/dictionary/extract-pack.mjs",
"dictionary:import-readage": "tsx scripts/dictionary/import-readage.ts",
"dictionary:import-wordnet": "node scripts/dictionary/import-wordnet.mjs",
"dictionary:import-french": "tsx scripts/dictionary/import-french.ts",
"dictionary:import-japanese": "tsx scripts/dictionary/import-japanese.ts",
"dictionary:report": "node scripts/dictionary/quality-report.mjs",
"dictionary:sample": "node scripts/dictionary/sample-words.mjs",
"dictionary:freeze": "node scripts/dictionary/freeze-spec.mjs",
"dictionary:sample-lock": "node scripts/dictionary/lock-sample.mjs",
"dictionary:check-forms": "tsx scripts/dictionary/check-forms.ts",
"dictionary:batch": "node scripts/dictionary/generate-batch.mjs",
"dictionary:validate": "node scripts/dictionary/validate-content.mjs",
"dictionary:pack": "node scripts/dictionary/build-pack.mjs",
"start": "node --input-type=module --eval \"process.env.NODE_ENV='production'; import('./dist/server.mjs')\"",
"preview": "vite preview",
"clean": "node -e \"const fs=require('fs');fs.rmSync('dist',{recursive:true,force:true});fs.rmSync('server.js',{force:true});fs.rmSync('dist/server.mjs',{force:true})\"",
"lint": "tsc --noEmit",
"test": "tsx --test tests/*.test.ts",
"test:memory": "tsx scripts/test-memory-system.ts",
"test:10k": "tsx --test tests/articleImportEnrichment.10k.test.ts",
"enrich:magazines": "node scripts/enrich-all-magazines.mjs",
"generate:economist-rewrites": "node scripts/generate-economist-rewrites.mjs",
"android:build": "node scripts/build-android.mjs",
"android:apk": "node scripts/check-android.mjs && node scripts/build-android.mjs --apk",
"android:check": "node scripts/check-android.mjs",
"desktop:build": "node scripts/build-desktop.mjs",
"desktop:start": "node scripts/desktop-start.mjs",
"desktop:package": "node scripts/build-desktop.mjs --installer",
"desktop:pack": "node scripts/build-desktop.mjs --dir",
"desktop:installer": "node scripts/build-desktop.mjs --installer",
"desktop:test": "node --test desktop/*.test.mjs",
"desktop:smoke": "node scripts/desktop-smoke.mjs",
"desktop:resources-check": "node scripts/desktop-resource-smoke.mjs",
"desktop:resources": "node scripts/desktop-bundle-resources.mjs",
"desktop:verify-package": "node scripts/desktop-verify-package.mjs",
"android:setup-runtime": "node scripts/prepare-android-speech.mjs --download && node scripts/prepare-android-translation.mjs --download",
"android:test-database": "node scripts/test-android-database.mjs",
"android:test-runtime": "node scripts/test-android-runtime.mjs",
"android:test-documents": "node scripts/test-android-documents.mjs && node scripts/test-android-document-parser.mjs",
"android:test-magazines": "node scripts/test-android-magazines.mjs",
"android:test-dictionaries": "node scripts/test-android-dictionaries.mjs",
"android:verify-runtime": "node scripts/verify-android-runtime.mjs",
"platforms:check": "node scripts/platform-build-info.mjs",
"platforms:test": "node --test tests/platformBuildInfo.test.mjs",
"updates:prepare": "node scripts/prepare-patch-release.mjs",
"updates:prepare-deltas": "node scripts/prepare-installer-deltas.mjs",
"updates:test-android": "node scripts/test-web-patches.mjs"
},
"dependencies": {
"@capacitor/android": "8.5.3",
"@capacitor/core": "8.5.3",
"@google/genai": "^2.4.0",
"@tailwindcss/vite": "^4.1.14",
"@vitejs/plugin-react": "^5.0.4",
"core-js": "3.50.0",
"dotenv": "^17.2.3",
"express": "^4.21.2",
"html-to-text": "^10.0.0",
"htmlparser2": "10.1.0",
"js-mdict": "6.0.8",
"jszip": "^3.10.1",
"lucide-react": "^0.546.0",
"motion": "^12.23.24",
"nextword-local-dictionary": "file:./vendor/nextword-local-dictionary",
"node-cron": "^4.6.0",
"openai": "^6.48.0",
"pdf-parse": "^2.4.5",
"react": "^19.0.1",
"react-dom": "^19.0.1",
"recharts": "^3.10.0",
"ts-fsrs": "5.4.1",
"vite": "^6.2.3",
"wink-eng-lite-web-model": "1.8.1",
"wink-nlp": "2.4.0",
"ws": "^8.21.1"
},
"devDependencies": {
"@capacitor/cli": "8.5.3",
"@csstools/postcss-cascade-layers": "6.0.2",
"@types/express": "^4.17.21",
"@types/html-to-text": "^9.0.4",
"@types/node": "^22.14.0",
"@types/node-cron": "^3.0.11",
"@types/ws": "^8.18.1",
"autoprefixer": "^10.4.21",
"classic-level": "^3.0.0",
"electron": "44.5.1",
"electron-builder": "26.15.3",
"esbuild": "^0.25.0",
"tailwindcss": "^4.1.14",
"tsx": "^4.21.0",
"typescript": "~5.8.2",
"vite": "^6.2.3"
},
"engines": {
"node": ">=22.13.0"
}
}