mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-01-23 02:36:05 +00:00
iOS renders transparent pixels as white, causing a white frame around the app icon. This fix generates a 1024x1024 RGB PNG (no alpha channel) from the existing build/icons/sq2160x2160.png source. Changes: - Add tools/generate-ios-icon.js script using Sharp to resize and remove alpha - Add npm script 'generate:ios-icon' for reproducible icon generation - Update AppIcon-512@2x.png to RGB format (was RGBA) - Install Sharp as dev dependency for image processing Icon is now fully opaque with correct brand blue color and white checkmark.
298 lines
18 KiB
JSON
298 lines
18 KiB
JSON
{
|
|
"name": "superProductivity",
|
|
"version": "17.0.0-RC.12",
|
|
"description": "ToDo list and Time Tracking",
|
|
"keywords": [
|
|
"ToDo",
|
|
"Task Management",
|
|
"Jira",
|
|
"GitHub",
|
|
"Time Tracking"
|
|
],
|
|
"homepage": "https://super-productivity.com",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git://github.com/super-productivity/super-productivity.git"
|
|
},
|
|
"license": "MIT",
|
|
"author": "Johannes Millan <contact@super-productivity.com> (http://super-productivity.com)",
|
|
"main": "./electron/main.js",
|
|
"scripts": {
|
|
"env": "node ./tools/load-env.js",
|
|
"assemble:android:prod": "cd android && ./gradlew assembleRelease && cd ..",
|
|
"assemble:android:stage": "cd android && ./gradlew assembleDebug && cd ..",
|
|
"prebuild": "npm run env && node ./tools/git-version.js && npm run build:packages",
|
|
"prepare": "husky && ts-patch install && npm run shared-schema:build && npm run plugin-api:build",
|
|
"build": "npm run buildAllElectron:noTests:prod",
|
|
"build:packages": "node ./packages/build-packages.js",
|
|
"buildAllElectron:noTests:prod": "npm run lint && npm run buildFrontend:prod:es6 && npm run electron:build",
|
|
"buildAllElectron:prod": "npm run env && npm run preCheck && npm run buildFrontend:prod:es6 && npm run electron:build",
|
|
"buildAllElectron:stage": "npm run preCheck && npm run buildFrontend:stage:es6 && npm run electron:build",
|
|
"buildFrontend:dev": "npm run env && ng build --configuration development",
|
|
"buildFrontend:prod:es6": "npm run prebuild && cross-env BROWSERSLIST_ENV='modern' ng build --configuration production && npm run removeWOFF1",
|
|
"buildFrontend:prod:watch": "npm run prebuild && ng build --configuration production --watch",
|
|
"buildFrontend:prodWeb": "npm run prebuild && ng build --configuration productionWeb",
|
|
"buildFrontend:stage:es6": "npm run prebuild && cross-env BROWSERSLIST_ENV='modern' ng build --configuration stage && npm run removeWOFF1",
|
|
"buildFrontend:stageWeb": "npm run prebuild && ng build --configuration stageWeb",
|
|
"buildFrontend:stageWeb:unminified": "npm run prebuild && ng build --configuration stageWeb --optimization=false --aot=false",
|
|
"dist": "npm run buildAllElectron:prod && electron-builder",
|
|
"dist:android": "npm run buildFrontend:stageWeb:unminified && npm run sync:android && npm run assemble:android:stage && echo 'Staging Android APK generated at android/app/build/outputs/apk/debug/'",
|
|
"dist:android:prod": "npm run buildFrontend:prodWeb && npm run sync:android && npm run assemble:android:prod && echo 'Production Android APK generated at android/app/build/outputs/apk/release/'",
|
|
"dist:linuxAndWin": "npm run buildAllElectron:prod && electron-builder --linux --win",
|
|
"dist:mac:dl": "cp tools/mac-profiles/dl.provisionprofile embedded.provisionprofile && electron-builder --mac",
|
|
"dist:mac:mas": "cp tools/mac-profiles/mas.provisionprofile embedded.provisionprofile; electron-builder --mac mas --config=build/electron-builder.mas.yaml",
|
|
"dist:mac:mas:buildOnly": "electron-builder --config=build/electron-builder.mas.yaml",
|
|
"dist:mac:mas:dev": "cp tools/mac-profiles/mas-dev.provisionprofile embedded.provisionprofile; electron-builder --mac mas-dev --config=build/electron-builder.mas-dev.yaml",
|
|
"dist:mac:mas:x64": "cp tools/mac-profiles/mas.provisionprofile embedded.provisionprofile; electron-builder --mac mas --config=build/electron-builder.mas.yaml --x64",
|
|
"dist:only": "electron-builder",
|
|
"dist:win": "npm run buildAllElectron:noTests:prod && electron-builder --win",
|
|
"dist:win:appx": "npm run buildAllElectron:prod && electron-builder --win --config=build/electron-builder.appx.yaml",
|
|
"dist:win:only": "electron-builder --win",
|
|
"dist:win:store": "git pull && npm run && copy electron-builder.win-store.yaml electron-builder.yaml && npm run dist:win && git checkout electron-builder.yaml || git checkout electron-builder.yaml",
|
|
"droid": "npm run buildFrontend:stageWeb:unminified && npx cap sync",
|
|
"pree2e": "npm run plugins:build",
|
|
"e2e": "npx playwright test --config e2e/playwright.config.ts --reporter=line",
|
|
"e2e:ui": "npx playwright test --config e2e/playwright.config.ts --ui",
|
|
"e2e:file": "npx playwright test --config e2e/playwright.config.ts --reporter=list",
|
|
"e2e:debug": "npx playwright test --config e2e/playwright.config.ts --debug",
|
|
"e2e:headed": "npx playwright test --config e2e/playwright.config.ts --headed",
|
|
"e2e:show-report": "npx playwright show-report .tmp/e2e-test-results/playwright-report",
|
|
"e2e:report": "PLAYWRIGHT_HTML_REPORT=1 npx playwright test --config e2e/playwright.config.ts",
|
|
"e2e:webdav": "docker compose up -d webdav && ./scripts/wait-for-webdav.sh && npm run e2e -- --grep webdav; docker compose down",
|
|
"e2e:webdav:file": "docker compose up -d webdav && ./scripts/wait-for-webdav.sh && E2E_VERBOSE=true npx playwright test --config e2e/playwright.config.ts --reporter=list; docker compose down",
|
|
"e2e:supersync": "docker compose -f docker-compose.yaml -f docker-compose.supersync.yaml up -d --build supersync && echo 'Waiting for SuperSync server...' && until curl -s http://localhost:1901/health > /dev/null 2>&1; do sleep 1; done && echo 'Server ready!' && npm run e2e -- --grep @supersync --workers=3; docker compose -f docker-compose.yaml -f docker-compose.supersync.yaml down supersync",
|
|
"e2e:supersync:file": "docker compose -f docker-compose.yaml -f docker-compose.supersync.yaml up -d --build supersync && echo 'Waiting for SuperSync server...' && until curl -s http://localhost:1901/health > /dev/null 2>&1; do sleep 1; done && echo 'Server ready!' && E2E_VERBOSE=true npx playwright test --config e2e/playwright.config.ts --reporter=list --workers=3",
|
|
"e2e:supersync:down": "docker compose -f docker-compose.yaml -f docker-compose.supersync.yaml down supersync",
|
|
"e2e:docker": "docker compose -f docker-compose.e2e.yaml up -d app && ./scripts/wait-for-app.sh && E2E_BASE_URL=http://localhost:${APP_PORT:-4242} npm run e2e; docker compose -f docker-compose.e2e.yaml down",
|
|
"e2e:docker:webdav": "docker compose -f docker-compose.e2e.yaml up -d app webdav && ./scripts/wait-for-app.sh && ./scripts/wait-for-webdav.sh && E2E_BASE_URL=http://localhost:${APP_PORT:-4242} npm run e2e; docker compose -f docker-compose.e2e.yaml down",
|
|
"electron": "NODE_ENV=PROD electron .",
|
|
"electron:build": "tsc -p electron/tsconfig.electron.json",
|
|
"electron:watch": "tsc -p electron/tsconfig.electron.json --watch",
|
|
"electronBuilderOnly": "electron-builder",
|
|
"empty": "echo 'EMPTY YEAH'",
|
|
"install:android": "adb install -r android/app/build/outputs/apk/fdroid/debug/app-fdroid-debug.apk && echo 'Staging APK installed successfully.'",
|
|
"install:android:prod": "adb install -r android/app/build/outputs/apk/fdroid/release/app-fdroid-release.apk && echo 'Production APK installed successfully.'",
|
|
"int": "node ./tools/extract-i18n-single.js",
|
|
"int:clean": "ngx-translate-extract --input ./src --output ./src/assets/i18n/*.json --clean --sort --format namespaced-json --marker _",
|
|
"int:find": "ngx-translate-extract --input ./src --output ./src/assets/i18n/*.json --sort --format namespaced-json --marker _",
|
|
"int:test": "node ./tools/test-lng-files.js",
|
|
"int:unused": "node ./tools/find-unused-translations.js",
|
|
"int:watch": "node ./tools/extract-i18n-watch.js",
|
|
"lint": "npm run lint:ts && npm run lint:scss",
|
|
"lint:ts": "ng lint",
|
|
"lint:scss": "stylelint \"**/*.scss\" -- --custom-formatter @csstools/stylelint-formatter-github",
|
|
"localInstall": "sudo echo 'Starting local install' && rm -Rf ./.tmp/angular-dist/ && rm -Rf ./.tmp/app-builds/ && npm run buildAllElectron:stage && electron-builder --linux deb && sudo dpkg -i .tmp/app-builds/superProductivity*.deb",
|
|
"localInstall:mac": "sudo echo 'Starting local install MAC. Don`t forget APPLEID & APPLEIDPASS !!' && npm run buildAllElectron:noTests:prod && sudo echo '' && electron-builder && sudo cp -rf .tmp/app-builds/mac/superProductivity.app/ /Applications/superProductivity.app",
|
|
"localInstall:prod": "sudo echo 'Starting local install PROD' && rm -Rf ./.tmp/angular-dist/ && rm -Rf ./.tmp/app-builds/ && npm run buildAllElectron:prod && electron-builder --linux deb && sudo dpkg -i .tmp/app-builds/superProductivity*.deb",
|
|
"localInstall:quick": "sudo echo 'Starting local install QUICK' && rm -Rf ./.tmp/angular-dist/ && rm -Rf ./.tmp/app-builds/ && npm run buildFrontend:stage:es6 && npm run electron:build && electron-builder --linux deb && sudo dpkg -i .tmp/app-builds/superProductivity*.deb",
|
|
"localInstall:test:snap": "sudo echo 'Starting local install SNAP QUICK' && rm -Rf ./.tmp/angular-dist/ && rm -Rf ./.tmp/app-builds/ && npm run buildFrontend:stage:es6 && npm run electron:build && electron-builder --linux snap && sudo snap install --dangerous .tmp/app-builds/superProductivity*.snap",
|
|
"ng": "ng",
|
|
"pack": "electron-builder --dir",
|
|
"preCheck": "npm run lint && npm run test & npm run int:test && npm run e2e",
|
|
"release": "npm run release.changelog && npm run dist",
|
|
"release.changelog": "conventional-changelog -i CHANGELOG.md -s -p angular",
|
|
"removeWOFF1": "node ./tools/remove-woff.js",
|
|
"serveProd": "ng serve --configuration production",
|
|
"start": "npm run electron:build && cross-env NODE_ENV=DEV electron .",
|
|
"startFrontend": "npm run env && ng serve",
|
|
"startFrontend:e2e": "npm run env && ng serve --port=4242",
|
|
"startFrontend:prod": "npm run env && ng serve --configuration production",
|
|
"startFrontend:stage": "npm run env && ng serve --configuration stage",
|
|
"generate:ios-icon": "node tools/generate-ios-icon.js",
|
|
"sync:android": "npx cap sync android",
|
|
"sync:ios": "npx cap sync ios",
|
|
"dist:ios:prod": "npm run buildFrontend:prodWeb && npm run sync:ios",
|
|
"stats": "ng build --configuration production --source-map --stats-json && npx esbuild-visualizer --metadata .tmp/angular-dist/stats.json && xdg-open stats.html",
|
|
"test": "cross-env TZ='Europe/Berlin' ng test --watch=false && npm run test:tz:ci",
|
|
"test:once": "cross-env TZ='Europe/Berlin' ng test --watch=false",
|
|
"test:watch": "cross-env TZ='Europe/Berlin' ng test --browsers ChromeHeadless",
|
|
"test:tz:ci": "npm run test:tz:la",
|
|
"test:tz:la": "cross-env TZ='America/Los_Angeles' ng test --watch=false --include='**/*.spec.ts'",
|
|
"test:tz:tokyo": "cross-env TZ='Asia/Tokyo' ng test --watch=false --include='**/*.spec.ts'",
|
|
"test:tz:sydney": "cross-env TZ='Australia/Sydney' ng test --watch=false --include='**/*.spec.ts'",
|
|
"test:tz:utc": "cross-env TZ='UTC' ng test --watch=false --include='**/*.spec.ts'",
|
|
"test:tz:all": "npm run test && npm run test:tz:la && npm run test:tz:tokyo && npm run test:tz:sydney && npm run test:tz:utc",
|
|
"test:date-utils": "cross-env TZ='Europe/Berlin' ng test --watch=false --include='src/app/util/**/format-*.spec.ts' --include='src/app/util/**/date-*.spec.ts'",
|
|
"test:date-utils:tz": "npm run test:date-utils && cross-env TZ='America/Los_Angeles' npm run test:date-utils && cross-env TZ='Asia/Tokyo' npm run test:date-utils",
|
|
"version": "npm run prebuild && npm run release.changelog && node ./tools/bump-android-version.js && git add -A",
|
|
"prettier": "pretty-quick",
|
|
"prettier:file": "prettier --write",
|
|
"lint:file": "ng lint --lint-file-patterns",
|
|
"test:file": "cross-env TZ='Europe/Berlin' ng test --watch=false --include",
|
|
"test:fast": "cross-env TZ='Europe/Berlin' NODE_OPTIONS='--max-old-space-size=4096' ng test --watch=false --no-code-coverage --source-map=false",
|
|
"test:fast:watch": "cross-env TZ='Europe/Berlin' NODE_OPTIONS='--max-old-space-size=4096' ng test --browsers ChromeHeadless --no-code-coverage --source-map=false",
|
|
"test:shard:features": "cross-env TZ='Europe/Berlin' ng test --watch=false --include='src/app/features/**/*.spec.ts'",
|
|
"test:shard:ui": "cross-env TZ='Europe/Berlin' ng test --watch=false --include='src/app/ui/**/*.spec.ts'",
|
|
"test:shard:core": "cross-env TZ='Europe/Berlin' ng test --watch=false --include='src/app/core/**/*.spec.ts'",
|
|
"test:shard:util": "cross-env TZ='Europe/Berlin' ng test --watch=false --include='src/app/util/**/*.spec.ts'",
|
|
"checkFile": "node tools/check-file.js",
|
|
"clean:translations": "node ./tools/clean-translations.js",
|
|
"plugin-api:build": "cd packages/plugin-api && npm run build",
|
|
"shared-schema:build": "cd packages/shared-schema && npm run build",
|
|
"plugin-api:build:watch": "cd packages/plugin-api && npm run build:watch",
|
|
"vite-plugin:build": "cd packages/vite-plugin && npm run build",
|
|
"plugins:build": "npm run vite-plugin:build && cd packages/plugin-dev && npm run build:all",
|
|
"plugins:build:silent": "npm run vite-plugin:build && cd packages/plugin-dev && npm run build:all:silent"
|
|
},
|
|
"resolutions": {
|
|
"sass": "1.32.6",
|
|
"@ctrl/tinycolor": "4.1.0"
|
|
},
|
|
"dependencies": {
|
|
"@capacitor/ios": "^7.4.4",
|
|
"@capacitor/keyboard": "^7.0.4",
|
|
"@capacitor/status-bar": "^7.0.4",
|
|
"electron-dl": "^3.5.2",
|
|
"electron-localshortcut": "^3.2.1",
|
|
"electron-log": "^5.4.3",
|
|
"electron-window-state": "^5.0.3",
|
|
"hash-wasm": "^4.12.0",
|
|
"node-fetch": "^2.7.0",
|
|
"uuidv7": "^1.1.0"
|
|
},
|
|
"devDependencies": {
|
|
"@angular-devkit/build-angular": "^21.0.5",
|
|
"@angular-eslint/builder": "^21.1.0",
|
|
"@angular-eslint/eslint-plugin": "^21.1.0",
|
|
"@angular-eslint/eslint-plugin-template": "^21.1.0",
|
|
"@angular-eslint/schematics": "^21.1.0",
|
|
"@angular-eslint/template-parser": "^21.1.0",
|
|
"@angular/animations": "^21.0.8",
|
|
"@angular/cdk": "^21.0.6",
|
|
"@angular/cli": "^21.0.5",
|
|
"@angular/common": "^21.0.8",
|
|
"@angular/compiler": "^21.0.8",
|
|
"@angular/compiler-cli": "^21.0.8",
|
|
"@angular/core": "^21.0.8",
|
|
"@angular/forms": "^21.0.8",
|
|
"@angular/language-service": "^21.0.8",
|
|
"@angular/material": "^21.0.6",
|
|
"@angular/platform-browser": "^21.0.8",
|
|
"@angular/platform-browser-dynamic": "^21.0.8",
|
|
"@angular/platform-server": "^21.0.8",
|
|
"@angular/router": "^21.0.8",
|
|
"@angular/service-worker": "^21.0.8",
|
|
"@capacitor/android": "^7.4.4",
|
|
"@capacitor/app": "^7.1.0",
|
|
"@capacitor/cli": "^7.4.4",
|
|
"@capacitor/core": "^7.4.3",
|
|
"@capacitor/filesystem": "^7.1.1",
|
|
"@capacitor/local-notifications": "^7.0.1",
|
|
"@capacitor/share": "^7.0.2",
|
|
"@capawesome/capacitor-android-dark-mode-support": "^7.0.0",
|
|
"@capawesome/capacitor-background-task": "^7.0.1",
|
|
"@csstools/stylelint-formatter-github": "^1.0.0",
|
|
"@dotenv-run/cli": "^1.3.6",
|
|
"@electron/notarize": "^3.1.1",
|
|
"@eslint/js": "^9.39.2",
|
|
"@fontsource/open-sans": "^5.2.7",
|
|
"@nextcloud/cdav-library": "^1.5.3",
|
|
"@ngrx/effects": "^21.0.1",
|
|
"@ngrx/entity": "^21.0.1",
|
|
"@ngrx/schematics": "^21.0.1",
|
|
"@ngrx/store": "21.0.1",
|
|
"@ngrx/store-devtools": "^21.0.1",
|
|
"@ngx-formly/core": "^7.0.1",
|
|
"@ngx-formly/material": "^7.0.1",
|
|
"@ngx-translate/core": "^17.0.0",
|
|
"@ngx-translate/http-loader": "^17.0.0",
|
|
"@playwright/test": "^1.57.0",
|
|
"@schematics/angular": "^21.0.0",
|
|
"@types/electron": "^1.4.38",
|
|
"@types/electron-localshortcut": "^3.1.3",
|
|
"@types/file-saver": "^2.0.5",
|
|
"@types/jasmine": "^5.1.14",
|
|
"@types/jasminewd2": "~2.0.13",
|
|
"@types/node": "^22.19.5",
|
|
"@types/node-fetch": "^2.6.6",
|
|
"@types/object-path": "^0.11.4",
|
|
"@typescript-eslint/types": "^8.17.0",
|
|
"@typescript-eslint/utils": "^8.51.0",
|
|
"angular-eslint": "^21.1.0",
|
|
"angular-material-css-vars": "^9.1.1",
|
|
"baseline-browser-mapping": "^2.9.14",
|
|
"canvas-confetti": "^1.9.4",
|
|
"chai": "^5.1.2",
|
|
"chart.js": "^4.5.1",
|
|
"chrono-node": "^2.9.0",
|
|
"clipboard": "^2.0.11",
|
|
"conventional-changelog-cli": "^5.0.0",
|
|
"core-js": "^3.47.0",
|
|
"cross-env": "^7.0.3",
|
|
"detect-it": "^4.0.1",
|
|
"electron": "37.10.3",
|
|
"electron-builder": "^26.4.0",
|
|
"eslint": "^9.39.2",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"eslint-plugin-import": "^2.32.0",
|
|
"eslint-plugin-jsdoc": "61.4.1",
|
|
"eslint-plugin-local-rules": "^3.0.2",
|
|
"eslint-plugin-prefer-arrow": "1.2.3",
|
|
"eslint-plugin-prettier": "^5.5.4",
|
|
"fflate": "^0.8.2",
|
|
"file-saver": "^2.0.5",
|
|
"fs-extra": "^11.3.3",
|
|
"glob": "^9.3.5",
|
|
"husky": "^9.1.7",
|
|
"ical.js": "^2.2.1",
|
|
"idb": "^8.0.3",
|
|
"jasmine-core": "^5.13.0",
|
|
"jasmine-marbles": "^0.9.2",
|
|
"jasmine-spec-reporter": "~7.0.0",
|
|
"jira2md": "git+https://github.com/johannesjo/J2M.git",
|
|
"karma": "~6.4.2",
|
|
"karma-chrome-launcher": "~3.2.0",
|
|
"karma-cli": "^2.0.0",
|
|
"karma-coverage-istanbul-reporter": "~3.0.2",
|
|
"karma-jasmine": "~5.1.0",
|
|
"karma-jasmine-html-reporter": "^1.6.0",
|
|
"karma-spec-reporter": "^0.0.36",
|
|
"marked": "^17.0.0",
|
|
"nanoid": "^5.1.6",
|
|
"new-github-issue-url": "^1.1.0",
|
|
"ng2-charts": "^8.0.0",
|
|
"ngx-markdown": "^21.0.0",
|
|
"playwright": "^1.57.0",
|
|
"prettier": "^3.7.4",
|
|
"pretty-quick": "^4.2.2",
|
|
"query-string": "^7.1.3",
|
|
"rxjs": "^7.8.2",
|
|
"sharp": "^0.34.5",
|
|
"shepherd.js": "^11.2.0",
|
|
"spark-md5": "^3.0.2",
|
|
"stacktrace-js": "^2.0.2",
|
|
"start-server-and-test": "^2.1.3",
|
|
"stylelint": "^16.26.1",
|
|
"stylelint-config-recommended-scss": "^14.1.0",
|
|
"ts-node": "~10.9.2",
|
|
"ts-patch": "^3.3.0",
|
|
"tslib": "^2.7.0",
|
|
"typescript": "~5.9.3",
|
|
"typescript-eslint": "^8.52.0",
|
|
"typia": "^11.0.0"
|
|
},
|
|
"overrides": {
|
|
"@conventional-changelog/git-client": "^2.5.1"
|
|
},
|
|
"optionalDependencies": {
|
|
"@lmdb/lmdb-darwin-x64": "^3.2.0",
|
|
"@lmdb/lmdb-linux-x64": "^3.4.3",
|
|
"@lmdb/lmdb-win32-x64": "^3.2.0",
|
|
"@rollup/rollup-darwin-x64": "4.53.3",
|
|
"@rollup/rollup-linux-x64-gnu": "4.27.4",
|
|
"@rollup/rollup-win32-x64-msvc": "4.52.3"
|
|
},
|
|
"workspaces": [
|
|
"packages/*"
|
|
],
|
|
"publish": [
|
|
{
|
|
"provider": "github",
|
|
"repo": "super-productivity",
|
|
"owner": "johannesjo"
|
|
}
|
|
],
|
|
"volta": {
|
|
"node": "22.18.0"
|
|
}
|
|
}
|