@purpleschool/gptbot 0.8.4 → 0.8.7

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.
@@ -15,11 +15,9 @@ var GetWebmasterClicksOverviewCommand;
15
15
  groupBy: zod_1.z.nativeEnum(constants_1.GROUP_BY).default(constants_1.GROUP_BY.DAY),
16
16
  });
17
17
  GetWebmasterClicksOverviewCommand.WebmasterClickOverviewResponseSchema = zod_1.z.object({
18
- stats: zod_1.z.array(zod_1.z.object({
19
- startDate: zod_1.z.string(),
20
- endDate: zod_1.z.string(),
21
- clicks: zod_1.z.number(),
22
- })),
18
+ startDate: zod_1.z.string(),
19
+ endDate: zod_1.z.string(),
20
+ clicks: zod_1.z.number(),
23
21
  });
24
22
  GetWebmasterClicksOverviewCommand.ResponseSchema = zod_1.z.object({
25
23
  data: zod_1.z.array(GetWebmasterClicksOverviewCommand.WebmasterClickOverviewResponseSchema),
@@ -9,18 +9,16 @@ exports.ERRORS = {
9
9
  message: 'Произошла ошибка при создании пользователя',
10
10
  httpCode: 500,
11
11
  },
12
- LOGIN_ERROR: { code: 'U02', message: 'Неверный логин или пароль', httpCode: 401 },
13
12
  RESTORE_PASSWORD: {
14
13
  code: 'U03',
15
14
  message: 'Возникла ошибка при восстановлении пароля',
16
15
  httpCode: 401,
17
16
  },
18
- AUTH_INCORRECT_PASSWORD: {
17
+ AUTH_ERROR: {
19
18
  code: 'U02',
20
- message: 'Неверный пароль',
19
+ message: 'Неверный логин или пароль',
21
20
  httpCode: 401,
22
21
  },
23
- REGISTER_ERROR: { code: 'U01', message: 'Произошла ошибка при регистрации', httpCode: 500 },
24
22
  REGISTER_CONFLICT: { code: 'U04', message: 'Пользователь уже зарегистрирован', httpCode: 409 },
25
23
  USER_NOT_FOUND: { code: 'A002', message: 'Пользователь не найден', httpCode: 404 },
26
24
  USER_CONFLICT: {
@@ -1222,6 +1220,7 @@ exports.ERRORS = {
1222
1220
  TTS_MAX_SYMBOLS_EXCEEDED: {
1223
1221
  code: 'A259',
1224
1222
  message: 'Превышена максимальная количество символов',
1223
+ httpCode: 400,
1225
1224
  },
1226
1225
  TTS_SET_REACTION_ERROR: {
1227
1226
  code: 'A260',
@@ -1531,6 +1530,7 @@ exports.ERRORS = {
1531
1530
  VIDEO_MAX_SYMBOLS_EXCEEDED: {
1532
1531
  code: 'A319',
1533
1532
  message: 'Превышена максимальная количество символов',
1533
+ httpCode: 400,
1534
1534
  },
1535
1535
  VIDEO_SET_REACTION_ERROR: {
1536
1536
  code: 'A320',
@@ -1675,6 +1675,7 @@ exports.ERRORS = {
1675
1675
  IMAGE_EDITOR_MAX_SYMBOLS_EXCEEDED: {
1676
1676
  code: 'A348',
1677
1677
  message: 'Превышена максимальная количество символов',
1678
+ httpCode: 400,
1678
1679
  },
1679
1680
  IMAGE_EDITOR_SET_REACTION_ERROR: {
1680
1681
  code: 'A349',
@@ -4,4 +4,5 @@ exports.VIDEO_PRICING_RULE_TYPE = void 0;
4
4
  var VIDEO_PRICING_RULE_TYPE;
5
5
  (function (VIDEO_PRICING_RULE_TYPE) {
6
6
  VIDEO_PRICING_RULE_TYPE["FLAT"] = "flat";
7
+ VIDEO_PRICING_RULE_TYPE["PER_SECOND"] = "per_second";
7
8
  })(VIDEO_PRICING_RULE_TYPE || (exports.VIDEO_PRICING_RULE_TYPE = VIDEO_PRICING_RULE_TYPE = {}));
@@ -17,7 +17,11 @@ function matchesCondition(condition, params) {
17
17
  });
18
18
  }
19
19
  function calculateVideoGenerationPrice({ pricePerSecond, params, rules, }) {
20
- const base = pricePerSecond * params.duration;
20
+ const perSecondRule = rules
21
+ .filter((r) => r.type === constants_1.VIDEO_PRICING_RULE_TYPE.PER_SECOND)
22
+ .find((r) => matchesCondition(r.condition, params));
23
+ const effectivePricePerSecond = perSecondRule ? perSecondRule.value : pricePerSecond;
24
+ const base = effectivePricePerSecond * params.duration;
21
25
  const flatMarkup = rules.reduce((sum, r) => {
22
26
  if (r.type !== constants_1.VIDEO_PRICING_RULE_TYPE.FLAT) {
23
27
  return sum;
@@ -20,15 +20,22 @@ exports.VideoModelParamsSchema = zod_1.z.object({
20
20
  })
21
21
  .optional(),
22
22
  quality: zod_1.z.string().optional(),
23
+ resolution: zod_1.z
24
+ .object({
25
+ options: zod_1.z.array(zod_1.z.string()),
26
+ })
27
+ .optional(),
23
28
  });
24
29
  exports.VideoGenerationRequestParamsSchema = zod_1.z.object({
25
30
  imageUrls: zod_1.z.string().array().optional(),
26
31
  duration: zod_1.z.number(),
27
32
  aspectRatio: zod_1.z.string().optional(),
28
33
  quality: zod_1.z.string().optional(),
34
+ resolution: zod_1.z.string().optional(),
29
35
  });
30
36
  exports.VideoModelPricingRuleConditionSchema = zod_1.z.object({
31
- aspectRatio: zod_1.z.string(),
37
+ aspectRatio: zod_1.z.string().optional(),
38
+ resolution: zod_1.z.string().optional(),
32
39
  });
33
40
  exports.VideoModelPricingRulesSchema = zod_1.z.array(zod_1.z.object({
34
41
  type: zod_1.z.nativeEnum(constants_1.VIDEO_PRICING_RULE_TYPE),
@@ -15,13 +15,9 @@ export namespace GetWebmasterClicksOverviewCommand {
15
15
  export type Request = z.infer<typeof RequestSchema>;
16
16
 
17
17
  export const WebmasterClickOverviewResponseSchema = z.object({
18
- stats: z.array(
19
- z.object({
20
- startDate: z.string(),
21
- endDate: z.string(),
22
- clicks: z.number(),
23
- }),
24
- ),
18
+ startDate: z.string(),
19
+ endDate: z.string(),
20
+ clicks: z.number(),
25
21
  });
26
22
 
27
23
  export const ResponseSchema = z.object({
@@ -6,18 +6,16 @@ export const ERRORS = {
6
6
  message: 'Произошла ошибка при создании пользователя',
7
7
  httpCode: 500,
8
8
  },
9
- LOGIN_ERROR: { code: 'U02', message: 'Неверный логин или пароль', httpCode: 401 },
10
9
  RESTORE_PASSWORD: {
11
10
  code: 'U03',
12
11
  message: 'Возникла ошибка при восстановлении пароля',
13
12
  httpCode: 401,
14
13
  },
15
- AUTH_INCORRECT_PASSWORD: {
14
+ AUTH_ERROR: {
16
15
  code: 'U02',
17
- message: 'Неверный пароль',
16
+ message: 'Неверный логин или пароль',
18
17
  httpCode: 401,
19
18
  },
20
- REGISTER_ERROR: { code: 'U01', message: 'Произошла ошибка при регистрации', httpCode: 500 },
21
19
  REGISTER_CONFLICT: { code: 'U04', message: 'Пользователь уже зарегистрирован', httpCode: 409 },
22
20
  USER_NOT_FOUND: { code: 'A002', message: 'Пользователь не найден', httpCode: 404 },
23
21
  USER_CONFLICT: {
@@ -1226,6 +1224,7 @@ export const ERRORS = {
1226
1224
  TTS_MAX_SYMBOLS_EXCEEDED: {
1227
1225
  code: 'A259',
1228
1226
  message: 'Превышена максимальная количество символов',
1227
+ httpCode: 400,
1229
1228
  },
1230
1229
  TTS_SET_REACTION_ERROR: {
1231
1230
  code: 'A260',
@@ -1536,6 +1535,7 @@ export const ERRORS = {
1536
1535
  VIDEO_MAX_SYMBOLS_EXCEEDED: {
1537
1536
  code: 'A319',
1538
1537
  message: 'Превышена максимальная количество символов',
1538
+ httpCode: 400,
1539
1539
  },
1540
1540
  VIDEO_SET_REACTION_ERROR: {
1541
1541
  code: 'A320',
@@ -1681,6 +1681,7 @@ export const ERRORS = {
1681
1681
  IMAGE_EDITOR_MAX_SYMBOLS_EXCEEDED: {
1682
1682
  code: 'A348',
1683
1683
  message: 'Превышена максимальная количество символов',
1684
+ httpCode: 400,
1684
1685
  },
1685
1686
  IMAGE_EDITOR_SET_REACTION_ERROR: {
1686
1687
  code: 'A349',
@@ -1,3 +1,4 @@
1
1
  export enum VIDEO_PRICING_RULE_TYPE {
2
2
  FLAT = 'flat',
3
+ PER_SECOND = 'per_second',
3
4
  }
@@ -36,7 +36,13 @@ export function calculateVideoGenerationPrice({
36
36
  params: VideoGenerationRequestParams;
37
37
  rules: VideoModelPricingRules;
38
38
  }) {
39
- const base = pricePerSecond * params.duration;
39
+ const perSecondRule = rules
40
+ .filter((r) => r.type === VIDEO_PRICING_RULE_TYPE.PER_SECOND)
41
+ .find((r) => matchesCondition(r.condition, params));
42
+
43
+ const effectivePricePerSecond = perSecondRule ? perSecondRule.value : pricePerSecond;
44
+
45
+ const base = effectivePricePerSecond * params.duration;
40
46
 
41
47
  const flatMarkup = rules.reduce((sum, r) => {
42
48
  if (r.type !== VIDEO_PRICING_RULE_TYPE.FLAT) {
@@ -18,6 +18,11 @@ export const VideoModelParamsSchema = z.object({
18
18
  })
19
19
  .optional(),
20
20
  quality: z.string().optional(),
21
+ resolution: z
22
+ .object({
23
+ options: z.array(z.string()),
24
+ })
25
+ .optional(),
21
26
  });
22
27
 
23
28
  export const VideoGenerationRequestParamsSchema = z.object({
@@ -25,11 +30,13 @@ export const VideoGenerationRequestParamsSchema = z.object({
25
30
  duration: z.number(),
26
31
  aspectRatio: z.string().optional(),
27
32
  quality: z.string().optional(),
33
+ resolution: z.string().optional(),
28
34
  });
29
35
  export type VideoGenerationRequestParams = z.infer<typeof VideoGenerationRequestParamsSchema>;
30
36
 
31
37
  export const VideoModelPricingRuleConditionSchema = z.object({
32
- aspectRatio: z.string(),
38
+ aspectRatio: z.string().optional(),
39
+ resolution: z.string().optional(),
33
40
  });
34
41
  export type VideoModelPricingRuleCondition = z.infer<typeof VideoModelPricingRuleConditionSchema>;
35
42
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/gptbot",
3
- "version": "0.8.4",
3
+ "version": "0.8.7",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",