Commit 25013bf
PR: Migration common-v8 to biome and bun (#5)
* feat: Migrate project from pnpm/npm and ESLint/Prettier to Bun and Biome.
* chore: Migrate project from pnpm/Node.js to Bun, update CI/CD workflows, Dockerfiles, and remove ESLint plugin and Prettier scripts.
* feat: Enhance local-first synchronization, update SQLite drivers, and improve web app and examples.
* feat: enhance type safety and consistency across tasks, collections, and component props, and temporarily disable ES2025 iterator tests and `useSyncState` export.
* feat: Upgrade React to 19.1.0, simplify `Task` types, update `@types` and other dependencies, and switch docs script to Bun.
* refactor: Update TypeScript configurations, refine `Task` types, and standardize `ok(undefined)` returns.
* refactor: Configure TypeScript path aliases for improved module resolution and update target to ESNext.
* refactor: Simplify TypeScript module resolution, refine `MainTask` type, and update bundle size expectations.
* Remove redundant comment about retry behavior
* Update .ai/tasks/active/finalize-bun-migration.md
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: Miccy <code@miccy.dev>
* Update packages/svelte/svelte-types.d.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: Miccy <code@miccy.dev>
* Add shutdown-aware createRunner; rename relay API
Replace the old runMain pattern with a shutdown-aware createRunner that injects a shutdown promise into deps and installs global signal and error handlers (SIGINT, SIGTERM, SIGHUP, uncaughtException, unhandledRejection). Move Node.js runner wiring into packages/nodejs/src/Task.ts, resolve shutdown via process signals, and ensure listeners are cleaned up on runner dispose. Rename relay APIs: createNodeJsRelayBetterSqliteDeps -> createRelayDeps and createNodeJsRelay -> startRelay, update examples and the apps/relay entry to use startRelay and createRunner. Simplify task typing in packages/common (introduce AnyTask and use it in InferTask* helpers, add CreateRunner type, remove MainTask), and adjust the local-first Relay implementation to handle sqlite errors by logging and returning ok(stack). Update tests to reflect the new createRunner/shutdown behavior and to verify signal/error handling and listener cleanup. README updated to reflect the API rename.
* Update pnpm-lock.yaml
* Add browser Task runner with global error handling
Introduce a browser-specific Task runner and tests. Implements createRunner in packages/web/src/Task.ts that composes the common runner, creates a console child named "global", registers global "error" and "unhandledrejection" handlers (logging via createUnknownError), and removes those listeners when the runner is disposed. Adds vitest tests in packages/web/test/Task.test.ts to verify custom deps merging, mocked listener registration/removal, real-event logging for ErrorEvent and PromiseRejectionEvent, and that handlers are detached after disposal.
* Remove re-export of @evolu/web from react-web
* Update packages/common/src/Types.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Miccy <code@miccy.dev>
* Update packages/common/src/Task.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Miccy <code@miccy.dev>
* Update apps/web/src/components/Header.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Miccy <code@miccy.dev>
* Update packages/common/src/Task.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Miccy <code@miccy.dev>
* Update packages/common/src/Task.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Miccy <code@miccy.dev>
* Refactor abort handling in Task and update sizes
* fix: Address type compatibility issues, migrate build scripts to Bun, and enhance Biome configuration and linting rules.
* feat: Initialize Evolu Plan B fork, migrating project to Bun and updating metadata.
* docs: Clarify full Bun and Biome implementation status in the README.
* Remove Feature.id and use name as key
* fix: workfows specific bun version
* fix: usage specific Commit SHA for CI
* feat: Streamline Docker build for relay app with Bun and update Vite plugin dependencies.
* docs: Reorganize credits and license sections and add a new footer to README.
* ci: configure triggers for PRs and main branch only
* chore: enable biome for markdown and update vscode settings
* ci: disable pull_request and issue_comment triggers for socket workflow.
* ci: replace blocked setup-bun action with manual install script
* refactor: update Socket Security workflow to manual dispatch with optional PR input and ensure proper Node.js task resource disposal.
* fix(nodejs): fix syntax error causing ci failure
* chore: fix Biome linting errors and formatting to resolve CI issues
* fix(ci): set tsconfig target to es2022 to resolve await using syntax error
* fix(ci): polyfill WebSocket in nodejs tests to resolve runtime TypeError
* Remove Node.js WebSocket polyfill setup and update common package bundle size snapshot.
* style: Add Biome ignore comments to suppress linting warnings and adjust `process.env` access.
* feat: Add `format` script and update `verify` script to include formatting and remove `build:docs`.
* fix: Use bracket notation for `process.env` access to avoid Vite define plugin issues and add biome lint ignore.
* Initial plan
* Add WebSocket polyfill for Node.js tests
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* Replace Promise.withResolvers with compatibility helper
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* Add Promise.try polyfill for Node.js tests
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* Fix Promise.try polyfill error handling and type signature
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* Fix TypeScript error: change @ts-expect-error to @ts-ignore
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* Add polyfills for common package Node.js tests
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* Fix polyfill initialization order and add missing polyfills
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* Initial plan
* Stabilize common package tests on CI
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* refactor: Update polyfill assignments to use `as any` and refine `Promise.try` implementation.
* chore: Update dependencies and fix Biome linting errors, including React Hooks rules.
* chore: Update React to 19.2.4, motion to 12.30.0, turbo to 2.8.2, and other related dependencies.
* feat: Add manual trigger to CI workflow and standardize Bun setup across CI and release workflows.
* ci: Update GitHub Actions `checkout` to `v4` and `setup-bun` to `v2` across all workflows.
* chore: Add Dependabot for GitHub Actions and pin workflow action versions in CI, release, and web-build workflows.
* Enable React strict mode in Next.js config
* chore: Update `oven-sh/setup-bun` GitHub Action to a newer commit hash across all CI/CD workflows.
* Update browserslist and add @evolu/web dependency
* Update pnpm-lock.yaml
* Rename TaskDisposableStack to AsyncDisposableStack
* Fix lint-monorepo
* chore: update various dependencies including React Navigation, Framer Motion, and Node types.
* fix: ci.yml SHA
* Initial plan
* fix: Add build:docs to verify script to fix ENOENT test errors
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* fix: Remove build:docs and typedoc test from verify script
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* fix: Increase timeout for flaky Protocol test
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* docs: Add comment explaining timeout increase for E2E sync test
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* Refactor Console docs and expand examples
* Initial plan
* Address PR review comments: fix types, hooks, and Dockerfile security
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* Use default time dep in console formatter
* Limit published files to dist/src and src
Update packages/nodejs/package.json to change the "files" entry from "dist/**" to "dist/src/**". This restricts what gets packaged/published (avoiding unrelated files under dist), reducing package size and ensuring only the compiled source artifacts and src are included.
* Remove createTime usage in console formatter
Consolidate imports and stop passing a custom time provider to createConsoleEntryFormatter in apps/relay/src/index.ts. The createTime import and its usage were removed so the formatter uses its default time handling, and the import statement was simplified.
* Add React Native runner and ErrorUtils handling
* Bump several package versions in pnpm-lock
Update pnpm-lock.yaml to refresh multiple dependency versions and integrity hashes. Notable bumps: @algolia/autocomplete-core/plugin/shared 1.19.4 -> 1.19.5, framer-motion & motion 12.30.1 -> 12.31.0, enhanced-resolve 5.18.4 -> 5.19.0, and dotenv 16.4.7 -> 16.6.1. Snapshots/resolutions updated accordingly — this is an automated lockfile refresh to keep transitive deps in sync.
* feat: finalize merge before testing
* refactor: move task runner logic to common package and simplify Node.js implementation.
* fix: bun verify issues solved
* Initial plan
* Refactor TreeShaking test to avoid type-unsafe cast
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* Add comprehensive code review summary document
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* Initial plan
* Reorder package exports and add default entries
* Use workspace deps in examples
Adapted from upstream e57edbe to use workspace:* for @evolu/* packages.
Used explicit React versions (^19.2.3) instead of catalog:react19 since Bun doesn't support pnpm catalogs.
Skipped pnpm-lock.yaml as we use bun.lockb.
* Adjust tests to use mocked listeners and console
* Cherry-pick 3 new upstream commits from common-v8
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* Add bun.lock with updated dependencies
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* Fix React version consistency across monorepo to 19.2.4
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* Initial plan
* fix: Increase timeout for Protocol E2E sync tests
The "client and relay have all data" test was timing out with the default 5000ms timeout. This commit adds 15000ms timeouts to this test and other "many steps" tests in the E2E sync suite, following the pattern established in commit 0a8f3ea.
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* Initial plan
* fix: Eliminate race condition in Time.test.ts timing assertions
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* Initial plan
* fix: Change pool function return type from Task<any, any, any> to Task<unknown, unknown> for better type safety
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* Initial plan
* fix: Address PR #5 review comments - hook ordering, error handling, polyfills
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* Initial plan
* fix: Remove non-null assertions in web Task.test.ts to pass Biome lint
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* fix: Use node: protocol for fs import in relay app
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
* fix: Add biome-ignore for intentional hook call in Vue useOwner
Co-authored-by: miccy <9729864+miccy@users.noreply.github.com>
---------
Signed-off-by: Miccy <code@miccy.dev>
Co-authored-by: Daniel Steigerwald <daniel@steigerwald.cz>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>1 parent f2bb245 commit 25013bf
File tree
230 files changed
+3458
-7000
lines changed- .ai
- knowledge
- tasks
- active
- archive
- .changeset
- .github
- workflows
- .vscode
- apps
- relay
- src
- web
- src
- app
- (docs)
- (landing)
- blog
- rss.xml
- (playgrounds)/playgrounds
- full
- minimal
- multitenant
- api/docs-md/[...path]
- components
- icons
- frameworks
- lib
- mdx
- examples
- angular-vite-pwa
- src
- app
- react-electron
- components
- electron
- src
- react-expo
- app
- react-nextjs
- components
- react-vite-pwa
- src
- components
- svelte-vite-pwa/src
- vue-vite-pwa
- packages
- common
- src
- local-first
- test
- __fixtures__/tree-shaking
- local-first
- nodejs
- src
- local-first
- test
- react-native
- src
- components
- exports
- sqlite-drivers
- test
- react-web
- src
- react
- src
- svelte
- src/lib
- tsconfig
- vue
- src
- web
- src
- local-first
- test
- scripts
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
230 files changed
+3458
-7000
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| 22 | + | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| 28 | + | |
27 | 29 | | |
28 | 30 | | |
29 | 31 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
This file was deleted.
File renamed without changes.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
0 commit comments