@purpleschool/student-works 1.2.0 → 1.2.2

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.
@@ -9,6 +9,7 @@ export const AUTH_ROUTES = {
9
9
  CREATE_USER: 'create-user',
10
10
  RESTORE_PASSWORD: 'restore-password',
11
11
  RESET_PASSWORD: 'reset-password',
12
+ CHANGE_PASSWORD: 'change-password',
12
13
  VERIFY_EMAIL: 'verify-email',
13
14
  VERIFY_EMAIL_RETRY: 'verify-email-retry',
14
15
  } as const;
@@ -4,4 +4,5 @@ export const FILE_PUBLIC_CONTROLLER = 'public/file' as const;
4
4
  export const FILE_ROUTES = {
5
5
  DELETE: (uuid: string) => `${uuid}`,
6
6
  UPLOAD: 'upload',
7
+ UPLOAD_ADMIN: 'upload-admin',
7
8
  } as const;
package/api/routes.ts CHANGED
@@ -9,6 +9,7 @@ export const REST_API = {
9
9
  CREATE_USER: `${ROOT}/${CONTROLLERS.AUTH_CONTROLLER}/${CONTROLLERS.AUTH_ROUTES.CREATE_USER}`,
10
10
  RESTORE_PASSWORD: `${ROOT}/${CONTROLLERS.AUTH_CONTROLLER}/${CONTROLLERS.AUTH_ROUTES.RESTORE_PASSWORD}`,
11
11
  RESET_PASSWORD: `${ROOT}/${CONTROLLERS.AUTH_CONTROLLER}/${CONTROLLERS.AUTH_ROUTES.RESET_PASSWORD}`,
12
+ CHANGE_PASSWORD: `${ROOT}/${CONTROLLERS.AUTH_CONTROLLER}/${CONTROLLERS.AUTH_ROUTES.CHANGE_PASSWORD}`,
12
13
  VERIFY_EMAIL: `${ROOT}/${CONTROLLERS.AUTH_CONTROLLER}/${CONTROLLERS.AUTH_ROUTES.VERIFY_EMAIL}`,
13
14
  VERIFY_EMAIL_RETRY: `${ROOT}/${CONTROLLERS.AUTH_CONTROLLER}/${CONTROLLERS.AUTH_ROUTES.VERIFY_EMAIL_RETRY}`,
14
15
  },
@@ -11,6 +11,7 @@ exports.AUTH_ROUTES = {
11
11
  CREATE_USER: 'create-user',
12
12
  RESTORE_PASSWORD: 'restore-password',
13
13
  RESET_PASSWORD: 'reset-password',
14
+ CHANGE_PASSWORD: 'change-password',
14
15
  VERIFY_EMAIL: 'verify-email',
15
16
  VERIFY_EMAIL_RETRY: 'verify-email-retry',
16
17
  };
@@ -6,4 +6,5 @@ exports.FILE_PUBLIC_CONTROLLER = 'public/file';
6
6
  exports.FILE_ROUTES = {
7
7
  DELETE: (uuid) => `${uuid}`,
8
8
  UPLOAD: 'upload',
9
+ UPLOAD_ADMIN: 'upload-admin',
9
10
  };
