next-auth-mfelfelani72 0.0.52 → 0.0.55
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/dist/libraries/auth/loginHandler.d.ts +1 -4
- package/dist/libraries/auth/loginHandler.js +2 -10
- package/dist/libraries/auth/registerHandler.d.ts +1 -4
- package/dist/libraries/auth/registerHandler.js +16 -25
- package/package.json +10 -2
- package/styles/themes/auth-contract.css +283 -0
- package/dist/configs/env.d.ts +0 -30
- package/dist/configs/env.js +0 -129
- package/dist/core/auth.d.ts +0 -11
- package/dist/core/auth.js +0 -33
|
@@ -1,5 +1,2 @@
|
|
|
1
1
|
import { NextRequest, NextResponse } from "next/server";
|
|
2
|
-
export declare function loginHandler(apiUrl: string): (req: NextRequest) => Promise<NextResponse<
|
|
3
|
-
message: any;
|
|
4
|
-
success: boolean;
|
|
5
|
-
}>>;
|
|
2
|
+
export declare function loginHandler(apiUrl: string): (req: NextRequest) => Promise<NextResponse<any>>;
|
|
@@ -31,12 +31,7 @@ export function loginHandler(apiUrl) {
|
|
|
31
31
|
const returnTo = (_c = cookieStore.get("returnTo")) === null || _c === void 0 ? void 0 : _c.value;
|
|
32
32
|
const lastVisited = (_d = cookieStore.get("lastVisited")) === null || _d === void 0 ? void 0 : _d.value;
|
|
33
33
|
const redirectTo = returnTo || lastVisited || "/";
|
|
34
|
-
const res = NextResponse.json({
|
|
35
|
-
message: "Login successful",
|
|
36
|
-
success: true,
|
|
37
|
-
user: data.data.user,
|
|
38
|
-
redirectTo,
|
|
39
|
-
});
|
|
34
|
+
const res = NextResponse.json(Object.assign(Object.assign({}, data), { redirectTo }));
|
|
40
35
|
const cookieOptions = {
|
|
41
36
|
secure: process.env.NODE_ENV === "production",
|
|
42
37
|
sameSite: "strict",
|
|
@@ -54,10 +49,7 @@ export function loginHandler(apiUrl) {
|
|
|
54
49
|
res.cookies.set(Object.assign(Object.assign({ name: "isLoggedIn", value: "true" }, cookieOptions), { httpOnly: false }));
|
|
55
50
|
return res;
|
|
56
51
|
}
|
|
57
|
-
return NextResponse.json({
|
|
58
|
-
message: data.message || "Login failed",
|
|
59
|
-
success: false,
|
|
60
|
-
}, { status: 401 });
|
|
52
|
+
return NextResponse.json(data, { status: 401 });
|
|
61
53
|
}
|
|
62
54
|
catch (err) {
|
|
63
55
|
console.error("Login error:", err);
|
|
@@ -1,5 +1,2 @@
|
|
|
1
1
|
import { NextRequest, NextResponse } from "next/server";
|
|
2
|
-
export declare function registerHandler(apiUrl: string): (req: NextRequest) => Promise<NextResponse<
|
|
3
|
-
message: any;
|
|
4
|
-
success: boolean;
|
|
5
|
-
}>>;
|
|
2
|
+
export declare function registerHandler(apiUrl: string): (req: NextRequest) => Promise<NextResponse<any>>;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* @Author: Mohammad Felfelani
|
|
3
|
-
* @Email: mfelfelani72@gmail.com
|
|
4
|
-
* @Team:
|
|
5
|
-
* @Date: 2025-12-31 06:00:17
|
|
6
|
-
* @Description: Register handler with Next.js native cookies
|
|
7
|
-
*/
|
|
2
|
+
* @Author: Mohammad Felfelani
|
|
3
|
+
* @Email: mfelfelani72@gmail.com
|
|
4
|
+
* @Team:
|
|
5
|
+
* @Date: 2025-12-31 06:00:17
|
|
6
|
+
* @Description: Register handler with Next.js native cookies
|
|
7
|
+
*/
|
|
8
8
|
import { cookies } from "next/headers";
|
|
9
9
|
import { NextResponse, } from "next/server";
|
|
10
10
|
// Functions
|
|
11
11
|
import { cns } from "forma-li";
|
|
12
12
|
export function registerHandler(apiUrl) {
|
|
13
13
|
return async function POST(req) {
|
|
14
|
-
var _a, _b, _c;
|
|
14
|
+
var _a, _b, _c, _d;
|
|
15
15
|
try {
|
|
16
16
|
const body = await req.json();
|
|
17
17
|
const { name, email, password, confirmPassword, } = body;
|
|
@@ -85,10 +85,10 @@ export function registerHandler(apiUrl) {
|
|
|
85
85
|
}, { status: 500 });
|
|
86
86
|
}
|
|
87
87
|
if (data.success &&
|
|
88
|
-
((_a = data.data) === null || _a === void 0 ? void 0 : _a.access_token)) {
|
|
88
|
+
((_b = (_a = data.data) === null || _a === void 0 ? void 0 : _a.token) === null || _b === void 0 ? void 0 : _b.access_token)) {
|
|
89
89
|
const cookieStore = await cookies();
|
|
90
|
-
const returnTo = (
|
|
91
|
-
const lastVisited = (
|
|
90
|
+
const returnTo = (_c = cookieStore.get("returnTo")) === null || _c === void 0 ? void 0 : _c.value;
|
|
91
|
+
const lastVisited = (_d = cookieStore.get("lastVisited")) === null || _d === void 0 ? void 0 : _d.value;
|
|
92
92
|
const redirectTo = returnTo ||
|
|
93
93
|
lastVisited ||
|
|
94
94
|
"/";
|
|
@@ -97,13 +97,7 @@ export function registerHandler(apiUrl) {
|
|
|
97
97
|
lastVisited,
|
|
98
98
|
redirectTo,
|
|
99
99
|
});
|
|
100
|
-
const res = NextResponse.json({
|
|
101
|
-
message: data.message ||
|
|
102
|
-
"Registration successful",
|
|
103
|
-
success: true,
|
|
104
|
-
user: data.data.user,
|
|
105
|
-
redirectTo,
|
|
106
|
-
});
|
|
100
|
+
const res = NextResponse.json(Object.assign(Object.assign({}, data), { redirectTo }));
|
|
107
101
|
const cookieOptions = {
|
|
108
102
|
secure: process.env.NODE_ENV ===
|
|
109
103
|
"production",
|
|
@@ -113,12 +107,14 @@ export function registerHandler(apiUrl) {
|
|
|
113
107
|
};
|
|
114
108
|
// Auth token
|
|
115
109
|
res.cookies.set(Object.assign(Object.assign({ name: "app_key", value: JSON.stringify({
|
|
116
|
-
tk: data.data.
|
|
110
|
+
tk: data.data.token
|
|
111
|
+
.access_token,
|
|
117
112
|
ud: data.data.user.uuid ||
|
|
118
113
|
data.data.user.id,
|
|
119
114
|
}) }, cookieOptions), { httpOnly: false }));
|
|
120
115
|
// Token type
|
|
121
|
-
res.cookies.set(Object.assign(Object.assign({ name: "key_type", value: data.data.
|
|
116
|
+
res.cookies.set(Object.assign(Object.assign({ name: "key_type", value: data.data.token
|
|
117
|
+
.token_type ||
|
|
122
118
|
"Bearer" }, cookieOptions), { httpOnly: false }));
|
|
123
119
|
// User
|
|
124
120
|
res.cookies.set(Object.assign(Object.assign({ name: "user", value: JSON.stringify(data.data.user) }, cookieOptions), { httpOnly: false }));
|
|
@@ -126,12 +122,7 @@ export function registerHandler(apiUrl) {
|
|
|
126
122
|
res.cookies.set(Object.assign(Object.assign({ name: "isLoggedIn", value: "true" }, cookieOptions), { httpOnly: false }));
|
|
127
123
|
return res;
|
|
128
124
|
}
|
|
129
|
-
return NextResponse.json({
|
|
130
|
-
message: data.message ||
|
|
131
|
-
"Registration failed",
|
|
132
|
-
success: false,
|
|
133
|
-
errors: data.errors,
|
|
134
|
-
}, { status: 400 });
|
|
125
|
+
return NextResponse.json(data, { status: 400 });
|
|
135
126
|
}
|
|
136
127
|
catch (err) {
|
|
137
128
|
console.error("Registration error:", err);
|
package/package.json
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "next-auth-mfelfelani72",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.55",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"files": [
|
|
7
|
-
"dist"
|
|
7
|
+
"dist",
|
|
8
|
+
"styles"
|
|
8
9
|
],
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"import": "./dist/index.js"
|
|
14
|
+
},
|
|
15
|
+
"./theme.css": "./styles/themes/auth-contract.css"
|
|
16
|
+
},
|
|
9
17
|
"private": false,
|
|
10
18
|
"dependencies": {
|
|
11
19
|
"axios": "^1.19.0",
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
/*
|
|
2
|
+
|--------------------------------------------------------------------------
|
|
3
|
+
| Auth Theme
|
|
4
|
+
|--------------------------------------------------------------------------
|
|
5
|
+
|
|
|
6
|
+
| Default theme for the Auth package.
|
|
7
|
+
| Host applications can override these --auth-* variables later.
|
|
8
|
+
|
|
|
9
|
+
|--------------------------------------------------------------------------
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
:root {
|
|
13
|
+
/*
|
|
14
|
+
|--------------------------------------------------------------------------
|
|
15
|
+
| Base
|
|
16
|
+
|--------------------------------------------------------------------------
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
--auth-color-theme: rgba(31, 30, 46, 1);
|
|
20
|
+
--auth-color-background: rgba(31, 30, 46, 1);
|
|
21
|
+
--auth-color-background-light: rgba(40, 38, 58, 1);
|
|
22
|
+
|
|
23
|
+
/*
|
|
24
|
+
|--------------------------------------------------------------------------
|
|
25
|
+
| Warning
|
|
26
|
+
|--------------------------------------------------------------------------
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
--auth-color-warning-600: rgba(215, 187, 30, 1);
|
|
30
|
+
--auth-color-warning-500: rgba(215, 187, 30, 1);
|
|
31
|
+
--auth-color-warning-400: rgba(229, 205, 67, 1);
|
|
32
|
+
--auth-color-warning-300: rgba(234, 215, 105, 1);
|
|
33
|
+
--auth-color-warning-200: rgba(239, 225, 142, 1);
|
|
34
|
+
--auth-color-warning-100: rgba(245, 235, 180, 1);
|
|
35
|
+
--auth-color-warning-50: rgba(245, 235, 180, 1);
|
|
36
|
+
|
|
37
|
+
/*
|
|
38
|
+
|--------------------------------------------------------------------------
|
|
39
|
+
| Success
|
|
40
|
+
|--------------------------------------------------------------------------
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
--auth-color-success-600: rgba(45, 215, 30, 1);
|
|
44
|
+
--auth-color-success-500: rgba(45, 215, 30, 1);
|
|
45
|
+
--auth-color-success-400: rgba(80, 229, 67, 1);
|
|
46
|
+
--auth-color-success-300: rgba(115, 234, 105, 1);
|
|
47
|
+
--auth-color-success-200: rgba(150, 239, 142, 1);
|
|
48
|
+
--auth-color-success-100: rgba(185, 245, 180, 1);
|
|
49
|
+
--auth-color-success-50: rgba(220, 250, 217, 1);
|
|
50
|
+
|
|
51
|
+
/*
|
|
52
|
+
|--------------------------------------------------------------------------
|
|
53
|
+
| Error
|
|
54
|
+
|--------------------------------------------------------------------------
|
|
55
|
+
*/
|
|
56
|
+
|
|
57
|
+
--auth-color-error-600: rgba(215, 30, 30, 1);
|
|
58
|
+
--auth-color-error-500: rgba(215, 30, 30, 1);
|
|
59
|
+
--auth-color-error-400: rgba(229, 67, 67, 1);
|
|
60
|
+
--auth-color-error-300: rgba(234, 105, 105, 1);
|
|
61
|
+
--auth-color-error-200: rgba(239, 142, 142, 1);
|
|
62
|
+
--auth-color-error-100: rgba(245, 180, 180, 1);
|
|
63
|
+
--auth-color-error-50: rgba(250, 217, 217, 1);
|
|
64
|
+
|
|
65
|
+
/*
|
|
66
|
+
|--------------------------------------------------------------------------
|
|
67
|
+
| Secondary
|
|
68
|
+
|--------------------------------------------------------------------------
|
|
69
|
+
*/
|
|
70
|
+
|
|
71
|
+
--auth-color-secondary-600: rgba(145, 118, 234, 1);
|
|
72
|
+
--auth-color-secondary-500: rgba(145, 118, 234, 1);
|
|
73
|
+
--auth-color-secondary-400: rgba(180, 162, 241, 1);
|
|
74
|
+
--auth-color-secondary-300: rgba(195, 181, 244, 1);
|
|
75
|
+
--auth-color-secondary-200: rgba(225, 218, 249, 1);
|
|
76
|
+
--auth-color-secondary-100: rgba(240, 236, 252, 1);
|
|
77
|
+
--auth-color-secondary-50: rgba(247, 246, 254, 1);
|
|
78
|
+
|
|
79
|
+
/*
|
|
80
|
+
|--------------------------------------------------------------------------
|
|
81
|
+
| Neutral
|
|
82
|
+
|--------------------------------------------------------------------------
|
|
83
|
+
*/
|
|
84
|
+
|
|
85
|
+
--auth-color-neutral-600: rgba(10, 10, 15, 1);
|
|
86
|
+
--auth-color-neutral-500: rgba(31, 30, 46, 1);
|
|
87
|
+
--auth-color-neutral-400: rgba(76, 75, 88, 1);
|
|
88
|
+
--auth-color-neutral-300: rgba(121, 120, 130, 1);
|
|
89
|
+
--auth-color-neutral-200: rgba(165, 165, 171, 1);
|
|
90
|
+
--auth-color-neutral-100: rgba(210, 210, 213, 1);
|
|
91
|
+
--auth-color-neutral-50: rgba(242, 242, 243, 1);
|
|
92
|
+
|
|
93
|
+
/*
|
|
94
|
+
|--------------------------------------------------------------------------
|
|
95
|
+
| Primary
|
|
96
|
+
|--------------------------------------------------------------------------
|
|
97
|
+
*/
|
|
98
|
+
|
|
99
|
+
--auth-color-primary-600: rgba(204, 110, 60, 1);
|
|
100
|
+
--auth-color-primary-500: rgba(204, 110, 60, 1);
|
|
101
|
+
--auth-color-primary-400: rgba(229, 124, 67, 1);
|
|
102
|
+
--auth-color-primary-300: rgba(234, 150, 105, 1);
|
|
103
|
+
--auth-color-primary-200: rgba(239, 176, 142, 1);
|
|
104
|
+
--auth-color-primary-100: rgba(245, 203, 180, 1);
|
|
105
|
+
--auth-color-primary-50: rgba(250, 229, 217, 1);
|
|
106
|
+
|
|
107
|
+
/*
|
|
108
|
+
|--------------------------------------------------------------------------
|
|
109
|
+
| Tertiary
|
|
110
|
+
|--------------------------------------------------------------------------
|
|
111
|
+
*/
|
|
112
|
+
|
|
113
|
+
--auth-color-tertiary-600: rgba(83, 145, 208, 1);
|
|
114
|
+
--auth-color-tertiary-500: rgba(83, 145, 208, 1);
|
|
115
|
+
--auth-color-tertiary-400: rgba(117, 167, 217, 1);
|
|
116
|
+
--auth-color-tertiary-300: rgba(152, 189, 227, 1);
|
|
117
|
+
--auth-color-tertiary-200: rgba(186, 211, 236, 1);
|
|
118
|
+
--auth-color-tertiary-100: rgba(221, 233, 246, 1);
|
|
119
|
+
--auth-color-tertiary-50: rgba(237, 244, 250, 1);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/*
|
|
123
|
+
|--------------------------------------------------------------------------
|
|
124
|
+
| Tailwind Theme
|
|
125
|
+
|--------------------------------------------------------------------------
|
|
126
|
+
*/
|
|
127
|
+
|
|
128
|
+
@theme inline {
|
|
129
|
+
/*
|
|
130
|
+
|--------------------------------------------------------------------------
|
|
131
|
+
| Base
|
|
132
|
+
|--------------------------------------------------------------------------
|
|
133
|
+
*/
|
|
134
|
+
|
|
135
|
+
--color-theme: var(--auth-color-theme);
|
|
136
|
+
--color-background: var(--auth-color-background);
|
|
137
|
+
--color-background-light: var(--auth-color-background-light);
|
|
138
|
+
|
|
139
|
+
/*
|
|
140
|
+
|--------------------------------------------------------------------------
|
|
141
|
+
| Primary
|
|
142
|
+
|--------------------------------------------------------------------------
|
|
143
|
+
*/
|
|
144
|
+
|
|
145
|
+
--color-primary-50: var(--auth-color-primary-50);
|
|
146
|
+
--color-primary-100: var(--auth-color-primary-100);
|
|
147
|
+
--color-primary-200: var(--auth-color-primary-200);
|
|
148
|
+
--color-primary-300: var(--auth-color-primary-300);
|
|
149
|
+
--color-primary-400: var(--auth-color-primary-400);
|
|
150
|
+
--color-primary-500: var(--auth-color-primary-500);
|
|
151
|
+
--color-primary-600: var(--auth-color-primary-600);
|
|
152
|
+
|
|
153
|
+
/*
|
|
154
|
+
|--------------------------------------------------------------------------
|
|
155
|
+
| Secondary
|
|
156
|
+
|--------------------------------------------------------------------------
|
|
157
|
+
*/
|
|
158
|
+
|
|
159
|
+
--color-secondary-50: var(--auth-color-secondary-50);
|
|
160
|
+
--color-secondary-100: var(--auth-color-secondary-100);
|
|
161
|
+
--color-secondary-200: var(--auth-color-secondary-200);
|
|
162
|
+
--color-secondary-300: var(--auth-color-secondary-300);
|
|
163
|
+
--color-secondary-400: var(--auth-color-secondary-400);
|
|
164
|
+
--color-secondary-500: var(--auth-color-secondary-500);
|
|
165
|
+
--color-secondary-600: var(--auth-color-secondary-600);
|
|
166
|
+
|
|
167
|
+
/*
|
|
168
|
+
|--------------------------------------------------------------------------
|
|
169
|
+
| Tertiary
|
|
170
|
+
|--------------------------------------------------------------------------
|
|
171
|
+
*/
|
|
172
|
+
|
|
173
|
+
--color-Tertiary-50: var(--auth-color-tertiary-50);
|
|
174
|
+
--color-Tertiary-100: var(--auth-color-tertiary-100);
|
|
175
|
+
--color-Tertiary-200: var(--auth-color-tertiary-200);
|
|
176
|
+
--color-Tertiary-300: var(--auth-color-tertiary-300);
|
|
177
|
+
--color-Tertiary-400: var(--auth-color-tertiary-400);
|
|
178
|
+
--color-Tertiary-500: var(--auth-color-tertiary-500);
|
|
179
|
+
--color-Tertiary-600: var(--auth-color-tertiary-600);
|
|
180
|
+
|
|
181
|
+
/*
|
|
182
|
+
|--------------------------------------------------------------------------
|
|
183
|
+
| Neutral
|
|
184
|
+
|--------------------------------------------------------------------------
|
|
185
|
+
*/
|
|
186
|
+
|
|
187
|
+
--color-Neutral-50: var(--auth-color-neutral-50);
|
|
188
|
+
--color-Neutral-100: var(--auth-color-neutral-100);
|
|
189
|
+
--color-Neutral-200: var(--auth-color-neutral-200);
|
|
190
|
+
--color-Neutral-300: var(--auth-color-neutral-300);
|
|
191
|
+
--color-Neutral-400: var(--auth-color-neutral-400);
|
|
192
|
+
--color-Neutral-500: var(--auth-color-neutral-500);
|
|
193
|
+
--color-Neutral-600: var(--auth-color-neutral-600);
|
|
194
|
+
|
|
195
|
+
/*
|
|
196
|
+
|--------------------------------------------------------------------------
|
|
197
|
+
| Success
|
|
198
|
+
|--------------------------------------------------------------------------
|
|
199
|
+
*/
|
|
200
|
+
|
|
201
|
+
--color-Success-50: var(--auth-color-success-50);
|
|
202
|
+
--color-Success-100: var(--auth-color-success-100);
|
|
203
|
+
--color-Success-200: var(--auth-color-success-200);
|
|
204
|
+
--color-Success-300: var(--auth-color-success-300);
|
|
205
|
+
--color-Success-400: var(--auth-color-success-400);
|
|
206
|
+
--color-Success-500: var(--auth-color-success-500);
|
|
207
|
+
--color-Success-600: var(--auth-color-success-600);
|
|
208
|
+
|
|
209
|
+
/*
|
|
210
|
+
|--------------------------------------------------------------------------
|
|
211
|
+
| Warning
|
|
212
|
+
|--------------------------------------------------------------------------
|
|
213
|
+
*/
|
|
214
|
+
|
|
215
|
+
--color-Warning-50: var(--auth-color-warning-50);
|
|
216
|
+
--color-Warning-100: var(--auth-color-warning-100);
|
|
217
|
+
--color-Warning-200: var(--auth-color-warning-200);
|
|
218
|
+
--color-Warning-300: var(--auth-color-warning-300);
|
|
219
|
+
--color-Warning-400: var(--auth-color-warning-400);
|
|
220
|
+
--color-Warning-500: var(--auth-color-warning-500);
|
|
221
|
+
--color-Warning-600: var(--auth-color-warning-600);
|
|
222
|
+
|
|
223
|
+
/*
|
|
224
|
+
|--------------------------------------------------------------------------
|
|
225
|
+
| Error
|
|
226
|
+
|--------------------------------------------------------------------------
|
|
227
|
+
*/
|
|
228
|
+
|
|
229
|
+
--color-Error-50: var(--auth-color-error-50);
|
|
230
|
+
--color-Error-100: var(--auth-color-error-100);
|
|
231
|
+
--color-Error-200: var(--auth-color-error-200);
|
|
232
|
+
--color-Error-300: var(--auth-color-error-300);
|
|
233
|
+
--color-Error-400: var(--auth-color-error-400);
|
|
234
|
+
--color-Error-500: var(--auth-color-error-500);
|
|
235
|
+
--color-Error-600: var(--auth-color-error-600);
|
|
236
|
+
|
|
237
|
+
/*
|
|
238
|
+
|--------------------------------------------------------------------------
|
|
239
|
+
| Fonts
|
|
240
|
+
|--------------------------------------------------------------------------
|
|
241
|
+
*/
|
|
242
|
+
|
|
243
|
+
--font-spaceGrotesk: spaceGrotesk;
|
|
244
|
+
--font-satoshi: satoshi;
|
|
245
|
+
--font-iranSans: iranSans;
|
|
246
|
+
|
|
247
|
+
/*
|
|
248
|
+
|--------------------------------------------------------------------------
|
|
249
|
+
| Responsive
|
|
250
|
+
|--------------------------------------------------------------------------
|
|
251
|
+
*/
|
|
252
|
+
|
|
253
|
+
--breakpoint-small: 725px;
|
|
254
|
+
--breakpoint-medium: 925px;
|
|
255
|
+
--breakpoint-large: 1175px;
|
|
256
|
+
--breakpoint-extra: 1480px;
|
|
257
|
+
|
|
258
|
+
--breakpoint-watch: 12.5rem;
|
|
259
|
+
--breakpoint-xs: 20rem;
|
|
260
|
+
--breakpoint-xss: 22.5rem;
|
|
261
|
+
--breakpoint-sm: 23.5rem;
|
|
262
|
+
--breakpoint-md: 30rem;
|
|
263
|
+
--breakpoint-mdd: 33.75rem;
|
|
264
|
+
--breakpoint-lg: 40rem;
|
|
265
|
+
--breakpoint-xl: 48rem;
|
|
266
|
+
--breakpoint-xll: 62rem;
|
|
267
|
+
--breakpoint-2xl: 64rem;
|
|
268
|
+
--breakpoint-3xl: 80rem;
|
|
269
|
+
--breakpoint-4xl: 90rem;
|
|
270
|
+
--breakpoint-5xl: 120rem;
|
|
271
|
+
--breakpoint-6xl: 160rem;
|
|
272
|
+
--breakpoint-7xl: 240rem;
|
|
273
|
+
--breakpoint-8xl: 480rem;
|
|
274
|
+
|
|
275
|
+
/*
|
|
276
|
+
|--------------------------------------------------------------------------
|
|
277
|
+
| Spacing
|
|
278
|
+
|--------------------------------------------------------------------------
|
|
279
|
+
*/
|
|
280
|
+
|
|
281
|
+
--spacing-default: 2rem;
|
|
282
|
+
--spacing-app-width: 96rem;
|
|
283
|
+
}
|
package/dist/configs/env.d.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
declare const serverSchema: z.ZodObject<{
|
|
3
|
-
AUTH_SECRET: z.ZodString;
|
|
4
|
-
DATABASE_URL: z.ZodString;
|
|
5
|
-
NEXTAUTH_URL: z.ZodOptional<z.ZodString>;
|
|
6
|
-
}, z.core.$strip>;
|
|
7
|
-
declare const clientSchema: z.ZodObject<{
|
|
8
|
-
NEXT_PUBLIC_APP_URL: z.ZodString;
|
|
9
|
-
NEXT_PUBLIC_API_URL: z.ZodString;
|
|
10
|
-
}, z.core.$strip>;
|
|
11
|
-
export type ServerEnv = z.infer<typeof serverSchema>;
|
|
12
|
-
export type ClientEnv = z.infer<typeof clientSchema>;
|
|
13
|
-
declare class EnvManager {
|
|
14
|
-
private _server;
|
|
15
|
-
private _client;
|
|
16
|
-
private _serverValidationErrors;
|
|
17
|
-
private _clientValidationErrors;
|
|
18
|
-
private _initialized;
|
|
19
|
-
private validate;
|
|
20
|
-
get server(): ServerEnv;
|
|
21
|
-
get client(): ClientEnv;
|
|
22
|
-
isServerValid(): boolean;
|
|
23
|
-
isClientValid(): boolean;
|
|
24
|
-
getServerErrors(): z.ZodError | null;
|
|
25
|
-
getClientErrors(): z.ZodError | null;
|
|
26
|
-
reset(): void;
|
|
27
|
-
}
|
|
28
|
-
export declare const env: EnvManager;
|
|
29
|
-
export declare function checkEnv(): boolean;
|
|
30
|
-
export {};
|
package/dist/configs/env.js
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
// src/config/env.ts
|
|
2
|
-
import { z } from "zod";
|
|
3
|
-
// Define schemas
|
|
4
|
-
const serverSchema = z.object({
|
|
5
|
-
AUTH_SECRET: z.string().min(32, "AUTH_SECRET must be at least 32 characters"),
|
|
6
|
-
DATABASE_URL: z.string().url("DATABASE_URL must be a valid URL"),
|
|
7
|
-
NEXTAUTH_URL: z.string().url().optional(),
|
|
8
|
-
});
|
|
9
|
-
const clientSchema = z.object({
|
|
10
|
-
NEXT_PUBLIC_APP_URL: z.string().url("NEXT_PUBLIC_APP_URL must be a valid URL"),
|
|
11
|
-
NEXT_PUBLIC_API_URL: z.string().url("NEXT_PUBLIC_API_URL must be a valid URL"),
|
|
12
|
-
});
|
|
13
|
-
// Helper to safely validate
|
|
14
|
-
function validateEnv(schema, env) {
|
|
15
|
-
const result = schema.safeParse(env);
|
|
16
|
-
if (result.success) {
|
|
17
|
-
return { success: true, data: result.data };
|
|
18
|
-
}
|
|
19
|
-
return { success: false, errors: result.error };
|
|
20
|
-
}
|
|
21
|
-
// Lazy validation - only runs when accessed
|
|
22
|
-
class EnvManager {
|
|
23
|
-
constructor() {
|
|
24
|
-
this._server = null;
|
|
25
|
-
this._client = null;
|
|
26
|
-
this._serverValidationErrors = null;
|
|
27
|
-
this._clientValidationErrors = null;
|
|
28
|
-
this._initialized = false;
|
|
29
|
-
}
|
|
30
|
-
validate() {
|
|
31
|
-
if (this._initialized)
|
|
32
|
-
return;
|
|
33
|
-
// Validate server env
|
|
34
|
-
const serverResult = validateEnv(serverSchema, process.env);
|
|
35
|
-
if (serverResult.success) {
|
|
36
|
-
this._server = serverResult.data;
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
this._serverValidationErrors = serverResult.errors;
|
|
40
|
-
}
|
|
41
|
-
// Validate client env
|
|
42
|
-
const clientResult = validateEnv(clientSchema, process.env);
|
|
43
|
-
if (clientResult.success) {
|
|
44
|
-
this._client = clientResult.data;
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
this._clientValidationErrors = clientResult.errors;
|
|
48
|
-
}
|
|
49
|
-
this._initialized = true;
|
|
50
|
-
}
|
|
51
|
-
get server() {
|
|
52
|
-
var _a;
|
|
53
|
-
this.validate();
|
|
54
|
-
if (this._server) {
|
|
55
|
-
return this._server;
|
|
56
|
-
}
|
|
57
|
-
throw new Error(`Missing or invalid server environment variables:\n` +
|
|
58
|
-
((_a = this._serverValidationErrors) === null || _a === void 0 ? void 0 : _a.issues.map(i => ` - ${i.path.join('.')}: ${i.message}`).join('\n')) +
|
|
59
|
-
`\n\nPlease add these to your .env.local file.`);
|
|
60
|
-
}
|
|
61
|
-
get client() {
|
|
62
|
-
var _a;
|
|
63
|
-
this.validate();
|
|
64
|
-
if (this._client) {
|
|
65
|
-
return this._client;
|
|
66
|
-
}
|
|
67
|
-
throw new Error(`Missing or invalid client environment variables:\n` +
|
|
68
|
-
((_a = this._clientValidationErrors) === null || _a === void 0 ? void 0 : _a.issues.map(i => ` - ${i.path.join('.')}: ${i.message}`).join('\n')) +
|
|
69
|
-
`\n\nPlease add these to your .env.local file.`);
|
|
70
|
-
}
|
|
71
|
-
// Check if all env vars are valid without throwing
|
|
72
|
-
isServerValid() {
|
|
73
|
-
this.validate();
|
|
74
|
-
return this._server !== null;
|
|
75
|
-
}
|
|
76
|
-
isClientValid() {
|
|
77
|
-
this.validate();
|
|
78
|
-
return this._client !== null;
|
|
79
|
-
}
|
|
80
|
-
// Get validation errors without throwing
|
|
81
|
-
getServerErrors() {
|
|
82
|
-
this.validate();
|
|
83
|
-
return this._serverValidationErrors;
|
|
84
|
-
}
|
|
85
|
-
getClientErrors() {
|
|
86
|
-
this.validate();
|
|
87
|
-
return this._clientValidationErrors;
|
|
88
|
-
}
|
|
89
|
-
// Reset validation (useful for testing)
|
|
90
|
-
reset() {
|
|
91
|
-
this._initialized = false;
|
|
92
|
-
this._server = null;
|
|
93
|
-
this._client = null;
|
|
94
|
-
this._serverValidationErrors = null;
|
|
95
|
-
this._clientValidationErrors = null;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
// Singleton instance
|
|
99
|
-
export const env = new EnvManager();
|
|
100
|
-
// Helper for package consumers to check their env
|
|
101
|
-
export function checkEnv() {
|
|
102
|
-
const errors = [];
|
|
103
|
-
if (!env.isServerValid()) {
|
|
104
|
-
const serverErrors = env.getServerErrors();
|
|
105
|
-
if (serverErrors) {
|
|
106
|
-
errors.push('Server environment variables:');
|
|
107
|
-
serverErrors.issues.forEach(issue => {
|
|
108
|
-
errors.push(` - ${issue.path.join('.')}: ${issue.message}`);
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
if (!env.isClientValid()) {
|
|
113
|
-
const clientErrors = env.getClientErrors();
|
|
114
|
-
if (clientErrors) {
|
|
115
|
-
errors.push('Client environment variables:');
|
|
116
|
-
clientErrors.issues.forEach(issue => {
|
|
117
|
-
errors.push(` - ${issue.path.join('.')}: ${issue.message}`);
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
if (errors.length > 0) {
|
|
122
|
-
console.warn('⚠️ Environment variable validation issues found:');
|
|
123
|
-
console.warn(errors.join('\n'));
|
|
124
|
-
console.warn('\nPlease add the required variables to your .env.local file');
|
|
125
|
-
return false;
|
|
126
|
-
}
|
|
127
|
-
console.log('✅ All environment variables are valid!');
|
|
128
|
-
return true;
|
|
129
|
-
}
|
package/dist/core/auth.d.ts
DELETED
package/dist/core/auth.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
// src/core/auth.ts
|
|
2
|
-
import { env } from '../configs/env';
|
|
3
|
-
export class AuthCore {
|
|
4
|
-
constructor() {
|
|
5
|
-
try {
|
|
6
|
-
// Accessing env.server will trigger validation
|
|
7
|
-
const server = env.server;
|
|
8
|
-
const client = env.client;
|
|
9
|
-
this.config = {
|
|
10
|
-
secret: server.AUTH_SECRET,
|
|
11
|
-
databaseUrl: server.DATABASE_URL,
|
|
12
|
-
appUrl: client.NEXT_PUBLIC_APP_URL,
|
|
13
|
-
apiUrl: client.NEXT_PUBLIC_API_URL,
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
catch (error) {
|
|
17
|
-
// Re-throw with clear message
|
|
18
|
-
if (error instanceof Error) {
|
|
19
|
-
throw new Error(`Auth package initialization failed: ${error.message}`);
|
|
20
|
-
}
|
|
21
|
-
throw error;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
async login(email, password) {
|
|
25
|
-
// Your login logic
|
|
26
|
-
console.log('Using config:', {
|
|
27
|
-
appUrl: this.config.appUrl,
|
|
28
|
-
apiUrl: this.config.apiUrl,
|
|
29
|
-
});
|
|
30
|
-
return { user: { email }, token: 'fake-token' };
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
export const auth = new AuthCore();
|