@purpleschool/gptbot 0.12.61 → 0.12.63

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 (37) hide show
  1. package/api/controllers/http/canvas-node-definition.ts +5 -0
  2. package/api/controllers/http/canvas.ts +1 -0
  3. package/api/controllers/http/index.ts +1 -0
  4. package/build/api/controllers/http/canvas-node-definition.js +7 -0
  5. package/build/api/controllers/http/canvas.js +1 -0
  6. package/build/api/controllers/http/index.js +1 -0
  7. package/build/commands/canvas/find-canvases-by-user.query.js +1 -0
  8. package/build/commands/canvas/index.js +1 -0
  9. package/build/commands/canvas/run-canvas.command.js +23 -0
  10. package/build/commands/canvas-node/find-canvas-node-definitions-with-configs.query.js +11 -0
  11. package/build/commands/canvas-node/index.js +1 -0
  12. package/build/commands/team-account/find-team-accounts-by-name.command.js +2 -0
  13. package/build/constants/canvas/enums/canvas-status.enum.js +9 -0
  14. package/build/constants/canvas/enums/index.js +17 -0
  15. package/build/constants/canvas/index.js +17 -0
  16. package/build/constants/index.js +1 -0
  17. package/build/models/canvas-node-definition.schema.js +74 -0
  18. package/build/models/canvas-node.schema.js +19 -10
  19. package/build/models/canvas.schema.js +2 -0
  20. package/build/models/index.js +1 -0
  21. package/build/models/tools/image-editor/image-editor-model.schema.js +7 -4
  22. package/commands/canvas/find-canvases-by-user.query.ts +1 -0
  23. package/commands/canvas/index.ts +1 -0
  24. package/commands/canvas/run-canvas.command.ts +31 -0
  25. package/commands/canvas-node/find-canvas-node-definitions-with-configs.query.ts +10 -0
  26. package/commands/canvas-node/index.ts +1 -0
  27. package/commands/team-account/find-team-accounts-by-name.command.ts +2 -0
  28. package/constants/canvas/enums/canvas-status.enum.ts +5 -0
  29. package/constants/canvas/enums/index.ts +1 -0
  30. package/constants/canvas/index.ts +1 -0
  31. package/constants/index.ts +1 -0
  32. package/models/canvas-node-definition.schema.ts +94 -0
  33. package/models/canvas-node.schema.ts +20 -11
  34. package/models/canvas.schema.ts +2 -0
  35. package/models/index.ts +1 -0
  36. package/models/tools/image-editor/image-editor-model.schema.ts +7 -4
  37. package/package.json +1 -1
@@ -0,0 +1,5 @@
1
+ export const CANVAS_NODE_DEFINITION_PRIVATE_CONTROLLER = 'private/canvas-node-definitions';
2
+
3
+ export const CANVAS_NODE_DEFINITION_ROUTES = {
4
+ GET: '',
5
+ } as const;
@@ -8,4 +8,5 @@ export const CANVAS_ROUTES = {
8
8
  SAVE: (uuid: string) => `${uuid}/save`,
9
9
  UPDATE: (uuid: string) => `${uuid}`,
10
10
  DELETE: (uuid: string) => `${uuid}`,
11
+ RUN: (uuid: string) => `${uuid}/run`,
11
12
  } as const;
@@ -5,6 +5,7 @@ export * from './ai-vendor';
5
5
  export * from './auth';
6
6
  export * from './blog';
7
7
  export * from './canvas';
8
+ export * from './canvas-node-definition';
8
9
  export * from './canvas-node';
9
10
  export * from './canvas-edge';
10
11
  export * from './category';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CANVAS_NODE_DEFINITION_ROUTES = exports.CANVAS_NODE_DEFINITION_PRIVATE_CONTROLLER = void 0;
4
+ exports.CANVAS_NODE_DEFINITION_PRIVATE_CONTROLLER = 'private/canvas-node-definitions';
5
+ exports.CANVAS_NODE_DEFINITION_ROUTES = {
6
+ GET: '',
7
+ };
@@ -10,4 +10,5 @@ exports.CANVAS_ROUTES = {
10
10
  SAVE: (uuid) => `${uuid}/save`,
11
11
  UPDATE: (uuid) => `${uuid}`,
12
12
  DELETE: (uuid) => `${uuid}`,
13
+ RUN: (uuid) => `${uuid}/run`,
13
14
  };
