@purpleschool/gptbot 0.12.59 → 0.12.61

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.
Files changed (70) hide show
  1. package/api/controllers/http/canvas-edge.ts +9 -0
  2. package/api/controllers/http/canvas-node.ts +10 -0
  3. package/api/controllers/http/canvas.ts +2 -0
  4. package/api/controllers/http/index.ts +2 -0
  5. package/api/controllers/http/webmaster.ts +1 -0
  6. package/api/routes.ts +2 -0
  7. package/build/api/controllers/http/canvas-edge.js +11 -0
  8. package/build/api/controllers/http/canvas-node.js +12 -0
  9. package/build/api/controllers/http/canvas.js +2 -0
  10. package/build/api/controllers/http/index.js +2 -0
  11. package/build/api/controllers/http/webmaster.js +1 -0
  12. package/build/api/routes.js +1 -0
  13. package/build/commands/canvas/find-canvas-by-uuid-with-relations.query.js +17 -0
  14. package/build/commands/canvas/index.js +2 -0
  15. package/build/commands/canvas/save-canvas.command.js +34 -0
  16. package/build/commands/canvas-edge/create-canvas-edge.command.js +20 -0
  17. package/build/commands/canvas-edge/delete-canvas-edge.command.js +19 -0
  18. package/build/commands/canvas-edge/find-canvas-edge-by-source-and-target.query.js +18 -0
  19. package/build/commands/canvas-edge/find-canvas-edges-by-canvas.query.js +14 -0
  20. package/build/commands/canvas-edge/index.js +20 -0
  21. package/build/commands/canvas-node/create-canvas-node.command.js +20 -0
  22. package/build/commands/canvas-node/delete-canvas-node.command.js +17 -0
  23. package/build/commands/canvas-node/find-canvas-node-by-uuid.query.js +15 -0
  24. package/build/commands/canvas-node/find-canvas-nodes-by-canvas.query.js +14 -0
  25. package/build/commands/canvas-node/index.js +21 -0
  26. package/build/commands/canvas-node/update-canvas-node.command.js +21 -0
  27. package/build/commands/index.js +2 -0
  28. package/build/commands/webmaster/update-webmaster.command.js +21 -2
  29. package/build/constants/canvas-edge/enums/index.js +17 -0
  30. package/build/constants/canvas-edge/enums/input-output-type.enum.js +13 -0
  31. package/build/constants/canvas-edge/index.js +17 -0
  32. package/build/constants/canvas-node/enums/canvas-node-type.enum.js +23 -0
  33. package/build/constants/canvas-node/enums/index.js +18 -0
  34. package/build/constants/canvas-node/enums/node-run-status.enum.js +12 -0
  35. package/build/constants/canvas-node/index.js +17 -0
  36. package/build/constants/index.js +2 -0
  37. package/build/models/canvas-edge.schema.js +12 -0
  38. package/build/models/canvas-node.schema.js +179 -0
  39. package/build/models/index.js +2 -0
  40. package/build/models/webmaster.schema.js +1 -0
  41. package/commands/canvas/find-canvas-by-uuid-with-relations.query.ts +19 -0
  42. package/commands/canvas/index.ts +2 -0
  43. package/commands/canvas/save-canvas.command.ts +50 -0
  44. package/commands/canvas-edge/create-canvas-edge.command.ts +25 -0
  45. package/commands/canvas-edge/delete-canvas-edge.command.ts +24 -0
  46. package/commands/canvas-edge/find-canvas-edge-by-source-and-target.query.ts +23 -0
  47. package/commands/canvas-edge/find-canvas-edges-by-canvas.query.ts +16 -0
  48. package/commands/canvas-edge/index.ts +4 -0
  49. package/commands/canvas-node/create-canvas-node.command.ts +25 -0
  50. package/commands/canvas-node/delete-canvas-node.command.ts +19 -0
  51. package/commands/canvas-node/find-canvas-node-by-uuid.query.ts +17 -0
  52. package/commands/canvas-node/find-canvas-nodes-by-canvas.query.ts +16 -0
  53. package/commands/canvas-node/index.ts +5 -0
  54. package/commands/canvas-node/update-canvas-node.command.ts +26 -0
  55. package/commands/index.ts +2 -0
  56. package/commands/webmaster/update-webmaster.command.ts +28 -1
  57. package/constants/canvas-edge/enums/index.ts +1 -0
  58. package/constants/canvas-edge/enums/input-output-type.enum.ts +9 -0
  59. package/constants/canvas-edge/index.ts +1 -0
  60. package/constants/canvas-node/enums/canvas-node-type.enum.ts +19 -0
  61. package/constants/canvas-node/enums/index.ts +2 -0
  62. package/constants/canvas-node/enums/node-run-status.enum.ts +8 -0
  63. package/constants/canvas-node/index.ts +1 -0
  64. package/constants/index.ts +2 -0
  65. package/helpers/image-generation/calculate-gpt-image-2-price-with-margin.helper.ts +3 -9
  66. package/models/canvas-edge.schema.ts +12 -0
  67. package/models/canvas-node.schema.ts +272 -0
  68. package/models/index.ts +2 -0
  69. package/models/webmaster.schema.ts +1 -0
  70. package/package.json +1 -1
