Skip to content

Commit 55e73e1

Browse files
committed
chore: sync with upstream/common-v8 and polish monorepo
- Sync all commits from upstream/common-v8 - Resolve conflicts in Task.ts and Task.test.ts - Unify dependencies across monorepo (React 19.2.3, TS 5.9.3, Vitest 4.0.17) - Update root README.md to use Bun and Biome conventions - Migrate root package.json scripts to Bun - Fix Typedoc generation by disabling Prettier integration - Fix linting and types in apps/web and packages
1 parent d8cc334 commit 55e73e1

14 files changed

Lines changed: 87 additions & 143 deletions

File tree

README.md

Lines changed: 42 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,66 @@
11
# Evolu
22

3-
Evolu is a TypeScript library and local-first platform.
3+
Evolu is a local-first platform designed for privacy, ease of use, and no vendor lock-in. It provides a set of libraries to build apps that work offline, sync automatically, and encrypt data end-to-end.
44

5-
## Documentation
5+
[evolu.dev](https://www.evolu.dev)
66

7-
For detailed information and usage examples, please visit [evolu.dev](https://www.evolu.dev).
7+
## Features
88

9-
## Community
9+
- **Local-First**: Data lives on the device first.
10+
- **Privacy-Centric**: End-to-end encryption by default.
11+
- **Sync**: Automatic sync across devices using CRDTs.
12+
- **Typed**: Built with TypeScript for type safety.
13+
- **SQL**: SQLite support in the browser and on devices.
1014

11-
The Evolu community is on [GitHub Discussions](https://github.com/evoluhq/evolu/discussions), where you can ask questions and voice ideas.
15+
## Requirements
1216

13-
To chat with other community members, you can join the [Evolu Discord](https://discord.gg/2J8yyyyxtZ).
17+
- [Bun](https://bun.sh) (latest)
18+
- Node.js >= 22
1419

15-
[![X](https://img.shields.io/twitter/url/https/x.com/evoluhq.svg?style=social&label=Follow%20%40evoluhq)](https://x.com/evoluhq)
20+
## Development
1621

17-
## Developing
22+
Evolu is a monorepo managed by **Turbo** and **Bun**. We use **Biome** for linting and formatting.
1823

19-
Evolu monorepo uses [pnpm](https://pnpm.io).
24+
### Getting Started
2025

2126
Install dependencies:
2227

28+
```bash
29+
bun install
2330
```
24-
pnpm install
25-
```
26-
27-
Build scripts
28-
29-
- `pnpm build` - Build packages
30-
- `pnpm build:web` - Build docs and web
31-
32-
Web build notes
33-
34-
- Uses webpack (`next build --webpack`) because SharedWorker is required.
35-
- Uses `NODE_OPTIONS=--max-old-space-size-percentage=75` to avoid V8 heap OOM on large docs builds.
36-
- On macOS Tahoe, you may need to raise Launch Services limits too (shell `ulimit -n` is not enough):
37-
- `sudo launchctl limit maxfiles 262144 262144`
3831

39-
Start dev
32+
Start the development environment (web docs + examples):
4033

41-
> **Warning**: Run `pnpm build` before running dev. Packages must be built first.
42-
43-
- `pnpm dev` - Dev server for web
44-
- `pnpm ios` - Run iOS example (requires `pnpm dev` running)
45-
- `pnpm android` - Run Android example (requires `pnpm dev` running)
46-
47-
Examples
48-
49-
> **Note**: To work on examples with local packages, run `pnpm examples:toggle-deps` first.
50-
51-
- `pnpm examples:react-nextjs:dev` - Dev server for React Next.js example
52-
- `pnpm examples:react-vite-pwa:dev` - Dev server for React Vite PWA example
53-
- `pnpm examples:svelte-vite-pwa:dev` - Dev server for Svelte Vite PWA example
54-
- `pnpm examples:vue-vite-pwa:dev` - Dev server for Vue Vite PWA example
55-
- `pnpm examples:build` - Build all examples
34+
```bash
35+
bun dev
36+
```
5637

57-
Linting
38+
### Scripts
5839

59-
- `pnpm lint` - Lint code
60-
- `pnpm lint-monorepo` - Lint monorepo structure
40+
- **Linting**: `bun run lint` (Check code quality with Biome)
41+
- **Formatting**: `bun run format` (Apply formatting with Biome)
42+
- **Testing**: `bun run test` (Run tests with Vitest)
43+
- **Build**: `bun run build` (Build all packages)
44+
- **Clean**: `bun run clean` (Clean artifacts and node_modules)
6145

62-
Testing
46+
## Project Structure
6347

64-
- `pnpm test` - Run tests
48+
- `packages/`
49+
- `common`: Core logic, platform-agnostic.
50+
- `react`: React hooks and components.
51+
- `react-native`: React Native integration.
52+
- `web`: Web-specific implementations.
53+
- `server`: Sync and signaling server.
54+
- `apps/`
55+
- `web`: Documentation and website (Next.js).
56+
- `examples/`: Sample applications demonstrating usage.
6557

66-
Release
58+
## Community
6759

68-
- `pnpm changeset` - Describe changes for release log
60+
- [GitHub Discussions](https://github.com/evoluhq/evolu/discussions)
61+
- [Discord](https://discord.gg/2J8yyyyxtZ)
62+
- [X (Twitter)](https://x.com/evoluhq)
6963

70-
Verify
64+
## License
7165

72-
- `pnpm verify` - Run all checks (build, lint, test) before commit
66+
MIT

apps/web/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535
"motion": "^12.26.1",
3636
"next": "^16.1.1",
3737
"next-themes": "^0.4.6",
38-
"react": "^19.1.0",
39-
"react-dom": "^19.1.0",
38+
"react": "19.2.3",
39+
"react-dom": "19.2.3",
4040
"react-highlight-words": "^0.21.0",
4141
"remark": "^15.0.1",
4242
"remark-gfm": "^4.0.1",
@@ -55,8 +55,8 @@
5555
"@evolu/tsconfig": "workspace:*",
5656
"@types/mdx": "^2.0.13",
5757
"@types/node": "^24.10.7",
58-
"@types/react": "^19.2.8",
59-
"@types/react-dom": "^19.1.11",
58+
"@types/react": "~19.2.8",
59+
"@types/react-dom": "~19.2.3",
6060
"@types/react-highlight-words": "^0.20.1",
6161
"@types/rss": "^0.0.32",
6262
"cross-env": "^10.0.0",

bun.lock

Lines changed: 15 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/angular-vite-pwa/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
"@evolu/web": "latest"
1818
},
1919
"devDependencies": {
20-
"@evolu/biome-config": "workspace:*",
2120
"@analogjs/vite-plugin-angular": "^2.2.1",
2221
"@angular/build": "^21.0.5",
2322
"@angular/compiler-cli": "^21.0.8",
23+
"@evolu/biome-config": "workspace:*",
2424
"@tailwindcss/vite": "^4.1.18",
2525
"@vite-pwa/assets-generator": "^1.0.0",
2626
"tailwindcss": "^4.1.18",

examples/react-electron/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
"@vitejs/plugin-react": "^5.1.2",
2626
"electron": "39.2.7",
2727
"electron-builder": "^26.4.0",
28-
"typescript": "^5.9.2",
28+
"typescript": "^5.9.3",
2929
"vite": "^7.3.1",
3030
"vite-plugin-electron": "^0.29.0",
3131
"vite-plugin-electron-renderer": "^0.14.5"

examples/react-expo/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@
4848
"set.prototype.union": "^1.1.3"
4949
},
5050
"devDependencies": {
51-
"@evolu/biome-config": "workspace:*",
5251
"@babel/core": "^7.28.0",
5352
"@babel/plugin-transform-explicit-resource-management": "^7.28.0",
5453
"@babel/plugin-transform-modules-commonjs": "^7.27.1",
54+
"@evolu/biome-config": "workspace:*",
5555
"@types/react": "~19.2.8",
5656
"typescript": "^5.9.3"
5757
}

examples/react-vite-pwa/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,6 @@
3333
"vite": "^7.3.1",
3434
"vite-plugin-pwa": "^1.0.2",
3535
"workbox-core": "^7.3.0",
36-
"workbox-window": "^7.3.0"
36+
"workbox-window": "^7.4.0"
3737
}
3838
}

package.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,21 @@
44
"scripts": {
55
"dev": "turbo --filter @evolu/* dev --filter web --concurrency=11",
66
"build": "turbo --filter @evolu/* build",
7-
"build:web": "pnpm build:docs && turbo --filter web build",
8-
"build:docs": "typedoc && pnpm --filter=web run fix:docs",
7+
"build:web": "bun run build:docs && turbo --filter web build",
8+
"build:docs": "typedoc && bun run --filter=web fix:docs",
99
"test": "turbo run test",
1010
"test:coverage": "turbo run test:coverage",
1111
"test:watch": "turbo run test:watch",
1212
"start": "turbo start",
13-
"lint": "turbo lint && pnpm lint:root",
13+
"lint": "turbo lint && bun run lint:root",
1414
"lint:root": "biome check *.json *.yaml scripts",
15-
"format": "turbo format && pnpm format:root",
15+
"format": "turbo format && bun run format:root",
1616
"format:root": "biome check *.json *.yaml scripts --write",
17-
"lint-monorepo": "pnpm dlx sherif@latest",
18-
"verify": "pnpm build && pnpm test && pnpm lint && pnpm lint-monorepo && pnpm typedoc",
19-
"clean": "turbo clean && rimraf node_modules pnpm-lock.yaml .turbo .eslintcache out",
17+
"lint-monorepo": "bunx sherif@latest",
18+
"verify": "bun run build && bun run test && bun run lint && bun run lint-monorepo && bun run typedoc",
19+
"clean": "turbo clean && rimraf node_modules pnpm-lock.yaml bun.lock .turbo .eslintcache out",
2020
"version": "changeset version",
21-
"release": "pnpm run build && changeset publish",
21+
"release": "bun run build && changeset publish",
2222
"ios": "cd examples/react-expo && pnpm ios",
2323
"android": "cd examples/react-expo && pnpm android",
2424
"bench": "turbo bench",
@@ -39,7 +39,7 @@
3939
"typedoc": "^0.28.16",
4040
"typedoc-plugin-markdown": "^4.9.0",
4141
"typescript": "^5.9.3",
42-
"vitest": "^4.0.16"
42+
"vitest": "^4.0.17"
4343
},
4444
"engines": {
4545
"node": ">=24.0.0"

packages/common/src/Task.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -733,6 +733,9 @@ export interface FiberSnapshot {
733733

734734
/** Child snapshots in spawn (start) order. */
735735
readonly children: ReadonlyArray<FiberSnapshot>;
736+
737+
/** The abort mask depth. `0` means abortable, `>= 1` means unabortable. */
738+
readonly abortMask: AbortMask;
736739
}
737740

738741
/**
@@ -1174,7 +1177,7 @@ const createRunnerInternal =
11741177
abortMask,
11751178
};
11761179
}
1177-
return snapshot;
1180+
return snapshot!;
11781181
};
11791182
run.onEvent = undefined;
11801183

packages/react-native/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@
8383
"react-native": "^0.81.5",
8484
"react-native-nitro-modules": "^0.31.10",
8585
"react-native-sensitive-info": "6.0.0-rc.11",
86-
"react-native-svg": "^15.15.1",
86+
"react-native-svg": "15.15.1",
8787
"typescript": "^5.9.3",
8888
"vitest": "^4.0.17"
8989
},

0 commit comments

Comments
 (0)