biz-slide-core 1.1.6 → 1.1.7
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/package-lock.json +1770 -0
- package/dist/package.json +23 -0
- package/{utilities → dist/utilities}/index.js +1 -0
- package/dist/utilities/pngSvgCategories.js +170 -0
- package/package.json +1 -1
- package/src/entity/image.entity.ts +32 -0
- package/src/entity/index.ts +11 -0
- package/src/entity/png-svg.entity.ts +34 -0
- package/src/entity/ppt-event.entity.ts +23 -0
- package/src/entity/ppt-slide.entity.ts +31 -0
- package/src/entity/ppt.entity.ts +42 -0
- package/src/entity/slide-layout.entity.ts +24 -0
- package/src/entity/slide.entity.ts +47 -0
- package/src/entity/socket.entity.ts +22 -0
- package/src/entity/template-type.entity.ts +53 -0
- package/src/entity/template.entity.ts +24 -0
- package/src/entity/user.entity.ts +26 -0
- package/src/index.ts +5 -0
- package/src/middleware/authentication.ts +62 -0
- package/src/middleware/index.ts +3 -0
- package/src/middleware/role.ts +5 -0
- package/src/middleware/schemaValidate.ts +20 -0
- package/src/resHandler/errorHandler.ts +44 -0
- package/src/resHandler/index.ts +2 -0
- package/src/resHandler/successHandler.ts +11 -0
- package/src/types/IController.ts +6 -0
- package/src/types/IRequest.ts +8 -0
- package/src/types/index.ts +11 -0
- package/src/utilities/callWithRetries.ts +9 -0
- package/src/utilities/createFolder.ts +12 -0
- package/src/utilities/encryptionUtils.ts +26 -0
- package/src/utilities/index.ts +5 -0
- package/src/utilities/pngSvgCategories.ts +167 -0
- package/tsconfig.json +11 -0
- /package/{entity → dist/entity}/image.entity.js +0 -0
- /package/{entity → dist/entity}/index.js +0 -0
- /package/{entity → dist/entity}/png-svg.entity.js +0 -0
- /package/{entity → dist/entity}/ppt-event.entity.js +0 -0
- /package/{entity → dist/entity}/ppt-slide.entity.js +0 -0
- /package/{entity → dist/entity}/ppt.entity.js +0 -0
- /package/{entity → dist/entity}/slide-layout.entity.js +0 -0
- /package/{entity → dist/entity}/slide.entity.js +0 -0
- /package/{entity → dist/entity}/socket.entity.js +0 -0
- /package/{entity → dist/entity}/template-type.entity.js +0 -0
- /package/{entity → dist/entity}/template.entity.js +0 -0
- /package/{entity → dist/entity}/user.entity.js +0 -0
- /package/{index.js → dist/index.js} +0 -0
- /package/{middleware → dist/middleware}/authentication.js +0 -0
- /package/{middleware → dist/middleware}/index.js +0 -0
- /package/{middleware → dist/middleware}/role.js +0 -0
- /package/{middleware → dist/middleware}/schemaValidate.js +0 -0
- /package/{resHandler → dist/resHandler}/errorHandler.js +0 -0
- /package/{resHandler → dist/resHandler}/index.js +0 -0
- /package/{resHandler → dist/resHandler}/successHandler.js +0 -0
- /package/{types → dist/types}/IController.js +0 -0
- /package/{types → dist/types}/IRequest.js +0 -0
- /package/{types → dist/types}/index.js +0 -0
- /package/{utilities → dist/utilities}/callWithRetries.js +0 -0
- /package/{utilities → dist/utilities}/createFolder.js +0 -0
- /package/{utilities → dist/utilities}/encryptionUtils.js +0 -0
@@ -0,0 +1,20 @@
|
|
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
|
+
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import { Request, Response, NextFunction } from 'express';
|
2
|
+
|
3
|
+
export class BadRequestError extends Error {
|
4
|
+
constructor(message: string) {
|
5
|
+
super(message);
|
6
|
+
this.name = 'BadRequestError';
|
7
|
+
}
|
8
|
+
}
|
9
|
+
|
10
|
+
export class NotFoundRequestError extends Error {
|
11
|
+
constructor(message: string) {
|
12
|
+
super(message);
|
13
|
+
this.name = 'NotFoundRequestError';
|
14
|
+
}
|
15
|
+
}
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
// Custom error handler middleware
|
20
|
+
export const errorHandler = (
|
21
|
+
err: Error,
|
22
|
+
req: Request,
|
23
|
+
res: Response,
|
24
|
+
next: NextFunction
|
25
|
+
) => {
|
26
|
+
console.error(err.stack); // Log the error for debugging
|
27
|
+
|
28
|
+
let statusCode = 500; // Default status code
|
29
|
+
let errorMessage = 'Internal Server Error'; // Default error message
|
30
|
+
|
31
|
+
if (err instanceof BadRequestError) {
|
32
|
+
statusCode = 400;
|
33
|
+
errorMessage = err.message;
|
34
|
+
} else if(err instanceof NotFoundRequestError) {
|
35
|
+
statusCode = 404;
|
36
|
+
errorMessage = err.message;
|
37
|
+
}
|
38
|
+
|
39
|
+
// Send an error response
|
40
|
+
res.status(statusCode).json({
|
41
|
+
message: errorMessage,
|
42
|
+
error: err.name // Optionally send the error name/type
|
43
|
+
});
|
44
|
+
};
|
@@ -0,0 +1,11 @@
|
|
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
|
+
}
|
@@ -0,0 +1,9 @@
|
|
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) {
|
5
|
+
if (retryCount <= 0) throw error;
|
6
|
+
console.log(failedMessage)
|
7
|
+
return callWithRetries(retryCount - 1, failedMessage, functionRef, ...args);
|
8
|
+
}
|
9
|
+
}
|
@@ -0,0 +1,12 @@
|
|
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
|
+
console.log(`Folder "${folderPath}" is ready.`);
|
9
|
+
} catch (error: any) {
|
10
|
+
console.error(`Error: ${error.message}`);
|
11
|
+
}
|
12
|
+
}
|
@@ -0,0 +1,26 @@
|
|
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];
|
12
|
+
jwt.verify(
|
13
|
+
jwtToken,
|
14
|
+
process.env.JWTSECRET || 'secret',
|
15
|
+
(err, decoded) => {
|
16
|
+
if (err) {
|
17
|
+
console.log(err)
|
18
|
+
resolve(null);
|
19
|
+
} else {
|
20
|
+
resolve(decoded);
|
21
|
+
}
|
22
|
+
},
|
23
|
+
);
|
24
|
+
});
|
25
|
+
|
26
|
+
export { signUid, verifyUid }
|
@@ -0,0 +1,167 @@
|
|
1
|
+
export const pngSvgCategories = {
|
2
|
+
"Logo": {
|
3
|
+
"Outline": {
|
4
|
+
"alias": ""
|
5
|
+
},
|
6
|
+
"Monogram": {
|
7
|
+
"alias": ""
|
8
|
+
},
|
9
|
+
"Wordmark": {
|
10
|
+
"alias": ""
|
11
|
+
},
|
12
|
+
"Emblem": {
|
13
|
+
"alias": ""
|
14
|
+
},
|
15
|
+
"Abstract Logo": {
|
16
|
+
"alias": ""
|
17
|
+
},
|
18
|
+
"Mascot": {
|
19
|
+
"alias": ""
|
20
|
+
}
|
21
|
+
},
|
22
|
+
"Icons": {
|
23
|
+
"Outline": {
|
24
|
+
"alias": ""
|
25
|
+
},
|
26
|
+
"Pictogram": {
|
27
|
+
"alias": ""
|
28
|
+
},
|
29
|
+
"Broken Line": {
|
30
|
+
"alias": ""
|
31
|
+
},
|
32
|
+
"Gradient Line": {
|
33
|
+
"alias": ""
|
34
|
+
},
|
35
|
+
"Gradient Shape": {
|
36
|
+
"alias": "The icon should have strong and dramatic lighting and have a clean look on white background and should have only the suggested colour scheme."
|
37
|
+
},
|
38
|
+
"Doodle": {
|
39
|
+
"alias": ""
|
40
|
+
},
|
41
|
+
"Flat": {
|
42
|
+
"alias": ""
|
43
|
+
},
|
44
|
+
"Minimalistic": {
|
45
|
+
"alias": ""
|
46
|
+
},
|
47
|
+
"Isometric": {
|
48
|
+
"alias": "The icon should have strong and dramatic lighting and have a clean look on white background and should have only the suggested colour scheme. "
|
49
|
+
},
|
50
|
+
"3D Icons": {
|
51
|
+
"alias": "The icon should have strong and dramatic lighting and have a clean look on white background and should have only the suggested colour scheme."
|
52
|
+
}
|
53
|
+
},
|
54
|
+
"Illustrations": {
|
55
|
+
"Hand Drawn": {
|
56
|
+
"alias": ""
|
57
|
+
},
|
58
|
+
"Glow": {
|
59
|
+
"alias": "The icon should have strong and dramatic lighting and have a clean look on white background and should have only the suggested colour scheme. "
|
60
|
+
},
|
61
|
+
"Pixel Art": {
|
62
|
+
"alias": ""
|
63
|
+
},
|
64
|
+
"Watercolour": {
|
65
|
+
"alias": ""
|
66
|
+
},
|
67
|
+
"Psychedelic": {
|
68
|
+
"alias": "The icon should have strong and dramatic lighting and have a clean look on white background and should have only the suggested colour scheme. "
|
69
|
+
},
|
70
|
+
"80's": {
|
71
|
+
"alias": "The icon should have strong and dramatic lighting and have a clean look on white background and should have only the suggested colour scheme. "
|
72
|
+
},
|
73
|
+
"Digital Art": {
|
74
|
+
"alias": "The icon should have strong and dramatic lighting and have a clean look on white background and should have only the suggested colour scheme. "
|
75
|
+
},
|
76
|
+
"Abstract": {
|
77
|
+
"alias": "The icon should have strong and dramatic lighting and have a clean look on white background and should have only the suggested colour scheme. "
|
78
|
+
},
|
79
|
+
"Realistic": {
|
80
|
+
"alias": "The icon should have strong and dramatic lighting and have a clean look on white background and should have only the suggested colour scheme. "
|
81
|
+
},
|
82
|
+
"Comic Style": {
|
83
|
+
"alias": "The icon should have strong and dramatic lighting and have a clean look on white background and should have only the suggested colour scheme. "
|
84
|
+
},
|
85
|
+
"Fantasy": {
|
86
|
+
"alias": "The icon should have strong and dramatic lighting and have a clean look on white background and should have only the suggested colour scheme. "
|
87
|
+
},
|
88
|
+
"Anime": {
|
89
|
+
"alias": ""
|
90
|
+
},
|
91
|
+
"Minimalist": {
|
92
|
+
"alias": ""
|
93
|
+
},
|
94
|
+
"Pencil Sketch": {
|
95
|
+
"alias": ""
|
96
|
+
},
|
97
|
+
},
|
98
|
+
"3D illustration": {
|
99
|
+
"Wireframe": {
|
100
|
+
"alias": ""
|
101
|
+
},
|
102
|
+
"Low Poly": {
|
103
|
+
"alias": ""
|
104
|
+
},
|
105
|
+
"Cartoon 3D": {
|
106
|
+
"alias": ""
|
107
|
+
},
|
108
|
+
"Plastic 3D": {
|
109
|
+
"alias": ""
|
110
|
+
},
|
111
|
+
"3D render": {
|
112
|
+
"alias": ""
|
113
|
+
},
|
114
|
+
},
|
115
|
+
"Photorealism": {
|
116
|
+
"Photorealistic Painting": {
|
117
|
+
"alias": ""
|
118
|
+
},
|
119
|
+
"Photorealistic Drawing": {
|
120
|
+
"alias": ""
|
121
|
+
},
|
122
|
+
"Hyperealism": {
|
123
|
+
"alias": ""
|
124
|
+
},
|
125
|
+
"Photorealism": {
|
126
|
+
"alias": ""
|
127
|
+
},
|
128
|
+
},
|
129
|
+
"Vector Art": {
|
130
|
+
"Line Art": {
|
131
|
+
"alias": ""
|
132
|
+
},
|
133
|
+
"Cartoon": {
|
134
|
+
"alias": ""
|
135
|
+
},
|
136
|
+
"Vector Kawai": {
|
137
|
+
"alias": ""
|
138
|
+
},
|
139
|
+
"Linocut": {
|
140
|
+
"alias": ""
|
141
|
+
},
|
142
|
+
"Engraving": {
|
143
|
+
"alias": ""
|
144
|
+
},
|
145
|
+
"Doodle Line Art": {
|
146
|
+
"alias": ""
|
147
|
+
},
|
148
|
+
"Geometric": {
|
149
|
+
"alias": ""
|
150
|
+
},
|
151
|
+
"Abstract": {
|
152
|
+
"alias": ""
|
153
|
+
},
|
154
|
+
"Vintage": {
|
155
|
+
"alias": ""
|
156
|
+
},
|
157
|
+
"Minimalist": {
|
158
|
+
"alias": ""
|
159
|
+
},
|
160
|
+
"Stylized": {
|
161
|
+
"alias": ""
|
162
|
+
},
|
163
|
+
"Flat Design": {
|
164
|
+
"alias": ""
|
165
|
+
},
|
166
|
+
}
|
167
|
+
}
|
package/tsconfig.json
ADDED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|