AFFiNE
affine.pro Windows, MacOS, LinuxPrivacy first, open-source alternative to Notion, monday.com and Miro. It is a knowledge management tool that allows you to create, organize and share your knowledge.
- Homepage: affine.pro
- GitHub: github.com/toeverything/AFFiNE
- Subreddit: r/AFFiNE
- Web info: web-check.xyz/results/affine.pro
AFFiNE Source Code
Author
Description
There can be more than Notion and Miro. AFFiNE(pronounced [ə‘fain]) is a next-gen knowledge base that brings planning, sorting and creating all together. Privacy first, open-source, customizable and ready to use.
Homepage
https://affine.proLicense
NOASSERTION
Created
31 Jul 22
Last Updated
18 Jan 25
Latest version
Primary Language
TypeScript
Size
426,633 KB
Stars
44,706
Forks
2,920
Watchers
44,706
Language Usage
Star History
Top Contributors
-
@himself65 (1189)
-
@pengx17 (762)
-
@darkskygit (661)
-
@JimmFly (599)
-
@QiShaoXuan (443)
-
@Brooooooklyn (403)
-
@EYHN (389)
-
@forehalo (375)
-
@CatsJuice (307)
-
@renovate[bot] (265)
-
@lawvs (245)
-
@alt1o (222)
-
@tzhangchi (186)
-
@Saul-Mirone (128)
-
@linonetwo (114)
-
@DiamondThree (110)
-
@fundon (102)
-
@doodlewind (99)
-
@joooye34 (80)
-
@donteatfriedrice (80)
-
@L-Sun (69)
-
@SaikaSakura (65)
-
@dependabot[bot] (64)
-
@JasperStardream (57)
-
@mitsuhatu (48)
-
@akumatus (43)
-
@CJSS (41)
-
@zzj3720 (39)
-
@thorseraq (36)
-
@ShortCipher5 (32)
Recent Commits
-
L-Sun (17 Jan 25)
feat(editor): add sidebar service (#9761)
-
Brooooooklyn (17 Jan 25)
refactor(server): enhance the Logger usage (#9763)
-
L-Sun (17 Jan 25)
fix(editor): close embed edit modal on editor unmount (#9765) Close [BS-2436](https://linear.app/affine-design/issue/BS-2436/should-close-embed-card-edit-modal-after-editor-unmount) ### What Changes: - fix(editor): close embed edit modal on editor unmount - test(editor): add test to embed edit modal when switching mode
-
donteatfriedrice (17 Jan 25)
feat(editor): add affine inline footnote (#9745) [BS-2369](https://linear.app/affine-design/issue/BS-2369/新增-affinetextattribute-footnote) [BS-2370](https://linear.app/affine-design/issue/BS-2370/支持-footnote-自定义渲染行内内容) [BS-2372](https://linear.app/affine-design/issue/BS-2372/提供-footnoteconfigextension) [BS-2375](https://linear.app/affine-design/issue/BS-2375/footnote-自定义渲染-popup) ### Add new AffineTextAttribute: footnote ``` /** * FootNote is used to reference a doc, attachment or url. */ export interface AffineTextAttributes { ... footnote?: { label: string; // label of the footnote reference: { type: 'doc' | 'attachment' | 'url'; // type of reference docId?: string; // the id of the reference doc url?: string; // the url of the reference network resource blobId?: string; // the id of the reference attachment fileName?: string; // the name of the reference attachment fileType?: string; // the type of the reference attachment } } | null } ``` ### FootNoteNodeConfigProvider Extension #### FootNoteNodeConfig Type Definition ``` type FootNoteNodeRenderer = ( footnote: FootNote, std: BlockStdScope ) => TemplateResult<1>; type FootNotePopupRenderer = ( footnote: FootNote, std: BlockStdScope, abortController: AbortController ) => TemplateResult<1>; export interface FootNoteNodeConfig { customNodeRenderer?: FootNoteNodeRenderer; customPopupRenderer?: FootNotePopupRenderer; interactive?: boolean; hidePopup?: boolean; } ``` #### FootNoteNodeConfigProvider Class ``` export class FootNoteNodeConfigProvider { private _customNodeRenderer?: FootNoteNodeRenderer; private _customPopupRenderer?: FootNotePopupRenderer; private _hidePopup: boolean; private _interactive: boolean; get customNodeRenderer() { return this._customNodeRenderer; } get customPopupRenderer() { return this._customPopupRenderer; } get doc() { return this.std.store; } get hidePopup() { return this._hidePopup; } get interactive() { return this._interactive; } constructor( config: FootNoteNodeConfig, readonly std: BlockStdScope ) { this._customNodeRenderer = config.customNodeRenderer; this._customPopupRenderer = config.customPopupRenderer; this._hidePopup = config.hidePopup ?? false; this._interactive = config.interactive ?? true; } setCustomNodeRenderer(renderer: FootNoteNodeRenderer) { this._customNodeRenderer = renderer; } setCustomPopupRenderer(renderer: FootNotePopupRenderer) { this._customPopupRenderer = renderer; } setHidePopup(hidePopup: boolean) { this._hidePopup = hidePopup; } setInteractive(interactive: boolean) { this._interactive = interactive; } } ``` #### FootNoteNodeConfigProvider Extension ``` export const FootNoteNodeConfigIdentifier = createIdentifier<FootNoteNodeConfigProvider>('AffineFootNoteNodeConfig'); export function FootNoteNodeConfigExtension( config: FootNoteNodeConfig ): ExtensionType { return { setup: di => { di.addImpl( FootNoteNodeConfigIdentifier, provider => new FootNoteNodeConfigProvider(config, provider.get(StdIdentifier)) ); }, }; } ``` The footnote node can be extended by this extension. ### FootnoteInlineSpec ``` export const FootNoteInlineSpecExtension = InlineSpecExtension( 'footnote', provider => { const std = provider.get(StdIdentifier); const config = provider.getOptional(FootNoteNodeConfigIdentifier) ?? undefined; return { name: 'footnote', schema: FootNoteSchema.optional().nullable().catch(undefined), match: delta => { return !!delta.attributes?.footnote; }, renderer: ({ delta }) => { return html`<affine-footnote-node .delta=${delta} .std=${std} .config=${config} ></affine-footnote-node>`; }, embed: true, }; } ); ```
-
CatsJuice (17 Jan 25)
chore: bump theme (#9732)
-
zzj3720 (17 Jan 25)
refactor(editor): move database selection into the corresponding view (#9752)
-
renovate (17 Jan 25)
chore: bump up Node.js to v22 (#8625) This PR contains the following updates: | Package | Type | Update | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---|---|---| | [node](https://nodejs.org) ([source](https://redirect.github.com/nodejs/node)) | | major | `20.18.1` -> `22.13.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | dependencies | major | [`^20.17.10` -> `^22.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/20.17.14/22.10.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | devDependencies | major | [`^20.17.10` -> `^22.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/20.17.14/22.10.7) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [node](https://nodejs.org) ([source](https://redirect.github.com/nodejs/node)) | engines | major | [`<21.0.0` -> `<23.0.0`](https://renovatebot.com/diffs/npm/node/v20.18.1/v22.13.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [node](https://redirect.github.com/nodejs/node) | final | major | `20-bookworm-slim` -> `22-bookworm-slim` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>nodejs/node (node)</summary> ### [`v22.13.0`](https://redirect.github.com/nodejs/node/compare/v22.12.0...v22.13.0) [Compare Source](https://redirect.github.com/nodejs/node/compare/v22.12.0...v22.13.0) ### [`v22.12.0`](https://redirect.github.com/nodejs/node/compare/v22.11.0...v22.12.0) [Compare Source](https://redirect.github.com/nodejs/node/compare/v22.11.0...v22.12.0) ### [`v22.11.0`](https://redirect.github.com/nodejs/node/compare/v22.10.0...v22.11.0) [Compare Source](https://redirect.github.com/nodejs/node/compare/v22.10.0...v22.11.0) ### [`v22.10.0`](https://redirect.github.com/nodejs/node/releases/tag/v22.10.0): 2024-10-16, Version 22.10.0 (Current), @​aduh95 [Compare Source](https://redirect.github.com/nodejs/node/compare/v22.9.0...v22.10.0) ##### Notable Changes ##### New `"module-sync"` exports condition This release introduces a `"module-sync"` exports condition that's enabled when `require(esm)` is enabled, so packages can supply a synchronous ES module to the Node.js module loader, no matter if it's being required or imported. This is similar to the `"module"` condition that bundlers have been using to support `require(esm)` in Node.js, and allows dual-package authors to opt into ESM-first only on newer versions of Node.js that supports `require(esm)` to avoid the dual-package hazard. ```json { "type": "module", "exports": { "node": { // On new version of Node.js, both require() and import get // the ESM version "module-sync": "./index.js", // On older version of Node.js, where "module-sync" and require(esm) are // not supported, use the CJS version to avoid dual-package hazard. // When package authors think it's time to drop support for older versions of // Node.js, they can remove the exports conditions and just use "main": "index.js". "default": "./dist/index.cjs" }, // On any other environment, use the ESM version. "default": "./index.js" } } ``` Or if the package is only meant to be run on Node.js and wants to fallback to CJS on older versions that don't have `require(esm)`: ```json { "type": "module", "exports": { // On new version of Node.js, both require() and import get the ESM version "module-sync": "./index.js", // On older version of Node.js, where "module-sync" and require(esm) are // not supported, use the CJS version to avoid dual-package hazard. // When package authors think it's time to drop support for older versions of // Node.js, they can remove the exports conditions and just use "main": "index.js". "default": "./dist/index.cjs" } } ``` **For package authors**: this only serves as a feature-detection mechanism for packages that wish to support both CJS and ESM users during the period when some active Node.js LTS versions support `require(esm)` while some older ones don't. When all active Node.js LTS lines support `require(esm)`, packages can simplify their distributions by bumping the major version, dropping their CJS exports, and removing the `module-sync` exports condition (with only `main` or `default` targetting the ESM exports). If the package needs to support both bundlers and being run unbundled on Node.js during the transition period, use both `module-sync` and `module` and point them to the same ESM file. If the package already doesn't want to support older versions of Node.js that doesn't support `require(esm)`, don't use this export condition. **For bundlers/tools**: they should avoid implementing this stop-gap condition. Most existing bundlers implement the de-facto bundler standard [`module`](https://webpack.js.org/guides/package-exports/#providing-commonjs-and-esm-version-stateless) exports condition, and that should be enough to support users who want to bundle ESM from CJS consumers. Users who want both bundlers and Node.js to recognize the ESM exports can use both `module`/`module-sync` conditions during the transition period, and can drop `module-sync`+`module` when they no longer need to support older versions of Node.js. If tools do want to support this condition, it's recommended to make the resolution rules in the graph pointed by this condition match the Node.js native ESM rules to avoid divergence. We ended up implementing a condition with a different name instead of reusing `"module"`, because existing code in the ecosystem using the `"module"` condition sometimes also expect the module resolution for these ESM files to work in CJS style, which is supported by bundlers, but the native Node.js loader has intentionally made ESM resolution different from CJS resolution (e.g. forbidding `import './noext'` or `import './directory'`), so it would be breaking to implement a `"module"` condition without implementing the forbidden ESM resolution rules. For now, this just implements a new condition as semver-minor so it can be backported to older LTS. Contributed by Joyee Cheung in [#​54648](https://redirect.github.com/nodejs/node/pull/54648). ##### `node --run` is now stable This CLI flag runs a specified command from a `package.json`'s `"scripts"` object. For the following `package.json`: ```json { "scripts": { "test": "node --test-reporter junit --test ./test" } } ``` You can run `node --run test` and that would start the test suite. Contributed by Yagiz Nizipli in [#​53763](https://redirect.github.com/nodejs/node/pull/53763). ##### Other notable changes - \[[`f0b441230a`](https://redirect.github.com/nodejs/node/commit/f0b441230a)] - **(SEMVER-MINOR)** **crypto**: add `KeyObject.prototype.toCryptoKey` (Filip Skokan) [#​55262](https://redirect.github.com/nodejs/node/pull/55262) - \[[`349d2ed07b`](https://redirect.github.com/nodejs/node/commit/349d2ed07b)] - **(SEMVER-MINOR)** **crypto**: add Date fields for `validTo` and `validFrom` (Andrew Moon) [#​54159](https://redirect.github.com/nodejs/node/pull/54159) - \[[`bebc95ed58`](https://redirect.github.com/nodejs/node/commit/bebc95ed58)] - **doc**: add abmusse to collaborators (Abdirahim Musse) [#​55086](https://redirect.github.com/nodejs/node/pull/55086) - \[[`914db60159`](https://redirect.github.com/nodejs/node/commit/914db60159)] - **(SEMVER-MINOR)** **http2**: expose `nghttp2_option_set_stream_reset_rate_limit` as an option (Maël Nison) [#​54875](https://redirect.github.com/nodejs/node/pull/54875) - \[[`f7c3b03759`](https://redirect.github.com/nodejs/node/commit/f7c3b03759)] - **(SEMVER-MINOR)** **lib**: propagate aborted state to dependent signals before firing events (jazelly) [#​54826](https://redirect.github.com/nodejs/node/pull/54826) - \[[`32261fc98a`](https://redirect.github.com/nodejs/node/commit/32261fc98a)] - **(SEMVER-MINOR)** **module**: support loading entrypoint as url (RedYetiDev) [#​54933](https://redirect.github.com/nodejs/node/pull/54933) - \[[`06957ff355`](https://redirect.github.com/nodejs/node/commit/06957ff355)] - **(SEMVER-MINOR)** **module**: implement `flushCompileCache()` (Joyee Cheung) [#​54971](https://redirect.github.com/nodejs/node/pull/54971) - \[[`2dcf70c347`](https://redirect.github.com/nodejs/node/commit/2dcf70c347)] - **(SEMVER-MINOR)** **module**: throw when invalid argument is passed to `enableCompileCache()` (Joyee Cheung) [#​54971](https://redirect.github.com/nodejs/node/pull/54971) - \[[`f9b19d7c44`](https://redirect.github.com/nodejs/node/commit/f9b19d7c44)] - **(SEMVER-MINOR)** **module**: write compile cache to temporary file and then rename it (Joyee Cheung) [#​54971](https://redirect.github.com/nodejs/node/pull/54971) - \[[`e95163b170`](https://redirect.github.com/nodejs/node/commit/e95163b170)] - **(SEMVER-MINOR)** **process**: add `process.features.require_module` (Joyee Cheung) [#​55241](https://redirect.github.com/nodejs/node/pull/55241) - \[[`4050f68e5d`](https://redirect.github.com/nodejs/node/commit/4050f68e5d)] - **(SEMVER-MINOR)** **process**: add `process.features.typescript` (Aviv Keller) [#​54295](https://redirect.github.com/nodejs/node/pull/54295) - \[[`86f7cb802d`](https://redirect.github.com/nodejs/node/commit/86f7cb802d)] - **(SEMVER-MINOR)** **test_runner**: support custom arguments in `run()` (Aviv Keller) [#​55126](https://redirect.github.com/nodejs/node/pull/55126) - \[[`b62f2f8259`](https://redirect.github.com/nodejs/node/commit/b62f2f8259)] - **(SEMVER-MINOR)** **test_runner**: add `'test:summary'` event (Colin Ihrig) [#​54851](https://redirect.github.com/nodejs/node/pull/54851) - \[[`d7c708aec5`](https://redirect.github.com/nodejs/node/commit/d7c708aec5)] - **(SEMVER-MINOR)** **test_runner**: add support for coverage via `run()` (Chemi Atlow) [#​53937](https://redirect.github.com/nodejs/node/pull/53937) - \[[`5fda4a1498`](https://redirect.github.com/nodejs/node/commit/5fda4a1498)] - **(SEMVER-MINOR)** **worker**: add `markAsUncloneable` api (Jason Zhang) [#​55234](https://redirect.github.com/nodejs/node/pull/55234) ##### Commits - \[[`e3619510c8`](https://redirect.github.com/nodejs/node/commit/e3619510c8)] - **assert**: show the diff when deep comparing data with a custom message (Giovanni) [#​54759](https://redirect.github.com/nodejs/node/pull/54759) - \[[`39c7a9e70c`](https://redirect.github.com/nodejs/node/commit/39c7a9e70c)] - **benchmark**: adjust config for deepEqual object (Rafael Gonzaga) [#​55254](https://redirect.github.com/nodejs/node/pull/55254) - \[[`263526d5d0`](https://redirect.github.com/nodejs/node/commit/263526d5d0)] - **benchmark**: rewrite detect-esm-syntax benchmark (Joyee Cheung) [#​55238](https://redirect.github.com/nodejs/node/pull/55238) - \[[`cd0795fb00`](https://redirect.github.com/nodejs/node/commit/cd0795fb00)] - **benchmark**: add no-warnings to process.has bench (Rafael Gonzaga) [#​55159](https://redirect.github.com/nodejs/node/pull/55159) - \[[`4352d9cc31`](https://redirect.github.com/nodejs/node/commit/4352d9cc31)] - **benchmark**: create benchmark for typescript (Marco Ippolito) [#​54904](https://redirect.github.com/nodejs/node/pull/54904) - \[[`452bc9b48d`](https://redirect.github.com/nodejs/node/commit/452bc9b48d)] - **benchmark**: add webstorage benchmark (jakecastelli) [#​55040](https://redirect.github.com/nodejs/node/pull/55040) - \[[`d4d5ba3a9b`](https://redirect.github.com/nodejs/node/commit/d4d5ba3a9b)] - **benchmark**: include ascii to fs/readfile (Rafael Gonzaga) [#​54988](https://redirect.github.com/nodejs/node/pull/54988) - \[[`23b628db65`](https://redirect.github.com/nodejs/node/commit/23b628db65)] - **benchmark**: add dotenv benchmark (Aviv Keller) [#​54278](https://redirect.github.com/nodejs/node/pull/54278) - \[[`b1ebb0d8ca`](https://redirect.github.com/nodejs/node/commit/b1ebb0d8ca)] - **buffer**: coerce extrema to int in `blob.slice` (Antoine du Hamel) [#​55141](https://redirect.github.com/nodejs/node/pull/55141) - \[[`3a6e72483f`](https://redirect.github.com/nodejs/node/commit/3a6e72483f)] - **buffer**: extract Blob's .arrayBuffer() & webidl changes (Matthew Aitken) [#​53372](https://redirect.github.com/nodejs/node/pull/53372) - \[[`d109f1c4ff`](https://redirect.github.com/nodejs/node/commit/d109f1c4ff)] - **buffer**: use simdutf convert_latin1\_to_utf8\_safe (Robert Nagy) [#​54798](https://redirect.github.com/nodejs/node/pull/54798) - \[[`77f8a3f9c2`](https://redirect.github.com/nodejs/node/commit/77f8a3f9c2)] - **build**: fix notify-on-review-wanted action (Rafael Gonzaga) [#​55304](https://redirect.github.com/nodejs/node/pull/55304) - \[[`0d93b1ed0c`](https://redirect.github.com/nodejs/node/commit/0d93b1ed0c)] - **build**: fix not valid json in coverage (jakecastelli) [#​55179](https://redirect.github.com/nodejs/node/pull/55179) - \[[`f89664d890`](https://redirect.github.com/nodejs/node/commit/f89664d890)] - **build**: include `.nycrc` in coverage workflows (Wuli Zuo) [#​55210](https://redirect.github.com/nodejs/node/pull/55210) - \[[`d7a9df6417`](https://redirect.github.com/nodejs/node/commit/d7a9df6417)] - **build**: notify via slack when review-wanted (Rafael Gonzaga) [#​55102](https://redirect.github.com/nodejs/node/pull/55102) - \[[`68822cc861`](https://redirect.github.com/nodejs/node/commit/68822cc861)] - **build**: add more information to Makefile help (Aviv Keller) [#​53381](https://redirect.github.com/nodejs/node/pull/53381) - \[[`f3ca9c669b`](https://redirect.github.com/nodejs/node/commit/f3ca9c669b)] - **build**: update ruff and add `lint-py-fix` (Aviv Keller) [#​54410](https://redirect.github.com/nodejs/node/pull/54410) - \[[`d99ae548d7`](https://redirect.github.com/nodejs/node/commit/d99ae548d7)] - **build**: remove -v flag to reduce noise (iwuliz) [#​55025](https://redirect.github.com/nodejs/node/pull/55025) - \[[`d3dfbe7ff9`](https://redirect.github.com/nodejs/node/commit/d3dfbe7ff9)] - **build**: display free disk space after build in the test-macOS workflow (iwuliz) [#​55025](https://redirect.github.com/nodejs/node/pull/55025) - \[[`3077f6a5b7`](https://redirect.github.com/nodejs/node/commit/3077f6a5b7)] - **build**: support up to python 3.13 in android-configure (Aviv Keller) [#​54529](https://redirect.github.com/nodejs/node/pull/54529) - \[[`a929c71281`](https://redirect.github.com/nodejs/node/commit/a929c71281)] - **build**: add the option to generate compile_commands.json in vcbuild.bat (Segev Finer) [#​52279](https://redirect.github.com/nodejs/node/pull/52279) - \[[`a81f368b99`](https://redirect.github.com/nodejs/node/commit/a81f368b99)] - **build**: fix eslint makefile target (Aviv Keller) [#​54999](https://redirect.github.com/nodejs/node/pull/54999) - \[[`c8b7a645ae`](https://redirect.github.com/nodejs/node/commit/c8b7a645ae)] - ***Revert*** "**build**: upgrade clang-format to v18" (Chengzhong Wu) [#​54994](https://redirect.github.com/nodejs/node/pull/54994) - \[[`7861ca5dc3`](https://redirect.github.com/nodejs/node/commit/7861ca5dc3)] - **build**: print `Running XYZ linter...` for py and yml (Aviv Keller) [#​54386](https://redirect.github.com/nodejs/node/pull/54386) - \[[`aaea3944e5`](https://redirect.github.com/nodejs/node/commit/aaea3944e5)] - **build,win**: add winget config to set up env (Hüseyin Açacak) [#​54729](https://redirect.github.com/nodejs/node/pull/54729) - \[[`30d47220bb`](https://redirect.github.com/nodejs/node/commit/30d47220bb)] - **build,win**: float VS 17.11 compilation patch (Stefan Stojanovic) [#​54970](https://redirect.github.com/nodejs/node/pull/54970) - \[[`048a1ab350`](https://redirect.github.com/nodejs/node/commit/048a1ab350)] - **cli**: ensure --run has proper pwd (Yagiz Nizipli) [#​54949](https://redirect.github.com/nodejs/node/pull/54949) - \[[`a97841ee10`](https://redirect.github.com/nodejs/node/commit/a97841ee10)] - **cli**: fix spacing for port range error (Aviv Keller) [#​54495](https://redirect.github.com/nodejs/node/pull/54495) - \[[`1dcc5eedff`](https://redirect.github.com/nodejs/node/commit/1dcc5eedff)] - ***Revert*** "**console**: colorize console error and warn" (Aviv Keller) [#​54677](https://redirect.github.com/nodejs/node/pull/54677) - \[[`f0b441230a`](https://redirect.github.com/nodejs/node/commit/f0b441230a)] - **(SEMVER-MINOR)** **crypto**: add KeyObject.prototype.toCryptoKey (Filip Skokan) [#​55262](https://redirect.github.com/nodejs/node/pull/55262) - \[[`d3f8c35320`](https://redirect.github.com/nodejs/node/commit/d3f8c35320)] - **crypto**: ensure invalid SubtleCrypto JWK data import results in DataError (Filip Skokan) [#​55041](https://redirect.github.com/nodejs/node/pull/55041) - \[[`349d2ed07b`](https://redirect.github.com/nodejs/node/commit/349d2ed07b)] - **(SEMVER-MINOR)** **crypto**: add Date fields for `validTo` and `validFrom` (Andrew Moon) [#​54159](https://redirect.github.com/nodejs/node/pull/54159) - \[[`34ca36a397`](https://redirect.github.com/nodejs/node/commit/34ca36a397)] - **deps**: update undici to 6.20.0 (Node.js GitHub Bot) [#​55329](https://redirect.github.com/nodejs/node/pull/55329) - \[[`f703652e84`](https://redirect.github.com/nodejs/node/commit/f703652e84)] - **deps**: upgrade npm to 10.9.0 (npm team) [#​55255](https://redirect.github.com/nodejs/node/pull/55255) - \[[`b533a51856`](https://redirect.github.com/nodejs/node/commit/b533a51856)] - **deps**: V8: backport [`0d5d6e7`](https://redirect.github.com/nodejs/node/commit/0d5d6e71bbb0) (Yagiz Nizipli) [#​55115](https://redirect.github.com/nodejs/node/pull/55115) - \[[`2f65b3fd07`](https://redirect.github.com/nodejs/node/commit/2f65b3fd07)] - **deps**: V8: partially cherry-pick [`8953e49`](https://redirect.github.com/nodejs/node/commit/8953e49478) (Ben Noordhuis) [#​55274](https://redirect.github.com/nodejs/node/pull/55274) - \[[`bb9f77d53a`](https://redirect.github.com/nodejs/node/commit/bb9f77d53a)] - **deps**: update archs files for openssl-3.0.15+quic1 (Node.js GitHub Bot) [#​55184](https://redirect.github.com/nodejs/node/pull/55184) - \[[`63d51c82fe`](https://redirect.github.com/nodejs/node/commit/63d51c82fe)] - **deps**: upgrade openssl sources to quictls/openssl-3.0.15+quic1 (Node.js GitHub Bot) [#​55184](https://redirect.github.com/nodejs/node/pull/55184) - \[[`29e6484f3c`](https://redirect.github.com/nodejs/node/commit/29e6484f3c)] - **deps**: update archs files for openssl-3.0.14+quic1 (Node.js GitHub Bot) [#​54336](https://redirect.github.com/nodejs/node/pull/54336) - \[[`283927ec88`](https://redirect.github.com/nodejs/node/commit/283927ec88)] - **deps**: upgrade openssl sources to quictls/openssl-3.0.14+quic1 (Node.js GitHub Bot) [#​54336](https://redirect.github.com/nodejs/node/pull/54336) - \[[`b0636a1e88`](https://redirect.github.com/nodejs/node/commit/b0636a1e88)] - **deps**: update timezone to 2024b (Node.js GitHub Bot) [#​55056](https://redirect.github.com/nodejs/node/pull/55056) - \[[`173464d76f`](https://redirect.github.com/nodejs/node/commit/173464d76f)] - **deps**: update acorn-walk to 8.3.4 (Node.js GitHub Bot) [#​54950](https://redirect.github.com/nodejs/node/pull/54950) - \[[`0d4536543b`](https://redirect.github.com/nodejs/node/commit/0d4536543b)] - **deps**: update corepack to 0.29.4 (Node.js GitHub Bot) [#​54845](https://redirect.github.com/nodejs/node/pull/54845) - \[[`1de5512383`](https://redirect.github.com/nodejs/node/commit/1de5512383)] - **deps**: V8: cherry-pick [`217457d`](https://redirect.github.com/nodejs/node/commit/217457d0a560) (Michaël Zasso) [#​54883](https://redirect.github.com/nodejs/node/pull/54883) - \[[`1921d7a37c`](https://redirect.github.com/nodejs/node/commit/1921d7a37c)] - **doc**: add release key for aduh95 (Antoine du Hamel) [#​55349](https://redirect.github.com/nodejs/node/pull/55349) - \[[`d8e42be1b2`](https://redirect.github.com/nodejs/node/commit/d8e42be1b2)] - **doc**: move `ERR_INVALID_PERFORMANCE_MARK` to legacy errors (Antoine du Hamel) [#​55247](https://redirect.github.com/nodejs/node/pull/55247) - \[[`5ea8aa183c`](https://redirect.github.com/nodejs/node/commit/5ea8aa183c)] - **doc**: fix Markdown linter (Antoine du Hamel) [#​55344](https://redirect.github.com/nodejs/node/pull/55344) - \[[`873588888d`](https://redirect.github.com/nodejs/node/commit/873588888d)] - ***Revert*** "**doc**: update test context.assert" (Antoine du Hamel) [#​55344](https://redirect.github.com/nodejs/node/pull/55344) - \[[`707e7cc702`](https://redirect.github.com/nodejs/node/commit/707e7cc702)] - **doc**: add pmarchini to collaborators (Pietro Marchini) [#​55331](https://redirect.github.com/nodejs/node/pull/55331) - \[[`b03272b9a1`](https://redirect.github.com/nodejs/node/commit/b03272b9a1)] - **doc**: fix `events.once()` example using `AbortSignal` (Ivo Janssen) [#​55144](https://redirect.github.com/nodejs/node/pull/55144) - \[[`85b765953d`](https://redirect.github.com/nodejs/node/commit/85b765953d)] - **doc**: add onboarding details for ambassador program (Marco Ippolito) [#​55284](https://redirect.github.com/nodejs/node/pull/55284) - \[[`5d41b8a8b0`](https://redirect.github.com/nodejs/node/commit/5d41b8a8b0)] - **doc**: update `require(ESM)` history and stability status (Antoine du Hamel) [#​55199](https://redirect.github.com/nodejs/node/pull/55199) - \[[`195df659e9`](https://redirect.github.com/nodejs/node/commit/195df659e9)] - **doc**: move `ERR_NAPI_TSFN_START/STOP_IDLE_LOOP` to legacy errors (Antoine du Hamel) [#​55248](https://redirect.github.com/nodejs/node/pull/55248) - \[[`8eae0d3f3c`](https://redirect.github.com/nodejs/node/commit/8eae0d3f3c)] - **doc**: fix initial default value of autoSelectFamily (Ihor Rohovets) [#​55245](https://redirect.github.com/nodejs/node/pull/55245) - \[[`297cb0da5a`](https://redirect.github.com/nodejs/node/commit/297cb0da5a)] - **doc**: tweak onboarding instructions (Michael Dawson) [#​55212](https://redirect.github.com/nodejs/node/pull/55212) - \[[`7ddbfe8c2b`](https://redirect.github.com/nodejs/node/commit/7ddbfe8c2b)] - **doc**: update test context.assert (Pietro Marchini) [#​55186](https://redirect.github.com/nodejs/node/pull/55186) - \[[`8a57550d20`](https://redirect.github.com/nodejs/node/commit/8a57550d20)] - **doc**: fix unordered error anchors (Antoine du Hamel) [#​55242](https://redirect.github.com/nodejs/node/pull/55242) - \[[`286ea4ed3d`](https://redirect.github.com/nodejs/node/commit/286ea4ed3d)] - **doc**: mention addons to experimental permission (Rafael Gonzaga) [#​55166](https://redirect.github.com/nodejs/node/pull/55166) - \[[`7c9ceabf38`](https://redirect.github.com/nodejs/node/commit/7c9ceabf38)] - **doc**: use correct dash in stability status (Antoine du Hamel) [#​55200](https://redirect.github.com/nodejs/node/pull/55200) - \[[`781ffd8ba1`](https://redirect.github.com/nodejs/node/commit/781ffd8ba1)] - **doc**: fix link in `test/README.md` (Livia Medeiros) [#​55165](https://redirect.github.com/nodejs/node/pull/55165) - \[[`61b9ed3bf2`](https://redirect.github.com/nodejs/node/commit/61b9ed3bf2)] - **doc**: add esm examples to node:net (Alfredo González) [#​55134](https://redirect.github.com/nodejs/node/pull/55134) - \[[`bb3499038d`](https://redirect.github.com/nodejs/node/commit/bb3499038d)] - **doc**: remove outdated https import reference (Edigleysson Silva (Edy)) [#​55111](https://redirect.github.com/nodejs/node/pull/55111) - \[[`6cc49518c7`](https://redirect.github.com/nodejs/node/commit/6cc49518c7)] - **doc**: move the YAML changes element (sendoru) [#​55112](https://redirect.github.com/nodejs/node/pull/55112) - \[[`b12b4a23e4`](https://redirect.github.com/nodejs/node/commit/b12b4a23e4)] - **doc**: remove random horizontal separators in `process.md` (Antoine du Hamel) [#​55149](https://redirect.github.com/nodejs/node/pull/55149) - \[[`7186ede388`](https://redirect.github.com/nodejs/node/commit/7186ede388)] - **doc**: put --env-file-if-exists=config right under --env-file=config (Edigleysson Silva (Edy)) [#​55131](https://redirect.github.com/nodejs/node/pull/55131) - \[[`8ad0dfff10`](https://redirect.github.com/nodejs/node/commit/8ad0dfff10)] - **doc**: fix the require resolve algorithm in `modules.md` (chirsz) [#​55117](https://redirect.github.com/nodejs/node/pull/55117) - \[[`fd40f0873f`](https://redirect.github.com/nodejs/node/commit/fd40f0873f)] - **doc**: update style guide (Aviv Keller) [#​53223](https://redirect.github.com/nodejs/node/pull/53223) - \[[`12c9d9780f`](https://redirect.github.com/nodejs/node/commit/12c9d9780f)] - **doc**: add missing `:` to `run()`'s `globPatterns` (Aviv Keller) [#​55135](https://redirect.github.com/nodejs/node/pull/55135) - \[[`73b05cfb04`](https://redirect.github.com/nodejs/node/commit/73b05cfb04)] - **doc**: correct `cleanup` option in stream.(promises.)finished (René) [#​55043](https://redirect.github.com/nodejs/node/pull/55043) - \[[`bebc95ed58`](https://redirect.github.com/nodejs/node/commit/bebc95ed58)] - **doc**: add abmusse to collaborators (Abdirahim Musse) [#​55086](https://redirect.github.com/nodejs/node/pull/55086) - \[[`a97c80c6ae`](https://redirect.github.com/nodejs/node/commit/a97c80c6ae)] - **doc**: add note about `--expose-internals` (Aviv Keller) [#​52861](https://redirect.github.com/nodejs/node/pull/52861) - \[[`89aeae63bd`](https://redirect.github.com/nodejs/node/commit/89aeae63bd)] - **doc**: remove `parseREPLKeyword` from REPL documentation (Aviv Keller) [#​54749](https://redirect.github.com/nodejs/node/pull/54749) - \[[`b3e0490b8b`](https://redirect.github.com/nodejs/node/commit/b3e0490b8b)] - **doc**: add missing EventSource docs to globals (Matthew Aitken) [#​55022](https://redirect.github.com/nodejs/node/pull/55022) - \[[`516c775fa5`](https://redirect.github.com/nodejs/node/commit/516c775fa5)] - **doc**: cover --experimental-test-module-mocks flag (Jonathan Sharpe) [#​55021](https://redirect.github.com/nodejs/node/pull/55021) - \[[`4244f1a269`](https://redirect.github.com/nodejs/node/commit/4244f1a269)] - **doc**: add more details for localStorage and sessionStorage (Batuhan Tomo) [#​53881](https://redirect.github.com/nodejs/node/pull/53881) - \[[`39a728c2e3`](https://redirect.github.com/nodejs/node/commit/39a728c2e3)] - **doc**: change backporting guide with updated info (Aviv Keller) [#​53746](https://redirect.github.com/nodejs/node/pull/53746) - \[[`3a5fe95ad7`](https://redirect.github.com/nodejs/node/commit/3a5fe95ad7)] - **doc**: add missing definitions to `internal-api.md` (Aviv Keller) [#​53303](https://redirect.github.com/nodejs/node/pull/53303) - \[[`f2d74a26a3`](https://redirect.github.com/nodejs/node/commit/f2d74a26a3)] - **doc**: fix history of `process.features` (Antoine du Hamel) [#​54982](https://redirect.github.com/nodejs/node/pull/54982) - \[[`29866ca438`](https://redirect.github.com/nodejs/node/commit/29866ca438)] - **doc**: fix typo callsite.lineNumber (Rafael Gonzaga) [#​54969](https://redirect.github.com/nodejs/node/pull/54969) - \[[`c1d73abd29`](https://redirect.github.com/nodejs/node/commit/c1d73abd29)] - **doc**: update documentation for externalizing deps (Michael Dawson) [#​54792](https://redirect.github.com/nodejs/node/pull/54792) - \[[`eca9668231`](https://redirect.github.com/nodejs/node/commit/eca9668231)] - **doc**: add documentation for process.features (Marco Ippolito) [#​54897](https://redirect.github.com/nodejs/node/pull/54897) - \[[`0fb446e207`](https://redirect.github.com/nodejs/node/commit/0fb446e207)] - **esm**: do not interpret `"main"` as a URL (Antoine du Hamel) [#​55003](https://redirect.github.com/nodejs/node/pull/55003) - \[[`be2fe4b249`](https://redirect.github.com/nodejs/node/commit/be2fe4b249)] - **events**: allow null/undefined eventInitDict (Matthew Aitken) [#​54643](https://redirect.github.com/nodejs/node/pull/54643) - \[[`cb47e169a0`](https://redirect.github.com/nodejs/node/commit/cb47e169a0)] - **events**: return `currentTarget` when dispatching (Matthew Aitken) [#​54642](https://redirect.github.com/nodejs/node/pull/54642) - \[[`dbfae3fe14`](https://redirect.github.com/nodejs/node/commit/dbfae3fe14)] - **fs**: acknowledge `signal` option in `filehandle.createReadStream()` (Livia Medeiros) [#​55148](https://redirect.github.com/nodejs/node/pull/55148) - \[[`1c94725c07`](https://redirect.github.com/nodejs/node/commit/1c94725c07)] - **fs**: check subdir correctly in cpSync (Jason Zhang) [#​55033](https://redirect.github.com/nodejs/node/pull/55033) - \[[`79ffefab2a`](https://redirect.github.com/nodejs/node/commit/79ffefab2a)] - **fs**: convert to u8 string for filesystem path (Jason Zhang) [#​54653](https://redirect.github.com/nodejs/node/pull/54653) - \[[`914db60159`](https://redirect.github.com/nodejs/node/commit/914db60159)] - **(SEMVER-MINOR)** **http2**: expose nghttp2\_option_set_stream_reset_rate_limit as an option (Maël Nison) [#​54875](https://redirect.github.com/nodejs/node/pull/54875) - \[[`08b5e6c794`](https://redirect.github.com/nodejs/node/commit/08b5e6c794)] - **lib**: fix module print timing when specifier includes `"` (Antoine du Hamel) [#​55150](https://redirect.github.com/nodejs/node/pull/55150) - \[[`bf7d7aef4b`](https://redirect.github.com/nodejs/node/commit/bf7d7aef4b)] - **lib**: fix typos (Nathan Baulch) [#​55065](https://redirect.github.com/nodejs/node/pull/55065) - \[[`d803355d92`](https://redirect.github.com/nodejs/node/commit/d803355d92)] - **lib**: prefer optional chaining (Aviv Keller) [#​55045](https://redirect.github.com/nodejs/node/pull/55045) - \[[`d4873bcd6d`](https://redirect.github.com/nodejs/node/commit/d4873bcd6d)] - **lib**: remove lib/internal/idna.js (Yagiz Nizipli) [#​55050](https://redirect.github.com/nodejs/node/pull/55050) - \[[`f7c3b03759`](https://redirect.github.com/nodejs/node/commit/f7c3b03759)] - **(SEMVER-MINOR)** **lib**: propagate aborted state to dependent signals before firing events (jazelly) [#​54826](https://redirect.github.com/nodejs/node/pull/54826) - \[[`397ae418db`](https://redirect.github.com/nodejs/node/commit/397ae418db)] - **lib**: the REPL should survive deletion of Array.prototype methods (Jordan Harband) [#​31457](https://redirect.github.com/nodejs/node/pull/31457) - \[[`566179c9ec`](https://redirect.github.com/nodejs/node/commit/566179c9ec)] - **lib, tools**: remove duplicate requires (Aviv Keller) [#​54987](https://redirect.github.com/nodejs/node/pull/54987) - \[[`c9a1bbbef2`](https://redirect.github.com/nodejs/node/commit/c9a1bbbef2)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#​55300](https://redirect.github.com/nodejs/node/pull/55300) - \[[`d7b73bbd1d`](https://redirect.github.com/nodejs/node/commit/d7b73bbd1d)] - **meta**: bump mozilla-actions/sccache-action from 0.0.5 to 0.0.6 (dependabot\[bot]) [#​55225](https://redirect.github.com/nodejs/node/pull/55225) - \[[`0f4269faa9`](https://redirect.github.com/nodejs/node/commit/0f4269faa9)] - **meta**: bump actions/checkout from 4.1.7 to 4.2.0 (dependabot\[bot]) [#​55224](https://redirect.github.com/nodejs/node/pull/55224) - \[[`33be1990d8`](https://redirect.github.com/nodejs/node/commit/33be1990d8)] - **meta**: bump actions/setup-node from 4.0.3 to 4.0.4 (dependabot\[bot]) [#​55223](https://redirect.github.com/nodejs/node/pull/55223) - \[[`f5b4ae5bf8`](https://redirect.github.com/nodejs/node/commit/f5b4ae5bf8)] - **meta**: bump peter-evans/create-pull-request from 7.0.1 to 7.0.5 (dependabot\[bot]) [#​55219](https://redirect.github.com/nodejs/node/pull/55219) - \[[`1985d9016e`](https://redirect.github.com/nodejs/node/commit/1985d9016e)] - **meta**: add mailmap entry for abmusse (Abdirahim Musse) [#​55182](https://redirect.github.com/nodejs/node/pull/55182) - \[[`93b215d5e6`](https://redirect.github.com/nodejs/node/commit/93b215d5e6)] - **meta**: add more information about nightly releases (Aviv Keller) [#​55084](https://redirect.github.com/nodejs/node/pull/55084) - \[[`aeae5973c3`](https://redirect.github.com/nodejs/node/commit/aeae5973c3)] - **meta**: add `linux` to OS labels in collaborator guide (Aviv Keller) [#​54986](https://redirect.github.com/nodejs/node/pull/54986) - \[[`4fb2c3baa8`](https://redirect.github.com/nodejs/node/commit/4fb2c3baa8)] - **meta**: remove never-used workflow trigger (Aviv Keller) [#​54983](https://redirect.github.com/nodejs/node/pull/54983) - \[[`e1f36d0da8`](https://redirect.github.com/nodejs/node/commit/e1f36d0da8)] - **meta**: remove unneeded ignore rules from ruff (Aviv Keller) [#​54360](https://redirect.github.com/nodejs/node/pull/54360) - \[[`ce0d0c1ec8`](https://redirect.github.com/nodejs/node/commit/ce0d0c1ec8)] - **meta**: remove `build-windows.yml` (Aviv Keller) [#​54662](https://redirect.github.com/nodejs/node/pull/54662) - \[[`ca67c97f33`](https://redirect.github.com/nodejs/node/commit/ca67c97f33)] - **meta**: add links to alternative issue trackers (Aviv Keller) [#​54401](https://redirect.github.com/nodejs/node/pull/54401) - \[[`6fcac73738`](https://redirect.github.com/nodejs/node/commit/6fcac73738)] - **module**: wrap swc error in ERR_INVALID_TYPESCRIPT_SYNTAX (Marco Ippolito) [#​55316](https://redirect.github.com/nodejs/node/pull/55316) - \[[`0412ac8bf3`](https://redirect.github.com/nodejs/node/commit/0412ac8bf3)] - **module**: add internal type def for `flushCompileCache` (Jacob Smith) [#​55226](https://redirect.github.com/nodejs/node/pull/55226) - \[[`32261fc98a`](https://redirect.github.com/nodejs/node/commit/32261fc98a)] - **(SEMVER-MINOR)** **module**: support loading entrypoint as url (RedYetiDev) [#​54933](https://redirect.github.com/nodejs/node/pull/54933) - \[[`111261e245`](https://redirect.github.com/nodejs/node/commit/111261e245)] - **(SEMVER-MINOR)** **module**: implement the "module-sync" exports condition (Joyee Cheung) [#​54648](https://redirect.github.com/nodejs/node/pull/54648) - \[[`b6fc9adf5b`](https://redirect.github.com/nodejs/node/commit/b6fc9adf5b)] - **module**: remove duplicated import (Aviv Keller) [#​54942](https://redirect.github.com/nodejs/node/pull/54942) - \[[`06957ff355`](https://redirect.github.com/nodejs/node/commit/06957ff355)] - **(SEMVER-MINOR)** **module**: implement flushCompileCache() (Joyee Cheung) [#​54971](https://redirect.github.com/nodejs/node/pull/54971) - \[[`2dcf70c347`](https://redirect.github.com/nodejs/node/commit/2dcf70c347)] - **(SEMVER-MINOR)** **module**: throw when invalid argument is passed to enableCompileCache() (Joyee Cheung) [#​54971](https://redirect.github.com/nodejs/node/pull/54971) - \[[`f9b19d7c44`](https://redirect.github.com/nodejs/node/commit/f9b19d7c44)] - **(SEMVER-MINOR)** **module**: write compile cache to temporary file and then rename it (Joyee Cheung) [#​54971](https://redirect.github.com/nodejs/node/pull/54971) - \[[`1d169764db`](https://redirect.github.com/nodejs/node/commit/1d169764db)] - **module**: report unfinished TLA in ambiguous modules (Antoine du Hamel) [#​54980](https://redirect.github.com/nodejs/node/pull/54980) - \[[`c89c93496d`](https://redirect.github.com/nodejs/node/commit/c89c93496d)] - **module**: refator ESM loader for adding future synchronous hooks (Joyee Cheung) [#​54769](https://redirect.github.com/nodejs/node/pull/54769) - \[[`108cef22e6`](https://redirect.github.com/nodejs/node/commit/108cef22e6)] - **module**: remove bogus assertion in CJS entrypoint handling with --import (Joyee Cheung) [#​54592](https://redirect.github.com/nodejs/node/pull/54592) - \[[`67ecb10c78`](https://redirect.github.com/nodejs/node/commit/67ecb10c78)] - **module**: fix discrepancy between .ts and .js (Marco Ippolito) [#​54461](https://redirect.github.com/nodejs/node/pull/54461) - \[[`3300d5990f`](https://redirect.github.com/nodejs/node/commit/3300d5990f)] - **os**: use const with early return for path (Trivikram Kamat) [#​54959](https://redirect.github.com/nodejs/node/pull/54959) - \[[`90cce6ec7c`](https://redirect.github.com/nodejs/node/commit/90cce6ec7c)] - **path**: remove repetitive conditional operator in `posix.resolve` (Wiyeong Seo) [#​54835](https://redirect.github.com/nodejs/node/pull/54835) - \[[`cbfc980f89`](https://redirect.github.com/nodejs/node/commit/cbfc980f89)] - **perf_hooks**: add missing type argument to getEntriesByName (Luke Taher) [#​54767](https://redirect.github.com/nodejs/node/pull/54767) - \[[`e95163b170`](https://redirect.github.com/nodejs/node/commit/e95163b170)] - **(SEMVER-MINOR)** **process**: add process.features.require_module (Joyee Cheung) [#​55241](https://redirect.github.com/nodejs/node/pull/55241) - \[[`0655d3a384`](https://redirect.github.com/nodejs/node/commit/0655d3a384)] - **process**: fix `process.features.typescript` when Amaro is unavailable (Antoine du Hamel) [#​55323](https://redirect.github.com/nodejs/node/pull/55323) - \[[`4050f68e5d`](https://redirect.github.com/nodejs/node/commit/4050f68e5d)] - **(SEMVER-MINOR)** **process**: add `process.features.typescript` (Aviv Keller) [#​54295](https://redirect.github.com/nodejs/node/pull/54295) - \[[`75073c50ae`](https://redirect.github.com/nodejs/node/commit/75073c50ae)] - **quic**: start adding in the internal quic js api (James M Snell) [#​53256](https://redirect.github.com/nodejs/node/pull/53256) - \[[`538b1eb5b0`](https://redirect.github.com/nodejs/node/commit/538b1eb5b0)] - **repl**: catch `\v` and `\r` in new-line detection (Aviv Keller) [#​54512](https://redirect.github.com/nodejs/node/pull/54512) - \[[`57a9d3f15e`](https://redirect.github.com/nodejs/node/commit/57a9d3f15e)] - **sqlite**: disable DQS misfeature by default (Tobias Nießen) [#​55297](https://redirect.github.com/nodejs/node/pull/55297) - \[[`c126543374`](https://redirect.github.com/nodejs/node/commit/c126543374)] - **sqlite**: make sourceSQL and expandedSQL string-valued properties (Tobias Nießen) [#​54721](https://redirect.github.com/nodejs/node/pull/54721) - \[[`67f5f46c56`](https://redirect.github.com/nodejs/node/commit/67f5f46c56)] - **sqlite**: enable foreign key constraints by default (Tobias Nießen) [#​54777](https://redirect.github.com/nodejs/node/pull/54777) - \[[`09999491bf`](https://redirect.github.com/nodejs/node/commit/09999491bf)] - **src**: handle errors correctly in webstorage (Michaël Zasso) [#​54544](https://redirect.github.com/nodejs/node/pull/54544) - \[[`295c17c4ea`](https://redirect.github.com/nodejs/node/commit/295c17c4ea)] - **src**: make minor tweaks to quic c++ for c++20 (James M Snell) [#​53256](https://redirect.github.com/nodejs/node/pull/53256) - \[[`b1d47d06f9`](https://redirect.github.com/nodejs/node/commit/b1d47d06f9)] - **src**: apply getCallSite optimization (RafaelGSS) [#​55174](https://redirect.github.com/nodejs/node/pull/55174) - \[[`d6bcc44829`](https://redirect.github.com/nodejs/node/commit/d6bcc44829)] - **src**: modernize likely/unlikely hints (Yagiz Nizipli) [#​55155](https://redirect.github.com/nodejs/node/pull/55155) - \[[`1af5ad61ca`](https://redirect.github.com/nodejs/node/commit/1af5ad61ca)] - **src**: fixup Error.stackTraceLimit during snapshot building (Joyee Cheung) [#​55121](https://redirect.github.com/nodejs/node/pull/55121) - \[[`b229083235`](https://redirect.github.com/nodejs/node/commit/b229083235)] - **src**: parse --stack-trace-limit and use it in --trace-\* flags (Joyee Cheung) [#​55121](https://redirect.github.com/nodejs/node/pull/55121) - \[[`942ad54e08`](https://redirect.github.com/nodejs/node/commit/942ad54e08)] - **src**: move more key handling to ncrypto (James M Snell) [#​55108](https://redirect.github.com/nodejs/node/pull/55108) - \[[`0bb5584288`](https://redirect.github.com/nodejs/node/commit/0bb5584288)] - **src**: add receiver to fast api callback methods (Carlos Espa) [#​54408](https://redirect.github.com/nodejs/node/pull/54408) - \[[`706e9611f0`](https://redirect.github.com/nodejs/node/commit/706e9611f0)] - **src**: fix typos (Nathan Baulch) [#​55064](https://redirect.github.com/nodejs/node/pull/55064) - \[[`a96d5d1bcc`](https://redirect.github.com/nodejs/node/commit/a96d5d1bcc)] - **src**: move more stuff over to use Maybe\<void> (James M Snell) [#​54831](https://redirect.github.com/nodejs/node/pull/54831) - \[[`ee0a98b5a2`](https://redirect.github.com/nodejs/node/commit/ee0a98b5a2)] - **src**: decode native error messages as UTF-8 (Joyee Cheung) [#​55024](https://redirect.github.com/nodejs/node/pull/55024) - \[[`1fc8edecf8`](https://redirect.github.com/nodejs/node/commit/1fc8edecf8)] - **src**: update clang-tidy and focus on modernization (Yagiz Nizipli) [#​53757](https://redirect.github.com/nodejs/node/pull/53757) - \[[`3a1485a1a3`](https://redirect.github.com/nodejs/node/commit/3a1485a1a3)] - **src**: move evp stuff to ncrypto (James M Snell) [#​54911](https://redirect.github.com/nodejs/node/pull/54911) - \[[`9ae80e1e4d`](https://redirect.github.com/nodejs/node/commit/9ae80e1e4d)] - **src**: revert filesystem::path changes (Yagiz Nizipli) [#​55015](https://redirect.github.com/nodejs/node/pull/55015) - \[[`465d05018a`](https://redirect.github.com/nodejs/node/commit/465d05018a)] - **src**: mark node --run as stable (Yagiz Nizipli) [#​53763](https://redirect.github.com/nodejs/node/pull/53763) - \[[`ef546c872c`](https://redirect.github.com/nodejs/node/commit/ef546c872c)] - **src**: cleanup per env handles directly without a list (Chengzhong Wu) [#​54993](https://redirect.github.com/nodejs/node/pull/54993) - \[[`0876f78411`](https://redirect.github.com/nodejs/node/commit/0876f78411)] - **src**: add unistd.h import if node posix credentials is defined (Jonas) [#​54528](https://redirect.github.com/nodejs/node/pull/54528) - \[[`284db53866`](https://redirect.github.com/nodejs/node/commit/284db53866)] - **src**: remove duplicate code setting AF_INET (He Yang) [#​54939](https://redirect.github.com/nodejs/node/pull/54939) - \[[`f332c4c4fc`](https://redirect.github.com/nodejs/node/commit/f332c4c4fc)] - **src**: use `Maybe<void>` where bool isn't needed (Michaël Zasso) [#​54575](https://redirect.github.com/nodejs/node/pull/54575) - \[[`c7ed2ff920`](https://redirect.github.com/nodejs/node/commit/c7ed2ff920)] - **stream**: handle undefined chunks correctly in decode stream (devstone) [#​55153](https://redirect.github.com/nodejs/node/pull/55153) - \[[`a9675a0cbc`](https://redirect.github.com/nodejs/node/commit/a9675a0cbc)] - **stream**: treat null asyncIterator as undefined (Jason Zhang) [#​55119](https://redirect.github.com/nodejs/node/pull/55119) - \[[`bf69ae1406`](https://redirect.github.com/nodejs/node/commit/bf69ae1406)] - **stream**: set stream prototype to closest transferable superclass (Jason Zhang) [#​55067](https://redirect.github.com/nodejs/node/pull/55067) - \[[`3273707a3a`](https://redirect.github.com/nodejs/node/commit/3273707a3a)] - **test**: fix tests when Amaro is unavailable (Richard Lau) [#​55320](https://redirect.github.com/nodejs/node/pull/55320) - \[[`ff3cc3b2ab`](https://redirect.github.com/nodejs/node/commit/ff3cc3b2ab)] - **test**: use more informative errors in `test-runner-cli` (Antoine du Hamel) [#​55321](https://redirect.github.com/nodejs/node/pull/55321) - \[[`17d2f9de6d`](https://redirect.github.com/nodejs/node/commit/17d2f9de6d)] - **test**: make `test-loaders-workers-spawned` less flaky (Antoine du Hamel) [#​55172](https://redirect.github.com/nodejs/node/pull/55172) - \[[`1b1104e69b`](https://redirect.github.com/nodejs/node/commit/1b1104e69b)] - **test**: add resource to internal module stat test (RafaelGSS) [#​55157](https://redirect.github.com/nodejs/node/pull/55157) - \[[`b36f8c2146`](https://redirect.github.com/nodejs/node/commit/b36f8c2146)] - **test**: update multiple assert tests to use node:test (James M Snell) [#​54585](https://redirect.github.com/nodejs/node/pull/54585) - \[[`1b30f7fdd6`](https://redirect.github.com/nodejs/node/commit/1b30f7fdd6)] - **test**: move coverage source map tests to new file (Aviv Keller) [#​55123](https://redirect.github.com/nodejs/node/pull/55123) - \[[`ce67e7b5b3`](https://redirect.github.com/nodejs/node/commit/ce67e7b5b3)] - **test**: adding more tests for strip-types (Kevin Toshihiro Uehara) [#​54929](https://redirect.github.com/nodejs/node/pull/54929) - \[[`a57c8ba3ef`](https://redirect.github.com/nodejs/node/commit/a57c8ba3ef)] - **test**: update wpt test for encoding (devstone) [#​55151](https://redirect.github.com/nodejs/node/pull/55151) - \[[`65fbe94d45`](https://redirect.github.com/nodejs/node/commit/65fbe94d45)] - **test**: add `escapePOSIXShell` util (Antoine du Hamel) [#​55125](https://redirect.github.com/nodejs/node/pull/55125) - \[[`cc8838252e`](https://redirect.github.com/nodejs/node/commit/cc8838252e)] - **test**: remove unnecessary `await` in test-watch-mode (Wuli) [#​55142](https://redirect.github.com/nodejs/node/pull/55142) - \[[`9aeba48bf0`](https://redirect.github.com/nodejs/node/commit/9aeba48bf0)] - **test**: fix typos (Nathan Baulch) [#​55063](https://redirect.github.com/nodejs/node/pull/55063) - \[[`0999b5e493`](https://redirect.github.com/nodejs/node/commit/0999b5e493)] - **test**: remove duplicated test descriptions (Christos Koutsiaris) [#​54140](https://redirect.github.com/nodejs/node/pull/54140) - \[[`e99d4a4cb8`](https://redirect.github.com/nodejs/node/commit/e99d4a4cb8)] - **test**: deflake test/pummel/test-timers.js (jakecastelli) [#​55098](https://redirect.github.com/nodejs/node/pull/55098) - \[[`fb8470afd7`](https://redirect.github.com/nodejs/node/commit/fb8470afd7)] - **test**: deflake test-http-remove-header-stays-removed (Luigi Pinca) [#​55004](https://redirect.github.com/nodejs/node/pull/55004) - \[[`e879c5edf2`](https://redirect.github.com/nodejs/node/commit/e879c5edf2)] - **test**: fix test-tls-junk-closes-server (Michael Dawson) [#​55089](https://redirect.github.com/nodejs/node/pull/55089) - \[[`b885f0583c`](https://redirect.github.com/nodejs/node/commit/b885f0583c)] - **test**: fix more tests that fail when path contains a space (Antoine du Hamel) [#​55088](https://redirect.github.com/nodejs/node/pull/55088) - \[[`85f1187942`](https://redirect.github.com/nodejs/node/commit/85f1187942)] - **test**: fix `assertSnapshot` when path contains a quote (Antoine du Hamel) [#​55087](https://redirect.github.com/nodejs/node/pull/55087) - \[[`fdae57f1e1`](https://redirect.github.com/nodejs/node/commit/fdae57f1e1)] - **test**: fix some tests when path contains `%` (Antoine du Hamel) [#​55082](https://redirect.github.com/nodejs/node/pull/55082) - \[[`36c9ea8912`](https://redirect.github.com/nodejs/node/commit/36c9ea8912)] - ***Revert*** "**test**: mark test-fs-watch-non-recursive flaky on Windows" (Luigi Pinca) [#​55079](https://redirect.github.com/nodejs/node/pull/55079) - \[[`80da5993cc`](https://redirect.github.com/nodejs/node/commit/80da5993cc)] - **test**: remove interval and give more time to unsync (Pietro Marchini) [#​55006](https://redirect.github.com/nodejs/node/pull/55006) - \[[`93c23e74b3`](https://redirect.github.com/nodejs/node/commit/93c23e74b3)] - **test**: deflake test-inspector-strip-types (Luigi Pinca) [#​55058](https://redirect.github.com/nodejs/node/pull/55058) - \[[`43bbca2c08`](https://redirect.github.com/nodejs/node/commit/43bbca2c08)] - **test**: make `test-runner-assert` more robust (Aviv Keller) [#​55036](https://redirect.github.com/nodejs/node/pull/55036) - \[[`268f1ec08f`](https://redirect.github.com/nodejs/node/commit/268f1ec08f)] - **test**: update tls test to support OpenSSL32 (Michael Dawson) [#​55030](https://redirect.github.com/nodejs/node/pull/55030) - \[[`a50dd21423`](https://redirect.github.com/nodejs/node/commit/a50dd21423)] - **test**: do not assume `process.execPath` contains no spaces (Antoine du Hamel) [#​55028](https://redirect.github.com/nodejs/node/pull/55028) - \[[`c56e324cb8`](https://redirect.github.com/nodejs/node/commit/c56e324cb8)] - **test**: fix `test-vm-context-dont-contextify` when path contains a space (Antoine du Hamel) [#​55026](https://redirect.github.com/nodejs/node/pull/55026) - \[[`6d42e44264`](https://redirect.github.com/nodejs/node/commit/6d42e44264)] - **test**: adjust tls-set-ciphers for OpenSSL32 (Michael Dawson) [#​55016](https://redirect.github.com/nodejs/node/pull/55016) - \[[`22e601a76c`](https://redirect.github.com/nodejs/node/commit/22e601a76c)] - **test**: add `util.stripVTControlCharacters` test (RedYetiDev) [#​54865](https://redirect.github.com/nodejs/node/pull/54865) - \[[`a6796696d7`](https://redirect.github.com/nodejs/node/commit/a6796696d7)] - **test**: improve coverage for timer promises schedular (Aviv Keller) [#​53370](https://redirect.github.com/nodejs/node/pull/53370) - \[[`9506f77b3e`](https://redirect.github.com/nodejs/node/commit/9506f77b3e)] - **test**: remove `getCallSite` from common (RedYetiDev) [#​54947](https://redirect.github.com/nodejs/node/pull/54947) - \[[`20d3a806ea`](https://redirect.github.com/nodejs/node/commit/20d3a806ea)] - **test**: remove unused common utilities (RedYetiDev) [#​54825](https://redirect.github.com/nodejs/node/pull/54825) - \[[`341b6d9b94`](https://redirect.github.com/nodejs/node/commit/341b6d9b94)] - **test**: deflake test-http-header-overflow (Luigi Pinca) [#​54978](https://redirect.github.com/nodejs/node/pull/54978) - \[[`1e53c10853`](https://redirect.github.com/nodejs/node/commit/1e53c10853)] - **test**: fix `soucre` to `source` (Aviv Keller) [#​55038](https://redirect.github.com/nodejs/node/pull/55038) - \[[`6843ca7e0d`](https://redirect.github.com/nodejs/node/commit/6843ca7e0d)] - **test**: add asserts to validate test assumptions (Michael Dawson) [#​54997](https://redirect.github.com/nodejs/node/pull/54997) - \[[`98ff615c5e`](https://redirect.github.com/nodejs/node/commit/98ff615c5e)] - **test**: add runner watch mode isolation tests (Pietro Marchini) [#​54888](https://redirect.github.com/nodejs/node/pull/54888) - \[[`327a8f7b59`](https://redirect.github.com/nodejs/node/commit/327a8f7b59)] - **test**: fix invalid wasm test (Aviv Keller) [#​54935](https://redirect.github.com/nodejs/node/pull/54935) - \[[`5b012f544c`](https://redirect.github.com/nodejs/node/commit/5b012f544c)] - **test**: move test-http-max-sockets to parallel (Luigi Pinca) [#​54977](https://redirect.github.com/nodejs/node/pull/54977) - \[[`22b413910e`](https://redirect.github.com/nodejs/node/commit/22b413910e)] - **test**: remove test-http-max-sockets flaky designation (Luigi Pinca) [#​54976](https://redirect.github.com/nodejs/node/pull/54976) - \[[`62b8640550`](https://redirect.github.com/nodejs/node/commit/62b8640550)] - **test**: refactor test-whatwg-webstreams-encoding to be shorter (David Dong) [#​54569](https://redirect.github.com/nodejs/node/pull/54569) - \[[`1f11d68173`](https://redirect.github.com/nodejs/node/commit/1f11d68173)] - **test**: adjust key sizes to support OpenSSL32 (Michael Dawson) [#​54972](https://redirect.github.com/nodejs/node/pull/54972) - \[[`90a87ca8f7`](https://redirect.github.com/nodejs/node/commit/90a87ca8f7)] - **test**: update test to support OpenSSL32 (Michael Dawson) [#​54968](https://redirect.github.com/nodejs/node/pull/54968) - \[[`9b7834536a`](https://redirect.github.com/nodejs/node/commit/9b7834536a)] - **test**: update DOM events web platform tests (Matthew Aitken) [#​54642](https://redirect.github.com/nodejs/node/pull/54642) - \[[`1c001550a2`](https://redirect.github.com/nodejs/node/commit/1c001550a2)] - **test,crypto**: update WebCryptoAPI WPT (Filip Skokan) [#​55029](https://redirect.github.com/nodejs/node/pull/55029) - \[[`800f7c44ed`](https://redirect.github.com/nodejs/node/commit/800f7c44ed)] - **test_runner**: throw on invalid source map (Aviv Keller) [#​55055](https://redirect.github.com/nodejs/node/pull/55055) - \[[`0f7e3f017f`](https://redirect.github.com/nodejs/node/commit/0f7e3f017f)] - **test_runner**: assert entry is a valid object (Edigleysson Silva (Edy)) [#​55231](https://redirect.github.com/nodejs/node/pull/55231) - \[[`c308862d2e`](https://redirect.github.com/nodejs/node/commit/c308862d2e)] - **test_runner**: avoid spread operator on arrays (Antoine du Hamel) [#​55143](https://redirect.github.com/nodejs/node/pull/55143) - \[[`12401972b7`](https://redirect.github.com/nodejs/node/commit/12401972b7)] - **test_runner**: support typescript files in default glob (Aviv Keller) [#​55081](https://redirect.github.com/nodejs/node/pull/55081) - \[[`19cfa3140f`](https://redirect.github.com/nodejs/node/commit/19cfa3140f)] - **test_runner**: close and flush destinations on forced exit (Colin Ihrig) [#​55099](https://redirect.github.com/nodejs/node/pull/55099) - \[[`86f7cb802d`](https://redirect.github.com/nodejs/node/commit/86f7cb802d)] - **(SEMVER-MINOR)** **test_runner**: support custom arguments in `run()` (Aviv Keller) [#​55126](https://redirect.github.com/nodejs/node/pull/55126) - \[[`7eaeba499a`](https://redirect.github.com/nodejs/node/commit/7eaeba499a)] - **test_runner**: fix mocking modules with quote in their URL (Antoine du Hamel) [#​55083](https://redirect.github.com/nodejs/node/pull/55083) - \[[`8818c6c88a`](https://redirect.github.com/nodejs/node/commit/8818c6c88a)] - **test_runner**: report error on missing sourcemap source (Aviv Keller) [#​55037](https://redirect.github.com/nodejs/node/pull/55037) - \[[`b62f2f8259`](https://redirect.github.com/nodejs/node/commit/b62f2f8259)] - **(SEMVER-MINOR)** **test_runner**: add 'test:summary' event (Colin Ihrig) [#​54851](https://redirect.github.com/nodejs/node/pull/54851) - \[[`449dad0db0`](https://redirect.github.com/nodejs/node/commit/449dad0db0)] - **test_runner**: use `test:` symbol on second print of parent test (RedYetiDev) [#​54956](https://redirect.github.com/nodejs/node/pull/54956) - \[[`4b962a78c7`](https://redirect.github.com/nodejs/node/commit/4b962a78c7)] - **test_runner**: replace ansi clear with ansi reset (Pietro Marchini) [#​55013](https://redirect.github.com/nodejs/node/pull/55013) - \[[`d7c708aec5`](https://redirect.github.com/nodejs/node/commit/d7c708aec5)] - **(SEMVER-MINOR)** **test_runner**: add support for coverage via run() (Chemi Atlow) [#​53937](https://redirect.github.com/nodejs/node/pull/53937) - \[[`93c6c90219`](https://redirect.github.com/nodejs/node/commit/93c6c90219)] - **test_runner**: support typescript module mocking (Marco Ippolito) [#​54878](https://redirect.github.com/nodejs/node/pull/54878) - \[[`1daec9a63f`](https://redirect.github.com/nodejs/node/commit/1daec9a63f)] - **test_runner**: avoid coverage report partial file names (Pietro Marchini) [#​54379](https://redirect.github.com/nodejs/node/pull/54379) - \[[`d51e5a8667`](https://redirect.github.com/nodejs/node/commit/d51e5a8667)] - **tools**: enforc </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 these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMzMuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
-
liuyi (17 Jan 25)
test: mobile e2e (#9753)
-
forehalo (17 Jan 25)
fix(nbstore): userdata id converter (#9748)
-
github-actions[bot] (17 Jan 25)
chore(i18n): sync translations (#9741) Co-authored-by: Crowdin Bot <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: liuyi <[email protected]>
-
forehalo (17 Jan 25)
feat(server): use user model (#9710)
-
fengmk2 (17 Jan 25)
refactor(server): use workspace model on user model (#9726)
-
fengmk2 (17 Jan 25)
feat(server): page model (#9715)
-
fengmk2 (17 Jan 25)
feat(server): workspace model (#9714)
-
renovate (17 Jan 25)
chore: bump up eslint-config-prettier version to v10 (#9671) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [eslint-config-prettier](https://redirect.github.com/prettier/eslint-config-prettier) | [`^9.1.0` -> `^10.0.0`](https://renovatebot.com/diffs/npm/eslint-config-prettier/9.1.0/10.0.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>prettier/eslint-config-prettier (eslint-config-prettier)</summary> ### [`v10.0.1`](https://redirect.github.com/prettier/eslint-config-prettier/releases/tag/v10.0.1) [Compare Source](https://redirect.github.com/prettier/eslint-config-prettier/compare/v10.0.0...v10.0.1) ### eslint-config-prettier #### 10.0.0 ##### Major Changes - [#​272](https://redirect.github.com/prettier/eslint-config-prettier/pull/272) [`5be64be`](https://redirect.github.com/prettier/eslint-config-prettier/commit/5be64bef68c3a9bf7202f591f54ffec02572e46b) Thanks [@​abrahamguo](https://redirect.github.com/abrahamguo)! - add support for [@​stylistic](https://redirect.github.com/stylistic) formatting rules #### Versions before 10.0.0 ##### Version 9.1.0 (2023-12-02) - Added: [unicorn/template-indent], (as a [special rule][unicorn/template-indent-special]). Thanks to Gürgün Dayıoğlu ([@​gurgunday](https://redirect.github.com/gurgunday))! - Changed: All the [formatting rules that were deprecated in ESLint 8.53.0][deprecated-8.53.0] are now excluded if you set the `ESLINT_CONFIG_PRETTIER_NO_DEPRECATED` environment variable. ##### Version 9.0.0 (2023-08-05) - Added: The CLI helper tool now works with eslint.config.js (flat config). Just like ESLint itself, the CLI tool automatically first tries eslint.config.js and then eslintrc, and you can force which one to use by setting the [ESLINT_USE_FLAT_CONFIG] environment variable. Note that the *config* of eslint-config-prettier has always been compatible with eslint.config.js (flat config) – it was just the CLI tool that needed updating. On top of that, the docs have been updated to mention how to use both eslint.config.js (flat config) and eslintrc, and the tests now test both config systems. - Changed: [unicode-bom] is no longer turned off. Prettier preserves the BOM if you have one, and does not add one if missing. It was wrong of eslint-config-prettier to disable that rule. If you get ESLint errors after upgrading, either add `"unicode-bom": "off"` to your config to disable it again, or run ESLint with `--fix` to fix all files according to the rule (add or remove BOM). Thanks to Nicolas Stepien ([@​nstepien](https://redirect.github.com/nstepien))! ##### Version 8.10.0 (2023-08-03) - Added: [max-statements-per-line]. Thanks to [@​Zamiell](https://redirect.github.com/Zamiell)! ##### Version 8.9.0 (2023-07-27) - Added: [vue/array-element-newline]. Thanks to [@​xcatliu](https://redirect.github.com/xcatliu)! ##### Version 8.8.0 (2023-03-20) - Added: [@​typescript-eslint/lines-around-comment]. Thanks to [@​ttionya](https://redirect.github.com/ttionya)! ##### Version 8.7.0 (2023-03-06) - Added: [@​typescript-eslint/block-spacing]. Thanks to [@​ttionya](https://redirect.github.com/ttionya)! - Added: [@​typescript-eslint/key-spacing]. Thanks to [@​ttionya](https://redirect.github.com/ttionya)! ##### Version 8.6.0 (2023-01-02) - Added: [vue/multiline-ternary]. Thanks to [@​xcatliu](https://redirect.github.com/xcatliu)! ##### Version 8.5.0 (2022-03-02) - Added: [@​typescript-eslint/space-before-blocks]. Thanks to Masafumi Koba ([@​ybiquitous](https://redirect.github.com/ybiquitous))! ##### Version 8.4.0 (2022-02-19) - Added: [vue/quote-props]. Thanks to [@​xcatliu](https://redirect.github.com/xcatliu)! ##### Version 8.3.0 (2021-04-24) - Added: Support for [@​babel/eslint-plugin]. Thanks to Chip Zhang ([@​ChipZhang](https://redirect.github.com/ChipZhang)) for the heads-up! ([eslint-plugin-babel] is still supported, too.) ##### Version 8.2.0 (2021-04-13) - Added: [flowtype/quotes]. Thanks to Martin Zlámal ([@​mrtnzlml](https://redirect.github.com/mrtnzlml))! ##### Version 8.1.0 (2021-02-24) - Added: [flowtype/object-type-curly-spacing]. - Added: Dummy files for the configs removed in 8.0.0. The dummy files throw an error that try to guide you how to upgrade. ##### Version 8.0.0 (2021-02-21) - Changed: All configs have been merged into one! To upgrade, change: ```json { "extends": [ "some-other-config-you-use", "prettier", "prettier/@​typescript-eslint", "prettier/babel", "prettier/flowtype", "prettier/react", "prettier/standard", "prettier/unicorn", "prettier/vue" ] } ``` Into: <!-- prettier-ignore --> ```json { "extends": [ "some-other-config-you-use", "prettier" ] } ``` The `"prettier"` config now includes not just ESLint core rules, but also rules from all plugins. Much simpler! So … what’s the catch? Why haven’t we done this earlier? Turns out it’s just a sad mistake. I ([@​lydell](https://redirect.github.com/lydell)) was confused when testing, and thought that turning off unknown rules in a config was an error. Thanks to Georgii Dolzhykov ([@​thorn0](https://redirect.github.com/thorn0)) for pointing this out! If you use [eslint-plugin-prettier], all you need is [plugin:prettier/recommended]: <!-- prettier-ignore --> ```json { "extends": [ "some-other-config-you-use", "plugin:prettier/recommended" ] } ``` (The ["prettier/prettier" config][prettier-prettier-config] still exists separately. It’s the odd one out. The main `"prettier"` config does *not* include the rules from it.) - Changed: The CLI helper tool now only prints warnings for [arrow-body-style] and [prefer-arrow-callback], just like other “special rules.” This means that if you’ve decided to use those rules and [eslint-plugin-prettier] at the same time, you’ll get warnings but exit code zero (success). ##### Version 7.2.0 (2021-01-18) - Added: [@​typescript-eslint/object-curly-spacing]. - Added: [react/jsx-newline]. ##### Version 7.1.0 (2020-12-19) - Added: [unicorn/empty-brace-spaces]. Thanks to fisker Cheung ([@​fisker](https://redirect.github.com/fisker))! ##### Version 7.0.0 (2020-12-05) - Changed: At least ESLint 7.0.0 is now required. - Changed: [arrow-body-style] and [prefer-arrow-callback] are no longer turned off by default. They only need to be turned off if you use [eslint-plugin-prettier]. If you do, add `"prettier/prettier"` to your `"extends"` array to turn them off again. ```json { "extends": ["prettier", "prettier/prettier"], "plugins": ["prettier"], "rules": { "prettier/prettier": "error" } } ``` Alternatively, update [eslint-plugin-prettier] to version 3.2.0 or later which automatically turns off these two rules in its `"plugin:prettier/recommended"` config. The CLI helper tool only warns about these rules if you have the `"prettier/prettier"` *rule* enabled for a file. - Changed: `no-tabs` is now a validatable rule. If you use it, you should enable `allowIndentationTabs` so that the rule works regardless of your Prettier config: ```json { "rules": { "no-tabs": ["error", { "allowIndentationTabs": true }] } } ``` - Changed: The CLI helper tool is now called just `eslint-config-prettier` instead of `eslint-config-prettier-check`. This is so that `npx eslint-config-prettier` always works regardless of whether you have already installed `eslint-config-prettier` or not: If you have, the local installation is used; if you haven’t, `npx` downloads a temporary copy. - Changed: The CLI helper tool no longer requires you to pipe the output of `eslint --print-config` to it. Instead, it does that automatically for you via ESLint API:s added in ESLint v7. Before: npx eslint --print-config index.js | npx eslint-config-prettier-check After: npx eslint-config-prettier index.js - Improved: The npm package is now 75% smaller. ##### Version 6.15.0 (2020-10-27) - Added: [@​typescript-eslint/space-infix-ops]. Thanks to Masafumi Koba ([@​ybiquitous](https://redirect.github.com/ybiquitous))! ##### Version 6.14.0 (2020-10-21) - Added: New [eslint-plugin-vue] rules: \[vue/array-bracket-newline] and \[vue/block-tag-newline]. Thanks to [@​xcatliu](https://redirect.github.com/xcatliu)! ##### Version 6.13.0 (2020-10-16) - Added: New rules in [eslint-plugin-vue] 7.0 (which supports Vue 3.0). Thanks to [@​xcatliu](https://redirect.github.com/xcatliu)! ##### Version 6.12.0 (2020-09-25) - Added: [@​typescript-eslint/comma-dangle]. Thanks to Masafumi Koba ([@​ybiquitous](https://redirect.github.com/ybiquitous))! ##### Version 6.11.0 (2020-04-21) - Added: [@​typescript-eslint/keyword-spacing]. Thanks to Hans Bergren ([@​hbergren](https://redirect.github.com/hbergren))! ##### Version 6.10.1 (2020-03-22) - Improved: Recommend using `npx` when running the CLI helper tool. - Updated: Mention that eslint-config-prettier has been tested with Prettier 2.0 and the latest versions of plugins. ##### Version 6.10.0 (2020-01-28) - Added: [@​typescript-eslint/comma-spacing]. Thanks to Masafumi Koba ([@​ybiquitous](https://redirect.github.com/ybiquitous))! ##### Version 6.9.0 (2019-12-27) - Added: [vue/max-len]. Thanks to [@​xcatliu](https://redirect.github.com/xcatliu)! ##### Version 6.8.0 (2019-12-25) - Added: [@​typescript-eslint/no-extra-semi]. Thanks to [@​xcatliu](https://redirect.github.com/xcatliu)! ##### Version 6.7.0 (2019-11-19) - Added: [@​typescript-eslint/space-before-function-paren]. Thanks to Masafumi Koba ([@​ybiquitous](https://redirect.github.com/ybiquitous))! ##### Version 6.6.0 (2019-11-17) - Added: New [eslint-plugin-vue] rules: [vue/dot-location] and [vue/keyword-spacing]. Thanks to [@​xcatliu](https://redirect.github.com/xcatliu)! ##### Version 6.5.0 (2019-10-26) - Added: Support for [excluding deprecated rules]. Thanks to Alex Ilyaev ([@​alexilyaev](https://redirect.github.com/alexilyaev))! ##### Version 6.4.0 (2019-10-05) - Added: [unicorn/no-nested-ternary]. Thanks to Yang Mingshan ([@​yangmingshan](https://redirect.github.com/yangmingshan))! ##### Version 6.3.0 (2019-09-10) - Added: [@​typescript-eslint/brace-style]. Thanks to Masafumi Koba ([@​ybiquitous](https://redirect.github.com/ybiquitous))! ##### Version 6.2.0 (2019-09-03) - Added: [@​typescript-eslint/quotes] (as a [special rule][@​typescript-eslint/quotes-special]). Thanks to Masafumi Koba ([@​ybiquitous](https://redirect.github.com/ybiquitous))! ##### Version 6.1.0 (2019-08-19) - Added: [function-call-argument-newline] (new in ESLint 6.2.0). Thanks to Masafumi Koba ([@​ybiquitous](https://redirect.github.com/ybiquitous))! ##### Version 6.0.0 (2019-06-25) - Changed: The CLI helper tool now considers [no-confusing-arrow] to conflict if you use the default value of its `allowParens` option. The default was changed to `true` in ESLint 6, which conflicts with Prettier. If the CLI helper tool gives you errors about this after upgrading, the solution is to change this: ```json { "rules": { "no-confusing-arrow": ["error"] } } ``` Into this: ```json { "rules": { "no-confusing-arrow": ["error", { "allowParens": false }] } } ``` The latter works in both ESLint 6 as well as in ESLint 5 and older. - Improved: `eslint --print-config` usage instructions. The CLI tool help text as well as the documentation has been updated to suggest commands that work in ESLint 6.0 as well as in ESLint 5 and older. (Instead of `eslint --print-config .`, use `eslint --print-config path/to/main.js`.) ##### Version 5.1.0 (2019-06-25) - Added: [react/jsx-curly-newline]. Thanks to Masafumi Koba ([@​ybiquitous](https://redirect.github.com/ybiquitous))! ##### Version 5.0.0 (2019-06-15) - Removed: [react/self-closing-comp]. This rule was added in v4.1.0 not because it *conflicted* with Prettier but because it was *unnecessary* when using Prettier. However, in v1.18.0 [Prettier stopped converting empty elements to self-closing elements][prettier-self-closing]. So the rule is not unnecessary anymore. If you use Prettier v1.17.1 or older you should be able to upgrade eslint-config-prettier to v5.0.0 without having to do anything else. If you use Prettier v1.18.0 or newer, you might get lint errors about for example changing `<div></div>` into `<div />`. You have two options: - Run `eslint --fix` if you prefer to enforce self-closing elements where possible. This should fix all the errors. - Add `"react/self-closing-comp": "off"` to your ESLint config if you use autofix from your editor and you face the same [issue as Prettier did][prettier-self-closing]. - Changed: Node.js 6 is no longer officially supported, but v5.0.0 should still work with it. ##### Version 4.3.0 (2019-05-16) - Added: New [eslint-plugin-vue] rules: [vue/arrow-spacing], [vue/block-spacing], [vue/brace-style] and [vue/comma-dangle]. - Added: New [@​typescript-eslint/eslint-plugin] rules: [@​typescript-eslint/func-call-spacing] and [@​typescript-eslint/semi]. ##### Version 4.2.0 (2019-04-25) - Added: [@​typescript-eslint/no-extra-parens]. Thanks to Keiichiro Amemiya ([@​Hoishin](https://redirect.github.com/Hoishin)) and Jen Gorfine ([@​jgorfine](https://redirect.github.com/jgorfine))! ##### Version 4.1.0 (2019-02-26) - Added: [linebreak-style]. Use Prettier’s [end-of-line] option instead. - Added: [react/self-closing-comp]. Thanks to Gaurav Gupta ([@​gaurav5430](https://redirect.github.com/gaurav5430))! ##### Version 4.0.0 (2019-01-26) - Breaking change: Support for [eslint-plugin-typescript] has been removed and replaced with support for its successor [@​typescript-eslint/eslint-plugin]. Thanks to TANIGUCHI Masaya ([@​ta2gch](https://redirect.github.com/ta2gch)) and everyone else who helped with this! - Changed: [arrow-body-style] and [prefer-arrow-callback] are now marked as [special rules][arrow-special], since they might cause problems if using [eslint-plugin-prettier] and `--fix`. They are turned off by default, and the CLI helper tool will *warn* about them (but not error if you do enable them). This won’t break your linting checks, but do note that these rules will be disabled unless you explicitly enable them again, and that you might see new warnings when running the CLI helper tool. ##### Version 3.6.0 (2019-01-19) - Added: Support for [eslint-plugin-babel]. Thanks to Matija Marohnić ([@​silvenon](https://redirect.github.com/silvenon))! ##### Version 3.5.0 (2019-01-16) - Fixed: The eslint-plugin-vue change from 3.4.0 has been reverted. That change requires eslint-plugin-vue@5, while many use eslint-plugin-vue@4. In other words, it was an accidental breaking change. Also, after thinking about it some more, it makes sense to have a Prettier-specific list of rules, rather than using the `vue/no-layout-rules` list, since there can be layout rules that don’t conflict with but rather complement Prettier. - Added: New eslint-plugin-vue rules coming in the next version after 5.1.0. ##### Version 3.4.0 (2019-01-13) - Added: Support for [eslint-plugin-typescript]. Thanks to Jed Fox ([@​j-f1](https://redirect.github.com/j-f1))! - Improved: The eslint-plugin-vue integration is now using the `vue/no-layout-rules` config behind the scenes, so it should automatically stay up-to-date when new eslint-plugin-vue versions are released. Thanks to Michał Sajnóg ([@​michalsnik](https://redirect.github.com/michalsnik))! ##### Version 3.3.0 (2018-11-11) - Added: The [vue/html-self-closing] rule (as a [special rule][vue/html-self-closing-special]). Thanks to Yamagishi Kazutoshi ([@​ykzts](https://redirect.github.com/ykzts))! ##### Version 3.2.0 (2018-11-10) - Added: Support for [eslint-plugin-vue]. - Fixed: The CLI helper tool should now work in Node.js 6 with npm 3 again. Thanks to Grant Snodgrass ([@​meeber](https://redirect.github.com/meeber))! - Improved: Updated documentation. ##### Version 3.1.0 (2018-09-22) - Added: Support for [eslint-plugin-unicorn]. Thanks to John Mars ([@​j0hnm4r5](https://redirect.github.com/j0hnm4r5))! - Changed: The [quotes] rule is now allowed to be used to forbid unnecessary backticks. This means that the CLI helper tool no longer can automatically validate it, so you’ll need to refer the [quotes special rule documentation][quotes-special]. Thanks to Nick Petruzzelli ([@​npetruzzelli](https://redirect.github.com/npetruzzelli))! ##### Version 3.0.1 (2018-08-13) - Improved: `eslint --print-config` usage instructions. ##### Version 3.0.0 (2018-08-13) - Breaking change: Dropped Node.js 4 support. ##### Version 2.10.0 (2018-08-13) - Added: [flowtype/boolean-style]. Thanks to Mayank Agarwal ([@​Mayank1791989](https://redirect.github.com/Mayank1791989))! - Added: [react/jsx-child-element-spacing] - Added: [react/jsx-props-no-multi-spaces] ##### Version 2.9.0 (2017-11-26) - Added: The [implicit-arrow-linebreak] rule. ##### Version 2.8.0 (2017-11-19) - Added: The [react/jsx-one-expression-per-line] rule. ##### Version 2.7.0 (2017-11-01) - Added: The [lines-around-comment] rule (as a [special rule][lines-around-comment-special]). Thanks to Maurice de Beijer ([@​mauricedb](https://redirect.github.com/mauricedb))! - Added: The [no-unexpected-multiline] rule (as a [special rule][no-unexpected-multiline-special]). Thanks to Suhas Karanth ([@​sudo-suhas](https://redirect.github.com/sudo-suhas))! ##### Version 2.6.0 (2017-09-23) - Added: The [no-floating-decimal] rule. ##### Version 2.5.0 (2017-09-16) - Added: Support for [eslint-plugin-standard]. Thanks to Christian Pekeler ([@​pekeler](https://redirect.github.com/pekeler))! ##### Version 2.4.0 (2017-09-02) - Added: The [function-paren-newline] rule (new in [ESLint 4.6.0]). Thanks to Pierre Vanduynslager ([@​vanduynslagerp](https://redirect.github.com/vanduynslagerp))! ##### Version 2.3.0 (2017-06-30) - Added: The (deprecated) [indent-legacy] rule. Thanks to M. Ian Graham ([@​miangraham](https://redirect.github.com/miangraham))! ##### Version 2.2.0 (2017-06-17) - Added: New rules from [ESLint 4.0.0]: - [array-element-newline] - [array-bracket-newline] - [semi-style] - [switch-colon-spacing] - Added: [react/jsx-closing-tag-location] ##### Version 2.1.1 (2017-05-20) - No code changes. Just updates to the readme. ##### Version 2.1.0 (2017-05-13) - Added: The [no-tabs] rule (as a [special rule][no-tabs-special]). Thanks to Alex Meah ([@​AlexMeah](https://redirect.github.com/AlexMeah))! ##### Version 2.0.0 (2017-05-07) - Changed/Improved: The CLI helper tool is now more helpful. - The options of special rules are now validated if possible. If a special rule is enabled with non-conflicting options, the CLI no longer warns about it. - If only special rules that cannot be automatically checked are found, the CLI no longer exists with a non-zero exit code. Instead, it only warns about the rules. - Changed: The [no-confusing-arrow] is now a special rule again, since it might conflict with recent Prettier versions. - Removed: The `react/wrap-multilines` rule (which has been deprecated for a while), since it was removed in eslint-plugin-react@7. ##### Version 1.7.0 (2017-04-19) - Changed: The [no-confusing-arrow] is no longer a special rule, but simply turned off, since recent Prettier versions make it redundant. - Improved: The CLI helper tool now has a more helpful message for special rules, and exits with a different status code if only special rules were found. The exit codes are now documented as well. ##### Version 1.6.0 (2017-04-05) - Added: The [curly] rule. Thanks to Martin Rädlinger ([@​formatlos](https://redirect.github.com/formatlos))! ##### Version 1.5.0 (2017-03-04) - Added: The [nonblock-statement-body-position] rule. ##### Version 1.4.1 (2017-02-28) - Improved: eslint-config-prettier is now part of the [prettier] organization! This version updates all URLs to point to the new home of the project. ##### Version 1.4.0 (2017-02-26) - Added: The [no-confusing-arrow] rule (as a [special rule][no-confusing-arrow-special]). Thanks to Dominik Ferber ([@​dferber90](https://redirect.github.com/dferber90))! - Added: Deprecated or removed rules that might conflict with prettier. Thanks to Dominik Ferber ([@​dferber90](https://redirect.github.com/dferber90))! ##### Version 1.3.0 (2017-02-21) - Added: The [template-tag-spacing] rule. Thanks to Thibault Derousseaux ([@​tibdex](https://redirect.github.com/tibdex))! ##### Version 1.2.0 (2017-02-14) - Added: The [one-var-declaration-per-line] rule. Thanks to Ruben Oostinga ([@​0xR](https://redirect.github.com/0xR))! ##### Version 1.1.1 (2017-02-12) - Minor documentation tweak: Changed "Exceptions" into "Special rules". ##### Version 1.1.0 (2017-02-10) - Fixed: The [eslint-plugin-react] exclusion rules now actually work. - Fixed: The CLI helper tool now works in Node.js 4. Thanks to Nathan Friedly ([@​nfriedly](https://redirect.github.com/nfriedly))! - Added: Support for [eslint-plugin-flowtype]. - Improved: Minor things for the CLI helper tool. - Improved: There are now tests for everything. ##### Version 1.0.3 (2017-02-03) - Fixed: `"extends": "prettier/react"` now actually works. ##### Version 1.0.2 (2017-01-30) - Improved: CLI helper tool instructions. ##### Version 1.0.1 (2017-01-29) - No difference from 1.0.0. Just an `npm publish` mistake. ##### Version 1.0.0 (2017-01-29) - Initial release. [@​babel/eslint-plugin]: https://redirect.github.com/babel/babel/tree/main/eslint/babel-eslint-plugin [@​typescript-eslint/block-spacing]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/block-spacing.md [@​typescript-eslint/brace-style]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/brace-style.md [@​typescript-eslint/comma-dangle]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/comma-dangle.md [@​typescript-eslint/comma-spacing]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/comma-spacing.md [@​typescript-eslint/eslint-plugin]: https://redirect.github.com/typescript-eslint/typescript-eslint [@​typescript-eslint/func-call-spacing]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/func-call-spacing.md [@​typescript-eslint/key-spacing]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/key-spacing.md [@​typescript-eslint/keyword-spacing]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/keyword-spacing.md [@​typescript-eslint/lines-around-comment]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/lines-around-comment.md [@​typescript-eslint/no-extra-parens]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-extra-parens.md [@​typescript-eslint/no-extra-semi]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-extra-semi.md [@​typescript-eslint/object-curly-spacing]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/object-curly-spacing.md [@​typescript-eslint/quotes-special]: https://redirect.github.com/prettier/eslint-config-prettier/blob/857257179fe69715362dfa9300762d6e534c0603/README.md#quotes [@​typescript-eslint/quotes]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/quotes.md [@​typescript-eslint/semi]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/semi.md [@​typescript-eslint/space-before-blocks]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/space-before-blocks.md [@​typescript-eslint/space-before-function-paren]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/space-before-function-paren.md [@​typescript-eslint/space-infix-ops]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/space-infix-ops.md [array-bracket-newline]: https://eslint.org/docs/rules/array-bracket-newline [array-element-newline]: https://eslint.org/docs/rules/array-element-newline [arrow-body-style]: https://eslint.org/docs/rules/arrow-body-style [arrow-special]: https://redirect.github.com/prettier/eslint-config-prettier/blob/2c842675e55b91aecaef6f997d234ebf2d220ffb/README.md#arrow-body-style-and-prefer-arrow-callback [curly]: https://eslint.org/docs/rules/curly [deprecated-8.53.0]: https://eslint.org/blog/2023/10/deprecating-formatting-rules/ [end-of-line]: https://prettier.io/docs/en/options.html#end-of-line [eslint 4.0.0]: https://eslint.org/blog/2017/06/eslint-v4.0.0-released [eslint 4.6.0]: https://eslint.org/blog/2017/09/eslint-v4.6.0-released [ESLINT_USE_FLAT_CONFIG]: https://redirect.github.com/prettier/eslint-config-prettier#eslint_use_flat_config-environment-variable [eslint-plugin-babel]: https://redirect.github.com/babel/eslint-plugin-babel [eslint-plugin-flowtype]: https://redirect.github.com/gajus/eslint-plugin-flowtype [eslint-plugin-prettier]: https://redirect.github.com/prettier/eslint-plugin-prettier [eslint-plugin-react]: https://redirect.github.com/yannickcr/eslint-plugin-react [eslint-plugin-standard]: https://redirect.github.com/xjamundx/eslint-plugin-standard [eslint-plugin-typescript]: https://redirect.github.com/bradzacher/eslint-plugin-typescript [eslint-plugin-unicorn]: https://redirect.github.com/sindresorhus/eslint-plugin-unicorn [eslint-plugin-vue]: https://redirect.github.com/vuejs/eslint-plugin-vue [excluding deprecated rules]: https://redirect.github.com/prettier/eslint-config-prettier/tree/9f6b59486ad742dc12ad3be157ddff5f8454ef7a#excluding-deprecated-rules [flowtype/boolean-style]: https://redirect.github.com/gajus/eslint-plugin-flowtype#eslint-plugin-flowtype-rules-boolean-style [flowtype/object-type-curly-spacing]: https://redirect.github.com/gajus/eslint-plugin-flowtype#eslint-plugin-flowtype-rules-object-type-curly-spacing [flowtype/quotes]: https://redirect.github.com/gajus/eslint-plugin-flowtype#eslint-plugin-flowtype-rules-quotes [function-call-argument-newline]: https://eslint.org/docs/rules/function-call-argument-newline [function-paren-newline]: https://eslint.org/docs/rules/function-paren-newline [implicit-arrow-linebreak]: https://eslint.org/docs/rules/implicit-arrow-linebreak [indent-legacy]: https://eslint.org/docs/rules/indent-legacy [linebreak-style]: https://eslint.org/docs/rules/linebreak-style [lines-around-comment-special]: https://redirect.github.com/prettier/eslint-config-prettier/blob/5399175c37466747aae9d407021dffec2c169c8b/README.md#lines-around-comment [lines-around-comment]: https://eslint.org/docs/rules/lines-around-comment [max-statements-per-line]: https://eslint.org/docs/latest/rules/max-statements-per-line [no-confusing-arrow-special]: https://redirect.github.com/prettier/eslint-config-prettier/blob/08ac5bcc25c9cdc71864b4a1e4191e7d28dd2bc2/README.md#no-confusing-arrow [no-confusing-arrow]: https://eslint.org/docs/rules/no-confusing-arrow [no-floating-decimal]: https://eslint.org/docs/rules/no-floating-decimal [no-tabs-special]: https://redirect.github.com/prettier/eslint-config-prettier/blob/dfa6e2b51f11a8001e9e7d38b78f03c7d75175ec/README.md#no-tabs [no-tabs]: https://eslint.org/docs/rules/no-tabs [no-unexpected-multiline-special]: https://redirect.github.com/prettier/eslint-config-prettier/blob/5399175c37466747aae9d407021dffec2c169c8b/README.md#no-unexpected-multiline [no-unexpected-multiline]: https://eslint.org/docs/rules/no-unexpected-multiline [nonblock-statement-body-position]: https://eslint.org/docs/rules/nonblock-statement-body-position [one-var-declaration-per-line]: https://eslint.org/docs/rules/one-var-declaration-per-line [plugin:prettier/recommended]: https://redirect.github.com/prettier/eslint-plugin-prettier#recommended-configuration [prefer-arrow-callback]: https://eslint.org/docs/rules/prefer-arrow-callback [prettier-prettier-config]: https://redirect.github.com/prettier/eslint-config-prettier/tree/03c79b9306892d4dbc828ce723813ef015baabc5#arrow-body-style-and-prefer-arrow-callback [prettier-self-closing]: https://prettier.io/blog/2019/06/06/1.18.0.html#stop-converting-empty-jsx-elements-to-self-closing-elements-6127-by-duailibe [prettier]: https://redirect.github.com/prettier [quotes-special]: https://redirect.github.com/prettier/eslint-config-prettier/blob/8d264cd0a7f06c12e2e05415e0282a4f8f21ebc9/README.md#quotes [quotes]: https://eslint.org/docs/rules/quotes [react/jsx-child-element-spacing]: https://redirect.github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-child-element-spacing.md [react/jsx-closing-tag-location]: https://redirect.github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-closing-tag-location.md [react/jsx-curly-newline]: https://redirect.github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-curly-newline.md [react/jsx-newline]: https://redirect.github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-newline.md [react/jsx-one-expression-per-line]: https://redirect.github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-one-expression-per-line.md [react/jsx-props-no-multi-spaces]: https://redirect.github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-props-no-multi-spaces.md [react/self-closing-comp]: https://redirect.github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/self-closing-comp.md [semi-style]: https://eslint.org/docs/rules/semi-style [switch-colon-spacing]: https://eslint.org/docs/rules/switch-colon-spacing [template-tag-spacing]: https://eslint.org/docs/rules/template-tag-spacing [unicode-bom]: https://eslint.org/docs/rules/unicode-bom [unicorn/empty-brace-spaces]: https://redirect.github.com/sindresorhus/eslint-plugin-unicorn/blob/master/docs/rules/empty-brace-spaces.md [unicorn/no-nested-ternary]: https://redirect.github.com/sindresorhus/eslint-plugin-unicorn/blob/master/docs/rules/no-nested-ternary.md [unicorn/template-indent-special]: https://redirect.github.com/prettier/eslint-config-prettier/blob/4110dff0c5b258be37506ecee9578cd7ff8e4759/README.md#unicorntemplate-indent [unicorn/template-indent]: https://redirect.github.com/sindresorhus/eslint-plugin-unicorn/blob/master/docs/rules/template-indent.md [vue/array-element-newline]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/array-element-newline.md [vue/arrow-spacing]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/arrow-spacing.md [vue/block-spacing]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/block-spacing.md [vue/brace-style]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/brace-style.md [vue/comma-dangle]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/comma-dangle.md [vue/dot-location]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/dot-location.md [vue/html-self-closing-special]: https://redirect.github.com/prettier/eslint-config-prettier/blob/d5e7af986221df5faedc12893d8dc3150a808693/README.md#vuehtml-self-closing [vue/html-self-closing]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/html-self-closing.md [vue/keyword-spacing]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/array-bracket-newline.md [vue/keyword-spacing]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/block-tag-newline.md [vue/keyword-spacing]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/keyword-spacing.md [vue/max-len]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/max-len.md [vue/multiline-ternary]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/multiline-ternary.md [vue/quote-props]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/quote-props.md ### [`v10.0.0`](https://redirect.github.com/prettier/eslint-config-prettier/blob/HEAD/CHANGELOG.md#1000) [Compare Source](https://redirect.github.com/prettier/eslint-config-prettier/compare/v9.1.0...v10.0.0) ##### Major Changes - [#​272](https://redirect.github.com/prettier/eslint-config-prettier/pull/272) [`5be64be`](https://redirect.github.com/prettier/eslint-config-prettier/commit/5be64bef68c3a9bf7202f591f54ffec02572e46b) Thanks [@​abrahamguo](https://redirect.github.com/abrahamguo)! - add support for [@​stylistic](https://redirect.github.com/stylistic) formatting rules </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 was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
-
doouding (17 Jan 25)
fix: legacy e2e test debug (#9746)
-
EYHN (17 Jan 25)
refactor(core): adjust merbers module apis (#9695)
-
forehalo (17 Jan 25)
feat(server): add model base (#9734)
-
L-Sun (16 Jan 25)
refactor(editor): enable toc dragging in page mode (#9736) Related [BS-2322](https://linear.app/affine-design/issue/BS-2322/toc-排序坏掉部分的修复)
-
EYHN (16 Jan 25)
feat(core): new worker workspace engine (#9257)
-
pengx17 (16 Jan 25)
feat(core): add new bs dnd adapter (#9717)
-
doouding (16 Jan 25)
refactor: rewrite blocksuite dnd (#9595) ### Changed - Refactored BlockSuite drag-and-drop using @atlaskit/pragmatic-drag-and-drop/element/adapter. - Updated block dragging to use the new drag-and-drop infrastructure. ### BlockSuite DND API Access the BlockSuite drag-and-drop API via `std.dnd`. This is a lightweight wrapper around pragmatic-drag-and-drop, offering convenient generic types and more intuitive option names. #### Drag payload structure There's some constrain about drag payload. The whole drag payload looks like this: ```typescript type DragPayload = { entity: { type: string }, from: { at: 'blocksuite', docId: string } } ``` - The `from` field is auto-generated—no need for manual handling. - The `entity` field is customizable, but it must include a `type`. All drag-and-drop methods accept a generic type for entity, ensuring more accurate payloads in event handlers. ```typescript type BlockEntity = { type: 'blocks', blockIds: string[] } dnd.draggable<BlockEntity>({ element: someElement, setDragData: () => { // the return type must satisfy the generic type // in this case, it's BlockEntity return { type: 'blocks', blockIds: [] } } }); dnd.monitor<BlockEntity>({ // the arguments is same for other event handler onDrag({ source }) { // the type of this is BlockEntity source.data.entity } }) ``` #### Drop payload When hover on droppable target. You can set drop payload as well. All drag-and-drop methods accept a second generic type for drop payload. The drop payload is customizable. Additionally, the DND system will add an `edge` field to the final payload object, indicating the nearest edge of the drop target relative to the current drag position. ```typescript type DropPayload = { blockId: string; } dnd.dropTarget<BlockEntity, DropPayload>({ getData() { // the type should be DropPayload return { blockId: 'someId' } } }); dnd.monitor<BlockEntity, DropPayload>({ // drag over on drop target onDrag({ location }) { const target = location.current.dropTargets[0]; // the type is DropPayload target.data; // retrieve the nearest edge of the drop target relative to the current drop position. target.data.edge; } }) ```
-
liuyi (16 Jan 25)
fix(server): disable checksum check for r2 storage when using aws-s3 sdk (#9735)
-
renovate (16 Jan 25)
chore: bump up file-type version to v20 (#9731) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [file-type](https://redirect.github.com/sindresorhus/file-type) | [`^19.6.0` -> `^20.0.0`](https://renovatebot.com/diffs/npm/file-type/19.6.0/20.0.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [file-type](https://redirect.github.com/sindresorhus/file-type) | [`^19.5.0` -> `^20.0.0`](https://renovatebot.com/diffs/npm/file-type/19.6.0/20.0.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>sindresorhus/file-type (file-type)</summary> ### [`v20.0.0`](https://redirect.github.com/sindresorhus/file-type/releases/tag/v20.0.0) [Compare Source](https://redirect.github.com/sindresorhus/file-type/compare/v19.6.0...v20.0.0) ##### Breaking - Drop MIME-type and extension enumeration in types ([#​693](https://redirect.github.com/sindresorhus/file-type/issues/693)) [`0ff11c6`](https://redirect.github.com/sindresorhus/file-type/commit/0ff11c6) - Remove `NodeFileTypeParser` in favor of using `FileTypeParser` on all platforms ([#​707](https://redirect.github.com/sindresorhus/file-type/issues/707)) [`ff8eed8`](https://redirect.github.com/sindresorhus/file-type/commit/ff8eed8) ##### Improvements - Give API access to `FileTypeParser#detectors` ([#​704](https://redirect.github.com/sindresorhus/file-type/issues/704)) [`7e72bbc`](https://redirect.github.com/sindresorhus/file-type/commit/7e72bbc) - Improve Nikon RAW NEF (Tiff) format detection ([#​670](https://redirect.github.com/sindresorhus/file-type/issues/670)) [`cf6fc1e`](https://redirect.github.com/sindresorhus/file-type/commit/cf6fc1e) - Add support for Java archive (`.jar`) ([#​719](https://redirect.github.com/sindresorhus/file-type/issues/719)) [`8651809`](https://redirect.github.com/sindresorhus/file-type/commit/8651809) - Add support for MSOffice macro-enabled docs and templates ([#​720](https://redirect.github.com/sindresorhus/file-type/issues/720)) [`7fe5667`](https://redirect.github.com/sindresorhus/file-type/commit/7fe5667) - Add support for OpenDocument graphics and templates ([#​718](https://redirect.github.com/sindresorhus/file-type/issues/718)) [`4db407d`](https://redirect.github.com/sindresorhus/file-type/commit/4db407d) - Add support for Microsoft Excel template with macros (.xltm) ([#​714](https://redirect.github.com/sindresorhus/file-type/issues/714)) [`1fe621a`](https://redirect.github.com/sindresorhus/file-type/commit/1fe621a) - Add support for Microsoft Word template (.dotx) ([#​713](https://redirect.github.com/sindresorhus/file-type/issues/713)) [`643ef78`](https://redirect.github.com/sindresorhus/file-type/commit/643ef78) - Add support for Microsoft Excel template (`.xltx`) ([#​712](https://redirect.github.com/sindresorhus/file-type/issues/712)) [`0dab3e0`](https://redirect.github.com/sindresorhus/file-type/commit/0dab3e0) - Add support for Microsoft PowerPoint template ( `.potx`) ([#​710](https://redirect.github.com/sindresorhus/file-type/issues/710)) [`f978619`](https://redirect.github.com/sindresorhus/file-type/commit/f978619) - Add support for ZIP decompression using `@tokenizer/inflate` ([#​695](https://redirect.github.com/sindresorhus/file-type/issues/695)) [`399b0f1`](https://redirect.github.com/sindresorhus/file-type/commit/399b0f1) - Add support for `.lz4` file format ([#​706](https://redirect.github.com/sindresorhus/file-type/issues/706)) [`74acf94`](https://redirect.github.com/sindresorhus/file-type/commit/74acf94) - Add support for format `.drc`, Google's Draco 3D Data Compression ([#​702](https://redirect.github.com/sindresorhus/file-type/issues/702)) [`e99257d`](https://redirect.github.com/sindresorhus/file-type/commit/e99257d) ##### Fixes - Fix code sequence "File Type Box" detection ([#​705](https://redirect.github.com/sindresorhus/file-type/issues/705)) [`7d4dd8d`](https://redirect.github.com/sindresorhus/file-type/commit/7d4dd8d) *** </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 these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
-
renovate (16 Jan 25)
chore: bump up electron version to v34 (#9694) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [electron](https://redirect.github.com/electron/electron) | [`^33.3.0` -> `^34.0.0`](https://renovatebot.com/diffs/npm/electron/33.3.1/34.0.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>electron/electron (electron)</summary> ### [`v34.0.0`](https://redirect.github.com/electron/electron/releases/tag/v34.0.0): electron v34.0.0 [Compare Source](https://redirect.github.com/electron/electron/compare/v33.3.1...v34.0.0) ### Release Notes for v34.0.0 #### Other Changes - Updated Chromium to 132.0.6834.83. [#​45164](https://redirect.github.com/electron/electron/pull/45164) #### Documentation - Documentation changes: [#​45189](https://redirect.github.com/electron/electron/pull/45189) </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 was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
-
forehalo (16 Jan 25)
feat(server): feature model (#9709) close CLOUD-101
-
renovate (16 Jan 25)
chore: bump up @sentry/esbuild-plugin version to v3 (#9720) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@sentry/esbuild-plugin](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/tree/main/packages/esbuild-plugin) ([source](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins)) | [`^2.22.7` -> `^3.0.0`](https://renovatebot.com/diffs/npm/@sentry%2fesbuild-plugin/2.23.0/3.0.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>getsentry/sentry-javascript-bundler-plugins (@​sentry/esbuild-plugin)</summary> ### [`v3.0.0`](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/blob/HEAD/CHANGELOG.md#300) [Compare Source](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/compare/2.23.0...3.0.0) ##### Breaking Changes - Injected code will now use `let`, which was added in ES6 (ES2015). This means that ES6 is the minimum JavaScript version that the Sentry bundler plugins support. - Deprecated options have been removed: - `deleteFilesAfterUpload` - Use `filesToDeleteAfterUpload` instead - `bundleSizeOptimizations.excludePerformanceMonitoring` - Use `bundleSizeOptimizations.excludeTracing` instead - `_experiments.moduleMetadata` - Use `moduleMetadata` instead - `cleanArtifacts` - Did not do anything ##### List of Changes - fix!: Wrap injected code in block-statement to contain scope ([#​646](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/646)) - chore!: Remove deprecated options ([#​654](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/654)) - feat(logger): Use console methods respective to log level ([#​652](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/652)) - fix(webpack): Ensure process exits when done ([#​653](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/653)) - fix: Use correct replacement matcher for `bundleSizeOptimizations.excludeTracing` ([#​644](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/644)) Work in this release contributed by [@​jdelStrother](https://redirect.github.com/jdelStrother). Thank you for your contribution! </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 was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
-
fundon (16 Jan 25)
perf(editor): fix autoUpdate being continuously added when updating selections (#9727) Since `updated` is triggered every time click or update the selection, `autoUpdate` will be continuously added. Case: select text and `Shift+ArrowLeft/ArrowRight`
-
akumatus (16 Jan 25)
fix(core): downward arrow is visible when message panel is not scrollable (#9670) Fix issue [AF-2056](https://linear.app/affine-design/issue/AF-2056). ### What changed? - Check both `showDownIndicator` and `filteredItems.length` when rendering `DownArrowIcon`. - Use `scrollIntoView` instead of `scrollToEnd` during AI result transmission. 
-
L-Sun (16 Jan 25)
fix(editor): reactive heading icon (#9729) Close [BS-2407](https://linear.app/affine-design/issue/BS-2407/[bug]-edgeless-里选中-title-后更改,hint-没有改变)
AFFiNE Website
Website
AFFiNE - All In One KnowledgeOS
The universal editor that lets you work, play, present or create just about anything.
Redirects
Does not redirect
Security Checks
1 security checks failed (65 passed)
- Top-Level Domain Highly Abused
Server Details
- IP Address 104.26.1.190
- Location San Francisco, California, United States of America, NA
- ISP CloudFlare Inc.
- ASN AS13335
Associated Countries
-
US
Saftey Score
Website marked as risky
70%
Blacklist Check
affine.pro was found on 0 blacklists
- ThreatLog
- OpenPhish
- PhishTank
- Phishing.Database
- PhishStats
- URLhaus
- RPiList Not Serious
- AntiSocial Blacklist
- PhishFeed
- NABP Not Recommended Sites
- Spam404
- CRDF
- Artists Against 419
- CERT Polska
- PetScams
- Suspicious Hosting IP
- Phishunt
- CoinBlockerLists
- MetaMask EthPhishing
- EtherScamDB
- EtherAddressLookup
- ViriBack C2 Tracker
- Bambenek Consulting
- Badbitcoin
- SecureReload Phishing List
- Fake Website Buster
- TweetFeed
- CryptoScamDB
- StopGunScams
- ThreatFox
- PhishFort
Website Preview
AFFiNE Socials
AFFiNE Reviews
More Digital Notes
-
S.Notes is a free, open-source, and completely encrypted private notes app. It has a simple UI, yet packs in a lot of features, thanks to the Extensions Store, allowing for: To-Do lists, Spreadsheets, Rich Text, Markdown, Math Editor, Code Editor and many more. You can choose between a number of themes (yay, dark mode!), and it features built-in secure file store, tags/ folders, fast search and more. Standard Notes is actively developed, and fully open-source.
-
A secure, collaborative notebook. Self-host it yourself, or use their hosted plan (free edition or $3/ month for premium).
-
An offline markdown-based note editor for desktop, with a simple, yet feature-rich UI. All notes are saved individually as .md files, making them easy to manage. No mobile app, built-in cloud-sync, encryption or web UI. But due to the structure of the files, it is easy to use your own cloud sync provider, and additional features are provided through extensions.
-
Cross-platform desktop and mobile note-taking and todo app. Easy organisation into notebooks and sections, revision history and a simple UI. Allows for easy import and export of notes to or from other services. Supports synchronisation with cloud services, implemented with E2EE.
-
Privacy-first, open-source knowledge base that works on top of local plain-text Markdown and Org-mode files. Supports lots of different note modes, including task management, PDF annotation, flashcards, whiteboards strong markdown support and more. Includes themes and extensions, backed by a strong community
-
A powerful knowledge base that works on top of local plain-text Markdown files. It has a strong community, and a lot of plugins and themes. Generally privacy-respecting, but no encryption out of the box, and some of the code is obfuscated or not fully open source
Not Open Source -
Private & encrypted rich-text documents. Cryptee has encryption and anonymity at its core, it also has a beautiful and minimalistic UI. You can use Cryptee from the browser, or download native apps. Comes with many additional features, such as support for photo albums and file storage. The disadvantage is that only the frontend is open source. Pricing is free for starter plan, $3/ month for 10GB, additional plans go up-to 2TB.
Not Open Source
About the Data: AFFiNE
API
You can access AFFiNE's data programmatically via our API.
Simply make a GET
request to:
https://api.awesome-privacy.xyz/productivity/digital-notes/affine
The REST API is free, no-auth and CORS-enabled. To learn more, view the Swagger Docs or read the API Usage Guide.
About the Data
Beyond the user-submitted YAML you see above, we also augment each listing with additional data dynamically fetched from several sources. To learn more about where the rest of data included in this page comes from, and how it is computed, see the About the Data section of our About page.
Share AFFiNE
Help your friends compare Digital Notes, and pick privacy-respecting software and services.
Share AFFiNE and Awesome Privacy with your network!