@vunexa/lixa 0.1.6-alpha.7 → 0.1.6-alpha.9
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 +1 -2
- package/README.template.md +1 -2
- package/dist/dao/session-cache.d.ts +2 -1
- package/dist/dao/session-cache.d.ts.map +1 -1
- package/dist/dao/state-cache.d.ts +4 -0
- package/dist/dao/state-cache.d.ts.map +1 -1
- package/dist/dao/types.d.ts +21 -75
- package/dist/dao/types.d.ts.map +1 -1
- package/dist/errors.d.ts +90 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/export-types/index.d.ts +439 -95
- package/dist/express.d.ts +103 -0
- package/dist/express.d.ts.map +1 -0
- package/dist/index.cjs +509 -129
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +408 -96
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +483 -128
- package/dist/index.js.map +1 -1
- package/dist/lixa.d.ts +25 -21
- package/dist/lixa.d.ts.map +1 -1
- package/dist/types.d.ts +28 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/cookies.d.ts +142 -0
- package/dist/utils/cookies.d.ts.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,8 +17,7 @@ A flexible, provider-agnostic OAuth 2.0 and OpenID Connect (OIDC) client library
|
|
|
17
17
|
- **Multi-SSO Account Linking**: Seamlessly merge accounts sharing the same verified email address under a single unified user session.
|
|
18
18
|
- **Post-Login Resource Connection API**: Connect third-party API providers (GitHub Repositories, Google Drive, Slack) post-authentication and manage resource tokens on the user session.
|
|
19
19
|
- **Multi-provider OAuth/OIDC support** with unified API.
|
|
20
|
-
- **
|
|
21
|
-
- **Custom provider support** with extensible provider interface.
|
|
20
|
+
- **Pre-built Database Storage Adapters**: Official Prisma and Drizzle ORM adapters via `@vunexa/lixa-adapters` with support for PostgreSQL, MySQL, and SQLite.
|
|
22
21
|
- **Unified session management** via `SessionHandler` (generation + storage).
|
|
23
22
|
- **Unified state management** via `StateHandler` (PKCE + CSRF protection).
|
|
24
23
|
- **Automatic PKCE** (Proof Key for Code Exchange) for all OAuth flows.
|
package/README.template.md
CHANGED
|
@@ -17,8 +17,7 @@ A flexible, provider-agnostic OAuth 2.0 and OpenID Connect (OIDC) client library
|
|
|
17
17
|
- **Multi-SSO Account Linking**: Seamlessly merge accounts sharing the same verified email address under a single unified user session.
|
|
18
18
|
- **Post-Login Resource Connection API**: Connect third-party API providers (GitHub Repositories, Google Drive, Slack) post-authentication and manage resource tokens on the user session.
|
|
19
19
|
- **Multi-provider OAuth/OIDC support** with unified API.
|
|
20
|
-
- **
|
|
21
|
-
- **Custom provider support** with extensible provider interface.
|
|
20
|
+
- **Pre-built Database Storage Adapters**: Official Prisma and Drizzle ORM adapters via `@vunexa/lixa-adapters` with support for PostgreSQL, MySQL, and SQLite.
|
|
22
21
|
- **Unified session management** via `SessionHandler` (generation + storage).
|
|
23
22
|
- **Unified state management** via `StateHandler` (PKCE + CSRF protection).
|
|
24
23
|
- **Automatic PKCE** (Proof Key for Code Exchange) for all OAuth flows.
|
|
@@ -5,7 +5,8 @@ declare class LocalSessionHandler implements SessionHandler {
|
|
|
5
5
|
private emailToSessionMap;
|
|
6
6
|
sessionStorage: SessionStorage;
|
|
7
7
|
constructor(defaultTtlSeconds?: number);
|
|
8
|
-
|
|
8
|
+
generateSession<T extends Session>(tokenData: OAuthTokenResponse, _providerMetadata?: ProviderMetadata): Promise<T>;
|
|
9
|
+
GenerateSession<T extends Session>(tokenData: OAuthTokenResponse, providerMetadata?: ProviderMetadata): Promise<T>;
|
|
9
10
|
}
|
|
10
11
|
export { LocalSessionHandler };
|
|
11
12
|
//# sourceMappingURL=session-cache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-cache.d.ts","sourceRoot":"","sources":["../../src/dao/session-cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEvF,cAAM,mBAAoB,YAAW,cAAc;IACjD,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,iBAAiB,CAAkC;IACpD,cAAc,EAAE,cAAc,CAAC;gBAE1B,iBAAiB,GAAE,MAAY;
|
|
1
|
+
{"version":3,"file":"session-cache.d.ts","sourceRoot":"","sources":["../../src/dao/session-cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEvF,cAAM,mBAAoB,YAAW,cAAc;IACjD,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,iBAAiB,CAAkC;IACpD,cAAc,EAAE,cAAc,CAAC;gBAE1B,iBAAiB,GAAE,MAAY;IAwDrC,eAAe,CAAC,CAAC,SAAS,OAAO,EACrC,SAAS,EAAE,kBAAkB,EAC7B,iBAAiB,CAAC,EAAE,gBAAgB,GACnC,OAAO,CAAC,CAAC,CAAC;IAcP,eAAe,CAAC,CAAC,SAAS,OAAO,EACrC,SAAS,EAAE,kBAAkB,EAC7B,gBAAgB,CAAC,EAAE,gBAAgB,GAClC,OAAO,CAAC,CAAC,CAAC;CAGd;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -7,6 +7,10 @@ declare class LocalStateHandler implements StateHandler {
|
|
|
7
7
|
state: string;
|
|
8
8
|
data: StateData;
|
|
9
9
|
}>;
|
|
10
|
+
GenerateState(provider: string): Promise<{
|
|
11
|
+
state: string;
|
|
12
|
+
data: StateData;
|
|
13
|
+
}>;
|
|
10
14
|
}
|
|
11
15
|
export { LocalStateHandler };
|
|
12
16
|
//# sourceMappingURL=state-cache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-cache.d.ts","sourceRoot":"","sources":["../../src/dao/state-cache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEhE,cAAM,iBAAkB,YAAW,YAAY;IAC7C,OAAO,CAAC,KAAK,CAAY;IAClB,YAAY,EAAE,YAAY,CAAC;gBAEtB,iBAAiB,GAAE,MAAY;IAoBrC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"state-cache.d.ts","sourceRoot":"","sources":["../../src/dao/state-cache.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEhE,cAAM,iBAAkB,YAAW,YAAY;IAC7C,OAAO,CAAC,KAAK,CAAY;IAClB,YAAY,EAAE,YAAY,CAAC;gBAEtB,iBAAiB,GAAE,MAAY;IAoBrC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;IAe5E,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;CAGnF;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
package/dist/dao/types.d.ts
CHANGED
|
@@ -164,10 +164,20 @@ export interface StateHandler {
|
|
|
164
164
|
* }
|
|
165
165
|
* ```
|
|
166
166
|
*/
|
|
167
|
+
/**
|
|
168
|
+
* Generates OAuth state parameter and associated data (camelCase).
|
|
169
|
+
*/
|
|
167
170
|
generateState?(provider: string): Promise<{
|
|
168
171
|
state: string;
|
|
169
172
|
data: StateData;
|
|
170
173
|
}>;
|
|
174
|
+
/**
|
|
175
|
+
* Generates OAuth state parameter and associated data (PascalCase alias for backward compatibility).
|
|
176
|
+
*/
|
|
177
|
+
GenerateState?(provider: string): Promise<{
|
|
178
|
+
state: string;
|
|
179
|
+
data: StateData;
|
|
180
|
+
}>;
|
|
171
181
|
/**
|
|
172
182
|
* State storage operations.
|
|
173
183
|
*
|
|
@@ -193,7 +203,7 @@ export interface SessionStorage {
|
|
|
193
203
|
* Saves a session with expiration.
|
|
194
204
|
*
|
|
195
205
|
* @param sessionId - Unique session identifier
|
|
196
|
-
* @param session - Session data from
|
|
206
|
+
* @param session - Session data from generateSession()
|
|
197
207
|
* @param expiresInSeconds - TTL in seconds (typically 86400 for 24 hours)
|
|
198
208
|
*/
|
|
199
209
|
saveSession<T extends Session>(sessionId: string, session: T, expiresInSeconds: number): Promise<void>;
|
|
@@ -273,13 +283,13 @@ export interface ResourceHandler {
|
|
|
273
283
|
* @remarks
|
|
274
284
|
* The SessionHandler manages session generation and storage after successful OAuth authentication.
|
|
275
285
|
*
|
|
276
|
-
* -
|
|
286
|
+
* - generateSession: Optional. Customizes how OAuth tokens are converted into session data.
|
|
277
287
|
* If not provided, uses default implementation (access token as session token).
|
|
278
288
|
*
|
|
279
|
-
* -
|
|
289
|
+
* - sessionStorage: Optional. Provides custom session storage (save/get/delete operations).
|
|
280
290
|
* If not provided, uses in-memory cache (not suitable for production).
|
|
281
291
|
*
|
|
282
|
-
* For production, implement both
|
|
292
|
+
* For production, implement both generateSession (for user creation/lookup) and sessionStorage
|
|
283
293
|
* (for persistent session storage with Redis, database, etc.).
|
|
284
294
|
*
|
|
285
295
|
* @example
|
|
@@ -288,7 +298,7 @@ export interface ResourceHandler {
|
|
|
288
298
|
* import { SessionHandler, Session, OAuthTokenResponse, ProviderMetadata, extractUserInfo } from '@vunexa/lixa';
|
|
289
299
|
*
|
|
290
300
|
* const sessionHandler: SessionHandler = {
|
|
291
|
-
*
|
|
301
|
+
* generateSession: async (tokenData, providerMetadata) => {
|
|
292
302
|
* // Extract user info and create/retrieve user
|
|
293
303
|
* const { userInfo } = await extractUserInfo(tokenData, providerMetadata);
|
|
294
304
|
* const user = await db.users.upsert({
|
|
@@ -307,7 +317,7 @@ export interface ResourceHandler {
|
|
|
307
317
|
* };
|
|
308
318
|
* },
|
|
309
319
|
*
|
|
310
|
-
*
|
|
320
|
+
* sessionStorage: {
|
|
311
321
|
* saveSession: async (sessionId, session, expiresInSeconds) => {
|
|
312
322
|
* const expiresAt = new Date(Date.now() + expiresInSeconds * 1000);
|
|
313
323
|
* await db.sessions.create({
|
|
@@ -333,78 +343,21 @@ export interface ResourceHandler {
|
|
|
333
343
|
* };
|
|
334
344
|
* ```
|
|
335
345
|
*
|
|
336
|
-
* @example
|
|
337
|
-
* Minimal implementation (uses defaults):
|
|
338
|
-
* ```typescript
|
|
339
|
-
* const sessionHandler: SessionHandler = {
|
|
340
|
-
* storage: {
|
|
341
|
-
* saveSession: async (sessionId, session, expiresInSeconds) => {
|
|
342
|
-
* await redis.setex(sessionId, expiresInSeconds, JSON.stringify(session));
|
|
343
|
-
* },
|
|
344
|
-
* getSession: async (sessionId) => {
|
|
345
|
-
* const data = await redis.get(sessionId);
|
|
346
|
-
* return data ? JSON.parse(data) : null;
|
|
347
|
-
* },
|
|
348
|
-
* deleteSession: async (sessionId) => {
|
|
349
|
-
* await redis.del(sessionId);
|
|
350
|
-
* }
|
|
351
|
-
* }
|
|
352
|
-
* };
|
|
353
|
-
* ```
|
|
354
|
-
*
|
|
355
346
|
* @public
|
|
356
347
|
*/
|
|
357
348
|
export interface SessionHandler {
|
|
358
349
|
/**
|
|
359
|
-
* Generates session data from OAuth token data.
|
|
350
|
+
* Generates session data from OAuth token data (camelCase).
|
|
360
351
|
*
|
|
361
352
|
* @param tokenData - The token data received from the OAuth provider's token endpoint
|
|
362
353
|
* @param providerMetadata - Provider metadata including name and endpoints
|
|
363
354
|
* @returns A Promise that resolves to session data
|
|
364
|
-
*
|
|
365
|
-
* @remarks
|
|
366
|
-
* This method is responsible for creating session data from OAuth tokens.
|
|
367
|
-
* It is called after successfully exchanging the authorization code for tokens.
|
|
368
|
-
*
|
|
369
|
-
* Token Data:
|
|
370
|
-
* - access_token: OAuth access token
|
|
371
|
-
* - refresh_token: OAuth refresh token (optional)
|
|
372
|
-
* - expires_in: Token expiration time in seconds
|
|
373
|
-
* - token_type: Token type (usually "Bearer")
|
|
374
|
-
* - id_token: OpenID Connect ID token (for OIDC providers)
|
|
375
|
-
* - scope: Granted scopes
|
|
376
|
-
*
|
|
377
|
-
* Provider Metadata:
|
|
378
|
-
* - name: The provider name (e.g., 'google', 'github')
|
|
379
|
-
* - endpoints: Provider endpoints (authorization, token, userInfo)
|
|
380
|
-
*
|
|
381
|
-
* Your implementation should:
|
|
382
|
-
* 1. Extract user info (using extractUserInfo or decode ID token)
|
|
383
|
-
* 2. Create or lookup users in your database
|
|
384
|
-
* 3. Build and return session data with any custom fields
|
|
385
|
-
*
|
|
386
|
-
* Note: This method should NOT store the session. Storage is handled by the storage object.
|
|
387
|
-
*
|
|
388
|
-
* If not provided, defaults to using the access token as the session token.
|
|
389
|
-
*
|
|
390
|
-
* @example
|
|
391
|
-
* ```typescript
|
|
392
|
-
* GenerateSession: async (tokenData, providerMetadata) => {
|
|
393
|
-
* const { userInfo } = await extractUserInfo(tokenData, providerMetadata);
|
|
394
|
-
* const user = await db.users.upsert({ email: userInfo.email });
|
|
395
|
-
*
|
|
396
|
-
* return {
|
|
397
|
-
* token: tokenData.access_token,
|
|
398
|
-
* raw: {
|
|
399
|
-
* ...tokenData,
|
|
400
|
-
* userId: user.id,
|
|
401
|
-
* provider: providerMetadata.name
|
|
402
|
-
* }
|
|
403
|
-
* };
|
|
404
|
-
* }
|
|
405
|
-
* ```
|
|
406
355
|
*/
|
|
407
356
|
generateSession?<T extends Session>(tokenData: import('../models/session').OAuthTokenResponse, providerMetadata: import('../models/session').ProviderMetadata): Promise<T>;
|
|
357
|
+
/**
|
|
358
|
+
* Generates session data from OAuth token data (PascalCase alias for backward compatibility).
|
|
359
|
+
*/
|
|
360
|
+
GenerateSession?<T extends Session>(tokenData: import('../models/session').OAuthTokenResponse, providerMetadata: import('../models/session').ProviderMetadata): Promise<T>;
|
|
408
361
|
/**
|
|
409
362
|
* Session storage operations.
|
|
410
363
|
*
|
|
@@ -415,12 +368,5 @@ export interface SessionHandler {
|
|
|
415
368
|
* If not provided, uses in-memory cache (not suitable for production).
|
|
416
369
|
*/
|
|
417
370
|
sessionStorage?: SessionStorage;
|
|
418
|
-
/**
|
|
419
|
-
* Optional method to generate session data from OAuth tokens.
|
|
420
|
-
*
|
|
421
|
-
* @remarks
|
|
422
|
-
* If not provided, uses default implementation from LocalSessionHandler.
|
|
423
|
-
*/
|
|
424
|
-
generateSession?<T extends Session>(tokenData: import('../models/session').OAuthTokenResponse, providerMetadata: import('../models/session').ProviderMetadata): Promise<T>;
|
|
425
371
|
}
|
|
426
372
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/dao/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dao/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;;;OAMG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;OAMG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnF;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAEnD;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,aAAa,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAE9E;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvG;;;;;OAKG;IACH,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAEpE;;;;OAIG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhD;;;;OAIG;IACH,iBAAiB,CAAC,CAAC,CAAC,SAAS,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CACzG;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,mBAAmB,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvH;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,mBAAmB,EAAE,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAE7G;;;;OAIG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,mBAAmB,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAEzG;;;;;OAKG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dao/types.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base error class for all Lixa authentication and authorization errors.
|
|
3
|
+
*
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
export declare class LixaError extends Error {
|
|
7
|
+
/**
|
|
8
|
+
* Standard error code string.
|
|
9
|
+
*/
|
|
10
|
+
readonly code: string;
|
|
11
|
+
/**
|
|
12
|
+
* Additional error context data.
|
|
13
|
+
*/
|
|
14
|
+
readonly details: Record<string, unknown> | undefined;
|
|
15
|
+
constructor(message: string, code?: string, details?: Record<string, unknown>);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Thrown when an OAuth state parameter is invalid, missing, or has expired.
|
|
19
|
+
*
|
|
20
|
+
* @public
|
|
21
|
+
*/
|
|
22
|
+
export declare class InvalidStateError extends LixaError {
|
|
23
|
+
constructor(message?: string, details?: Record<string, unknown>);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Thrown when attempting to use a provider that is not configured in the Lixa instance.
|
|
27
|
+
*
|
|
28
|
+
* @public
|
|
29
|
+
*/
|
|
30
|
+
export declare class ProviderNotConfiguredError extends LixaError {
|
|
31
|
+
constructor(provider: string, details?: Record<string, unknown>);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Thrown when a provider configuration is invalid or missing required credentials.
|
|
35
|
+
*
|
|
36
|
+
* @public
|
|
37
|
+
*/
|
|
38
|
+
export declare class InvalidProviderConfigError extends LixaError {
|
|
39
|
+
constructor(message: string, details?: Record<string, unknown>);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Thrown when OAuth callback parameters (e.g. authorization code or state) are missing or malformed.
|
|
43
|
+
*
|
|
44
|
+
* @public
|
|
45
|
+
*/
|
|
46
|
+
export declare class InvalidOAuthCallbackError extends LixaError {
|
|
47
|
+
constructor(message: string, details?: Record<string, unknown>);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Thrown when exchanging an authorization code for OAuth tokens fails at the provider endpoint.
|
|
51
|
+
*
|
|
52
|
+
* @public
|
|
53
|
+
*/
|
|
54
|
+
export declare class TokenExchangeError extends LixaError {
|
|
55
|
+
readonly status: number | undefined;
|
|
56
|
+
constructor(message: string, status?: number, details?: Record<string, unknown>);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Thrown when a user session is not found or has expired.
|
|
60
|
+
*
|
|
61
|
+
* @public
|
|
62
|
+
*/
|
|
63
|
+
export declare class SessionNotFoundError extends LixaError {
|
|
64
|
+
constructor(message?: string, details?: Record<string, unknown>);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Thrown when account linking fails, e.g. when unverified email linking is rejected.
|
|
68
|
+
*
|
|
69
|
+
* @public
|
|
70
|
+
*/
|
|
71
|
+
export declare class EmailNotVerifiedError extends LixaError {
|
|
72
|
+
constructor(email?: string, details?: Record<string, unknown>);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Thrown when unlinking an account violates security constraints (e.g. unlinking the only login provider).
|
|
76
|
+
*
|
|
77
|
+
* @public
|
|
78
|
+
*/
|
|
79
|
+
export declare class AccountUnlinkError extends LixaError {
|
|
80
|
+
constructor(message: string, details?: Record<string, unknown>);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Thrown when a refresh token is missing or token refresh fails for a connected resource.
|
|
84
|
+
*
|
|
85
|
+
* @public
|
|
86
|
+
*/
|
|
87
|
+
export declare class RefreshTokenError extends LixaError {
|
|
88
|
+
constructor(message: string, details?: Record<string, unknown>);
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC;;OAEG;IACH,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,SAAgB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;gBAEjD,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAqB,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAS5F;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;gBAClC,OAAO,GAAE,MAAmC,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG5F;AAED;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,SAAS;gBAC3C,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAShE;AAED;;;;GAIG;AACH,qBAAa,0BAA2B,SAAQ,SAAS;gBAC3C,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG/D;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,SAAQ,SAAS;gBAC1C,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG/D;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,SAAS;IAC/C,SAAgB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;gBAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAIhF;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,SAAS;gBACrC,OAAO,GAAE,MAAkD,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG3G;AAED;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,SAAS;gBACtC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAO9D;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG/D;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;gBAClC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAG/D"}
|