@basictech/react 0.12.0-beta.0 → 0.12.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,585 @@
1
+ # @basictech/react
2
+
3
+ ## 0.12.0-beta.1
4
+
5
+ ### Minor Changes
6
+
7
+ - 7476794: Breaking 0.12 migration: remove compatibility aliases and clarify auth and write contracts.
8
+
9
+ Upgrade all public Basic packages used by an application together. See the
10
+ [0.12 migration guide](https://github.com/basicdb/basic-server/blob/dev/docs/MIGRATING_TO_0.12.md)
11
+ for replacements and migration examples. No persisted-profile migration, storage reset, or
12
+ wire-protocol change is required.
13
+
14
+ - `AuthStatus` drops `reauth_required`; `AuthSession` and client snapshots both report `expired`.
15
+ - Snapshot aliases `profiles`, `users`, `activeProfile`, `activeUser` are replaced by `accounts` and
16
+ `activeAccount`; `useAccounts()` returns `activeAccount`. `switchUser`/`addUser`/`removeUser`,
17
+ `ProfileRegistry.createAnon`, `BasicConflict.repo`, `BasicRejection.repo`, `useMounts().mounts`
18
+ and `useOutgoingShares().outgoingShares` are removed.
19
+ - `snapshot.authErrorCode` becomes `snapshot.authError: BasicError | null`; raw active diagnostics
20
+ remain there. Errors are cached by code and expired state. `AccountAuth.reason` is the normalized
21
+ `'AUTH_EXPIRED' | null`, and `readOnlyReason` is the closed `ReadOnlyReason` union.
22
+ - Client enqueue captures and rechecks write access around preflight; Replica separately guards its
23
+ serialized durable mutation. REST collections, shares, and files recheck after awaited preflight,
24
+ and transport checks again before sending. Blob uploads retain their boundary guard.
25
+ - `SyncSession`/`MountSession` use `shouldConnect` for sockets/receiving and push-only `canWrite`
26
+ for flush. `beginWrite` remains the local replica mutation guard; flush allocates no exceptions.
27
+ - Storage key names are centralized inside core but remain internal (not exported).
28
+ Core passes the token key to `createMessageChannel`; `createBrowserAuthChannelFactory(store)` no
29
+ longer parses channel names, and cross-tab auth is installed for custom token stores too.
30
+ - `Collection.watch(query, listener, onError?)` works in REST mode; `useQuery` is built on it.
31
+ - Mounted file listings accept `FileListQuery` and reject non-live `state`.
32
+ - `signOut()` disposes the profile through the same path as `removeAccount()`, so the cached repo
33
+ catalog no longer survives logout.
34
+ - `useStorageInfo`, `useMounts` and `useOutgoingShares` report `AUTHORIZATION_REQUIRED` or
35
+ `AUTH_EXPIRED` as `error` while no account is signed in. Bound hooks throw outside their own
36
+ Provider. `useBasic()` is memoised.
37
+ - `supportsAccessTokenAdoption` is no longer exported from React, restoring Next.js client export
38
+ parity. Direct `RestDb` construction now takes `queryStore` in place of `onMutation`, with
39
+ `beginWrite` still the final optional argument.
40
+ - The demo's local PDS rewrite is development-only, requires an exact URL-origin match, and is
41
+ ignored in production.
42
+
43
+ ### Patch Changes
44
+
45
+ - Updated dependencies [f229bc4]
46
+ - Updated dependencies [3a8962b]
47
+ - Updated dependencies [7476794]
48
+ - @basictech/core@0.12.0-beta.1
49
+
50
+ ## 0.11.0
51
+
52
+ ### Minor Changes
53
+
54
+ - a3e32f6: Recover OAuth and Sync sessions after browser suspension without reloading. Transient refresh failures now retry, cross-tab refresh rotation self-heals when access-token broadcasts are missed, and visible, focused, or newly online browser clients reconcile fresh credentials with owner and mounted Sync sessions.
55
+ - 46ceb4c: Overhaul auth system: extract AuthManager, add PKCE, cross-tab sync, proactive token refresh, enriched error handling, and fix DELETE Content-Type issue
56
+ - 46ceb4c: added debug bar
57
+ - 46ceb4c: Rebuild the SDK on the repo-era core (0.10): negotiated REST v1, OAuth PKCE with identity
58
+ discovery, repo CRUD and lifecycle, atomic NDJSON snapshots, durable partitioned state, and
59
+ Sync/3 multi-repo sessions. Keeps the 0.9 local-first features — multiple users (anonymous and
60
+ signed-in), offline replicas, sync + REST modes, and reactive query hooks. Sync/2 is removed
61
+ from the public surface.
62
+ - 812f9ad: Complete the 0.11 SDK rewrite with the framework-neutral Files v2, Shares v2, mount, auth,
63
+ typed data, persistence, and sync APIs; the schema-bound React layer; the dependency-light schema
64
+ definition entry point; and lockstep Next.js compile compatibility.
65
+ - 46ceb4c: update schema
66
+
67
+ ### Patch Changes
68
+
69
+ - 731303b: Require Node.js 24 LTS or newer for the public packages.
70
+ - ac72e74: Expose per-account auth summaries and public expired status, canWrite, and readOnlyReason.
71
+ Keep expired accounts and cached data visible while rejecting new mutations with AUTH_EXPIRED
72
+ and pausing sync sends. Preserve pending work for same-account reauthorization, prevent delayed
73
+ writes from crossing account/auth generations, and retain ordinary offline and anonymous editing.
74
+ Consumers of reauth_required in client snapshots or React hooks should migrate to expired.
75
+ Generic invalid_grant does not trigger destructive revocation cleanup.
76
+ - 46ceb4c: Fix PWA/mobile logout issues: harden auth for offline resilience, prevent spurious logouts on transient server errors, proactive token refresh on app resume, and fix potential deadlock in token refresh flow
77
+ - 30c39d1: Remember successful handle-based share recipients in a profile-local contact cache and expose DID-to-handle lookup through the core and React shares APIs.
78
+ - Updated dependencies [a3e32f6]
79
+ - Updated dependencies [731303b]
80
+ - Updated dependencies [ac72e74]
81
+ - Updated dependencies [30c39d1]
82
+ - Updated dependencies [30c39d1]
83
+ - Updated dependencies [cf87ad3]
84
+ - Updated dependencies [46ceb4c]
85
+ - Updated dependencies [30c39d1]
86
+ - Updated dependencies [6e1a072]
87
+ - Updated dependencies [812f9ad]
88
+ - @basictech/core@0.11.0
89
+
90
+ ## 0.11.0-beta.3
91
+
92
+ ### Patch Changes
93
+
94
+ - ac72e74: Expose per-account auth summaries and public expired status, canWrite, and readOnlyReason.
95
+ Keep expired accounts and cached data visible while rejecting new mutations with AUTH_EXPIRED
96
+ and pausing sync sends. Preserve pending work for same-account reauthorization, prevent delayed
97
+ writes from crossing account/auth generations, and retain ordinary offline and anonymous editing.
98
+ Consumers of reauth_required in client snapshots or React hooks should migrate to expired.
99
+ Generic invalid_grant does not trigger destructive revocation cleanup.
100
+ - Updated dependencies [ac72e74]
101
+ - @basictech/core@0.11.0-beta.3
102
+
103
+ ## 0.11.0-beta.2
104
+
105
+ ### Minor Changes
106
+
107
+ - a3e32f6: Recover OAuth and Sync sessions after browser suspension without reloading. Transient refresh failures now retry, cross-tab refresh rotation self-heals when access-token broadcasts are missed, and visible, focused, or newly online browser clients reconcile fresh credentials with owner and mounted Sync sessions.
108
+
109
+ ### Patch Changes
110
+
111
+ - 30c39d1: Remember successful handle-based share recipients in a profile-local contact cache and expose DID-to-handle lookup through the core and React shares APIs.
112
+ - Updated dependencies [a3e32f6]
113
+ - Updated dependencies [30c39d1]
114
+ - Updated dependencies [30c39d1]
115
+ - Updated dependencies [30c39d1]
116
+ - Updated dependencies [6e1a072]
117
+ - @basictech/core@0.11.0-beta.2
118
+
119
+ ## 0.11.0-beta.1
120
+
121
+ ### Minor Changes
122
+
123
+ - 46ceb4c: Overhaul auth system: extract AuthManager, add PKCE, cross-tab sync, proactive token refresh, enriched error handling, and fix DELETE Content-Type issue
124
+ - 46ceb4c: added debug bar
125
+ - 46ceb4c: Rebuild the SDK on the repo-era core (0.10): negotiated REST v1, OAuth PKCE with identity
126
+ discovery, repo CRUD and lifecycle, atomic NDJSON snapshots, durable partitioned state, and
127
+ Sync/3 multi-repo sessions. Keeps the 0.9 local-first features — multiple users (anonymous and
128
+ signed-in), offline replicas, sync + REST modes, and reactive query hooks. Sync/2 is removed
129
+ from the public surface.
130
+ - 812f9ad: Complete the 0.11 SDK rewrite with the framework-neutral Files v2, Shares v2, mount, auth,
131
+ typed data, persistence, and sync APIs; the schema-bound React layer; the dependency-light schema
132
+ definition entry point; and lockstep Next.js compile compatibility.
133
+ - 46ceb4c: update schema
134
+
135
+ ### Patch Changes
136
+
137
+ - 731303b: Require Node.js 24 LTS or newer for the public packages.
138
+ - 46ceb4c: Fix PWA/mobile logout issues: harden auth for offline resilience, prevent spurious logouts on transient server errors, proactive token refresh on app resume, and fix potential deadlock in token refresh flow
139
+ - Updated dependencies [731303b]
140
+ - Updated dependencies [cf87ad3]
141
+ - Updated dependencies [46ceb4c]
142
+ - Updated dependencies [812f9ad]
143
+ - @basictech/core@0.11.0-beta.1
144
+
145
+ ## 0.9.0-beta.1
146
+
147
+ ### Minor Changes
148
+
149
+ Local-first startup, anonymous mode, and multiple users.
150
+
151
+ - **Anonymous mode (default on):** the local database works without a
152
+ session — writes queue as ordinary ops in a local-only workspace (sync
153
+ status `local`) and merge into the account automatically on sign-in via
154
+ the normal bootstrap+flush path (deferred identity — no copy step). Set
155
+ `anonymous={false}` on the provider for classic sign-in-required behavior.
156
+ - **Offline cold start fixed:** the engine opens the local keyspace with no
157
+ token and no network (`openLocal()`), so reloading offline serves all data
158
+ from the replica; the connection acquires tokens with retry on its own.
159
+ `reauth_required` now _pauses_ the connection instead of stopping the
160
+ engine — local reads/writes keep working while the user re-authenticates.
161
+ - **Multiple users:** several local users (anonymous or signed-in) side by
162
+ side with per-tab switching. New `useUsers()` hook
163
+ (`users`, `activeUser`, `switchUser`, `addUser`, `removeUser`), profile
164
+ registry in localStorage, per-user auth storage namespacing and isolated
165
+ sync keyspaces (`basic-sync:{project}:{userId}`). Existing single-user
166
+ sessions are adopted as the first profile automatically.
167
+ - **Owner guard:** keyspaces are stamped with the account DID at bootstrap;
168
+ local data from one account can never merge into another (a mismatched
169
+ keyspace is wiped before bootstrap). Also fixes a latent leak where
170
+ unpushed ops could survive an account change.
171
+ - **User-aware `useQuery`:** the active user id is appended to query deps
172
+ automatically so live queries re-attach on user switches; in-flight
173
+ queries hitting a closing store during the switch return undefined and
174
+ re-run.
175
+ - `signOut()` now wipes the active user's data and falls through to the next
176
+ local user (or a fresh anonymous workspace); `useAuth()` exposes
177
+ `isAnonymous`; sync status gains `local`.
178
+
179
+ ## 0.9.0-beta.0
180
+
181
+ ### Major Changes (breaking)
182
+
183
+ Ground-up rewrite for the server's Sync/2 sync engine and Step 2 auth upgrade.
184
+ The legacy dexie-syncable `/ws` protocol was removed server-side (clean
185
+ break), so 0.8.x sync no longer works against production.
186
+
187
+ - **New sync engine** (`core/sync/`): implements the Sync/2 client contract
188
+ (SYNC_V2.md) — snapshot bootstrap, multiplexed WebSocket subscriptions,
189
+ client-minted idempotent ops (`put`/`patch`/`delete`), persisted pending
190
+ queue with optimistic rebase, ordered apply with echo confirmation,
191
+ poison-op handling for terminal rejections, and re-bootstrap recovery
192
+ (`SNAPSHOT_REQUIRED`/`RESET_REQUIRED`). Local persistence is plain Dexie
193
+ (dexie-syncable/dexie-observable removed).
194
+ - **New public API**: `db.table(name)` with `create/put/patch/delete/get/
195
+ getAll/find`; `useAuth`, `useDb`, `useSyncStatus`, `useShares`, `useShare`;
196
+ `useBasic` remains the umbrella hook. `useQuery` still provides live reads.
197
+ - **Shares v1**: list shares and mount shared data via `useShare(shareId)` —
198
+ separate local keyspace per mount, guest writes when permitted, revocation
199
+ handling.
200
+ - **Auth updates**: `signOut()` revokes server-side via `POST /auth/logout`;
201
+ sign-out (incl. cross-tab) tears down local data without page reloads;
202
+ token-endpoint 429s are treated as transient; `CONNECTION_REVOKED` from
203
+ sync triggers session reconciliation.
204
+ - **REST mode**: `mode="rest"` replaces `dbMode="remote"`, backed by the
205
+ REST v2 surface (`/account/:project_id/db/...`), including
206
+ snapshot/changes endpoints.
207
+ - Tests: vitest unit suite + integration suite against the Sync/2 reference
208
+ server (`basic-server/sync-playground`).
209
+
210
+ ## 0.8.0-beta.4
211
+
212
+ ### Patch Changes
213
+
214
+ - Auth status state machine and session reconciliation: add `AuthStatus` type (`bootstrapping`, `authenticated`, `recovering`, `reauth_required`, `signed_out`), replace `window.location.reload()` cross-tab handlers with in-place state updates, add `reconcileSession` for sync/visibility/online recovery, handle `tokenUpdateAck` in sync protocol, and expose `authStatus` + `authErrorCode` from `useBasic()`
215
+
216
+ ## 0.8.0-beta.3
217
+
218
+ ### Patch Changes
219
+
220
+ - Fix PWA/mobile logout issues: harden auth for offline resilience, prevent spurious logouts on transient server errors, proactive token refresh on app resume, and fix potential deadlock in token refresh flow
221
+
222
+ ## 0.8.0-beta.2
223
+
224
+ ### Minor Changes
225
+
226
+ - added debug bar
227
+
228
+ ## 0.8.0-beta.1
229
+
230
+ ### Minor Changes
231
+
232
+ - uth updates
233
+
234
+ ## 0.8.0-beta.0
235
+
236
+ ### Minor Changes
237
+
238
+ - Overhaul auth system: extract AuthManager, add PKCE, cross-tab sync, proactive token refresh, enriched error handling, and fix DELETE Content-Type issue
239
+
240
+ ## Unreleased
241
+
242
+ ### Patch Changes
243
+
244
+ - **DBStatus:** Add `ERROR_WILL_RETRY` to align with dexie-syncable status code 4 (error but will retry). Export `DBStatus` enum from the package. Document all `DBStatus` values in readme, including when `ERROR_WILL_RETRY` occurs (e.g. expired token). Enables UI to show "Reconnecting…" or future token refresh on this state.
245
+
246
+ ## 0.7.0
247
+
248
+ ### Minor Changes
249
+
250
+ - 6a506e9: api improvements, react refactor, nextjs update
251
+ - e45744e: localstorage update
252
+ - e45744e: storage adapater update
253
+ - update apis, add remote db + sync db
254
+
255
+ ### Patch Changes
256
+
257
+ - cdf7123: refresh token patch
258
+ - 7e68aa3: add oauth settings
259
+ - 841839f: fix: provider props
260
+ - 7e68aa3: update token endpoint
261
+ - 4f11b3e: config server url & token patch
262
+
263
+ ## 0.7.0-beta.7
264
+
265
+ ### Minor Changes
266
+
267
+ - api improvements, react refactor, nextjs update
268
+
269
+ ## 0.7.0-beta.6
270
+
271
+ ### Patch Changes
272
+
273
+ - refresh token patch
274
+
275
+ ## 0.7.0-beta.5
276
+
277
+ ### Patch Changes
278
+
279
+ - config server url & token patch
280
+
281
+ ## 0.7.0-beta.4
282
+
283
+ ### Patch Changes
284
+
285
+ - fix: provider props
286
+
287
+ ## 0.7.0-beta.3
288
+
289
+ ### Patch Changes
290
+
291
+ - add oauth settings
292
+
293
+ ## 0.7.0-beta.2
294
+
295
+ ### Patch Changes
296
+
297
+ - update token endpoint
298
+
299
+ ## 0.7.0-beta.1
300
+
301
+ ### Minor Changes
302
+
303
+ - storage adapater update
304
+
305
+ ## 0.7.0-beta.0
306
+
307
+ ### Minor Changes
308
+
309
+ - localstorage update
310
+
311
+ ## 0.6.0
312
+
313
+ ### Minor Changes
314
+
315
+ - d241ffa: suerver url patch
316
+
317
+ ### Patch Changes
318
+
319
+ - Updated dependencies
320
+ - @basictech/schema@0.6.0
321
+
322
+ ## 0.6.0-beta.0
323
+
324
+ ### Minor Changes
325
+
326
+ - suerver url patch
327
+
328
+ ## 0.5.0
329
+
330
+ ### Minor Changes
331
+
332
+ - 6765047: fix server url
333
+ - af26a15: include schema to sync
334
+ - 783ecad: reset db on signout
335
+ - 6dd6ad9: add react 19
336
+ - f9c25a3: fix update notif
337
+ - 7f42c2a: react - initdb and version check
338
+ - weee
339
+
340
+ ## 0.5.0-beta.5
341
+
342
+ ### Minor Changes
343
+
344
+ - fix update notif
345
+
346
+ ## 0.5.0-beta.4
347
+
348
+ ### Minor Changes
349
+
350
+ - react - initdb and version check
351
+
352
+ ## 0.5.0-beta.3
353
+
354
+ ### Minor Changes
355
+
356
+ - add react 19
357
+
358
+ ## 0.5.0-beta.2
359
+
360
+ ### Minor Changes
361
+
362
+ - fix server url
363
+
364
+ ## 0.5.0-beta.1
365
+
366
+ ### Minor Changes
367
+
368
+ - include schema to sync
369
+
370
+ ## 0.5.0-beta.0
371
+
372
+ ### Minor Changes
373
+
374
+ - reset db on signout
375
+
376
+ ## 0.4.0
377
+
378
+ ### Minor Changes
379
+
380
+ - a41eb20: schema validation to react client
381
+ - b572027: patch - occasional sync disconnect
382
+
383
+ ### Patch Changes
384
+
385
+ - Updated dependencies
386
+ - Updated dependencies [a41eb20]
387
+ - Updated dependencies [c76951e]
388
+ - @basictech/schema@0.5.0
389
+
390
+ ## 0.4.0-beta.1
391
+
392
+ ### Patch Changes
393
+
394
+ - Updated dependencies
395
+ - @basictech/schema@0.5.0-beta.1
396
+
397
+ ## 0.4.0-beta.0
398
+
399
+ ### Minor Changes
400
+
401
+ - a41eb20: schema validation to react client
402
+ - patch - occasional sync disconnect
403
+
404
+ ### Patch Changes
405
+
406
+ - Updated dependencies [a41eb20]
407
+ - @basictech/schema@0.5.0-beta.0
408
+
409
+ ## 0.3.0
410
+
411
+ ### Minor Changes
412
+
413
+ - schema validation in react client
414
+
415
+ ### Patch Changes
416
+
417
+ - Updated dependencies
418
+ - @basictech/schema@0.4.0
419
+
420
+ ## 0.2.2
421
+
422
+ ### Patch Changes
423
+
424
+ - Updated dependencies [f9ad8d1]
425
+ - @basictech/schema@0.3.0
426
+
427
+ ## 0.2.1
428
+
429
+ ### Patch Changes
430
+
431
+ - Updated dependencies
432
+ - @basictech/schema@0.2.0
433
+
434
+ ## 0.2.0
435
+
436
+ ### Minor Changes
437
+
438
+ - 5890f4c: changed isLoaded to isAuthReady and fixed dbStatus hooks for useBasic
439
+ - ba294c5: dependency updates
440
+ - cd827af: add schema validation
441
+ - 1a3fe80: schema validation bugfix
442
+ - 13594a9: added basic-sync
443
+ - ba294c5: dependency update
444
+ - f035281: remove sync lib
445
+ - 4841960: rebuild tsup
446
+ - 96e0156: update schema validation
447
+ - cda3d16: add schema validation
448
+ - 2c898ae: update useQuery hook
449
+
450
+ - no need to pass param as a function, can now enter query directly
451
+ - defaults to empty array when loading
452
+
453
+ - 90ccdd7: add debug option
454
+ - 4841960: test build
455
+ - f035281: remove sync library
456
+ - ef528e9: added schema package - test
457
+
458
+ ### Patch Changes
459
+
460
+ - 3c7b34e: version changes mostly
461
+ - c085672: reset versions
462
+ - Updated dependencies [96e0156]
463
+ - Updated dependencies [ef528e9]
464
+ - @basictech/schema@0.1.0
465
+
466
+ ## 0.2.0-beta.11
467
+
468
+ ### Minor Changes
469
+
470
+ - update schema validation
471
+
472
+ ### Patch Changes
473
+
474
+ - Updated dependencies
475
+ - @basictech/schema@0.1.0-beta.1
476
+
477
+ ## 0.2.0-beta.10
478
+
479
+ ### Minor Changes
480
+
481
+ - added schema package - test
482
+
483
+ ### Patch Changes
484
+
485
+ - Updated dependencies
486
+ - @basictech/schema@0.1.0-beta.0
487
+
488
+ ## 0.2.0-beta.9
489
+
490
+ ### Minor Changes
491
+
492
+ - add schema validation
493
+
494
+ ## 0.2.0-beta.8
495
+
496
+ ### Minor Changes
497
+
498
+ - changed isLoaded to isAuthReady and fixed dbStatus hooks for useBasic
499
+
500
+ ## 0.2.0-beta.7
501
+
502
+ ### Minor Changes
503
+
504
+ - update useQuery hook
505
+ - no need to pass param as a function, can now enter query directly
506
+ - defaults to empty array when loading
507
+
508
+ ## 0.2.0-beta.6
509
+
510
+ ### Minor Changes
511
+
512
+ - add debug option
513
+
514
+ ## 0.2.0-beta.5
515
+
516
+ ### Minor Changes
517
+
518
+ - schema validation bugfix
519
+
520
+ ## 0.2.0-beta.4
521
+
522
+ ### Minor Changes
523
+
524
+ - add schema validation
525
+
526
+ ## 0.2.0-beta.3
527
+
528
+ ### Minor Changes
529
+
530
+ - remove sync lib
531
+ - 4841960: test build
532
+ - remove sync library
533
+
534
+ ## 0.2.0-beta.2
535
+
536
+ ### Minor Changes
537
+
538
+ - rebuild tsup
539
+
540
+ ## 0.2.0-beta.1
541
+
542
+ ### Minor Changes
543
+
544
+ - dependency updates
545
+ - 13594a9: added basic-sync
546
+ - dependency update
547
+
548
+ ### Patch Changes
549
+
550
+ - 3c7b34e: version changes mostly
551
+ - Updated dependencies [3c7b34e]
552
+ - Updated dependencies
553
+ - @repo/sync@0.1.0-beta.0
554
+
555
+ ## 0.1.1-beta.0
556
+
557
+ ### Patch Changes
558
+
559
+ - c085672: reset versions
560
+
561
+ ## 1.1.0
562
+
563
+ ### Minor Changes
564
+
565
+ - testing
566
+
567
+ ## 1.1.0
568
+
569
+ ### Minor Changes
570
+
571
+ - 9da7748: hello :)
572
+ - fixes auth token on refresh
573
+
574
+ # 1.3.3
575
+
576
+ - fixed db.get()
577
+ - fixed auth endpoint
578
+
579
+ # 1.3.2
580
+
581
+ # added database apis (expirimental)
582
+
583
+ # 1.3.1
584
+
585
+ - addded auth