Files
koodo-reader/package.json
2025-11-30 09:46:47 +08:00

354 lines
8.8 KiB
JSON

{
"name": "koodo-reader",
"main": "main.js",
"version": "2.2.3",
"description": "Koodo Reader is a cross-platform ebook reader",
"author": {
"name": "App by Troye",
"email": "feedback@koodoreader.com"
},
"engines": {
"node": ">=20.0.0",
"npm": ">=6.0.0"
},
"repository": "https://github.com/koodo-reader/koodo-reader",
"private": false,
"resolutions": {
"//": "See https://github.com/facebook/create-react-app/issues/11773",
"react-error-overlay": "6.0.9"
},
"dependencies": {
"@aws-sdk/client-s3": "^3.485.0",
"adm-zip": "^0.5.2",
"axios": "^0.19.2",
"basic-ftp": "^5.0.5",
"better-sqlite3": "^11.6.0",
"buffer": "^6.0.3",
"chardet": "^2.0.0",
"copy-text-to-clipboard": "^2.2.0",
"dompurify": "^3.2.4",
"electron-is-dev": "^1.1.0",
"electron-store": "^8.0.1",
"fflate": "^0.8.2",
"file-saver": "^2.0.5",
"form-data": "^4.0.2",
"fs-extra": "^9.1.0",
"hammerjs": "^2.0.8",
"howler": "^2.2.3",
"js-untar": "^2.0.0",
"jszip": "^3.10.1",
"localforage": "^1.10.0",
"mammoth": "^1.8.0",
"marked": "^15.0.11",
"megajs": "1.3.9-next.17",
"mhtml2html": "^3.0.0",
"node-machine-id": "^1.1.12",
"qs": "^6.11.2",
"rangy": "1.3.0",
"react-hot-toast": "^2.1.1",
"react-sortablejs": "^6.1.4",
"react-tooltip": "^5.28.0",
"sortablejs": "^1.15.6",
"sse.js": "^2.6.0",
"ssh2-sftp-client": "^11.0.0",
"underscore": "^1.13.7",
"uuid": "^11.0.5",
"webdav": "^5.7.1"
},
"devDependencies": {
"@types/copy-text-to-clipboard": "^2.0.4",
"@types/file-saver": "^2.0.7",
"@types/hammerjs": "^2.0.46",
"@types/i18next": "^13.0.0",
"@types/node": "^13.13.2",
"@types/react": "17.0.2",
"@types/react-dom": "17.0.2",
"@types/react-i18next": "^8.1.0",
"@types/react-lottie": "^1.2.5",
"@types/react-redux": "^7.1.7",
"@types/react-router-dom": "^5.1.6",
"@types/react-tooltip": "^4.2.4",
"@types/spark-md5": "^3.0.2",
"@types/underscore": "^1.13.0",
"@types/ws": "^8.5.5",
"classnames": "^2.2.6",
"concurrently": "^5.0.1",
"cross-env": "^6.0.3",
"electron": "^34.0.1",
"electron-builder": "^26.0.12",
"electron-rebuild": "^3.2.9",
"hard-source-webpack-plugin": "^0.13.1",
"html-react-parser": "^5.1.10",
"i18next": "^20.2.4",
"nodemon": "^3.1.3",
"rc-color-picker": "^1.2.6",
"react": "^17.0.2",
"react-device-detect": "^1.12.1",
"react-dom": "^17.0.2",
"react-dropzone": "^11.3.0",
"react-hot-loader": "^4.13.1",
"react-i18next": "^11.8.15",
"react-lottie": "^1.2.3",
"react-redux": "^7.2.0",
"react-router-dom": "^5.2.0",
"react-scripts": "^5.0.1",
"redux": "^4.0.5",
"redux-thunk": "^2.3.0",
"source-map-explorer": "^2.5.2",
"spark-md5": "^3.0.1",
"typescript": "3.8.3",
"wait-on": "^7.0.1"
},
"scripts": {
"analyze": "source-map-explorer 'build/static/js/*.js'",
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"ele": "electron .",
"dev": "concurrently \"cross-env BROWSER=none npm start\" \"wait-on http://127.0.0.1:3000/ && nodemon --watch main.js --exec electron .\"",
"release": "electron-builder",
"prerelease": "react-scripts build",
"postinstall": "sed 's/^#include .nan_scriptorigin\\.h./\\/\\/ #include nan_scriptorigin.h/' ./node_modules/nan/nan.h > ./node_modules/nan/nan.h.new && mv ./node_modules/nan/nan.h.new ./node_modules/nan/nan.h && electron-builder install-app-deps",
"rebuild": "electron-rebuild -f -w better-sqlite3"
},
"homepage": "./",
"build": {
"appId": "xyz.960960.koodo",
"productName": "Koodo Reader",
"copyright": "Copyright (c) 2020-2025 ${author}",
"files": [
"build/**/*",
"node_modules/**/*",
"package.json",
"src/assets/lib/kookit-extra.min.mjs",
"main.js"
],
"protocols": {
"name": "KoodoReader",
"schemes": [
"koodo-reader"
]
},
"directories": {
"buildResources": "assets"
},
"publish": {
"provider": "github",
"repo": "koodo-reader",
"owner": "koodo-reader"
},
"buildDependenciesFromSource": false,
"nodeGypRebuild": false,
"fileAssociations": [
{
"ext": "epub",
"icon": "assets/icons/epub",
"role": "Viewer",
"mimeType": "application/epub+zip"
},
{
"ext": "pdf",
"icon": "assets/icons/pdf",
"role": "Viewer",
"mimeType": "application/pdf"
},
{
"ext": "mobi",
"icon": "assets/icons/mobi",
"role": "Viewer",
"mimeType": "application/x-mobipocket-ebook"
},
{
"ext": "azw3",
"icon": "assets/icons/azw3",
"role": "Viewer",
"mimeType": "application/vnd.amazon.ebook"
},
{
"ext": "azw",
"icon": "assets/icons/azw3",
"role": "Viewer",
"mimeType": "application/vnd.amazon.ebook"
},
{
"ext": "cbz",
"icon": "assets/icons/comic",
"role": "Viewer",
"mimeType": "application/x-cbz"
},
{
"ext": "cbr",
"icon": "assets/icons/comic",
"role": "Viewer",
"mimeType": "application/x-cbr"
},
{
"ext": "cbt",
"icon": "assets/icons/comic",
"role": "Viewer",
"mimeType": "application/x-cbt"
},
{
"ext": "cb7",
"icon": "assets/icons/comic",
"role": "Viewer",
"mimeType": "application/x-cb7"
},
{
"ext": "fb2",
"icon": "assets/icons/fb2",
"role": "Viewer",
"mimeType": "application/x-fictionbook+xml"
}
],
"extends": null,
"dmg": {
"contents": [
{
"x": 410,
"y": 150,
"type": "link",
"path": "/Applications"
},
{
"x": 130,
"y": 150,
"type": "file"
}
]
},
"mac": {
"darkModeSupport": true,
"entitlements": "assets/macos/entitlements.mac.plist",
"entitlementsInherit": "assets/macos/entitlements.mac.plist",
"identity": "Liang Guo",
"gatekeeperAssess": false,
"hardenedRuntime": true,
"notarize": true,
"target": [
{
"target": "dmg",
"arch": [
"x64",
"arm64"
]
}
],
"icon": "assets/icons/icon.icns",
"category": "public.app-category.productivity",
"artifactName": "${productName}-${version}-${arch}.${ext}"
},
"win": {
"target": [
{
"target": "nsis",
"arch": [
"x64",
"ia32",
"arm64"
]
},
{
"target": "zip",
"arch": [
"x64"
]
},
{
"target": "portable",
"arch": [
"x64"
]
}
],
"icon": "assets/icons/icon.ico",
"artifactName": "${productName}-${version}-${arch}-Win.${ext}"
},
"linux": {
"icon": "assets/icons",
"category": "Office",
"target": [
{
"target": "snap",
"arch": [
"x64"
]
},
{
"target": "deb",
"arch": [
"x64"
]
},
{
"target": "rpm",
"arch": [
"x64"
]
},
{
"target": "AppImage",
"arch": [
"x64"
]
}
],
"artifactName": "${productName}-${version}-${arch}.${ext}"
},
"portable": {
"artifactName": "${productName}-${version}-${arch}-Portable.${ext}"
},
"appx": {
"applicationId": "com.koodoreader.electron",
"identityName": "AppbyTroye.KoodoReader",
"publisher": "CN=0AEAD7C6-DF4A-4D05-8FA0-D816D7DE37FF",
"publisherDisplayName": "App by Troye",
"artifactName": "${productName}-${version}-${arch}.${ext}",
"displayName": "Koodo Reader"
},
"nsis": {
"artifactName": "${productName}-${version}-${arch}.${ext}",
"oneClick": true,
"allowToChangeInstallationDirectory": false,
"buildUniversalInstaller": false,
"include": "assets/windows/installer.nsh"
},
"snap": {
"publish": [
{
"provider": "github"
}
]
}
},
"eslintConfig": {
"extends": "react-app",
"rules": {
"no-unused-vars": 2
}
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"babel": {
"presets": [
"react-app"
],
"plugins": [
[
"react-hot-loader/babel"
]
]
}
}