@artatol-acp/auth-nextjs 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -343,6 +343,148 @@ NEXT_PUBLIC_ACP_AUTH_URL=https://sso.artatol.com
343
343
 
344
344
  - `createACPAuthMiddleware(options)` - Create middleware for route protection
345
345
 
346
+ ## 2FA (Two-Factor Authentication)
347
+
348
+ ### Setup 2FA
349
+
350
+ ```typescript
351
+ 'use server';
352
+
353
+ import { ACPAuthClient } from '@artatol-acp/auth-nextjs/server';
354
+
355
+ export async function setup2FAAction(password: string) {
356
+ const client = new ACPAuthClient({
357
+ baseUrl: process.env.ACP_AUTH_URL!,
358
+ apiKey: process.env.ACP_AUTH_API_KEY!,
359
+ });
360
+
361
+ const accessToken = // ... get from session/cookie
362
+
363
+ const { secret, qrCodeUrl, recoveryCodes } = await client.setup2FA(
364
+ { password },
365
+ accessToken
366
+ );
367
+
368
+ return { qrCodeUrl, recoveryCodes };
369
+ }
370
+ ```
371
+
372
+ ### Verify 2FA Setup
373
+
374
+ ```typescript
375
+ 'use server';
376
+
377
+ export async function verify2FAAction(code: string) {
378
+ const client = new ACPAuthClient({
379
+ baseUrl: process.env.ACP_AUTH_URL!,
380
+ apiKey: process.env.ACP_AUTH_API_KEY!,
381
+ });
382
+
383
+ const accessToken = // ... get from session/cookie
384
+
385
+ await client.verify2FA({ code }, accessToken);
386
+ }
387
+ ```
388
+
389
+ ### Complete 2FA Login Flow
390
+
391
+ ```typescript
392
+ 'use server';
393
+
394
+ import { login } from '@artatol-acp/auth-nextjs/server';
395
+
396
+ export async function loginAction(email: string, password: string) {
397
+ const result = await login(email, password);
398
+
399
+ if ('requiresTwoFactor' in result) {
400
+ // User has 2FA enabled
401
+ return {
402
+ requires2FA: true,
403
+ tempToken: result.tempToken,
404
+ };
405
+ }
406
+
407
+ // Regular login successful
408
+ return { success: true };
409
+ }
410
+
411
+ export async function complete2FALogin(tempToken: string, code: string) {
412
+ const client = new ACPAuthClient({
413
+ baseUrl: process.env.ACP_AUTH_URL!,
414
+ apiKey: process.env.ACP_AUTH_API_KEY!,
415
+ });
416
+
417
+ const result = await client.verify2FALogin({ tempToken, code });
418
+ // Set cookies, etc.
419
+ return result;
420
+ }
421
+ ```
422
+
423
+ ### Disable 2FA
424
+
425
+ ```typescript
426
+ 'use server';
427
+
428
+ export async function disable2FAAction(password: string, code: string) {
429
+ const client = new ACPAuthClient({
430
+ baseUrl: process.env.ACP_AUTH_URL!,
431
+ apiKey: process.env.ACP_AUTH_API_KEY!,
432
+ });
433
+
434
+ const accessToken = // ... get from session/cookie
435
+
436
+ await client.disable2FA({ password, code }, accessToken);
437
+ }
438
+ ```
439
+
440
+ ## Health Check
441
+
442
+ To check if the auth service is available:
443
+
444
+ ```typescript
445
+ import { ACPAuthClient } from '@artatol-acp/auth-nextjs/server';
446
+
447
+ const client = new ACPAuthClient({
448
+ baseUrl: process.env.ACP_AUTH_URL!,
449
+ apiKey: process.env.ACP_AUTH_API_KEY!,
450
+ });
451
+
452
+ const health = await client.health();
453
+ console.log(health); // { status: 'ok', timestamp: '...' }
454
+ ```
455
+
456
+ ## Error Handling
457
+
458
+ ```typescript
459
+ import { ACPAuthError } from '@artatol-acp/auth-js';
460
+
461
+ try {
462
+ await login(email, password);
463
+ } catch (error) {
464
+ if (error instanceof ACPAuthError) {
465
+ console.error('Auth error:', error.message);
466
+ console.error('Status code:', error.statusCode);
467
+
468
+ if (error.statusCode === 401) {
469
+ // Invalid credentials
470
+ } else if (error.statusCode === 429) {
471
+ // Rate limited
472
+ }
473
+ } else {
474
+ console.error('Unexpected error:', error);
475
+ }
476
+ }
477
+ ```
478
+
479
+ ### Common Error Codes
480
+
481
+ | Status Code | Meaning |
482
+ |-------------|---------|
483
+ | 401 | Unauthorized (invalid credentials or token) |
484
+ | 403 | Forbidden (email not verified, account locked) |
485
+ | 429 | Too Many Requests (rate limited) |
486
+ | 500 | Internal Server Error |
487
+
346
488
  ## License
347
489
 
348
490
  MIT
@@ -1,4 +1,4 @@
1
- import type { User } from '@artatol-acp/auth-js';
1
+ import { type User } from '@artatol-acp/auth-js';
2
2
  import { type ReactNode } from 'react';