@@ -44,6 +44,7 @@ exports.REST_API = {
44
44
  CREATE_USER: `${exports.ROOT}/${CONTROLLERS.AUTH_CONTROLLER}/${CONTROLLERS.AUTH_ROUTES.CREATE_USER}`,
45
45
  RESTORE_PASSWORD: `${exports.ROOT}/${CONTROLLERS.AUTH_CONTROLLER}/${CONTROLLERS.AUTH_ROUTES.RESTORE_PASSWORD}`,
46
46
  RESET_PASSWORD: `${exports.ROOT}/${CONTROLLERS.AUTH_CONTROLLER}/${CONTROLLERS.AUTH_ROUTES.RESET_PASSWORD}`,
47
+ CHANGE_PASSWORD: `${exports.ROOT}/${CONTROLLERS.AUTH_CONTROLLER}/${CONTROLLERS.AUTH_ROUTES.CHANGE_PASSWORD}`,
47
48
  VERIFY_EMAIL: `${exports.ROOT}/${CONTROLLERS.AUTH_CONTROLLER}/${CONTROLLERS.AUTH_ROUTES.VERIFY_EMAIL}`,
48
49
  VERIFY_EMAIL_RETRY: `${exports.ROOT}/${CONTROLLERS.AUTH_CONTROLLER}/${CONTROLLERS.AUTH_ROUTES.VERIFY_EMAIL_RETRY}`,
49
50
  },
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChangePasswordCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ var ChangePasswordCommand;
6
+ (function (ChangePasswordCommand) {
7
+ ChangePasswordCommand.RequestSchema = zod_1.z.object({
8
+ currentPassword: zod_1.z.string(),
9
+ newPassword: zod_1.z.string(),
10
+ });
11
+ ChangePasswordCommand.ResponseSchema = zod_1.z.object({
12
+ data: zod_1.z.object({
13
+ accessToken: zod_1.z.string(),
14
+ }),
15
+ });
16
+ })(ChangePasswordCommand || (exports.ChangePasswordCommand = ChangePasswordCommand = {}));
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./create-user.command"), exports);
18
+ __exportStar(require("./change-password.command"), exports);
18
19
  __exportStar(require("./login.command"), exports);
19
20
  __exportStar(require("./register-user.command"), exports);
20
21
  __exportStar(require("./reset-password.command"), exports);
@@ -2,14 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EMAIL_SUBJECTS = void 0;
4
4
  exports.EMAIL_SUBJECTS = {
5
- EMAIL_VERIFICATION: 'Email Verification',
6
- WELCOME: 'Welcome',
5
+ EMAIL_VERIFICATION: 'Подтверждение email',
6
+ WELCOME: 'Добро пожаловать в Studdy.io',
7
7
  RESTORE_PASSWORD: 'Восстановление пароля в Studdy.io',
8
- FAST_REGISTRATION: 'Fast Registration',
9
- PRODUCT_PURCHASE: 'Product Purchase',
10
- RECURRENT_PAYMENT_FAILED: 'Recurrent Payment Failed',
11
- SUBSCRIPTION_PURCHASE: 'Subscription Purchase',
12
- SUBSCRIPTION_BEFORE_CANCEL: 'Subscription Before Cancel',
13
- SUBSCRIPTION_RENEWAL_REMINDER: 'Subscription Renewal Reminder',
14
- SUBSCRIPTION_CANCEL: 'Subscription Cancel',
8
+ FAST_REGISTRATION: 'Быстрая регистрация',
9
+ PRODUCT_PURCHASE: 'Покупка продукта',
10
+ RECURRENT_PAYMENT_FAILED: 'Ошибка повторного платежа',
11
+ SUBSCRIPTION_PURCHASE: 'Оформление подписки',
12
+ SUBSCRIPTION_BEFORE_CANCEL: 'Подписка будет отменена',
13
+ SUBSCRIPTION_RENEWAL_REMINDER: 'Напоминание о продлении подписки',
14
+ SUBSCRIPTION_CANCEL: 'Подписка отменена',
15
15
  };
@@ -70,6 +70,16 @@ exports.ERRORS = {
70
70
  code: 'AUTH_010',
71
71
  httpCode: 401,
72
72
  },
