diff --git a/.changeset/pre.json b/.changeset/pre.json index 9142b3b44f..e71b6e332f 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -21,11 +21,31 @@ "@electric-examples/todo-app": "1.0.1", "@electric-examples/write-patterns": "0.0.1", "@electric-examples/yjs-provider": "0.0.1", - "@electric-sql/docs": "0.0.1" + "@electric-sql/docs": "0.0.1", + "@electric-examples/bash": "0.0.1", + "@electric-examples/nextjs": "0.0.1", + "@electric-examples/react": "0.0.1", + "@electric-examples/redis": "0.0.1", + "@electric-examples/remix": "0.0.1", + "@electric-examples/tanstack": "0.0.1" }, "changesets": [ "beige-hotels-sin", + "beige-mice-notice", + "beige-snails-brush", + "breezy-boats-tease", + "fresh-beers-allow", + "gorgeous-bottles-mate", + "green-drinks-mix", "healthy-comics-heal", - "polite-frogs-yell" + "lucky-boats-lie", + "lucky-cats-teach", + "mean-humans-clean", + "modern-poets-film", + "polite-frogs-yell", + "tender-seas-stare", + "wicked-papayas-tease", + "wild-bugs-raise", + "young-olives-lick" ] } diff --git a/packages/elixir-client/CHANGELOG.md b/packages/elixir-client/CHANGELOG.md index 337698e667..bdd7e5960f 100644 --- a/packages/elixir-client/CHANGELOG.md +++ b/packages/elixir-client/CHANGELOG.md @@ -1,5 +1,15 @@ # @core/elixir-client +## 0.2.6-beta.0 + +### Patch Changes + +- 1b8dce0: Fix race condition where response comes before listener has monitored itself. +- 71b8ab2: Add pool behaviour for the Elixir client to allow for per-client persistent connections. Add request timestamp and shape handle to replication stream messages. +- fc1796a: Fix stalled elixir client streams by ensuring that requests are always made, even if calling process dies +- 01c63ae: Fix race condition in elixir client when multiple simultaneous clients are streaming the same shape +- 9f0b96a: Add generic params to client config that are appended to every request, remove database_id top-level config as it can be done via the params. + ## 0.2.5 ### Patch Changes diff --git a/packages/elixir-client/package.json b/packages/elixir-client/package.json index 9294633356..fd7b4cda77 100644 --- a/packages/elixir-client/package.json +++ b/packages/elixir-client/package.json @@ -1,7 +1,7 @@ { "name": "@core/elixir-client", "private": true, - "version": "0.2.5", + "version": "0.2.6-beta.0", "scripts": { "publish:hex": "mix do deps.get, hex.publish --yes || true" } diff --git a/packages/experimental/CHANGELOG.md b/packages/experimental/CHANGELOG.md index 1f2b2df817..4a9546d09d 100644 --- a/packages/experimental/CHANGELOG.md +++ b/packages/experimental/CHANGELOG.md @@ -1,5 +1,15 @@ # @electric-sql/experimental +## 0.1.2-beta.1 + +### Patch Changes + +- Updated dependencies [ade15b9] +- Updated dependencies [1c28aee] +- Updated dependencies [ade15b9] +- Updated dependencies [dd5aeab] + - @electric-sql/client@1.0.0-beta.2 + ## 0.1.2-beta.0 ### Patch Changes diff --git a/packages/experimental/package.json b/packages/experimental/package.json index 6fb1d74f92..9fc416d6d7 100644 --- a/packages/experimental/package.json +++ b/packages/experimental/package.json @@ -1,7 +1,7 @@ { "name": "@electric-sql/experimental", "description": "Experimental TypeScript features for ElectricSQL.", - "version": "0.1.2-beta.0", + "version": "0.1.2-beta.1", "author": "ElectricSQL team and contributors.", "bugs": { "url": "https://github.com/electric-sql/electric/issues" diff --git a/packages/react-hooks/CHANGELOG.md b/packages/react-hooks/CHANGELOG.md index 12a05feaa2..b73c10d223 100644 --- a/packages/react-hooks/CHANGELOG.md +++ b/packages/react-hooks/CHANGELOG.md @@ -1,5 +1,16 @@ # @electric-sql/react +## 1.0.0-beta.2 + +### Patch Changes + +- ade15b9: Expose `stream` in the useShape result data. This allows React components to easily access the stream to match on. +- Updated dependencies [ade15b9] +- Updated dependencies [1c28aee] +- Updated dependencies [ade15b9] +- Updated dependencies [dd5aeab] + - @electric-sql/client@1.0.0-beta.2 + ## 1.0.0-beta.1 ### Patch Changes diff --git a/packages/react-hooks/package.json b/packages/react-hooks/package.json index 066326382c..d221fae93c 100644 --- a/packages/react-hooks/package.json +++ b/packages/react-hooks/package.json @@ -1,7 +1,7 @@ { "name": "@electric-sql/react", "description": "React hooks for ElectricSQL", - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "author": "ElectricSQL team and contributors.", "bugs": { "url": "https://github.com/electric-sql/electric/issues" diff --git a/packages/sync-service/CHANGELOG.md b/packages/sync-service/CHANGELOG.md index 55409f0a7c..d95c04b835 100644 --- a/packages/sync-service/CHANGELOG.md +++ b/packages/sync-service/CHANGELOG.md @@ -1,5 +1,14 @@ # @core/sync-service +## 1.0.0-beta.2 + +### Patch Changes + +- 8987142: Do not trap exits in `Electric.Shapes.Consumer` - not handled. +- 218b7d4: fix: truncates no longer cause a stop to an incoming replication stream +- 7caccbf: Return `202` for `waiting` and `starting` health status - accepts requests but will fail to service them. +- d7e7c72: Introduced `PublicationManager` process to create and clean up publication filters. + ## 1.0.0-beta.1 ### Patch Changes diff --git a/packages/sync-service/package.json b/packages/sync-service/package.json index 42bac7932a..d4ad48a121 100644 --- a/packages/sync-service/package.json +++ b/packages/sync-service/package.json @@ -1,7 +1,7 @@ { "name": "@core/sync-service", "private": true, - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "scripts": { "publish:hex": "mix do deps.get, hex.publish --yes || true" } diff --git a/packages/typescript-client/CHANGELOG.md b/packages/typescript-client/CHANGELOG.md index 4b0e5cc262..825bcd45c2 100644 --- a/packages/typescript-client/CHANGELOG.md +++ b/packages/typescript-client/CHANGELOG.md @@ -1,5 +1,38 @@ # @electric-sql/client +## 1.0.0-beta.2 + +### Patch Changes + +- ade15b9: Expose `shape.stream` as public readonly property. +- 1c28aee: Start streaming only after at least one subscriber is present. +- ade15b9: Use "get" instead of "has" for checking searchParams + + Not all implementations of JS have the has(name, value) syntax e.g. Expo. + +- dd5aeab: This PR adds support for function-based options in the TypeScript client's params and headers. Functions can be either synchronous or asynchronous and are resolved in parallel when needed. + + ```typescript + const stream = new ShapeStream({ + url: 'http://localhost:3000/v1/shape', + params: { + table: 'items', + userId: () => getCurrentUserId(), + filter: async () => await getUserPreferences(), + }, + headers: { + Authorization: async () => `Bearer ${await getAccessToken()}`, + }, + }) + ``` + + ## Common Use Cases + + - Authentication tokens that need to be refreshed + - User-specific parameters that may change + - Dynamic filtering based on current state + - Multi-tenant applications where context determines the request + ## 1.0.0-beta.1 ### Patch Changes diff --git a/packages/typescript-client/package.json b/packages/typescript-client/package.json index 4617727b3f..7229374750 100644 --- a/packages/typescript-client/package.json +++ b/packages/typescript-client/package.json @@ -1,7 +1,7 @@ { "name": "@electric-sql/client", "description": "Postgres everywhere - your data, in sync, wherever you need it.", - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "author": "ElectricSQL team and contributors.", "bugs": { "url": "https://github.com/electric-sql/electric/issues" diff --git a/website/CHANGELOG.md b/website/CHANGELOG.md new file mode 100644 index 0000000000..361071d395 --- /dev/null +++ b/website/CHANGELOG.md @@ -0,0 +1,28 @@ +# @electric-sql/docs + +## 0.0.2-beta.0 + +### Patch Changes + +- dd5aeab: This PR adds support for function-based options in the TypeScript client's params and headers. Functions can be either synchronous or asynchronous and are resolved in parallel when needed. + + ```typescript + const stream = new ShapeStream({ + url: "http://localhost:3000/v1/shape", + params: { + table: "items", + userId: () => getCurrentUserId(), + filter: async () => await getUserPreferences(), + }, + headers: { + Authorization: async () => `Bearer ${await getAccessToken()}`, + }, + }) + ``` + + ## Common Use Cases + + - Authentication tokens that need to be refreshed + - User-specific parameters that may change + - Dynamic filtering based on current state + - Multi-tenant applications where context determines the request diff --git a/website/package.json b/website/package.json index f37eaf9bf9..f8d6d6f256 100644 --- a/website/package.json +++ b/website/package.json @@ -1,7 +1,7 @@ { "name": "@electric-sql/docs", "private": true, - "version": "0.0.1", + "version": "0.0.2-beta.0", "scripts": { "api:generate": "redocly build-docs ./electric-api.yaml --output=./public/openapi.html", "api:watch": "nodemon -w ./ -x \"npm run api:generate\" -e \"*.yaml\"",