@brendanbank/atrium-host-bundle-utils 0.17.0 → 0.18.0

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/README.md CHANGED
@@ -97,8 +97,8 @@ or hosts that want axios-shaped retry).
97
97
 
98
98
  ## Versioning
99
99
 
100
- The package version tracks atrium's image version. Pin `^0.17` for
101
- "compatible with atrium 0.17.x"; bump together with the atrium image
100
+ The package version tracks atrium's image version. Pin `^0.18` for
101
+ "compatible with atrium 0.18.x"; bump together with the atrium image
102
102
  to pick up new registry slots and SDK helpers.
103
103
 
104
104
  ## See also
@@ -21,8 +21,8 @@
21
21
  */
22
22
  import { type ReactNode } from 'react';
23
23
  import { type QueryClient, type UseQueryResult } from '@tanstack/react-query';
24
- import type { UserContext } from '@brendanbank/atrium-host-types';
25
- export type { UserContext } from '@brendanbank/atrium-host-types';
24
+ import type { AtriumUserChangeDetail, UserContext } from '@brendanbank/atrium-host-types';
25
+ export type { AtriumUserChangeDetail, UserContext, } from '@brendanbank/atrium-host-types';
26
26
  export { __atrium_t__ } from '../i18n';
27
27
  interface AtriumContextValue {
28
28
  fetchUserContext: () => Promise<UserContext | null>;
@@ -198,4 +198,47 @@ export declare function useAtriumNavigate(): (href: string, opts?: {
198
198
  * `window.location` fresh. Production code never calls this — the
199
199
  * cache is updated by the event subscription. */
200
200
  export declare function __resetAtriumLocationCacheForTests(): void;
201
+ /** Subscribe to atrium's identity transitions from inside a host
202
+ * bundle's React tree. Returns the most recent `atrium:userchange`
203
+ * detail — `{previous, current, nonce}` — or a zeroed sentinel
204
+ * (`{previous: null, current: null, nonce: 0}`) before any event has
205
+ * fired. The hook does NOT report the initial signed-in state on
206
+ * mount; use `useUserContext()` for that.
207
+ *
208
+ * Bridges the `atrium:userchange` CustomEvent atrium dispatches on
209
+ * `window` through `useSyncExternalStore`, so multiple subscribers in
210
+ * the same tree share one event listener and the snapshot is
211
+ * referentially stable when nothing has changed.
212
+ *
213
+ * The canonical use is wiping a host's own QueryClient when the user
214
+ * swaps — without it, user A's host cache renders for user B until
215
+ * staleness forces a refetch:
216
+ *
217
+ * ```tsx
218
+ * function HostCacheGuard({ client }: { client: QueryClient }) {
219
+ * const { nonce } = useAtriumUser();
220
+ * useEffect(() => {
221
+ * // nonce > 0 means at least one transition has fired; on the
222
+ * // first paint we skip (the host already loaded against the
223
+ * // current user).
224
+ * if (nonce > 0) client.clear();
225
+ * }, [nonce, client]);
226
+ * return null;
227
+ * }
228
+ * ```
229
+ *
230
+ * Hosts that don't use React (or want to clear the cache from outside
231
+ * any component) can subscribe directly:
232
+ * `window.addEventListener('atrium:userchange', () => client.clear())`.
233
+ *
234
+ * Available on atrium 0.18+. On older atrium images the event is
235
+ * never dispatched, so the hook stays at the zeroed sentinel — host
236
+ * bundles that need to support pre-0.18 atrium can read
237
+ * `window.__ATRIUM_VERSION__` and fall back to the in-component
238
+ * watch-`useUserContext` workaround. */
239
+ export declare function useAtriumUser(): AtriumUserChangeDetail;
240
+ /** Test-only: drop the cached snapshot so the next `getSnapshot`
241
+ * returns the zeroed sentinel. Production code never calls this — the
242
+ * cache is updated by the event subscription. */
243
+ export declare function __resetAtriumUserCacheForTests(): void;
201
244
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAElE,YAAY,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,UAAU,kBAAkB;IAC1B,gBAAgB,EAAE,MAAM,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACrD;AAmBD,MAAM,WAAW,mBAAmB;IAClC;;;kDAG8C;IAC9C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;sBAGkB;IAClB,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACrD,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;qCAGqC;AACrC,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,gBAAgB,EAChB,QAAQ,GACT,EAAE,mBAAmB,2MAYrB;AAED;;iEAEiE;AACjE,eAAO,MAAM,YAAY,2BAA4B,CAAC;AAmBtD;;;;;;;;8BAQ8B;AAC9B,wBAAgB,KAAK,IAAI,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,CAQ1D;AAED;;iBAEiB;AACjB,wBAAgB,cAAc,IAAI,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,CAEnE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAMnD;AAED;sEACsE;AACtE,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG7C;AAED;;;qBAGqB;AACrB,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;uCAQmC;IACnC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAoEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6Ca;AACb,wBAAgB,iBAAiB,IAAI,cAAc,CAMlD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qEAyCqE;AACrE,wBAAgB,iBAAiB,IAAI,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KACzB,IAAI,CAeR;AAED;;kDAEkD;AAClD,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AACf,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAExC,YAAY,EACV,sBAAsB,EACtB,WAAW,GACZ,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,UAAU,kBAAkB;IAC1B,gBAAgB,EAAE,MAAM,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACrD;AAmBD,MAAM,WAAW,mBAAmB;IAClC;;;kDAG8C;IAC9C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;sBAGkB;IAClB,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACrD,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;qCAGqC;AACrC,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,gBAAgB,EAChB,QAAQ,GACT,EAAE,mBAAmB,2MAYrB;AAED;;iEAEiE;AACjE,eAAO,MAAM,YAAY,2BAA4B,CAAC;AAmBtD;;;;;;;;8BAQ8B;AAC9B,wBAAgB,KAAK,IAAI,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,CAQ1D;AAED;;iBAEiB;AACjB,wBAAgB,cAAc,IAAI,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,CAEnE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAMnD;AAED;sEACsE;AACtE,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAG7C;AAED;;;qBAGqB;AACrB,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;uCAQmC;IACnC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAoEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6Ca;AACb,wBAAgB,iBAAiB,IAAI,cAAc,CAMlD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qEAyCqE;AACrE,wBAAgB,iBAAiB,IAAI,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,KACzB,IAAI,CAeR;AAED;;kDAEkD;AAClD,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD;AAkDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yCAqCyC;AACzC,wBAAgB,aAAa,IAAI,sBAAsB,CAMtD;AAED;;kDAEkD;AAClD,wBAAgB,8BAA8B,IAAI,IAAI,CAErD"}
@@ -296,4 +296,89 @@ export function useAtriumNavigate() {
296
296
  export function __resetAtriumLocationCacheForTests() {
297
297
  cachedLocation = null;
298
298
  }
299
+ // ---------------------------------------------------------------------------
300
+ // Identity transitions — `atrium:userchange`
301
+ // ---------------------------------------------------------------------------
302
+ const ATRIUM_USERCHANGE_EVENT = 'atrium:userchange';
303
+ const NO_USERCHANGE = {
304
+ previous: null,
305
+ current: null,
306
+ nonce: 0,
307
+ };
308
+ // Module-level cache so `useSyncExternalStore.getSnapshot` returns a
309
+ // referentially-stable object across renders. Updated only when an
310
+ // `atrium:userchange` event lands; `null` until the first event.
311
+ let cachedUserChange = null;
312
+ function getUserChangeSnapshot() {
313
+ return cachedUserChange ?? NO_USERCHANGE;
314
+ }
315
+ function getServerUserChangeSnapshot() {
316
+ return NO_USERCHANGE;
317
+ }
318
+ function subscribeUserChange(onChange) {
319
+ if (typeof window === 'undefined')
320
+ return () => { };
321
+ const handler = (e) => {
322
+ const detail = e.detail;
323
+ if (detail &&
324
+ (detail.previous === null || typeof detail.previous === 'number') &&
325
+ (detail.current === null || typeof detail.current === 'number')) {
326
+ cachedUserChange = {
327
+ previous: detail.previous,
328
+ current: detail.current,
329
+ nonce: typeof detail.nonce === 'number' ? detail.nonce : 0,
330
+ };
331
+ onChange();
332
+ }
333
+ };
334
+ window.addEventListener(ATRIUM_USERCHANGE_EVENT, handler);
335
+ return () => window.removeEventListener(ATRIUM_USERCHANGE_EVENT, handler);
336
+ }
337
+ /** Subscribe to atrium's identity transitions from inside a host
338
+ * bundle's React tree. Returns the most recent `atrium:userchange`
339
+ * detail — `{previous, current, nonce}` — or a zeroed sentinel
340
+ * (`{previous: null, current: null, nonce: 0}`) before any event has
341
+ * fired. The hook does NOT report the initial signed-in state on
342
+ * mount; use `useUserContext()` for that.
343
+ *
344
+ * Bridges the `atrium:userchange` CustomEvent atrium dispatches on
345
+ * `window` through `useSyncExternalStore`, so multiple subscribers in
346
+ * the same tree share one event listener and the snapshot is
347
+ * referentially stable when nothing has changed.
348
+ *
349
+ * The canonical use is wiping a host's own QueryClient when the user
350
+ * swaps — without it, user A's host cache renders for user B until
351
+ * staleness forces a refetch:
352
+ *
353
+ * ```tsx
354
+ * function HostCacheGuard({ client }: { client: QueryClient }) {
355
+ * const { nonce } = useAtriumUser();
356
+ * useEffect(() => {
357
+ * // nonce > 0 means at least one transition has fired; on the
358
+ * // first paint we skip (the host already loaded against the
359
+ * // current user).
360
+ * if (nonce > 0) client.clear();
361
+ * }, [nonce, client]);
362
+ * return null;
363
+ * }
364
+ * ```
365
+ *
366
+ * Hosts that don't use React (or want to clear the cache from outside
367
+ * any component) can subscribe directly:
368
+ * `window.addEventListener('atrium:userchange', () => client.clear())`.
369
+ *
370
+ * Available on atrium 0.18+. On older atrium images the event is
371
+ * never dispatched, so the hook stays at the zeroed sentinel — host
372
+ * bundles that need to support pre-0.18 atrium can read
373
+ * `window.__ATRIUM_VERSION__` and fall back to the in-component
374
+ * watch-`useUserContext` workaround. */
375
+ export function useAtriumUser() {
376
+ return useSyncExternalStore(subscribeUserChange, getUserChangeSnapshot, getServerUserChangeSnapshot);
377
+ }
378
+ /** Test-only: drop the cached snapshot so the next `getSnapshot`
379
+ * returns the zeroed sentinel. Production code never calls this — the
380
+ * cache is updated by the event subscription. */
381
+ export function __resetAtriumUserCacheForTests() {
382
+ cachedUserChange = null;
383
+ }
299
384
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brendanbank/atrium-host-bundle-utils",
3
- "version": "0.17.0",
3
+ "version": "0.18.0",
4
4
  "description": "Runtime helpers, Vite preset, and React hooks for atrium host bundles. Wraps the dual-tree mount pattern, the host-bundle Vite library config, and the /users/me/context hook so a host's main.tsx is ~10 lines of registration calls.",
5
5
  "license": "BSD-2-Clause",
6
6
  "type": "module",
@@ -25,7 +25,7 @@
25
25
  }
26
26
  },
27
27
  "dependencies": {
28
- "@brendanbank/atrium-host-types": "0.17.0"
28
+ "@brendanbank/atrium-host-types": "0.18.0"
29
29
  },
30
30
  "peerDependencies": {
31
31
  "@tanstack/react-query": "^5.0.0",