@@ -21,6 +21,7 @@ __exportStar(require("./ai-vendor"), exports);
21
21
  __exportStar(require("./auth"), exports);
22
22
  __exportStar(require("./blog"), exports);
23
23
  __exportStar(require("./canvas"), exports);
24
+ __exportStar(require("./canvas-node-definition"), exports);
24
25
  __exportStar(require("./canvas-node"), exports);
25
26
  __exportStar(require("./canvas-edge"), exports);
26
27
  __exportStar(require("./category"), exports);
@@ -8,6 +8,7 @@ var FindCanvasesByUserQuery;
8
8
  FindCanvasesByUserQuery.RequestSchema = zod_1.z.object({
9
9
  limit: zod_1.z.coerce.number().min(1).default(10),
10
10
  offset: zod_1.z.coerce.number().min(0).default(0),
11
+ name: zod_1.z.string().trim().optional(),
11
12
  });
12
13
  FindCanvasesByUserQuery.ResponseSchema = zod_1.z.object({
13
14
  data: zod_1.z.array(models_1.CanvasSchema),
@@ -19,5 +19,6 @@ __exportStar(require("./delete-canvas.command"), exports);
19
19
  __exportStar(require("./find-canvas-by-uuid.query"), exports);
20
20
  __exportStar(require("./find-canvas-by-uuid-with-relations.query"), exports);
21
21
  __exportStar(require("./find-canvases-by-user.query"), exports);
22
+ __exportStar(require("./run-canvas.command"), exports);
22
23
  __exportStar(require("./save-canvas.command"), exports);
23
24
  __exportStar(require("./update-canvas.command"), exports);
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RunCanvasCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const models_1 = require("../../models");
6
+ const save_canvas_command_1 = require("./save-canvas.command");
7
+ var RunCanvasCommand;
8
+ (function (RunCanvasCommand) {
9
+ RunCanvasCommand.RequestParamSchema = models_1.CanvasSchema.pick({
10
+ uuid: true,
11
+ });
12
+ RunCanvasCommand.RequestSchema = zod_1.z.object({
13
+ updatedAt: zod_1.z.preprocess((value) => (typeof value === 'string' ? new Date(value) : value), zod_1.z.date()),
14
+ nodes: zod_1.z.array(save_canvas_command_1.SaveCanvasCommand.CanvasNodePayloadSchema),
15
+ edges: zod_1.z.array(save_canvas_command_1.SaveCanvasCommand.CanvasEdgePayloadSchema),
16
+ });
17
+ RunCanvasCommand.ResponseSchema = zod_1.z.object({
18
+ data: models_1.CanvasSchema.extend({
19
+ nodes: zod_1.z.array(models_1.CanvasNodeSchema),
20
+ edges: zod_1.z.array(models_1.CanvasEdgeSchema),
21
+ }),
22
+ });
23
+ })(RunCanvasCommand || (exports.RunCanvasCommand = RunCanvasCommand = {}));
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FindCanvasNodeDefinitionsWithConfigsQuery = void 0;
4
+ const zod_1 = require("zod");
5
+ const models_1 = require("../../models");
6
+ var FindCanvasNodeDefinitionsWithConfigsQuery;
7
+ (function (FindCanvasNodeDefinitionsWithConfigsQuery) {
8
+ FindCanvasNodeDefinitionsWithConfigsQuery.ResponseSchema = zod_1.z.object({
9
+ data: models_1.CanvasNodeDefinitionsWithConfigsSchema,
10
+ });
11
+ })(FindCanvasNodeDefinitionsWithConfigsQuery || (exports.FindCanvasNodeDefinitionsWithConfigsQuery = FindCanvasNodeDefinitionsWithConfigsQuery = {}));
@@ -17,5 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./create-canvas-node.command"), exports);
18
18
  __exportStar(require("./delete-canvas-node.command"), exports);
19
19
  __exportStar(require("./find-canvas-node-by-uuid.query"), exports);
20
+ __exportStar(require("./find-canvas-node-definitions-with-configs.query"), exports);
20
21
  __exportStar(require("./find-canvas-nodes-by-canvas.query"), exports);
21
22
  __exportStar(require("./update-canvas-node.command"), exports);
@@ -8,6 +8,8 @@ var FindTeamAccountsByNameCommand;
8
8
  (function (FindTeamAccountsByNameCommand) {
9
9
  FindTeamAccountsByNameCommand.RequestSchema = zod_1.z.object({
10
10
  name: zod_1.z.string().trim().min(1).optional(),
11
+ creatorEmail: zod_1.z.string().trim().min(1).optional(),
12
+ hasPaidSubscription: zod_1.z.boolean().optional(),
11
13
  limit: zod_1.z.coerce.number().int().min(1).max(100).default(20).optional(),
12
14
  offset: zod_1.z.coerce.number().int().min(0).default(0).optional(),
13
15
  sortBy: zod_1.z
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CANVAS_STATUS = void 0;
4
+ var CANVAS_STATUS;
5
+ (function (CANVAS_STATUS) {
6
+ CANVAS_STATUS["IDLE"] = "IDLE";
7
+ CANVAS_STATUS["RUNNING"] = "RUNNING";
8
+ CANVAS_STATUS["FAILED"] = "FAILED";
9
+ })(CANVAS_STATUS || (exports.CANVAS_STATUS = CANVAS_STATUS = {}));
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./canvas-status.enum"), exports);
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./enums"), exports);
@@ -56,6 +56,7 @@ __exportStar(require("./tool-html-page-builder"), exports);
56
56
  __exportStar(require("./feedback"), exports);
57
57
  __exportStar(require("./daily-streak"), exports);
58
58
  __exportStar(require("./cabinet"), exports);
59
+ __exportStar(require("./canvas"), exports);
59
60
  __exportStar(require("./canvas-node"), exports);
60
61
  __exportStar(require("./canvas-edge"), exports);
61
62
  __exportStar(require("./webmaster"), exports);
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CanvasNodeDefinitionsWithConfigsSchema = exports.CanvasNodeDefinitionWithConfigSchema = exports.CanvasNodeDefinitionSchema = exports.CanvasNodeDefinitionToolConfigSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const constants_1 = require("../constants");
6
+ const icon_variants_schema_1 = require("./icon-variants.schema");
7
+ const tools_1 = require("./tools");
8
+ const createCanvasNodeDefinitionNoConfigSchema = (nodeType) => zod_1.z.object({
9
+ nodeType: zod_1.z.literal(nodeType),
10
+ toolType: zod_1.z.null(),
11
+ config: zod_1.z.null(),
12
+ });
13
+ exports.CanvasNodeDefinitionToolConfigSchema = zod_1.z.discriminatedUnion('nodeType', [
14
+ zod_1.z.object({
15
+ nodeType: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.imageGen),
16
+ toolType: zod_1.z.literal(constants_1.TOOL_CONTENT_TYPE.IMAGE_GENERATION),
17
+ config: tools_1.ImageGenerationConfigSchema,
18
+ }),
19
+ zod_1.z.object({
20
+ nodeType: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.imageEdit),
21
+ toolType: zod_1.z.literal(constants_1.TOOL_CONTENT_TYPE.IMAGE_EDITOR),
22
+ config: tools_1.ImageEditorConfigSchema,
23
+ }),
24
+ zod_1.z.object({
25
+ nodeType: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.ttsGen),
26
+ toolType: zod_1.z.literal(constants_1.TOOL_CONTENT_TYPE.TEXT_TO_SPEECH),
27
+ config: tools_1.TTSConfigSchema,
28
+ }),
29
+ zod_1.z.object({
30
+ nodeType: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.sttGen),
31
+ toolType: zod_1.z.literal(constants_1.TOOL_CONTENT_TYPE.SPEECH_TO_TEXT),
32
+ config: tools_1.STTConfigSchema,
33
+ }),
34
+ zod_1.z.object({
35
+ nodeType: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.videoGen),
36
+ toolType: zod_1.z.literal(constants_1.TOOL_CONTENT_TYPE.VIDEO),
37
+ config: tools_1.VideoConfigSchema,
38
+ }),
39
+ zod_1.z.object({
40
+ nodeType: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.videoEdit),
41
+ toolType: zod_1.z.literal(constants_1.TOOL_CONTENT_TYPE.VIDEO_EDITOR),
42
+ config: tools_1.VideoEditorConfigSchema,
43
+ }),
44
+ zod_1.z.object({
45
+ nodeType: zod_1.z.literal(constants_1.CANVAS_NODE_TYPE.htmlGen),
46
+ toolType: zod_1.z.literal(constants_1.TOOL_CONTENT_TYPE.HTML_PAGE_BUILDER),
47
+ config: tools_1.HtmlPageBuilderConfigSchema,
48
+ }),
49
+ createCanvasNodeDefinitionNoConfigSchema(constants_1.CANVAS_NODE_TYPE.textGen),
50
+ createCanvasNodeDefinitionNoConfigSchema(constants_1.CANVAS_NODE_TYPE.textBlock),
51
+ createCanvasNodeDefinitionNoConfigSchema(constants_1.CANVAS_NODE_TYPE.imageBlock),
52
+ createCanvasNodeDefinitionNoConfigSchema(constants_1.CANVAS_NODE_TYPE.videoBlock),
53
+ createCanvasNodeDefinitionNoConfigSchema(constants_1.CANVAS_NODE_TYPE.fileBlock),
54
+ createCanvasNodeDefinitionNoConfigSchema(constants_1.CANVAS_NODE_TYPE.note),
55
+ createCanvasNodeDefinitionNoConfigSchema(constants_1.CANVAS_NODE_TYPE.colorPalette),
56
+ createCanvasNodeDefinitionNoConfigSchema(constants_1.CANVAS_NODE_TYPE.motionControl),
57
+ createCanvasNodeDefinitionNoConfigSchema(constants_1.CANVAS_NODE_TYPE.varGen),
58
+ createCanvasNodeDefinitionNoConfigSchema(constants_1.CANVAS_NODE_TYPE.varBlock),
59
+ ]);
60
+ exports.CanvasNodeDefinitionSchema = zod_1.z.object({
61
+ type: zod_1.z.nativeEnum(constants_1.CANVAS_NODE_TYPE),
62
+ label: zod_1.z.string(),
63
+ icons: icon_variants_schema_1.IconVariantsSchema,
64
+ inputPoints: zod_1.z.array(zod_1.z.nativeEnum(constants_1.INPUT_OUTPUT_TYPE)),
65
+ outputPoints: zod_1.z.array(zod_1.z.nativeEnum(constants_1.INPUT_OUTPUT_TYPE)),
66
+ toolType: zod_1.z.nativeEnum(constants_1.TOOL_CONTENT_TYPE).nullable(),
67
+ createdAt: zod_1.z.date(),
68
+ updatedAt: zod_1.z.date(),
69
+ });
70
+ exports.CanvasNodeDefinitionWithConfigSchema = zod_1.z.object({
71
+ nodeDefinition: exports.CanvasNodeDefinitionSchema,
72
+ config: exports.CanvasNodeDefinitionToolConfigSchema,
73
+ });
74
+ exports.CanvasNodeDefinitionsWithConfigsSchema = zod_1.z.record(zod_1.z.nativeEnum(constants_1.CANVAS_NODE_TYPE), exports.CanvasNodeDefinitionWithConfigSchema);
@@ -26,18 +26,27 @@ exports.ImageGenParamsSchema = strictObject({
26
26
  });
