@molecule/app-auth 1.4.0 → 1.5.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 +126 -51
- package/dist/client.d.ts +4 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +3 -0
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +26 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -1
- package/dist/index.js.map +1 -1
- package/dist/provider.d.ts +8 -2
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +6 -0
- package/dist/provider.js.map +1 -1
- package/dist/types.d.ts +72 -19
- package/dist/types.d.ts.map +1 -1
- package/dist/utilities.d.ts +4 -2
- package/dist/utilities.d.ts.map +1 -1
- package/dist/utilities.js +3 -1
- package/dist/utilities.js.map +1 -1
- package/package.json +2 -2
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-
|
|
6
|
+
Generated: 2026-10-18T04:41:25.555Z
|
|
7
7
|
-->
|
|
8
8
|
|
|
9
9
|
# @molecule/app-auth
|
|
@@ -91,6 +91,27 @@ await login({ email, password })
|
|
|
91
91
|
if (isAuthenticated()) console.log(getUser()?.email)
|
|
92
92
|
```
|
|
93
93
|
|
|
94
|
+
An API that wraps the payload and registers extra fields (RealWorld): type those
|
|
95
|
+
fields with the factory's second generic, and `requestBody` receives exactly what
|
|
96
|
+
the form passed — `{ user: { username, email, password } }` goes out as-is.
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
import type { UserProfile } from '@molecule/app-auth'
|
|
100
|
+
import { createJWTAuthClient } from '@molecule/app-auth'
|
|
101
|
+
|
|
102
|
+
const realWorldAuth = createJWTAuthClient<UserProfile, { username: string }>({
|
|
103
|
+
baseURL: '/api',
|
|
104
|
+
authScheme: 'Token',
|
|
105
|
+
requestBody: (_kind, payload) => ({ user: payload }),
|
|
106
|
+
mapAuthResponse: (data) => {
|
|
107
|
+
const { user } = data as { user: { token: string; username: string; email: string } }
|
|
108
|
+
return { accessToken: user.token, user: { id: user.username, email: user.email } }
|
|
109
|
+
},
|
|
110
|
+
})
|
|
111
|
+
|
|
112
|
+
await realWorldAuth.register({ username: 'alice', email: 'alice@example.com', password: 's3cret' })
|
|
113
|
+
```
|
|
114
|
+
|
|
94
115
|
## Type
|
|
95
116
|
|
|
96
117
|
`core`
|
|
@@ -198,34 +219,6 @@ interface LoginCredentials {
|
|
|
198
219
|
}
|
|
199
220
|
```
|
|
200
221
|
|
|
201
|
-
#### `RegisterData`
|
|
202
|
-
|
|
203
|
-
New user registration payload (email, password, optional name and metadata).
|
|
204
|
-
|
|
205
|
-
```typescript
|
|
206
|
-
interface RegisterData {
|
|
207
|
-
/**
|
|
208
|
-
* Email address.
|
|
209
|
-
*/
|
|
210
|
-
email: string
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* Password.
|
|
214
|
-
*/
|
|
215
|
-
password: string
|
|
216
|
-
|
|
217
|
-
/**
|
|
218
|
-
* Display name.
|
|
219
|
-
*/
|
|
220
|
-
name?: string
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* Additional registration fields.
|
|
224
|
-
*/
|
|
225
|
-
metadata?: Record<string, unknown>
|
|
226
|
-
}
|
|
227
|
-
```
|
|
228
|
-
|
|
229
222
|
#### `AuthResult`
|
|
230
223
|
|
|
231
224
|
Successful authentication result containing the user, access/refresh tokens, and expiration.
|
|
@@ -339,7 +332,10 @@ Provides login/logout/register flows, token management, profile
|
|
|
339
332
|
updates, and auth state subscription.
|
|
340
333
|
|
|
341
334
|
```typescript
|
|
342
|
-
interface AuthClient<
|
|
335
|
+
interface AuthClient<
|
|
336
|
+
T = UserProfile,
|
|
337
|
+
TRegister extends Record<string, unknown> = Record<never, never>,
|
|
338
|
+
> {
|
|
343
339
|
/**
|
|
344
340
|
* Returns the current authentication state snapshot.
|
|
345
341
|
*/
|
|
@@ -393,9 +389,10 @@ interface AuthClient<T = UserProfile> {
|
|
|
393
389
|
logout(): Promise<void>
|
|
394
390
|
|
|
395
391
|
/**
|
|
396
|
-
* Registers a new user.
|
|
392
|
+
* Registers a new user. Accepts the base fields plus the app's own fields
|
|
393
|
+
* (`TRegister`) at the top level — see {@link RegisterData}.
|
|
397
394
|
*/
|
|
398
|
-
register(data: RegisterData): Promise<AuthResult<T>>
|
|
395
|
+
register(data: RegisterData<TRegister>): Promise<AuthResult<T>>
|
|
399
396
|
|
|
400
397
|
/**
|
|
401
398
|
* Refreshes the access token.
|
|
@@ -582,8 +579,26 @@ interface AuthClientConfig {
|
|
|
582
579
|
|
|
583
580
|
/**
|
|
584
581
|
* Shape the login/register request body for an API that expects another
|
|
585
|
-
* envelope (default: the
|
|
586
|
-
*
|
|
582
|
+
* envelope (default: the payload as given). `register()` hands this callback
|
|
583
|
+
* exactly what the caller passed — including the app's own fields, typed
|
|
584
|
+
* through `createJWTAuthClient<UserProfile, { username: string }>` — so the
|
|
585
|
+
* body can be sent as-is under the envelope the API wants.
|
|
586
|
+
*
|
|
587
|
+
* RealWorld, for example, nests the payload under `user` and registers with
|
|
588
|
+
* `{ user: { username, email, password } }`:
|
|
589
|
+
*
|
|
590
|
+
* ```typescript
|
|
591
|
+
* const client = createJWTAuthClient<UserProfile, { username: string }>({
|
|
592
|
+
* requestBody: (kind, payload) => ({ user: payload }),
|
|
593
|
+
* // …
|
|
594
|
+
* })
|
|
595
|
+
* await client.register({ username, email, password })
|
|
596
|
+
* ```
|
|
597
|
+
*
|
|
598
|
+
* A caller that keeps the untyped payload can map the base fields instead:
|
|
599
|
+
* `(kind, p) => ({ user: { username: p.name, email: p.email, password: p.password } })`
|
|
600
|
+
* with `register({ email, password, name: username })`.
|
|
601
|
+
*
|
|
587
602
|
* @param kind - Which request.
|
|
588
603
|
* @param payload - The credentials or registration data.
|
|
589
604
|
* @returns The JSON body to send.
|
|
@@ -603,16 +618,25 @@ interface AuthClientConfig {
|
|
|
603
618
|
* Where the access/refresh token and the cached user are kept — the field that
|
|
604
619
|
* decides whether a page reload keeps the user signed in.
|
|
605
620
|
*
|
|
606
|
-
* - `'memory'`
|
|
607
|
-
*
|
|
608
|
-
*
|
|
609
|
-
*
|
|
610
|
-
*
|
|
611
|
-
*
|
|
612
|
-
*
|
|
613
|
-
*
|
|
614
|
-
*
|
|
615
|
-
*
|
|
621
|
+
* **In-memory is the secure default.** `'memory'` is a process-local store, lost
|
|
622
|
+
* on reload. It is correct when the API sets an httpOnly session cookie, which
|
|
623
|
+
* `initialize()` then restores through {@link AuthClientConfig.currentUserEndpoint}
|
|
624
|
+
* — the strongest configuration, because no script can read the cookie.
|
|
625
|
+
*
|
|
626
|
+
* **An app whose external contract requires a token in storage opts in
|
|
627
|
+
* EXPLICITLY, with these two fields together.** A supplied e2e suite (the
|
|
628
|
+
* RealWorld specs read `localStorage.jwtToken` in `SELECTORS.md`), a host page
|
|
629
|
+
* or a second library can require the token at its own key: then set
|
|
630
|
+
* `storage: createBrowserStorageAdapter()` and `tokenKey: 'jwtToken'`, and the
|
|
631
|
+
* session (token AND user) is restored synchronously in `initialize()` — with no
|
|
632
|
+
* store of your own. `tokenKey` places the access token at that exact key; the
|
|
633
|
+
* refresh token and the cached user keep `storagePrefix`.
|
|
634
|
+
*
|
|
635
|
+
* A bearer token in Web Storage is readable by any script on the origin, so an
|
|
636
|
+
* XSS can steal it; see {@link createBrowserStorageAdapter}'s `@remarks` for the
|
|
637
|
+
* trade and for the cookie alternative. Never answer a suite's storage key with a
|
|
638
|
+
* second store or a restore script beside this client — that races the client's
|
|
639
|
+
* own restore, and either side's 401 signs the user out for good.
|
|
616
640
|
*
|
|
617
641
|
* Any adapter with `getItem`/`setItem`/`removeItem` works — the methods are
|
|
618
642
|
* SYNCHRONOUS, so the async `@molecule/app-storage` provider
|
|
@@ -624,7 +648,10 @@ interface AuthClientConfig {
|
|
|
624
648
|
* ```typescript
|
|
625
649
|
* import { createBrowserStorageAdapter } from '@molecule/app-auth'
|
|
626
650
|
*
|
|
627
|
-
* // A
|
|
651
|
+
* // A suite/host page reads the token at its own key — the opt-in:
|
|
652
|
+
* storage: createBrowserStorageAdapter()
|
|
653
|
+
* tokenKey: 'jwtToken'
|
|
654
|
+
* // A reload keeps the session at this client's own keys:
|
|
628
655
|
* storage: createBrowserStorageAdapter()
|
|
629
656
|
* // Only this tab's lifetime, at a narrower exposure than localStorage:
|
|
630
657
|
* storage: createBrowserStorageAdapter({ kind: 'session' })
|
|
@@ -715,6 +742,50 @@ Which Web Storage area {@link createBrowserStorageAdapter} persists to:
|
|
|
715
742
|
type BrowserStorageKind = 'local' | 'session'
|
|
716
743
|
```
|
|
717
744
|
|
|
745
|
+
#### `RegisterData`
|
|
746
|
+
|
|
747
|
+
New user registration payload: the email/password fields every API takes,
|
|
748
|
+
plus `TExtra` — the app's OWN registration fields, at the top level.
|
|
749
|
+
|
|
750
|
+
`TExtra` is what the app's sign-up form collects and its API expects
|
|
751
|
+
(`username`, `fullName`, …). Give the client the same type and the typed call
|
|
752
|
+
passes those fields straight through, so
|
|
753
|
+
{@link AuthClientConfig.requestBody} receives exactly what the form passed —
|
|
754
|
+
no cast, and no stuffing them into `name` or `metadata`:
|
|
755
|
+
|
|
756
|
+
```typescript
|
|
757
|
+
const client = createJWTAuthClient<UserProfile, { username: string }>({ … })
|
|
758
|
+
await client.register({ email, password, username }) // `username` is typed
|
|
759
|
+
```
|
|
760
|
+
|
|
761
|
+
`TExtra` defaults to no extra fields, so an app that passes `name`/`metadata`
|
|
762
|
+
(and a `requestBody` that reads them) keeps type-checking unchanged; only a
|
|
763
|
+
client constructed with a second generic accepts (and types) more fields.
|
|
764
|
+
|
|
765
|
+
```typescript
|
|
766
|
+
type RegisterData<TExtra extends Record<string, unknown> = Record<never, never>> = {
|
|
767
|
+
/**
|
|
768
|
+
* Email address.
|
|
769
|
+
*/
|
|
770
|
+
email: string
|
|
771
|
+
|
|
772
|
+
/**
|
|
773
|
+
* Password.
|
|
774
|
+
*/
|
|
775
|
+
password: string
|
|
776
|
+
|
|
777
|
+
/**
|
|
778
|
+
* Display name.
|
|
779
|
+
*/
|
|
780
|
+
name?: string
|
|
781
|
+
|
|
782
|
+
/**
|
|
783
|
+
* Additional registration fields.
|
|
784
|
+
*/
|
|
785
|
+
metadata?: Record<string, unknown>
|
|
786
|
+
} & TExtra
|
|
787
|
+
```
|
|
788
|
+
|
|
718
789
|
#### `AuthStatus`
|
|
719
790
|
|
|
720
791
|
The single value an app renders the session from — the four states every auth
|
|
@@ -806,7 +877,7 @@ This is a basic implementation that can be extended or replaced
|
|
|
806
877
|
with more sophisticated auth providers.
|
|
807
878
|
|
|
808
879
|
```typescript
|
|
809
|
-
function createJWTAuthClient(config?: AuthClientConfig): AuthClient<T>
|
|
880
|
+
function createJWTAuthClient(config?: AuthClientConfig): AuthClient<T, TRegister>
|
|
810
881
|
```
|
|
811
882
|
|
|
812
883
|
- `config` — Auth client configuration including endpoints, storage, and refresh settings.
|
|
@@ -819,7 +890,7 @@ Registers an auth client as the active singleton. Called by bond
|
|
|
819
890
|
packages during application startup.
|
|
820
891
|
|
|
821
892
|
```typescript
|
|
822
|
-
function setClient(client: AuthClient<
|
|
893
|
+
function setClient(client: AuthClient<T, TRegister>): void
|
|
823
894
|
```
|
|
824
895
|
|
|
825
896
|
- `client` — The auth client implementation to bond.
|
|
@@ -829,7 +900,7 @@ function setClient(client: AuthClient<UserProfile>): void
|
|
|
829
900
|
Retrieves the bonded auth client, throwing if none is configured.
|
|
830
901
|
|
|
831
902
|
```typescript
|
|
832
|
-
function getClient(): AuthClient<T>
|
|
903
|
+
function getClient(): AuthClient<T, TRegister>
|
|
833
904
|
```
|
|
834
905
|
|
|
835
906
|
**Returns:** The bonded auth client.
|
|
@@ -948,10 +1019,10 @@ function logout(): Promise<void>
|
|
|
948
1019
|
Registers a new user account.
|
|
949
1020
|
|
|
950
1021
|
```typescript
|
|
951
|
-
function register(data: RegisterData): Promise<AuthResult<UserProfile>>
|
|
1022
|
+
function register(data: RegisterData<TExtra>): Promise<AuthResult<UserProfile>>
|
|
952
1023
|
```
|
|
953
1024
|
|
|
954
|
-
- `data` — Registration data (email, password,
|
|
1025
|
+
- `data` — Registration data (email, password, and any `TExtra` fields).
|
|
955
1026
|
|
|
956
1027
|
**Returns:** The auth result containing tokens and user profile.
|
|
957
1028
|
|
|
@@ -978,7 +1049,11 @@ Peer dependencies:
|
|
|
978
1049
|
`AuthClientConfig` the client is CONSTRUCTED with
|
|
979
1050
|
(`setClient(createJWTAuthClient({ authScheme: 'Token', … }))` in the auth bond), not
|
|
980
1051
|
properties of a client that already exists. Do not hand-write an auth client for a spec
|
|
981
|
-
like RealWorld.
|
|
1052
|
+
like RealWorld. **Registration fields the base payload lacks (`username`, …) are the
|
|
1053
|
+
factory's second generic** — `createJWTAuthClient<UserProfile, { username: string }>(…)` —
|
|
1054
|
+
so `register({ username, email, password })` type-checks and the body goes out as
|
|
1055
|
+
`{ user: { username, email, password } }`. Do not pass them as `name`/`metadata` or
|
|
1056
|
+
cast the payload.
|
|
982
1057
|
- **Endpoint defaults must match your API's real routes** (`/auth/login`,
|
|
983
1058
|
`/auth/register`, `/auth/refresh`, `/users/logout`, `/users/me`, …).
|
|
984
1059
|
Align them via `createJWTAuthClient({ baseURL, ...endpoints })` — never by
|
package/dist/client.d.ts
CHANGED
|
@@ -12,8 +12,11 @@ import type { AuthClient, AuthClientConfig, UserProfile } from './types.js';
|
|
|
12
12
|
* This is a basic implementation that can be extended or replaced
|
|
13
13
|
* with more sophisticated auth providers.
|
|
14
14
|
*
|
|
15
|
+
* @template T - The user profile the API returns.
|
|
16
|
+
* @template TRegister - The app's own registration fields, accepted at the top
|
|
17
|
+
* level of `register()` (e.g. `{ username: string }` for a RealWorld-shaped API).
|
|
15
18
|
* @param config - Auth client configuration including endpoints, storage, and refresh settings.
|
|
16
19
|
* @returns A fully configured `AuthClient` instance.
|
|
17
20
|
*/
|
|
18
|
-
export declare const createJWTAuthClient: <T extends UserProfile = UserProfile>(config?: AuthClientConfig) => AuthClient<T>;
|
|
21
|
+
export declare const createJWTAuthClient: <T extends UserProfile = UserProfile, TRegister extends Record<string, unknown> = Record<never, never>>(config?: AuthClientConfig) => AuthClient<T, TRegister>;
|
|
19
22
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAUhB,WAAW,EACZ,MAAM,YAAY,CAAA;AA4CnB
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAUhB,WAAW,EACZ,MAAM,YAAY,CAAA;AA4CnB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,GAC9B,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAEhE,SAAQ,gBAAqB,KAC5B,UAAU,CAAC,CAAC,EAAE,SAAS,CAuiBzB,CAAA"}
|
package/dist/client.js
CHANGED
|
@@ -56,6 +56,9 @@ const clearSessionHintCookie = () => {
|
|
|
56
56
|
* This is a basic implementation that can be extended or replaced
|
|
57
57
|
* with more sophisticated auth providers.
|
|
58
58
|
*
|
|
59
|
+
* @template T - The user profile the API returns.
|
|
60
|
+
* @template TRegister - The app's own registration fields, accepted at the top
|
|
61
|
+
* level of `register()` (e.g. `{ username: string }` for a RealWorld-shaped API).
|
|
59
62
|
* @param config - Auth client configuration including endpoints, storage, and refresh settings.
|
|
60
63
|
* @returns A fully configured `AuthClient` instance.
|
|
61
64
|
*/
|
package/dist/client.js.map
CHANGED
|
@@ -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":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAEhD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAgBnF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,uBAAuB,GAAG,GAAY,EAAE;IAC5C,IAAI,CAAC;QACH,OAAO,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,GAAG,CAAA;IACpE,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,4EAA4E;QAC5E,6EAA6E;QAC7E,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,sBAAsB,GAAG,GAAS,EAAE;IACxC,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAM;IAC3C,MAAM,YAAY,GAAG,uBAAuB,EAAE,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5F,QAAQ,CAAC,MAAM,GAAG,+BAA+B,YAAY,EAAE,CAAA;AACjE,CAAC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAIjC,SAA2B,EAAE,EACH,EAAE;IAC5B,MAAM,EACJ,OAAO,GAAG,EAAE,EACZ,aAAa,GAAG,aAAa,EAC7B,cAAc,GAAG,eAAe,EAChC,gBAAgB,GAAG,gBAAgB,EACnC,eAAe,GAAG,eAAe,EACjC,eAAe,GAAG,eAAe,EACjC,sBAAsB,GAAG,sBAAsB,EAC/C,qBAAqB,GAAG,8BAA8B,EACtD,sBAAsB,GAAG,uBAAuB,EAChD,mBAAmB,GAAG,WAAW,EACjC,aAAa,GAAG,gBAAgB,EAChC,OAAO,GAAG,QAAQ,EAClB,iBAAiB,EACjB,WAAW,GAAG,IAAI,EAClB,aAAa,GAAG,EAAE,GACnB,GAAG,MAAM,CAAA;IAEV,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IAChC,MAAM,YAAY,GAAG,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;IAChF,MAAM,cAAc,GAAG,IAAI,GAAG,EAAiC,CAAA;IAC/D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAqB,CAAA;IACnD,IAAI,YAAY,GAAyC,IAAI,CAAA;IAC7D,kFAAkF;IAClF,gFAAgF;IAChF,8EAA8E;IAC9E,+EAA+E;IAC/E,IAAI,eAAe,GAAyB,IAAI,CAAA;IAEhD,IAAI,KAAK,GAAiB;QACxB,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,KAAK;QACpB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,IAAI;KACZ,CAAA;IAED,MAAM,MAAM,GAAG,GAAS,EAAE;QACxB,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IACvD,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,CAAC,KAAgB,EAAQ,EAAE;QAC3C,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IACvD,CAAC,CAAA;IAED;;;;;OAKG;IACH,MAAM,YAAY,GAAG,CAAC,IAAkB,EAAE,QAAgC,EAAc,EAAE;QACxF,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAA;QAC7B,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,eAAe,CAAA;QAC9C,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO,SAAS,CAAA;QACvD,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,IAAI,YAAY,CAAC,cAAc,EAAE;YAAE,OAAO,aAAa,CAAA;QACzF,OAAO,iBAAiB,CAAA;IAC1B,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,CAAC,OAA8B,EAAQ,EAAE;QACxD,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,EAAE,CAAA;QACrC,KAAK,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;QAC/D,MAAM,EAAE,CAAA;IACV,CAAC,CAAA;IAED,MAAM,eAAe,GAAG,GAAS,EAAE;QACjC,IAAI,CAAC,WAAW;YAAE,OAAM;QAExB,MAAM,KAAK,GAAG,YAAY,CAAC,cAAc,EAAE,CAAA;QAC3C,IAAI,CAAC,KAAK;YAAE,OAAM;QAElB,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;QAC3C,IAAI,CAAC,SAAS;YAAE,OAAM;QAEtB,MAAM,WAAW,GAAG,SAAS,GAAG,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACjE,IAAI,WAAW,IAAI,CAAC;YAAE,OAAM;QAE5B,IAAI,YAAY,EAAE,CAAC;YACjB,YAAY,CAAC,YAAY,CAAC,CAAA;QAC5B,CAAC;QAED,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;YAC7B,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC7B,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,CAAC,CAAA;gBACrD,MAAM,CAAC,MAAM,EAAE,CAAA;YACjB,CAAC,CAAC,CAAA;QACJ,CAAC,EAAE,WAAW,CAAC,CAAA;IACjB,CAAC,CAAA;IAED,4EAA4E;IAC5E,MAAM,SAAS,GAAG,CAAC,IAA0B,EAAE,OAAe,EAAW,EAAE,CACzE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,OAAkC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAC7F,MAAM,SAAS,GAAG,CAAC,IAAa,EAAiB,EAAE,CACjD,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAkB,CAAA;IAEjF,MAAM,QAAQ,GAAG,KAAK,EAAK,QAAgB,EAAE,UAAuB,EAAE,EAAc,EAAE;QACpF,MAAM,GAAG,GAAG,OAAO,GAAG,QAAQ,CAAA;QAC9B,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,GAAI,OAAO,CAAC,OAAkC;SAC/C,CAAA;QAED,MAAM,KAAK,GAAG,YAAY,CAAC,cAAc,EAAE,CAAA;QAC3C,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,eAAe,CAAC,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAA;QACxE,CAAC;QAED,wEAAwE;QACxE,0EAA0E;QAC1E,uEAAuE;QACvE,0EAA0E;QAC1E,sEAAsE;QACtE,yEAAyE;QACzE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,WAAW,EAAE,SAAS;YACtB,GAAG,OAAO;YACV,OAAO;SACR,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACpD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,0BAA0B,CAAA;YACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAA;YAC/D,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAoC,CAAA;YAC1F,wEAAwE;YACxE,0EAA0E;YAC1E,6CAA6C;YAC7C,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;YAChC,MAAM,OAAO,CAAA;QACf,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QAClC,sEAAsE;QACtE,sEAAsE;QACtE,uEAAuE;QACvE,uEAAuE;QACvE,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC5F,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;QACxB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAA;IAED,4EAA4E;IAC5E,2EAA2E;IAC3E,8EAA8E;IAC9E,4EAA4E;IAC5E,sEAAsE;IACtE,4EAA4E;IAC5E,EAAE;IACF,uEAAuE;IACvE,6EAA6E;IAC7E,wEAAwE;IACxE,yEAAyE;IACzE,gBAAgB;IAChB,EAAE;IACF,2EAA2E;IAC3E,oCAAoC;IACpC,MAAM,wBAAwB,GAAG,KAAK,IAAuB,EAAE;QAC7D,MAAM,cAAc,GAClB,OAAO,QAAQ,KAAK,WAAW,IAAI,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACxF,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAA;QAChC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAe,mBAAmB,EAAE;gBAC/D,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,SAAS;aACvB,CAAC,CAAA;YACF,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,IAAI,CAAa,CAAA;YACvD,IAAI,YAAY,IAAI,iBAAiB,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC1E,wEAAwE;gBACxE,wEAAwE;gBACxE,qEAAqE;gBACrE,oEAAoE;gBACpE,yCAAyC;gBACzC,sBAAsB,EAAE,CAAA;gBACxB,OAAO,IAAI,CAAA;YACb,CAAC;YACD,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;gBAClC,QAAQ,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;gBACrD,OAAO,YAAY,CAAA;YACrB,CAAC;QACH,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,qEAAqE;YACrE,wEAAwE;YACxE,oEAAoE;YACpE,uEAAuE;YACvE,6DAA6D;YAC7D,sBAAsB,EAAE,CAAA;QAC1B,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAA;IAED,mFAAmF;IACnF,qFAAqF;IACrF,oFAAoF;IACpF,MAAM,iBAAiB,GAAG,KAAK,IAAmB,EAAE;QAClD,MAAM,KAAK,GAAG,YAAY,CAAC,cAAc,EAAE,CAAA;QAC3C,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,EAAK,CAAA;QAEtC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,QAAQ,CAAC;oBACP,WAAW,EAAE,IAAI;oBACjB,aAAa,EAAE,IAAI;oBACnB,IAAI;iBACL,CAAC,CAAA;gBACF,eAAe,EAAE,CAAA;gBACjB,OAAM;YACR,CAAC;YAED,gCAAgC;YAChC,MAAM,YAAY,GAAG,YAAY,CAAC,eAAe,EAAE,CAAA;YACnD,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAA;oBACtB,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;oBAC/B,OAAM;gBACR,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAA;oBAChD,YAAY,CAAC,KAAK,EAAE,CAAA;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,0EAA0E;QAC1E,MAAM,wBAAwB,EAAE,CAAA;QAChC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;IACjC,CAAC,CAAA;IAED,MAAM,MAAM,GAA6B;QACvC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;QACrB,eAAe,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa;QAE1C,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI;QAEzB,OAAO,EAAE,CAAC,IAAc,EAAE,EAAE;YAC1B,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC1B,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QACpB,CAAC;QAED,cAAc,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE;QAEnD,cAAc,EAAE,CAAC,KAAoB,EAAE,EAAE;YACvC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;QACpC,CAAC;QAED,eAAe,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE;QAErD,KAAK,CAAC,KAAK,CAAC,WAA6B;YACvC,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;YAExC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,SAAS,CACtB,MAAM,QAAQ,CAAU,aAAa,EAAE;oBACrC,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;iBACtD,CAAC,CACH,CAAA;gBAED,yEAAyE;gBACzE,kEAAkE;gBAClE,yEAAyE;gBACzE,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;oBAC7B,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;oBAC5B,OAAO,MAAM,CAAA;gBACf,CAAC;gBAED,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,CAAA;gBACvD,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,CAAA;gBACzD,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAEjC,QAAQ,CAAC;oBACP,OAAO,EAAE,KAAK;oBACd,aAAa,EAAE,IAAI;oBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB,CAAC,CAAA;gBAEF,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;gBAC9B,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;gBAC/C,eAAe,EAAE,CAAA;gBAEjB,OAAO,MAAM,CAAA;YACf,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAA;gBACjE,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;gBACnC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;gBACnC,MAAM,GAAG,CAAA;YACX,CAAC;QACH,CAAC;QAED,KAAK,CAAC,MAAM;YACV,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;YAE3B,IAAI,CAAC;gBACH,uEAAuE;gBACvE,wEAAwE;gBACxE,0EAA0E;gBAC1E,qEAAqE;gBACrE,uEAAuE;gBACvE,kEAAkE;gBAClE,2EAA2E;gBAC3E,gEAAgE;gBAChE,wDAAwD;gBACxD,MAAM,KAAK,GAAG,YAAY,CAAC,cAAc,EAAE,CAAA;gBAC3C,IAAI,cAAc,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;oBACrD,MAAM,QAAQ,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAC9E,CAAC,GAAG,EAAE,EAAE;wBACN,MAAM,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAA;oBACjE,CAAC,CACF,CAAA;gBACH,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,IAAI,YAAY,EAAE,CAAC;oBACjB,YAAY,CAAC,YAAY,CAAC,CAAA;oBAC1B,YAAY,GAAG,IAAI,CAAA;gBACrB,CAAC;gBAED,YAAY,CAAC,KAAK,EAAE,CAAA;gBACpB,qEAAqE;gBACrE,qEAAqE;gBACrE,sEAAsE;gBACtE,sBAAsB,EAAE,CAAA;gBACxB,QAAQ,CAAC;oBACP,OAAO,EAAE,KAAK;oBACd,aAAa,EAAE,KAAK;oBACpB,IAAI,EAAE,IAAI;oBACV,mEAAmE;oBACnE,MAAM,EAAE,iBAAiB;iBAC1B,CAAC,CAAA;gBACF,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;gBAC/B,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;QAED,KAAK,CAAC,QAAQ,CAAC,IAA6B;YAC1C,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;YAExC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,SAAS,CACtB,MAAM,QAAQ,CAAU,gBAAgB,EAAE;oBACxC,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;iBAClD,CAAC,CACH,CAAA;gBAED,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,CAAA;gBACvD,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,CAAA;gBACzD,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAEjC,QAAQ,CAAC;oBACP,OAAO,EAAE,KAAK;oBACd,aAAa,EAAE,IAAI;oBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB,CAAC,CAAA;gBAEF,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;gBAClD,eAAe,EAAE,CAAA;gBAEjB,OAAO,MAAM,CAAA;YACf,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAA;gBACxE,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;gBACnC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;gBACnC,MAAM,GAAG,CAAA;YACX,CAAC;QACH,CAAC;QAED,KAAK,CAAC,OAAO;YACX,MAAM,YAAY,GAAG,YAAY,CAAC,eAAe,EAAE,CAAA;YACnD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,uEAAuE;gBACvE,0EAA0E;gBAC1E,uEAAuE;gBACvE,yEAAyE;gBACzE,wEAAwE;gBACxE,oEAAoE;gBACpE,oEAAoE;gBACpE,yDAAyD;gBACzD,MAAM,YAAY,GAAG,MAAM,wBAAwB,EAAE,CAAA;gBACrD,IAAI,YAAY,EAAE,CAAC;oBACjB,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;oBAC9B,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;gBAC/B,CAAC;gBACD,MAAM,IAAI,SAAS,CAAC,2BAA2B,EAAE,SAAS,EAAE,4BAA4B,CAAC,CAAA;YAC3F,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAgB,eAAe,EAAE;gBAC5D,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;aACvC,CAAC,CAAA;YAEF,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,CAAA;YACvD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;YACnD,CAAC;YACD,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAEjC,QAAQ,CAAC;gBACP,aAAa,EAAE,IAAI;gBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC,CAAA;YAEF,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;YAC9B,eAAe,EAAE,CAAA;YAEjB,OAAO,MAAM,CAAA;QACf,CAAC;QAED,KAAK,CAAC,oBAAoB,CAAC,IAA0B;YACnD,MAAM,QAAQ,CAAC,sBAAsB,EAAE;gBACrC,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3B,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,CAAC,oBAAoB,CAAC,IAA0B;YACnD,MAAM,QAAQ,CAAC,qBAAqB,EAAE;gBACpC,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3B,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,IAAgB;YAClC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAI,eAAe,EAAE;gBAChD,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3B,CAAC,CAAA;YAEF,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAC5B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;YAE1B,OAAO,MAAM,CAAA;QACf,CAAC;QAED,KAAK,CAAC,cAAc,CAAC,WAAmB,EAAE,WAAmB;YAC3D,gEAAgE;YAChE,gEAAgE;YAChE,+DAA+D;YAC/D,sDAAsD;YACtD,MAAM,QAAQ,CAAC,sBAAsB,EAAE;gBACrC,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;aACpE,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,CAAC,UAAU;YACd,8EAA8E;YAC9E,8EAA8E;YAC9E,4EAA4E;YAC5E,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAA;YACpC,eAAe,GAAG,QAAQ,CAAA;YAC1B,MAAM,QAAQ,CAAA;QAChB,CAAC;QAED,YAAY;YACV,kFAAkF;YAClF,mFAAmF;YACnF,oEAAoE;YACpE,OAAO,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;QACrF,CAAC;QAED,KAAK,CAAC,eAAe;YACnB,MAAM,KAAK,GAAG,YAAY,CAAC,cAAc,EAAE,CAAA;YAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,QAAQ,CAAC;oBACP,WAAW,EAAE,IAAI;oBACjB,aAAa,EAAE,KAAK;oBACpB,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE,iBAAiB;iBAC1B,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;YACD,IAAI,CAAC;gBACH,sEAAsE;gBACtE,0EAA0E;gBAC1E,0DAA0D;gBAC1D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAe,mBAAmB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;gBACnF,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,IAAI,YAAY,CAAC,OAAO,EAAK,CAAa,CAAA;gBACpE,IAAI,IAAI,EAAE,CAAC;oBACT,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;oBAC1B,QAAQ,CAAC;wBACP,WAAW,EAAE,IAAI;wBACjB,aAAa,EAAE,IAAI;wBACnB,IAAI;wBACJ,MAAM,EAAE,eAAe;wBACvB,KAAK,EAAE,IAAI;qBACZ,CAAC,CAAA;gBACJ,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,KAAK,EAAE,CAAA;oBACpB,QAAQ,CAAC;wBACP,WAAW,EAAE,IAAI;wBACjB,aAAa,EAAE,KAAK;wBACpB,IAAI,EAAE,IAAI;wBACV,MAAM,EAAE,iBAAiB;qBAC1B,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,UAAU,GAAI,KAA6B,CAAC,MAAM,CAAA;gBACxD,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,IAAI,GAAG,IAAI,UAAU,GAAG,GAAG,EAAE,CAAC;oBACtE,mEAAmE;oBACnE,gEAAgE;oBAChE,YAAY,CAAC,KAAK,EAAE,CAAA;oBACpB,QAAQ,CAAC;wBACP,WAAW,EAAE,IAAI;wBACjB,aAAa,EAAE,KAAK;wBACpB,IAAI,EAAE,IAAI;wBACV,MAAM,EAAE,iBAAiB;qBAC1B,CAAC,CAAA;oBACF,OAAM;gBACR,CAAC;gBACD,uEAAuE;gBACvE,yEAAyE;gBACzE,mCAAmC;gBACnC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gCAAgC,CAAA;gBACzF,QAAQ,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;YACrD,CAAC;QACH,CAAC;QAED,SAAS,CAAC,QAAuC;YAC/C,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC5B,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC9C,CAAC;QAED,YAAY,CAAC,QAAuC;YAClD,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC5B,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC9C,CAAC;QAED,QAAQ;YACN,OAAO,YAAY,CAAC,cAAc,EAAE,CAAA;QACtC,CAAC;QAED,gBAAgB,CAAC,QAA2B;YAC1C,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAC5B,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC9C,CAAC;QAED,OAAO;YACL,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,YAAY,CAAC,CAAA;gBAC1B,YAAY,GAAG,IAAI,CAAA;YACrB,CAAC;YACD,cAAc,CAAC,KAAK,EAAE,CAAA;YACtB,cAAc,CAAC,KAAK,EAAE,CAAA;QACxB,CAAC;KACF,CAAA;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -71,7 +71,11 @@
|
|
|
71
71
|
* `AuthClientConfig` the client is CONSTRUCTED with
|
|
72
72
|
* (`setClient(createJWTAuthClient({ authScheme: 'Token', … }))` in the auth bond), not
|
|
73
73
|
* properties of a client that already exists. Do not hand-write an auth client for a spec
|
|
74
|
-
* like RealWorld.
|
|
74
|
+
* like RealWorld. **Registration fields the base payload lacks (`username`, …) are the
|
|
75
|
+
* factory's second generic** — `createJWTAuthClient<UserProfile, { username: string }>(…)` —
|
|
76
|
+
* so `register({ username, email, password })` type-checks and the body goes out as
|
|
77
|
+
* `{ user: { username, email, password } }`. Do not pass them as `name`/`metadata` or
|
|
78
|
+
* cast the payload.
|
|
75
79
|
* - **Endpoint defaults must match your API's real routes** (`/auth/login`,
|
|
76
80
|
* `/auth/register`, `/auth/refresh`, `/users/logout`, `/users/me`, …).
|
|
77
81
|
* Align them via `createJWTAuthClient({ baseURL, ...endpoints })` — never by
|
|
@@ -93,6 +97,27 @@
|
|
|
93
97
|
* if (isAuthenticated()) console.log(getUser()?.email)
|
|
94
98
|
* ```
|
|
95
99
|
*
|
|
100
|
+
* An API that wraps the payload and registers extra fields (RealWorld): type those
|
|
101
|
+
* fields with the factory's second generic, and `requestBody` receives exactly what
|
|
102
|
+
* the form passed — `{ user: { username, email, password } }` goes out as-is.
|
|
103
|
+
*
|
|
104
|
+
* ```typescript
|
|
105
|
+
* import type { UserProfile } from '@molecule/app-auth'
|
|
106
|
+
* import { createJWTAuthClient } from '@molecule/app-auth'
|
|
107
|
+
*
|
|
108
|
+
* const realWorldAuth = createJWTAuthClient<UserProfile, { username: string }>({
|
|
109
|
+
* baseURL: '/api',
|
|
110
|
+
* authScheme: 'Token',
|
|
111
|
+
* requestBody: (_kind, payload) => ({ user: payload }),
|
|
112
|
+
* mapAuthResponse: (data) => {
|
|
113
|
+
* const { user } = data as { user: { token: string; username: string; email: string } }
|
|
114
|
+
* return { accessToken: user.token, user: { id: user.username, email: user.email } }
|
|
115
|
+
* },
|
|
116
|
+
* })
|
|
117
|
+
*
|
|
118
|
+
* await realWorldAuth.register({ username: 'alice', email: 'alice@example.com', password: 's3cret' })
|
|
119
|
+
* ```
|
|
120
|
+
*
|
|
96
121
|
* @e2e
|
|
97
122
|
* Integration checklist — drive the real UI (live preview, no mocks), adapt
|
|
98
123
|
* each item to this app's actual screens/flows, and check every box off one
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuKG;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
|
@@ -71,7 +71,11 @@
|
|
|
71
71
|
* `AuthClientConfig` the client is CONSTRUCTED with
|
|
72
72
|
* (`setClient(createJWTAuthClient({ authScheme: 'Token', … }))` in the auth bond), not
|
|
73
73
|
* properties of a client that already exists. Do not hand-write an auth client for a spec
|
|
74
|
-
* like RealWorld.
|
|
74
|
+
* like RealWorld. **Registration fields the base payload lacks (`username`, …) are the
|
|
75
|
+
* factory's second generic** — `createJWTAuthClient<UserProfile, { username: string }>(…)` —
|
|
76
|
+
* so `register({ username, email, password })` type-checks and the body goes out as
|
|
77
|
+
* `{ user: { username, email, password } }`. Do not pass them as `name`/`metadata` or
|
|
78
|
+
* cast the payload.
|
|
75
79
|
* - **Endpoint defaults must match your API's real routes** (`/auth/login`,
|
|
76
80
|
* `/auth/register`, `/auth/refresh`, `/users/logout`, `/users/me`, …).
|
|
77
81
|
* Align them via `createJWTAuthClient({ baseURL, ...endpoints })` — never by
|
|
@@ -93,6 +97,27 @@
|
|
|
93
97
|
* if (isAuthenticated()) console.log(getUser()?.email)
|
|
94
98
|
* ```
|
|
95
99
|
*
|
|
100
|
+
* An API that wraps the payload and registers extra fields (RealWorld): type those
|
|
101
|
+
* fields with the factory's second generic, and `requestBody` receives exactly what
|
|
102
|
+
* the form passed — `{ user: { username, email, password } }` goes out as-is.
|
|
103
|
+
*
|
|
104
|
+
* ```typescript
|
|
105
|
+
* import type { UserProfile } from '@molecule/app-auth'
|
|
106
|
+
* import { createJWTAuthClient } from '@molecule/app-auth'
|
|
107
|
+
*
|
|
108
|
+
* const realWorldAuth = createJWTAuthClient<UserProfile, { username: string }>({
|
|
109
|
+
* baseURL: '/api',
|
|
110
|
+
* authScheme: 'Token',
|
|
111
|
+
* requestBody: (_kind, payload) => ({ user: payload }),
|
|
112
|
+
* mapAuthResponse: (data) => {
|
|
113
|
+
* const { user } = data as { user: { token: string; username: string; email: string } }
|
|
114
|
+
* return { accessToken: user.token, user: { id: user.username, email: user.email } }
|
|
115
|
+
* },
|
|
116
|
+
* })
|
|
117
|
+
*
|
|
118
|
+
* await realWorldAuth.register({ username: 'alice', email: 'alice@example.com', password: 's3cret' })
|
|
119
|
+
* ```
|
|
120
|
+
*
|
|
96
121
|
* @e2e
|
|
97
122
|
* Integration checklist — drive the real UI (live preview, no mocks), adapt
|
|
98
123
|
* each item to this app's actual screens/flows, and check every box off one
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuKG;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/provider.d.ts
CHANGED
|
@@ -12,16 +12,22 @@ import type { AuthClient, UserProfile } from './types.js';
|
|
|
12
12
|
* Registers an auth client as the active singleton. Called by bond
|
|
13
13
|
* packages during application startup.
|
|
14
14
|
*
|
|
15
|
+
* @template T - The user profile the bonded client returns.
|
|
16
|
+
* @template TRegister - The app's own registration fields, at the top level
|
|
17
|
+
* of `register()` (see `RegisterData`).
|
|
15
18
|
* @param client - The auth client implementation to bond.
|
|
16
19
|
*/
|
|
17
|
-
export declare const setClient: (client: AuthClient) => void;
|
|
20
|
+
export declare const setClient: <T = UserProfile, TRegister extends Record<string, unknown> = Record<never, never>>(client: AuthClient<T, TRegister>) => void;
|
|
18
21
|
/**
|
|
19
22
|
* Retrieves the bonded auth client, throwing if none is configured.
|
|
20
23
|
*
|
|
24
|
+
* @template T - The user profile the bonded client returns.
|
|
25
|
+
* @template TRegister - The app's own registration fields, at the top level
|
|
26
|
+
* of `register()` (see `RegisterData`).
|
|
21
27
|
* @returns The bonded auth client.
|
|
22
28
|
* @throws {Error} If no auth client has been bonded.
|
|
23
29
|
*/
|
|
24
|
-
export declare const getClient: <T extends UserProfile = UserProfile>() => AuthClient<T>;
|
|
30
|
+
export declare const getClient: <T extends UserProfile = UserProfile, TRegister extends Record<string, unknown> = Record<never, never>>() => AuthClient<T, TRegister>;
|
|
25
31
|
/**
|
|
26
32
|
* Checks whether an auth client is currently bonded.
|
|
27
33
|
*
|
package/dist/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAIzD
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAIzD;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,GACpB,CAAC,GAAG,WAAW,EACf,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EAEhE,QAAQ,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,KAC/B,IAEF,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,GACpB,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,OAC7D,UAAU,CAAC,CAAC,EAAE,SAAS,CAE3B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,QAAO,OAE5B,CAAA"}
|
package/dist/provider.js
CHANGED
|
@@ -13,6 +13,9 @@ const BOND_TYPE = 'auth-client';
|
|
|
13
13
|
* Registers an auth client as the active singleton. Called by bond
|
|
14
14
|
* packages during application startup.
|
|
15
15
|
*
|
|
16
|
+
* @template T - The user profile the bonded client returns.
|
|
17
|
+
* @template TRegister - The app's own registration fields, at the top level
|
|
18
|
+
* of `register()` (see `RegisterData`).
|
|
16
19
|
* @param client - The auth client implementation to bond.
|
|
17
20
|
*/
|
|
18
21
|
export const setClient = (client) => {
|
|
@@ -21,6 +24,9 @@ export const setClient = (client) => {
|
|
|
21
24
|
/**
|
|
22
25
|
* Retrieves the bonded auth client, throwing if none is configured.
|
|
23
26
|
*
|
|
27
|
+
* @template T - The user profile the bonded client returns.
|
|
28
|
+
* @template TRegister - The app's own registration fields, at the top level
|
|
29
|
+
* of `register()` (see `RegisterData`).
|
|
24
30
|
* @returns The bonded auth client.
|
|
25
31
|
* @throws {Error} If no auth client has been bonded.
|
|
26
32
|
*/
|
package/dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAI3E,MAAM,SAAS,GAAG,aAAa,CAAA;AAE/B
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAI3E,MAAM,SAAS,GAAG,aAAa,CAAA;AAE/B;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAIvB,MAAgC,EAC1B,EAAE;IACR,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AACzB,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAGK,EAAE;IAC9B,OAAO,WAAW,CAA2B,SAAS,CAAC,CAAA;AACzD,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAAY,EAAE;IACrC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAA;AAC5B,CAAC,CAAA"}
|
package/dist/types.d.ts
CHANGED
|
@@ -57,9 +57,27 @@ export interface LoginCredentials {
|
|
|
57
57
|
twoFactorToken?: string;
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
60
|
-
* New user registration payload
|
|
60
|
+
* New user registration payload: the email/password fields every API takes,
|
|
61
|
+
* plus `TExtra` — the app's OWN registration fields, at the top level.
|
|
62
|
+
*
|
|
63
|
+
* `TExtra` is what the app's sign-up form collects and its API expects
|
|
64
|
+
* (`username`, `fullName`, …). Give the client the same type and the typed call
|
|
65
|
+
* passes those fields straight through, so
|
|
66
|
+
* {@link AuthClientConfig.requestBody} receives exactly what the form passed —
|
|
67
|
+
* no cast, and no stuffing them into `name` or `metadata`:
|
|
68
|
+
*
|
|
69
|
+
* ```typescript
|
|
70
|
+
* const client = createJWTAuthClient<UserProfile, { username: string }>({ … })
|
|
71
|
+
* await client.register({ email, password, username }) // `username` is typed
|
|
72
|
+
* ```
|
|
73
|
+
*
|
|
74
|
+
* `TExtra` defaults to no extra fields, so an app that passes `name`/`metadata`
|
|
75
|
+
* (and a `requestBody` that reads them) keeps type-checking unchanged; only a
|
|
76
|
+
* client constructed with a second generic accepts (and types) more fields.
|
|
77
|
+
*
|
|
78
|
+
* @template TExtra - The app's own registration fields, at the top level.
|
|
61
79
|
*/
|
|
62
|
-
export
|
|
80
|
+
export type RegisterData<TExtra extends Record<string, unknown> = Record<never, never>> = {
|
|
63
81
|
/**
|
|
64
82
|
* Email address.
|
|
65
83
|
*/
|
|
@@ -76,7 +94,7 @@ export interface RegisterData {
|
|
|
76
94
|
* Additional registration fields.
|
|
77
95
|
*/
|
|
78
96
|
metadata?: Record<string, unknown>;
|
|
79
|
-
}
|
|
97
|
+
} & TExtra;
|
|
80
98
|
/**
|
|
81
99
|
* Successful authentication result containing the user, access/refresh tokens, and expiration.
|
|
82
100
|
*/
|
|
@@ -196,8 +214,12 @@ export type AuthEventListener = (event: AuthEvent) => void;
|
|
|
196
214
|
* Auth client interface that all auth bond packages must implement.
|
|
197
215
|
* Provides login/logout/register flows, token management, profile
|
|
198
216
|
* updates, and auth state subscription.
|
|
217
|
+
*
|
|
218
|
+
* @template T - The user profile the API returns.
|
|
219
|
+
* @template TRegister - The app's own registration fields, at the top level
|
|
220
|
+
* of {@link RegisterData} (default: none).
|
|
199
221
|
*/
|
|
200
|
-
export interface AuthClient<T = UserProfile> {
|
|
222
|
+
export interface AuthClient<T = UserProfile, TRegister extends Record<string, unknown> = Record<never, never>> {
|
|
201
223
|
/**
|
|
202
224
|
* Returns the current authentication state snapshot.
|
|
203
225
|
*/
|
|
@@ -242,9 +264,10 @@ export interface AuthClient<T = UserProfile> {
|
|
|
242
264
|
*/
|
|
243
265
|
logout(): Promise<void>;
|
|
244
266
|
/**
|
|
245
|
-
* Registers a new user.
|
|
267
|
+
* Registers a new user. Accepts the base fields plus the app's own fields
|
|
268
|
+
* (`TRegister`) at the top level — see {@link RegisterData}.
|
|
246
269
|
*/
|
|
247
|
-
register(data: RegisterData): Promise<AuthResult<T>>;
|
|
270
|
+
register(data: RegisterData<TRegister>): Promise<AuthResult<T>>;
|
|
248
271
|
/**
|
|
249
272
|
* Refreshes the access token.
|
|
250
273
|
*/
|
|
@@ -400,8 +423,26 @@ export interface AuthClientConfig {
|
|
|
400
423
|
authScheme?: string;
|
|
401
424
|
/**
|
|
402
425
|
* Shape the login/register request body for an API that expects another
|
|
403
|
-
* envelope (default: the
|
|
404
|
-
*
|
|
426
|
+
* envelope (default: the payload as given). `register()` hands this callback
|
|
427
|
+
* exactly what the caller passed — including the app's own fields, typed
|
|
428
|
+
* through `createJWTAuthClient<UserProfile, { username: string }>` — so the
|
|
429
|
+
* body can be sent as-is under the envelope the API wants.
|
|
430
|
+
*
|
|
431
|
+
* RealWorld, for example, nests the payload under `user` and registers with
|
|
432
|
+
* `{ user: { username, email, password } }`:
|
|
433
|
+
*
|
|
434
|
+
* ```typescript
|
|
435
|
+
* const client = createJWTAuthClient<UserProfile, { username: string }>({
|
|
436
|
+
* requestBody: (kind, payload) => ({ user: payload }),
|
|
437
|
+
* // …
|
|
438
|
+
* })
|
|
439
|
+
* await client.register({ username, email, password })
|
|
440
|
+
* ```
|
|
441
|
+
*
|
|
442
|
+
* A caller that keeps the untyped payload can map the base fields instead:
|
|
443
|
+
* `(kind, p) => ({ user: { username: p.name, email: p.email, password: p.password } })`
|
|
444
|
+
* with `register({ email, password, name: username })`.
|
|
445
|
+
*
|
|
405
446
|
* @param kind - Which request.
|
|
406
447
|
* @param payload - The credentials or registration data.
|
|
407
448
|
* @returns The JSON body to send.
|
|
@@ -419,16 +460,25 @@ export interface AuthClientConfig {
|
|
|
419
460
|
* Where the access/refresh token and the cached user are kept — the field that
|
|
420
461
|
* decides whether a page reload keeps the user signed in.
|
|
421
462
|
*
|
|
422
|
-
* - `'memory'`
|
|
423
|
-
*
|
|
424
|
-
*
|
|
425
|
-
*
|
|
426
|
-
*
|
|
427
|
-
*
|
|
428
|
-
*
|
|
429
|
-
*
|
|
430
|
-
*
|
|
431
|
-
*
|
|
463
|
+
* **In-memory is the secure default.** `'memory'` is a process-local store, lost
|
|
464
|
+
* on reload. It is correct when the API sets an httpOnly session cookie, which
|
|
465
|
+
* `initialize()` then restores through {@link AuthClientConfig.currentUserEndpoint}
|
|
466
|
+
* — the strongest configuration, because no script can read the cookie.
|
|
467
|
+
*
|
|
468
|
+
* **An app whose external contract requires a token in storage opts in
|
|
469
|
+
* EXPLICITLY, with these two fields together.** A supplied e2e suite (the
|
|
470
|
+
* RealWorld specs read `localStorage.jwtToken` in `SELECTORS.md`), a host page
|
|
471
|
+
* or a second library can require the token at its own key: then set
|
|
472
|
+
* `storage: createBrowserStorageAdapter()` and `tokenKey: 'jwtToken'`, and the
|
|
473
|
+
* session (token AND user) is restored synchronously in `initialize()` — with no
|
|
474
|
+
* store of your own. `tokenKey` places the access token at that exact key; the
|
|
475
|
+
* refresh token and the cached user keep `storagePrefix`.
|
|
476
|
+
*
|
|
477
|
+
* A bearer token in Web Storage is readable by any script on the origin, so an
|
|
478
|
+
* XSS can steal it; see {@link createBrowserStorageAdapter}'s `@remarks` for the
|
|
479
|
+
* trade and for the cookie alternative. Never answer a suite's storage key with a
|
|
480
|
+
* second store or a restore script beside this client — that races the client's
|
|
481
|
+
* own restore, and either side's 401 signs the user out for good.
|
|
432
482
|
*
|
|
433
483
|
* Any adapter with `getItem`/`setItem`/`removeItem` works — the methods are
|
|
434
484
|
* SYNCHRONOUS, so the async `@molecule/app-storage` provider
|
|
@@ -440,7 +490,10 @@ export interface AuthClientConfig {
|
|
|
440
490
|
* ```typescript
|
|
441
491
|
* import { createBrowserStorageAdapter } from '@molecule/app-auth'
|
|
442
492
|
*
|
|
443
|
-
* // A
|
|
493
|
+
* // A suite/host page reads the token at its own key — the opt-in:
|
|
494
|
+
* storage: createBrowserStorageAdapter()
|
|
495
|
+
* tokenKey: 'jwtToken'
|
|
496
|
+
* // A reload keeps the session at this client's own keys:
|
|
444
497
|
* storage: createBrowserStorageAdapter()
|
|
445
498
|
* // Only this tab's lifetime, at a narrower exposure than localStorage:
|
|
446
499
|
* storage: createBrowserStorageAdapter({ kind: 'session' })
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAA;IAEV;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,YAAY,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI;IACxF;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC,GAAG,MAAM,CAAA;AAEV;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,WAAW;IACzC;;OAEG;IACH,IAAI,EAAE,CAAC,CAAA;IAEP;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,eAAe,GAAG,iBAAiB,GAAG,aAAa,CAAA;AAExF;;GAEG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,WAAW;IACxC;;;OAGG;IACH,MAAM,EAAE,UAAU,CAAA;IAElB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAA;IAEpB;;OAEG;IACH,aAAa,EAAE,OAAO,CAAA;IAEtB;;OAEG;IACH,IAAI,EAAE,CAAC,GAAG,IAAI,CAAA;IAEd;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAEhB;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpC;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;AAE1D;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU,CACzB,CAAC,GAAG,WAAW,EACf,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;IAEhE;;OAEG;IACH,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,CAAA;IAExB;;OAEG;IACH,eAAe,IAAI,OAAO,CAAA;IAE1B;;OAEG;IACH,OAAO,IAAI,CAAC,GAAG,IAAI,CAAA;IAEnB;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;IAE7B;;OAEG;IACH,cAAc,IAAI,MAAM,GAAG,IAAI,CAAA;IAE/B;;;;;;OAMG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;IAE1C;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI,CAAA;IAEhC;;OAEG;IACH,KAAK,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IAE5D;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEvB;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IAE/D;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IAEjC;;OAEG;IACH,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/D;;OAEG;IACH,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE/D;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAE3C;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEvE;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAE3B;;;;;;;;;;;;;;;;;;OAkBG;IACH,eAAe,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEjC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAE9B;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IAE9D;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;IAEjE;;OAEG;IACH,QAAQ,CAAC,IAAI,MAAM,GAAG,IAAI,CAAA;IAE1B;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,IAAI,CAAA;IAEzD;;OAEG;IACH,OAAO,IAAI,IAAI,CAAA;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACnC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACzC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IAEvB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAEzB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IAExB;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAE5B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAA;IAEvF;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,UAAU,CAAC,WAAW,CAAC,CAAA;IAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,OAAO,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAA;IAEnC;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAA;IAElD;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAE/B;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAE9B;;OAEG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAE/B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IAEzB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,cAAc,IAAI,MAAM,GAAG,IAAI,CAAA;IAC/B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;IAC1C,eAAe,IAAI,MAAM,GAAG,IAAI,CAAA;IAChC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;IAC3C,OAAO,CAAC,CAAC,GAAG,WAAW,KAAK,CAAC,GAAG,IAAI,CAAA;IACpC,OAAO,CAAC,CAAC,GAAG,WAAW,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;IAC9C,KAAK,IAAI,IAAI,CAAA;CACd"}
|
package/dist/utilities.d.ts
CHANGED
|
@@ -32,8 +32,10 @@ export declare const logout: () => Promise<void>;
|
|
|
32
32
|
/**
|
|
33
33
|
* Registers a new user account.
|
|
34
34
|
*
|
|
35
|
-
* @
|
|
35
|
+
* @template TExtra - The app's own registration fields, at the top level
|
|
36
|
+
* (`{ username: string }` for a RealWorld-shaped API); defaults to none.
|
|
37
|
+
* @param data - Registration data (email, password, and any `TExtra` fields).
|
|
36
38
|
* @returns The auth result containing tokens and user profile.
|
|
37
39
|
*/
|
|
38
|
-
export declare const register: (data: RegisterData) => Promise<AuthResult>;
|
|
40
|
+
export declare const register: <TExtra extends Record<string, unknown> = Record<never, never>>(data: RegisterData<TExtra>) => Promise<AuthResult>;
|
|
39
41
|
//# sourceMappingURL=utilities.d.ts.map
|
package/dist/utilities.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEzF;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAAO,OAAwC,CAAA;AAE3E;;;GAGG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,WAAW,GAAG,WAAW,OAAK,CAAC,GAAG,IAAgC,CAAA;AAEpG;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,aAAa,gBAAgB,KAAG,OAAO,CAAC,UAAU,CACxC,CAAA;AAEhC;;;GAGG;AACH,eAAO,MAAM,MAAM,QAAO,OAAO,CAAC,IAAI,CAAyB,CAAA;AAE/D
|
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEzF;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAAO,OAAwC,CAAA;AAE3E;;;GAGG;AACH,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,WAAW,GAAG,WAAW,OAAK,CAAC,GAAG,IAAgC,CAAA;AAEpG;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,aAAa,gBAAgB,KAAG,OAAO,CAAC,UAAU,CACxC,CAAA;AAEhC;;;GAGG;AACH,eAAO,MAAM,MAAM,QAAO,OAAO,CAAC,IAAI,CAAyB,CAAA;AAE/D;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EACpF,MAAM,YAAY,CAAC,MAAM,CAAC,KACzB,OAAO,CAAC,UAAU,CAAoD,CAAA"}
|
package/dist/utilities.js
CHANGED
|
@@ -32,7 +32,9 @@ export const logout = () => getClient().logout();
|
|
|
32
32
|
/**
|
|
33
33
|
* Registers a new user account.
|
|
34
34
|
*
|
|
35
|
-
* @
|
|
35
|
+
* @template TExtra - The app's own registration fields, at the top level
|
|
36
|
+
* (`{ username: string }` for a RealWorld-shaped API); defaults to none.
|
|
37
|
+
* @param data - Registration data (email, password, and any `TExtra` fields).
|
|
36
38
|
* @returns The auth result containing tokens and user profile.
|
|
37
39
|
*/
|
|
38
40
|
export const register = (data) => getClient().register(data);
|
package/dist/utilities.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAGzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAY,EAAE,CAAC,SAAS,EAAE,CAAC,eAAe,EAAE,CAAA;AAE3E;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAkD,EAAE,CAAC,SAAS,EAAK,CAAC,OAAO,EAAE,CAAA;AAEpG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,WAA6B,EAAuB,EAAE,CAC1E,SAAS,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;AAEhC;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAkB,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,CAAA;AAE/D
|
|
1
|
+
{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../src/utilities.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAGzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAY,EAAE,CAAC,SAAS,EAAE,CAAC,eAAe,EAAE,CAAA;AAE3E;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAkD,EAAE,CAAC,SAAS,EAAK,CAAC,OAAO,EAAE,CAAA;AAEpG;;;;;GAKG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,WAA6B,EAAuB,EAAE,CAC1E,SAAS,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;AAEhC;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAkB,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,CAAA;AAE/D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,IAA0B,EACL,EAAE,CAAC,SAAS,EAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@molecule/app-auth",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Client-side authentication interface for molecule.dev",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"@molecule/app-logger": "^1.0.1"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@molecule/app-bond": "1.0.
|
|
36
|
+
"@molecule/app-bond": "1.0.3",
|
|
37
37
|
"@molecule/app-i18n": "1.0.3",
|
|
38
38
|
"@molecule/app-logger": "1.0.2",
|
|
39
39
|
"@types/node": "26.1.2",
|