@purpleschool/gptbot 0.5.62 → 0.5.65
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/chat-private.ts +1 -0
- package/api/routes.ts +1 -0
- package/build/api/controllers/http/chat-private.js +1 -0
- package/build/api/routes.js +1 -0
- package/build/commands/chat/find-chats.command.js +5 -9
- package/build/commands/chat/index.js +1 -0
- package/build/commands/chat/update-chat.command.js +17 -0
- package/build/constants/chat/enums/chat-status.enum.js +1 -0
- package/build/constants/cloud-payments/index.js +2 -1
- package/build/constants/email/subjects.js +1 -0
- package/build/constants/errors/errors.js +5 -0
- package/build/constants/subscription/enums/user-to-subscription-marks.enum.js +1 -0
- package/build/models/ai-model.schema.js +4 -1
- package/build/models/chat.schema.js +1 -0
- package/build/models/subscription-feature.schema.js +4 -1
- package/commands/chat/find-chats.command.ts +5 -14
- package/commands/chat/index.ts +1 -0
- package/commands/chat/update-chat.command.ts +20 -0
- package/constants/chat/enums/chat-status.enum.ts +1 -0
- package/constants/cloud-payments/index.ts +2 -0
- package/constants/email/subjects.ts +1 -0
- package/constants/errors/errors.ts +5 -0
- package/constants/subscription/enums/user-to-subscription-marks.enum.ts +1 -0
- package/models/ai-model.schema.ts +4 -1
- package/models/chat.schema.ts +1 -0
- package/models/subscription-feature.schema.ts +4 -1
- package/package.json +1 -1
package/api/routes.ts
CHANGED
|
@@ -74,6 +74,7 @@ export const REST_API = {
|
|
|
74
74
|
`${ROOT}/${CONTROLLERS.CHAT_PRIVATE_CONTROLLER}/${CONTROLLERS.CHAT_PRIVATE_ROUTES.SEND_IMAGE_MESSAGE(uuid)}`,
|
|
75
75
|
ARCHIVE: `${ROOT}/${CONTROLLERS.CHAT_PRIVATE_CONTROLLER}/${CONTROLLERS.CHAT_PRIVATE_ROUTES.ARCHIVE}`,
|
|
76
76
|
DELETE: (uuid: string) => `${ROOT}/${CONTROLLERS.CHAT_PRIVATE_CONTROLLER}/${uuid}`,
|
|
77
|
+
UPDATE: (uuid: string) => `${ROOT}/${CONTROLLERS.CHAT_PRIVATE_CONTROLLER}/${uuid}`,
|
|
77
78
|
INPUT_LIMITS: `${ROOT}/${CONTROLLERS.CHAT_PRIVATE_CONTROLLER}/${CONTROLLERS.CHAT_PRIVATE_ROUTES.INPUT_LIMITS}`,
|
|
78
79
|
},
|
|
79
80
|
CHAT_PUBLIC: {
|
package/build/api/routes.js
CHANGED
|
@@ -100,6 +100,7 @@ exports.REST_API = {
|
|
|
100
100
|
SEND_IMAGE_MESSAGE: (uuid) => `${exports.ROOT}/${CONTROLLERS.CHAT_PRIVATE_CONTROLLER}/${CONTROLLERS.CHAT_PRIVATE_ROUTES.SEND_IMAGE_MESSAGE(uuid)}`,
|
|
101
101
|
ARCHIVE: `${exports.ROOT}/${CONTROLLERS.CHAT_PRIVATE_CONTROLLER}/${CONTROLLERS.CHAT_PRIVATE_ROUTES.ARCHIVE}`,
|
|
102
102
|
DELETE: (uuid) => `${exports.ROOT}/${CONTROLLERS.CHAT_PRIVATE_CONTROLLER}/${uuid}`,
|
|
103
|
+
UPDATE: (uuid) => `${exports.ROOT}/${CONTROLLERS.CHAT_PRIVATE_CONTROLLER}/${uuid}`,
|
|
103
104
|
INPUT_LIMITS: `${exports.ROOT}/${CONTROLLERS.CHAT_PRIVATE_CONTROLLER}/${CONTROLLERS.CHAT_PRIVATE_ROUTES.INPUT_LIMITS}`,
|
|
104
105
|
},
|
|
105
106
|
CHAT_PUBLIC: {
|
|
@@ -6,11 +6,9 @@ const zod_1 = require("zod");
|
|
|
6
6
|
var FindChatsCommand;
|
|
7
7
|
(function (FindChatsCommand) {
|
|
8
8
|
const PaginationQuerySchema = zod_1.z.object({
|
|
9
|
-
limit: zod_1.z.
|
|
10
|
-
offset: zod_1.z
|
|
11
|
-
|
|
12
|
-
.regex(/^\d+$/, { message: 'Offset должен быть числом' })
|
|
13
|
-
.transform(Number),
|
|
9
|
+
limit: zod_1.z.coerce.number().min(1),
|
|
10
|
+
offset: zod_1.z.coerce.number().min(0).default(0),
|
|
11
|
+
title: zod_1.z.string().optional(),
|
|
14
12
|
});
|
|
15
13
|
const QuerySchema = zod_1.z.intersection(models_1.ChatSchema.pick({ categoryId: true, aIModelId: true }).partial(), models_1.AiModelSchema.pick({ contentType: true }).partial());
|
|
16
14
|
FindChatsCommand.RequestQuerySchema = zod_1.z.intersection(QuerySchema, PaginationQuerySchema);
|
|
@@ -18,9 +16,7 @@ var FindChatsCommand;
|
|
|
18
16
|
data: zod_1.z.array(models_1.ChatSchema.extend({
|
|
19
17
|
messages: zod_1.z.array(models_1.MessageSchema),
|
|
20
18
|
})),
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
FindChatsCommand.ResponseByUUIDSchema = zod_1.z.object({
|
|
24
|
-
data: models_1.ChatSchema,
|
|
19
|
+
page: zod_1.z.number(),
|
|
20
|
+
totalPages: zod_1.z.number(),
|
|
25
21
|
});
|
|
26
22
|
})(FindChatsCommand || (exports.FindChatsCommand = FindChatsCommand = {}));
|
|
@@ -23,3 +23,4 @@ __exportStar(require("./find-chats.command"), exports);
|
|
|
23
23
|
__exportStar(require("./get-chats-config.command"), exports);
|
|
24
24
|
__exportStar(require("./get-input-limits.command"), exports);
|
|
25
25
|
__exportStar(require("./get-last-active-chat-command"), exports);
|
|
26
|
+
__exportStar(require("./update-chat.command"), exports);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateChatCommand = void 0;
|
|
4
|
+
const models_1 = require("../../models");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
var UpdateChatCommand;
|
|
7
|
+
(function (UpdateChatCommand) {
|
|
8
|
+
UpdateChatCommand.RequestParamsSchema = models_1.ChatSchema.pick({
|
|
9
|
+
uuid: true,
|
|
10
|
+
});
|
|
11
|
+
UpdateChatCommand.RequestSchema = zod_1.z.object({
|
|
12
|
+
title: zod_1.z.string().max(65),
|
|
13
|
+
});
|
|
14
|
+
UpdateChatCommand.ResponseSchema = zod_1.z.object({
|
|
15
|
+
data: models_1.ChatSchema,
|
|
16
|
+
});
|
|
17
|
+
})(UpdateChatCommand || (exports.UpdateChatCommand = UpdateChatCommand = {}));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CLOUD_PAYMENTS_UPDATE = exports.CLOUD_PAYMENTS_CANCEL = exports.FORMATS = void 0;
|
|
3
|
+
exports.CLOUD_PAYMENTS_GET_SUBSCRIPTION = exports.CLOUD_PAYMENTS_UPDATE = exports.CLOUD_PAYMENTS_CANCEL = exports.FORMATS = void 0;
|
|
4
4
|
exports.FORMATS = {
|
|
5
5
|
UTF8: 'utf-8',
|
|
6
6
|
BASE64: 'base64',
|
|
@@ -8,3 +8,4 @@ exports.FORMATS = {
|
|
|
8
8
|
};
|
|
9
9
|
exports.CLOUD_PAYMENTS_CANCEL = 'https://api.cloudpayments.ru/subscriptions/cancel';
|
|
10
10
|
exports.CLOUD_PAYMENTS_UPDATE = 'https://api.cloudpayments.ru/subscriptions/update';
|
|
11
|
+
exports.CLOUD_PAYMENTS_GET_SUBSCRIPTION = 'https://api.cloudpayments.ru/subscriptions/get ';
|
|
@@ -8,4 +8,5 @@ exports.EMAIL_SUBJECTS = {
|
|
|
8
8
|
SUBSCRIPTION_CANCEL: 'Нам жаль, что вы от нас уходите(',
|
|
9
9
|
PRODUCT_PURCHASE: 'Спасибо за покупку тарифа',
|
|
10
10
|
RECURRENT_PAYMENT_FAILED: 'Важно: Не удалось получить оплату по подписке',
|
|
11
|
+
SUBSCRIPTION_RENEWAL_REMINDER: 'Продление подписки',
|
|
11
12
|
};
|
|
@@ -995,6 +995,11 @@ exports.ERRORS = {
|
|
|
995
995
|
message: 'Промокод не сгенерирован',
|
|
996
996
|
httpCode: 500,
|
|
997
997
|
},
|
|
998
|
+
CLOUD_PAYMENTS_GET_SUBSCRIPTION_ERROR: {
|
|
999
|
+
code: 'A225',
|
|
1000
|
+
message: 'Произошла ошибка при получении подписки из CloudPayments',
|
|
1001
|
+
httpCode: 500,
|
|
1002
|
+
},
|
|
998
1003
|
UNREGISTERED_SESSION_INIT_ERROR: {
|
|
999
1004
|
code: 'A225',
|
|
1000
1005
|
message: 'Произошла ошибка при инициализации сессии для незарегистрированного пользователя',
|
|
@@ -5,4 +5,5 @@ var USER_TO_SUBSCRIPTION_MARKS;
|
|
|
5
5
|
(function (USER_TO_SUBSCRIPTION_MARKS) {
|
|
6
6
|
USER_TO_SUBSCRIPTION_MARKS["WITHOUT_AUTO_RENEWAL"] = "WITHOUT_AUTO_RENEWAL";
|
|
7
7
|
USER_TO_SUBSCRIPTION_MARKS["MOCK"] = "MOCK";
|
|
8
|
+
USER_TO_SUBSCRIPTION_MARKS["SENT_RENEWAL_REMINDER"] = "SENT_RENEWAL_REMINDER";
|
|
8
9
|
})(USER_TO_SUBSCRIPTION_MARKS || (exports.USER_TO_SUBSCRIPTION_MARKS = USER_TO_SUBSCRIPTION_MARKS = {}));
|
|
@@ -11,10 +11,13 @@ exports.AiModelSchema = zod_1.z.object({
|
|
|
11
11
|
tokenMultiplicator: zod_1.z.number(),
|
|
12
12
|
order: zod_1.z.number(),
|
|
13
13
|
canUse: zod_1.z.optional(zod_1.z.boolean()),
|
|
14
|
-
icon: zod_1.z.nullable(zod_1.z.string()),
|
|
15
14
|
status: zod_1.z.nativeEnum(constants_1.AI_MODEL_STATUS),
|
|
16
15
|
contentType: zod_1.z.enum(Object.values(constants_1.AI_MODEL_CONTENT_TYPE)),
|
|
17
16
|
features: zod_1.z.array(zod_1.z.nativeEnum(constants_1.AI_MODEL_FEATURE)),
|
|
17
|
+
iconVariants: zod_1.z.object({
|
|
18
|
+
svg: zod_1.z.string(),
|
|
19
|
+
png: zod_1.z.string(),
|
|
20
|
+
}),
|
|
18
21
|
maxInputLength: zod_1.z.number(),
|
|
19
22
|
createdAt: zod_1.z.date(),
|
|
20
23
|
updatedAt: zod_1.z.date(),
|
|
@@ -9,6 +9,7 @@ exports.ChatSchema = zod_1.z.object({
|
|
|
9
9
|
unregisteredUserId: zod_1.z.nullable(zod_1.z.string().uuid()),
|
|
10
10
|
categoryId: zod_1.z.string().uuid(),
|
|
11
11
|
aIModelId: zod_1.z.string().uuid(),
|
|
12
|
+
title: zod_1.z.string(),
|
|
12
13
|
chatStatus: zod_1.z.enum(Object.values(constants_1.CHAT_STATUS_ENUM)),
|
|
13
14
|
createdAt: zod_1.z.date(),
|
|
14
15
|
updatedAt: zod_1.z.date(),
|
|
@@ -5,7 +5,10 @@ const constants_1 = require("../constants");
|
|
|
5
5
|
const zod_1 = require("zod");
|
|
6
6
|
exports.SubscriptionFeatureBaseSchema = zod_1.z.object({
|
|
7
7
|
title: zod_1.z.string(),
|
|
8
|
-
|
|
8
|
+
iconVariants: zod_1.z.object({
|
|
9
|
+
svg: zod_1.z.string(),
|
|
10
|
+
png: zod_1.z.string(),
|
|
11
|
+
}),
|
|
9
12
|
type: zod_1.z.nativeEnum(constants_1.SUBSCRIPTION_FEATURE_TYPE),
|
|
10
13
|
});
|
|
11
14
|
exports.AiModelAccessFeatureSchema = exports.SubscriptionFeatureBaseSchema.extend({
|
|
@@ -3,11 +3,9 @@ import { z } from 'zod';
|
|
|
3
3
|
|
|
4
4
|
export namespace FindChatsCommand {
|
|
5
5
|
const PaginationQuerySchema = z.object({
|
|
6
|
-
limit: z.
|
|
7
|
-
offset: z
|
|
8
|
-
|
|
9
|
-
.regex(/^\d+$/, { message: 'Offset должен быть числом' })
|
|
10
|
-
.transform(Number),
|
|
6
|
+
limit: z.coerce.number().min(1),
|
|
7
|
+
offset: z.coerce.number().min(0).default(0),
|
|
8
|
+
title: z.string().optional(),
|
|
11
9
|
});
|
|
12
10
|
|
|
13
11
|
const QuerySchema = z.intersection(
|
|
@@ -17,22 +15,15 @@ export namespace FindChatsCommand {
|
|
|
17
15
|
|
|
18
16
|
export const RequestQuerySchema = z.intersection(QuerySchema, PaginationQuerySchema);
|
|
19
17
|
|
|
20
|
-
export type RequestByQuery = z.infer<typeof RequestQuerySchema>;
|
|
21
|
-
|
|
22
18
|
export const ResponseSchema = z.object({
|
|
23
19
|
data: z.array(
|
|
24
20
|
ChatSchema.extend({
|
|
25
21
|
messages: z.array(MessageSchema),
|
|
26
22
|
}),
|
|
27
23
|
),
|
|
28
|
-
|
|
24
|
+
page: z.number(),
|
|
25
|
+
totalPages: z.number(),
|
|
29
26
|
});
|
|
30
27
|
|
|
31
28
|
export type Response = z.infer<typeof ResponseSchema>;
|
|
32
|
-
|
|
33
|
-
export const ResponseByUUIDSchema = z.object({
|
|
34
|
-
data: ChatSchema,
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
export type ResponseByUUID = z.infer<typeof ResponseByUUIDSchema>;
|
|
38
29
|
}
|
package/commands/chat/index.ts
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ChatSchema } from '../../models';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
|
|
4
|
+
export namespace UpdateChatCommand {
|
|
5
|
+
export const RequestParamsSchema = ChatSchema.pick({
|
|
6
|
+
uuid: true,
|
|
7
|
+
});
|
|
8
|
+
export type RequestParams = z.infer<typeof RequestParamsSchema>;
|
|
9
|
+
|
|
10
|
+
export const RequestSchema = z.object({
|
|
11
|
+
title: z.string().max(65),
|
|
12
|
+
});
|
|
13
|
+
export type RequestBody = z.infer<typeof RequestSchema>;
|
|
14
|
+
|
|
15
|
+
export const ResponseSchema = z.object({
|
|
16
|
+
data: ChatSchema,
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
export type Response = z.infer<typeof ResponseSchema>;
|
|
20
|
+
}
|
|
@@ -7,3 +7,5 @@ export const FORMATS = {
|
|
|
7
7
|
export const CLOUD_PAYMENTS_CANCEL = 'https://api.cloudpayments.ru/subscriptions/cancel';
|
|
8
8
|
|
|
9
9
|
export const CLOUD_PAYMENTS_UPDATE = 'https://api.cloudpayments.ru/subscriptions/update';
|
|
10
|
+
|
|
11
|
+
export const CLOUD_PAYMENTS_GET_SUBSCRIPTION = 'https://api.cloudpayments.ru/subscriptions/get ';
|
|
@@ -5,4 +5,5 @@ export const EMAIL_SUBJECTS = {
|
|
|
5
5
|
SUBSCRIPTION_CANCEL: 'Нам жаль, что вы от нас уходите(',
|
|
6
6
|
PRODUCT_PURCHASE: 'Спасибо за покупку тарифа',
|
|
7
7
|
RECURRENT_PAYMENT_FAILED: 'Важно: Не удалось получить оплату по подписке',
|
|
8
|
+
SUBSCRIPTION_RENEWAL_REMINDER: 'Продление подписки',
|
|
8
9
|
};
|
|
@@ -998,6 +998,11 @@ export const ERRORS = {
|
|
|
998
998
|
message: 'Промокод не сгенерирован',
|
|
999
999
|
httpCode: 500,
|
|
1000
1000
|
},
|
|
1001
|
+
CLOUD_PAYMENTS_GET_SUBSCRIPTION_ERROR: {
|
|
1002
|
+
code: 'A225',
|
|
1003
|
+
message: 'Произошла ошибка при получении подписки из CloudPayments',
|
|
1004
|
+
httpCode: 500,
|
|
1005
|
+
},
|
|
1001
1006
|
UNREGISTERED_SESSION_INIT_ERROR: {
|
|
1002
1007
|
code: 'A225',
|
|
1003
1008
|
message: 'Произошла ошибка при инициализации сессии для незарегистрированного пользователя',
|
|
@@ -14,10 +14,13 @@ export const AiModelSchema = z.object({
|
|
|
14
14
|
tokenMultiplicator: z.number(),
|
|
15
15
|
order: z.number(),
|
|
16
16
|
canUse: z.optional(z.boolean()),
|
|
17
|
-
icon: z.nullable(z.string()),
|
|
18
17
|
status: z.nativeEnum(AI_MODEL_STATUS),
|
|
19
18
|
contentType: z.enum(Object.values(AI_MODEL_CONTENT_TYPE) as [TAIModelContentTypeEnum]),
|
|
20
19
|
features: z.array(z.nativeEnum(AI_MODEL_FEATURE)),
|
|
20
|
+
iconVariants: z.object({
|
|
21
|
+
svg: z.string(),
|
|
22
|
+
png: z.string(),
|
|
23
|
+
}),
|
|
21
24
|
maxInputLength: z.number(),
|
|
22
25
|
createdAt: z.date(),
|
|
23
26
|
updatedAt: z.date(),
|
package/models/chat.schema.ts
CHANGED
|
@@ -7,6 +7,7 @@ export const ChatSchema = z.object({
|
|
|
7
7
|
unregisteredUserId: z.nullable(z.string().uuid()),
|
|
8
8
|
categoryId: z.string().uuid(),
|
|
9
9
|
aIModelId: z.string().uuid(),
|
|
10
|
+
title: z.string(),
|
|
10
11
|
chatStatus: z.enum(Object.values(CHAT_STATUS_ENUM) as [TChatStatusEnum]),
|
|
11
12
|
|
|
12
13
|
createdAt: z.date(),
|