27
27
  exports.VideoGenParamsSchema = strictObject({
28
28
  prompt: zod_1.z.string(),
29
- duration: zod_1.z.string(),
30
- resolution: zod_1.z.string(),
31
- });
32
- exports.AudioGenParamsSchema = strictObject({
33
- mode: zod_1.z.union([zod_1.z.literal('tts'), zod_1.z.literal('stt')]),
34
- prompt: zod_1.z.string(),
35
- voice: zod_1.z.string(),
36
29
  model: zod_1.z.string(),
37
- stability: zod_1.z.number(),
38
- similarityBoost: zod_1.z.number(),
39
- audioFileUrl: zod_1.z.string(),
30
+ duration: zod_1.z.string().optional(),
31
+ aspectRatio: zod_1.z.string().optional(),
32
+ resolution: zod_1.z.string().optional(),
40
33
  });
34
+ exports.AudioGenParamsSchema = zod_1.z.discriminatedUnion('mode', [
35
+ strictObject({
36
+ mode: zod_1.z.literal('tts'),
37
+ prompt: zod_1.z.string(),
38
+ model: zod_1.z.string(),
39
+ voice: zod_1.z.string(),
40
+ stability: zod_1.z.number(),
41
+ similarityBoost: zod_1.z.number(),
42
+ }),
43
+ strictObject({
44
+ mode: zod_1.z.literal('stt'),
45
+ prompt: zod_1.z.string(),
46
+ model: zod_1.z.string(),
47
+ audioFileId: zod_1.z.string().uuid(),
48
+ }),
49
+ ]);
41
50
  exports.ColorPaletteParamsSchema = strictObject({
42
51
  prompt: zod_1.z.string(),
43
52
  });