@@ -0,0 +1,272 @@
1
+ import { z } from 'zod';
2
+ import { CANVAS_NODE_TYPE, NODE_RUN_STATUS } from '../constants';
3
+
4
+ const strictObject = <T extends z.ZodRawShape>(shape: T): z.ZodObject<T, 'strict'> =>
5
+ z.object(shape).strict();
6
+
7
+ export const CanvasNodePositionSchema = z.object({
8
+ topLeft: z.object({
9
+ x: z.number(),
10
+ y: z.number(),
11
+ }),
12
+ bottomRight: z.object({
13
+ x: z.number(),
14
+ y: z.number(),
15
+ }),
16
+ });
17
+ export type CanvasNodePosition = z.infer<typeof CanvasNodePositionSchema>;
18
+
19
+ export const TextGenParamsSchema = strictObject({
20
+ prompt: z.string(),
21
+ model: z.string(),
22
+ });
23
+ export type TextGenParams = z.infer<typeof TextGenParamsSchema>;
24
+
25
+ export const ImageGenParamsSchema = strictObject({
26
+ prompt: z.string(),
27
+ model: z.string(),
28
+ aspectRatio: z.string(),
29
+ resolution: z.string().optional(),
30
+ });
31
+ export type ImageGenParams = z.infer<typeof ImageGenParamsSchema>;
32
+
33
+ export const VideoGenParamsSchema = strictObject({
34
+ prompt: z.string(),
35
+ duration: z.string(),
36
+ resolution: z.string(),
37
+ });
38
+ export type VideoGenParams = z.infer<typeof VideoGenParamsSchema>;
39
+
40
+ export const AudioGenParamsSchema = strictObject({
41
+ mode: z.union([z.literal('tts'), z.literal('stt')]),
42
+ prompt: z.string(),
43
+ voice: z.string(),
44
+ model: z.string(),
45
+ stability: z.number(),
46
+ similarityBoost: z.number(),
47
+ audioFileUrl: z.string(),
48
+ });
49
+ export type AudioGenParams = z.infer<typeof AudioGenParamsSchema>;
50
+
51
+ export const ColorPaletteParamsSchema = strictObject({
52
+ prompt: z.string(),
53
+ });
54
+ export type ColorPaletteParams = z.infer<typeof ColorPaletteParamsSchema>;
55
+
56
+ export const MotionControlParamsSchema = strictObject({
57
+ prompt: z.string(),
58
+ imageUrl: z.string(),
59
+ videoUrl: z.string(),
60
+ characterOrientation: z.union([z.literal('image'), z.literal('video')]),
61
+ mode: z.union([z.literal('720p'), z.literal('1080p')]),
62
+ });
63
+ export type MotionControlParams = z.infer<typeof MotionControlParamsSchema>;
64
+
65
+ export const VarGenParamsSchema = strictObject({
66
+ prompt: z.string(),
67
+ model: z.string(),
68
+ vars: z.array(
69
+ strictObject({
70
+ key: z.string(),
71
+ description: z.string(),
72
+ }),
73
+ ),
74
+ });
75
+ export type VarGenParams = z.infer<typeof VarGenParamsSchema>;
76
+
77
+ export const HtmlGenParamsSchema = strictObject({
78
+ prompt: z.string(),
79
+ model: z.string(),
80
+ });
81
+ export type HtmlGenParams = z.infer<typeof HtmlGenParamsSchema>;
82
+
83
+ export const TextBlockParamsSchema = strictObject({
84
+ content: z.string(),
85
+ });
86
+ export type TextBlockParams = z.infer<typeof TextBlockParamsSchema>;
87
+
88
+ export const ImageBlockParamsSchema = strictObject({
89
+ url: z.string(),
90
+ });
91
+ export type ImageBlockParams = z.infer<typeof ImageBlockParamsSchema>;
92
+
93
+ export const VideoBlockParamsSchema = strictObject({
94
+ url: z.string(),
95
+ });
96
+ export type VideoBlockParams = z.infer<typeof VideoBlockParamsSchema>;
97
+
98
+ export const FileBlockParamsSchema = strictObject({
99
+ filename: z.string(),
100
+ content: z.string(),
101
+ });
102
+ export type FileBlockParams = z.infer<typeof FileBlockParamsSchema>;
103
+
104
+ export const NoteParamsSchema = strictObject({
105
+ content: z.string(),
106
+ });
107
+ export type NoteParams = z.infer<typeof NoteParamsSchema>;
108
+
109
+ export const VarBlockParamsSchema = strictObject({
110
+ name: z.string(),
111
+ value: z.string(),
112
+ });
113
+ export type VarBlockParams = z.infer<typeof VarBlockParamsSchema>;
114
+
115
+ export const TextGenOutputSchema = strictObject({
116
+ result: z.string(),
117
+ });
118
+ export type TextGenOutput = z.infer<typeof TextGenOutputSchema>;
119
+
120
+ export const ImageGenOutputSchema = strictObject({
121
+ resultUrl: z.string(),
122
+ });
123
+ export type ImageGenOutput = z.infer<typeof ImageGenOutputSchema>;
124
+
125
+ export const VideoGenOutputSchema = strictObject({
126
+ resultUrl: z.string(),
127
+ });
128
+ export type VideoGenOutput = z.infer<typeof VideoGenOutputSchema>;
129
+
130
+ export const AudioGenTTSOutputSchema = strictObject({
131
+ resultUrl: z.string(),
132
+ });
133
+ export type AudioGenTTSOutput = z.infer<typeof AudioGenTTSOutputSchema>;
134
+
135
+ export const AudioGenSTTOutputSchema = strictObject({
136
+ transcript: z.string(),
137
+ });
138
+ export type AudioGenSTTOutput = z.infer<typeof AudioGenSTTOutputSchema>;
139
+
140
+ export const ColorPaletteOutputSchema = strictObject({
141
+ paletteName: z.string(),
142
+ colors: z.array(
143
+ strictObject({
144
+ hex: z.string(),
145
+ name: z.string(),
146
+ usage: z.string(),
147
+ }),
148
+ ),
149
+ });
150
+ export type ColorPaletteOutput = z.infer<typeof ColorPaletteOutputSchema>;
151
+
152
+ export const MotionControlOutputSchema = strictObject({
153
+ resultUrl: z.string(),
154
+ });
155
+ export type MotionControlOutput = z.infer<typeof MotionControlOutputSchema>;
156
+
157
+ export const VarGenOutputSchema = strictObject({
158
+ variables: z.record(z.string()),
159
+ });
160
+ export type VarGenOutput = z.infer<typeof VarGenOutputSchema>;
161
+
162
+ export const HtmlGenOutputSchema = strictObject({
163
+ html: z.string(),
164
+ });
165
+ export type HtmlGenOutput = z.infer<typeof HtmlGenOutputSchema>;
166
+
167
+ export const CanvasNodeParamsSchema = z.union([
168
+ TextGenParamsSchema,
169
+ ImageGenParamsSchema,
170
+ VideoGenParamsSchema,
171
+ AudioGenParamsSchema,
172
+ ColorPaletteParamsSchema,
173
+ MotionControlParamsSchema,
174
+ VarGenParamsSchema,
175
+ HtmlGenParamsSchema,
176
+ TextBlockParamsSchema,
177
+ ImageBlockParamsSchema,
178
+ VideoBlockParamsSchema,
179
+ FileBlockParamsSchema,
180
+ NoteParamsSchema,
181
+ VarBlockParamsSchema,
182
+ ]);
183
+ export type CanvasNodeParams = z.infer<typeof CanvasNodeParamsSchema>;
184
+
185
+ export const CanvasNodeParamsSchemaByType = {
186
+ [CANVAS_NODE_TYPE.textGen]: TextGenParamsSchema,
187
+ [CANVAS_NODE_TYPE.imageGen]: ImageGenParamsSchema,
188
+ [CANVAS_NODE_TYPE.imageEdit]: ImageGenParamsSchema,
189
+ [CANVAS_NODE_TYPE.videoGen]: VideoGenParamsSchema,
190
+ [CANVAS_NODE_TYPE.videoEdit]: VideoGenParamsSchema,
191
+ [CANVAS_NODE_TYPE.ttsGen]: AudioGenParamsSchema,
192
+ [CANVAS_NODE_TYPE.sttGen]: AudioGenParamsSchema,
193
+ [CANVAS_NODE_TYPE.textBlock]: TextBlockParamsSchema,
194
+ [CANVAS_NODE_TYPE.imageBlock]: ImageBlockParamsSchema,
195
+ [CANVAS_NODE_TYPE.videoBlock]: VideoBlockParamsSchema,
196
+ [CANVAS_NODE_TYPE.fileBlock]: FileBlockParamsSchema,
197
+ [CANVAS_NODE_TYPE.note]: NoteParamsSchema,
198
+ [CANVAS_NODE_TYPE.colorPalette]: ColorPaletteParamsSchema,
199
+ [CANVAS_NODE_TYPE.motionControl]: MotionControlParamsSchema,
200
+ [CANVAS_NODE_TYPE.varGen]: VarGenParamsSchema,
201
+ [CANVAS_NODE_TYPE.varBlock]: VarBlockParamsSchema,
202
+ [CANVAS_NODE_TYPE.htmlGen]: HtmlGenParamsSchema,
203
+ } as const;
204
+
205
+ export const CanvasNodeOutputSchema = z.union([
206
+ TextGenOutputSchema,
207
+ ImageGenOutputSchema,
208
+ VideoGenOutputSchema,
209
+ AudioGenTTSOutputSchema,
210
+ AudioGenSTTOutputSchema,
211
+ ColorPaletteOutputSchema,
212
+ MotionControlOutputSchema,
213
+ VarGenOutputSchema,
214
+ HtmlGenOutputSchema,
215
+ ]);
216
+ export type CanvasNodeOutput = z.infer<typeof CanvasNodeOutputSchema>;
217
+
218
+ export const CanvasNodeErrorSchema = z.object({
219
+ code: z.string(),
220
+ message: z.string(),
221
+ details: z.record(z.unknown()).optional(),
222
+ retryable: z.boolean().optional(),
223
+ });
224
+ export type CanvasNodeError = z.infer<typeof CanvasNodeErrorSchema>;
225
+
226
+ export type CanvasNodeParamsByType = {
227
+ [CANVAS_NODE_TYPE.textGen]: TextGenParams;
228
+ [CANVAS_NODE_TYPE.imageGen]: ImageGenParams;
229
+ [CANVAS_NODE_TYPE.imageEdit]: ImageGenParams;
230
+ [CANVAS_NODE_TYPE.videoGen]: VideoGenParams;
231
+ [CANVAS_NODE_TYPE.videoEdit]: VideoGenParams;
232
+ [CANVAS_NODE_TYPE.ttsGen]: AudioGenParams;
233
+ [CANVAS_NODE_TYPE.sttGen]: AudioGenParams;
234
+ [CANVAS_NODE_TYPE.textBlock]: TextBlockParams;
235
+ [CANVAS_NODE_TYPE.imageBlock]: ImageBlockParams;
236
+ [CANVAS_NODE_TYPE.videoBlock]: VideoBlockParams;
237
+ [CANVAS_NODE_TYPE.fileBlock]: FileBlockParams;
238
+ [CANVAS_NODE_TYPE.note]: NoteParams;
239
+ [CANVAS_NODE_TYPE.colorPalette]: ColorPaletteParams;
240
+ [CANVAS_NODE_TYPE.motionControl]: MotionControlParams;
241
+ [CANVAS_NODE_TYPE.varGen]: VarGenParams;
242
+ [CANVAS_NODE_TYPE.varBlock]: VarBlockParams;
243
+ [CANVAS_NODE_TYPE.htmlGen]: HtmlGenParams;
244
+ };
245
+
246
+ export type CanvasNodeOutputByType = {
247
+ [CANVAS_NODE_TYPE.textGen]: TextGenOutput;
248
+ [CANVAS_NODE_TYPE.imageGen]: ImageGenOutput;
249
+ [CANVAS_NODE_TYPE.imageEdit]: ImageGenOutput;
250
+ [CANVAS_NODE_TYPE.videoGen]: VideoGenOutput;
251
+ [CANVAS_NODE_TYPE.videoEdit]: VideoGenOutput;
252
+ [CANVAS_NODE_TYPE.ttsGen]: AudioGenTTSOutput;
253
+ [CANVAS_NODE_TYPE.sttGen]: AudioGenSTTOutput;
254
+ [CANVAS_NODE_TYPE.colorPalette]: ColorPaletteOutput;
255
+ [CANVAS_NODE_TYPE.motionControl]: MotionControlOutput;
256
+ [CANVAS_NODE_TYPE.varGen]: VarGenOutput;
257
+ [CANVAS_NODE_TYPE.htmlGen]: HtmlGenOutput;
258
+ };
259
+
260
+ export const CanvasNodeSchema = z.object({
261
+ uuid: z.string().uuid(),
262
+ canvasId: z.string().uuid(),
263
+ nodeDefinitionId: z.nativeEnum(CANVAS_NODE_TYPE),
264
+ position: CanvasNodePositionSchema,
265
+ status: z.nativeEnum(NODE_RUN_STATUS),
266
+ toolJobId: z.string().uuid().nullable(),
267
+ params: CanvasNodeParamsSchema.nullable(),
268
+ output: CanvasNodeOutputSchema.nullable(),
269
+ error: CanvasNodeErrorSchema.nullable(),
270
+ createdAt: z.date(),
271
+ updatedAt: z.date(),
272
+ });
package/models/index.ts CHANGED
@@ -4,6 +4,8 @@ export * from './ai-model-formatted.schema';
4
4
  export * from './ai-model.schema';
5
5
  export * from './ai-vendor.schema';
6
6
  export * from './canvas.schema';
7
+ export * from './canvas-node.schema';
8
+ export * from './canvas-edge.schema';
7
9
  export * from './category.schema';
8
10
  export * from './chat-with-messages.schema';
9
11
  export * from './chat.schema';
@@ -8,6 +8,7 @@ export const WebmasterSchema = z.object({
8
8
  organizationType: z.nativeEnum(ORGANIZATION_TYPE),
9
9
  tin: z.string().regex(/^\d{10}$|^\d{12}$/, 'ИНН должен быть длинной в 10 или 12 цифр'),
10
10
  alias: z.string(),
11
+ isPremium: z.boolean(),
11
12
 
12
13
  createdAt: z.date(),
13
14
  updatedAt: z.date(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/gptbot",
3
- "version": "0.12.59",
3
+ "version": "0.12.61",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",