biz-slide-core 1.2.85 → 1.2.87

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. package/dist/entity/analytic.entity.js +4 -4
  2. package/dist/entity/config.enity.js +2 -2
  3. package/dist/entity/cron.entity.js +2 -2
  4. package/dist/entity/customer.entity.js +3 -3
  5. package/dist/entity/image.entity.js +2 -2
  6. package/dist/entity/logs.entity.js +2 -2
  7. package/dist/entity/png-svg.entity.js +2 -2
  8. package/dist/entity/ppt-email-queue.entity.js +2 -2
  9. package/dist/entity/ppt-event.entity.js +2 -2
  10. package/dist/entity/ppt-slide.entity.js +2 -2
  11. package/dist/entity/ppt.entity.d.ts +1 -0
  12. package/dist/entity/ppt.entity.d.ts.map +1 -1
  13. package/dist/entity/ppt.entity.js +2 -2
  14. package/dist/entity/slide-layout.entity.js +4 -4
  15. package/dist/entity/slide.entity.js +3 -3
  16. package/dist/entity/socket.entity.js +2 -2
  17. package/dist/entity/template-type.entity.js +6 -6
  18. package/dist/entity/template.entity.js +2 -2
  19. package/dist/entity/training-queue.entity.js +2 -2
  20. package/dist/entity/user.entity.js +2 -2
  21. package/dist/middleware/authentication.js +112 -215
  22. package/dist/middleware/schemaValidate.js +10 -52
  23. package/dist/resHandler/errorHandler.js +20 -42
  24. package/dist/resHandler/successHandler.js +1 -1
  25. package/dist/utilities/callWithRetries.js +9 -67
  26. package/dist/utilities/createFolder.js +10 -51
  27. package/dist/utilities/encryptionUtils.js +14 -54
  28. package/dist/utilities/hasAbusiveWords.js +4 -5
  29. package/package.json +3 -1
  30. package/src/entity/analytic.entity.ts +0 -62
  31. package/src/entity/common.ts +0 -19
  32. package/src/entity/config.enity.ts +0 -18
  33. package/src/entity/cron.entity.ts +0 -22
  34. package/src/entity/customer.entity.ts +0 -40
  35. package/src/entity/image.entity.ts +0 -32
  36. package/src/entity/index.ts +0 -20
  37. package/src/entity/logs.entity.ts +0 -20
  38. package/src/entity/png-svg.entity.ts +0 -44
  39. package/src/entity/ppt-email-queue.entity.ts +0 -22
  40. package/src/entity/ppt-event.entity.ts +0 -25
  41. package/src/entity/ppt-slide.entity.ts +0 -40
  42. package/src/entity/ppt.entity.ts +0 -79
  43. package/src/entity/slide-layout.entity.ts +0 -56
  44. package/src/entity/slide.entity.ts +0 -61
  45. package/src/entity/socket.entity.ts +0 -20
  46. package/src/entity/template-type.entity.ts +0 -87
  47. package/src/entity/template.entity.ts +0 -38
  48. package/src/entity/training-queue.entity.ts +0 -26
  49. package/src/entity/user.entity.ts +0 -24
  50. package/src/index.ts +0 -6
  51. package/src/middleware/authentication.ts +0 -150
  52. package/src/middleware/index.ts +0 -3
  53. package/src/middleware/role.ts +0 -5
  54. package/src/middleware/schemaValidate.ts +0 -20
  55. package/src/resHandler/errorHandler.ts +0 -66
  56. package/src/resHandler/index.ts +0 -2
  57. package/src/resHandler/successHandler.ts +0 -11
  58. package/src/types/IController.ts +0 -6
  59. package/src/types/IRequest.ts +0 -8
  60. package/src/types/index.ts +0 -11
  61. package/src/utilities/callWithRetries.ts +0 -9
  62. package/src/utilities/createFolder.ts +0 -11
  63. package/src/utilities/encryptionUtils.ts +0 -26
  64. package/src/utilities/hasAbusiveWords.ts +0 -33
  65. package/src/utilities/index.ts +0 -5
  66. package/src/utilities/pngSvgCategories.ts +0 -167
  67. package/tsconfig.json +0 -11
