@beyondcorp/beyond-ui 1.0.29 → 1.0.30

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.
@@ -0,0 +1,36 @@
1
+ import type { LoginCredentials, SignupData, AuthResponse, User } from '../types/auth';
2
+ declare class AuthService {
3
+ private readonly TOKEN_KEY;
4
+ private readonly REFRESH_TOKEN_KEY;
5
+ private readonly USER_KEY;
6
+ /**
7
+ * Simulate API login
8
+ */
9
+ login(credentials: LoginCredentials): Promise<AuthResponse>;
10
+ /**
11
+ * Simulate API signup
12
+ */
13
+ signup(data: SignupData): Promise<AuthResponse>;
14
+ /**
15
+ * Logout user and clear tokens
16
+ */
17
+ logout(): void;
18
+ /**
19
+ * Get current user from storage
20
+ */
21
+ getCurrentUser(): User | null;
22
+ /**
23
+ * Get current token
24
+ */
25
+ getToken(): string | null;
26
+ /**
27
+ * Refresh authentication token
28
+ */
29
+ refreshToken(): Promise<string>;
30
+ /**
31
+ * Check if user is authenticated
32
+ */
33
+ isAuthenticated(): boolean;
34
+ }
35
+ export declare const authService: AuthService;
36
+ export {};
@@ -0,0 +1,143 @@
1
+ import api from '../node_modules/js-cookie/dist/js.cookie.js';
2
+
3
+ // Mock API service - replace with actual API calls
4
+ class AuthService {
5
+ constructor() {
6
+ Object.defineProperty(this, "TOKEN_KEY", {
7
+ enumerable: true,
8
+ configurable: true,
9
+ writable: true,
10
+ value: 'auth_token'
11
+ });
12
+ Object.defineProperty(this, "REFRESH_TOKEN_KEY", {
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true,
16
+ value: 'refresh_token'
17
+ });
18
+ Object.defineProperty(this, "USER_KEY", {
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true,
22
+ value: 'auth_user'
23
+ });
24
+ }
25
+ /**
26
+ * Simulate API login
27
+ */
28
+ async login(credentials) {
29
+ // Simulate API delay
30
+ await new Promise(resolve => setTimeout(resolve, 1000));
31
+ // Mock validation - replace with actual API call
32
+ if (credentials.email === 'admin@example.com' && credentials.password === 'Password123!') {
33
+ const user = {
34
+ id: '1',
35
+ email: credentials.email,
36
+ name: 'John Doe',
37
+ role: 'admin',
38
+ avatar: 'https://images.pexels.com/photos/774909/pexels-photo-774909.jpeg?auto=compress&cs=tinysrgb&w=64',
39
+ createdAt: new Date().toISOString(),
40
+ lastLogin: new Date().toISOString(),
41
+ };
42
+ const token = 'mock_jwt_token_' + Date.now();
43
+ const refreshToken = 'mock_refresh_token_' + Date.now();
44
+ // Store tokens
45
+ const cookieOptions = {
46
+ expires: credentials.rememberMe ? 30 : undefined, // 30 days if remember me
47
+ secure: process.env.NODE_ENV === 'production',
48
+ sameSite: 'strict',
49
+ };
50
+ api.set(this.TOKEN_KEY, token, cookieOptions);
51
+ api.set(this.REFRESH_TOKEN_KEY, refreshToken, cookieOptions);
52
+ localStorage.setItem(this.USER_KEY, JSON.stringify(user));
53
+ return { user, token, refreshToken };
54
+ }
55
+ throw new Error('Invalid email or password');
56
+ }
57
+ /**
58
+ * Simulate API signup
59
+ */
60
+ async signup(data) {
61
+ // Simulate API delay
62
+ await new Promise(resolve => setTimeout(resolve, 1500));
63
+ // Mock email validation - replace with actual API call
64
+ if (data.email === 'existing@example.com') {
65
+ throw new Error('An account with this email already exists');
66
+ }
67
+ const user = {
68
+ id: Date.now().toString(),
69
+ email: data.email,
70
+ name: data.name,
71
+ role: 'user',
72
+ createdAt: new Date().toISOString(),
73
+ };
74
+ const token = 'mock_jwt_token_' + Date.now();
75
+ const refreshToken = 'mock_refresh_token_' + Date.now();
76
+ // Store tokens
77
+ const cookieOptions = {
78
+ expires: 7, // 7 days for new users
79
+ secure: process.env.NODE_ENV === 'production',
80
+ sameSite: 'strict',
81
+ };
82
+ api.set(this.TOKEN_KEY, token, cookieOptions);
83
+ api.set(this.REFRESH_TOKEN_KEY, refreshToken, cookieOptions);
84
+ localStorage.setItem(this.USER_KEY, JSON.stringify(user));
85
+ return { user, token, refreshToken };
86
+ }
87
+ /**
88
+ * Logout user and clear tokens
89
+ */
90
+ logout() {
91
+ api.remove(this.TOKEN_KEY);
92
+ api.remove(this.REFRESH_TOKEN_KEY);
93
+ localStorage.removeItem(this.USER_KEY);
94
+ }
95
+ /**
96
+ * Get current user from storage
97
+ */
98
+ getCurrentUser() {
99
+ try {
100
+ const userStr = localStorage.getItem(this.USER_KEY);
101
+ return userStr ? JSON.parse(userStr) : null;
102
+ }
103
+ catch {
104
+ return null;
105
+ }
106
+ }
107
+ /**
108
+ * Get current token
109
+ */
110
+ getToken() {
111
+ return api.get(this.TOKEN_KEY) || null;
112
+ }
113
+ /**
114
+ * Refresh authentication token
115
+ */
116
+ async refreshToken() {
117
+ const refreshToken = api.get(this.REFRESH_TOKEN_KEY);
118
+ if (!refreshToken) {
119
+ throw new Error('No refresh token available');
120
+ }
121
+ // Simulate API call
122
+ await new Promise(resolve => setTimeout(resolve, 500));
123
+ const newToken = 'mock_jwt_token_refreshed_' + Date.now();
124
+ api.set(this.TOKEN_KEY, newToken, {
125
+ expires: 1, // 1 day
126
+ secure: process.env.NODE_ENV === 'production',
127
+ sameSite: 'strict',
128
+ });
129
+ return newToken;
130
+ }
131
+ /**
132
+ * Check if user is authenticated
133
+ */
134
+ isAuthenticated() {
135
+ const token = this.getToken();
136
+ const user = this.getCurrentUser();
137
+ return !!(token && user);
138
+ }
139
+ }
140
+ const authService = new AuthService();
141
+
142
+ export { authService };
143
+ //# sourceMappingURL=authService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authService.js","sources":["../../src/services/authService.ts"],"sourcesContent":["import Cookies from 'js-cookie';\nimport type { LoginCredentials, SignupData, AuthResponse, User } from '../types/auth';\n\n// Mock API service - replace with actual API calls\nclass AuthService {\n private readonly TOKEN_KEY = 'auth_token';\n private readonly REFRESH_TOKEN_KEY = 'refresh_token';\n private readonly USER_KEY = 'auth_user';\n\n /**\n * Simulate API login\n */\n async login(credentials: LoginCredentials): Promise<AuthResponse> {\n // Simulate API delay\n await new Promise(resolve => setTimeout(resolve, 1000));\n\n // Mock validation - replace with actual API call\n if (credentials.email === 'admin@example.com' && credentials.password === 'Password123!') {\n const user: User = {\n id: '1',\n email: credentials.email,\n name: 'John Doe',\n role: 'admin',\n avatar: 'https://images.pexels.com/photos/774909/pexels-photo-774909.jpeg?auto=compress&cs=tinysrgb&w=64',\n createdAt: new Date().toISOString(),\n lastLogin: new Date().toISOString(),\n };\n\n const token = 'mock_jwt_token_' + Date.now();\n const refreshToken = 'mock_refresh_token_' + Date.now();\n\n // Store tokens\n const cookieOptions = {\n expires: credentials.rememberMe ? 30 : undefined, // 30 days if remember me\n secure: process.env.NODE_ENV === 'production',\n sameSite: 'strict' as const,\n };\n\n Cookies.set(this.TOKEN_KEY, token, cookieOptions);\n Cookies.set(this.REFRESH_TOKEN_KEY, refreshToken, cookieOptions);\n localStorage.setItem(this.USER_KEY, JSON.stringify(user));\n\n return { user, token, refreshToken };\n }\n\n throw new Error('Invalid email or password');\n }\n\n /**\n * Simulate API signup\n */\n async signup(data: SignupData): Promise<AuthResponse> {\n // Simulate API delay\n await new Promise(resolve => setTimeout(resolve, 1500));\n\n // Mock email validation - replace with actual API call\n if (data.email === 'existing@example.com') {\n throw new Error('An account with this email already exists');\n }\n\n const user: User = {\n id: Date.now().toString(),\n email: data.email,\n name: data.name,\n role: 'user',\n createdAt: new Date().toISOString(),\n };\n\n const token = 'mock_jwt_token_' + Date.now();\n const refreshToken = 'mock_refresh_token_' + Date.now();\n\n // Store tokens\n const cookieOptions = {\n expires: 7, // 7 days for new users\n secure: process.env.NODE_ENV === 'production',\n sameSite: 'strict' as const,\n };\n\n Cookies.set(this.TOKEN_KEY, token, cookieOptions);\n Cookies.set(this.REFRESH_TOKEN_KEY, refreshToken, cookieOptions);\n localStorage.setItem(this.USER_KEY, JSON.stringify(user));\n\n return { user, token, refreshToken };\n }\n\n /**\n * Logout user and clear tokens\n */\n logout(): void {\n Cookies.remove(this.TOKEN_KEY);\n Cookies.remove(this.REFRESH_TOKEN_KEY);\n localStorage.removeItem(this.USER_KEY);\n }\n\n /**\n * Get current user from storage\n */\n getCurrentUser(): User | null {\n try {\n const userStr = localStorage.getItem(this.USER_KEY);\n return userStr ? JSON.parse(userStr) : null;\n } catch {\n return null;\n }\n }\n\n /**\n * Get current token\n */\n getToken(): string | null {\n return Cookies.get(this.TOKEN_KEY) || null;\n }\n\n /**\n * Refresh authentication token\n */\n async refreshToken(): Promise<string> {\n const refreshToken = Cookies.get(this.REFRESH_TOKEN_KEY);\n \n if (!refreshToken) {\n throw new Error('No refresh token available');\n }\n\n // Simulate API call\n await new Promise(resolve => setTimeout(resolve, 500));\n\n const newToken = 'mock_jwt_token_refreshed_' + Date.now();\n \n Cookies.set(this.TOKEN_KEY, newToken, {\n expires: 1, // 1 day\n secure: process.env.NODE_ENV === 'production',\n sameSite: 'strict',\n });\n\n return newToken;\n }\n\n /**\n * Check if user is authenticated\n */\n isAuthenticated(): boolean {\n const token = this.getToken();\n const user = this.getCurrentUser();\n return !!(token && user);\n }\n}\n\nexport const authService = new AuthService();"],"names":["Cookies"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beyondcorp/beyond-ui",
3
- "version": "1.0.29",
3
+ "version": "1.0.30",
4
4
  "description": "A comprehensive React UI component library built with TypeScript, TailwindCSS, and CVA",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -12,6 +12,7 @@
12
12
  "dist/styles.css",
13
13
  "dist/components/**/*",
14
14
  "dist/contexts/**/*",
15
+ "dist/services/**/*",
15
16
  "dist/hooks/**/*",
16
17
  "dist/utils/**/*",
17
18
  "dist/theme/**/*"