@molecule/app-auth 2.0.0 → 3.0.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/README.md CHANGED
@@ -3,7 +3,7 @@ AUTO-GENERATED — DO NOT EDIT THIS FILE.
3
3
  Generated by `mlcl sync-docs` from the package's src/index.ts JSDoc + mlcl/registry.json.
4
4
  Edits here are overwritten on the next commit (molecule's pre-commit hook regenerates).
5
5
  To change this document, edit the module-level JSDoc in src/index.ts.
6
- Generated: 2026-10-24T05:05:12.460Z
6
+ Generated: 2026-10-26T04:14:38.335Z
7
7
  -->
8
8
 
9
9
  # @molecule/app-auth
@@ -44,8 +44,8 @@ The first read of the client (`getState()`, `subscribe()`/`onAuthChange()`, a
44
44
  and an explicit `initialize()` returns the same promise, so a second call asks the
45
45
  server nothing. Keep the template's explicit call (it makes the first render
46
46
  deterministic); an entry file that drops it still restores instead of reporting
47
- `'loading'` forever (xr-molecule-flash-m192: a `main.tsx` rewrite dropped the line
48
- and 18 tests timed out on pages that never left their loading branch).
47
+ `'loading'` forever (a `main.tsx` rewrite can drop the line, and every page
48
+ then stays on its loading branch).
49
49
 
50
50
  **Never fetch viewer-dependent data before the restore settles.** A
51
51
  component effect that runs on mount fires while `initialize()` is still
@@ -71,12 +71,12 @@ mirrors the token into the bonded client.
71
71
  `initialize()` sets that state synchronously, before any request, and every
72
72
  verification settles behind that render. Never hold the first paint on
73
73
  `validateSession()` or a `/me` request of your own — a protected page then pays
74
- an API round trip on every navigation (xr-molecule-flash-m177: ~30 full page
75
- loads in one pagination spec; its four tests sat at 15.0–15.9 s of a 15 s
76
- budget and the grader timed two out). Route guards read this same `status`:
77
- wait only while it is `'loading'` — that status means "no decision yet", so an
78
- auth request in flight (`state.loading`) keeps the decided status and does not
79
- unmount a Login/Register page mid-request (xr-molecule-flash-m380).
74
+ an API round trip on every navigation (~30 full page loads in one pagination
75
+ spec put four tests at 15.0–15.9 s of a 15 s budget, and two timed out). Route
76
+ guards read this same `status`: wait only while it is `'loading'` — that
77
+ status means "no decision yet", so an auth request in flight
78
+ (`state.loading`) keeps the decided status and does not unmount a
79
+ Login/Register page mid-request.
80
80
  `validateSession()` is the background re-check that produces the last two: call
81
81
  it after the first render — a 401 or 403 clears the token (`'unauthenticated'`),
82
82
  while a network failure, a 5xx, or a 404 from a wrong `currentUserEndpoint`
@@ -121,18 +121,18 @@ redirect or the app's own sign-in endpoint has already issued the token and retu
121
121
  user, `setSession({ accessToken, user })` stores both and flips the client to
122
122
  `authenticated` in one update, so every hook reading the shared client is signed in at once
123
123
  (a form's own sign-in code wrote the token and the user with `setAccessToken`/`setUser`,
124
- which change their field only — the UI stayed signed out and nine browser assertions timed
125
- out, xr-molecule-flash-m178). `setAccessToken()` and `setUser()` are field setters, not a
124
+ which change their field only — the UI stays signed out and the browser assertions that
125
+ expect it time out). `setAccessToken()` and `setUser()` are field setters, not a
126
126
  sign-in: neither sets `authenticated`.
127
127
 
128
128
  **A custom user profile is typed once and used everywhere: `AuthClientConfig<MyUser>`,
129
129
  `createJWTAuthClient<MyUser>` and `useAuth<MyUser>()`.** The config's generic makes
130
130
  `mapAuthResponse` return `AuthResult<MyUser>`, so a mapper that omits a required custom
131
131
  field fails at the factory call instead of shipping a signed-in page whose navbar reads
132
- `undefined` (xr-molecule-flash-m255: the mapper kept `id`/`name`/`avatar` but dropped
133
- `username`, and the signed-in controls never rendered although login succeeded). Keep the
134
- wire user's fields and ADD the base identity fields; do not rebuild the profile field by
135
- field, and never hide a mismatch with `as unknown as MyUser`:
132
+ `undefined` — a mapper that keeps `id`/`name`/`avatar` but drops `username` leaves the
133
+ signed-in controls unrendered although login succeeded. The
134
+ wire user carries the base fields too, `id` included — spread it, do not rebuild it
135
+ field by field, and never hide a mismatch with `as unknown as MyUser`:
136
136
 
137
137
  ```typescript
138
138
  import type { AuthClientConfig, UserProfile } from '@molecule/app-auth'
@@ -145,21 +145,12 @@ interface MyUser extends UserProfile {
145
145
 
146
146
  const config: AuthClientConfig<MyUser> = {
147
147
  mapAuthResponse: (data) => {
148
- const { user: wire } = data as { user: { token: string } & Omit<MyUser, 'id'> }
148
+ // The wire is the app's profile plus the bearer; `id` is the server's.
149
+ const { user: wire } = data as { user: { token: string } & MyUser }
149
150
  // The bearer stays OUT of the profile: the client caches `user` in Web
150
151
  // Storage, where a token copy is readable by any script on the origin.
151
152
  const { token, ...profile } = wire
152
- return {
153
- accessToken: token,
154
- user: {
155
- // Every wire field the pages read (`username`, `image`, …) survives…
156
- ...profile,
157
- // …plus the base fields the client derives its identity from.
158
- id: profile.username,
159
- name: profile.name ?? profile.username,
160
- avatar: profile.image,
161
- },
162
- }
153
+ return { accessToken: token, user: profile }
163
154
  },
164
155
  }
165
156
 
@@ -167,8 +158,13 @@ const client = createJWTAuthClient<MyUser>(config)
167
158
  // React: `useAuth<MyUser>()` reads the same profile.
168
159
  ```
169
160
 
161
+ That `id` is the API's account identifier. Do not derive one from a display field
162
+ (`id: wire.username`) to borrow `UserProfile` for an API that has no id: the field
163
+ changes, the fabricated id changes with it, and the value then reaches storage,
164
+ `getUser()` and every page as if the server had said it.
165
+
170
166
  A profile does not have to extend `UserProfile` and does not need an `id`: the client