@@ -1,56 +0,0 @@
1
- import { Schema, model, Types } from "mongoose";
2
- import { ISystemLayout, IMessageSchema } from "./common";
3
-
4
-
5
- export interface ISlideLayoutSchema {
6
- name: string;
7
- alias: string[];
8
- templateTypeId: Types.ObjectId;
9
- createdAt: Date;
10
- updatedAt: Date;
11
- deletedAt: Date;
12
- published: boolean;
13
- insertSelectionPrompt: ISystemLayout;
14
- newSelectionPrompt: ISystemLayout;
15
- slideSelectionQuestion: string;
16
- category: string;
17
- subCategory: string[];
18
- displayName: string;
19
- }
20
-
21
- const messageSchema = new Schema<IMessageSchema>({
22
- message: { type: String },
23
- keys: { type: [String] },
24
- }, {
25
- timestamps: false,
26
- _id: false
27
- })
28
-
29
- const systemSchema = new Schema<ISystemLayout>({
30
- system: messageSchema,
31
- user: messageSchema
32
- }, {
33
- timestamps: false,
34
- _id: false
35
- })
36
-
37
- const SlideLayoutSchema = new Schema<ISlideLayoutSchema>(
38
- {
39
- published: { type: Boolean, default: false },
40
- name: { type: String, default: "", required: true },
41
- displayName: { type: String, default: "" },
42
- alias: { type: [String], default: [], _id: false },
43
- templateTypeId: { type: Schema.Types.ObjectId, ref: "template-type" },
44
- deletedAt: { type: Date, default: null },
45
- insertSelectionPrompt: systemSchema,
46
- newSelectionPrompt: systemSchema,
47
- category: { type: String, default: "Default"},
48
- subCategory: { type: [String], default: [], _id: false },
49
- slideSelectionQuestion: { type: String, default: ""}
50
- },
51
- {
52
- timestamps: true,
53
- }
54
- );
55
-
56
- export const SlideLayoutModel = model<ISlideLayoutSchema>("slide-layout", SlideLayoutSchema);
@@ -1,61 +0,0 @@
1
- import { Schema, model, Types } from "mongoose";
2
-
3
- interface layer {
4
- metaType: String;
5
- optionsMeta: String;
6
- chatMeta: string;
7
- }
8
-
9
- const layerSchema = new Schema<layer>({
10
- metaType: { type: String, enum: ['text', 'image', 'shape', 'list', 'table'] },
11
- optionsMeta: { type: String },
12
- chatMeta: { type: String },
13
- }, {
14
- timestamps: false,
15
- _id: false
16
- })
17
-
18
- export interface ISlideSchema {
19
- name: string;
20
- postfix: string;
21
- rules: string;
22
- slideLayoutId: Types.ObjectId;
23
- templateId: Types.ObjectId;
24
- layers: layer[];
25
- createdAt: Date;
26
- updatedAt: Date;
27
- deletedAt: Date;
28
- isDelete: boolean;
29
- published: boolean;
30
- stage: string;
31
- isDefault: boolean;
32
- category: string;
33
- }
34
-
35
- const SlideSchema = new Schema<ISlideSchema>(
36
- {
37
- name: { type: String, default: "", required: true },
38
- published: { type: Boolean, default: false },
39
- postfix: { type: String, default: "" },
40
- rules: { type: String, default: "" },
41
- layers: [layerSchema],
42
- slideLayoutId: { type: Schema.Types.ObjectId, ref: "slide-layout" },
43
- templateId: { type: Schema.Types.ObjectId, ref: "template" },
44
- deletedAt: { type: Date, default: null },
45
- isDelete: { type: Boolean, default: false },
46
- stage: { type: String, default: ""},
47
- isDefault: { type: Boolean, default: false },
48
- category: { type: String, default: "Default"}
49
- },
50
- {
51
- timestamps: true,
52
- }
53
- );
54
-
55
- SlideSchema.index({ name: 1, slideLayoutId: 1, templateId: 1 });
56
- SlideSchema.index({ slideLayoutId: 1, templateId: 1 });
57
- SlideSchema.index({ templateId: 1 });
58
- SlideSchema.index({ name: 1, templateId: 1, slideLayoutId: 1, published: 1 });
59
- SlideSchema.index({ slideLayoutId: 1, templateId: 1, published: 1, isDelete: 1 });
60
-
61
- export const SlideModel = model<ISlideSchema>("slide", SlideSchema);
@@ -1,20 +0,0 @@
1
- import { Schema, model, Types } from "mongoose";
2
-
3
- export interface ISocketSchema {
4
- userId: string;
5
- socketIds: Array<string>;
6
- createdAt?: Date;
7
- updatedAt?: Date;
8
- }
9
-
10
- const SocketSchema = new Schema<ISocketSchema>(
11
- {
12
- userId: { type: String, default: null },
13
- socketIds: { type: [String], default: [] }
14
- },
15
- {
16
- timestamps: true,
17
- }
18
- );
19
-
20
- export const SocketModel = model<ISocketSchema>("socket", SocketSchema);
@@ -1,87 +0,0 @@
1
- import { Schema, model } from "mongoose";
2
- import { IVariantsSystemLayout, ISystemLayout, IMessageSchema } from "./common";
3
-
4
- export interface ITemplateLayout {
5
- title: string;
6
- layoutType: string;
7
- }
8
-
9
-
10
- export interface ITemplateTypeSchema{
11
- name: string;
12
- layouts: Array<ITemplateLayout>;
13
- createdAt: Date;
14
- updatedAt: Date;
15
- deletedAt: Date;
16
- suggestionPrompts: Array<string>;
17
- topicPrompt: IVariantsSystemLayout;
18
- layoutPrompt: IVariantsSystemLayout;
19
- insertTopicPrompt: ISystemLayout;
20
- slidePrompt: IMessageSchema; // Predefine systame message
21
- defaultLayout: string;
22
- published: boolean;
23
- colorPalletes: Array<Array<string>>;
24
- }
25
-
26
- const layoutsSchema = new Schema<ITemplateLayout>({
27
- title: { type: String },
28
- layoutType: { type: String },
29
- }, {
30
- timestamps: false,
31
- _id: false
32
- })
33
-
34
-
35
-
36
- const messageSchema = new Schema<IMessageSchema>({
37
- message: { type: String },
38
- keys: { type: [String] },
39
- }, {
40
- timestamps: false,
41
- _id: false
42
- })
43
-
44
- const systemSchema = new Schema<ISystemLayout>({
45
- system: messageSchema,
46
- user: messageSchema
47
- }, {
48
- timestamps: false,
49
- _id: false
50
- })
51
-
52
- const variantsSystemSchema = new Schema<IVariantsSystemLayout>({
53
- single: systemSchema,
54
- multiple: systemSchema
55
- }, {
56
- timestamps: false,
57
- _id: false
58
- })
59
-
60
- const TemplateTypeSchema = new Schema<ITemplateTypeSchema>(
61
- {
62
- published: { type: Boolean, default: false },
63
- name: { type: String, default: "", required: true },
64
- layouts: [layoutsSchema],
65
- suggestionPrompts: {type: [String], default: [], _id: false},
66
- slidePrompt: messageSchema,
67
- topicPrompt: variantsSystemSchema,
68
- layoutPrompt: variantsSystemSchema,
69
- insertTopicPrompt: systemSchema,
70
- defaultLayout: { type: String, default: "" },
71
- deletedAt: { type: Date, default: null },
72
- colorPalletes: {
73
- type: [
74
- {
75
- type: [String],
76
- default: [],
77
- _id: false
78
- }
79
- ], default: [], _id: false
80
- },
81
- },
82
- {
83
- timestamps: true,
84
- }
85
- );
86
-
87
- export const TemplateTypeModel = model<ITemplateTypeSchema>("template-type", TemplateTypeSchema);
@@ -1,38 +0,0 @@
1
- import { Schema, model, Types } from "mongoose";
2
-
3
- export interface ITemplateSchema{
4
- name: string;
5
- templateTypeId: Types.ObjectId;
6
- createdAt: Date,
7
- updatedAt: Date,
8
- deletedAt: Date,
9
- defaultColorPallete: Array<string>;
10
- colorPalletes: Array<Array<string>>;
11
- staticImageDir: string;
12
- published: boolean;
13
- }
14
-
15
- const TemplateSchema = new Schema<ITemplateSchema>(
16
- {
17
- name: { type: String, default: "", required: true },
18
- published: { type: Boolean, default: false },
19
- templateTypeId: { type: Schema.Types.ObjectId, ref: "template-type" },
20
- defaultColorPallete: { type: [String], default: [], _id: false },
21
- colorPalletes: {
22
- type: [
23
- {
24
- type: [String],
25
- default: [],
26
- _id: false
27
- }
28
- ], default: [], _id: false
29
- },
30
- deletedAt: { type: Date, default: null },
31
- staticImageDir: { type: String, default: "", required: true }
32
- },
33
- {
34
- timestamps: true,
35
- }
36
- );
37
-
38
- export const TemplateModel = model<ITemplateSchema>("template", TemplateSchema);
@@ -1,26 +0,0 @@
1
- import { Schema, model, Types } from "mongoose";
2
-
3
- interface ITrainingQueue {
4
- filename: string,
5
- isCompleted: boolean,
6
- isLocked: boolean,
7
- userId: Types.ObjectId;
8
- createdAt: Date,
9
- updatedAt: Date,
10
- deletedAt: Date
11
- }
12
-
13
- const TrainingQueueSchema = new Schema<ITrainingQueue>(
14
- {
15
- filename: { type: String, default: null },
16
- isCompleted: { type: Boolean, default: false },
17
- userId: { type: Schema.Types.ObjectId, ref: "user" },
18
- isLocked: { type: Boolean, default: false },
19
- deletedAt: { type: Date, default: null},
20
- },
21
- {
22
- timestamps: true,
23
- }
24
- );
25
-
26
- export const TrainingQueueModel = model<ITrainingQueue>("training-queue", TrainingQueueSchema);
@@ -1,24 +0,0 @@
1
- import { Schema, model } from "mongoose";
2
-
3
- interface IUser {
4
- email: string | null;
5
- password: string,
6
- role: string,
7
- createdAt: Date,
8
- updatedAt: Date,
9
- deletedAt: Date
10
- }
11
-
12
- const UserSchema = new Schema<IUser>(
13
- {
14
- email: { type: String, unique: true, sparse: true },
15
- password: { type: String, default: null },
16
- role: { type: String, default: null },
17
- deletedAt: { type: Date, default: null},
18
- },
19
- {
20
- timestamps: true,
21
- }
22
- );
23
-
24
- export const UserModel = model<IUser>("user", UserSchema);
package/src/index.ts DELETED
@@ -1,6 +0,0 @@
1
- export * from "./entity";
2
- export * from "./middleware";
3
- export * from "./resHandler";
4
- export * from "./types";
5
-
6
- export * from "./utilities";
@@ -1,150 +0,0 @@
1
- import { Response, NextFunction } from "express";
2
- import { verifyUid } from "../utilities";
3
- import { IRequest } from "../types";
4
- import { UserModel, CustomerModel } from "../entity";
5
-
6
-
7
- const authorize = (roles: string[]) => {
8
- return async function (req: IRequest, res: Response, next: NextFunction) {
9
- if (!req.headers.authorization) {
10
- return res.status(401).json({ message: 'Unauthorized' })
11
- }
12
- if (!roles.length) {
13
- return res.status(401).json({ message: 'Unauthorized' })
14
- }
15
- if (req.headers.authorization) {
16
- const token = await verifyUid(req.headers.authorization);
17
- if (!token) {
18
- return res.status(401).json({ message: 'Session Expired' })
19
- }
20
-
21
- let user: any = await UserModel.findOne({ email: token.value.email })
22
-
23
- if (!user) {
24
- return res.status(401).json({ message: 'No User Found' })
25
- }
26
-
27
- const hasAccess = roles.find(role => role === user.role);
28
-
29
- if (!hasAccess) {
30
- return res.status(403).json({ message: 'Forbbiden' })
31
- }
32
-
33
- const { createdAt, updatedAt, deletedAt, password, ...rest } = user.toObject();
34
-
35
- req.user = {...rest, userId: rest.email};
36
- next();
37
- }
38
- }
39
- }
40
-
41
- const createUser = async (emailId: string, userId: string, appName: string) => {
42
- const customer = await CustomerModel.findOne({userId});
43
- if(!customer) {
44
- const newCustomer = new CustomerModel({
45
- appName: appName || "default",
46
- emailId,
47
- emailTemplateStatus: {},
48
- userId
49
- })
50
- await newCustomer.save();
51
- }
52
- }
53
-
54
- const authorizeWithSlideApp = () => {
55
- return async function (req: IRequest, res: Response, next: NextFunction) {
56
- const ipAddress = req.headers['x-forwarded-for'] || (req as any).connection.remoteAddress;
57
- const sessionId = req.headers['x-fingerprint-key'];
58
-
59
- if (!req.headers.authorization) {
60
- return res.status(401).json({ message: 'Unauthorized' })
61
- }
62
-
63
- if (req.headers.authorization) {
64
- const token = await verifyUid(req.headers.authorization);
65
- if (!token) {
66
- return res.status(401).json({ message: 'Session Expired' })
67
- }
68
-
69
- const userId = token?.customer_id || token?.value?.email;
70
-
71
- if(!userId) {
72
- return res.status(401).json({ message: 'userId not found' })
73
- }
74
-
75
-
76
- req.user = {
77
- userId: userId,
78
- sessionId,
79
- ipAddress,
80
- appName: req.headers['x-app-name'],
81
- email: token?.customer_email || ""
82
- }
83
-
84
- await createUser(req.user.email, req.user.userId, req.user.appName);
85
- next();
86
- }
87
- }
88
- }
89
-
90
- const nonAuthorizeWithSlideApp = () => {
91
- return async function (req: IRequest, res: Response, next: NextFunction) {
92
- const ipAddress = req.headers['x-forwarded-for'] || (req as any).connection.remoteAddress;
93
- const sessionId = req.headers['x-fingerprint-key'];
94
- let userId = "guest";
95
- let email = "";
96
-
97
- if (req.headers.authorization) {
98
- const token = await verifyUid(req.headers.authorization);
99
- if (!token) {
100
- return res.status(401).json({ message: 'Session Expired' })
101
- }
102
-
103
- userId = token?.customer_id || token?.value?.email;
104
- email = token?.customer_email || "";
105
- if(!userId) {
106
- return res.status(401).json({ message: 'userId not found' })
107
- }
108
- await createUser(email, userId, req.headers['x-app-name'] as string);
109
- } else {
110
- if(!ipAddress || !sessionId) {
111
- return res.status(401).json({ message: 'We are not able to track your actions'})
112
- }
113
- }
114
-
115
- req.user = {
116
- userId,
117
- sessionId,
118
- ipAddress,
119
- appName: req.headers['x-app-name'],
120
- email
121
- }
122
-
123
- next();
124
- }
125
- }
126
-
127
- // TODO: Delete It
128
- const authorizeWithGpt = () => {
129
- return async function (req: IRequest, res: Response, next: NextFunction) {
130
- const secret = req.headers['authorization'];
131
- const secretKey: Array<string> = secret ? secret.split(":") : undefined!;
132
-
133
- if(secretKey && secretKey.length === 2 && secretKey[0]!==`Bearer ${process.env.GPT_API_KEY}`) {
134
- return res.status(401).json({ message: 'keys not matching' })
135
- }
136
-
137
- const ipAddress = req.headers['x-forwarded-for'] || (req as any).connection.remoteAddress;
138
- let userId = "guest";
139
-
140
- req.user = {
141
- userId,
142
- ipAddress,
143
- appName: secretKey[1],
144
- navigateFromGPT: true
145
- }
146
- next();
147
- }
148
- }
149
-
150
- export {authorize, authorizeWithSlideApp, nonAuthorizeWithSlideApp, authorizeWithGpt};
@@ -1,3 +0,0 @@
1
- export * from "./authentication";
2
- export * from "./role";
3
- export * from "./schemaValidate";
@@ -1,5 +0,0 @@
1
- export const ROLES = {
2
- User: 'User',
3
- Admin: 'Admin',
4
- SuperAdmin: 'SuperAdmin'
5
- }
@@ -1,20 +0,0 @@
1
- import { NextFunction, Response } from "express";
2
- import Joi from 'joi';
3
-
4
- import { IRequest } from "../types";
5
-
6
- export const validateSchema = (schema: Joi.ObjectSchema<any>) => {
7
- return async function (req: IRequest, res: Response, next: NextFunction) {
8
-
9
- const { error } = schema.validate(req.body, { abortEarly: false });
10
-
11
- if(error) {
12
- const errorMessage = error.details.map((err) => err.message).join(', ');
13
- return res.status(400).json({ message: errorMessage });
14
- } else {
15
- next();
16
- }
17
- }
18
- }
19
-
20
-
@@ -1,66 +0,0 @@
1
- import { Request, Response, NextFunction } from 'express';
2
-
3
- export class BadRequestError extends Error {
4
- constructor(message: string) {
5
- super(message);
6
- Object.setPrototypeOf(this, BadRequestError.prototype);
7
- this.name = 'BadRequestError';
8
- }
9
- }
10
-
11
- export class NotFoundRequestError extends Error {
12
- constructor(message: string) {
13
- super(message);
14
- Object.setPrototypeOf(this, NotFoundRequestError.prototype);
15
- this.name = 'NotFoundRequestError';
16
- }
17
- }
18
-
19
- export class CustomRequestError {
20
- name: string;
21
- message: {
22
- title: string,
23
- description: string
24
- };
25
-
26
- constructor(title: string, description: string) {
27
- this.name = 'CustomRequestError';
28
- this.message = {
29
- title,
30
- description
31
- };
32
- }
33
- }
34
-
35
-
36
-
37
- // Custom error handler middleware
38
- export const errorHandler = (
39
- err: Error,
40
- req: Request,
41
- res: Response,
42
- next: NextFunction
43
- ) => {
44
-
45
- let statusCode = 500; // Default status code
46
- let errorMessage = 'Internal Server Error'; // Default error message
47
-
48
- if (err instanceof BadRequestError) {
49
- statusCode = 400;
50
- errorMessage = err.message;
51
- } else if(err instanceof NotFoundRequestError) {
52
- statusCode = 404;
53
- errorMessage = err.message;
54
- } else if(err instanceof CustomRequestError) {
55
- statusCode = 422;
56
- errorMessage = err.message;
57
- } else {
58
- console.error(err.stack); // Log the error for debugging
59
- }
60
-
61
- // Send an error response
62
- res.status(statusCode).json({
63
- message: errorMessage,
64
- error: err.name // Optionally send the error name/type
65
- });
66
- };
@@ -1,2 +0,0 @@
1
- export * from "./errorHandler";
2
- export * from "./successHandler";
@@ -1,11 +0,0 @@
1
- import { Request, Response, NextFunction } from 'express';
2
-
3
- // Generic success handler middleware
4
- export const successHandler = (
5
- data: any,
6
- req: Request,
7
- res: Response,
8
- next: NextFunction
9
- ) => {
10
- res.status(200).json(data);
11
- };
@@ -1,6 +0,0 @@
1
- import { Response } from "express";
2
- import { IRequest } from "./IRequest";
3
-
4
- export interface IController {
5
- (req: IRequest, res: Response): void;
6
- }
@@ -1,8 +0,0 @@
1
- import { Request } from "express";
2
-
3
- export interface IRequest extends Request {
4
- user?: any,
5
- token?: any,
6
- role?: any,
7
- file?:any
8
- }
@@ -1,11 +0,0 @@
1
- export * from "./IController";
2
- export * from "./IRequest";
3
-
4
- export enum QUEUES {
5
- IMAGE_MODEL_BULK = "image-model-bulk", // Will be used for bulk training model
6
- IMAGE_MODEL_SINGLE = "image-model-single", // Will be used for single image training
7
- NOTIFICATION = "notification", // Notify to user
8
- THUMBNAIL = "thumbnail", // To create thubmnail
9
- PPT = "ppt", // to call PPT Service
10
- PNG_SVG = "png-svg" // to convert raster to vector image
11
- }
@@ -1,9 +0,0 @@
1
- export async function callWithRetries(retryCount: number, failedMessage: string, functionRef: Function, ...args: any): Promise<any> {
2
- try {
3
- return await functionRef(...args)
4
- } catch (error: any) {
5
- if (retryCount <= 0) throw error;
6
- console.log("callWithRetries", error?.message || error)
7
- return callWithRetries(retryCount - 1, failedMessage, functionRef, ...args);
8
- }
9
- }
@@ -1,11 +0,0 @@
1
- import fs from "fs";
2
-
3
- export async function createFolder(folderPath: string) {
4
- try {
5
- if (!fs.existsSync(folderPath)) {
6
- fs.mkdirSync(folderPath);
7
- }
8
- } catch (error: any) {
9
- console.error(`Error: ${error.message}`);
10
- }
11
- }
@@ -1,26 +0,0 @@
1
- import jwt from 'jsonwebtoken';
2
-
3
- const signUid = (value: object) => {
4
- return jwt.sign({ value }, process.env.JWTSECRET || 'secret', {
5
- expiresIn: '8h' // expires in 8 hours
6
- });
7
- };
8
-
9
- const verifyUid = async (token: string): Promise<any> =>
10
- new Promise(resolve => {
11
- const jwtToken = token.split(" ")[1] || token;
12
- jwt.verify(
13
- jwtToken,
14
- process.env.JWTSECRET || 'secret',
15
- (err, decoded) => {
16
- if (err) {
17
- // console.log("error verifyUid", err)
18
- resolve(null);
19
- } else {
20
- resolve(decoded);
21
- }
22
- },
23
- );
24
- });
25
-
26
- export { signUid, verifyUid }