Commit Graph

39 Commits

Author SHA1 Message Date
liuyi
fb3a0e7b8f refactor(server): auth (#5895)
Remove `next-auth` and implement our own Authorization/Authentication system from scratch.

## Server

- [x] tokens
  - [x] function
  - [x] encryption

- [x] AuthController
  - [x] /api/auth/sign-in
  - [x] /api/auth/sign-out
  - [x] /api/auth/session
  - [x] /api/auth/session (WE SUPPORT MULTI-ACCOUNT!)

- [x] OAuthPlugin
  - [x] OAuthController
  - [x] /oauth/login
  - [x] /oauth/callback
  - [x] Providers
    - [x] Google
    - [x] GitHub

## Client

- [x] useSession
- [x] cloudSignIn
- [x] cloudSignOut

## NOTE:

Tests will be adding in the future
2024-03-12 10:00:09 +00:00
JimmFly
33501d5fdc fix(electron): invalid isLinux function (#6065) 2024-03-12 10:17:53 +08:00
Peng Xiao
716f679914 feat(electron): mica styles for windows (#5802)
![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/1b59f076-fc43-42a0-899d-007aeb16a4d6.png)
2024-03-11 09:41:09 +00:00
Chen
ebf7a74387 feat: bump blocksuite (#6010) 2024-03-05 14:19:11 +08:00
Peng Xiao
3fcbfe4d30 fix(electron): electron updater issues (#6005)
- generate-yml.js does not filter files correctly
- add version to generated bundles
- change `.AppImage` to `.appimage`. See https://github.com/electron-userland/electron-builder/blob/master/packages/electron-updater/src/providers/Provider.ts#L88
2024-03-05 03:27:52 +00:00
Peng Xiao
7b31363c51 fix(electron): do not open external links in the browser for internal links in electron (#5997) 2024-03-04 09:39:03 +00:00
Peng Xiao
db1d0dcf52 fix(electron): autohide menu bar on linux (#5890) 2024-02-23 09:27:29 +00:00
JimmFly
c353b0d30f chore: replace ambiguous "page" with "doc" (#5761)
close TOV-532
2024-02-21 12:47:17 +00:00
LongYinan
fa8655e43e style: apply prefer-node-protocol lint rule (#5627)
it makes it perfectly clear that the package is a Node.js builtin module.
2024-01-19 03:47:08 +00:00
Peng Xiao
5aea84af8f fix(electron): remove cors headers hack (#5581) 2024-01-12 16:48:55 +08:00
Joooye_34
d668016e4c feat(electron): use release api to filter draft release (#5443) 2023-12-29 09:01:35 +00:00
EYHN
4e861d8118 refactor(electron): create electron api package (#5334) 2023-12-27 06:38:37 +00:00
Joooye_34
60fe5f0e87 fix(electron): set stable base url to app.affine.pro (#5401)
close TOV-282
2023-12-26 07:57:03 +00:00
Cats Juice
c2db8b356c feat(electron): handle onboarding-window moved between screens (#5345) 2023-12-21 15:44:21 +08:00
DarkSky
33a589a8ba feat: onboarding electron redirect (#5327) 2023-12-19 13:54:43 +00:00
Peng Xiao
d03567f689 fix(electron): onboarding display issue on Windows (#5320) 2023-12-19 09:32:12 +00:00
Peng Xiao
128f8066c3 fix(electron): main window should be opened first before destroying onboard window (#5319)
The issue listed on the title will prevent main window from showing on windows.
2023-12-19 09:22:44 +00:00
Cats Juice
e10609276d feat(core): add toggle workspace dialog (#5312) 2023-12-19 09:12:26 +00:00
Cats Juice
841385666e feat(core): onboarding paper enter animation (#5248) 2023-12-19 07:18:00 +00:00
Cats Juice
15dd20ef48 feat(electron): onboarding at first launch logic for client and web (#5183)
- Added a simple abstraction of persistent storage class.
- Different persistence solutions are provided for web and client.
    - web: stored in localStorage
    - client: stored in the application directory as `.json` file
- Define persistent app-config schema
- Add a new hook that can interactive with persistent-app-config reactively
2023-12-19 07:17:54 +00:00
EYHN
fe2851d3e9 refactor: workspace manager (#5060) 2023-12-15 07:20:50 +00:00
Peng Xiao
31dc1f5e00 fix(electron): use dynamic load for exposed meta (#5251)
There is high possibilities of  circular dependencies when importing `exposed-meta` module. Change it to dynamic import to mitigate the issue..
2023-12-13 05:17:17 +00:00
Peng Xiao
fcd43033fe fix(electron): sync settings from localStorage -> atom -> electron (#5020)
- moved `appSettingAtom` to infra since we now have different packages that depends on it. There is no better place to fit in for now
- use atomEffect to sync setting changes to updater related configs to Electron side
- refactored how Electron reacts to updater config changes.
2023-12-08 03:20:02 +00:00
Peng Xiao
980831f9f1 fix(electron): add debug flag for helper process (#5223) 2023-12-07 15:56:09 +00:00
Joooye_34
761c3c2551 fix(electron): only update db after data changed (#5226) 2023-12-07 12:27:53 +00:00
Peng Xiao
512504e177 fix(electron): do not restore window on get window (#5163)
fix https://github.com/toeverything/AFFiNE/issues/5161

Looks like I used window.restore incorrectly.
2023-12-02 15:13:48 +00:00
JimmFly
23518cae16 feat(core): add manual check for updates (#4957)
work for #4523

add `appBuildType` to `runtimeConfig`
add `useAppUpdater` to manage client updates

<!--
copilot:summary
-->
### <samp>🤖[[deprecated]](https://githubnext.com/copilot-for-prs-sunset) Generated by Copilot at cdd012c</samp>

This pull request refactors and enhances the update functionality for the frontend. It introduces a new custom hook `useAppUpdater` that simplifies the update logic and state management, and uses it in various components and commands. It also adds more options and feedback for the user to control and monitor the update process, such as manual download, auto-check, and auto-download toggles, and update status and progress indicators. It also updates the `AboutAffine` component to show the app icon, version, and build type. It also adds new translations, dependencies, types, and schemas related to the update functionality.

<img width="1073" alt="image" src="https://github.com/toeverything/AFFiNE/assets/102217452/16ae7a6a-0035-4e57-902b-6b8f63169501">
2023-11-29 13:31:25 +00:00
LongYinan
7a7cbc45d7 fix: add prefer-readonly rule (#5122) 2023-11-29 15:19:00 +08:00
LongYinan
bd488262fa fix: add prefer-date-now rule (#5113) 2023-11-29 04:43:55 +00:00
LongYinan
923844f302 fix: add eqeqeq lint rule (#5106) 2023-11-29 04:43:31 +00:00
Peng Xiao
7463e87742 fix(electron): clone db file when enable cloud for desktop (#5028)
At the moment on desktop the user's local blob data will be lost after enable cloud.
This is because blob data is only synced from old idb to new idb, but not sync into sqlitedb.

This pr will simply clone the db file for desktop app. It should also speed up the time when enabling cloud for a large local workspace.
2023-11-23 07:23:16 +00:00
LongYinan
3499dbbb7f feat: upgrade dependencies and lockfile (#5016)
- Close https://github.com/toeverything/AFFiNE/security/dependabot/47
2023-11-23 05:18:05 +00:00
Joooye_34
4c8d54b3a7 refactor(core): use manual upgrade to replace auto migration when web setup (#5022)
1. Split logic in `packages/common/infra/src/blocksuite/index.ts` to multiple single files
2. Move migration logic from setup to upgrade module, to prevent auto migration problems and loading problem
2023-11-23 02:26:06 +00:00
Peng Xiao
16488d594c fix(infra): compatibility fix for space prefix (#4912)
It seems there are some cases that [this upstream PR](https://github.com/toeverything/blocksuite/pull/4747) will cause data loss.

Because of some historical reasons, the page id could be different with its doc id.
It might be caused by subdoc migration in the following (not 100% sure if all white screen issue is caused by it) 0714c12703/packages/common/infra/src/blocksuite/index.ts (L538-L540)

In version 0.10, page id in spaces no longer has prefix "space:"
The data flow for fetching a doc's updates is:
- page id in `meta.pages` -> find `${page-id}` in `doc.spaces` -> `doc` -> `doc.guid`
if `doc` is not found in `doc.spaces`, a new doc will be created and its `doc.guid` is the same with its pageId
- because of guid logic change, the doc that previously prefixed with `space:` will not be found in `doc.spaces`
- when fetching the rows of this doc using the doc id === page id,
  it will return EMPTY since there is no updates associated with the page id

The provided fix in the PR will patch the `spaces` field of the root doc so that after 0.10 the page doc can still be found in the `spaces` map. It shall apply to both of the idb & sqlite datasources.

Special thanks to @lawvs 's db file for investigation!
2023-11-14 14:39:50 +08:00
Peng Xiao
a8d89254ce fix(electron): dev reload (#4911) 2023-11-12 03:19:27 +00:00
李华桥
7525126d89 fix(core): change server url of stable to insider 2023-11-10 20:07:18 +08:00
Peng Xiao
da9934fbdc fix(electron): add search to proxied url (#4852) 2023-11-06 14:47:44 +00:00
Alex Yang
97d8660a54 refactor(electron): fix vitest and add behavior test (#4655) 2023-10-18 22:14:30 -05:00
Joooye_34
bed9310519 refactor(infra): directory structure (#4615) 2023-10-18 15:30:08 +00:00