@purpleschool/gptbot-tools 0.0.60 → 0.0.62
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/build/common/errors/errors.js +171 -1
- package/build/index.js +3 -0
- package/build/music/commands/convert-to-wav.command.js +15 -0
- package/build/music/commands/delete-all-music-jobs.command.js +13 -0
- package/build/music/commands/delete-music-job-by-uuid.command.js +14 -0
- package/build/music/commands/generate-lyrics.command.js +18 -0
- package/build/music/commands/generate-music.command.js +18 -0
- package/build/music/commands/index.js +24 -0
- package/build/music/commands/retry-music-job.command.js +16 -0
- package/build/music/commands/set-reaction-to-music-job.command.js +17 -0
- package/build/music/commands/update-music-job-title.command.js +16 -0
- package/build/music/enums/index.js +22 -0
- package/build/music/enums/music-action-type.enum.js +7 -0
- package/build/music/enums/music-pricing-rule-type.enum.js +7 -0
- package/build/music/enums/music-strategy.enum.js +7 -0
- package/build/music/enums/music-vocal-gender.enum.js +8 -0
- package/build/music/enums/suno-mode-type.enum.js +10 -0
- package/build/music/enums/suno-model-type.enum.js +10 -0
- package/build/music/index.js +22 -0
- package/build/music/models/index.js +20 -0
- package/build/music/models/music-config.schema.js +8 -0
- package/build/music/models/music-job.schema.js +54 -0
- package/build/music/models/music-model.schema.js +35 -0
- package/build/music/models/music-track.schema.js +17 -0
- package/build/music/queries/find-music-job-by-id.query.js +10 -0
- package/build/music/queries/find-music-jobs.query.js +28 -0
- package/build/music/queries/get-music-config.query.js +9 -0
- package/build/music/queries/index.js +19 -0
- package/build/music/routes/index.js +17 -0
- package/build/music/routes/music.amqp.routes.js +16 -0
- package/build/music/utils/calculate-music-generation-price.util.js +7 -0
- package/build/music/utils/index.js +17 -0
- package/build/tools/enums/tool-type.enum.js +2 -0
- package/build/video/enums/video-strategy.enum.js +1 -0
- package/build/video/routes/video.http.routes.js +1 -0
- package/build/video-editor/enums/video-editor-model-strategy.enum.js +2 -0
- package/build/video-editor/routes/video-editor.http.routes.js +5 -1
- package/common/errors/errors.ts +174 -2
- package/index.ts +3 -0
- package/music/commands/convert-to-wav.command.ts +15 -0
- package/music/commands/delete-all-music-jobs.command.ts +13 -0
- package/music/commands/delete-music-job-by-uuid.command.ts +14 -0
- package/music/commands/generate-lyrics.command.ts +20 -0
- package/music/commands/generate-music.command.ts +18 -0
- package/music/commands/index.ts +8 -0
- package/music/commands/retry-music-job.command.ts +16 -0
- package/music/commands/set-reaction-to-music-job.command.ts +17 -0
- package/music/commands/update-music-job-title.command.ts +16 -0
- package/music/enums/index.ts +6 -0
- package/music/enums/music-action-type.enum.ts +3 -0
- package/music/enums/music-pricing-rule-type.enum.ts +3 -0
- package/music/enums/music-strategy.enum.ts +3 -0
- package/music/enums/music-vocal-gender.enum.ts +4 -0
- package/music/enums/suno-mode-type.enum.ts +6 -0
- package/music/enums/suno-model-type.enum.ts +6 -0
- package/music/index.ts +6 -0
- package/music/models/index.ts +4 -0
- package/music/models/music-config.schema.ts +8 -0
- package/music/models/music-job.schema.ts +57 -0
- package/music/models/music-model.schema.ts +40 -0
- package/music/models/music-track.schema.ts +19 -0
- package/music/queries/find-music-job-by-id.query.ts +11 -0
- package/music/queries/find-music-jobs.query.ts +33 -0
- package/music/queries/get-music-config.query.ts +8 -0
- package/music/queries/index.ts +3 -0
- package/music/routes/index.ts +1 -0
- package/music/routes/music.amqp.routes.ts +13 -0
- package/music/utils/calculate-music-generation-price.util.ts +5 -0
- package/music/utils/index.ts +1 -0
- package/package.json +1 -1
- package/tools/enums/tool-type.enum.ts +2 -0
- package/video/enums/video-strategy.enum.ts +1 -0
- package/video/routes/video.http.routes.ts +1 -0
- package/video-editor/enums/video-editor-model-strategy.enum.ts +2 -0
- package/video-editor/routes/video-editor.http.routes.ts +5 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FindMusicJobsQuery = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const command_response_schema_1 = require("../../common/models/command-response.schema");
|
|
6
|
+
const music_job_schema_1 = require("../models/music-job.schema");
|
|
7
|
+
var FindMusicJobsQuery;
|
|
8
|
+
(function (FindMusicJobsQuery) {
|
|
9
|
+
FindMusicJobsQuery.RequestSchema = zod_1.z
|
|
10
|
+
.object({
|
|
11
|
+
userId: zod_1.z.string().uuid().optional(),
|
|
12
|
+
unregisteredUserId: zod_1.z.string().uuid().optional(),
|
|
13
|
+
title: zod_1.z.string().optional(),
|
|
14
|
+
limit: zod_1.z.coerce.number().min(1).optional(),
|
|
15
|
+
offset: zod_1.z.coerce.number().min(0).default(0).optional(),
|
|
16
|
+
})
|
|
17
|
+
.refine((data) => {
|
|
18
|
+
return Boolean(data.userId) !== Boolean(data.unregisteredUserId);
|
|
19
|
+
}, {
|
|
20
|
+
message: 'At least userId or unregisteredUserId must be present',
|
|
21
|
+
path: ['userId', 'unregisteredUserId'],
|
|
22
|
+
});
|
|
23
|
+
FindMusicJobsQuery.ResponseSchema = (0, command_response_schema_1.ICommandResponseSchema)(zod_1.z.object({
|
|
24
|
+
data: zod_1.z.array(music_job_schema_1.MusicJobSchema),
|
|
25
|
+
page: zod_1.z.number(),
|
|
26
|
+
totalPages: zod_1.z.number(),
|
|
27
|
+
}));
|
|
28
|
+
})(FindMusicJobsQuery || (exports.FindMusicJobsQuery = FindMusicJobsQuery = {}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetMusicConfigQuery = void 0;
|
|
4
|
+
const command_response_schema_1 = require("../../common/models/command-response.schema");
|
|
5
|
+
const models_1 = require("../models");
|
|
6
|
+
var GetMusicConfigQuery;
|
|
7
|
+
(function (GetMusicConfigQuery) {
|
|
8
|
+
GetMusicConfigQuery.ResponseSchema = (0, command_response_schema_1.ICommandResponseSchema)(models_1.MusicConfigSchema);
|
|
9
|
+
})(GetMusicConfigQuery || (exports.GetMusicConfigQuery = GetMusicConfigQuery = {}));
|
|
@@ -0,0 +1,19 @@
|
|
|
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("./find-music-job-by-id.query"), exports);
|
|
18
|
+
__exportStar(require("./find-music-jobs.query"), exports);
|
|
19
|
+
__exportStar(require("./get-music-config.query"), 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("./music.amqp.routes"), exports);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MUSIC_AMQP_ROUTES = void 0;
|
|
4
|
+
exports.MUSIC_AMQP_ROUTES = {
|
|
5
|
+
EXECUTE: 'tools.music.execute.rpc',
|
|
6
|
+
GENERATE_LYRICS: 'tools.music.generate-lyrics.rpc',
|
|
7
|
+
CONVERT_TO_WAV: 'tools.music.convert-to-wav.rpc',
|
|
8
|
+
CONFIG: 'tools.music.config.rpc',
|
|
9
|
+
GET_JOB: 'tools.music.jobs.get.rpc',
|
|
10
|
+
LIST_JOBS: 'tools.music.jobs.list.rpc',
|
|
11
|
+
SET_REACTION: 'tools.music.jobs.set-reaction.rpc',
|
|
12
|
+
UPDATE_TITLE: 'tools.music.jobs.update-title.rpc',
|
|
13
|
+
SOFT_DELETE: 'tools.music.jobs.soft-delete.rpc',
|
|
14
|
+
SOFT_DELETE_ALL: 'tools.music.jobs.soft-delete-all.rpc',
|
|
15
|
+
RETRY: 'tools.music.jobs.retry.rpc',
|
|
16
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.calculateMusicGenerationPrice = calculateMusicGenerationPrice;
|
|
4
|
+
function calculateMusicGenerationPrice({ pricePerTrack }) {
|
|
5
|
+
const base = pricePerTrack;
|
|
6
|
+
return Math.ceil(base);
|
|
7
|
+
}
|
|
@@ -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("./calculate-music-generation-price.util"), exports);
|
|
@@ -12,4 +12,6 @@ var TOOL_TYPE;
|
|
|
12
12
|
TOOL_TYPE["PARAPHRASE"] = "PARAPHRASE";
|
|
13
13
|
TOOL_TYPE["WRITER_ACTION"] = "WRITER_ACTION";
|
|
14
14
|
TOOL_TYPE["VIDEO_EDITOR"] = "VIDEO_EDITOR";
|
|
15
|
+
TOOL_TYPE["MUSIC"] = "MUSIC";
|
|
16
|
+
TOOL_TYPE["MUSIC_ACTION"] = "MUSIC_ACTION";
|
|
15
17
|
})(TOOL_TYPE || (exports.TOOL_TYPE = TOOL_TYPE = {}));
|
|
@@ -8,4 +8,5 @@ var VIDEO_GENERATION_STRATEGY;
|
|
|
8
8
|
VIDEO_GENERATION_STRATEGY["RUNWAY_POLLING"] = "RUNWAY_POLLING";
|
|
9
9
|
VIDEO_GENERATION_STRATEGY["RUNWAY_CALLBACK"] = "RUNWAY_CALLBACK";
|
|
10
10
|
VIDEO_GENERATION_STRATEGY["SORA_2_VIDEO_GENERATION_POLLING"] = "SORA_2_VIDEO_GENERATION_POLLING";
|
|
11
|
+
VIDEO_GENERATION_STRATEGY["SORA_2_VIDEO_GENERATION_CALLBACK"] = "SORA_2_VIDEO_GENERATION_CALLBACK";
|
|
11
12
|
})(VIDEO_GENERATION_STRATEGY || (exports.VIDEO_GENERATION_STRATEGY = VIDEO_GENERATION_STRATEGY = {}));
|
|
@@ -5,4 +5,6 @@ var VIDEO_EDITOR_MODEL_STRATEGY;
|
|
|
5
5
|
(function (VIDEO_EDITOR_MODEL_STRATEGY) {
|
|
6
6
|
VIDEO_EDITOR_MODEL_STRATEGY["LUMA_MODIFY_POLLING"] = "LUMA_MODIFY_POLLING";
|
|
7
7
|
VIDEO_EDITOR_MODEL_STRATEGY["ALEPH_EDITING_POLLING"] = "ALEPH_EDITING_POLLING";
|
|
8
|
+
VIDEO_EDITOR_MODEL_STRATEGY["LUMA_MODIFY_CALLBACK"] = "LUMA_MODIFY_CALLBACK";
|
|
9
|
+
VIDEO_EDITOR_MODEL_STRATEGY["ALEPH_EDITING_CALLBACK"] = "ALEPH_EDITING_CALLBACK";
|
|
8
10
|
})(VIDEO_EDITOR_MODEL_STRATEGY || (exports.VIDEO_EDITOR_MODEL_STRATEGY = VIDEO_EDITOR_MODEL_STRATEGY = {}));
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VIDEO_EDITOR_CONTROLLER = void 0;
|
|
3
|
+
exports.VIDEO_EDITOR_ROUTES = exports.VIDEO_EDITOR_CONTROLLER = void 0;
|
|
4
4
|
exports.VIDEO_EDITOR_CONTROLLER = 'video-editor';
|
|
5
|
+
exports.VIDEO_EDITOR_ROUTES = {
|
|
6
|
+
KIE_ALEPH_CALLBACK: 'kie/aleph/callback',
|
|
7
|
+
KIE_LUMA_CALLBACK: 'kie/luma/callback',
|
|
8
|
+
};
|
package/common/errors/errors.ts
CHANGED
|
@@ -478,9 +478,8 @@ export const ERRORS = {
|
|
|
478
478
|
message: 'Некорректное соотношение сторон',
|
|
479
479
|
httpCode: 400,
|
|
480
480
|
},
|
|
481
|
-
|
|
482
481
|
RUNWAY_CONTENT_POLICY: {
|
|
483
|
-
code: 'VIDEO.
|
|
482
|
+
code: 'VIDEO.RUNWAY_CONTENT_POLICY',
|
|
484
483
|
message:
|
|
485
484
|
'Запрос на создание видео был отклонен, т.к. он не соответствует требованиям политики безопасности Runway.',
|
|
486
485
|
httpCode: 400,
|
|
@@ -710,6 +709,12 @@ export const ERRORS = {
|
|
|
710
709
|
'Запрос был отклонен, т.к. он не соответствует требованиям политики безопасности Google.',
|
|
711
710
|
httpCode: 400,
|
|
712
711
|
},
|
|
712
|
+
EXTERNAL_PROVIDER_CONTENT_POLICY: {
|
|
713
|
+
code: 'PROMPT_MODERATION.EXTERNAL_PROVIDER_CONTENT_POLICY',
|
|
714
|
+
message:
|
|
715
|
+
'Запрос был отклонен, т.к. он не соответствует требованиям политики безопасности поставщика модели',
|
|
716
|
+
httpCode: 400,
|
|
717
|
+
},
|
|
713
718
|
},
|
|
714
719
|
PROMPT_MODERATION_LOG: {
|
|
715
720
|
SAVE_ERROR: {
|
|
@@ -877,4 +882,171 @@ export const ERRORS = {
|
|
|
877
882
|
httpCode: 500,
|
|
878
883
|
},
|
|
879
884
|
},
|
|
885
|
+
MUSIC_EDITOR: {
|
|
886
|
+
AI_ERROR: {
|
|
887
|
+
code: 'MUSIC_EDITOR.AI_ERROR',
|
|
888
|
+
message: 'Произошла ошибка во время запроса к ИИ',
|
|
889
|
+
httpCode: 500,
|
|
890
|
+
},
|
|
891
|
+
INSUFFICIENT_BALANCE: {
|
|
892
|
+
code: 'MUSIC_EDITOR.INSUFFICIENT_BALANCE',
|
|
893
|
+
message: 'У пользователя недостаточно средств',
|
|
894
|
+
httpCode: 400,
|
|
895
|
+
},
|
|
896
|
+
DELETE_ERROR: {
|
|
897
|
+
code: 'MUSIC_EDITOR.DELETE_ERROR',
|
|
898
|
+
message: 'Произошла ошибка при удалении',
|
|
899
|
+
httpCode: 500,
|
|
900
|
+
},
|
|
901
|
+
MAX_PROMPT_LENGTH_EXCEEDED: {
|
|
902
|
+
code: 'MUSIC_EDITOR.MAX_PROMPT_LENGTH_EXCEEDED',
|
|
903
|
+
message: 'Превышена максимальная длина запроса',
|
|
904
|
+
httpCode: 400,
|
|
905
|
+
},
|
|
906
|
+
MAX_DURATION_EXCEEDED: {
|
|
907
|
+
code: 'MUSIC_EDITOR.MAX_DURATION_EXCEEDED',
|
|
908
|
+
message: 'Превышена максимальная длительность музыки',
|
|
909
|
+
httpCode: 400,
|
|
910
|
+
},
|
|
911
|
+
},
|
|
912
|
+
MUSIC_EDITOR_JOB: {
|
|
913
|
+
SAVE_ERROR: {
|
|
914
|
+
code: 'MUSIC_EDITOR_JOB.SAVE_ERROR',
|
|
915
|
+
message: 'Произошла ошибка при сохранении задания на редактирование музыки',
|
|
916
|
+
httpCode: 500,
|
|
917
|
+
},
|
|
918
|
+
FIND_ERROR: {
|
|
919
|
+
code: 'MUSIC_EDITOR_JOB.FIND_ERROR',
|
|
920
|
+
message: 'Произошла ошибка при поиске задания на редактирование музыки',
|
|
921
|
+
httpCode: 500,
|
|
922
|
+
},
|
|
923
|
+
NOT_FOUND: {
|
|
924
|
+
code: 'MUSIC_EDITOR_JOB.NOT_FOUND',
|
|
925
|
+
message: 'Задание на редактирование музыки не найдено',
|
|
926
|
+
httpCode: 404,
|
|
927
|
+
},
|
|
928
|
+
NOT_AN_OWNER: {
|
|
929
|
+
code: 'MUSIC_EDITOR_JOB.NOT_AN_OWNER',
|
|
930
|
+
message: 'Пользователь не является владельцем задания на редактирование музыки',
|
|
931
|
+
httpCode: 403,
|
|
932
|
+
},
|
|
933
|
+
NOT_IN_FAILED_STATE_TO_RETRY: {
|
|
934
|
+
code: 'MUSIC_EDITOR_JOB.NOT_IN_FAILED_STATE_TO_RETRY',
|
|
935
|
+
message:
|
|
936
|
+
'Задание на редактирование музыки не в состоянии "failed". Невозможно повторить',
|
|
937
|
+
httpCode: 400,
|
|
938
|
+
},
|
|
939
|
+
DELETE_ERROR: {
|
|
940
|
+
code: 'MUSIC_EDITOR_JOB.DELETE_ERROR',
|
|
941
|
+
message: 'Произошла ошибка при удалении задания на редактирование музыки',
|
|
942
|
+
httpCode: 500,
|
|
943
|
+
},
|
|
944
|
+
},
|
|
945
|
+
MUSIC: {
|
|
946
|
+
AI_ERROR: {
|
|
947
|
+
code: 'MUSIC.AI_ERROR',
|
|
948
|
+
message: 'Произошла ошибка во время запроса к ИИ',
|
|
949
|
+
httpCode: 500,
|
|
950
|
+
},
|
|
951
|
+
INSUFFICIENT_BALANCE: {
|
|
952
|
+
code: 'MUSIC.INSUFFICIENT_BALANCE',
|
|
953
|
+
message: 'У пользователя недостаточно средств',
|
|
954
|
+
httpCode: 400,
|
|
955
|
+
},
|
|
956
|
+
INVALID_PARAMS: {
|
|
957
|
+
code: 'MUSIC.INVALID_PARAMS',
|
|
958
|
+
message: 'Некорректные параметры музыки',
|
|
959
|
+
httpCode: 400,
|
|
960
|
+
},
|
|
961
|
+
DELETE_ERROR: {
|
|
962
|
+
code: 'MUSIC.DELETE_ERROR',
|
|
963
|
+
message: 'Произошла ошибка при удалении генерации музыки',
|
|
964
|
+
httpCode: 500,
|
|
965
|
+
},
|
|
966
|
+
INVALID_GENDER: {
|
|
967
|
+
code: 'MUSIC.INVALID_GENDER',
|
|
968
|
+
message: 'Некорректный выбор голоса вокала',
|
|
969
|
+
httpCode: 400,
|
|
970
|
+
},
|
|
971
|
+
MAX_PROMPT_LENGTH_EXCEEDED: {
|
|
972
|
+
code: 'MUSIC.MAX_PROMPT_LENGTH_EXCEEDED',
|
|
973
|
+
message: 'Превышена максимальная длина запроса',
|
|
974
|
+
httpCode: 400,
|
|
975
|
+
},
|
|
976
|
+
SUNO_CONTENT_POLICY: {
|
|
977
|
+
code: 'MUSIC.SUNO_CONTENT_POLICY',
|
|
978
|
+
message:
|
|
979
|
+
'Запрос на создание музыки был отклонен, т.к. он не соответствует требованиям политики безопасности Suno.',
|
|
980
|
+
httpCode: 400,
|
|
981
|
+
},
|
|
982
|
+
GENERATE_LYRICS_ERROR: {
|
|
983
|
+
code: 'MUSIC.GENERATE_LYRICS_ERROR',
|
|
984
|
+
message: 'Произошла ошибка при генерации текста музыки',
|
|
985
|
+
httpCode: 500,
|
|
986
|
+
},
|
|
987
|
+
CONVERT_TO_WAV_ERROR: {
|
|
988
|
+
code: 'MUSIC.CONVERT_TO_WAV_ERROR',
|
|
989
|
+
message: 'Произошла ошибка при конвертации mp3 в wav',
|
|
990
|
+
httpCode: 500,
|
|
991
|
+
},
|
|
992
|
+
POLL_TIMEOUT: {
|
|
993
|
+
code: 'MUSIC.POLL_TIMEOUT',
|
|
994
|
+
message: 'Превышено время ожидания генерации музыки',
|
|
995
|
+
httpCode: 500,
|
|
996
|
+
},
|
|
997
|
+
},
|
|
998
|
+
MUSIC_MODEL: {
|
|
999
|
+
SAVE_ERROR: {
|
|
1000
|
+
code: 'MUSIC_MODEL.SAVE_ERROR',
|
|
1001
|
+
message: 'Произошла ошибка при сохранении модели для генерации музыки',
|
|
1002
|
+
httpCode: 500,
|
|
1003
|
+
},
|
|
1004
|
+
FIND_ERROR: {
|
|
1005
|
+
code: 'MUSIC_MODEL.FIND_ERROR',
|
|
1006
|
+
message: 'Произошла ошибка при поиске модели для генерации музыки',
|
|
1007
|
+
httpCode: 500,
|
|
1008
|
+
},
|
|
1009
|
+
NOT_FOUND: {
|
|
1010
|
+
code: 'MUSIC_MODEL.NOT_FOUND',
|
|
1011
|
+
message: 'Модель для генерации музыки не найдена',
|
|
1012
|
+
httpCode: 404,
|
|
1013
|
+
},
|
|
1014
|
+
MODEL_ARCHIVED: {
|
|
1015
|
+
code: 'MUSIC_MODEL.MODEL_ARCHIVED',
|
|
1016
|
+
message: 'Модель для генерации музыки архивирована',
|
|
1017
|
+
httpCode: 400,
|
|
1018
|
+
},
|
|
1019
|
+
},
|
|
1020
|
+
MUSIC_JOB: {
|
|
1021
|
+
SAVE_ERROR: {
|
|
1022
|
+
code: 'MUSIC_JOB.SAVE_ERROR',
|
|
1023
|
+
message: 'Произошла ошибка при сохранении задания на генерацию музыки',
|
|
1024
|
+
httpCode: 500,
|
|
1025
|
+
},
|
|
1026
|
+
FIND_ERROR: {
|
|
1027
|
+
code: 'MUSIC_JOB.FIND_ERROR',
|
|
1028
|
+
message: 'Произошла ошибка при поиске задания на генерацию музыки',
|
|
1029
|
+
httpCode: 500,
|
|
1030
|
+
},
|
|
1031
|
+
NOT_FOUND: {
|
|
1032
|
+
code: 'MUSIC_JOB.NOT_FOUND',
|
|
1033
|
+
message: 'Задание на генерацию музыки не найдено',
|
|
1034
|
+
httpCode: 404,
|
|
1035
|
+
},
|
|
1036
|
+
NOT_AN_OWNER: {
|
|
1037
|
+
code: 'MUSIC_JOB.NOT_AN_OWNER',
|
|
1038
|
+
message: 'Пользователь не является владельцем задания на генерацию музыки',
|
|
1039
|
+
httpCode: 403,
|
|
1040
|
+
},
|
|
1041
|
+
NOT_IN_FAILED_STATE_TO_RETRY: {
|
|
1042
|
+
code: 'MUSIC_JOB.NOT_IN_FAILED_STATE_TO_RETRY',
|
|
1043
|
+
message: 'Задание на генерацию музыки не в состоянии "failed". Невозможно повторить',
|
|
1044
|
+
httpCode: 400,
|
|
1045
|
+
},
|
|
1046
|
+
DELETE_ERROR: {
|
|
1047
|
+
code: 'MUSIC_JOB.DELETE_ERROR',
|
|
1048
|
+
message: 'Произошла ошибка при удалении задания на генерацию музыки',
|
|
1049
|
+
httpCode: 500,
|
|
1050
|
+
},
|
|
1051
|
+
},
|
|
880
1052
|
} as const;
|
package/index.ts
CHANGED
|
@@ -8,6 +8,7 @@ export * from './video';
|
|
|
8
8
|
export * from './writer';
|
|
9
9
|
export * from './image-editor';
|
|
10
10
|
export * from './video-editor';
|
|
11
|
+
export * from './music';
|
|
11
12
|
|
|
12
13
|
import * as common from './common';
|
|
13
14
|
import * as paraphrase from './paraphrase';
|
|
@@ -20,6 +21,7 @@ import * as video from './video';
|
|
|
20
21
|
import * as writer from './writer';
|
|
21
22
|
import * as imageEditor from './image-editor';
|
|
22
23
|
import * as videoEditor from './video-editor';
|
|
24
|
+
import * as music from './music';
|
|
23
25
|
|
|
24
26
|
export namespace ToolService {
|
|
25
27
|
export import Common = common;
|
|
@@ -33,4 +35,5 @@ export namespace ToolService {
|
|
|
33
35
|
export import Writer = writer;
|
|
34
36
|
export import ImageEditor = imageEditor;
|
|
35
37
|
export import VideoEditor = videoEditor;
|
|
38
|
+
export import Music = music;
|
|
36
39
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ICommandResponseSchema } from '../../common/models/command-response.schema';
|
|
3
|
+
|
|
4
|
+
export namespace ConvertToWavCommand {
|
|
5
|
+
export const RequestSchema = z.object({
|
|
6
|
+
userId: z.string().uuid().nullable().optional(),
|
|
7
|
+
unregisteredUserId: z.string().uuid().nullable().optional(),
|
|
8
|
+
taskId: z.string(),
|
|
9
|
+
audioId: z.string(),
|
|
10
|
+
});
|
|
11
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
12
|
+
|
|
13
|
+
export const ResponseSchema = ICommandResponseSchema(z.object({ url: z.string().url() }));
|
|
14
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ICommandResponseSchema } from '../../common/models/command-response.schema';
|
|
3
|
+
|
|
4
|
+
export namespace DeleteAllMusicJobsCommand {
|
|
5
|
+
export const RequestSchema = z.object({
|
|
6
|
+
userId: z.string().uuid().nullable().optional(),
|
|
7
|
+
unregisteredUserId: z.string().uuid().nullable().optional(),
|
|
8
|
+
});
|
|
9
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
10
|
+
|
|
11
|
+
export const ResponseSchema = ICommandResponseSchema(z.boolean());
|
|
12
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ICommandResponseSchema } from '../../common/models/command-response.schema';
|
|
3
|
+
|
|
4
|
+
export namespace DeleteMusicJobByUuidCommand {
|
|
5
|
+
export const RequestSchema = z.object({
|
|
6
|
+
userId: z.string().uuid().nullable().optional(),
|
|
7
|
+
unregisteredUserId: z.string().uuid().nullable().optional(),
|
|
8
|
+
uuid: z.string(),
|
|
9
|
+
});
|
|
10
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
11
|
+
|
|
12
|
+
export const ResponseSchema = ICommandResponseSchema(z.boolean());
|
|
13
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ICommandResponseSchema } from '../../common/models/command-response.schema';
|
|
3
|
+
|
|
4
|
+
export namespace GenerateLyricsCommand {
|
|
5
|
+
export const RequestSchema = z.object({
|
|
6
|
+
userId: z.string().uuid().nullable().optional(),
|
|
7
|
+
unregisteredUserId: z.string().uuid().nullable().optional(),
|
|
8
|
+
userBalance: z.number(),
|
|
9
|
+
prompt: z.string(),
|
|
10
|
+
});
|
|
11
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
12
|
+
|
|
13
|
+
export const ResponseSchema = ICommandResponseSchema(
|
|
14
|
+
z.object({
|
|
15
|
+
title: z.string(),
|
|
16
|
+
lyrics: z.string(),
|
|
17
|
+
}),
|
|
18
|
+
);
|
|
19
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ICommandResponseSchema } from '../../common/models/command-response.schema';
|
|
3
|
+
import { MusicJobSchema } from '../models/music-job.schema';
|
|
4
|
+
import { MusicJobParamsSchema } from '../models';
|
|
5
|
+
|
|
6
|
+
export namespace GenerateMusicCommand {
|
|
7
|
+
export const RequestSchema = z.object({
|
|
8
|
+
userId: z.string().uuid().nullable().optional(),
|
|
9
|
+
unregisteredUserId: z.string().uuid().nullable().optional(),
|
|
10
|
+
userBalance: z.number(),
|
|
11
|
+
modelId: z.string(),
|
|
12
|
+
params: MusicJobParamsSchema,
|
|
13
|
+
});
|
|
14
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
15
|
+
|
|
16
|
+
export const ResponseSchema = ICommandResponseSchema(MusicJobSchema);
|
|
17
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './delete-music-job-by-uuid.command';
|
|
2
|
+
export * from './delete-all-music-jobs.command';
|
|
3
|
+
export * from './retry-music-job.command';
|
|
4
|
+
export * from './set-reaction-to-music-job.command';
|
|
5
|
+
export * from './generate-music.command';
|
|
6
|
+
export * from './update-music-job-title.command';
|
|
7
|
+
export * from './convert-to-wav.command';
|
|
8
|
+
export * from './generate-lyrics.command';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ICommandResponseSchema } from '../../common/models/command-response.schema';
|
|
3
|
+
import { MusicJobSchema } from '../models/music-job.schema';
|
|
4
|
+
|
|
5
|
+
export namespace RetryMusicJobCommand {
|
|
6
|
+
export const RequestSchema = z.object({
|
|
7
|
+
uuid: z.string().uuid(),
|
|
8
|
+
userBalance: z.number(),
|
|
9
|
+
userId: z.string().uuid().nullable().optional(),
|
|
10
|
+
unregisteredUserId: z.string().uuid().nullable().optional(),
|
|
11
|
+
});
|
|
12
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
13
|
+
|
|
14
|
+
export const ResponseSchema = ICommandResponseSchema(MusicJobSchema);
|
|
15
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ICommandResponseSchema } from '../../common/models/command-response.schema';
|
|
3
|
+
import { MusicJobSchema } from '../models/music-job.schema';
|
|
4
|
+
import { USER_REACTION } from '../../common';
|
|
5
|
+
|
|
6
|
+
export namespace SetReactionToMusicJobCommand {
|
|
7
|
+
export const RequestSchema = z.object({
|
|
8
|
+
userId: z.string().uuid().nullable().optional(),
|
|
9
|
+
unregisteredUserId: z.string().uuid().nullable().optional(),
|
|
10
|
+
uuid: z.string(),
|
|
11
|
+
reaction: z.nativeEnum(USER_REACTION).nullable(),
|
|
12
|
+
});
|
|
13
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
14
|
+
|
|
15
|
+
export const ResponseSchema = ICommandResponseSchema(MusicJobSchema);
|
|
16
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ICommandResponseSchema } from '../../common/models/command-response.schema';
|
|
3
|
+
import { MusicJobSchema } from '../models/music-job.schema';
|
|
4
|
+
|
|
5
|
+
export namespace UpdateMusicJobTitleCommand {
|
|
6
|
+
export const RequestSchema = z.object({
|
|
7
|
+
uuid: z.string().uuid(),
|
|
8
|
+
userId: z.string().uuid().nullable().optional(),
|
|
9
|
+
unregisteredUserId: z.string().uuid().nullable().optional(),
|
|
10
|
+
title: z.string().min(1).max(40),
|
|
11
|
+
});
|
|
12
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
13
|
+
|
|
14
|
+
export const ResponseSchema = ICommandResponseSchema(MusicJobSchema);
|
|
15
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
16
|
+
}
|
package/music/index.ts
ADDED