@purpleschool/gptbot 0.7.70 → 0.7.72
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/api/controllers/http/index.ts +1 -0
- package/api/controllers/http/music.ts +16 -0
- package/build/api/controllers/http/index.js +1 -0
- package/build/api/controllers/http/music.js +18 -0
- package/build/commands/cabinet/get-user-statistics-by-month.command.js +2 -0
- package/build/commands/tools/index.js +1 -0
- package/build/commands/tools/music/convert-to-wav.command.js +16 -0
- package/build/commands/tools/music/delete-all-music-jobs.command.js +8 -0
- package/build/commands/tools/music/delete-music-job-by-uuid.command.js +11 -0
- package/build/commands/tools/music/find-music-job-by-uuid.command.js +14 -0
- package/build/commands/tools/music/find-music-jobs.command.js +18 -0
- package/build/commands/tools/music/generate-lyrics.command.js +16 -0
- package/build/commands/tools/music/generate-music.command.js +15 -0
- package/build/commands/tools/music/get-music-tool-config.command.js +11 -0
- package/build/commands/tools/music/index.js +27 -0
- package/build/commands/tools/music/retry-music-job.command.js +14 -0
- package/build/commands/tools/music/set-reaction-to-music-job.command.js +18 -0
- package/build/commands/tools/music/update-music-job-title.command.js +17 -0
- package/build/constants/errors/errors.js +91 -3
- package/build/constants/index.js +1 -0
- package/build/constants/tool-music/enums/index.js +21 -0
- package/build/constants/tool-music/enums/music-pricing-rule-type.enum.js +7 -0
- package/build/constants/tool-music/enums/music-strategy.enum.js +7 -0
- package/build/constants/tool-music/enums/music-vocal-gender.enum.js +8 -0
- package/build/constants/tool-music/enums/suno-mode-type.enum.js +10 -0
- package/build/constants/tool-music/enums/suno-model-type.enum.js +10 -0
- package/build/constants/tool-music/index.js +17 -0
- package/build/models/tools/index.js +1 -0
- package/build/models/tools/music/index.js +20 -0
- package/build/models/tools/music/music-config.schema.js +8 -0
- package/build/models/tools/music/music-job.schema.js +40 -0
- package/build/models/tools/music/music-model.schema.js +32 -0
- package/build/models/tools/music/music-track.schema.js +17 -0
- package/build/models/user-to-subscription.schema.js +1 -0
- package/commands/cabinet/get-user-statistics-by-month.command.ts +2 -0
- package/commands/tools/index.ts +1 -0
- package/commands/tools/music/convert-to-wav.command.ts +17 -0
- package/commands/tools/music/delete-all-music-jobs.command.ts +6 -0
- package/commands/tools/music/delete-music-job-by-uuid.command.ts +11 -0
- package/commands/tools/music/find-music-job-by-uuid.command.ts +16 -0
- package/commands/tools/music/find-music-jobs.command.ts +18 -0
- package/commands/tools/music/generate-lyrics.command.ts +17 -0
- package/commands/tools/music/generate-music.command.ts +16 -0
- package/commands/tools/music/get-music-tool-config.command.ts +10 -0
- package/commands/tools/music/index.ts +11 -0
- package/commands/tools/music/retry-music-job.command.ts +14 -0
- package/commands/tools/music/set-reaction-to-music-job.command.ts +20 -0
- package/commands/tools/music/update-music-job-title.command.ts +19 -0
- package/constants/errors/errors.ts +91 -3
- package/constants/index.ts +1 -0
- package/constants/tool-music/enums/index.ts +5 -0
- package/constants/tool-music/enums/music-pricing-rule-type.enum.ts +3 -0
- package/constants/tool-music/enums/music-strategy.enum.ts +3 -0
- package/constants/tool-music/enums/music-vocal-gender.enum.ts +4 -0
- package/constants/tool-music/enums/suno-mode-type.enum.ts +6 -0
- package/constants/tool-music/enums/suno-model-type.enum.ts +6 -0
- package/constants/tool-music/index.ts +1 -0
- package/models/tools/index.ts +1 -0
- package/models/tools/music/index.ts +4 -0
- package/models/tools/music/music-config.schema.ts +6 -0
- package/models/tools/music/music-job.schema.ts +43 -0
- package/models/tools/music/music-model.schema.ts +33 -0
- package/models/tools/music/music-track.schema.ts +19 -0
- package/models/user-to-subscription.schema.ts +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const MUSIC_CONTROLLER_PRIVATE = 'private/tools/music' as const;
|
|
2
|
+
export const MUSIC_CONTROLLER_PUBLIC = 'public/tools/music' as const;
|
|
3
|
+
|
|
4
|
+
export const MUSIC_ROUTES = {
|
|
5
|
+
CONFIG: 'config',
|
|
6
|
+
EXECUTE: 'execute',
|
|
7
|
+
GENERATE_LYRICS: 'lyrics',
|
|
8
|
+
CONVERT_TO_WAV: 'convert-to-wav',
|
|
9
|
+
GET_JOBS: 'jobs',
|
|
10
|
+
GET_JOB: (uuid: string) => `jobs/${uuid}`,
|
|
11
|
+
UPDATE: (uuid: string) => `jobs/${uuid}`,
|
|
12
|
+
SET_REACTION: (uuid: string) => `jobs/${uuid}/reaction`,
|
|
13
|
+
DELETE: (uuid: string) => `jobs/${uuid}`,
|
|
14
|
+
DELETE_ALL: 'jobs',
|
|
15
|
+
RETRY: (uuid: string) => `jobs/${uuid}/retry`,
|
|
16
|
+
} as const;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MUSIC_ROUTES = exports.MUSIC_CONTROLLER_PUBLIC = exports.MUSIC_CONTROLLER_PRIVATE = void 0;
|
|
4
|
+
exports.MUSIC_CONTROLLER_PRIVATE = 'private/tools/music';
|
|
5
|
+
exports.MUSIC_CONTROLLER_PUBLIC = 'public/tools/music';
|
|
6
|
+
exports.MUSIC_ROUTES = {
|
|
7
|
+
CONFIG: 'config',
|
|
8
|
+
EXECUTE: 'execute',
|
|
9
|
+
GENERATE_LYRICS: 'lyrics',
|
|
10
|
+
CONVERT_TO_WAV: 'convert-to-wav',
|
|
11
|
+
GET_JOBS: 'jobs',
|
|
12
|
+
GET_JOB: (uuid) => `jobs/${uuid}`,
|
|
13
|
+
UPDATE: (uuid) => `jobs/${uuid}`,
|
|
14
|
+
SET_REACTION: (uuid) => `jobs/${uuid}/reaction`,
|
|
15
|
+
DELETE: (uuid) => `jobs/${uuid}`,
|
|
16
|
+
DELETE_ALL: 'jobs',
|
|
17
|
+
RETRY: (uuid) => `jobs/${uuid}/retry`,
|
|
18
|
+
};
|
|
@@ -16,6 +16,8 @@ var GetUserStatisticsByMonthCommand;
|
|
|
16
16
|
total_writers: zod_1.z.number(),
|
|
17
17
|
total_writer_actions: zod_1.z.number(),
|
|
18
18
|
}),
|
|
19
|
+
total_video_edits: zod_1.z.number(),
|
|
20
|
+
total_musics: zod_1.z.number(),
|
|
19
21
|
});
|
|
20
22
|
GetUserStatisticsByMonthCommand.ResponseSchema = zod_1.z.object({
|
|
21
23
|
data: zod_1.z.array(GetUserStatisticsByMonthCommand.UserStatisticsByMonthResponseSchema),
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConvertToWavCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
var ConvertToWavCommand;
|
|
6
|
+
(function (ConvertToWavCommand) {
|
|
7
|
+
ConvertToWavCommand.RequestSchema = zod_1.z.object({
|
|
8
|
+
taskId: zod_1.z.string(),
|
|
9
|
+
audioId: zod_1.z.string(),
|
|
10
|
+
});
|
|
11
|
+
ConvertToWavCommand.ResponseSchema = zod_1.z.object({
|
|
12
|
+
data: zod_1.z.object({
|
|
13
|
+
url: zod_1.z.string().url(),
|
|
14
|
+
}),
|
|
15
|
+
});
|
|
16
|
+
})(ConvertToWavCommand || (exports.ConvertToWavCommand = ConvertToWavCommand = {}));
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeleteAllMusicJobsCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
var DeleteAllMusicJobsCommand;
|
|
6
|
+
(function (DeleteAllMusicJobsCommand) {
|
|
7
|
+
DeleteAllMusicJobsCommand.ResponseSchema = zod_1.z.void();
|
|
8
|
+
})(DeleteAllMusicJobsCommand || (exports.DeleteAllMusicJobsCommand = DeleteAllMusicJobsCommand = {}));
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeleteMusicJobByUUIDCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
var DeleteMusicJobByUUIDCommand;
|
|
6
|
+
(function (DeleteMusicJobByUUIDCommand) {
|
|
7
|
+
DeleteMusicJobByUUIDCommand.RequestParamsSchema = zod_1.z.object({
|
|
8
|
+
uuid: zod_1.z.string().uuid(),
|
|
9
|
+
});
|
|
10
|
+
DeleteMusicJobByUUIDCommand.ResponseSchema = zod_1.z.void();
|
|
11
|
+
})(DeleteMusicJobByUUIDCommand || (exports.DeleteMusicJobByUUIDCommand = DeleteMusicJobByUUIDCommand = {}));
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FindMusicJobByUUIDCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../../models");
|
|
6
|
+
var FindMusicJobByUUIDCommand;
|
|
7
|
+
(function (FindMusicJobByUUIDCommand) {
|
|
8
|
+
FindMusicJobByUUIDCommand.RequestParamsSchema = models_1.ToolJobSchema.pick({
|
|
9
|
+
uuid: true,
|
|
10
|
+
});
|
|
11
|
+
FindMusicJobByUUIDCommand.ResponseSchema = zod_1.z.object({
|
|
12
|
+
data: models_1.MusicJobSchema,
|
|
13
|
+
});
|
|
14
|
+
})(FindMusicJobByUUIDCommand || (exports.FindMusicJobByUUIDCommand = FindMusicJobByUUIDCommand = {}));
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FindMusicJobsCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../../models");
|
|
6
|
+
var FindMusicJobsCommand;
|
|
7
|
+
(function (FindMusicJobsCommand) {
|
|
8
|
+
FindMusicJobsCommand.RequestQuerySchema = zod_1.z.object({
|
|
9
|
+
limit: zod_1.z.coerce.number().min(1).optional(),
|
|
10
|
+
offset: zod_1.z.coerce.number().min(0).default(0).optional(),
|
|
11
|
+
title: zod_1.z.string().optional(),
|
|
12
|
+
});
|
|
13
|
+
FindMusicJobsCommand.ResponseSchema = zod_1.z.object({
|
|
14
|
+
data: zod_1.z.array(models_1.MusicJobSchema),
|
|
15
|
+
totalPages: zod_1.z.number(),
|
|
16
|
+
page: zod_1.z.number(),
|
|
17
|
+
});
|
|
18
|
+
})(FindMusicJobsCommand || (exports.FindMusicJobsCommand = FindMusicJobsCommand = {}));
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GenerateLyricsCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
var GenerateLyricsCommand;
|
|
6
|
+
(function (GenerateLyricsCommand) {
|
|
7
|
+
GenerateLyricsCommand.RequestSchema = zod_1.z.object({
|
|
8
|
+
prompt: zod_1.z.string(),
|
|
9
|
+
});
|
|
10
|
+
GenerateLyricsCommand.ResponseSchema = zod_1.z.object({
|
|
11
|
+
data: zod_1.z.object({
|
|
12
|
+
title: zod_1.z.string(),
|
|
13
|
+
lyrics: zod_1.z.string(),
|
|
14
|
+
}),
|
|
15
|
+
});
|
|
16
|
+
})(GenerateLyricsCommand || (exports.GenerateLyricsCommand = GenerateLyricsCommand = {}));
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MusicCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../../models");
|
|
6
|
+
var MusicCommand;
|
|
7
|
+
(function (MusicCommand) {
|
|
8
|
+
MusicCommand.RequestSchema = zod_1.z.object({
|
|
9
|
+
modelId: zod_1.z.string().uuid(),
|
|
10
|
+
params: models_1.MusicJobParamsSchema,
|
|
11
|
+
});
|
|
12
|
+
MusicCommand.ResponseSchema = zod_1.z.object({
|
|
13
|
+
data: models_1.ToolJobSchema,
|
|
14
|
+
});
|
|
15
|
+
})(MusicCommand || (exports.MusicCommand = MusicCommand = {}));
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GetMusicToolConfigCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../../models");
|
|
6
|
+
var GetMusicToolConfigCommand;
|
|
7
|
+
(function (GetMusicToolConfigCommand) {
|
|
8
|
+
GetMusicToolConfigCommand.ResponseSchema = zod_1.z.object({
|
|
9
|
+
data: models_1.MusicConfigSchema,
|
|
10
|
+
});
|
|
11
|
+
})(GetMusicToolConfigCommand || (exports.GetMusicToolConfigCommand = GetMusicToolConfigCommand = {}));
|
|
@@ -0,0 +1,27 @@
|
|
|
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("./delete-all-music-jobs.command"), exports);
|
|
18
|
+
__exportStar(require("./delete-music-job-by-uuid.command"), exports);
|
|
19
|
+
__exportStar(require("./find-music-job-by-uuid.command"), exports);
|
|
20
|
+
__exportStar(require("./find-music-jobs.command"), exports);
|
|
21
|
+
__exportStar(require("./get-music-tool-config.command"), exports);
|
|
22
|
+
__exportStar(require("./retry-music-job.command"), exports);
|
|
23
|
+
__exportStar(require("./set-reaction-to-music-job.command"), exports);
|
|
24
|
+
__exportStar(require("./generate-music.command"), exports);
|
|
25
|
+
__exportStar(require("./update-music-job-title.command"), exports);
|
|
26
|
+
__exportStar(require("./convert-to-wav.command"), exports);
|
|
27
|
+
__exportStar(require("./generate-lyrics.command"), exports);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RetryMusicJobCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../../models");
|
|
6
|
+
var RetryMusicJobCommand;
|
|
7
|
+
(function (RetryMusicJobCommand) {
|
|
8
|
+
RetryMusicJobCommand.RequestParamsSchema = zod_1.z.object({
|
|
9
|
+
uuid: zod_1.z.string().uuid(),
|
|
10
|
+
});
|
|
11
|
+
RetryMusicJobCommand.ResponseSchema = zod_1.z.object({
|
|
12
|
+
data: models_1.MusicJobSchema,
|
|
13
|
+
});
|
|
14
|
+
})(RetryMusicJobCommand || (exports.RetryMusicJobCommand = RetryMusicJobCommand = {}));
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SetReactionToMusicJobCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../../models");
|
|
6
|
+
const constants_1 = require("../../../constants");
|
|
7
|
+
var SetReactionToMusicJobCommand;
|
|
8
|
+
(function (SetReactionToMusicJobCommand) {
|
|
9
|
+
SetReactionToMusicJobCommand.RequestSchema = zod_1.z.object({
|
|
10
|
+
reaction: zod_1.z.nativeEnum(constants_1.USER_REACTION).nullable(),
|
|
11
|
+
});
|
|
12
|
+
SetReactionToMusicJobCommand.RequestParamsSchema = zod_1.z.object({
|
|
13
|
+
uuid: zod_1.z.string().uuid(),
|
|
14
|
+
});
|
|
15
|
+
SetReactionToMusicJobCommand.ResponseSchema = zod_1.z.object({
|
|
16
|
+
data: models_1.MusicJobSchema,
|
|
17
|
+
});
|
|
18
|
+
})(SetReactionToMusicJobCommand || (exports.SetReactionToMusicJobCommand = SetReactionToMusicJobCommand = {}));
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateMusicJobTitleCommand = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const models_1 = require("../../../models");
|
|
6
|
+
var UpdateMusicJobTitleCommand;
|
|
7
|
+
(function (UpdateMusicJobTitleCommand) {
|
|
8
|
+
UpdateMusicJobTitleCommand.RequestSchema = zod_1.z.object({
|
|
9
|
+
title: zod_1.z.string().min(1).max(40).trim(),
|
|
10
|
+
});
|
|
11
|
+
UpdateMusicJobTitleCommand.RequestParamsSchema = zod_1.z.object({
|
|
12
|
+
uuid: zod_1.z.string().uuid(),
|
|
13
|
+
});
|
|
14
|
+
UpdateMusicJobTitleCommand.ResponseSchema = zod_1.z.object({
|
|
15
|
+
data: models_1.MusicJobSchema,
|
|
16
|
+
});
|
|
17
|
+
})(UpdateMusicJobTitleCommand || (exports.UpdateMusicJobTitleCommand = UpdateMusicJobTitleCommand = {}));
|
|
@@ -2176,18 +2176,106 @@ exports.ERRORS = {
|
|
|
2176
2176
|
message: 'Произошла ошибка при установке реакции на документ',
|
|
2177
2177
|
httpCode: 500,
|
|
2178
2178
|
},
|
|
2179
|
-
|
|
2179
|
+
MUSIC_CONFIG_ERROR: {
|
|
2180
2180
|
code: 'A446',
|
|
2181
|
+
message: 'Произошла ошибка при получении конфигурации инструмента для генерации музыки',
|
|
2182
|
+
httpCode: 500,
|
|
2183
|
+
},
|
|
2184
|
+
MUSIC_SEND_REQUEST_ERROR: {
|
|
2185
|
+
code: 'A447',
|
|
2186
|
+
message: 'Произошла ошибка при отправке запроса на генерацию музыки',
|
|
2187
|
+
httpCode: 500,
|
|
2188
|
+
},
|
|
2189
|
+
MUSIC_FIND_JOBS_ERROR: {
|
|
2190
|
+
code: 'A448',
|
|
2191
|
+
message: 'Произошла ошибка при получении списка заданий на генерацию музыки',
|
|
2192
|
+
httpCode: 500,
|
|
2193
|
+
},
|
|
2194
|
+
MUSIC_FIND_JOB_ERROR: {
|
|
2195
|
+
code: 'A449',
|
|
2196
|
+
message: 'Произошла ошибка при получении задания на генерацию музыки',
|
|
2197
|
+
httpCode: 500,
|
|
2198
|
+
},
|
|
2199
|
+
MUSIC_RETRY_JOB_ERROR: {
|
|
2200
|
+
code: 'A450',
|
|
2201
|
+
message: 'Произошла ошибка при повторном запросе на генерацию музыки',
|
|
2202
|
+
httpCode: 500,
|
|
2203
|
+
},
|
|
2204
|
+
MUSIC_SET_REACTION_ERROR: {
|
|
2205
|
+
code: 'A451',
|
|
2206
|
+
message: 'Произошла ошибка при установке оценки задания на генерацию музыки',
|
|
2207
|
+
httpCode: 500,
|
|
2208
|
+
},
|
|
2209
|
+
MUSIC_UPDATE_TITLE_ERROR: {
|
|
2210
|
+
code: 'A452',
|
|
2211
|
+
message: 'Произошла ошибка при обновлении названия задания на генерацию музыки',
|
|
2212
|
+
httpCode: 500,
|
|
2213
|
+
},
|
|
2214
|
+
MUSIC_DELETE_JOB_ERROR: {
|
|
2215
|
+
code: 'A453',
|
|
2216
|
+
message: 'Произошла ошибка при удалении задания на генерацию музыки',
|
|
2217
|
+
httpCode: 500,
|
|
2218
|
+
},
|
|
2219
|
+
MUSIC_DELETE_ALL_JOBS_ERROR: {
|
|
2220
|
+
code: 'A454',
|
|
2221
|
+
message: 'Произошла ошибка при удалении всех заданий на генерацию музыки',
|
|
2222
|
+
httpCode: 500,
|
|
2223
|
+
},
|
|
2224
|
+
MUSIC_MODEL_NOT_FOUND: {
|
|
2225
|
+
code: 'A455',
|
|
2226
|
+
message: 'Не удалось найти указанную модель для генерации музыки',
|
|
2227
|
+
httpCode: 400,
|
|
2228
|
+
},
|
|
2229
|
+
MUSIC_MODEL_INACTIVE: {
|
|
2230
|
+
code: 'A456',
|
|
2231
|
+
message: 'Модель для генерации музыки неактивна',
|
|
2232
|
+
httpCode: 400,
|
|
2233
|
+
},
|
|
2234
|
+
MUSIC_MODEL_NOT_AVAILABLE: {
|
|
2235
|
+
code: 'A457',
|
|
2236
|
+
message: 'Модель для генерации музыки недоступна для данного пользователя',
|
|
2237
|
+
httpCode: 403,
|
|
2238
|
+
},
|
|
2239
|
+
MUSIC_MAX_SYMBOLS_EXCEEDED: {
|
|
2240
|
+
code: 'A458',
|
|
2241
|
+
message: 'Превышена максимальная количество символов',
|
|
2242
|
+
},
|
|
2243
|
+
MUSIC_INVALID_VOCAL: {
|
|
2244
|
+
code: 'A459',
|
|
2245
|
+
message: 'Выбран неверный голос для вокала',
|
|
2246
|
+
},
|
|
2247
|
+
MUSIC_JOB_DELETE_ERROR: {
|
|
2248
|
+
code: 'A460',
|
|
2249
|
+
message: 'Произошла ошибка при удалении сообщения',
|
|
2250
|
+
httpCode: 500,
|
|
2251
|
+
},
|
|
2252
|
+
MUSIC_RETRY_REQUEST_ERROR: {
|
|
2253
|
+
code: 'A461',
|
|
2254
|
+
message: 'Произошла ошибка при повторном запросе на генерацию музыки',
|
|
2255
|
+
httpCode: 500,
|
|
2256
|
+
},
|
|
2257
|
+
MUSIC_LYRICS_GENERATION_ERROR: {
|
|
2258
|
+
code: 'A462',
|
|
2259
|
+
message: 'Произошла ошибка при запросе на генерацию текста песни',
|
|
2260
|
+
httpCode: 500,
|
|
2261
|
+
},
|
|
2262
|
+
MUSIC_CONVERT_TO_WAV_ERROR: {
|
|
2263
|
+
code: 'A463',
|
|
2264
|
+
message: 'Произошла ошибка при запросе на конвертацию mp3 в wav',
|
|
2265
|
+
httpCode: 500,
|
|
2266
|
+
},
|
|
2267
|
+
WRITER_MODEL_NOT_FOUND: {
|
|
2268
|
+
code: 'A464',
|
|
2181
2269
|
message: 'Не удалось найти указанную модель для Writer',
|
|
2182
2270
|
httpCode: 400,
|
|
2183
2271
|
},
|
|
2184
2272
|
WRITER_MODEL_INACTIVE: {
|
|
2185
|
-
code: '
|
|
2273
|
+
code: 'A465',
|
|
2186
2274
|
message: 'Модель Writer архивирована и недоступна для пользования',
|
|
2187
2275
|
httpCode: 403,
|
|
2188
2276
|
},
|
|
2189
2277
|
WRITER_MODEL_ACCESS_DENIED: {
|
|
2190
|
-
code: '
|
|
2278
|
+
code: 'A466',
|
|
2191
2279
|
message: 'У вас нет доступа к этой модели Writer',
|
|
2192
2280
|
httpCode: 403,
|
|
2193
2281
|
},
|
package/build/constants/index.js
CHANGED
|
@@ -0,0 +1,21 @@
|
|
|
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("./suno-model-type.enum"), exports);
|
|
18
|
+
__exportStar(require("./music-strategy.enum"), exports);
|
|
19
|
+
__exportStar(require("./music-vocal-gender.enum"), exports);
|
|
20
|
+
__exportStar(require("./music-pricing-rule-type.enum"), exports);
|
|
21
|
+
__exportStar(require("./suno-mode-type.enum"), exports);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MUSIC_PRICING_RULE_TYPE = void 0;
|
|
4
|
+
var MUSIC_PRICING_RULE_TYPE;
|
|
5
|
+
(function (MUSIC_PRICING_RULE_TYPE) {
|
|
6
|
+
MUSIC_PRICING_RULE_TYPE["FLAT"] = "flat";
|
|
7
|
+
})(MUSIC_PRICING_RULE_TYPE || (exports.MUSIC_PRICING_RULE_TYPE = MUSIC_PRICING_RULE_TYPE = {}));
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MUSIC_GENERATION_STRATEGY = void 0;
|
|
4
|
+
var MUSIC_GENERATION_STRATEGY;
|
|
5
|
+
(function (MUSIC_GENERATION_STRATEGY) {
|
|
6
|
+
MUSIC_GENERATION_STRATEGY["SUNO_POLLING"] = "SUNO_POLLING";
|
|
7
|
+
})(MUSIC_GENERATION_STRATEGY || (exports.MUSIC_GENERATION_STRATEGY = MUSIC_GENERATION_STRATEGY = {}));
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MUSIC_VOCAL_GENDER = void 0;
|
|
4
|
+
var MUSIC_VOCAL_GENDER;
|
|
5
|
+
(function (MUSIC_VOCAL_GENDER) {
|
|
6
|
+
MUSIC_VOCAL_GENDER["MALE"] = "m";
|
|
7
|
+
MUSIC_VOCAL_GENDER["FEMALE"] = "f";
|
|
8
|
+
})(MUSIC_VOCAL_GENDER || (exports.MUSIC_VOCAL_GENDER = MUSIC_VOCAL_GENDER = {}));
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SUNO_MODE_TYPE = void 0;
|
|
4
|
+
var SUNO_MODE_TYPE;
|
|
5
|
+
(function (SUNO_MODE_TYPE) {
|
|
6
|
+
SUNO_MODE_TYPE["SIMPLE"] = "simple";
|
|
7
|
+
SUNO_MODE_TYPE["SIMPLE_INSTRUMENTAL"] = "simple_instrumental";
|
|
8
|
+
SUNO_MODE_TYPE["CUSTOM"] = "custom";
|
|
9
|
+
SUNO_MODE_TYPE["CUSTOM_INSTRUMENTAL"] = "custom_instrumental";
|
|
10
|
+
})(SUNO_MODE_TYPE || (exports.SUNO_MODE_TYPE = SUNO_MODE_TYPE = {}));
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SUNO_MODEL_TYPE = void 0;
|
|
4
|
+
var SUNO_MODEL_TYPE;
|
|
5
|
+
(function (SUNO_MODEL_TYPE) {
|
|
6
|
+
SUNO_MODEL_TYPE["V4"] = "V4";
|
|
7
|
+
SUNO_MODEL_TYPE["V4_5"] = "V4_5";
|
|
8
|
+
SUNO_MODEL_TYPE["V4_5PLUS"] = "V4_5PLUS";
|
|
9
|
+
SUNO_MODEL_TYPE["V5"] = "V5";
|
|
10
|
+
})(SUNO_MODEL_TYPE || (exports.SUNO_MODEL_TYPE = SUNO_MODEL_TYPE = {}));
|
|
@@ -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);
|
|
@@ -0,0 +1,20 @@
|
|
|
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-config.schema"), exports);
|
|
18
|
+
__exportStar(require("./music-job.schema"), exports);
|
|
19
|
+
__exportStar(require("./music-model.schema"), exports);
|
|
20
|
+
__exportStar(require("./music-track.schema"), exports);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MusicConfigSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const music_model_schema_1 = require("./music-model.schema");
|
|
6
|
+
exports.MusicConfigSchema = zod_1.z.object({
|
|
7
|
+
models: zod_1.z.array(music_model_schema_1.MusicModelSchema),
|
|
8
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MusicJobSchema = exports.MusicJobParamsSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const tool_job_schema_1 = require("../../tool-job.schema");
|
|
6
|
+
const constants_1 = require("../../../constants");
|
|
7
|
+
const music_track_schema_1 = require("./music-track.schema");
|
|
8
|
+
exports.MusicJobParamsSchema = zod_1.z.discriminatedUnion('mode', [
|
|
9
|
+
zod_1.z.object({
|
|
10
|
+
mode: zod_1.z.literal(constants_1.SUNO_MODE_TYPE.SIMPLE),
|
|
11
|
+
prompt: zod_1.z.string().min(1).max(450),
|
|
12
|
+
style: zod_1.z.string(),
|
|
13
|
+
vocalGender: zod_1.z.nativeEnum(constants_1.MUSIC_VOCAL_GENDER),
|
|
14
|
+
}),
|
|
15
|
+
zod_1.z.object({
|
|
16
|
+
mode: zod_1.z.literal(constants_1.SUNO_MODE_TYPE.SIMPLE_INSTRUMENTAL),
|
|
17
|
+
prompt: zod_1.z.string().min(1).max(450),
|
|
18
|
+
style: zod_1.z.string(),
|
|
19
|
+
}),
|
|
20
|
+
zod_1.z.object({
|
|
21
|
+
mode: zod_1.z.literal(constants_1.SUNO_MODE_TYPE.CUSTOM),
|
|
22
|
+
prompt: zod_1.z.string().min(1).max(5000),
|
|
23
|
+
title: zod_1.z.string().min(1).max(80),
|
|
24
|
+
style: zod_1.z.string().min(1).max(1000),
|
|
25
|
+
vocalGender: zod_1.z.nativeEnum(constants_1.MUSIC_VOCAL_GENDER),
|
|
26
|
+
}),
|
|
27
|
+
zod_1.z.object({
|
|
28
|
+
mode: zod_1.z.literal(constants_1.SUNO_MODE_TYPE.CUSTOM_INSTRUMENTAL),
|
|
29
|
+
title: zod_1.z.string().min(1).max(80),
|
|
30
|
+
style: zod_1.z.string().min(1).max(1000),
|
|
31
|
+
}),
|
|
32
|
+
]);
|
|
33
|
+
exports.MusicJobSchema = tool_job_schema_1.ToolJobSchema.extend({
|
|
34
|
+
title: zod_1.z.string(),
|
|
35
|
+
prompt: zod_1.z.string(),
|
|
36
|
+
reaction: zod_1.z.nativeEnum(constants_1.USER_REACTION).nullable(),
|
|
37
|
+
tracks: zod_1.z.array(music_track_schema_1.MusicTrackSchema),
|
|
38
|
+
params: exports.MusicJobParamsSchema,
|
|
39
|
+
modelId: zod_1.z.string(),
|
|
40
|
+
});
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MusicModelSchema = exports.MusicModelParamsSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const icon_variants_schema_1 = require("../../icon-variants.schema");
|
|
6
|
+
const unlocked_by_subscription_schema_1 = require("../../unlocked-by-subscription.schema");
|
|
7
|
+
const constants_1 = require("../../../constants");
|
|
8
|
+
exports.MusicModelParamsSchema = zod_1.z.object({
|
|
9
|
+
vocalGender: zod_1.z.object({
|
|
10
|
+
options: zod_1.z.array(zod_1.z.nativeEnum(constants_1.MUSIC_VOCAL_GENDER)),
|
|
11
|
+
}),
|
|
12
|
+
styles: zod_1.z.object({
|
|
13
|
+
maxStyles: zod_1.z.number(),
|
|
14
|
+
options: zod_1.z.array(zod_1.z.object({
|
|
15
|
+
title: zod_1.z.string(),
|
|
16
|
+
style: zod_1.z.string(),
|
|
17
|
+
})),
|
|
18
|
+
}),
|
|
19
|
+
});
|
|
20
|
+
exports.MusicModelSchema = zod_1.z.object({
|
|
21
|
+
uuid: zod_1.z.string(),
|
|
22
|
+
title: zod_1.z.string(),
|
|
23
|
+
description: zod_1.z.string(),
|
|
24
|
+
pricePerTrack: zod_1.z.number(),
|
|
25
|
+
order: zod_1.z.number(),
|
|
26
|
+
icons: icon_variants_schema_1.IconVariantsSchema,
|
|
27
|
+
maxPromptLength: zod_1.z.number(),
|
|
28
|
+
maxLyricsLength: zod_1.z.number(),
|
|
29
|
+
params: exports.MusicModelParamsSchema,
|
|
30
|
+
unlockedBy: unlocked_by_subscription_schema_1.UnlockedBySchema.nullable(),
|
|
31
|
+
canUse: zod_1.z.boolean(),
|
|
32
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MusicTrackSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.MusicTrackSchema = zod_1.z.object({
|
|
6
|
+
uuid: zod_1.z.string(),
|
|
7
|
+
title: zod_1.z.string(),
|
|
8
|
+
audioId: zod_1.z.string(),
|
|
9
|
+
audioUrl: zod_1.z.string(),
|
|
10
|
+
coverUrl: zod_1.z.string(),
|
|
11
|
+
tags: zod_1.z.string(),
|
|
12
|
+
duration: zod_1.z.number(),
|
|
13
|
+
genJobId: zod_1.z.string().nullable().optional(),
|
|
14
|
+
editorJobId: zod_1.z.string().nullable().optional(),
|
|
15
|
+
createdAt: zod_1.z.date(),
|
|
16
|
+
updatedAt: zod_1.z.date(),
|
|
17
|
+
});
|
|
@@ -16,6 +16,7 @@ exports.UserToSubscriptionSchema = zod_1.z.object({
|
|
|
16
16
|
marks: zod_1.z.array(zod_1.z.string()),
|
|
17
17
|
intervalEndDate: zod_1.z.date().nullable(),
|
|
18
18
|
carriedOverTokenBalance: zod_1.z.number(),
|
|
19
|
+
initCarriedOverTokenBalance: zod_1.z.number(),
|
|
19
20
|
createdAt: zod_1.z.date(),
|
|
20
21
|
updatedAt: zod_1.z.date(),
|
|
21
22
|
});
|
package/commands/tools/index.ts
CHANGED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export namespace ConvertToWavCommand {
|
|
3
|
+
export const RequestSchema = z.object({
|
|
4
|
+
taskId: z.string(),
|
|
5
|
+
audioId: z.string(),
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
9
|
+
|
|
10
|
+
export const ResponseSchema = z.object({
|
|
11
|
+
data: z.object({
|
|
12
|
+
url: z.string().url(),
|
|
13
|
+
}),
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
export namespace DeleteMusicJobByUUIDCommand {
|
|
4
|
+
export const RequestParamsSchema = z.object({
|
|
5
|
+
uuid: z.string().uuid(),
|
|
6
|
+
});
|
|
7
|
+
export type RequestParams = z.infer<typeof RequestParamsSchema>;
|
|
8
|
+
|
|
9
|
+
export const ResponseSchema = z.void();
|
|
10
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MusicJobSchema, ToolJobSchema } from '../../../models';
|
|
3
|
+
|
|
4
|
+
export namespace FindMusicJobByUUIDCommand {
|
|
5
|
+
export const RequestParamsSchema = ToolJobSchema.pick({
|
|
6
|
+
uuid: true,
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
export type Request = z.infer<typeof RequestParamsSchema>;
|
|
10
|
+
|
|
11
|
+
export const ResponseSchema = z.object({
|
|
12
|
+
data: MusicJobSchema,
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MusicJobSchema } from '../../../models';
|
|
3
|
+
|
|
4
|
+
export namespace FindMusicJobsCommand {
|
|
5
|
+
export const RequestQuerySchema = z.object({
|
|
6
|
+
limit: z.coerce.number().min(1).optional(),
|
|
7
|
+
offset: z.coerce.number().min(0).default(0).optional(),
|
|
8
|
+
title: z.string().optional(),
|
|
9
|
+
});
|
|
10
|
+
export type RequestQuery = z.infer<typeof RequestQuerySchema>;
|
|
11
|
+
|
|
12
|
+
export const ResponseSchema = z.object({
|
|
13
|
+
data: z.array(MusicJobSchema),
|
|
14
|
+
totalPages: z.number(),
|
|
15
|
+
page: z.number(),
|
|
16
|
+
});
|
|
17
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export namespace GenerateLyricsCommand {
|
|
3
|
+
export const RequestSchema = z.object({
|
|
4
|
+
prompt: z.string(),
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
8
|
+
|
|
9
|
+
export const ResponseSchema = z.object({
|
|
10
|
+
data: z.object({
|
|
11
|
+
title: z.string(),
|
|
12
|
+
lyrics: z.string(),
|
|
13
|
+
}),
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ToolJobSchema, MusicJobParamsSchema } from '../../../models';
|
|
3
|
+
export namespace MusicCommand {
|
|
4
|
+
export const RequestSchema = z.object({
|
|
5
|
+
modelId: z.string().uuid(),
|
|
6
|
+
params: MusicJobParamsSchema,
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
10
|
+
|
|
11
|
+
export const ResponseSchema = z.object({
|
|
12
|
+
data: ToolJobSchema,
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MusicConfigSchema } from '../../../models';
|
|
3
|
+
|
|
4
|
+
export namespace GetMusicToolConfigCommand {
|
|
5
|
+
export const ResponseSchema = z.object({
|
|
6
|
+
data: MusicConfigSchema,
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './delete-all-music-jobs.command';
|
|
2
|
+
export * from './delete-music-job-by-uuid.command';
|
|
3
|
+
export * from './find-music-job-by-uuid.command';
|
|
4
|
+
export * from './find-music-jobs.command';
|
|
5
|
+
export * from './get-music-tool-config.command';
|
|
6
|
+
export * from './retry-music-job.command';
|
|
7
|
+
export * from './set-reaction-to-music-job.command';
|
|
8
|
+
export * from './generate-music.command';
|
|
9
|
+
export * from './update-music-job-title.command';
|
|
10
|
+
export * from './convert-to-wav.command';
|
|
11
|
+
export * from './generate-lyrics.command';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MusicJobSchema } from '../../../models';
|
|
3
|
+
|
|
4
|
+
export namespace RetryMusicJobCommand {
|
|
5
|
+
export const RequestParamsSchema = z.object({
|
|
6
|
+
uuid: z.string().uuid(),
|
|
7
|
+
});
|
|
8
|
+
export type RequestParams = z.infer<typeof RequestParamsSchema>;
|
|
9
|
+
|
|
10
|
+
export const ResponseSchema = z.object({
|
|
11
|
+
data: MusicJobSchema,
|
|
12
|
+
});
|
|
13
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MusicJobSchema } from '../../../models';
|
|
3
|
+
import { USER_REACTION } from '../../../constants';
|
|
4
|
+
|
|
5
|
+
export namespace SetReactionToMusicJobCommand {
|
|
6
|
+
export const RequestSchema = z.object({
|
|
7
|
+
reaction: z.nativeEnum(USER_REACTION).nullable(),
|
|
8
|
+
});
|
|
9
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
10
|
+
|
|
11
|
+
export const RequestParamsSchema = z.object({
|
|
12
|
+
uuid: z.string().uuid(),
|
|
13
|
+
});
|
|
14
|
+
export type RequestParams = z.infer<typeof RequestParamsSchema>;
|
|
15
|
+
|
|
16
|
+
export const ResponseSchema = z.object({
|
|
17
|
+
data: MusicJobSchema,
|
|
18
|
+
});
|
|
19
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { MusicJobSchema } from '../../../models';
|
|
3
|
+
|
|
4
|
+
export namespace UpdateMusicJobTitleCommand {
|
|
5
|
+
export const RequestSchema = z.object({
|
|
6
|
+
title: z.string().min(1).max(40).trim(),
|
|
7
|
+
});
|
|
8
|
+
export type Request = z.infer<typeof RequestSchema>;
|
|
9
|
+
|
|
10
|
+
export const RequestParamsSchema = z.object({
|
|
11
|
+
uuid: z.string().uuid(),
|
|
12
|
+
});
|
|
13
|
+
export type RequestParams = z.infer<typeof RequestParamsSchema>;
|
|
14
|
+
|
|
15
|
+
export const ResponseSchema = z.object({
|
|
16
|
+
data: MusicJobSchema,
|
|
17
|
+
});
|
|
18
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
19
|
+
}
|
|
@@ -2184,18 +2184,106 @@ export const ERRORS = {
|
|
|
2184
2184
|
message: 'Произошла ошибка при установке реакции на документ',
|
|
2185
2185
|
httpCode: 500,
|
|
2186
2186
|
},
|
|
2187
|
-
|
|
2187
|
+
MUSIC_CONFIG_ERROR: {
|
|
2188
2188
|
code: 'A446',
|
|
2189
|
+
message: 'Произошла ошибка при получении конфигурации инструмента для генерации музыки',
|
|
2190
|
+
httpCode: 500,
|
|
2191
|
+
},
|
|
2192
|
+
MUSIC_SEND_REQUEST_ERROR: {
|
|
2193
|
+
code: 'A447',
|
|
2194
|
+
message: 'Произошла ошибка при отправке запроса на генерацию музыки',
|
|
2195
|
+
httpCode: 500,
|
|
2196
|
+
},
|
|
2197
|
+
MUSIC_FIND_JOBS_ERROR: {
|
|
2198
|
+
code: 'A448',
|
|
2199
|
+
message: 'Произошла ошибка при получении списка заданий на генерацию музыки',
|
|
2200
|
+
httpCode: 500,
|
|
2201
|
+
},
|
|
2202
|
+
MUSIC_FIND_JOB_ERROR: {
|
|
2203
|
+
code: 'A449',
|
|
2204
|
+
message: 'Произошла ошибка при получении задания на генерацию музыки',
|
|
2205
|
+
httpCode: 500,
|
|
2206
|
+
},
|
|
2207
|
+
MUSIC_RETRY_JOB_ERROR: {
|
|
2208
|
+
code: 'A450',
|
|
2209
|
+
message: 'Произошла ошибка при повторном запросе на генерацию музыки',
|
|
2210
|
+
httpCode: 500,
|
|
2211
|
+
},
|
|
2212
|
+
MUSIC_SET_REACTION_ERROR: {
|
|
2213
|
+
code: 'A451',
|
|
2214
|
+
message: 'Произошла ошибка при установке оценки задания на генерацию музыки',
|
|
2215
|
+
httpCode: 500,
|
|
2216
|
+
},
|
|
2217
|
+
MUSIC_UPDATE_TITLE_ERROR: {
|
|
2218
|
+
code: 'A452',
|
|
2219
|
+
message: 'Произошла ошибка при обновлении названия задания на генерацию музыки',
|
|
2220
|
+
httpCode: 500,
|
|
2221
|
+
},
|
|
2222
|
+
MUSIC_DELETE_JOB_ERROR: {
|
|
2223
|
+
code: 'A453',
|
|
2224
|
+
message: 'Произошла ошибка при удалении задания на генерацию музыки',
|
|
2225
|
+
httpCode: 500,
|
|
2226
|
+
},
|
|
2227
|
+
MUSIC_DELETE_ALL_JOBS_ERROR: {
|
|
2228
|
+
code: 'A454',
|
|
2229
|
+
message: 'Произошла ошибка при удалении всех заданий на генерацию музыки',
|
|
2230
|
+
httpCode: 500,
|
|
2231
|
+
},
|
|
2232
|
+
MUSIC_MODEL_NOT_FOUND: {
|
|
2233
|
+
code: 'A455',
|
|
2234
|
+
message: 'Не удалось найти указанную модель для генерации музыки',
|
|
2235
|
+
httpCode: 400,
|
|
2236
|
+
},
|
|
2237
|
+
MUSIC_MODEL_INACTIVE: {
|
|
2238
|
+
code: 'A456',
|
|
2239
|
+
message: 'Модель для генерации музыки неактивна',
|
|
2240
|
+
httpCode: 400,
|
|
2241
|
+
},
|
|
2242
|
+
MUSIC_MODEL_NOT_AVAILABLE: {
|
|
2243
|
+
code: 'A457',
|
|
2244
|
+
message: 'Модель для генерации музыки недоступна для данного пользователя',
|
|
2245
|
+
httpCode: 403,
|
|
2246
|
+
},
|
|
2247
|
+
MUSIC_MAX_SYMBOLS_EXCEEDED: {
|
|
2248
|
+
code: 'A458',
|
|
2249
|
+
message: 'Превышена максимальная количество символов',
|
|
2250
|
+
},
|
|
2251
|
+
MUSIC_INVALID_VOCAL: {
|
|
2252
|
+
code: 'A459',
|
|
2253
|
+
message: 'Выбран неверный голос для вокала',
|
|
2254
|
+
},
|
|
2255
|
+
MUSIC_JOB_DELETE_ERROR: {
|
|
2256
|
+
code: 'A460',
|
|
2257
|
+
message: 'Произошла ошибка при удалении сообщения',
|
|
2258
|
+
httpCode: 500,
|
|
2259
|
+
},
|
|
2260
|
+
MUSIC_RETRY_REQUEST_ERROR: {
|
|
2261
|
+
code: 'A461',
|
|
2262
|
+
message: 'Произошла ошибка при повторном запросе на генерацию музыки',
|
|
2263
|
+
httpCode: 500,
|
|
2264
|
+
},
|
|
2265
|
+
MUSIC_LYRICS_GENERATION_ERROR: {
|
|
2266
|
+
code: 'A462',
|
|
2267
|
+
message: 'Произошла ошибка при запросе на генерацию текста песни',
|
|
2268
|
+
httpCode: 500,
|
|
2269
|
+
},
|
|
2270
|
+
MUSIC_CONVERT_TO_WAV_ERROR: {
|
|
2271
|
+
code: 'A463',
|
|
2272
|
+
message: 'Произошла ошибка при запросе на конвертацию mp3 в wav',
|
|
2273
|
+
httpCode: 500,
|
|
2274
|
+
},
|
|
2275
|
+
WRITER_MODEL_NOT_FOUND: {
|
|
2276
|
+
code: 'A464',
|
|
2189
2277
|
message: 'Не удалось найти указанную модель для Writer',
|
|
2190
2278
|
httpCode: 400,
|
|
2191
2279
|
},
|
|
2192
2280
|
WRITER_MODEL_INACTIVE: {
|
|
2193
|
-
code: '
|
|
2281
|
+
code: 'A465',
|
|
2194
2282
|
message: 'Модель Writer архивирована и недоступна для пользования',
|
|
2195
2283
|
httpCode: 403,
|
|
2196
2284
|
},
|
|
2197
2285
|
WRITER_MODEL_ACCESS_DENIED: {
|
|
2198
|
-
code: '
|
|
2286
|
+
code: 'A466',
|
|
2199
2287
|
message: 'У вас нет доступа к этой модели Writer',
|
|
2200
2288
|
httpCode: 403,
|
|
2201
2289
|
},
|
package/constants/index.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './enums';
|
package/models/tools/index.ts
CHANGED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ToolJobSchema } from '../../tool-job.schema';
|
|
3
|
+
import { MUSIC_VOCAL_GENDER, SUNO_MODE_TYPE, USER_REACTION } from '../../../constants';
|
|
4
|
+
import { MusicTrackSchema } from './music-track.schema';
|
|
5
|
+
|
|
6
|
+
export const MusicJobParamsSchema = z.discriminatedUnion('mode', [
|
|
7
|
+
z.object({
|
|
8
|
+
mode: z.literal(SUNO_MODE_TYPE.SIMPLE),
|
|
9
|
+
prompt: z.string().min(1).max(450),
|
|
10
|
+
style: z.string(),
|
|
11
|
+
vocalGender: z.nativeEnum(MUSIC_VOCAL_GENDER),
|
|
12
|
+
}),
|
|
13
|
+
z.object({
|
|
14
|
+
mode: z.literal(SUNO_MODE_TYPE.SIMPLE_INSTRUMENTAL),
|
|
15
|
+
prompt: z.string().min(1).max(450),
|
|
16
|
+
style: z.string(),
|
|
17
|
+
}),
|
|
18
|
+
z.object({
|
|
19
|
+
mode: z.literal(SUNO_MODE_TYPE.CUSTOM),
|
|
20
|
+
prompt: z.string().min(1).max(5000),
|
|
21
|
+
title: z.string().min(1).max(80),
|
|
22
|
+
style: z.string().min(1).max(1000),
|
|
23
|
+
vocalGender: z.nativeEnum(MUSIC_VOCAL_GENDER),
|
|
24
|
+
}),
|
|
25
|
+
z.object({
|
|
26
|
+
mode: z.literal(SUNO_MODE_TYPE.CUSTOM_INSTRUMENTAL),
|
|
27
|
+
title: z.string().min(1).max(80),
|
|
28
|
+
style: z.string().min(1).max(1000),
|
|
29
|
+
}),
|
|
30
|
+
]);
|
|
31
|
+
|
|
32
|
+
export type MusicJobParams = z.infer<typeof MusicJobParamsSchema>;
|
|
33
|
+
|
|
34
|
+
export const MusicJobSchema = ToolJobSchema.extend({
|
|
35
|
+
title: z.string(),
|
|
36
|
+
prompt: z.string(),
|
|
37
|
+
reaction: z.nativeEnum(USER_REACTION).nullable(),
|
|
38
|
+
tracks: z.array(MusicTrackSchema),
|
|
39
|
+
params: MusicJobParamsSchema,
|
|
40
|
+
modelId: z.string(),
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
export type MusicJob = z.infer<typeof MusicJobSchema>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { IconVariantsSchema } from '../../icon-variants.schema';
|
|
3
|
+
import { UnlockedBySchema } from '../../unlocked-by-subscription.schema';
|
|
4
|
+
import { MUSIC_VOCAL_GENDER } from '../../../constants';
|
|
5
|
+
|
|
6
|
+
export const MusicModelParamsSchema = z.object({
|
|
7
|
+
vocalGender: z.object({
|
|
8
|
+
options: z.array(z.nativeEnum(MUSIC_VOCAL_GENDER)),
|
|
9
|
+
}),
|
|
10
|
+
styles: z.object({
|
|
11
|
+
maxStyles: z.number(),
|
|
12
|
+
options: z.array(
|
|
13
|
+
z.object({
|
|
14
|
+
title: z.string(),
|
|
15
|
+
style: z.string(),
|
|
16
|
+
}),
|
|
17
|
+
),
|
|
18
|
+
}),
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
export const MusicModelSchema = z.object({
|
|
22
|
+
uuid: z.string(),
|
|
23
|
+
title: z.string(),
|
|
24
|
+
description: z.string(),
|
|
25
|
+
pricePerTrack: z.number(),
|
|
26
|
+
order: z.number(),
|
|
27
|
+
icons: IconVariantsSchema,
|
|
28
|
+
maxPromptLength: z.number(),
|
|
29
|
+
maxLyricsLength: z.number(),
|
|
30
|
+
params: MusicModelParamsSchema,
|
|
31
|
+
unlockedBy: UnlockedBySchema.nullable(),
|
|
32
|
+
canUse: z.boolean(),
|
|
33
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
export const MusicTrackSchema = z.object({
|
|
4
|
+
uuid: z.string(),
|
|
5
|
+
title: z.string(),
|
|
6
|
+
audioId: z.string(),
|
|
7
|
+
audioUrl: z.string(),
|
|
8
|
+
coverUrl: z.string(),
|
|
9
|
+
tags: z.string(),
|
|
10
|
+
duration: z.number(),
|
|
11
|
+
|
|
12
|
+
genJobId: z.string().nullable().optional(),
|
|
13
|
+
editorJobId: z.string().nullable().optional(),
|
|
14
|
+
|
|
15
|
+
createdAt: z.date(),
|
|
16
|
+
updatedAt: z.date(),
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
export type MusicTrack = z.infer<typeof MusicTrackSchema>;
|