forked from super-productivity/super-productivity
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpackage.json
More file actions
306 lines (306 loc) · 18.6 KB
/
package.json
File metadata and controls
306 lines (306 loc) · 18.6 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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
{
"name": "superProductivity",
"version": "17.1.8",
"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",
"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": "docker compose up -d webdav && ./scripts/wait-for-webdav.sh && npm run e2e:all -- --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:all -- --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:all -- --grep @webdav; docker compose -f docker-compose.e2e.yaml down",
"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_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",
"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",
"@material-symbols/font-400": "^0.40.2",
"@noble/ciphers": "^2.1.1",
"capacitor-plugin-safe-area": "^4.0.3",
"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.2.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.1.3",
"@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.5.0",
"@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": "^10.0.0",
"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.7.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": "^13.0.0",
"http-server": "^14.1.1",
"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.1",
"nanoid": "^5.1.6",
"new-github-issue-url": "^1.1.0",
"ng2-charts": "^8.0.0",
"ngx-markdown": "^21.0.1",
"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.57.1",
"@rollup/rollup-win32-x64-msvc": "4.52.3"
},
"workspaces": [
"packages/*"
],
"publish": [
{
"provider": "github",
"repo": "super-productivity",
"owner": "johannesjo"
}
],
"volta": {
"node": "22.18.0"
}
}