super-productivity/package.json
Johannes Millan 83e52853ec chore(deps): pin npm version to remove lockfile drift
Contributors on npm 10 (Node 22's bundled default) vs npm 11 reconcile the
app-builder-lib.minimatch override differently, rewriting package-lock.json on
npm install. Pin npm 11.7.0 via the standard packageManager field (Corepack)
and complete the existing volta block so volta users pick it up automatically.

Ref: discussion #8869
2026-07-10 10:34:53 +02:00

369 lines
23 KiB
JSON

{
"name": "superProductivity",
"version": "18.13.1",
"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",
"postinstall": "patch-package",
"prepare": "husky && ts-patch install && npm run env && npm run sync-core:build && npm run sync-providers:build && 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 android",
"buildFrontend:e2e": "npm run plugins:build && npm run env && ng build",
"serveFrontend:e2e:prod": "npx http-server .tmp/angular-dist/browser -p 4242 -c-1 --proxy http://localhost:4242?",
"e2e": "npm run e2e:all -- --grep-invert \"@supersync|@webdav\"",
"e2e:all": "npx playwright test --config e2e/playwright.config.ts --reporter=line",
"e2e:ci": "npm run e2e",
"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": "sh -c 'docker compose up -d webdav && ./scripts/wait-for-webdav.sh && E2E_REQUIRE_WEBDAV=true npm run e2e:all -- --grep @webdav \"$@\"; EXIT_CODE=$?; docker compose down; exit $EXIT_CODE' --",
"e2e:webdav:file": "sh -c 'docker compose up -d webdav && ./scripts/wait-for-webdav.sh && E2E_REQUIRE_WEBDAV=true E2E_VERBOSE=true npx playwright test --config e2e/playwright.config.ts --reporter=list \"$@\"; EXIT_CODE=$?; docker compose down; exit $EXIT_CODE' --",
"e2e:supersync": "sh -c 'docker compose -f docker-compose.yaml -f docker-compose.supersync.yaml up -d --build supersync && ./scripts/wait-for-supersync.sh && E2E_REQUIRE_SUPERSYNC=true npm run e2e:all -- --grep @supersync --workers=3 \"$@\"; EXIT_CODE=$?; docker compose -f docker-compose.yaml -f docker-compose.supersync.yaml down supersync; exit $EXIT_CODE' --",
"e2e:supersync:file": "sh -c 'docker compose -f docker-compose.yaml -f docker-compose.supersync.yaml up -d --build supersync && ./scripts/wait-for-supersync.sh && E2E_REQUIRE_SUPERSYNC=true E2E_VERBOSE=true npx playwright test --config e2e/playwright.config.ts --reporter=list --workers=3 \"$@\"; EXIT_CODE=$?; docker compose -f docker-compose.yaml -f docker-compose.supersync.yaml down supersync; exit $EXIT_CODE' --",
"supersync:up": "docker compose -f docker-compose.yaml -f docker-compose.supersync.yaml up -d --build supersync && ./scripts/wait-for-supersync.sh",
"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; EXIT_CODE=$?; docker compose -f docker-compose.e2e.yaml down; exit $EXIT_CODE",
"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_REQUIRE_WEBDAV=true E2E_BASE_URL=http://localhost:${APP_PORT:-4242} npm run e2e:all -- --grep @webdav; EXIT_CODE=$?; docker compose -f docker-compose.e2e.yaml down; exit $EXIT_CODE",
"e2e:docker:all": "docker compose -f docker-compose.e2e.yaml -f docker-compose.yaml -f docker-compose.supersync.yaml up -d app webdav db supersync && ./scripts/wait-for-app.sh && ./scripts/wait-for-webdav.sh && ./scripts/wait-for-supersync.sh && E2E_REQUIRE_WEBDAV=true E2E_REQUIRE_SUPERSYNC=true E2E_BASE_URL=http://localhost:${APP_PORT:-4242} npm run e2e:all -- --workers=6; EXIT_CODE=$?; docker compose -f docker-compose.e2e.yaml -f docker-compose.yaml -f docker-compose.supersync.yaml down; exit $EXIT_CODE",
"screenshots": "npm run screenshots:capture && npm run screenshots:build",
"screenshots:capture": "npx playwright test --config e2e/playwright.store-screenshots.config.ts",
"screenshots:capture:desktop": "npx playwright test --config e2e/playwright.store-screenshots.config.ts --project=desktopMaster",
"screenshots:capture:mobile": "npx playwright test --config e2e/playwright.store-screenshots.config.ts --project=iphone69 --project=ipad13 --project=androidPhone --project=android7Tablet --project=android10Tablet",
"screenshots:build": "TS_NODE_COMPILER_OPTIONS='{\"module\":\"commonjs\",\"moduleResolution\":\"node\"}' npx ts-node --transpile-only e2e/store-screenshots/build-store-assets.ts",
"screenshots:build:flathub": "SP_SCREENSHOTS_STORE=flathub npm run screenshots:build",
"screenshots:capture:electron": "npm run electron:build && SCREENSHOT_MODE=electron npx playwright test --config e2e/playwright.store-screenshots.electron.config.ts",
"screenshots:capture:flathub": "SP_SCREENSHOT_BG_DISABLE=1 npm run screenshots:capture:electron",
"screenshots:electron": "npm run screenshots:capture:electron && npm run screenshots:build",
"screenshots:flathub": "npm run screenshots:capture:flathub && npm run screenshots:build:flathub",
"video": "npm run video:capture && npm run video:build && npm run video:open",
"video:capture": "npx playwright test --config e2e/playwright.store-video.config.ts",
"video:build": "TS_NODE_COMPILER_OPTIONS='{\"module\":\"commonjs\",\"moduleResolution\":\"node\"}' npx ts-node --transpile-only e2e/store-video/build-video.ts",
"video:open": "TS_NODE_COMPILER_OPTIONS='{\"module\":\"commonjs\",\"moduleResolution\":\"node\"}' npx ts-node --transpile-only e2e/store-video/open-video.ts",
"video:full": "cross-env REEL_VARIANT=full npm run video",
"video:ms-store": "cross-env REEL_VARIANT=ms-store npm run video",
"video:shorts": "cross-env REEL_VARIANT=shorts npm run video",
"video:keyboard": "cross-env REEL_VARIANT=keyboard npm run video",
"video:mobile": "cross-env REEL_VARIANT=mobile npm run video",
"electron": "NODE_ENV=PROD electron .",
"electron:build": "node ./tools/build-wayland-idle-helper.js && tsc -p electron/tsconfig.electron.json && node electron/scripts/bundle-preload.js",
"electron:verify-asar": "node tools/verify-electron-requires.js .tmp/app-builds/linux-unpacked/resources/app.asar",
"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 && npm run test:lint-rules",
"test:lint-rules": "node eslint-local-rules/run-specs.js",
"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 dist",
"removeWOFF1": "node ./tools/remove-woff.js",
"serveProd": "node ./tools/load-env.js --ensure && ng serve --configuration production",
"start": "npm run electron:build && cross-env NODE_ENV=DEV electron .",
"serve": "node ./tools/load-env.js --ensure && ng serve",
"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": "npm run packages:test && npm run release-notes: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 && node ./tools/bump-android-version.js && git add -A",
"version:ai:codex": "cross-env SP_RELEASE_NOTES_AI=codex npm version",
"version:ai:claude": "cross-env SP_RELEASE_NOTES_AI=claude npm version",
"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:electron": "node --test electron/*.test.cjs",
"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",
"release-notes:generate": "node ./tools/release-notes.js generate",
"release-notes:generate:codex": "cross-env SP_RELEASE_NOTES_AI=codex node ./tools/release-notes.js generate",
"release-notes:generate:claude": "cross-env SP_RELEASE_NOTES_AI=claude node ./tools/release-notes.js generate",
"release-notes:prepare-play-store": "node ./tools/release-notes.js prepare-play-store",
"release-notes:test": "node --test tools/release-notes.test.js tools/prepare-appstore-release-notes.test.js tools/android-dev-version-code.test.js",
"clean:translations": "node ./tools/clean-translations.js",
"plugin-api:build": "cd packages/plugin-api && npm run build",
"packages:test": "npm run sync-core:test && npm run sync-providers:test",
"sync-core:build": "cd packages/sync-core && npm run build",
"sync-core:test": "cd packages/sync-core && npm test",
"sync-providers:build": "cd packages/sync-providers && npm run build",
"sync-providers:test": "cd packages/sync-providers && npm test",
"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 plugin-api: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/browser": "^8.0.3",
"@capacitor/ios": "^8.4.1",
"@capacitor/keyboard": "8.0.5",
"@capacitor/status-bar": "^8.0.2",
"@material-symbols/font-400": "^0.45.5",
"@noble/ciphers": "^2.2.0",
"capacitor-plugin-safe-area": "^5.0.0",
"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",
"https-proxy-agent": "^7.0.0",
"node-fetch": "^2.7.0",
"postal-mime": "^2.7.4",
"uuidv7": "^1.2.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "^21.2.17",
"@angular-eslint/builder": "^21.3.1",
"@angular-eslint/eslint-plugin": "^21.3.1",
"@angular-eslint/eslint-plugin-template": "^21.3.1",
"@angular-eslint/schematics": "^21.3.1",
"@angular-eslint/template-parser": "^21.3.1",
"@angular/animations": "^21.2.17",
"@angular/cdk": "^21.2.9",
"@angular/cli": "^21.2.17",
"@angular/common": "^21.2.17",
"@angular/compiler": "^21.2.17",
"@angular/compiler-cli": "^21.2.17",
"@angular/core": "^21.2.17",
"@angular/forms": "^21.2.17",
"@angular/language-service": "^21.2.17",
"@angular/material": "^21.2.9",
"@angular/platform-browser": "^21.2.17",
"@angular/platform-browser-dynamic": "^21.2.17",
"@angular/platform-server": "^21.2.17",
"@angular/router": "^21.2.17",
"@angular/service-worker": "^21.2.17",
"@capacitor/android": "^8.4.1",
"@capacitor/app": "^8.1.0",
"@capacitor/cli": "^8.4.1",
"@capacitor/core": "^8.4.1",
"@capacitor/filesystem": "^8.1.2",
"@capacitor/local-notifications": "^8.2.0",
"@capacitor/share": "^8.0.1",
"@capawesome/capacitor-android-dark-mode-support": "^8.0.1",
"@capawesome/capacitor-background-task": "^8.0.2",
"@csstools/stylelint-formatter-github": "^2.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.1.1",
"@ngrx/entity": "^21.1.1",
"@ngrx/schematics": "^21.1.1",
"@ngrx/store": "21.1.1",
"@ngrx/store-devtools": "^21.1.1",
"@ngx-formly/core": "^7.1.0",
"@ngx-formly/material": "^7.1.0",
"@ngx-translate/core": "^17.0.0",
"@ngx-translate/http-loader": "^17.0.0",
"@playwright/test": "^1.59.1",
"@schematics/angular": "^21.2.17",
"@types/electron": "^1.6.12",
"@types/electron-localshortcut": "^3.1.3",
"@types/file-saver": "^2.0.7",
"@types/jasmine": "^6.0.0",
"@types/jasminewd2": "~2.0.13",
"@types/node": "^22.19.17",
"@types/node-fetch": "^2.6.13",
"@types/object-path": "^0.11.4",
"@typescript-eslint/types": "^8.59.1",
"@typescript-eslint/utils": "^8.59.1",
"angular-eslint": "^21.3.1",
"angular-material-css-vars": "^10.0.0",
"baseline-browser-mapping": "^2.10.24",
"canvas-confetti": "^1.9.4",
"chai": "^6.2.2",
"chart.js": "^4.5.1",
"chrono-node": "^2.9.0",
"clipboard": "^2.0.11",
"core-js": "^3.49.0",
"cross-env": "^10.1.0",
"detect-it": "^4.0.1",
"dotenv": "^17.4.2",
"electron": "41.4.0",
"electron-builder": "^26.8.1",
"eslint": "^9.39.2",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jsdoc": "63.0.10",
"eslint-plugin-local-rules": "^3.0.2",
"eslint-plugin-prefer-arrow": "1.2.3",
"eslint-plugin-prettier": "^5.5.5",
"fake-indexeddb": "^6.2.5",
"fflate": "^0.8.2",
"file-saver": "^2.0.5",
"fs-extra": "^11.3.4",
"glob": "^13.0.6",
"http-server": "^14.1.1",
"husky": "^9.1.7",
"ical.js": "^2.2.1",
"idb": "^8.0.3",
"jasmine-core": "^6.2.0",
"jasmine-marbles": "^0.9.2",
"jasmine-spec-reporter": "~7.0.0",
"karma": "~6.4.4",
"karma-chrome-launcher": "~3.2.0",
"karma-cli": "^2.0.0",
"karma-coverage-istanbul-reporter": "~3.0.3",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "^2.2.0",
"karma-spec-reporter": "^0.0.36",
"marked": "^18.0.5",
"nanoid": "^5.1.11",
"new-github-issue-url": "^1.1.0",
"ng2-charts": "^10.0.0",
"ngx-markdown": "^21.2.0",
"patch-package": "^8.0.0",
"playwright": "^1.59.1",
"prettier": "^3.8.3",
"pretty-quick": "^4.2.2",
"query-string": "^7.1.3",
"rxjs": "^7.8.2",
"shepherd.js": "^11.2.0",
"sql.js": "^1.14.1",
"stacktrace-js": "^2.0.2",
"start-server-and-test": "^2.1.3",
"stylelint": "^17.9.1",
"stylelint-config-recommended-scss": "^17.0.1",
"ts-node": "~10.9.2",
"ts-patch": "^3.3.0",
"tslib": "^2.8.1",
"typescript": "~5.9.3",
"typescript-eslint": "^8.59.1",
"typia": "^12.0.2"
},
"overrides": {
"app-builder-lib": {
"minimatch": "10.2.5"
},
"@electron/asar": {
"minimatch": "3.1.5"
},
"@angular-devkit/build-angular": {
"http-proxy-middleware": "3.0.7"
},
"webpack-dev-server": {
"http-proxy-middleware": "2.0.10"
},
"@angular/build": {
"undici": "7.28.0"
},
"node-gyp": {
"undici": "6.27.0"
},
"sockjs": {
"uuid": "11.1.1"
},
"@babel/core": "7.29.7",
"ws": "8.21.0"
},
"optionalDependencies": {
"@lmdb/lmdb-darwin-x64": "^3.5.4",
"@lmdb/lmdb-linux-x64": "^3.5.4",
"@lmdb/lmdb-win32-x64": "^3.5.4",
"@rollup/rollup-darwin-x64": "4.60.2",
"@rollup/rollup-linux-x64-gnu": "4.60.2",
"@rollup/rollup-win32-x64-msvc": "4.60.2"
},
"workspaces": [
"packages/*"
],
"publish": [
{
"provider": "github",
"repo": "super-productivity",
"owner": "johannesjo"
}
],
"packageManager": "npm@11.7.0",
"volta": {
"node": "22.18.0",
"npm": "11.7.0"
}
}