{ "private": true, "name": "@deltachat-desktop/frontend", "type": "module", "license": "GPL-3.0-or-later", "scripts": { "check:types": "tsc --noEmit", "build": "pnpm build:ts && pnpm build:themes && pnpm build:static && pnpm build:source-map-support && pnpm build:scss", "build:ts": "node ./bin/build-frontend-ts.mjs", "build:source-map-support": "node ./bin/build-frontend-source_map_support.js", "build:scss": "sass ./scss/manifest.scss ./html-dist/main.css --embed-source-map --style=compressed", "build:static": "node ../../bin/copy.js ../../static ./html-dist && node ../../bin/copy.js ./static ./html-dist && node ../../bin/copy.js ../../images ./html-dist/images", "build:themes": "sass themes/light.scss static/fallback-theme.css --style=compressed --embed-source-map && node ./bin/build-frontend-themes.js", "watch": "pnpm build:source-map-support && pnpm watch:ts & pnpm watch:static & pnpm watch:scss & pnpm watch:types", "watch:ts": "pnpm build:ts -- -w", "watch:types": "npx tsc --noEmit --pretty -w --preserveWatchOutput", "watch:static": "node ../../bin/copy.js ../../static ./html-dist & node ../../bin/copy.js ./static ./html-dist & node ../../bin/copy.js ../../images ./html-dist/images", "watch:scss": "pnpm build:scss --watch", "test": "NODE_OPTIONS=\"--enable-source-maps --import ./bin/register-ts-node.mjs\" mocha 'src/tests/**/*.ts'" }, "browser": { "path": "path-browserify" }, "dependencies": { "@breezystack/lamejs": "^1.2.7", "@deltachat-desktop/runtime-interface": "link:../runtime", "@deltachat-desktop/shared": "link:../shared", "@deltachat/jsonrpc-client": "catalog:", "@emoji-mart-awesome/react": "1.0.0", "@emoji-mart/data": "1.2.1", "@jcoreio/async-throttle": "^1.6.1", "@types/linkifyjs": "^2.1.7", "classnames": "^2.5.1", "debounce": "^1.2.1", "emoji-mart-awesome": "3.0.0", "filesize": "^10.1.4", "jsqr": "^1.4.0", "linkify-plugin-hashtag": "^4.3.2", "linkifyjs": "^4.3.2", "mime-types": "catalog:", "moment": "^2.30.1", "path-browserify": "^1.0.1", "react": "^19.2.0", "react-dom": "^19.2.0", "react-string-replace": "^1.1.1", "react-virtualized-auto-sizer": "^1.0.26", "react-window": "^1.8.11", "react-window-infinite-loader": "^1.0.10", "react-zoom-pan-pinch": "^4.0.0", "use-debounce": "^3.3.0" }, "devDependencies": { "@types/chai": "catalog:", "@types/debounce": "^1.2.4", "@types/mime-types": "catalog:", "@types/mocha": "catalog:", "@types/node": "catalog:", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.2", "@types/react-window": "^1.8.8", "@types/react-window-infinite-loader": "^1.0.9", "chai": "catalog:", "esbuild": "catalog:", "esbuild-plugin-inline-worker": "^0.1.1", "mocha": "catalog:", "normalize.css": "^8.0.1", "sass": "catalog:", "source-map-support": "^0.5.21", "ts-node": "^10.9.2", "typescript": "catalog:", "typescript-plugin-css-modules": "catalog:" } }