@@ -2,10 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CanvasSchema = void 0;
4
4
  const zod_1 = require("zod");
5
+ const constants_1 = require("../constants");
5
6
  exports.CanvasSchema = zod_1.z.object({
6
7
  uuid: zod_1.z.string().uuid(),
7
8
  name: zod_1.z.string(),
8
9
  userId: zod_1.z.string().uuid(),
10
+ status: zod_1.z.nativeEnum(constants_1.CANVAS_STATUS),
9
11
  createdAt: zod_1.z.date(),
10
12
  updatedAt: zod_1.z.date(),
11
13
  });
@@ -20,6 +20,7 @@ __exportStar(require("./ai-model-formatted.schema"), exports);
20
20
  __exportStar(require("./ai-model.schema"), exports);
21
21
  __exportStar(require("./ai-vendor.schema"), exports);
22
22
  __exportStar(require("./canvas.schema"), exports);
23
+ __exportStar(require("./canvas-node-definition.schema"), exports);
23
24
  __exportStar(require("./canvas-node.schema"), exports);
24
25
  __exportStar(require("./canvas-edge.schema"), exports);
25
26
  __exportStar(require("./category.schema"), exports);
@@ -11,10 +11,13 @@ exports.ImageEditorModelParamsSchema = zod_1.z.object({
11
11
  acceptedTypes: zod_1.z.array(zod_1.z.string()),
12
12
  }),
