@molecule/app-solid 1.0.3 → 1.0.5
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 +36 -20
- package/dist/context.d.ts +6 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +4 -0
- package/dist/context.js.map +1 -1
- package/dist/primitives/auth.d.ts +5 -5
- package/dist/primitives/auth.d.ts.map +1 -1
- package/dist/primitives/auth.js.map +1 -1
- package/dist/types.d.ts +8 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -5
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-23T15:23:11.674Z
|
|
7
7
|
-->
|
|
8
8
|
|
|
9
9
|
# @molecule/app-solid
|
|
@@ -110,7 +110,7 @@ Provides login/logout/register flows, token management, profile
|
|
|
110
110
|
updates, and auth state subscription.
|
|
111
111
|
|
|
112
112
|
```typescript
|
|
113
|
-
interface AuthClient<T = UserProfile, TRegister extends
|
|
113
|
+
interface AuthClient<T = UserProfile, TRegister extends RegisterExtraShape<TRegister> = Record<never, never>> {
|
|
114
114
|
/**
|
|
115
115
|
* Returns the current authentication state snapshot.
|
|
116
116
|
*
|
|
@@ -130,6 +130,15 @@ interface AuthClient<T = UserProfile, TRegister extends Record<string, unknown>
|
|
|
130
130
|
* Gets the current user.
|
|
131
131
|
*/
|
|
132
132
|
getUser(): T | null;
|
|
133
|
+
/**
|
|
134
|
+
* Optional ownership marker for the current session. Compare values only within
|
|
135
|
+
* this client: replacing or ending a session changes it, including re-adopting
|
|
136
|
+
* the same token and user. Profile updates and same-session refreshes keep it.
|
|
137
|
+
* Consumers can use it to discard stale async work without treating editable
|
|
138
|
+
* user fields as an immutable account identifier. Providers without this
|
|
139
|
+
* capability require the consumer's own stable identity check.
|
|
140
|
+
*/
|
|
141
|
+
getSessionRevision?(): number;
|
|
133
142
|
/**
|
|
134
143
|
* Updates the cached user object (state + persistent storage) without
|
|
135
144
|
* hitting the network. Intended for local refreshes after a per-app
|
|
@@ -204,6 +213,9 @@ interface AuthClient<T = UserProfile, TRegister extends Record<string, unknown>
|
|
|
204
213
|
confirmPasswordReset(data: PasswordResetConfirm): Promise<void>;
|
|
205
214
|
/**
|
|
206
215
|
* Updates the current user's profile.
|
|
216
|
+
* Returns the saved response. If the session is explicitly replaced or ended
|
|
217
|
+
* while the request is pending, that response does not replace the current
|
|
218
|
+
* session's user or persisted cache.
|
|
207
219
|
*/
|
|
208
220
|
updateProfile(data: Partial<T>): Promise<T>;
|
|
209
221
|
/**
|
|
@@ -262,16 +274,6 @@ interface AuthClient<T = UserProfile, TRegister extends Record<string, unknown>
|
|
|
262
274
|
* Resolves IMMEDIATELY when no restore is in flight: before `initialize()` is ever
|
|
263
275
|
* called, and after it has finished. A restore that failed resolves too (it settled the
|
|
264
276
|
* question), so an HTTP client can await this before every request without risking one
|
|
265
|
-
* held forever. That is what makes the fetch-before-restore race impossible: a page that
|
|
266
|
-
* fetches viewer-dependent data on mount waits here instead of going out anonymously
|
|
267
|
-
* (see `setAuthGate` in `@molecule/app-http`).
|
|
268
|
-
*
|
|
269
|
-
* Optional: a provider that restores no session has nothing to wait for. Without it, an
|
|
270
|
-
* HTTP client bonded to that provider sends first-paint requests unauthenticated.
|
|
271
|
-
*
|
|
272
|
-
* A provider whose restore sends a request THROUGH the gated HTTP client must send that
|
|
273
|
-
* request with `skipAuthGate: true` (`RequestConfig` in `@molecule/app-http`): the gate
|
|
274
|
-
* waits on this promise, so holding the restore's own request makes the gate wait on
|
|
275
277
|
// … truncated — the full declaration is in node_modules/@molecule/app-solid/dist
|
|
276
278
|
```
|
|
277
279
|
|
|
@@ -354,7 +356,13 @@ interface FormController<T extends Record<string, unknown> = Record<string, unkn
|
|
|
354
356
|
*/
|
|
355
357
|
validate(): Promise<boolean>
|
|
356
358
|
/**
|
|
357
|
-
* Resets the form
|
|
359
|
+
* Resets the form and clears errors, touched fields and submission state.
|
|
360
|
+
*
|
|
361
|
+
* With no argument it restores the current baseline — the initial
|
|
362
|
+
* `defaultValues`, or the values a previous `reset(values)` established.
|
|
363
|
+
* Passing `values` merges them over the current baseline and makes the
|
|
364
|
+
* result the new baseline, so a form reset to freshly loaded or saved data
|
|
365
|
+
* reads clean (`isDirty === false`).
|
|
358
366
|
*/
|
|
359
367
|
reset(values?: Partial<T>): void
|
|
360
368
|
/**
|
|
@@ -386,7 +394,8 @@ Form creation options.
|
|
|
386
394
|
```typescript
|
|
387
395
|
interface FormOptions<T extends Record<string, unknown>> {
|
|
388
396
|
/**
|
|
389
|
-
* Default values
|
|
397
|
+
* Default values, captured as the form's clean baseline when the controller
|
|
398
|
+
* is created. Mutating this object afterwards does not change the baseline.
|
|
390
399
|
*/
|
|
391
400
|
defaultValues?: Partial<T>
|
|
392
401
|
/**
|
|
@@ -1372,14 +1381,17 @@ interface StorageValueState<T> {
|
|
|
1372
1381
|
Auth primitives return type.
|
|
1373
1382
|
|
|
1374
1383
|
```typescript
|
|
1375
|
-
interface AuthPrimitives<
|
|
1384
|
+
interface AuthPrimitives<
|
|
1385
|
+
T = unknown,
|
|
1386
|
+
TRegister extends RegisterExtraShape<TRegister> = Record<never, never>,
|
|
1387
|
+
> {
|
|
1376
1388
|
state: Accessor<AuthState<T>>
|
|
1377
1389
|
user: Accessor<T | null>
|
|
1378
1390
|
isAuthenticated: Accessor<boolean>
|
|
1379
1391
|
isLoading: Accessor<boolean>
|
|
1380
1392
|
login: AuthClient<T>['login']
|
|
1381
1393
|
logout: AuthClient<T>['logout']
|
|
1382
|
-
register: AuthClient<T>['register']
|
|
1394
|
+
register: AuthClient<T, TRegister>['register']
|
|
1383
1395
|
refresh: AuthClient<T>['refresh']
|
|
1384
1396
|
}
|
|
1385
1397
|
```
|
|
@@ -1468,8 +1480,12 @@ function getStateProvider(): StateProvider
|
|
|
1468
1480
|
|
|
1469
1481
|
Get the auth client from context.
|
|
1470
1482
|
|
|
1483
|
+
Pass the same generics the client was created with —
|
|
1484
|
+
`getAuthClient<MyUser, { username: string }>()` — so `register()` accepts
|
|
1485
|
+
the app's own fields.
|
|
1486
|
+
|
|
1471
1487
|
```typescript
|
|
1472
|
-
function getAuthClient(): AuthClient<T,
|
|
1488
|
+
function getAuthClient(): AuthClient<T, TRegister>
|
|
1473
1489
|
```
|
|
1474
1490
|
|
|
1475
1491
|
**Returns:** The auth client instance.
|
|
@@ -1551,7 +1567,7 @@ function createAsyncState(initialState: T): CreateAsyncStateReturn<T>
|
|
|
1551
1567
|
Create auth primitives for authentication state and actions.
|
|
1552
1568
|
|
|
1553
1569
|
```typescript
|
|
1554
|
-
function createAuth(): AuthPrimitives<T>
|
|
1570
|
+
function createAuth(): AuthPrimitives<T, TRegister>
|
|
1555
1571
|
```
|
|
1556
1572
|
|
|
1557
1573
|
**Returns:** Auth primitives object
|
|
@@ -1576,7 +1592,7 @@ Creates a auth helpers.
|
|
|
1576
1592
|
function createAuthHelpers(): {
|
|
1577
1593
|
login: (credentials: LoginCredentials) => Promise<AuthResult<T>>
|
|
1578
1594
|
logout: () => Promise<void>
|
|
1579
|
-
register: (data: RegisterData) => Promise<AuthResult<T>>
|
|
1595
|
+
register: (data: RegisterData<TRegister>) => Promise<AuthResult<T>>
|
|
1580
1596
|
refresh: () => Promise<AuthResult<T>>
|
|
1581
1597
|
getUser: () => T | null
|
|
1582
1598
|
getToken: () => string | null
|
|
@@ -1591,7 +1607,7 @@ function createAuthHelpers(): {
|
|
|
1591
1607
|
Create auth primitives from a specific client.
|
|
1592
1608
|
|
|
1593
1609
|
```typescript
|
|
1594
|
-
function createAuthFromClient(client: AuthClient<T,
|
|
1610
|
+
function createAuthFromClient(client: AuthClient<T, TRegister>): AuthPrimitives<T, TRegister>
|
|
1595
1611
|
```
|
|
1596
1612
|
|
|
1597
1613
|
- `client` — Auth client
|
package/dist/context.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
|
-
import type { AuthClient } from '@molecule/app-auth';
|
|
6
|
+
import type { AuthClient, RegisterExtraShape } from '@molecule/app-auth';
|
|
7
7
|
import type { HttpClient } from '@molecule/app-http';
|
|
8
8
|
import type { I18nProvider } from '@molecule/app-i18n';
|
|
9
9
|
import type { LoggerProvider } from '@molecule/app-logger';
|
|
@@ -32,10 +32,14 @@ export declare function getStateProvider(): StateProvider;
|
|
|
32
32
|
/**
|
|
33
33
|
* Get the auth client from context.
|
|
34
34
|
*
|
|
35
|
+
* Pass the same generics the client was created with —
|
|
36
|
+
* `getAuthClient<MyUser, { username: string }>()` — so `register()` accepts
|
|
37
|
+
* the app's own fields.
|
|
38
|
+
*
|
|
35
39
|
* @returns The auth client instance.
|
|
36
40
|
* @throws {Error} If used outside MoleculeProvider.
|
|
37
41
|
*/
|
|
38
|
-
export declare function getAuthClient<T = unknown>(): AuthClient<T>;
|
|
42
|
+
export declare function getAuthClient<T = unknown, TRegister extends RegisterExtraShape<TRegister> = Record<never, never>>(): AuthClient<T, TRegister>;
|
|
39
43
|
/**
|
|
40
44
|
* Get the theme provider from context.
|
|
41
45
|
*
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAExD;;GAEG;AACH,QAAA,MAAM,YAAY,uDAAiC,CAAA;AACnD,QAAA,MAAM,WAAW,mFAAuC,CAAA;AACxD,QAAA,MAAM,YAAY,uDAAiC,CAAA;AACnD,QAAA,MAAM,aAAa,gDAA0B,CAAA;AAC7C,QAAA,MAAM,WAAW,sDAAgC,CAAA;AACjD,QAAA,MAAM,WAAW,oDAA8B,CAAA;AAC/C,QAAA,MAAM,cAAc,yDAAmC,CAAA;AACvD,QAAA,MAAM,aAAa,wDAAkC,CAAA;AAErD;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAWhD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,CAAC,GAAG,OAAO,EACX,SAAS,SAAS,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KACnE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAU5B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAWhD;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAUlC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAU9C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,UAAU,CAU1C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,CAWpD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAWlD;AAGD,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,EACb,aAAa,EACb,YAAY,EACZ,cAAc,EACd,YAAY,GACb,CAAA"}
|
package/dist/context.js
CHANGED
|
@@ -34,6 +34,10 @@ export function getStateProvider() {
|
|
|
34
34
|
/**
|
|
35
35
|
* Get the auth client from context.
|
|
36
36
|
*
|
|
37
|
+
* Pass the same generics the client was created with —
|
|
38
|
+
* `getAuthClient<MyUser, { username: string }>()` — so `register()` accepts
|
|
39
|
+
* the app's own fields.
|
|
40
|
+
*
|
|
37
41
|
* @returns The auth client instance.
|
|
38
42
|
* @throws {Error} If used outside MoleculeProvider.
|
|
39
43
|
*/
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAKpD,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAA;AAOtC;;GAEG;AACH,MAAM,YAAY,GAAG,aAAa,EAAiB,CAAA;AACnD,MAAM,WAAW,GAAG,aAAa,EAAuB,CAAA;AACxD,MAAM,YAAY,GAAG,aAAa,EAAiB,CAAA;AACnD,MAAM,aAAa,GAAG,aAAa,EAAU,CAAA;AAC7C,MAAM,WAAW,GAAG,aAAa,EAAgB,CAAA;AACjD,MAAM,WAAW,GAAG,aAAa,EAAc,CAAA;AAC/C,MAAM,cAAc,GAAG,aAAa,EAAmB,CAAA;AACvD,MAAM,aAAa,GAAG,aAAa,EAAkB,CAAA;AAErD;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,CAAA;IACpC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,CAAC,CAAC,kCAAkC,EAAE,SAAS,EAAE;YAC/C,YAAY,EACV,+EAA+E;SAClF,CAAC,CACH,CAAA;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
6
|
import { type Accessor } from 'solid-js';
|
|
7
|
-
import type { AuthClient, AuthResult, LoginCredentials, RegisterData } from '@molecule/app-auth';
|
|
7
|
+
import type { AuthClient, AuthResult, LoginCredentials, RegisterData, RegisterExtraShape } from '@molecule/app-auth';
|
|
8
8
|
import type { AuthPrimitives } from '../types.js';
|
|
9
9
|
/**
|
|
10
10
|
* Create auth primitives for authentication state and actions.
|
|
@@ -36,7 +36,7 @@ import type { AuthPrimitives } from '../types.js';
|
|
|
36
36
|
* }
|
|
37
37
|
* ```
|
|
38
38
|
*/
|
|
39
|
-
export declare function createAuth<T = unknown>(): AuthPrimitives<T>;
|
|
39
|
+
export declare function createAuth<T = unknown, TRegister extends RegisterExtraShape<TRegister> = Record<never, never>>(): AuthPrimitives<T, TRegister>;
|
|
40
40
|
/**
|
|
41
41
|
* Create a guard primitive that redirects unauthenticated users.
|
|
42
42
|
*
|
|
@@ -66,10 +66,10 @@ export declare function createAuthGuard(redirectTo: string): Accessor<boolean>;
|
|
|
66
66
|
* Creates a auth helpers.
|
|
67
67
|
* @returns The created result.
|
|
68
68
|
*/
|
|
69
|
-
export declare function createAuthHelpers<T = unknown>(): {
|
|
69
|
+
export declare function createAuthHelpers<T = unknown, TRegister extends RegisterExtraShape<TRegister> = Record<never, never>>(): {
|
|
70
70
|
login: (credentials: LoginCredentials) => Promise<AuthResult<T>>;
|
|
71
71
|
logout: () => Promise<void>;
|
|
72
|
-
register: (data: RegisterData) => Promise<AuthResult<T>>;
|
|
72
|
+
register: (data: RegisterData<TRegister>) => Promise<AuthResult<T>>;
|
|
73
73
|
refresh: () => Promise<AuthResult<T>>;
|
|
74
74
|
getUser: () => T | null;
|
|
75
75
|
getToken: () => string | null;
|
|
@@ -81,5 +81,5 @@ export declare function createAuthHelpers<T = unknown>(): {
|
|
|
81
81
|
* @param client - Auth client
|
|
82
82
|
* @returns Auth primitives
|
|
83
83
|
*/
|
|
84
|
-
export declare function createAuthFromClient<T = unknown>(client: AuthClient<T>): AuthPrimitives<T>;
|
|
84
|
+
export declare function createAuthFromClient<T = unknown, TRegister extends RegisterExtraShape<TRegister> = Record<never, never>>(client: AuthClient<T, TRegister>): AuthPrimitives<T, TRegister>;
|
|
85
85
|
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/primitives/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,QAAQ,EAAyC,MAAM,UAAU,CAAA;AAE/E,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EAEV,gBAAgB,EAChB,YAAY,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/primitives/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,QAAQ,EAAyC,MAAM,UAAU,CAAA;AAE/E,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EAEV,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EACnB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,UAAU,CACxB,CAAC,GAAG,OAAO,EACX,SAAS,SAAS,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KACnE,cAAc,CAAC,CAAC,EAAE,SAAS,CAAC,CAmChC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAUrE;AAED;;;;GAIG;AAEH;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,GAAG,OAAO,EACX,SAAS,SAAS,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,KACnE;IACH,KAAK,EAAE,CAAC,WAAW,EAAE,gBAAgB,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IAChE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IACnE,OAAO,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IACrC,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI,CAAA;IACvB,QAAQ,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;IAC7B,eAAe,EAAE,MAAM,OAAO,CAAA;CAC/B,CAYA;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,CAAC,GAAG,OAAO,EACX,SAAS,SAAS,kBAAkB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EACtE,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,cAAc,CAAC,CAAC,EAAE,SAAS,CAAC,CA2BhE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/primitives/auth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAiB,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/primitives/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
6
|
import type { Accessor, Setter } from 'solid-js';
|
|
7
|
-
import type { AuthClient, AuthState } from '@molecule/app-auth';
|
|
7
|
+
import type { AuthClient, AuthState, RegisterExtraShape } from '@molecule/app-auth';
|
|
8
8
|
import type { FormController, FormOptions } from '@molecule/app-forms';
|
|
9
9
|
import type { HttpClient } from '@molecule/app-http';
|
|
10
10
|
import type { I18nProvider } from '@molecule/app-i18n';
|
|
@@ -44,15 +44,20 @@ export interface StorageValueState<T> {
|
|
|
44
44
|
}
|
|
45
45
|
/**
|
|
46
46
|
* Auth primitives return type.
|
|
47
|
+
*
|
|
48
|
+
* @template T - The user profile the API returns.
|
|
49
|
+
* @template TRegister - The app's own registration fields (the second generic
|
|
50
|
+
* of `createJWTAuthClient<T, TRegister>`), so `register()` is typed like the
|
|
51
|
+
* client's.
|
|
47
52
|
*/
|
|
48
|
-
export interface AuthPrimitives<T = unknown> {
|
|
53
|
+
export interface AuthPrimitives<T = unknown, TRegister extends RegisterExtraShape<TRegister> = Record<never, never>> {
|
|
49
54
|
state: Accessor<AuthState<T>>;
|
|
50
55
|
user: Accessor<T | null>;
|
|
51
56
|
isAuthenticated: Accessor<boolean>;
|
|
52
57
|
isLoading: Accessor<boolean>;
|
|
53
58
|
login: AuthClient<T>['login'];
|
|
54
59
|
logout: AuthClient<T>['logout'];
|
|
55
|
-
register: AuthClient<T>['register'];
|
|
60
|
+
register: AuthClient<T, TRegister>['register'];
|
|
56
61
|
refresh: AuthClient<T>['refresh'];
|
|
57
62
|
}
|
|
58
63
|
/**
|
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,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;
|
|
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-solid",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.5",
|
|
4
4
|
"description": "Solid.js framework bindings for molecule.dev",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -39,12 +39,12 @@
|
|
|
39
39
|
"solid-js": "^1.8.0"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@molecule/app-utilities": "1.0.
|
|
43
|
-
"@types/node": "26.
|
|
44
|
-
"seroval": "1.
|
|
42
|
+
"@molecule/app-utilities": "1.0.5",
|
|
43
|
+
"@types/node": "26.6.5",
|
|
44
|
+
"seroval": "1.7.1",
|
|
45
45
|
"solid-js": "1.9.17",
|
|
46
46
|
"typescript": "6.0.3",
|
|
47
|
-
"vitest": "4.1.
|
|
47
|
+
"vitest": "4.1.12"
|
|
48
48
|
},
|
|
49
49
|
"repository": {
|
|
50
50
|
"type": "git",
|