171
- stores and returns the object it is given and reads no field of it. Name the API's own
167
+ stores and patches the object it is given and reads no field of it. Name the API's own
172
168
  shape, pass it to the factory and the config, and have the mapper return it complete —
173
169
  every configuration adapter is typed by the same `T` (`mapAuthResponse`, the
174
170
  `profileEndpoint`/`profileUpdateMethod`/`profileRequestBody` write transport,
@@ -205,11 +201,12 @@ The profile is named at the factory, never inferred from the mapper: an untyped
205
201
  `id: string` is the default configuration's contract. An array, a function or a
206
202
  `Date` is not a profile the client can persist — see `AuthProfileShape`.
207
203
 
208
- A username-derived `id` can change during a profile save. It is not an immutable
209
- session identifier: `getSessionRevision()` tracks session ownership independently
210
- of profile fields, remains unchanged for profile updates and same-session
211
- refreshes, and changes when a session is replaced or ended. Compare revisions
212
- only within one client. React's `useProfileForm` uses this capability by default.
204
+ A profile field can change during a profile save — a handle, or a username an app
205
+ once derived an `id` from. It is not an immutable session identifier:
206
+ `getSessionRevision()` tracks session ownership independently of profile fields,
207
+ remains unchanged for profile updates and same-session refreshes, and changes when
208
+ a session is replaced or ended. Compare revisions only within one client. React's
209
+ `useProfileForm` uses this capability by default.
213
210
 
214
211
  **A profile-update transport that is not `PATCH` with bare JSON is a CONFIG field, not a
215
212
  hand-written client.** `updateProfile()` sends to `profileEndpoint` with `PATCH` and the
@@ -244,7 +241,11 @@ the client to change a method or an envelope also replaces the lifecycle that ke
244
241
  coherent, and hand-written adapters have had to repair those callbacks repeatedly.
245
242
  A pending profile response is published only to the session that sent it:
246
243
  signing out or explicitly adopting/signing in another session prevents the old
247
- response from replacing the active user's stored profile.
244
+ response from changing the active user's stored profile. The answer is applied onto the
245
+ stored profile field by field: a field it carries replaces the stored value (`null` clears
246
+ it) and one it leaves out — or that `mapAuthResponse` leaves `undefined` — is kept, so a
247
+ field the API clears by leaving it out must reach the client as `null`, answered by the API
248
+ or mapped by `mapAuthResponse`.
248
249
 
249
250
  **A background verification that returns an unchanged user changes nothing.** When
250
251
  `validateSession()` (or a reload's restore) answers with the same profile data the client
@@ -298,16 +299,26 @@ fields with the factory's second generic, and `requestBody` receives exactly wha
298
299
  the form passed — `{ user: { username, email, password } }` goes out as-is.
299
300
 
300
301
  ```typescript
301
- import type { UserProfile } from '@molecule/app-auth'
302
302
  import { createJWTAuthClient } from '@molecule/app-auth'
303
303
 
304
- const realWorldAuth = createJWTAuthClient<UserProfile, { username: string }>({
304
+ // RealWorld's user has no `id`. Name the shape the wire actually sends; the
305
+ // client reads no field of it, so nothing has to be invented for a base profile.
306
+ interface RealWorldUser {
307
+ username: string
308
+ email: string
309
+ bio: string
310
+ image: string
311
+ }
312
+
313
+ const realWorldAuth = createJWTAuthClient<RealWorldUser, { username: string }>({
305
314
  baseURL: '/api',
306
315
  authScheme: 'Token',
307
316
  requestBody: (_kind, payload) => ({ user: payload }),
308
317
  mapAuthResponse: (data) => {
309
- const { user } = data as { user: { token: string; username: string; email: string } }
310
- return { accessToken: user.token, user: { id: user.username, email: user.email } }
318
+ const { user: wire } = data as { user: { token: string } & RealWorldUser }
319
+ // Keep every wire field; the bearer stays out of the cached profile.
320
+ const { token, ...profile } = wire
321
+ return { accessToken: token, user: profile }
311
322
  },
312
323
  })
313
324
 
@@ -717,9 +728,12 @@ interface AuthClient<
717
728
 
718
729
  /**
719
730
  * Updates the current user's profile.
720
- * Returns the saved response. If the session is explicitly replaced or ended
721
- * while the request is pending, that response does not replace the current
722
- * session's user or persisted cache.
731
+ * Returns the saved profile: the answer applied onto the signed-in user field
732
+ * by field, with or without an `id` — a field it carries replaces the value
733
+ * (`null` clears it), one it omits or leaves `undefined` is kept, so a field
734
+ * cleared by omission must arrive as `null`. A non-object answer is returned
735
+ * as it came. An answer for a replaced or ended session leaves the current one
736
+ * untouched.
723
737
  */
724
738
  updateProfile(data: Partial<T>): Promise<T>
725
739
 
@@ -783,9 +797,6 @@ interface AuthClient<
783
797
  * called, and after it has finished. A restore that failed resolves too (it settled the
784
798
  * question), so an HTTP client can await this before every request without risking one
785
799
  * held forever. That is what makes the fetch-before-restore race impossible: a page that
786
- * fetches viewer-dependent data on mount waits here instead of going out anonymously
787
- * (see `setAuthGate` in `@molecule/app-http`).
788
- *
789
800
  // … truncated — the full declaration is in node_modules/@molecule/app-auth/dist/types.d.ts
790
801
  ```
791
802
 
@@ -945,7 +956,7 @@ interface AuthClientConfigOptions<T extends object = UserProfile> {
945
956
  * token-refresh answer, and `updateProfile()`. Those answers carry the raw wire
946
957
  * user (a current-user route typically answers a bare `{ user }`), so applying
947
958
  * the same mapping is what keeps the adapted profile after a reload instead of
948
- * replacing it with the unadapted one (xr-molecule-flash-m184). A mapper that
959
+ * replacing it with the unadapted one. A mapper that
949
960
  * cannot read a given answer (it throws, or returns no `user`) leaves that
950
961
  * answer's user as it came.
951
962
  *
@@ -1255,14 +1266,16 @@ Type it with the app's user — `AuthClientConfig<MyUser>` — the same type
1255
1266
  `createJWTAuthClient<MyUser>` returns and `useAuth<MyUser>()` reads. That
1256
1267
  makes {@link AuthClientConfigOptions.mapAuthResponse} return
1257
1268
  `AuthResult<MyUser>`, so a mapper that omits a required custom field is a type
1258
- error instead of a signed-in page reading `undefined`
1259
- (xr-molecule-flash-m255). Keep every wire field the pages read (spread the
1260
- wire user and add `id`/`name`/`avatar`); mapping a field to a different name
1261
- does not preserve the original, and a `as unknown as MyUser` assertion hides
1262
- the loss. See the module docs for the wire-preserving adapter.
1269
+ error instead of a signed-in page reading `undefined`. Keep every wire field the pages
1270
+ read by spreading the
1271
+ wire user — the base fields (`id`, `name`, `avatar`) come from the server like
1272
+ any other, never re-derived from a mutable display field such as a username;
1273
+ mapping a field to a different name does not preserve the original, and an
1274
+ `as unknown as MyUser` assertion hides the loss. See the module docs for the
1275
+ wire-preserving adapter.
1263
1276
 
1264
1277
  `T` is the app's OWN profile shape and need not extend {@link UserProfile}:
1265
- the client stores and returns the object it is given and reads no field of
1278
+ the client stores and patches the object it is given and reads no field of
1266
1279
  it, so an API whose user has no `id` — `{ username, email, bio, image }` —
1267
1280
  is typed by its own `interface` directly, with no fabricated `id`. The
1268
1281
  default, {@link UserProfile}, still requires `id: string`. A primitive,
@@ -1271,8 +1284,6 @@ rejected; see {@link AuthProfileShape} for the persistence contract behind
1271
1284
  that list.
1272
1285
 
1273
1286
  The type argument is NEVER inferred from the config: not from
1274
- `mapAuthResponse`, `profileEndpoint`, `profileRequestBody` or
1275
- `shouldRestoreUser`, and not from a config variable the caller annotated as
1276
1287
 
1277
1288
  _(description truncated — read the full text in `node_modules/@molecule/app-auth/dist/types.d.ts`.)_
1278
1289
 
@@ -1291,8 +1302,8 @@ The auth client's `StorageAdapter` over the browser's Web Storage.
1291
1302
  token AND the user in the store, `initialize()` restores the authenticated state synchronously
1292
1303
  (`whenRestored()` is already resolved on the first render); render from it, and validate the
1293
1304
  token as a background request — never in front of the first render. A page that waits on its
1294
- own `/me` call pays a round trip on EVERY navigation (xr-molecule-flash-m122: a 1–5 s restore
1295
- window, eight `waitForURL` timeouts).
1305
+ own `/me` call pays a round trip on EVERY navigation: a 1–5 s restore window is enough to
1306
+ time out a navigation that expects the signed-in UI.
1296
1307
 
1297
1308
  In a browser this IS the auth client's default `AuthClientConfig.storage`, so a scaffolded
1298
1309
  app keeps its session across a page reload with no extra wiring. Outside a browser (SSR, a Node
@@ -1351,7 +1362,10 @@ forwards a profile type copies `AuthProfileConstraint` (see
1351
1362
  {@link AuthClientConfig}'s migration note).
1352
1363
 
1353
1364
  ```typescript
1354
- function createJWTAuthClient(config?: NoInfer<AuthClientConfigOptions<T>>): AuthClient<T, TRegister>
1365
+ function createJWTAuthClient<
1366
+ T extends AuthProfileConstraint<T> = UserProfile,
1367
+ TRegister extends RegisterExtraShape<TRegister> = Record<never, never>,
1368
+ >(config?: NoInfer<AuthClientConfigOptions<T>>): AuthClient<T, TRegister>
1355
1369
  ```
1356
1370
 
1357
1371
  - `config` — Auth client configuration including endpoints, storage, and refresh settings.
@@ -1364,7 +1378,10 @@ Registers an auth client as the active singleton. Called by bond
1364
1378
  packages during application startup.
1365
1379
 
1366
1380
  ```typescript
1367
- function setClient(client: AuthClient<T, TRegister>): void
1381
+ function setClient<
1382
+ T = UserProfile,
1383
+ TRegister extends RegisterExtraShape<TRegister> = Record<never, never>,
1384
+ >(client: AuthClient<T, TRegister>): void
1368
1385
  ```
1369
1386
 
1370
1387
  - `client` — The auth client implementation to bond.
@@ -1374,7 +1391,10 @@ function setClient(client: AuthClient<T, TRegister>): void
1374
1391
  Retrieves the bonded auth client, throwing if none is configured.
1375
1392
 
1376
1393
  ```typescript
1377
- function getClient(): AuthClient<T, TRegister>
1394
+ function getClient<
1395
+ T extends AuthProfileConstraint<T> = UserProfile,
1396
+ TRegister extends RegisterExtraShape<TRegister> = Record<never, never>,
1397
+ >(): AuthClient<T, TRegister>
1378
1398
  ```
1379
1399
 
1380
1400
  **Returns:** The bonded auth client.
@@ -1396,7 +1416,7 @@ storage or a custom `StorageAdapter`.
1396
1416
 
1397
1417
  ```typescript
1398
1418
  function createTokenStorage(
1399
- storage?: StorageAdapter | 'memory',
1419
+ storage?: 'memory' | StorageAdapter,
1400
1420
  prefix?: string,
1401
1421
  tokenKey?: string,
1402
1422
  ): TokenStorage
@@ -1414,7 +1434,7 @@ Parses a JWT token payload without verification (base64-decodes
1414
1434
  the payload segment).
1415
1435
 
1416
1436
  ```typescript
1417
- function parseJWT(token: string): T | null
1437
+ function parseJWT<T = Record<string, unknown>>(token: string): T | null
1418
1438
  ```
1419
1439
 
1420
1440
  - `token` — The raw JWT string (header.payload.signature).
@@ -1461,7 +1481,7 @@ function isAuthenticated(): boolean
1461
1481
  Returns the current user profile, or `null` if not authenticated.
1462
1482
 
1463
1483
  ```typescript
1464
- function getUser(): T | null
1484
+ function getUser<T extends AuthProfileConstraint<T> = UserProfile>(): T | null
1465
1485
  ```
1466
1486
 
1467
1487
  **Returns:** The user profile, or `null` if not authenticated.
@@ -1471,7 +1491,9 @@ function getUser(): T | null
1471
1491
  Logs in with the given credentials (email/username + password).
1472
1492
 
1473
1493
  ```typescript
1474
- function login(credentials: LoginCredentials): Promise<AuthResult<T>>
1494
+ function login<T extends AuthProfileConstraint<T> = UserProfile>(
1495
+ credentials: LoginCredentials,
1496
+ ): Promise<AuthResult<T>>
1475
1497
  ```
1476
1498
 
1477
1499
  - `credentials` — Email/username and password.
@@ -1497,7 +1519,10 @@ The registration extra fields stay the FIRST type argument, exactly as before
1497
1519
  second one (`register<{ username: string }, SessionUser>(data)`).
1498
1520
 
1499
1521
  ```typescript
1500
- function register(data: RegisterData<TExtra>): Promise<AuthResult<T>>
1522
+ function register<
1523
+ TExtra extends RegisterExtraShape<TExtra> = Record<never, never>,
1524
+ T extends AuthProfileConstraint<T> = UserProfile,
1525
+ >(data: RegisterData<TExtra>): Promise<AuthResult<T>>
1501
1526
  ```
1502
1527
 
1503
1528
  - `data` — Registration data (email, password, and any `TExtra` fields).
@@ -35,8 +35,8 @@ export interface BrowserStorageAdapterOptions {
35
35
  * token AND the user in the store, `initialize()` restores the authenticated state synchronously
36
36
  * (`whenRestored()` is already resolved on the first render); render from it, and validate the
37
37
  * token as a background request — never in front of the first render. A page that waits on its
38
- * own `/me` call pays a round trip on EVERY navigation (xr-molecule-flash-m122: a 1–5 s restore
39
- * window, eight `waitForURL` timeouts).
38
+ * own `/me` call pays a round trip on EVERY navigation: a 1–5 s restore window is enough to
39
+ * time out a navigation that expects the signed-in UI.
40
40
  *
41
41
  * In a browser this IS the auth client's default `AuthClientConfig.storage`, so a scaffolded
42
42
  * app keeps its session across a page reload with no extra wiring. Outside a browser (SSR, a Node
@@ -26,8 +26,8 @@ const warn = (message, error) => {
26
26
  * token AND the user in the store, `initialize()` restores the authenticated state synchronously
27
27
  * (`whenRestored()` is already resolved on the first render); render from it, and validate the
28
28
  * token as a background request — never in front of the first render. A page that waits on its
29
- * own `/me` call pays a round trip on EVERY navigation (xr-molecule-flash-m122: a 1–5 s restore
30
- * window, eight `waitForURL` timeouts).
29
+ * own `/me` call pays a round trip on EVERY navigation: a 1–5 s restore window is enough to
30
+ * time out a navigation that expects the signed-in UI.
31
31
  *
32
32
  * In a browser this IS the auth client's default `AuthClientConfig.storage`, so a scaffolded
33
33
  * app keeps its session across a page reload with no extra wiring. Outside a browser (SSR, a Node
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EACV,UAAU,EACV,uBAAuB,EAIvB,qBAAqB,EAQrB,kBAAkB,EAClB,WAAW,EACZ,MAAM,YAAY,CAAA;AAmHnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,mBAAmB,GAC9B,CAAC,SAAS,qBAAqB,CAAC,CAAC,CAAC,GAAG,WAAW,EAChD,SAAS,SAAS,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAEtE,SAAQ,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAM,KAC/C,UAAU,CAAC,CAAC,EAAE,SAAS,CAk/BzB,CAAA"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EACV,UAAU,EACV,uBAAuB,EAIvB,qBAAqB,EAQrB,kBAAkB,EAClB,WAAW,EACZ,MAAM,YAAY,CAAA;AAmJnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,mBAAmB,GAC9B,CAAC,SAAS,qBAAqB,CAAC,CAAC,CAAC,GAAG,WAAW,EAChD,SAAS,SAAS,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAEtE,SAAQ,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAM,KAC/C,UAAU,CAAC,CAAC,EAAE,SAAS,CAw/BzB,CAAA"}
package/dist/client.js CHANGED
@@ -107,6 +107,36 @@ const sameUserData = (left, right, depth = 0) => {
107
107
  return leftKeys.every((key) => Object.prototype.hasOwnProperty.call(rightRecord, key) &&
108
108
  sameUserData(leftRecord[key], rightRecord[key], depth + 1));
109
109
  };
110
+ /** A JSON object of named fields — the only shape a profile or a profile answer can patch. */
111
+ const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
112
+ /**
113
+ * The profile a successful profile save leaves the session with: the answer applied field by
114
+ * field onto the profile the save was sent for.
115
+ *
116
+ * `updateProfile()` sends a partial update. An API may answer it with the CHANGED fields only —
117
+ * `@molecule/api-resource-user` answers `{ props: { bio, updatedAt } }`, an account API
118
+ * `{ account: { displayName } }`, a mutation `{ id, displayName }` — or with the whole profile,
119
+ * and no field tells the two apart: an `id` can come with a partial answer, and a mapper may
120
+ * derive one from a changed field. So each field the answer carries replaces the current value
121
+ * (an explicit `null` clears it, `id` included), and each field it does not carry is kept —
122
+ * including one a field-by-field mapper read as `undefined` from a partial wire user. A whole
123
+ * answer therefore gives its own values, and keeps a field it leaves out: an API that clears a
124
+ * field by omitting it must answer (or map) that field as `null`. Nothing reads a profile field,
125
+ * so a profile type with or without an `id` is applied the same way.
126
+ *
127
+ * An answer that is not a JSON object, or a save with no profile to apply it to, is returned as
128
+ * it came.
129
+ *
130
+ * @param profile - The profile the save was applied to.
131
+ * @param answer - The mapped profile answer.
132
+ * @returns The saved profile.
133
+ */
134
+ const applyProfileAnswer = (profile, answer) => {
135
+ if (!isRecord(profile) || !isRecord(answer))
136
+ return answer;
137
+ const carried = Object.entries(answer).filter(([, value]) => value !== undefined);
138
+ return { ...profile, ...Object.fromEntries(carried) };
139
+ };
110
140
  /**
111
141
  * Creates a simple JWT-based auth client.
112
142
  *
@@ -339,8 +369,8 @@ export const createJWTAuthClient = (config = {}) => {
339
369
  * shape. Session validation and the cookie restore adopt a user too, and their
340
370
  * answer is the raw wire user — storing it as-is replaced the adapted profile a
341
371
  * sign-in had cached, so after a reload the app was authenticated without the
342
- * `id`/`name` it derives from the adapter (xr-molecule-flash-m184: the username
343
- * and profile link disappeared although `GET /user` answered 200).
372
+ * `id`/`name` it derives from the adapter: the username and profile link
373
+ * disappear although `GET /user` answered 200.
344
374
  *
345
375
  * A mapper written for a login envelope may not be able to read a bare
346
376
  * current-user answer; when it throws or yields no user, the answer is used as
@@ -610,8 +640,8 @@ export const createJWTAuthClient = (config = {}) => {
610
640
  * life of the page: `createJWTAuthClient` starts at `status: 'loading'`, and only
611
641
  * `initialize()` (or a sign-in) leaves it. The template calls `initialize()` on one
612
642
  * line of `main.tsx`, so a rewrite that dropped that line made every `useAuth()`
613
- * read `'loading'` forever and every signed-in page never rendered (xr-molecule-flash-m192:
614
- * 18 tests timed out on a form the auth-gated page never produced). The first READ
643
+ * read `'loading'` forever and every signed-in page never rendered — every
644
+ * auth-gated form times out instead. The first READ
615
645
  * of the client's state now starts the restore instead — lazily, so an app that
616
646
  * forgot the call still restores, and exactly once, so the explicit call and the
617
647
  * reads share one request.
@@ -889,13 +919,19 @@ export const createJWTAuthClient = (config = {}) => {
889
919
  const raw = unwrapped.user ?? answer;
890
920
  // The profile route answers the wire shape as well; map it like every
891
921
  // other answer that replaces the cached user.
892
- const user = mapCurrentUser(answer, raw) ?? raw;
922
+ const mapped = mapCurrentUser(answer, raw) ?? raw;
893
923
  // The server may have accepted the old account's update, but that answer
894
924
  // must never replace a signed-out or newly signed-in account's cached
895
- // user. Return the request's result while leaving the current session
896
- // (storage and subscribers) untouched.
925
+ // user. Return the request's result, applied to the profile it was sent
926
+ // for, while leaving the current session (storage and subscribers) untouched.
897
927
  if (revision !== sessionRevision)
898
- return user;
928
+ return applyProfileAnswer(profileUser, mapped);
929
+ // A changed-fields answer stored as the user dropped every field the save did not
930
+ // touch from every `useAuth()` reader, the stored session and the next save's route
931
+ // (`/users/undefined`). Apply it to the session's CURRENT user — a same-session
932
+ // refresh that landed during the save is kept — and store and publish the result
933
+ // once, so no reader ever sees the partial answer.
934
+ const user = applyProfileAnswer(state.user, mapped);
899
935
  tokenStorage.setUser(user);
900
936
  setState({ user });
901
937
  return user;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -35,8 +35,8 @@
35
35
  * and an explicit `initialize()` returns the same promise, so a second call asks the
36
36
  * server nothing. Keep the template's explicit call (it makes the first render
37
37
  * deterministic); an entry file that drops it still restores instead of reporting
38
- * `'loading'` forever (xr-molecule-flash-m192: a `main.tsx` rewrite dropped the line
39
- * and 18 tests timed out on pages that never left their loading branch).
38
+ * `'loading'` forever (a `main.tsx` rewrite can drop the line, and every page
39
+ * then stays on its loading branch).
40
40
  *
41
41
  * **Never fetch viewer-dependent data before the restore settles.** A
42
42
  * component effect that runs on mount fires while `initialize()` is still
@@ -62,12 +62,12 @@
62
62
  * `initialize()` sets that state synchronously, before any request, and every
63
63
  * verification settles behind that render. Never hold the first paint on
64
64
  * `validateSession()` or a `/me` request of your own — a protected page then pays
65
- * an API round trip on every navigation (xr-molecule-flash-m177: ~30 full page
66
- * loads in one pagination spec; its four tests sat at 15.0–15.9 s of a 15 s
67
- * budget and the grader timed two out). Route guards read this same `status`:
68
- * wait only while it is `'loading'` — that status means "no decision yet", so an
69
- * auth request in flight (`state.loading`) keeps the decided status and does not
70
- * unmount a Login/Register page mid-request (xr-molecule-flash-m380).
65
+ * an API round trip on every navigation (~30 full page loads in one pagination
66
+ * spec put four tests at 15.0–15.9 s of a 15 s budget, and two timed out). Route
67
+ * guards read this same `status`: wait only while it is `'loading'` — that
68
+ * status means "no decision yet", so an auth request in flight
69
+ * (`state.loading`) keeps the decided status and does not unmount a
70
+ * Login/Register page mid-request.
71
71
  * `validateSession()` is the background re-check that produces the last two: call
72
72
  * it after the first render — a 401 or 403 clears the token (`'unauthenticated'`),
73
73
  * while a network failure, a 5xx, or a 404 from a wrong `currentUserEndpoint`
@@ -112,18 +112,18 @@
112
112
  * user, `setSession({ accessToken, user })` stores both and flips the client to
113
113
  * `authenticated` in one update, so every hook reading the shared client is signed in at once
114
114
  * (a form's own sign-in code wrote the token and the user with `setAccessToken`/`setUser`,
115
- * which change their field only — the UI stayed signed out and nine browser assertions timed
116
- * out, xr-molecule-flash-m178). `setAccessToken()` and `setUser()` are field setters, not a
115
+ * which change their field only — the UI stays signed out and the browser assertions that
116
+ * expect it time out). `setAccessToken()` and `setUser()` are field setters, not a
117
117
  * sign-in: neither sets `authenticated`.
118
118
  *
119
119
  * **A custom user profile is typed once and used everywhere: `AuthClientConfig<MyUser>`,
120
120
  * `createJWTAuthClient<MyUser>` and `useAuth<MyUser>()`.** The config's generic makes
121
121
  * `mapAuthResponse` return `AuthResult<MyUser>`, so a mapper that omits a required custom
122
122
  * field fails at the factory call instead of shipping a signed-in page whose navbar reads
123
- * `undefined` (xr-molecule-flash-m255: the mapper kept `id`/`name`/`avatar` but dropped
124
- * `username`, and the signed-in controls never rendered although login succeeded). Keep the
125
- * wire user's fields and ADD the base identity fields; do not rebuild the profile field by
126
- * field, and never hide a mismatch with `as unknown as MyUser`:
123
+ * `undefined` — a mapper that keeps `id`/`name`/`avatar` but drops `username` leaves the
124
+ * signed-in controls unrendered although login succeeded. The
125
+ * wire user carries the base fields too, `id` included — spread it, do not rebuild it
126
+ * field by field, and never hide a mismatch with `as unknown as MyUser`:
127
127
  *
128
128
  * ```typescript
129
129
  * import type { AuthClientConfig, UserProfile } from '@molecule/app-auth'
@@ -136,21 +136,12 @@
136
136
  *
137
137
  * const config: AuthClientConfig<MyUser> = {
138
138
  * mapAuthResponse: (data) => {
139
- * const { user: wire } = data as { user: { token: string } & Omit<MyUser, 'id'> }
139
+ * // The wire is the app's profile plus the bearer; `id` is the server's.
140
+ * const { user: wire } = data as { user: { token: string } & MyUser }
140
141
  * // The bearer stays OUT of the profile: the client caches `user` in Web
141
142
  * // Storage, where a token copy is readable by any script on the origin.
142
143
  * const { token, ...profile } = wire
143
- * return {
144
- * accessToken: token,
145
- * user: {
146
- * // Every wire field the pages read (`username`, `image`, …) survives…
147
- * ...profile,
148
- * // …plus the base fields the client derives its identity from.
149
- * id: profile.username,
150
- * name: profile.name ?? profile.username,
151
- * avatar: profile.image,
152
- * },
153
- * }
144
+ * return { accessToken: token, user: profile }
154
145
  * },
155
146
  * }
156
147
  *
@@ -158,8 +149,13 @@
158
149
  * // React: `useAuth<MyUser>()` reads the same profile.
159
150
  * ```
160
151
  *
152
+ * That `id` is the API's account identifier. Do not derive one from a display field
153
+ * (`id: wire.username`) to borrow `UserProfile` for an API that has no id: the field
154
+ * changes, the fabricated id changes with it, and the value then reaches storage,
155
+ * `getUser()` and every page as if the server had said it.
156
+ *
161
157
  * A profile does not have to extend `UserProfile` and does not need an `id`: the client
162
- * stores and returns the object it is given and reads no field of it. Name the API's own
158
+ * stores and patches the object it is given and reads no field of it. Name the API's own
163
159
  * shape, pass it to the factory and the config, and have the mapper return it complete —
164
160
  * every configuration adapter is typed by the same `T` (`mapAuthResponse`, the
165
161
  * `profileEndpoint`/`profileUpdateMethod`/`profileRequestBody` write transport,
@@ -196,11 +192,12 @@
196
192
  * `id: string` is the default configuration's contract. An array, a function or a
197
193
  * `Date` is not a profile the client can persist — see `AuthProfileShape`.
198
194
  *
199
- * A username-derived `id` can change during a profile save. It is not an immutable
200
- * session identifier: `getSessionRevision()` tracks session ownership independently
201
- * of profile fields, remains unchanged for profile updates and same-session
202
- * refreshes, and changes when a session is replaced or ended. Compare revisions
203
- * only within one client. React's `useProfileForm` uses this capability by default.
195
+ * A profile field can change during a profile save — a handle, or a username an app
196
+ * once derived an `id` from. It is not an immutable session identifier:
197
+ * `getSessionRevision()` tracks session ownership independently of profile fields,
198
+ * remains unchanged for profile updates and same-session refreshes, and changes when
199
+ * a session is replaced or ended. Compare revisions only within one client. React's
200
+ * `useProfileForm` uses this capability by default.
204
201
  *
205
202
  * **A profile-update transport that is not `PATCH` with bare JSON is a CONFIG field, not a
206
203
  * hand-written client.** `updateProfile()` sends to `profileEndpoint` with `PATCH` and the
@@ -235,7 +232,11 @@
235
232
  * coherent, and hand-written adapters have had to repair those callbacks repeatedly.
236
233
  * A pending profile response is published only to the session that sent it:
237
234
  * signing out or explicitly adopting/signing in another session prevents the old
238
- * response from replacing the active user's stored profile.
235
+ * response from changing the active user's stored profile. The answer is applied onto the
236
+ * stored profile field by field: a field it carries replaces the stored value (`null` clears
237
+ * it) and one it leaves out — or that `mapAuthResponse` leaves `undefined` — is kept, so a
238
+ * field the API clears by leaving it out must reach the client as `null`, answered by the API
239
+ * or mapped by `mapAuthResponse`.
239
240
  *
240
241
  * **A background verification that returns an unchanged user changes nothing.** When
241
242
  * `validateSession()` (or a reload's restore) answers with the same profile data the client
@@ -319,16 +320,26 @@
319
320
  * the form passed — `{ user: { username, email, password } }` goes out as-is.
320
321
  *
321
322
  * ```typescript
322
- * import type { UserProfile } from '@molecule/app-auth'
323
323
  * import { createJWTAuthClient } from '@molecule/app-auth'
324
324
  *
325
- * const realWorldAuth = createJWTAuthClient<UserProfile, { username: string }>({
325
+ * // RealWorld's user has no `id`. Name the shape the wire actually sends; the
326
+ * // client reads no field of it, so nothing has to be invented for a base profile.
327
+ * interface RealWorldUser {
328
+ * username: string
329
+ * email: string
330
+ * bio: string
331
+ * image: string
332
+ * }
333
+ *
334
+ * const realWorldAuth = createJWTAuthClient<RealWorldUser, { username: string }>({
326
335
  * baseURL: '/api',
327
336
  * authScheme: 'Token',
328
337
  * requestBody: (_kind, payload) => ({ user: payload }),
329
338
  * mapAuthResponse: (data) => {
330
- * const { user } = data as { user: { token: string; username: string; email: string } }
331
- * return { accessToken: user.token, user: { id: user.username, email: user.email } }
339
+ * const { user: wire } = data as { user: { token: string } & RealWorldUser }
340
+ * // Keep every wire field; the bearer stays out of the cached profile.
341
+ * const { token, ...profile } = wire
342
+ * return { accessToken: token, user: profile }
332
343
  * },
333
344
  * })
334
345
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgYG;AAEH,cAAc,sBAAsB,CAAA;AACpC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2YG;AAEH,cAAc,sBAAsB,CAAA;AACpC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
package/dist/index.js CHANGED
@@ -35,8 +35,8 @@
35
35
  * and an explicit `initialize()` returns the same promise, so a second call asks the
36
36
  * server nothing. Keep the template's explicit call (it makes the first render
37
37
  * deterministic); an entry file that drops it still restores instead of reporting
38
- * `'loading'` forever (xr-molecule-flash-m192: a `main.tsx` rewrite dropped the line
39
- * and 18 tests timed out on pages that never left their loading branch).
38
+ * `'loading'` forever (a `main.tsx` rewrite can drop the line, and every page
39
+ * then stays on its loading branch).
40
40
  *
41
41
  * **Never fetch viewer-dependent data before the restore settles.** A
42
42
  * component effect that runs on mount fires while `initialize()` is still
@@ -62,12 +62,12 @@
62
62
  * `initialize()` sets that state synchronously, before any request, and every
63
63
  * verification settles behind that render. Never hold the first paint on
64
64
  * `validateSession()` or a `/me` request of your own — a protected page then pays
65
- * an API round trip on every navigation (xr-molecule-flash-m177: ~30 full page
66
- * loads in one pagination spec; its four tests sat at 15.0–15.9 s of a 15 s
67
- * budget and the grader timed two out). Route guards read this same `status`:
68
- * wait only while it is `'loading'` — that status means "no decision yet", so an
69
- * auth request in flight (`state.loading`) keeps the decided status and does not
70
- * unmount a Login/Register page mid-request (xr-molecule-flash-m380).
65
+ * an API round trip on every navigation (~30 full page loads in one pagination
66
+ * spec put four tests at 15.0–15.9 s of a 15 s budget, and two timed out). Route
67
+ * guards read this same `status`: wait only while it is `'loading'` — that
68
+ * status means "no decision yet", so an auth request in flight
69
+ * (`state.loading`) keeps the decided status and does not unmount a
70
+ * Login/Register page mid-request.
71
71
  * `validateSession()` is the background re-check that produces the last two: call
72
72
  * it after the first render — a 401 or 403 clears the token (`'unauthenticated'`),
73
73
  * while a network failure, a 5xx, or a 404 from a wrong `currentUserEndpoint`
@@ -112,18 +112,18 @@
112
112
  * user, `setSession({ accessToken, user })` stores both and flips the client to
113
113
  * `authenticated` in one update, so every hook reading the shared client is signed in at once
114
114
  * (a form's own sign-in code wrote the token and the user with `setAccessToken`/`setUser`,
115
- * which change their field only — the UI stayed signed out and nine browser assertions timed
116
- * out, xr-molecule-flash-m178). `setAccessToken()` and `setUser()` are field setters, not a
115
+ * which change their field only — the UI stays signed out and the browser assertions that
116
+ * expect it time out). `setAccessToken()` and `setUser()` are field setters, not a
117
117
  * sign-in: neither sets `authenticated`.
118
118
  *
119
119
  * **A custom user profile is typed once and used everywhere: `AuthClientConfig<MyUser>`,
120
120
  * `createJWTAuthClient<MyUser>` and `useAuth<MyUser>()`.** The config's generic makes
121
121
  * `mapAuthResponse` return `AuthResult<MyUser>`, so a mapper that omits a required custom
122
122
  * field fails at the factory call instead of shipping a signed-in page whose navbar reads
123
- * `undefined` (xr-molecule-flash-m255: the mapper kept `id`/`name`/`avatar` but dropped
124
- * `username`, and the signed-in controls never rendered although login succeeded). Keep the
125
- * wire user's fields and ADD the base identity fields; do not rebuild the profile field by
126
- * field, and never hide a mismatch with `as unknown as MyUser`:
123
+ * `undefined` — a mapper that keeps `id`/`name`/`avatar` but drops `username` leaves the
124
+ * signed-in controls unrendered although login succeeded. The
125
+ * wire user carries the base fields too, `id` included — spread it, do not rebuild it
126
+ * field by field, and never hide a mismatch with `as unknown as MyUser`:
127
127
  *
128
128
  * ```typescript
129
129
  * import type { AuthClientConfig, UserProfile } from '@molecule/app-auth'
@@ -136,21 +136,12 @@
136
136
  *
137
137
  * const config: AuthClientConfig<MyUser> = {
138
138
  * mapAuthResponse: (data) => {
139
- * const { user: wire } = data as { user: { token: string } & Omit<MyUser, 'id'> }
139
+ * // The wire is the app's profile plus the bearer; `id` is the server's.
140
+ * const { user: wire } = data as { user: { token: string } & MyUser }
140
141
  * // The bearer stays OUT of the profile: the client caches `user` in Web
141
142
  * // Storage, where a token copy is readable by any script on the origin.
142
143
  * const { token, ...profile } = wire
143
- * return {
144
- * accessToken: token,
145
- * user: {
146
- * // Every wire field the pages read (`username`, `image`, …) survives…
147
- * ...profile,
148
- * // …plus the base fields the client derives its identity from.
149
- * id: profile.username,
150
- * name: profile.name ?? profile.username,
151
- * avatar: profile.image,
152
- * },
153
- * }
144
+ * return { accessToken: token, user: profile }
154
145
  * },
155
146
  * }
156
147
  *
@@ -158,8 +149,13 @@
158
149
  * // React: `useAuth<MyUser>()` reads the same profile.
159
150
  * ```
160
151
  *
152
+ * That `id` is the API's account identifier. Do not derive one from a display field
153
+ * (`id: wire.username`) to borrow `UserProfile` for an API that has no id: the field
154
+ * changes, the fabricated id changes with it, and the value then reaches storage,
155
+ * `getUser()` and every page as if the server had said it.
156
+ *
161
157
  * A profile does not have to extend `UserProfile` and does not need an `id`: the client
162
- * stores and returns the object it is given and reads no field of it. Name the API's own
158
+ * stores and patches the object it is given and reads no field of it. Name the API's own
163
159
  * shape, pass it to the factory and the config, and have the mapper return it complete —
164
160
  * every configuration adapter is typed by the same `T` (`mapAuthResponse`, the
165
161
  * `profileEndpoint`/`profileUpdateMethod`/`profileRequestBody` write transport,
@@ -196,11 +192,12 @@
196
192
  * `id: string` is the default configuration's contract. An array, a function or a
197
193
  * `Date` is not a profile the client can persist — see `AuthProfileShape`.
198
194
  *
199
- * A username-derived `id` can change during a profile save. It is not an immutable
200
- * session identifier: `getSessionRevision()` tracks session ownership independently
201
- * of profile fields, remains unchanged for profile updates and same-session
202
- * refreshes, and changes when a session is replaced or ended. Compare revisions
203
- * only within one client. React's `useProfileForm` uses this capability by default.
195
+ * A profile field can change during a profile save — a handle, or a username an app
196
+ * once derived an `id` from. It is not an immutable session identifier:
197
+ * `getSessionRevision()` tracks session ownership independently of profile fields,
198
+ * remains unchanged for profile updates and same-session refreshes, and changes when
199
+ * a session is replaced or ended. Compare revisions only within one client. React's
200
+ * `useProfileForm` uses this capability by default.
204
201
  *
205
202
  * **A profile-update transport that is not `PATCH` with bare JSON is a CONFIG field, not a
206
203
  * hand-written client.** `updateProfile()` sends to `profileEndpoint` with `PATCH` and the
@@ -235,7 +232,11 @@
235
232
  * coherent, and hand-written adapters have had to repair those callbacks repeatedly.
236
233
  * A pending profile response is published only to the session that sent it:
237
234
  * signing out or explicitly adopting/signing in another session prevents the old
238
- * response from replacing the active user's stored profile.
235
+ * response from changing the active user's stored profile. The answer is applied onto the
236
+ * stored profile field by field: a field it carries replaces the stored value (`null` clears
237
+ * it) and one it leaves out — or that `mapAuthResponse` leaves `undefined` — is kept, so a
238
+ * field the API clears by leaving it out must reach the client as `null`, answered by the API
239
+ * or mapped by `mapAuthResponse`.
239
240
  *
240
241
  * **A background verification that returns an unchanged user changes nothing.** When
241
242
  * `validateSession()` (or a reload's restore) answers with the same profile data the client
@@ -319,16 +320,26 @@
319
320
  * the form passed — `{ user: { username, email, password } }` goes out as-is.
320
321
  *
321
322
  * ```typescript
322
- * import type { UserProfile } from '@molecule/app-auth'
323
323
  * import { createJWTAuthClient } from '@molecule/app-auth'
324
324
  *
325
- * const realWorldAuth = createJWTAuthClient<UserProfile, { username: string }>({
325
+ * // RealWorld's user has no `id`. Name the shape the wire actually sends; the
326
+ * // client reads no field of it, so nothing has to be invented for a base profile.
327
+ * interface RealWorldUser {
328
+ * username: string
329
+ * email: string
330
+ * bio: string
331
+ * image: string
332
+ * }
333
+ *
334
+ * const realWorldAuth = createJWTAuthClient<RealWorldUser, { username: string }>({
326
335
  * baseURL: '/api',
327
336
  * authScheme: 'Token',
328
337
  * requestBody: (_kind, payload) => ({ user: payload }),
329
338
  * mapAuthResponse: (data) => {
330
- * const { user } = data as { user: { token: string; username: string; email: string } }
331
- * return { accessToken: user.token, user: { id: user.username, email: user.email } }
339
+ * const { user: wire } = data as { user: { token: string } & RealWorldUser }
340
+ * // Keep every wire field; the bearer stays out of the cached profile.
341
+ * const { token, ...profile } = wire
342
+ * return { accessToken: token, user: profile }
332
343
  * },
333
344
  * })
334
345
  *
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgYG;AAEH,cAAc,sBAAsB,CAAA;AACpC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2YG;AAEH,cAAc,sBAAsB,CAAA;AACpC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA"}
package/dist/types.d.ts CHANGED
@@ -548,9 +548,12 @@ export interface AuthClient<T = UserProfile, TRegister extends RegisterExtraShap
548
548
  confirmPasswordReset(data: PasswordResetConfirm): Promise<void>;
549
549
  /**
550
550
  * Updates the current user's profile.
551
- * Returns the saved response. If the session is explicitly replaced or ended
552
- * while the request is pending, that response does not replace the current
553
- * session's user or persisted cache.
551
+ * Returns the saved profile: the answer applied onto the signed-in user field
552
+ * by field, with or without an `id` — a field it carries replaces the value
553
+ * (`null` clears it), one it omits or leaves `undefined` is kept, so a field
554
+ * cleared by omission must arrive as `null`. A non-object answer is returned
555
+ * as it came. An answer for a replaced or ended session leaves the current one
556
+ * untouched.
554
557
  */
555
558
  updateProfile(data: Partial<T>): Promise<T>;
556
559
  /**
@@ -675,14 +678,16 @@ export interface StorageAdapter {
675
678
  * `createJWTAuthClient<MyUser>` returns and `useAuth<MyUser>()` reads. That
676
679
  * makes {@link AuthClientConfigOptions.mapAuthResponse} return
677
680
  * `AuthResult<MyUser>`, so a mapper that omits a required custom field is a type
678
- * error instead of a signed-in page reading `undefined`
679
- * (xr-molecule-flash-m255). Keep every wire field the pages read (spread the
680
- * wire user and add `id`/`name`/`avatar`); mapping a field to a different name
681
- * does not preserve the original, and a `as unknown as MyUser` assertion hides
682
- * the loss. See the module docs for the wire-preserving adapter.
681
+ * error instead of a signed-in page reading `undefined`. Keep every wire field the pages
682
+ * read by spreading the
683
+ * wire user — the base fields (`id`, `name`, `avatar`) come from the server like
684
+ * any other, never re-derived from a mutable display field such as a username;
685
+ * mapping a field to a different name does not preserve the original, and an
686
+ * `as unknown as MyUser` assertion hides the loss. See the module docs for the
687
+ * wire-preserving adapter.
683
688
  *
684
689
  * `T` is the app's OWN profile shape and need not extend {@link UserProfile}:
685
- * the client stores and returns the object it is given and reads no field of
690
+ * the client stores and patches the object it is given and reads no field of
686
691
  * it, so an API whose user has no `id` — `{ username, email, bio, image }` —
687
692
  * is typed by its own `interface` directly, with no fabricated `id`. The
688
693
  * default, {@link UserProfile}, still requires `id: string`. A primitive,
@@ -851,7 +856,7 @@ export interface AuthClientConfigOptions<T extends object = UserProfile> {
851
856
  * token-refresh answer, and `updateProfile()`. Those answers carry the raw wire
852
857
  * user (a current-user route typically answers a bare `{ user }`), so applying
853
858
  * the same mapping is what keeps the adapted profile after a reload instead of
854
- * replacing it with the unadapted one (xr-molecule-flash-m184). A mapper that
859
+ * replacing it with the unadapted one. A mapper that
855
860
  * cannot read a given answer (it throws, or returns no `user`) leaves that
856
861
  * answer's user as it came.
857
862
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@molecule/app-auth",
3
- "version": "2.0.0",
3
+ "version": "3.0.1",
4
4
  "description": "Client-side authentication interface for molecule.dev",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -33,8 +33,8 @@
33
33
  "@molecule/app-logger": "^1.0.1"
34
34
  },
35
35
  "devDependencies": {
36
- "@molecule/app-bond": "1.0.3",
37
- "@molecule/app-i18n": "1.0.4",
36
+ "@molecule/app-bond": "1.0.4",
37
+ "@molecule/app-i18n": "1.1.1",
38
38
  "@molecule/app-logger": "1.0.3",
39
39
  "@types/node": "26.6.5",
40
40
  "typescript": "6.0.3",