3
3
  export type ACPAuthContextValue = {
4
4
  user: User | null;
@@ -6,6 +6,7 @@ export type ACPAuthContextValue = {
6
6
  login: (email: string, password: string) => Promise<void>;
7
7
  logout: () => Promise<void>;
8
8
  refresh: () => Promise<void>;
9
+ resendVerification: (email: string) => Promise<void>;
9
10
  };
10
11
  export type ACPAuthProviderProps = {
11
12
  children: ReactNode;
@@ -15,3 +16,4 @@ export declare function ACPAuthProvider({ children, baseUrl }: ACPAuthProviderPr
15
16
  export declare function useAuth(): ACPAuthContextValue;
16
17
  export { ACPAuthClient } from '@artatol-acp/auth-js';
17
18
  export type * from '@artatol-acp/auth-js';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAiB,KAAK,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAkD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD,CAAC;AAIF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,oBAAoB,2CA8C1E;AAED,wBAAgB,OAAO,IAAI,mBAAmB,CAM7C;AAGD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,mBAAmB,sBAAsB,CAAC"}
@@ -30,11 +30,14 @@ export function ACPAuthProvider({ children, baseUrl }) {
30
30
  await client.logout();
31
31
  setUser(null);
32
32
  };
33
+ const resendVerification = async (email) => {
34
+ await client.resendVerificationEmail({ email });
35
+ };
33
36
  useEffect(() => {
34
37
  // Try to restore session on mount
35
38
  refresh().finally(() => setIsLoading(false));
36
39
  }, []);
37
- return (<ACPAuthContext.Provider value={{ user, isLoading, login, logout, refresh }}>
40
+ return (<ACPAuthContext.Provider value={{ user, isLoading, login, logout, refresh, resendVerification }}>
38
41
  {children}
39
42
  </ACPAuthContext.Provider>);
40
43
  }
@@ -47,3 +50,4 @@ export function useAuth() {
47
50
  }
48
51
  // Re-export client for direct use
49
52
  export { ACPAuthClient } from '@artatol-acp/auth-js';
53
+ //# sourceMappingURL=index.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../src/client/index.tsx"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,YAAY,CAAC;AAEb,OAAO,EAAE,aAAa,EAAa,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAkB,MAAM,OAAO,CAAC;AAWvF,MAAM,cAAc,GAAG,aAAa,CAA6B,IAAI,CAAC,CAAC;AAOvE,MAAM,UAAU,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAwB;IACzE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAc,IAAI,CAAC,CAAC;IACpD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE5E,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,iDAAiD;YACjD,kDAAkD;YAClD,4CAA4C;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,KAAK,EAAE,KAAa,EAAE,QAAgB,EAAE,EAAE;QACtD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAEvD,IAAI,mBAAmB,IAAI,MAAM,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;QAED,8BAA8B;QAC9B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;QACxB,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;QACjD,MAAM,MAAM,CAAC,uBAAuB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,kCAAkC;QAClC,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAC9F;MAAA,CAAC,QAAQ,CACX;IAAA,EAAE,cAAc,CAAC,QAAQ,CAAC,CAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,kCAAkC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export * from './server/index.js';
2
- export * from './client/index.js';
3
- export * from './middleware.js';
1
+ export { ACPAuthClient } from '@artatol-acp/auth-js';
2
+ export type * from '@artatol-acp/auth-js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,mBAAmB,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export * from './server/index.js';
2
- export * from './client/index.js';
3
- export * from './middleware.js';
1
+ // This is the main entry point, but most users will import from /server, /client, or /middleware
2
+ export { ACPAuthClient } from '@artatol-acp/auth-js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
@@ -5,3 +5,4 @@ export type ACPAuthMiddlewareOptions = {
5
5
  loginPath?: string;
6
6
  };
7
7
  export declare function createACPAuthMiddleware(options: ACPAuthMiddlewareOptions): (request: NextRequest) => Promise<NextResponse<unknown>>;
8
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGxD,MAAM,MAAM,wBAAwB,GAAG;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAIF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,IAO/B,SAAS,WAAW,oCAuC7D"}
@@ -6,7 +6,7 @@ export function createACPAuthMiddleware(options) {
6
6
  return async function acpAuthMiddleware(request) {
7
7
  const { pathname } = request.nextUrl;
8
8
  // Allow public paths
9
- if (publicPaths.some(path => pathname.startsWith(path))) {
9
+ if (publicPaths.some((path) => pathname.startsWith(path))) {
10
10
  return NextResponse.next();
11
11
  }
12
12
  // Check for access token
@@ -38,3 +38,4 @@ export function createACPAuthMiddleware(options) {
38
38
  }
39
39
  };
40
40
  }
41
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAgB,MAAM,MAAM,CAAC;AAQ3D,IAAI,SAAS,GAAmB,IAAI,CAAC;AAErC,MAAM,UAAU,uBAAuB,CAAC,OAAiC;IACvE,MAAM,EACJ,YAAY,EACZ,WAAW,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,EAC5E,SAAS,GAAG,QAAQ,GACrB,GAAG,OAAO,CAAC;IAEZ,OAAO,KAAK,UAAU,iBAAiB,CAAC,OAAoB;QAC1D,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;QAErC,qBAAqB;QACrB,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC1D,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;QAED,yBAAyB;QACzB,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC;QAE/D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,oBAAoB;YACpB,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACpC,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;YACzB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACvC,OAAO,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;QAED,sBAAsB;QACtB,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,SAAS,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACtD,CAAC;YAED,MAAM,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE;gBACtC,UAAU,EAAE,CAAC,OAAO,CAAC;aACtB,CAAC,CAAC;YAEH,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gCAAgC;YAChC,6BAA6B;YAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACpC,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC;YACzB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACvC,OAAO,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -11,6 +11,13 @@ export declare function refreshAccessToken(): Promise<string | null>;
11
11
  export declare function login(email: string, password: string): Promise<LoginResult>;
12
12
  export declare function logout(): Promise<void>;
13
13
  export declare function register(email: string, password: string): Promise<User>;
14
+ export declare function verifyEmail(token: string): Promise<{
15
+ message: string;
16
+ }>;
17
+ export declare function resendVerificationEmail(email: string): Promise<{
18
+ message: string;
19
+ }>;
14
20
  export declare function me(): Promise<User | null>;
15
21
  export { ACPAuthClient } from '@artatol-acp/auth-js';
16
22
  export type * from '@artatol-acp/auth-js';
23
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,KAAK,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGlF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAMF,wBAAgB,WAAW,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAOxE;AAqBD,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAepE;AAED,wBAAsB,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAapD;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoBjE;AAED,wBAAsB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAiBjF;AAED,wBAAsB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAW5C;AAED,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7E;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAG7E;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAGzF;AAED,wBAAsB,EAAE,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAe/C;AAGD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,mBAAmB,sBAAsB,CAAC"}
@@ -106,6 +106,14 @@ export async function register(email, password) {
106
106
  const client = getClient();
107
107
  return await client.register({ email, password });
108
108
  }
109
+ export async function verifyEmail(token) {
110
+ const client = getClient();
111
+ return await client.verifyEmail({ token });
112
+ }
113
+ export async function resendVerificationEmail(email) {
114
+ const client = getClient();
115
+ return await client.resendVerificationEmail({ email });
116
+ }
109
117
  export async function me() {
110
118
  const cookieStore = await cookies();
111
119
  const accessToken = cookieStore.get('access_token')?.value;
@@ -122,3 +130,4 @@ export async function me() {
122
130
  }
123
131
  // Re-export client for direct use if needed
124
132
  export { ACPAuthClient } from '@artatol-acp/auth-js';
133
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "name": "@artatol-acp/auth-nextjs",
3
- "version": "0.2.0",
4
- "description": "Next.js SDK for Artatol Cloud Platform Authentication",
3
+ "version": "0.3.1",
4
+ "description": "Next.js SDK for Artatol Cloud Platform Authentication with support for App Router, Server Actions, and Middleware",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
- "module": "./dist/index.js",
8
7
  "types": "./dist/index.d.ts",
9
8
  "exports": {
10
9
  ".": {
@@ -16,7 +15,7 @@
16
15
  "types": "./dist/server/index.d.ts"
17
16
  },
18
17
  "./client": {
19
- "import": "./dist/client/index.js",
18
+ "import": "./dist/client/index.jsx",
20
19
  "types": "./dist/client/index.d.ts"
21
20
  },
22
21
  "./middleware": {
@@ -30,29 +29,24 @@
30
29
  "keywords": [
31
30
  "acp",
32
31
  "auth",
33
- "authentication",
34
- "artatol",
35
- "jwt",
36
- "2fa",
37
32
  "nextjs",
38
- "next.js"
33
+ "next",
34
+ "authentication",
35
+ "artatol"
39
36
  ],
40
37
  "author": "Artatol",
41
38
  "license": "MIT",
42
- "dependencies": {
43
- "jose": "^6.1.3",
44
- "@artatol-acp/auth-js": "0.2.0"
45
- },
46
39
  "peerDependencies": {
47
- "next": ">=15.0.0",
48
- "react": ">=18.0.0"
40
+ "next": "^14.0.0 || ^15.0.0",
41
+ "react": "^18.0.0 || ^19.0.0"
42
+ },
43
+ "dependencies": {
44
+ "@artatol-acp/auth-js": "^0.3.1",
45
+ "jose": "^5.9.6"
49
46
  },
50
47
  "devDependencies": {
51
- "@types/node": "^24.10.1",
52
- "@types/react": "^18.3.18",
53
- "next": "^15.1.6",
54
- "react": "^18.3.1",
55
- "typescript": "^5.7.2"
48
+ "@types/react": "^18.3.0",
49
+ "typescript": "^5.6.3"
56
50
  },
57
51
  "publishConfig": {
58
52
  "access": "public"
@@ -62,4 +56,4 @@
62
56
  "dev": "tsc --watch",
63
57
  "typecheck": "tsc --noEmit"
64
58
  }
65
- }
59
+ }