aboutsummaryrefslogtreecommitdiffstats
path: root/packages/main/package.json
Commit message (Collapse)AuthorAge
* chore(deps): bump dependenciesLibravatar Kristóf Marussy2022-05-31
| | | | Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* chore(deps): bump dependenciesLibravatar Kristóf Marussy2022-05-26
| | | | Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* chore(deps): bump dependenciesLibravatar Kristóf Marussy2022-05-16
| | | | Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* chore(deps): bump dependenciesLibravatar Kristóf Marussy2022-05-16
| | | | Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* chore(deps): bump to react 18Libravatar Kristóf Marussy2022-05-16
| | | | Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* build: integration testing supportLibravatar Kristóf Marussy2022-05-16
| | | | | | Run integration tests in an electron environment for the main process. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* refactor: config file saving and debuggingLibravatar Kristóf Marussy2022-05-16
| | | | | | | | | | Reduce the number of dependencies and the amount of code running in a security sensitive context. Instead of a deep comparison, we just compare the serialized versions of the config files. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* refactor: remove json5 dependencyLibravatar Kristóf Marussy2022-05-16
| | | | | | | Use a more standard config file format and reduce the amount of external code running in the security-sensitive context of the main process. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* chore(deps): remove ms to reduce dependency countLibravatar Kristóf Marussy2022-05-16
| | | | | | | | We can trivially do what it does, and removing it reduces the amount of external dependencies running in the security-sensitive context of the main process. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* chore(deps): upgrade dependenciesLibravatar Kristóf Marussy2022-05-16
| | | | Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* chore(deps): Bump electron to 19 for setBackgroundColor fixLibravatar Kristóf Marussy2022-05-16
| | | | | | | | Since https://github.com/electron/electron/pull/33435 has landed in electron 19 alpha, but not in 18, moving to 19 lets us remove the workarounds for setBackgroundColor. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* chore(deps): Bump dependenciesLibravatar Kristóf Marussy2022-05-16
| | | | Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* refactor: Use i18next for language resolutionLibravatar Kristóf Marussy2022-05-16
| | | | | | | | | | | | | | | | | | | Due to https://github.com/i18next/i18next/issues/1564 we still have to implement our own language resolution, but we can rely on resolvedLanguage to determine which language to pass through to the renderer. We will use the language detected by chromium as the system locale, so there is no need to use os-locale for detection any more. We use i18next in the main process do resolve the language, then set the resolve (not requested!) language in the renderer process to avoid doing resolution twice. This avoids the need in the renderer process to know the list of supported languages. We set the language and the writing direction in HTML in the renderer. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* feat(main): Language setting in config fileLibravatar Kristóf Marussy2022-05-16
| | | | | | | | | | | | | | | Load localization according to either the environment or the configuration file from the list of supported locales. Ideally, we would also set the chromium locale with --lang, but by the time we have read the config file (to known which locale to set), electron has already initialized the chromium resource bundle. So the chromium localization will always be auto-detected by chromium. Also makes startup hopefully a bit faster by doing more things concurrently while the localization and the main window is being loaded. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* chore(deps): Bump electron to 18Libravatar Kristóf Marussy2022-05-16
| | | | Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* chore(deps): Bump but keep from react 18 for nowLibravatar Kristóf Marussy2022-05-16
| | | | | | | | | We need mui and mobx-react-like support before we can upgrade. See https://github.com/mobxjs/mobx/issues/2526 for discussion about the ramifications of concurrent rendering for mobx. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* feat(main): Add localization supportLibravatar Kristóf Marussy2022-05-16
| | | | | | | | | | | | | | | | Add i18next with a custom backend to the main process to load localization from file. Missing localizations are written to a missing localizations file in debug mode, but silently fall back in production mode. We will also need to add a custom backend for the renderer process that communicates with the main process. (i18next-fs-electron-backend is not applicable here, because we need localizations both in the main and renderer processes.) Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* chore(deps): Bump dependenciesLibravatar Kristóf Marussy2022-02-24
| | | | Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* build: Add test-utils packageLibravatar Kristóf Marussy2022-02-08
| | | | | | | | | | Added as a common devDependency, this lets us handle test utility code from one place. For now, the main reason for its existence is the workaround code for importing jest-each from ESM. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* refactor: Extract resource path managementLibravatar Kristóf Marussy2022-02-08
| | | | | | | Lets us access absolute paths and URLs without directly calling node APIs. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* feat: Source mapping for stacktraces in dev modeLibravatar Kristóf Marussy2022-02-08
| | | | | | We have to cheat again and use require() to lazy load a dev dependency. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* feat: Rewrite the config if new details are addedLibravatar Kristóf Marussy2022-02-08
| | | | | | | If we generate a new ID or a new profile, it should be added to the config file immediately. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* feat: Add Profile and Service storesLibravatar Kristóf Marussy2022-02-08
| | | | | | | | | | In the main process, it is optional to specify the ID of a Profile or a Service. The missing ID will be filled in with a randomly generated one. Moreover, services without a profile will get a profile generated with the same name. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* chore(deps): update electron to version 17.0.0Libravatar Depfu Bot2022-02-08
|
* chore: Bump dependenciesLibravatar Kristóf Marussy2022-01-27
|
* Upgrade 'electron' to '16.0.7'Libravatar Vijay A2022-01-12
|
* build: Disable single-run eslint-typescriptLibravatar Kristóf Marussy2022-01-09
| | | | | | | | | See https://github.com/typescript-eslint/typescript-eslint/issues/3851 Also upgrades dependencies and simplifies eslint config (used during debugging this issue to eliminate other possible sources of errors.) Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* build: Eslint fixes for multi-module projectLibravatar Kristóf Marussy2022-01-09
| | | | Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* New configurations based on review comments (WIP)Libravatar Vijay A2022-01-09
| | | | Signed-off-by: Vijay A <vraravam@users.noreply.github.com>
* Upgrade npm modulesLibravatar Vijay A2022-01-09
| | | | Signed-off-by: Vijay A <vraravam@users.noreply.github.com>
* Upgrade 'electron' to '16.0.6'Libravatar Vijay A2022-01-04
|
* chore: Fix and bump dependenciesLibravatar Kristóf Marussy2022-01-02
| | | | | | Test devDependencies in the main package were incorrect. Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* fix: Ensure dev user directory existsLibravatar Kristóf Marussy2022-01-02
| | | | | | Fixes #5 Signed-off-by: Kristóf Marussy <kristof@marussy.com>
* build: Upgrade to chalk 5.0.0 anywaysLibravatar Kristóf Marussy2021-12-31
| | | | Requires some workarounds for ts-jest to find the vendored dependencies.
* test: Add tests for main packageLibravatar Kristóf Marussy2021-12-31
| | | | | | | | | | | | | - Changed jest to run from the root package and reference the packages as projects. This required moving the base jest config file away from the project root. - Module isolation seems to prevent ts-jest from loading the shared package, so we disabled it for now. - To better facilitate mocking, services should be split into interfaces and implementation - Had to downgrade to chald 4.1.2 as per https://github.com/chalk/chalk/releases/tag/v5.0.0 at least until https://github.com/microsoft/TypeScript/issues/46452 is resolved.
* build: Fully switch over to ESMLibravatar Kristóf Marussy2021-12-30
| | | | | | | | | | | | | | | | | | | | | | | | | | Now we can run with ESM at build and test time and transpile into commonjs for electron. This greatly simplifies testing, since we treat everything as ESM during build with esbuild anyways. Now the test environment and the build scripts match the apparent (but not the actual for the main, preload, and inject modules) runtime environment. Caveats: - We may use top-level async expressions in tests and script, but not in code that gets transpiled into commonjs or scripts that get imported by vite. The limitation w.r.t. commonjs seems fundamental. - Jest only experimentally supports ESM and there are some limitations with mocking. Most limitations (except the lack of automatic mocks) can be worked around by async importing code that uses mocks. - There are packages marked as modules (so that node reads any scripts in them as ESM) that nevertheless get transpiled into commonjs modules. However, these should be clearly marked by using a .cjs extension as their bundle. The worst offender is the root package, which has a .cjs as its main entry point that gets read by electron, but is in fact marked as a module. This doesn't seem to bother electron at all. The service-inject package is an IIFE with a .js extension, but it outputs a fully self-contained bundle, so the choice of module format should be irrelevant.
* build: Simplify clean scriptLibravatar Kristóf Marussy2021-12-30
|
* refactor: Improve loggingLibravatar Kristóf Marussy2021-12-30
|
* build: Switch to esbuildLibravatar Kristóf Marussy2021-12-30
| | | | | | | | | | We will build all packages except the frontend (where vite remains in use) with esbuild. For some reason, the @yarnpkg/esbuild-plugin-pnp doesn't allow esbuild to load esm modules and we fall back to commonjs for dependencies. Hence we had to switch back to node_modules (but still rely on yarn hardlinking for a more efficient install).
* Revert "refactor: Switch back to consola for prettyness"Libravatar Kristóf Marussy2021-12-29
| | | | This reverts commit 5c38af061348ec604337280009775832edc66270.
* refactor: Switch back to consola for prettynessLibravatar Kristóf Marussy2021-12-28
|
* refactor: Simpler logging with loglevelLibravatar Kristóf Marussy2021-12-28
|
* feat: Add consola loggingLibravatar Kristóf Marussy2021-12-28
|
* build: Disable typechecking for testsLibravatar Kristóf Marussy2021-12-28
|
* build: Simplify type declaration generationLibravatar Kristóf Marussy2021-12-28
|
* refactor: Get rid of dependency injectorLibravatar Kristóf Marussy2021-12-28
|
* refactor: Inversion of control with typed-injectLibravatar Kristóf Marussy2021-12-27
|
* chore: Bump dependency versionsLibravatar Kristóf Marussy2021-12-27
|
* refactor: Config persistence architectureLibravatar Kristóf Marussy2021-12-26
| | | | | | | | The architecture in the main process is split into 3 main parts: * services: interfaces for services are injected into the stores through the MainEnv interface (for testability) * services/impl: electron-specific implementations of services * stores: the actions of the stores can invoke (asynchronous) services
* feat: Switch to json5 config formatLibravatar Kristóf Marussy2021-12-26
|