There can be more than Notion and Miro. AFFiNE is a next-gen knowledge base that brings planning, sorting and creating all together. Privacy first, open-source, customizable and ready to use.
Go to file
LongYinan 823ea92f62
chore: bump up happy-dom version to v13 (#5569)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [happy-dom](https://togithub.com/capricorn86/happy-dom) | [`^12.10.3` -> `^13.0.0`](https://renovatebot.com/diffs/npm/happy-dom/12.10.3/13.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/happy-dom/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/happy-dom/12.10.3/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/12.10.3/13.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>capricorn86/happy-dom (happy-dom)</summary>

### [`v13.0.0`](https://togithub.com/capricorn86/happy-dom/releases/tag/v13.0.0)

[Compare Source](https://togithub.com/capricorn86/happy-dom/compare/v12.10.3...v13.0.0)

##### 💣 Breaking Changes

-   This is a big release where a lot of the code has been refactored to improve security and to be able to support the new Browser API. A big release is always a potential risk for bugs and therefore it make sense to make this a major release to avoid that consumers automatically updates to it. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))

##### 🎨 Features

-   Adds support for a Browser API similar to [Puppeteer](https://pptr.dev/) and [Playwright](https://playwright.dev/). With the Browser API, it is for example possible to create new pages and navigate in them. You can read more about it in the [Happy DOM Wiki](https://togithub.com/capricorn86/happy-dom/wiki). ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Improves security by not exposing sensitive internal logic to scripts running within the Happy DOM Browser. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Improves support for CORS management. It now supports "OPTIONS" requests to detect if the client is allowed to proceed with a cross origin request. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Adds support for HTTP response cache. The cache is in memory, but the plan is to add support for storing it on disk in the future. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Improves support for `XMLHttpRequest`. It now supports the GZip, Deflate and Brotli encodings. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Adds support for adding a process level error event listener for capturing errors. This is useful when using the Browser API, but will not work in environments such as [Jest](https://jestjs.io/) and [Vitest](https://vitest.dev/), as it collides with their error listener. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Adds support for `Ẁindow.open()`. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Adds support for `Ẁindow.close()`. This function should now be used when tearing down the environment. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Improves support for cookies. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Improves support for `HTMLIFrameElement`. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Changes export of types to use "import type" and "export type" in "index.js". This will allow transpilers/compilers to optimize better. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Adds support for navigating when clicking on an anchor link. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Adds support for navigating when setting `Location.href`. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Improves support for `MutationObserver`. It will not collect multiple records with a microtask. It now also supports `MutationObserver.takeRecords()` for records that has not yet been published. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Deprecates "[@&#8203;happy-dom/uncaught-exception-observer](https://togithub.com/happy-dom/uncaught-exception-observer)" as the functionality is supported by "happy-dom" out of the box now. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Uses Symbol for public internal properties instead of using "\_" as a prefix, so that internal properties won't be enumerable. This will also make sure that these properties won't clash with properties defined by the consumer. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))

##### 👷‍♂️ Patch fixes

-   Improves the check for if the property is a class to avoid that it gets bound in "[@&#8203;happy-dom/global-registrator](https://togithub.com/happy-dom/global-registrator)". We only want functions to get bound to the global context. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Fixes bug where `new Document()` did'nt work according to spec. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Fixes bug where several Element classes wheren't available as properties on `Window`. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Fixes bug in `Document.importNode()` where it didn't change `ownerDocument` on child nodes. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))
-   Resets static `ownerDocument` state used when creating Node instances, so that it can be garbage collected if not used anymore. ([#&#8203;466](https://togithub.com/capricorn86/happy-dom/issues/466))

***

Merry Christmas and a Happy New Year! 🎅 

This release took some time as I didn't want to release the Browser API without applying security fixes. I've also stumbled across a few other issues along the way that I felt I needed to address.

I hope you will enjoy the release!

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5In0=-->
2024-01-16 15:27:24 +00:00
.cargo fix(native): static link msvc runtime on Windows (#3773) 2023-08-16 14:55:37 -05:00
.codesandbox refactor!: remove next.js (#3267) 2023-07-18 16:53:10 +00:00
.devcontainer chore: add devcontainer config (#4974) 2023-11-17 17:54:19 +08:00
.github fix: improve self-host convenience (#5582) 2024-01-15 09:24:53 +00:00
.husky chore: move cargo fmt to lint-staged from pre-commit (#5150) 2023-12-04 06:42:54 +00:00
.vscode refactor(infra): directory structure (#4615) 2023-10-18 15:30:08 +00:00
.yarn chore(core): remove affine/cmdk package (#5552) 2024-01-10 05:25:37 +00:00
docs docs: initial api reference docs (#5352) 2024-01-02 12:46:27 +00:00
packages chore: bump up @blocksuite/icons version to v2.1.41 (#5580) 2024-01-16 15:11:36 +00:00
scripts feat: support self-host docker build (#5506) 2024-01-10 08:35:21 +00:00
tests chore: bump up @blocksuite/icons version to v2.1.41 (#5580) 2024-01-16 15:11:36 +00:00
tools chore: bump vulnerable deps (#5494) 2024-01-02 12:32:47 +00:00
.editorconfig milestone: publish alpha version (#637) 2022-12-30 21:40:15 +08:00
.env.template feat: add captcha support for sign in/up (#4582) 2023-10-18 08:06:07 +00:00
.eslintignore refactor(infra): remove old plugin system (#5411) 2023-12-27 02:49:59 +00:00
.eslintrc.js refactor(core): move hooks to core (#5458) 2024-01-02 08:05:46 +00:00
.gitattributes milestone: publish alpha version (#637) 2022-12-30 21:40:15 +08:00
.gitignore feat: upgrade dependencies and lockfile (#5016) 2023-11-23 05:18:05 +00:00
.i18n-codegen.json refactor(infra): directory structure (#4615) 2023-10-18 15:30:08 +00:00
.npmrc chore: restrict node version (#3120) 2023-07-10 06:19:59 +00:00
.nvmrc ci: simplify the CI (#1684) 2023-03-24 23:44:14 +08:00
.prettierignore refactor(core): onboarding using new transformer api (#5412) 2023-12-28 13:59:21 +00:00
.prettierrc chore: add lint cache (#1917) 2023-04-13 20:30:18 +00:00
.taplo.toml feat(native): provide FSWatcher 2023-05-11 14:41:51 +08:00
.yarnrc.yml chore: upgrade to yarn@4.0.2 (#5245) 2023-12-11 07:28:07 +00:00
Cargo.lock chore: bump vulnerable deps (#5494) 2024-01-02 12:32:47 +00:00
Cargo.toml refactor(infra): directory structure (#4615) 2023-10-18 15:30:08 +00:00
CHANGELOG.md milestone: publish alpha version (#637) 2022-12-30 21:40:15 +08:00
codecov.yml chore: add codecov.yml 2023-05-03 00:47:43 -05:00
LICENSE refactor(infra): directory structure (#4615) 2023-10-18 15:30:08 +00:00
LICENSE-MIT docs: update licenses (#4180) 2023-09-15 07:50:00 +00:00
nx.json feat: update nx config (#5597) 2024-01-16 06:41:46 +00:00
nyc.config.js refactor: remove package @affine/datacenter (#1705) 2023-03-27 17:48:22 -05:00
package.json chore: bump up happy-dom version to v13 (#5569) 2024-01-16 15:27:24 +00:00
README.md feat: upgrade to rust 1.75.0 (#5515) 2024-01-05 08:19:14 +00:00
rust-toolchain.toml feat: upgrade to rust 1.75.0 (#5515) 2024-01-05 08:19:14 +00:00
rustfmt.toml feat(native): provide FSWatcher 2023-05-11 14:41:51 +08:00
tsconfig.eslint.json fix: eslint stack overflow issue (#3601) 2023-08-07 07:00:57 +00:00
tsconfig.json chore(core): remove affine/cmdk package (#5552) 2024-01-10 05:25:37 +00:00
tsconfig.node.json refactor(infra): directory structure (#4615) 2023-10-18 15:30:08 +00:00
typedoc.base.json docs: initial api reference docs (#5352) 2024-01-02 12:46:27 +00:00
typedoc.json docs: initial api reference docs (#5352) 2024-01-02 12:46:27 +00:00
vitest.config.ts chore: bump up all non-major dependencies (#5499) 2024-01-05 07:23:22 +00:00
vitest.workspace.ts refactor(electron): fix vitest and add behavior test (#4655) 2023-10-18 22:14:30 -05:00
yarn.lock chore: bump up happy-dom version to v13 (#5569) 2024-01-16 15:27:24 +00:00

AFFiNE.PRO
Write, Draw and Plan All at Once

One hyper-fused platform for wildly creative minds.
A privacy-focussed, local-first, open-source, and ready-to-use alternative for Notion & Miro.

AFFiNE Web AFFiNE macOS M1/M2 Chip AFFiNE macOS x64 AFFiNE Window x64 AFFiNE Linux

Releases stars-icon All Contributors codecov Node-version-icon TypeScript-version-icon React-version-icon blocksuite-icon Rust-version-icon FOSSA Status Deploy


         

Docs, canvas and tables are hyper-merged with AFFiNE - just like the word affine (əˈɪn | a-fine).

img_v2_37a7cc04-ab3f-4405-ae9a-f84ceb4c948g

Join our community

Before we tell you how to get started with AFFiNE, we'd like to shamelessly plug our awesome user and developer communities across official social platforms! Once youre familiar with using the software, maybe you will share your wisdom with others and even consider joining the AFFiNE Ambassador program to help spread AFFiNE to the world.

Getting started & staying tuned with us.

⚠️ Please note that AFFiNE is still under active development and is not yet ready for production use. ⚠️

affine.pro No installation or registration required! Head over to our website and try it out now.

community.affine.pro Our wonderful community, where you can meet and engage with the team, developers and other like-minded enthusiastic user of AFFiNE.

Star us, and you will receive all releases notifications from GitHub without any delay! rbU3YmmsQT

Features

  • Hyper merged — Write, draw and plan all at once. Assemble any blocks you love on any canvas you like to enjoy seamless transitions between workflows with AFFiNE.
  • Privacy focussed — AFFiNE is built with your privacy in mind and is one of our key concerns. We want you to keep control of your data, allowing you to store it as you like, where you like while still being able to freely edit and view your data on-demand.
  • Offline-first — With your privacy in mind we also decided to go offline-first. This means that AFFiNE can be used offline, whether you want to view or edit, with support for conflict-free merging when you are back online.
  • Clean, intuitive design — With AFFiNE you can concentrate on editing with a clean and modern interface. Which is responsive, so it looks great on tablets too, and mobile support is coming in the future.
  • Modern Block Editor with Markdown support — A modern block editor can help you not only for docs, but slides and tables as well. When you write in AFFiNE you can use Markdown syntax which helps create an easier editing experience, that can be experienced with just a keyboard. And this allows you to export your data cleanly into Markdown.
  • Collaboration — Whether you want to collaborate with yourself across multiple devices, or work together with others, support for collaboration and multiplayer is out-of-the-box, which makes it easy for teams to get started with AFFiNE.
  • Choice of multiple languages — Thanks to community contributions AFFiNE offers support for multiple languages. If you don't find your language or would like to suggest some changes we welcome your contributions.

img_v2_3a4ee0da-6dd7-48cb-8f19-5411f86768ag

Contributing

Bug Reports Feature Requests Questions/Discussions AFFiNE Community
Create a bug report Submit a feature request Check GitHub Discussion Vist the AFFiNE Community
Something isn't working as expected An idea for a new feature, or improvements Discuss and ask questions A place to ask, learn and engage with others

Calling all developers, testers, tech writers and more! Contributions of all types are more than welcome, you can read more in docs/types-of-contributions.md. If you are interested in contributing code, read our docs/CONTRIBUTING.md and feel free to check out our GitHub issues to get stuck in to show us what youre made of.

Before you start contributing, please make sure you have read and accepted our Contributor License Agreement. To indicate your agreement, simply edit this file and submit a pull request.

For bug reports, feature requests and other suggestions you can also create a new issue and choose the most appropriate template for your feedback.

For translation and language support you can visit our i18n General Space.

Looking for others ways to contribute and wondering where to start? Check out the AFFiNE Ambassador program, we work closely with passionate community members and provide them with a wide-range of support and resources.

If you have questions, you are welcome to contact us. One of the best places to get more info and learn more is in the AFFiNE Community where you can engage with other like-minded individuals.

Ecosystem

Name
@affine/component AFFiNE Component Resources
@toeverything/y-indexeddb IndexedDB database adapter for Yjs
@toeverything/theme AFFiNE theme

Upstreams

We would also like to give thanks to open-source projects that make AFFiNE possible:

  • blocksuite - 💠 BlockSuite is the open-source collaborative editor project behind AFFiNE.
  • OctoBase - 🐙 OctoBase is the open-source database behind AFFiNE, local-first, yet collaborative. A light-weight, scalable, data engine written in Rust.
  • yjs - Fundamental support of CRDTs for our implementation on state management and data sync.
  • electron - Build cross-platform desktop apps with JavaScript, HTML, and CSS.
  • React - The library for web and native user interfaces.
  • napi-rs - A framework for building compiled Node.js add-ons in Rust via Node-API.
  • Jotai - Primitive and flexible state management for React.
  • async-call-rpc - A lightweight JSON RPC client & server.
  • Vite - Next generation frontend tooling.
  • Other upstream dependencies.

Thanks a lot to the community for providing such powerful and simple libraries, so that we can focus more on the implementation of the product logic, and we hope that in the future our projects will also provide a more easy-to-use knowledge base for everyone.

Contributors

We would like to express our gratitude to all the individuals who have already contributed to AFFiNE! If you have any AFFiNE-related project, documentation, tool or template, please feel free to contribute it by submitting a pull request to our curated list on GitHub: awesome-affine.

contributors

Data Compatibility

Data compatibility is a very important issue for us. We will try our best to ensure that the data is compatible with the previous version.

If you encounter any problems when upgrading the version, please feel free to contact us.

AFFiNE Version Export/Import workspace Data auto migration
<= 0.5.4
0.6.x
0.7.x
0.8.x (current)
0.9.x (next) 🚧 🚧
  • : Not compatible
  • : Compatible
  • 🚧: Work in progress

Self-Host

We know that the self-host version has been out of date for a long time.

We are working hard to get this updated to the latest version, you can try our desktop version first.

Get started with Docker and deploy your own feature-rich, restriction-free deployment of AFFiNE. We are working hard to get this updated to the latest version, you can keep an eye on the latest packages.

Hiring

Some amazing companies including AFFiNE are looking for developers! Are you interested in helping build with AFFiNE and/or its partners? Check out some of the latest jobs available.

Upgrading

For upgrading information, please see our update page.

Feature Request

For feature request, please see community.affine.pro.

Building

Codespaces

From the GitHub repo main page, click the green "Code" button and select "Create codespace on master". This will open a new Codespace with the (supposedly auto-forked AFFiNE repo cloned, built, and ready to go.

Local

See BUILDING.md for instructions on how to build AFFiNE from source code.

Contributing

We welcome contributions from everyone. See docs/contributing/tutorial.md for details.

Thanks

Chromatic

Thanks to Chromatic for providing the visual testing platform that helps us review UI changes and catch visual regressions.

License

See LICENSE for details.

FOSSA Status