@optimatech88/titomeet-shared-lib 1.0.25 → 1.0.26
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/.github/workflows/npm-publish.yml +34 -34
- package/.prettierrc +4 -4
- package/package.json +1 -1
- package/prisma/schema.prisma +15 -0
- package/src/auth/admin.middleware.ts +20 -20
- package/src/auth/auth.guard.ts +154 -154
- package/src/auth/auth.module.ts +25 -25
- package/src/cache/cache.module.ts +25 -25
- package/src/cache/cache.service.ts +19 -19
- package/src/index.ts +40 -40
- package/src/prisma/prisma.module.ts +9 -9
- package/src/prisma/prisma.service.ts +13 -13
- package/src/prisma/seed.ts +82 -82
- package/src/types/index.ts +12 -12
- package/src/utils/api/endpoints.ts +6 -6
- package/src/utils/constants.ts +13 -13
- package/src/utils/events.ts +7 -7
- package/src/utils/index.ts +11 -11
- package/tsconfig.json +24 -24
- package/dist/auth/admin.middleware.d.ts +0 -11
- package/dist/auth/admin.middleware.d.ts.map +0 -1
- package/dist/auth/admin.middleware.js +0 -26
- package/dist/auth/admin.middleware.js.map +0 -1
- package/dist/auth/auth.guard.d.ts +0 -25
- package/dist/auth/auth.guard.d.ts.map +0 -1
- package/dist/auth/auth.guard.js +0 -136
- package/dist/auth/auth.guard.js.map +0 -1
- package/dist/auth/auth.module.d.ts +0 -9
- package/dist/auth/auth.module.d.ts.map +0 -1
- package/dist/auth/auth.module.js +0 -33
- package/dist/auth/auth.module.js.map +0 -1
- package/dist/cache/cache.module.d.ts +0 -5
- package/dist/cache/cache.module.d.ts.map +0 -1
- package/dist/cache/cache.module.js +0 -41
- package/dist/cache/cache.module.js.map +0 -1
- package/dist/cache/cache.service.d.ts +0 -9
- package/dist/cache/cache.service.d.ts.map +0 -1
- package/dist/cache/cache.service.js +0 -38
- package/dist/cache/cache.service.js.map +0 -1
- package/dist/index.d.ts +0 -16
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -43
- package/dist/index.js.map +0 -1
- package/dist/prisma/prisma.module.d.ts +0 -3
- package/dist/prisma/prisma.module.d.ts.map +0 -1
- package/dist/prisma/prisma.module.js +0 -22
- package/dist/prisma/prisma.module.js.map +0 -1
- package/dist/prisma/prisma.service.d.ts +0 -7
- package/dist/prisma/prisma.service.d.ts.map +0 -1
- package/dist/prisma/prisma.service.js +0 -24
- package/dist/prisma/prisma.service.js.map +0 -1
- package/dist/prisma/seed.d.ts +0 -2
- package/dist/prisma/seed.d.ts.map +0 -1
- package/dist/prisma/seed.js +0 -73
- package/dist/prisma/seed.js.map +0 -1
- package/dist/types/index.d.ts +0 -12
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -3
- package/dist/types/index.js.map +0 -1
- package/dist/utils/api/endpoints.d.ts +0 -7
- package/dist/utils/api/endpoints.d.ts.map +0 -1
- package/dist/utils/api/endpoints.js +0 -10
- package/dist/utils/api/endpoints.js.map +0 -1
- package/dist/utils/constants.d.ts +0 -3
- package/dist/utils/constants.d.ts.map +0 -1
- package/dist/utils/constants.js +0 -15
- package/dist/utils/constants.js.map +0 -1
- package/dist/utils/events.d.ts +0 -7
- package/dist/utils/events.d.ts.map +0 -1
- package/dist/utils/events.js +0 -10
- package/dist/utils/events.js.map +0 -1
- package/dist/utils/index.d.ts +0 -8
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -14
- package/dist/utils/index.js.map +0 -1
package/src/index.ts
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
export * from './auth/auth.guard';
|
|
2
|
-
export {
|
|
3
|
-
PrismaClient, User, Account,
|
|
4
|
-
UserRole, Event, EventAccess,
|
|
5
|
-
EventVisibility, EventStatus,
|
|
6
|
-
EventPrice, Address,
|
|
7
|
-
Provider,
|
|
8
|
-
ProviderStatus,
|
|
9
|
-
EventCategory,
|
|
10
|
-
Review,
|
|
11
|
-
ProviderCategory,
|
|
12
|
-
Order,
|
|
13
|
-
OrderStatus,
|
|
14
|
-
OrderItem,
|
|
15
|
-
PaymentStatus,
|
|
16
|
-
Chat,
|
|
17
|
-
ChatUser,
|
|
18
|
-
Message,
|
|
19
|
-
Notification,
|
|
20
|
-
NotificationType,
|
|
21
|
-
} from '@prisma/client';
|
|
22
|
-
|
|
23
|
-
//auth
|
|
24
|
-
export * from './auth/auth.guard';
|
|
25
|
-
export * from './auth/auth.module';
|
|
26
|
-
export * from './auth/admin.middleware';
|
|
27
|
-
|
|
28
|
-
//cache
|
|
29
|
-
export * from './cache/cache.module';
|
|
30
|
-
export * from './cache/cache.service';
|
|
31
|
-
|
|
32
|
-
//prisma
|
|
33
|
-
export * from './prisma/prisma.module';
|
|
34
|
-
export * from './prisma/prisma.service';
|
|
35
|
-
export * from './prisma/seed';
|
|
36
|
-
export * from './types';
|
|
37
|
-
export * from './utils';
|
|
38
|
-
export * from './utils/api/endpoints';
|
|
39
|
-
export * from './utils/events';
|
|
40
|
-
|
|
1
|
+
export * from './auth/auth.guard';
|
|
2
|
+
export {
|
|
3
|
+
PrismaClient, User, Account,
|
|
4
|
+
UserRole, Event, EventAccess,
|
|
5
|
+
EventVisibility, EventStatus,
|
|
6
|
+
EventPrice, Address,
|
|
7
|
+
Provider,
|
|
8
|
+
ProviderStatus,
|
|
9
|
+
EventCategory,
|
|
10
|
+
Review,
|
|
11
|
+
ProviderCategory,
|
|
12
|
+
Order,
|
|
13
|
+
OrderStatus,
|
|
14
|
+
OrderItem,
|
|
15
|
+
PaymentStatus,
|
|
16
|
+
Chat,
|
|
17
|
+
ChatUser,
|
|
18
|
+
Message,
|
|
19
|
+
Notification,
|
|
20
|
+
NotificationType,
|
|
21
|
+
} from '@prisma/client';
|
|
22
|
+
|
|
23
|
+
//auth
|
|
24
|
+
export * from './auth/auth.guard';
|
|
25
|
+
export * from './auth/auth.module';
|
|
26
|
+
export * from './auth/admin.middleware';
|
|
27
|
+
|
|
28
|
+
//cache
|
|
29
|
+
export * from './cache/cache.module';
|
|
30
|
+
export * from './cache/cache.service';
|
|
31
|
+
|
|
32
|
+
//prisma
|
|
33
|
+
export * from './prisma/prisma.module';
|
|
34
|
+
export * from './prisma/prisma.service';
|
|
35
|
+
export * from './prisma/seed';
|
|
36
|
+
export * from './types';
|
|
37
|
+
export * from './utils';
|
|
38
|
+
export * from './utils/api/endpoints';
|
|
39
|
+
export * from './utils/events';
|
|
40
|
+
|
|
41
41
|
export { JwtService } from "@nestjs/jwt";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Module, Global } from '@nestjs/common';
|
|
2
|
-
import { PrismaService } from './prisma.service';
|
|
3
|
-
|
|
4
|
-
@Global()
|
|
5
|
-
@Module({
|
|
6
|
-
providers: [PrismaService],
|
|
7
|
-
exports: [PrismaService],
|
|
8
|
-
})
|
|
9
|
-
export class PrismaModule {}
|
|
1
|
+
import { Module, Global } from '@nestjs/common';
|
|
2
|
+
import { PrismaService } from './prisma.service';
|
|
3
|
+
|
|
4
|
+
@Global()
|
|
5
|
+
@Module({
|
|
6
|
+
providers: [PrismaService],
|
|
7
|
+
exports: [PrismaService],
|
|
8
|
+
})
|
|
9
|
+
export class PrismaModule {}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
|
|
2
|
-
import { PrismaClient } from '@prisma/client';
|
|
3
|
-
|
|
4
|
-
@Injectable()
|
|
5
|
-
export class PrismaService extends PrismaClient implements OnModuleInit, OnModuleDestroy {
|
|
6
|
-
async onModuleInit() {
|
|
7
|
-
await this.$connect();
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
async onModuleDestroy() {
|
|
11
|
-
await this.$disconnect();
|
|
12
|
-
}
|
|
13
|
-
}
|
|
1
|
+
import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
|
|
2
|
+
import { PrismaClient } from '@prisma/client';
|
|
3
|
+
|
|
4
|
+
@Injectable()
|
|
5
|
+
export class PrismaService extends PrismaClient implements OnModuleInit, OnModuleDestroy {
|
|
6
|
+
async onModuleInit() {
|
|
7
|
+
await this.$connect();
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
async onModuleDestroy() {
|
|
11
|
+
await this.$disconnect();
|
|
12
|
+
}
|
|
13
|
+
}
|
package/src/prisma/seed.ts
CHANGED
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
//create a seed for the prisma client
|
|
2
|
-
|
|
3
|
-
import { PrismaClient } from '@prisma/client';
|
|
4
|
-
|
|
5
|
-
const prisma = new PrismaClient();
|
|
6
|
-
|
|
7
|
-
async function main() {
|
|
8
|
-
try {
|
|
9
|
-
const categories = [
|
|
10
|
-
{
|
|
11
|
-
name: 'Music',
|
|
12
|
-
description: 'Music events',
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
name: 'Food',
|
|
16
|
-
description: 'Food events',
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
name: 'Art',
|
|
20
|
-
description: 'Art events',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
name: 'Sports',
|
|
24
|
-
description: 'Sports events',
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: 'Games',
|
|
28
|
-
description: 'Games events',
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
name: 'Dance',
|
|
32
|
-
description: 'Dance events',
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
name: 'Fashion',
|
|
36
|
-
description: 'Fashion events',
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
name: 'Tech',
|
|
40
|
-
description: 'Technology events',
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
name: 'Science',
|
|
44
|
-
description: 'Science events',
|
|
45
|
-
},
|
|
46
|
-
|
|
47
|
-
];
|
|
48
|
-
|
|
49
|
-
const categoriesCreated = await prisma.eventCategory.findMany({
|
|
50
|
-
where: {
|
|
51
|
-
name: {
|
|
52
|
-
in: categories.map((category) => category.name),
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
});
|
|
56
|
-
|
|
57
|
-
const categoriesNotCreated = categories.filter((category) => !categoriesCreated.some((c) => c.name === category.name));
|
|
58
|
-
|
|
59
|
-
if(categoriesNotCreated.length > 0) {
|
|
60
|
-
console.log(`Creating ${categoriesNotCreated.length} categories`);
|
|
61
|
-
await prisma.eventCategory.createMany({
|
|
62
|
-
data: categoriesNotCreated,
|
|
63
|
-
});
|
|
64
|
-
console.log(`Created ${categoriesNotCreated.length} categories`);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
} catch (error) {
|
|
69
|
-
console.error(error);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
main()
|
|
76
|
-
.catch((error) => {
|
|
77
|
-
console.error(error);
|
|
78
|
-
process.exit(1);
|
|
79
|
-
})
|
|
80
|
-
.finally(async () => {
|
|
81
|
-
await prisma.$disconnect();
|
|
82
|
-
});
|
|
1
|
+
//create a seed for the prisma client
|
|
2
|
+
|
|
3
|
+
import { PrismaClient } from '@prisma/client';
|
|
4
|
+
|
|
5
|
+
const prisma = new PrismaClient();
|
|
6
|
+
|
|
7
|
+
async function main() {
|
|
8
|
+
try {
|
|
9
|
+
const categories = [
|
|
10
|
+
{
|
|
11
|
+
name: 'Music',
|
|
12
|
+
description: 'Music events',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: 'Food',
|
|
16
|
+
description: 'Food events',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
name: 'Art',
|
|
20
|
+
description: 'Art events',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
name: 'Sports',
|
|
24
|
+
description: 'Sports events',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: 'Games',
|
|
28
|
+
description: 'Games events',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'Dance',
|
|
32
|
+
description: 'Dance events',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: 'Fashion',
|
|
36
|
+
description: 'Fashion events',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Tech',
|
|
40
|
+
description: 'Technology events',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Science',
|
|
44
|
+
description: 'Science events',
|
|
45
|
+
},
|
|
46
|
+
|
|
47
|
+
];
|
|
48
|
+
|
|
49
|
+
const categoriesCreated = await prisma.eventCategory.findMany({
|
|
50
|
+
where: {
|
|
51
|
+
name: {
|
|
52
|
+
in: categories.map((category) => category.name),
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
const categoriesNotCreated = categories.filter((category) => !categoriesCreated.some((c) => c.name === category.name));
|
|
58
|
+
|
|
59
|
+
if(categoriesNotCreated.length > 0) {
|
|
60
|
+
console.log(`Creating ${categoriesNotCreated.length} categories`);
|
|
61
|
+
await prisma.eventCategory.createMany({
|
|
62
|
+
data: categoriesNotCreated,
|
|
63
|
+
});
|
|
64
|
+
console.log(`Created ${categoriesNotCreated.length} categories`);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
} catch (error) {
|
|
69
|
+
console.error(error);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
main()
|
|
76
|
+
.catch((error) => {
|
|
77
|
+
console.error(error);
|
|
78
|
+
process.exit(1);
|
|
79
|
+
})
|
|
80
|
+
.finally(async () => {
|
|
81
|
+
await prisma.$disconnect();
|
|
82
|
+
});
|
package/src/types/index.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export interface PaginatedData<T> {
|
|
2
|
-
items: T[];
|
|
3
|
-
total: number;
|
|
4
|
-
page: number;
|
|
5
|
-
limit: number;
|
|
6
|
-
totalPages: number;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export interface PaginationQuery {
|
|
10
|
-
page?: string;
|
|
11
|
-
limit?: string;
|
|
12
|
-
}
|
|
1
|
+
export interface PaginatedData<T> {
|
|
2
|
+
items: T[];
|
|
3
|
+
total: number;
|
|
4
|
+
page: number;
|
|
5
|
+
limit: number;
|
|
6
|
+
totalPages: number;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export interface PaginationQuery {
|
|
10
|
+
page?: string;
|
|
11
|
+
limit?: string;
|
|
12
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export const CHAT_API_URL: string = "api/chats"
|
|
2
|
-
export const PROPERTIES_API_URL: string = "api/properties"
|
|
3
|
-
|
|
4
|
-
export const API_ENDPOINTS = {
|
|
5
|
-
CHAT: 'api/chats',
|
|
6
|
-
PROPERTIES_API_URL: 'api/properties',
|
|
1
|
+
export const CHAT_API_URL: string = "api/chats"
|
|
2
|
+
export const PROPERTIES_API_URL: string = "api/properties"
|
|
3
|
+
|
|
4
|
+
export const API_ENDPOINTS = {
|
|
5
|
+
CHAT: 'api/chats',
|
|
6
|
+
PROPERTIES_API_URL: 'api/properties',
|
|
7
7
|
}
|
package/src/utils/constants.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export const DEFAULT_AVATAR_IMAGE =
|
|
2
|
-
'https://immob-bucket-2.s3.us-east-2.amazonaws.com/pictures/images.png';
|
|
3
|
-
|
|
4
|
-
export const TEMPORARY_EMAIL_DOMAINS = [
|
|
5
|
-
'10minutemail.com',
|
|
6
|
-
'guerrillamail.com',
|
|
7
|
-
'mailinator.com',
|
|
8
|
-
'dispostable.com',
|
|
9
|
-
'yopmail.com',
|
|
10
|
-
'trashmail.com',
|
|
11
|
-
'tempmail.com',
|
|
12
|
-
'temp-mail.org',
|
|
13
|
-
];
|
|
1
|
+
export const DEFAULT_AVATAR_IMAGE =
|
|
2
|
+
'https://immob-bucket-2.s3.us-east-2.amazonaws.com/pictures/images.png';
|
|
3
|
+
|
|
4
|
+
export const TEMPORARY_EMAIL_DOMAINS = [
|
|
5
|
+
'10minutemail.com',
|
|
6
|
+
'guerrillamail.com',
|
|
7
|
+
'mailinator.com',
|
|
8
|
+
'dispostable.com',
|
|
9
|
+
'yopmail.com',
|
|
10
|
+
'trashmail.com',
|
|
11
|
+
'tempmail.com',
|
|
12
|
+
'temp-mail.org',
|
|
13
|
+
];
|
package/src/utils/events.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export const SOCKET_EVENTS = {
|
|
2
|
-
INBOX_OPENED: 'events.sockets.inboxOpened',
|
|
3
|
-
INBOX_CHANGED: 'events.sockets.inboxChanged',
|
|
4
|
-
NEW_MESSAGE: 'events.sockets.newMessage',
|
|
5
|
-
GET_UNREAD_MESSAGES_COUNT: 'events.sockets.getUnreadMessagesCount',
|
|
6
|
-
}
|
|
7
|
-
|
|
1
|
+
export const SOCKET_EVENTS = {
|
|
2
|
+
INBOX_OPENED: 'events.sockets.inboxOpened',
|
|
3
|
+
INBOX_CHANGED: 'events.sockets.inboxChanged',
|
|
4
|
+
NEW_MESSAGE: 'events.sockets.newMessage',
|
|
5
|
+
GET_UNREAD_MESSAGES_COUNT: 'events.sockets.getUnreadMessagesCount',
|
|
6
|
+
}
|
|
7
|
+
|
package/src/utils/index.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { PaginationQuery } from "@/types";
|
|
2
|
-
|
|
3
|
-
export const getPaginationData = (query: PaginationQuery) => {
|
|
4
|
-
const page = query.page as string;
|
|
5
|
-
const PAGE = parseInt(page, 10) || 1;
|
|
6
|
-
const LIMIT = Number(query.limit) || 10;
|
|
7
|
-
const SKIP = (PAGE - 1) * LIMIT;
|
|
8
|
-
|
|
9
|
-
return { page: PAGE, skip: SKIP, limit: LIMIT };
|
|
10
|
-
};
|
|
11
|
-
|
|
1
|
+
import { PaginationQuery } from "@/types";
|
|
2
|
+
|
|
3
|
+
export const getPaginationData = (query: PaginationQuery) => {
|
|
4
|
+
const page = query.page as string;
|
|
5
|
+
const PAGE = parseInt(page, 10) || 1;
|
|
6
|
+
const LIMIT = Number(query.limit) || 10;
|
|
7
|
+
const SKIP = (PAGE - 1) * LIMIT;
|
|
8
|
+
|
|
9
|
+
return { page: PAGE, skip: SKIP, limit: LIMIT };
|
|
10
|
+
};
|
|
11
|
+
|
|
12
12
|
export const getUserChannel = (userId: string) => `channels-user-${userId}`;
|
package/tsconfig.json
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"module": "commonjs",
|
|
4
|
-
"declaration": true,
|
|
5
|
-
"removeComments": true,
|
|
6
|
-
"emitDecoratorMetadata": true,
|
|
7
|
-
"experimentalDecorators": true,
|
|
8
|
-
"target": "ES2017",
|
|
9
|
-
"sourceMap": true,
|
|
10
|
-
"outDir": "./dist",
|
|
11
|
-
"baseUrl": ".",
|
|
12
|
-
"rootDir": "./src",
|
|
13
|
-
"paths": {
|
|
14
|
-
"@/*": ["./src/*"]
|
|
15
|
-
},
|
|
16
|
-
"strict": true,
|
|
17
|
-
"strictNullChecks": false,
|
|
18
|
-
"esModuleInterop": true,
|
|
19
|
-
"declarationMap": true,
|
|
20
|
-
"resolveJsonModule": true,
|
|
21
|
-
},
|
|
22
|
-
"include": ["src/**/*.ts"],
|
|
23
|
-
"exclude": ["node_modules", "dist"]
|
|
24
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"module": "commonjs",
|
|
4
|
+
"declaration": true,
|
|
5
|
+
"removeComments": true,
|
|
6
|
+
"emitDecoratorMetadata": true,
|
|
7
|
+
"experimentalDecorators": true,
|
|
8
|
+
"target": "ES2017",
|
|
9
|
+
"sourceMap": true,
|
|
10
|
+
"outDir": "./dist",
|
|
11
|
+
"baseUrl": ".",
|
|
12
|
+
"rootDir": "./src",
|
|
13
|
+
"paths": {
|
|
14
|
+
"@/*": ["./src/*"]
|
|
15
|
+
},
|
|
16
|
+
"strict": true,
|
|
17
|
+
"strictNullChecks": false,
|
|
18
|
+
"esModuleInterop": true,
|
|
19
|
+
"declarationMap": true,
|
|
20
|
+
"resolveJsonModule": true,
|
|
21
|
+
},
|
|
22
|
+
"include": ["src/**/*.ts"],
|
|
23
|
+
"exclude": ["node_modules", "dist"]
|
|
24
|
+
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { NestMiddleware } from '@nestjs/common';
|
|
2
|
-
import { Request, Response, NextFunction } from 'express';
|
|
3
|
-
import { User } from '@prisma/client';
|
|
4
|
-
interface RequestWithUser extends Request {
|
|
5
|
-
user?: User;
|
|
6
|
-
}
|
|
7
|
-
export declare class AdminMiddleware implements NestMiddleware {
|
|
8
|
-
use(req: RequestWithUser, res: Response, next: NextFunction): void;
|
|
9
|
-
}
|
|
10
|
-
export {};
|
|
11
|
-
//# sourceMappingURL=admin.middleware.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin.middleware.d.ts","sourceRoot":"","sources":["../../src/auth/admin.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,cAAc,EAAyB,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAY,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEhD,UAAU,eAAgB,SAAQ,OAAO;IACvC,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,qBACa,eAAgB,YAAW,cAAc;IACpD,GAAG,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY;CAS5D"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.AdminMiddleware = void 0;
|
|
10
|
-
const common_1 = require("@nestjs/common");
|
|
11
|
-
const client_1 = require("@prisma/client");
|
|
12
|
-
let AdminMiddleware = class AdminMiddleware {
|
|
13
|
-
use(req, res, next) {
|
|
14
|
-
var _a;
|
|
15
|
-
const user = req.user;
|
|
16
|
-
if (!user || !((_a = user.role) === null || _a === void 0 ? void 0 : _a.includes(client_1.UserRole.ADMIN))) {
|
|
17
|
-
throw new common_1.UnauthorizedException('Access denied. Admins only.');
|
|
18
|
-
}
|
|
19
|
-
next();
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
exports.AdminMiddleware = AdminMiddleware;
|
|
23
|
-
exports.AdminMiddleware = AdminMiddleware = __decorate([
|
|
24
|
-
(0, common_1.Injectable)()
|
|
25
|
-
], AdminMiddleware);
|
|
26
|
-
//# sourceMappingURL=admin.middleware.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin.middleware.js","sourceRoot":"","sources":["../../src/auth/admin.middleware.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAmF;AAEnF,2CAAgD;AAOzC,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,GAAG,CAAC,GAAoB,EAAE,GAAa,EAAE,IAAkB;;QACzD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QAEtB,IAAI,CAAC,IAAI,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,QAAQ,CAAC,iBAAQ,CAAC,KAAK,CAAC,CAAA,EAAE,CAAC;YAClD,MAAM,IAAI,8BAAqB,CAAC,6BAA6B,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,EAAE,CAAC;IACT,CAAC;CACF,CAAA;AAVY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;GACA,eAAe,CAU3B"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { CanActivate, ExecutionContext } from '@nestjs/common';
|
|
2
|
-
import { JwtService } from '@nestjs/jwt';
|
|
3
|
-
export declare class AuthGuard implements CanActivate {
|
|
4
|
-
private jwtService;
|
|
5
|
-
private prisma;
|
|
6
|
-
private logger;
|
|
7
|
-
constructor(jwtService: JwtService);
|
|
8
|
-
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
9
|
-
private extractTokenFromHeader;
|
|
10
|
-
}
|
|
11
|
-
export declare class OptionalAuthGuard implements CanActivate {
|
|
12
|
-
private jwtService;
|
|
13
|
-
private prisma;
|
|
14
|
-
constructor(jwtService: JwtService);
|
|
15
|
-
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
16
|
-
private extractTokenFromHeader;
|
|
17
|
-
}
|
|
18
|
-
export declare class AdminAuthGuard implements CanActivate {
|
|
19
|
-
private jwtService;
|
|
20
|
-
private prisma;
|
|
21
|
-
constructor(jwtService: JwtService);
|
|
22
|
-
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
23
|
-
private extractTokenFromHeader;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=auth.guard.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.guard.d.ts","sourceRoot":"","sources":["../../src/auth/auth.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAGjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMzC,qBACa,SAAU,YAAW,WAAW;IAKzC,OAAO,CAAC,UAAU;IAJpB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAA8B;gBAGlC,UAAU,EAAE,UAAU;IAK1B,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA+B9D,OAAO,CAAC,sBAAsB;CAK/B;AAGD,qBACa,iBAAkB,YAAW,WAAW;IAIjD,OAAO,CAAC,UAAU;IAHnB,OAAO,CAAC,MAAM,CAAe;gBAGpB,UAAU,EAAE,UAAU;IAK1B,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA4B9D,OAAO,CAAC,sBAAsB;CAI/B;AAGD,qBACa,cAAe,YAAW,WAAW;IAI9C,OAAO,CAAC,UAAU;IAHpB,OAAO,CAAC,MAAM,CAAe;gBAGnB,UAAU,EAAE,UAAU;IAK1B,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IA8B9D,OAAO,CAAC,sBAAsB;CAI/B"}
|
package/dist/auth/auth.guard.js
DELETED
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var AuthGuard_1;
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.AdminAuthGuard = exports.OptionalAuthGuard = exports.AuthGuard = void 0;
|
|
14
|
-
const common_1 = require("@nestjs/common");
|
|
15
|
-
const jwt_1 = require("@nestjs/jwt");
|
|
16
|
-
const client_1 = require("@prisma/client");
|
|
17
|
-
const common_2 = require("@nestjs/common");
|
|
18
|
-
let AuthGuard = AuthGuard_1 = class AuthGuard {
|
|
19
|
-
constructor(jwtService) {
|
|
20
|
-
this.jwtService = jwtService;
|
|
21
|
-
this.logger = new common_2.Logger(AuthGuard_1.name);
|
|
22
|
-
this.prisma = new client_1.PrismaClient();
|
|
23
|
-
}
|
|
24
|
-
async canActivate(context) {
|
|
25
|
-
this.logger.log('canActivate');
|
|
26
|
-
const request = context.switchToHttp().getRequest();
|
|
27
|
-
const token = this.extractTokenFromHeader(request);
|
|
28
|
-
if (!token) {
|
|
29
|
-
throw new common_1.UnauthorizedException();
|
|
30
|
-
}
|
|
31
|
-
try {
|
|
32
|
-
const payload = (await this.jwtService.verifyAsync(token));
|
|
33
|
-
this.logger.log('payload', payload);
|
|
34
|
-
const user = await this.prisma.user.findUnique({
|
|
35
|
-
where: { id: payload.userId }
|
|
36
|
-
});
|
|
37
|
-
this.logger.log('user', user);
|
|
38
|
-
if (!user) {
|
|
39
|
-
throw new common_1.UnauthorizedException();
|
|
40
|
-
}
|
|
41
|
-
request['user'] = user;
|
|
42
|
-
}
|
|
43
|
-
catch (_a) {
|
|
44
|
-
throw new common_1.UnauthorizedException();
|
|
45
|
-
}
|
|
46
|
-
return true;
|
|
47
|
-
}
|
|
48
|
-
extractTokenFromHeader(request) {
|
|
49
|
-
var _a, _b;
|
|
50
|
-
const [type, token] = (_b = (_a = request.headers.authorization) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
|
|
51
|
-
this.logger.log('extractTokenFromHeader', { type, token });
|
|
52
|
-
return type === 'Bearer' ? token : undefined;
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
exports.AuthGuard = AuthGuard;
|
|
56
|
-
exports.AuthGuard = AuthGuard = AuthGuard_1 = __decorate([
|
|
57
|
-
(0, common_1.Injectable)(),
|
|
58
|
-
__metadata("design:paramtypes", [jwt_1.JwtService])
|
|
59
|
-
], AuthGuard);
|
|
60
|
-
let OptionalAuthGuard = class OptionalAuthGuard {
|
|
61
|
-
constructor(jwtService) {
|
|
62
|
-
this.jwtService = jwtService;
|
|
63
|
-
this.prisma = new client_1.PrismaClient();
|
|
64
|
-
}
|
|
65
|
-
async canActivate(context) {
|
|
66
|
-
const request = context.switchToHttp().getRequest();
|
|
67
|
-
const token = this.extractTokenFromHeader(request);
|
|
68
|
-
if (!token) {
|
|
69
|
-
return true;
|
|
70
|
-
}
|
|
71
|
-
try {
|
|
72
|
-
const payload = (await this.jwtService.verifyAsync(token));
|
|
73
|
-
const user = await this.prisma.user.findUnique({
|
|
74
|
-
where: { id: payload.userId }
|
|
75
|
-
});
|
|
76
|
-
if (!user) {
|
|
77
|
-
throw new common_1.UnauthorizedException();
|
|
78
|
-
}
|
|
79
|
-
request['user'] = user;
|
|
80
|
-
}
|
|
81
|
-
catch (_a) {
|
|
82
|
-
}
|
|
83
|
-
return true;
|
|
84
|
-
}
|
|
85
|
-
extractTokenFromHeader(request) {
|
|
86
|
-
var _a, _b;
|
|
87
|
-
const [type, token] = (_b = (_a = request.headers.authorization) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
|
|
88
|
-
return type === 'Bearer' ? token : undefined;
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
exports.OptionalAuthGuard = OptionalAuthGuard;
|
|
92
|
-
exports.OptionalAuthGuard = OptionalAuthGuard = __decorate([
|
|
93
|
-
(0, common_1.Injectable)(),
|
|
94
|
-
__metadata("design:paramtypes", [jwt_1.JwtService])
|
|
95
|
-
], OptionalAuthGuard);
|
|
96
|
-
let AdminAuthGuard = class AdminAuthGuard {
|
|
97
|
-
constructor(jwtService) {
|
|
98
|
-
this.jwtService = jwtService;
|
|
99
|
-
this.prisma = new client_1.PrismaClient();
|
|
100
|
-
}
|
|
101
|
-
async canActivate(context) {
|
|
102
|
-
const request = context.switchToHttp().getRequest();
|
|
103
|
-
const token = this.extractTokenFromHeader(request);
|
|
104
|
-
if (!token) {
|
|
105
|
-
throw new common_1.UnauthorizedException();
|
|
106
|
-
}
|
|
107
|
-
try {
|
|
108
|
-
const payload = (await this.jwtService.verifyAsync(token));
|
|
109
|
-
const user = await this.prisma.user.findUnique({
|
|
110
|
-
where: { id: payload.userId }
|
|
111
|
-
});
|
|
112
|
-
if (!user) {
|
|
113
|
-
throw new common_1.UnauthorizedException();
|
|
114
|
-
}
|
|
115
|
-
if (user.role !== client_1.UserRole.ADMIN && user.role !== client_1.UserRole.SUPER_ADMIN) {
|
|
116
|
-
throw new common_1.UnauthorizedException();
|
|
117
|
-
}
|
|
118
|
-
request['user'] = user;
|
|
119
|
-
}
|
|
120
|
-
catch (_a) {
|
|
121
|
-
throw new common_1.UnauthorizedException();
|
|
122
|
-
}
|
|
123
|
-
return true;
|
|
124
|
-
}
|
|
125
|
-
extractTokenFromHeader(request) {
|
|
126
|
-
var _a, _b;
|
|
127
|
-
const [type, token] = (_b = (_a = request.headers.authorization) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];
|
|
128
|
-
return type === 'Bearer' ? token : undefined;
|
|
129
|
-
}
|
|
130
|
-
};
|
|
131
|
-
exports.AdminAuthGuard = AdminAuthGuard;
|
|
132
|
-
exports.AdminAuthGuard = AdminAuthGuard = __decorate([
|
|
133
|
-
(0, common_1.Injectable)(),
|
|
134
|
-
__metadata("design:paramtypes", [jwt_1.JwtService])
|
|
135
|
-
], AdminAuthGuard);
|
|
136
|
-
//# sourceMappingURL=auth.guard.js.map
|