13
13
  aspectRatio: zod_1.z
14
- .record(zod_1.z.string(), zod_1.z.object({
15
- width: zod_1.z.number(),
16
- height: zod_1.z.number(),
17
- }))
14
+ .record(zod_1.z.string(), zod_1.z.union([
15
+ zod_1.z.object({
16
+ width: zod_1.z.number(),
17
+ height: zod_1.z.number(),
18
+ }),
19
+ zod_1.z.string(),
20
+ ]))
18
21
  .optional(),
19
22
  });
20
23
  exports.ImageEditorModelPricingRuleConditionSchema = zod_1.z.object({
@@ -5,6 +5,7 @@ export namespace FindCanvasesByUserQuery {
5
5
  export const RequestSchema = z.object({
6
6
  limit: z.coerce.number().min(1).default(10),
7
7
  offset: z.coerce.number().min(0).default(0),
8
+ name: z.string().trim().optional(),
8
9
  });
9
10
 
10
11
  export type Request = z.infer<typeof RequestSchema>;
@@ -3,5 +3,6 @@ export * from './delete-canvas.command';
3
3
  export * from './find-canvas-by-uuid.query';
4
4
  export * from './find-canvas-by-uuid-with-relations.query';
5
5
  export * from './find-canvases-by-user.query';
6
+ export * from './run-canvas.command';
6
7
  export * from './save-canvas.command';
7
8
  export * from './update-canvas.command';
@@ -0,0 +1,31 @@
1
+ import { z } from 'zod';
2
+ import { CanvasEdgeSchema, CanvasNodeSchema, CanvasSchema } from '../../models';
3
+ import { SaveCanvasCommand } from './save-canvas.command';
4
+
5
+ export namespace RunCanvasCommand {
6
+ export const RequestParamSchema = CanvasSchema.pick({
7
+ uuid: true,
8
+ });
9
+
10
+ export type RequestParam = z.infer<typeof RequestParamSchema>;
11
+
12
+ export const RequestSchema = z.object({
13
+ updatedAt: z.preprocess(
14
+ (value) => (typeof value === 'string' ? new Date(value) : value),
15
+ z.date(),
16
+ ),
17
+ nodes: z.array(SaveCanvasCommand.CanvasNodePayloadSchema),
18
+ edges: z.array(SaveCanvasCommand.CanvasEdgePayloadSchema),
19
+ });
20
+
21
+ export type Request = z.infer<typeof RequestSchema>;
22
+
23
+ export const ResponseSchema = z.object({
24
+ data: CanvasSchema.extend({
25
+ nodes: z.array(CanvasNodeSchema),
26
+ edges: z.array(CanvasEdgeSchema),
27
+ }),
28
+ });
29
+
30
+ export type Response = z.infer<typeof ResponseSchema>;
31
+ }
@@ -0,0 +1,10 @@
1
+ import { z } from 'zod';
2
+ import { CanvasNodeDefinitionsWithConfigsSchema } from '../../models';
3
+
4
+ export namespace FindCanvasNodeDefinitionsWithConfigsQuery {
5
+ export const ResponseSchema = z.object({
6
+ data: CanvasNodeDefinitionsWithConfigsSchema,
7
+ });
8
+
9
+ export type Response = z.infer<typeof ResponseSchema>;
10
+ }
@@ -1,5 +1,6 @@
1
1
  export * from './create-canvas-node.command';
2
2
  export * from './delete-canvas-node.command';
3
3
  export * from './find-canvas-node-by-uuid.query';
4
+ export * from './find-canvas-node-definitions-with-configs.query';
4
5
  export * from './find-canvas-nodes-by-canvas.query';
5
6
  export * from './update-canvas-node.command';
@@ -5,6 +5,8 @@ import { SORT_ORDER, TEAM_ACCOUNT_ADMIN_SORT_BY } from '../../constants';
5
5
  export namespace FindTeamAccountsByNameCommand {
6
6
  export const RequestSchema = z.object({
7
7
  name: z.string().trim().min(1).optional(),
8
+ creatorEmail: z.string().trim().min(1).optional(),
9
+ hasPaidSubscription: z.boolean().optional(),
8
10
  limit: z.coerce.number().int().min(1).max(100).default(20).optional(),
9
11
  offset: z.coerce.number().int().min(0).default(0).optional(),
10
12
  sortBy: z
@@ -0,0 +1,5 @@
1
+ export enum CANVAS_STATUS {
2
+ IDLE = 'IDLE',
3
+ RUNNING = 'RUNNING',
4
+ FAILED = 'FAILED',
5
+ }
@@ -0,0 +1 @@
1
+ export * from './canvas-status.enum';
@@ -0,0 +1 @@
1
+ export * from './enums';
@@ -40,6 +40,7 @@ export * from './tool-html-page-builder';
40
40
  export * from './feedback';
41
41
  export * from './daily-streak';
42
42
  export * from './cabinet';
43
+ export * from './canvas';
43
44
  export * from './canvas-node';
44
45
  export * from './canvas-edge';
45
46
  export * from './webmaster';
@@ -0,0 +1,94 @@
1
+ import { z } from 'zod';
2
+ import { CANVAS_NODE_TYPE, INPUT_OUTPUT_TYPE, TOOL_CONTENT_TYPE } from '../constants';
3
+ import { IconVariantsSchema } from './icon-variants.schema';
4
+ import {
5
+ HtmlPageBuilderConfigSchema,
6
+ ImageEditorConfigSchema,
7
+ ImageGenerationConfigSchema,
8
+ STTConfigSchema,
9
+ TTSConfigSchema,
10
+ VideoEditorConfigSchema,
11
+ VideoConfigSchema,
12
+ } from './tools';
13
+
14
+ const createCanvasNodeDefinitionNoConfigSchema = (nodeType: CANVAS_NODE_TYPE) =>
15
+ z.object({
16
+ nodeType: z.literal(nodeType),
17
+ toolType: z.null(),
18
+ config: z.null(),
19
+ });
20
+
21
+ export const CanvasNodeDefinitionToolConfigSchema = z.discriminatedUnion('nodeType', [
22
+ z.object({
23
+ nodeType: z.literal(CANVAS_NODE_TYPE.imageGen),
24
+ toolType: z.literal(TOOL_CONTENT_TYPE.IMAGE_GENERATION),
25
+ config: ImageGenerationConfigSchema,
26
+ }),
27
+ z.object({
28
+ nodeType: z.literal(CANVAS_NODE_TYPE.imageEdit),
29
+ toolType: z.literal(TOOL_CONTENT_TYPE.IMAGE_EDITOR),
30
+ config: ImageEditorConfigSchema,
31
+ }),
32
+ z.object({
33
+ nodeType: z.literal(CANVAS_NODE_TYPE.ttsGen),
34
+ toolType: z.literal(TOOL_CONTENT_TYPE.TEXT_TO_SPEECH),
35
+ config: TTSConfigSchema,
36
+ }),
37
+ z.object({
38
+ nodeType: z.literal(CANVAS_NODE_TYPE.sttGen),
39
+ toolType: z.literal(TOOL_CONTENT_TYPE.SPEECH_TO_TEXT),
40
+ config: STTConfigSchema,
41
+ }),
42
+ z.object({
43
+ nodeType: z.literal(CANVAS_NODE_TYPE.videoGen),
44
+ toolType: z.literal(TOOL_CONTENT_TYPE.VIDEO),
45
+ config: VideoConfigSchema,
46
+ }),
47
+ z.object({
48
+ nodeType: z.literal(CANVAS_NODE_TYPE.videoEdit),
49
+ toolType: z.literal(TOOL_CONTENT_TYPE.VIDEO_EDITOR),
50
+ config: VideoEditorConfigSchema,
51
+ }),
52
+ z.object({
53
+ nodeType: z.literal(CANVAS_NODE_TYPE.htmlGen),
54
+ toolType: z.literal(TOOL_CONTENT_TYPE.HTML_PAGE_BUILDER),
55
+ config: HtmlPageBuilderConfigSchema,
56
+ }),
57
+ createCanvasNodeDefinitionNoConfigSchema(CANVAS_NODE_TYPE.textGen),
58
+ createCanvasNodeDefinitionNoConfigSchema(CANVAS_NODE_TYPE.textBlock),
59
+ createCanvasNodeDefinitionNoConfigSchema(CANVAS_NODE_TYPE.imageBlock),
60
+ createCanvasNodeDefinitionNoConfigSchema(CANVAS_NODE_TYPE.videoBlock),
61
+ createCanvasNodeDefinitionNoConfigSchema(CANVAS_NODE_TYPE.fileBlock),
62
+ createCanvasNodeDefinitionNoConfigSchema(CANVAS_NODE_TYPE.note),
63
+ createCanvasNodeDefinitionNoConfigSchema(CANVAS_NODE_TYPE.colorPalette),
64
+ createCanvasNodeDefinitionNoConfigSchema(CANVAS_NODE_TYPE.motionControl),
65
+ createCanvasNodeDefinitionNoConfigSchema(CANVAS_NODE_TYPE.varGen),
66
+ createCanvasNodeDefinitionNoConfigSchema(CANVAS_NODE_TYPE.varBlock),
67
+ ]);
68
+ export type CanvasNodeDefinitionToolConfig = z.infer<typeof CanvasNodeDefinitionToolConfigSchema>;
69
+
70
+ export const CanvasNodeDefinitionSchema = z.object({
71
+ type: z.nativeEnum(CANVAS_NODE_TYPE),
72
+ label: z.string(),
73
+ icons: IconVariantsSchema,
74
+ inputPoints: z.array(z.nativeEnum(INPUT_OUTPUT_TYPE)),
75
+ outputPoints: z.array(z.nativeEnum(INPUT_OUTPUT_TYPE)),
76
+ toolType: z.nativeEnum(TOOL_CONTENT_TYPE).nullable(),
77
+ createdAt: z.date(),
78
+ updatedAt: z.date(),
79
+ });
80
+ export type CanvasNodeDefinition = z.infer<typeof CanvasNodeDefinitionSchema>;
81
+
82
+ export const CanvasNodeDefinitionWithConfigSchema = z.object({
83
+ nodeDefinition: CanvasNodeDefinitionSchema,
84
+ config: CanvasNodeDefinitionToolConfigSchema,
85
+ });
86
+ export type CanvasNodeDefinitionWithConfig = z.infer<typeof CanvasNodeDefinitionWithConfigSchema>;
87
+
88
+ export const CanvasNodeDefinitionsWithConfigsSchema = z.record(
89
+ z.nativeEnum(CANVAS_NODE_TYPE),
90
+ CanvasNodeDefinitionWithConfigSchema,
91
+ );
92
+ export type CanvasNodeDefinitionsWithConfigs = z.infer<
93
+ typeof CanvasNodeDefinitionsWithConfigsSchema
94
+ >;
@@ -32,20 +32,29 @@ export type ImageGenParams = z.infer<typeof ImageGenParamsSchema>;
32
32
 
33
33
  export const VideoGenParamsSchema = strictObject({
34
34
  prompt: z.string(),
35
- duration: z.string(),
36
- resolution: z.string(),
35
+ model: z.string(),
36
+ duration: z.string().optional(),
37
+ aspectRatio: z.string().optional(),
38
+ resolution: z.string().optional(),
37
39
  });
38
40
  export type VideoGenParams = z.infer<typeof VideoGenParamsSchema>;
39
41
 
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
- });
42
+ export const AudioGenParamsSchema = z.discriminatedUnion('mode', [
43
+ strictObject({
44
+ mode: z.literal('tts'),
45
+ prompt: z.string(),
46
+ model: z.string(),
47
+ voice: z.string(),
48
+ stability: z.number(),
49
+ similarityBoost: z.number(),
50
+ }),
51
+ strictObject({
52
+ mode: z.literal('stt'),
53
+ prompt: z.string(),
54
+ model: z.string(),
55
+ audioFileId: z.string().uuid(),
56
+ }),
57
+ ]);
49
58
  export type AudioGenParams = z.infer<typeof AudioGenParamsSchema>;
50
59
 
51
60
  export const ColorPaletteParamsSchema = strictObject({
@@ -1,9 +1,11 @@
1
1
  import { z } from 'zod';
2
+ import { CANVAS_STATUS } from '../constants';
2
3
 
3
4
  export const CanvasSchema = z.object({
4
5
  uuid: z.string().uuid(),
5
6
  name: z.string(),
6
7
  userId: z.string().uuid(),
8
+ status: z.nativeEnum(CANVAS_STATUS),
7
9
  createdAt: z.date(),
8
10
  updatedAt: z.date(),
9
11
  });
package/models/index.ts CHANGED
@@ -4,6 +4,7 @@ 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-definition.schema';
7
8
  export * from './canvas-node.schema';
8
9
  export * from './canvas-edge.schema';
9
10
  export * from './category.schema';
@@ -11,10 +11,13 @@ export const ImageEditorModelParamsSchema = z.object({
11
11
  aspectRatio: z
12
12
  .record(
13
13
  z.string(),
14
- z.object({
15
- width: z.number(),
16
- height: z.number(),
17
- }),
14
+ z.union([
15
+ z.object({
16
+ width: z.number(),
17
+ height: z.number(),
18
+ }),
19
+ z.string(),
20
+ ]),
18
21
  )
19
22
  .optional(),
20
23
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/gptbot",
3
- "version": "0.12.61",
3
+ "version": "0.12.63",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",