@driveflux/auth 4.0.86 → 4.0.88
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/AuthProvider.d.ts +0 -1
- package/dist/AuthProvider.js +76 -59
- package/dist/ability.d.ts +0 -1
- package/dist/authorization/constants.d.ts +1 -2
- package/dist/authorization/constants.js +45 -24
- package/dist/authorization/define.d.ts +0 -1
- package/dist/authorization/define.js +57 -28
- package/dist/authorization/fields/index.d.ts +0 -1
- package/dist/authorization/fields/index.js +4 -7
- package/dist/authorization/helpers.d.ts +0 -1
- package/dist/authorization/helpers.js +10 -8
- package/dist/authorization/index.d.ts +0 -1
- package/dist/authorization/index.js +6 -6
- package/dist/authorization/permissions-list.d.ts +0 -1
- package/dist/authorization/permissions-list.js +5 -7
- package/dist/authorization/quick.d.ts +0 -1
- package/dist/authorization/quick.js +1 -1
- package/dist/authorization/roles/admin/business-development-executive.d.ts +0 -1
- package/dist/authorization/roles/admin/business-development-executive.js +20 -7
- package/dist/authorization/roles/admin/ceo.d.ts +0 -1
- package/dist/authorization/roles/admin/ceo.js +4 -2
- package/dist/authorization/roles/admin/common.d.ts +0 -1
- package/dist/authorization/roles/admin/common.js +5 -3
- package/dist/authorization/roles/admin/concierge.d.ts +0 -1
- package/dist/authorization/roles/admin/concierge.js +35 -10
- package/dist/authorization/roles/admin/customer-success-executive.d.ts +0 -1
- package/dist/authorization/roles/admin/customer-success-executive.js +40 -10
- package/dist/authorization/roles/admin/data-analyst.d.ts +0 -1
- package/dist/authorization/roles/admin/data-analyst.js +7 -4
- package/dist/authorization/roles/admin/designer.d.ts +0 -1
- package/dist/authorization/roles/admin/designer.js +7 -4
- package/dist/authorization/roles/admin/engineer.d.ts +0 -1
- package/dist/authorization/roles/admin/engineer.js +7 -4
- package/dist/authorization/roles/admin/finance-executive.d.ts +0 -1
- package/dist/authorization/roles/admin/finance-executive.js +11 -4
- package/dist/authorization/roles/admin/head-of-business-development.d.ts +0 -1
- package/dist/authorization/roles/admin/head-of-business-development.js +14 -4
- package/dist/authorization/roles/admin/head-of-data-analytics.d.ts +0 -1
- package/dist/authorization/roles/admin/head-of-data-analytics.js +14 -4
- package/dist/authorization/roles/admin/head-of-engineering.d.ts +0 -1
- package/dist/authorization/roles/admin/head-of-engineering.js +17 -6
- package/dist/authorization/roles/admin/head-of-finance.d.ts +0 -1
- package/dist/authorization/roles/admin/head-of-finance.js +8 -3
- package/dist/authorization/roles/admin/head-of-human-resources.d.ts +0 -1
- package/dist/authorization/roles/admin/head-of-human-resources.js +13 -5
- package/dist/authorization/roles/admin/head-of-marketing.d.ts +0 -1
- package/dist/authorization/roles/admin/head-of-marketing.js +17 -5
- package/dist/authorization/roles/admin/head-of-operations.d.ts +0 -1
- package/dist/authorization/roles/admin/head-of-operations.js +8 -3
- package/dist/authorization/roles/admin/head-of-product.d.ts +0 -1
- package/dist/authorization/roles/admin/head-of-product.js +17 -6
- package/dist/authorization/roles/admin/head-of-sales.d.ts +0 -1
- package/dist/authorization/roles/admin/head-of-sales.js +17 -5
- package/dist/authorization/roles/admin/human-resources-executive.d.ts +0 -1
- package/dist/authorization/roles/admin/human-resources-executive.js +12 -5
- package/dist/authorization/roles/admin/marketing-executive.d.ts +0 -1
- package/dist/authorization/roles/admin/marketing-executive.js +7 -4
- package/dist/authorization/roles/admin/product-manager.d.ts +0 -1
- package/dist/authorization/roles/admin/product-manager.js +7 -4
- package/dist/authorization/roles/admin/sales-executive.d.ts +0 -1
- package/dist/authorization/roles/admin/sales-executive.js +24 -8
- package/dist/authorization/roles/consumer/business-admin.d.ts +0 -1
- package/dist/authorization/roles/consumer/business-admin.js +19 -6
- package/dist/authorization/roles/consumer/business-user.d.ts +0 -1
- package/dist/authorization/roles/consumer/business-user.js +18 -6
- package/dist/authorization/roles/consumer/member.d.ts +0 -1
- package/dist/authorization/roles/consumer/member.js +16 -6
- package/dist/authorization/types.d.ts +0 -1
- package/dist/authorization/types.js +1 -1
- package/dist/authorization/update-user-permissions.d.ts +0 -1
- package/dist/authorization/update-user-permissions.js +22 -15
- package/dist/authorization/utils.d.ts +0 -1
- package/dist/authorization/utils.js +26 -11
- package/dist/constants.d.ts +0 -1
- package/dist/constants.js +2 -4
- package/dist/context.d.ts +0 -1
- package/dist/context.js +8 -9
- package/dist/default.d.ts +0 -1
- package/dist/default.js +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/providers.d.ts +0 -1
- package/dist/react.d.ts +0 -1
- package/dist/server/authenticate-user.d.ts +0 -1
- package/dist/server/authenticate-user.js +11 -7
- package/dist/server/cors.d.ts +0 -1
- package/dist/server/cors.js +23 -12
- package/dist/server/credentials-provider.d.ts +0 -1
- package/dist/server/credentials-provider.js +2 -2
- package/dist/server/index.d.ts +0 -1
- package/dist/server/next-auth.js +104 -109
- package/dist/server/prisma-adapter.d.ts +0 -1
- package/dist/server/prisma-adapter.js +88 -52
- package/dist/server/types.d.ts +0 -1
- package/dist/server/verfiy-token.d.ts +0 -1
- package/dist/server/verfiy-token.js +39 -24
- package/dist/translations.d.ts +0 -1
- package/dist/translations.js +4 -4
- package/dist/types.d.ts +0 -1
- package/dist/use-auth.d.ts +0 -1
- package/dist/use-auth.js +1 -1
- package/dist/use-session.d.ts +0 -1
- package/dist/use-session.js +1 -1
- package/package.json +29 -29
|
@@ -4,136 +4,172 @@ export function PrismaAdapter() {
|
|
|
4
4
|
return {
|
|
5
5
|
// TODO
|
|
6
6
|
// @ts-expect-error TypeScript is not working here
|
|
7
|
-
createUser: async ({ id, groups, permissions, emailVerified, ...data })
|
|
7
|
+
createUser: async ({ id, groups, permissions, emailVerified, ...data })=>{
|
|
8
8
|
// @ts-expect-error
|
|
9
9
|
const userData = {
|
|
10
10
|
id: id || generateId('User'),
|
|
11
|
-
groups: groups || [
|
|
11
|
+
groups: groups || [
|
|
12
|
+
'member'
|
|
13
|
+
],
|
|
12
14
|
permissions: permissions || {},
|
|
13
15
|
emailVerified: Boolean(emailVerified),
|
|
14
16
|
email: data.email.toLowerCase().trim(),
|
|
15
|
-
...data
|
|
17
|
+
...data
|
|
16
18
|
};
|
|
17
19
|
const user = await prisma.user.create({
|
|
18
20
|
data: {
|
|
19
|
-
...userData
|
|
20
|
-
}
|
|
21
|
+
...userData
|
|
22
|
+
}
|
|
21
23
|
});
|
|
22
24
|
return user;
|
|
23
25
|
},
|
|
24
26
|
// TODO
|
|
25
27
|
// @ts-expect-error
|
|
26
|
-
getUser: (id)
|
|
28
|
+
getUser: (id)=>prisma.user.findUnique({
|
|
29
|
+
where: {
|
|
30
|
+
id
|
|
31
|
+
}
|
|
32
|
+
}),
|
|
27
33
|
// TODO
|
|
28
34
|
// @ts-expect-error
|
|
29
|
-
getUserByEmail: (email)
|
|
35
|
+
getUserByEmail: (email)=>prisma.user.findUnique({
|
|
36
|
+
where: {
|
|
37
|
+
email: email.toLowerCase().trim()
|
|
38
|
+
}
|
|
39
|
+
}),
|
|
30
40
|
// TODO
|
|
31
41
|
// @ts-expect-error
|
|
32
|
-
async getUserByAccount(provider_providerAccountId) {
|
|
42
|
+
async getUserByAccount (provider_providerAccountId) {
|
|
33
43
|
const account = await prisma.account.findUnique({
|
|
34
|
-
where: {
|
|
35
|
-
|
|
44
|
+
where: {
|
|
45
|
+
provider_providerAccountId
|
|
46
|
+
},
|
|
47
|
+
select: {
|
|
48
|
+
user: true
|
|
49
|
+
}
|
|
36
50
|
});
|
|
37
51
|
return account?.user ?? null;
|
|
38
52
|
},
|
|
39
53
|
// TODO
|
|
40
54
|
// @ts-expect-error
|
|
41
|
-
updateUser: ({ id, ...data })
|
|
55
|
+
updateUser: ({ id, ...data })=>{
|
|
42
56
|
// @ts-expect-error
|
|
43
57
|
const userData = {
|
|
44
58
|
email: data.email?.toLowerCase().trim(),
|
|
45
|
-
...data
|
|
59
|
+
...data
|
|
46
60
|
};
|
|
47
|
-
return prisma.user.update({
|
|
61
|
+
return prisma.user.update({
|
|
62
|
+
where: {
|
|
63
|
+
id
|
|
64
|
+
},
|
|
65
|
+
data: {
|
|
66
|
+
...userData
|
|
67
|
+
}
|
|
68
|
+
});
|
|
48
69
|
},
|
|
49
70
|
// TODO
|
|
50
71
|
// @ts-expect-error
|
|
51
|
-
deleteUser: (id)
|
|
72
|
+
deleteUser: (id)=>prisma.user.delete({
|
|
73
|
+
where: {
|
|
74
|
+
id
|
|
75
|
+
}
|
|
76
|
+
}),
|
|
52
77
|
// @ts-expect-error
|
|
53
|
-
linkAccount: ({ id, ...data })
|
|
78
|
+
linkAccount: ({ id, ...data })=>{
|
|
54
79
|
return prisma.account.create({
|
|
55
80
|
// @ts-expect-error
|
|
56
81
|
data: {
|
|
57
82
|
id: id || generateId('Account'),
|
|
58
|
-
...data
|
|
59
|
-
}
|
|
83
|
+
...data
|
|
84
|
+
}
|
|
60
85
|
});
|
|
61
86
|
},
|
|
62
87
|
// @ts-expect-error
|
|
63
|
-
unlinkAccount: (provider_providerAccountId)
|
|
64
|
-
|
|
65
|
-
|
|
88
|
+
unlinkAccount: (provider_providerAccountId)=>prisma.account.delete({
|
|
89
|
+
where: {
|
|
90
|
+
provider_providerAccountId
|
|
91
|
+
}
|
|
92
|
+
}),
|
|
66
93
|
// TODO
|
|
67
94
|
// @ts-expect-error
|
|
68
|
-
async getSessionAndUser(sessionToken) {
|
|
95
|
+
async getSessionAndUser (sessionToken) {
|
|
69
96
|
const userAndSession = await prisma.session.findUnique({
|
|
70
|
-
where: {
|
|
71
|
-
|
|
97
|
+
where: {
|
|
98
|
+
sessionToken
|
|
99
|
+
},
|
|
100
|
+
include: {
|
|
101
|
+
user: true
|
|
102
|
+
}
|
|
72
103
|
});
|
|
73
|
-
if (!userAndSession)
|
|
74
|
-
return null;
|
|
104
|
+
if (!userAndSession) return null;
|
|
75
105
|
const { user, ...session } = userAndSession;
|
|
76
|
-
return {
|
|
106
|
+
return {
|
|
107
|
+
user,
|
|
108
|
+
session
|
|
109
|
+
};
|
|
77
110
|
},
|
|
78
111
|
// TODO
|
|
79
112
|
// @ts-expect-error
|
|
80
|
-
async createSession({ id, ...data }) {
|
|
113
|
+
async createSession ({ id, ...data }) {
|
|
81
114
|
const session = await prisma.session.create({
|
|
82
115
|
data: {
|
|
83
116
|
id: id || generateId('Session'),
|
|
84
|
-
...data
|
|
85
|
-
}
|
|
117
|
+
...data
|
|
118
|
+
}
|
|
86
119
|
});
|
|
87
120
|
return session;
|
|
88
121
|
},
|
|
89
|
-
updateSession: (data)
|
|
122
|
+
updateSession: (data)=>{
|
|
90
123
|
return prisma.session.update({
|
|
91
|
-
where: {
|
|
92
|
-
|
|
124
|
+
where: {
|
|
125
|
+
sessionToken: data.sessionToken
|
|
126
|
+
},
|
|
127
|
+
data
|
|
93
128
|
});
|
|
94
129
|
},
|
|
95
|
-
deleteSession: async (sessionToken)
|
|
130
|
+
deleteSession: async (sessionToken)=>{
|
|
96
131
|
try {
|
|
97
|
-
await prisma.session.delete({
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
132
|
+
await prisma.session.delete({
|
|
133
|
+
where: {
|
|
134
|
+
sessionToken
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
} catch (_e) {
|
|
138
|
+
// TODO
|
|
139
|
+
// DO nothing for now
|
|
102
140
|
}
|
|
103
141
|
},
|
|
104
142
|
// TODO
|
|
105
143
|
// @ts-expect-error
|
|
106
|
-
async createVerificationToken({ id, ...data }) {
|
|
144
|
+
async createVerificationToken ({ id, ...data }) {
|
|
107
145
|
const verificationToken = await prisma.verificationToken.create({
|
|
108
146
|
data: {
|
|
109
147
|
id: id || generateId('VerificationToken'),
|
|
110
|
-
...data
|
|
111
|
-
}
|
|
148
|
+
...data
|
|
149
|
+
}
|
|
112
150
|
});
|
|
113
151
|
// TODO
|
|
114
152
|
// @ts-expect-errors // MongoDB needs an ID, but we don't
|
|
115
|
-
if (verificationToken.id)
|
|
116
|
-
verificationToken.id = undefined;
|
|
153
|
+
if (verificationToken.id) verificationToken.id = undefined;
|
|
117
154
|
return verificationToken;
|
|
118
155
|
},
|
|
119
|
-
async useVerificationToken(identifier_token) {
|
|
156
|
+
async useVerificationToken (identifier_token) {
|
|
120
157
|
try {
|
|
121
158
|
const verificationToken = await prisma.verificationToken.delete({
|
|
122
|
-
where: {
|
|
159
|
+
where: {
|
|
160
|
+
identifier_token
|
|
161
|
+
}
|
|
123
162
|
});
|
|
124
163
|
// TODO
|
|
125
164
|
// @ts-expect-errors // MongoDB needs an ID, but we don't
|
|
126
|
-
if (verificationToken.id)
|
|
127
|
-
verificationToken.id = undefined;
|
|
165
|
+
if (verificationToken.id) verificationToken.id = undefined;
|
|
128
166
|
return verificationToken;
|
|
129
|
-
}
|
|
130
|
-
catch (error) {
|
|
167
|
+
} catch (error) {
|
|
131
168
|
// If token already used/deleted, just return null
|
|
132
169
|
// https://www.prisma.io/docs/reference/api-reference/error-reference#p2025
|
|
133
|
-
if (error.code === 'P2025')
|
|
134
|
-
return null;
|
|
170
|
+
if (error.code === 'P2025') return null;
|
|
135
171
|
throw error;
|
|
136
172
|
}
|
|
137
|
-
}
|
|
173
|
+
}
|
|
138
174
|
};
|
|
139
175
|
}
|
package/dist/server/types.d.ts
CHANGED
|
@@ -11,4 +11,3 @@ export declare const verifyToken: (tokenIdOrValue: string | TokenWithMaybeUser,
|
|
|
11
11
|
export declare const clearToken: (tokenId: string) => Promise<void>;
|
|
12
12
|
export declare const clearExpiredTokens: () => Promise<void>;
|
|
13
13
|
export {};
|
|
14
|
-
//# sourceMappingURL=verfiy-token.d.ts.map
|
|
@@ -1,29 +1,36 @@
|
|
|
1
1
|
import { prisma } from '@driveflux/db';
|
|
2
|
-
import { makeProblem, PROBLEM_CORRUPT, PROBLEM_EXPIRED, PROBLEM_INVALID_DATA
|
|
2
|
+
import { makeProblem, PROBLEM_CORRUPT, PROBLEM_EXPIRED, PROBLEM_INVALID_DATA } from '@driveflux/problem';
|
|
3
3
|
import { Err, Ok } from '@driveflux/result';
|
|
4
|
-
export const verifyToken = async (tokenIdOrValue, verifications, option)
|
|
5
|
-
const token = typeof tokenIdOrValue === 'object'
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
export const verifyToken = async (tokenIdOrValue, verifications, option)=>{
|
|
5
|
+
const token = typeof tokenIdOrValue === 'object' ? tokenIdOrValue : await prisma.token.findFirst({
|
|
6
|
+
where: {
|
|
7
|
+
OR: [
|
|
8
|
+
{
|
|
9
|
+
id: tokenIdOrValue
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
value: tokenIdOrValue
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
...option?.includeUser ? {
|
|
17
|
+
include: {
|
|
18
|
+
user: true
|
|
19
|
+
}
|
|
20
|
+
} : {}
|
|
21
|
+
});
|
|
13
22
|
if (!token) {
|
|
14
23
|
return new Err(makeProblem(PROBLEM_INVALID_DATA, 'Invalid token'));
|
|
15
24
|
}
|
|
16
25
|
if (token.expiresAt && token.expiresAt.getTime() < Date.now()) {
|
|
17
26
|
return new Err(makeProblem(PROBLEM_EXPIRED, 'This token has expired'));
|
|
18
27
|
}
|
|
19
|
-
if (typeof verifications?.scope !== 'undefined' &&
|
|
20
|
-
token.scope !== verifications.scope) {
|
|
28
|
+
if (typeof verifications?.scope !== 'undefined' && token.scope !== verifications.scope) {
|
|
21
29
|
return new Err(makeProblem(PROBLEM_INVALID_DATA, 'Invalid token scope'));
|
|
22
30
|
}
|
|
23
31
|
if (typeof verifications?.metadata !== 'undefined') {
|
|
24
|
-
for (const key of Object.keys(verifications.metadata))
|
|
25
|
-
if (typeof verifications.metadata[key] !== 'undefined' &&
|
|
26
|
-
verifications.metadata[key] !== token.metadata?.[key]) {
|
|
32
|
+
for (const key of Object.keys(verifications.metadata)){
|
|
33
|
+
if (typeof verifications.metadata[key] !== 'undefined' && verifications.metadata[key] !== token.metadata?.[key]) {
|
|
27
34
|
return new Err(makeProblem(PROBLEM_INVALID_DATA, 'Invalid token data'));
|
|
28
35
|
}
|
|
29
36
|
}
|
|
@@ -33,22 +40,30 @@ export const verifyToken = async (tokenIdOrValue, verifications, option) => {
|
|
|
33
40
|
}
|
|
34
41
|
return new Ok(token);
|
|
35
42
|
};
|
|
36
|
-
export const clearToken = async (tokenId)
|
|
43
|
+
export const clearToken = async (tokenId)=>{
|
|
37
44
|
try {
|
|
38
45
|
await prisma.token.delete({
|
|
39
46
|
where: {
|
|
40
|
-
id: tokenId
|
|
41
|
-
}
|
|
47
|
+
id: tokenId
|
|
48
|
+
}
|
|
42
49
|
});
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
// Nothing to for now
|
|
50
|
+
} catch (_e) {
|
|
51
|
+
// Nothing to for now
|
|
46
52
|
}
|
|
47
53
|
};
|
|
48
|
-
export const clearExpiredTokens = async ()
|
|
54
|
+
export const clearExpiredTokens = async ()=>{
|
|
49
55
|
await prisma.token.deleteMany({
|
|
50
56
|
where: {
|
|
51
|
-
OR: [
|
|
52
|
-
|
|
57
|
+
OR: [
|
|
58
|
+
{
|
|
59
|
+
expiresAt: {
|
|
60
|
+
lte: new Date()
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
invalid: true
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
}
|
|
53
68
|
});
|
|
54
69
|
};
|
package/dist/translations.d.ts
CHANGED
|
@@ -9,4 +9,3 @@ export declare const translations: {
|
|
|
9
9
|
export declare const setTranslations: (ts: Partial<Translations>) => void;
|
|
10
10
|
export declare const setTranslation: <K extends keyof Translations>(key: K, value: Translations[K]) => void;
|
|
11
11
|
export {};
|
|
12
|
-
//# sourceMappingURL=translations.d.ts.map
|
package/dist/translations.js
CHANGED
|
@@ -4,15 +4,15 @@ export const translations = singleton('authTranslations', {
|
|
|
4
4
|
password: 'Password',
|
|
5
5
|
unauthenticated: 'Unauthenticated',
|
|
6
6
|
unauthenticatedDescription: 'You are not authenticated. Please log in to continue.',
|
|
7
|
-
wrongUsernameOrPassword: 'The username / password combination is invalid.'
|
|
7
|
+
wrongUsernameOrPassword: 'The username / password combination is invalid.'
|
|
8
8
|
});
|
|
9
|
-
export const setTranslations = (ts)
|
|
10
|
-
for
|
|
9
|
+
export const setTranslations = (ts)=>{
|
|
10
|
+
for(const key in ts){
|
|
11
11
|
// TODO
|
|
12
12
|
// @ts-expect-error
|
|
13
13
|
translations[key] = ts[key];
|
|
14
14
|
}
|
|
15
15
|
};
|
|
16
|
-
export const setTranslation = (key, value)
|
|
16
|
+
export const setTranslation = (key, value)=>{
|
|
17
17
|
translations[key] = value;
|
|
18
18
|
};
|
package/dist/types.d.ts
CHANGED
package/dist/use-auth.d.ts
CHANGED
package/dist/use-auth.js
CHANGED
package/dist/use-session.d.ts
CHANGED
package/dist/use-session.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@driveflux/auth",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.88",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -72,41 +72,41 @@
|
|
|
72
72
|
"dist"
|
|
73
73
|
],
|
|
74
74
|
"dependencies": {
|
|
75
|
-
"@casl/ability": "^6.
|
|
76
|
-
"@casl/prisma": "^1.
|
|
77
|
-
"@driveflux/config": "3.0.
|
|
78
|
-
"@driveflux/db": "4.1.
|
|
79
|
-
"@driveflux/fetch": "8.0.
|
|
80
|
-
"@driveflux/problem": "6.0.
|
|
81
|
-
"@driveflux/reporter": "7.0.
|
|
82
|
-
"@driveflux/result": "6.0.
|
|
83
|
-
"@driveflux/singleton": "3.0.
|
|
84
|
-
"@driveflux/ui": "3.0.
|
|
85
|
-
"@driveflux/utils": "6.0.
|
|
86
|
-
"@driveflux/web-analytics": "3.0.
|
|
75
|
+
"@casl/ability": "^6.8.1",
|
|
76
|
+
"@casl/prisma": "^1.6.2",
|
|
77
|
+
"@driveflux/config": "3.0.11",
|
|
78
|
+
"@driveflux/db": "4.1.19",
|
|
79
|
+
"@driveflux/fetch": "8.0.2",
|
|
80
|
+
"@driveflux/problem": "6.0.2",
|
|
81
|
+
"@driveflux/reporter": "7.0.3",
|
|
82
|
+
"@driveflux/result": "6.0.2",
|
|
83
|
+
"@driveflux/singleton": "3.0.1",
|
|
84
|
+
"@driveflux/ui": "3.0.4",
|
|
85
|
+
"@driveflux/utils": "6.0.1",
|
|
86
|
+
"@driveflux/web-analytics": "3.0.4",
|
|
87
87
|
"@types/cors": "^2.8.19",
|
|
88
|
-
"bcryptjs": "^3.0.
|
|
88
|
+
"bcryptjs": "^3.0.3",
|
|
89
89
|
"change-case": "^5.4.4",
|
|
90
|
-
"cors": "^2.8.
|
|
91
|
-
"jose": "^6.
|
|
90
|
+
"cors": "^2.8.6",
|
|
91
|
+
"jose": "^6.2.3",
|
|
92
92
|
"js-cookie": "^3.0.5",
|
|
93
|
-
"nanoid": "^5.1.
|
|
94
|
-
"next-auth": "
|
|
95
|
-
"universal-cookie": "^8.
|
|
93
|
+
"nanoid": "^5.1.11",
|
|
94
|
+
"next-auth": "4.24.14",
|
|
95
|
+
"universal-cookie": "^8.1.2"
|
|
96
96
|
},
|
|
97
97
|
"devDependencies": {
|
|
98
|
-
"@driveflux/fab": "4.0.
|
|
99
|
-
"@driveflux/tsconfig": "3.0.
|
|
100
|
-
"@swc/cli": "^0.
|
|
101
|
-
"@swc/core": "^1.
|
|
98
|
+
"@driveflux/fab": "4.0.1",
|
|
99
|
+
"@driveflux/tsconfig": "3.0.1",
|
|
100
|
+
"@swc/cli": "^0.8.1",
|
|
101
|
+
"@swc/core": "^1.15.33",
|
|
102
102
|
"@types/js-cookie": "^3.0.6",
|
|
103
|
-
"@types/node": "^
|
|
104
|
-
"@types/react": "19.2.
|
|
103
|
+
"@types/node": "^25.7.0",
|
|
104
|
+
"@types/react": "19.2.14",
|
|
105
105
|
"del-cli": "^7.0.0",
|
|
106
|
-
"next": "16.
|
|
107
|
-
"react": "19.2.
|
|
108
|
-
"swr": "^2.
|
|
109
|
-
"typescript": "^
|
|
106
|
+
"next": "16.2.6",
|
|
107
|
+
"react": "19.2.6",
|
|
108
|
+
"swr": "^2.4.1",
|
|
109
|
+
"typescript": "^6.0.3"
|
|
110
110
|
},
|
|
111
111
|
"scripts": {
|
|
112
112
|
"build": "fab",
|