73
+ AUTH_PASSWORD_IDENTICAL: {
74
+ message: 'Новый пароль совпадает с текущим',
75
+ code: 'AUTH_012',
76
+ httpCode: 400,
77
+ },
78
+ AUTH_CHANGE_PASSWORD_ERROR: {
79
+ message: 'Ошибка при смене пароля',
80
+ code: 'AUTH_013',
81
+ httpCode: 500,
82
+ },
73
83
  AUTH_EMAIL_VERIFICATION_CODE_INVALID: {
74
84
  message: 'Код подтверждения email некорректен',
75
85
  code: 'AUTH_011',
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.calculateWriterAiActionPrice = calculateWriterAiActionPrice;
4
4
  const constants_1 = require("../../constants");
5
+ // Note: If you change this logic, also update the internal helper in
5
6
  function calculateWriterAiActionPrice(pricingRules, selectionText) {
6
7
  switch (pricingRules.type) {
7
8
  case constants_1.WRITER_AI_ACTION_PRICING_TYPE.PER_CHARACTER:
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.calculateWriterContentGenerationPrice = calculateWriterContentGenerationPrice;
4
+ // Note: If you change this logic, also update the internal helper
4
5
  function calculateWriterContentGenerationPrice(pages, pricePerPage) {
5
6
  return Math.max(1, pages * pricePerPage);
6
7
  }
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace ChangePasswordCommand {
4
+ export const RequestSchema = z.object({
5
+ currentPassword: z.string(),
6
+ newPassword: z.string(),
7
+ });
8
+
9
+ export type Request = z.infer<typeof RequestSchema>;
10
+
11
+ export const ResponseSchema = z.object({
12
+ data: z.object({
13
+ accessToken: z.string(),
14
+ }),
15
+ });
16
+
17
+ export type Response = z.infer<typeof ResponseSchema>;
18
+ }
@@ -1,4 +1,5 @@
1
1
  export * from './create-user.command';
2
+ export * from './change-password.command';
2
3
  export * from './login.command';
3
4
  export * from './register-user.command';
4
5
  export * from './reset-password.command';
@@ -1,12 +1,12 @@
1
1
  export const EMAIL_SUBJECTS = {
2
- EMAIL_VERIFICATION: 'Email Verification',
3
- WELCOME: 'Welcome',
2
+ EMAIL_VERIFICATION: 'Подтверждение email',
3
+ WELCOME: 'Добро пожаловать в Studdy.io',
4
4
  RESTORE_PASSWORD: 'Восстановление пароля в Studdy.io',
5
- FAST_REGISTRATION: 'Fast Registration',
6
- PRODUCT_PURCHASE: 'Product Purchase',
7
- RECURRENT_PAYMENT_FAILED: 'Recurrent Payment Failed',
8
- SUBSCRIPTION_PURCHASE: 'Subscription Purchase',
9
- SUBSCRIPTION_BEFORE_CANCEL: 'Subscription Before Cancel',
10
- SUBSCRIPTION_RENEWAL_REMINDER: 'Subscription Renewal Reminder',
11
- SUBSCRIPTION_CANCEL: 'Subscription Cancel',
5
+ FAST_REGISTRATION: 'Быстрая регистрация',
6
+ PRODUCT_PURCHASE: 'Покупка продукта',
7
+ RECURRENT_PAYMENT_FAILED: 'Ошибка повторного платежа',
8
+ SUBSCRIPTION_PURCHASE: 'Оформление подписки',
9
+ SUBSCRIPTION_BEFORE_CANCEL: 'Подписка будет отменена',
10
+ SUBSCRIPTION_RENEWAL_REMINDER: 'Напоминание о продлении подписки',
11
+ SUBSCRIPTION_CANCEL: 'Подписка отменена',
12
12
  };
@@ -67,6 +67,16 @@ export const ERRORS = {
67
67
  code: 'AUTH_010',
68
68
  httpCode: 401,
69
69
  },
70
+ AUTH_PASSWORD_IDENTICAL: {
71
+ message: 'Новый пароль совпадает с текущим',
72
+ code: 'AUTH_012',
73
+ httpCode: 400,
74
+ },
75
+ AUTH_CHANGE_PASSWORD_ERROR: {
76
+ message: 'Ошибка при смене пароля',
77
+ code: 'AUTH_013',
78
+ httpCode: 500,
79
+ },
70
80
  AUTH_EMAIL_VERIFICATION_CODE_INVALID: {
71
81
  message: 'Код подтверждения email некорректен',
72
82
  code: 'AUTH_011',
@@ -1,6 +1,7 @@
1
1
  import { WRITER_AI_ACTION_PRICING_TYPE } from '../../constants';
2
2
  import { WriterAiActionPricingRules } from '../../models';
3
3
 
4
+ // Note: If you change this logic, also update the internal helper in
4
5
  export function calculateWriterAiActionPrice(
5
6
  pricingRules: WriterAiActionPricingRules,
6
7
  selectionText: string,
@@ -1,3 +1,4 @@
1
+ // Note: If you change this logic, also update the internal helper
1
2
  export function calculateWriterContentGenerationPrice(pages: number, pricePerPage: number): number {
2
3
  return Math.max(1, pages * pricePerPage);
3
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/student-works",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",