@purpleschool/gptbot 0.5.29 → 0.5.31

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.
Files changed (111) hide show
  1. package/api/controllers/amqp/index.ts +2 -0
  2. package/api/controllers/amqp/telegram-connect.ts +3 -0
  3. package/api/controllers/amqp/telegram-profile.ts +4 -0
  4. package/api/controllers/http/index.ts +24 -0
  5. package/api/controllers/http/telegram-connect.ts +6 -0
  6. package/api/controllers/http/telegram-profile.ts +5 -0
  7. package/api/controllers/index.ts +2 -22
  8. package/api/index.ts +1 -1
  9. package/build/api/controllers/amqp/index.js +18 -0
  10. package/build/api/controllers/amqp/telegram-connect.js +6 -0
  11. package/build/api/controllers/amqp/telegram-profile.js +7 -0
  12. package/build/api/controllers/http/index.js +40 -0
  13. package/build/api/controllers/http/telegram-connect.js +8 -0
  14. package/build/api/controllers/http/telegram-profile.js +7 -0
  15. package/build/api/controllers/index.js +2 -22
  16. package/build/api/index.js +1 -1
  17. package/build/commands/index.js +2 -0
  18. package/build/commands/task/get-potential-tasks-rewards.command.js +1 -0
  19. package/build/commands/telegram/get-telegram-config.command.js +11 -0
  20. package/build/commands/telegram/index.js +17 -0
  21. package/build/commands/telegram-profile/auth-with-telegram-web-app.command.js +17 -0
  22. package/build/commands/telegram-profile/check-my-telegram-profile-connected.command.js +12 -0
  23. package/build/commands/telegram-profile/check-telegram-profile-exists.command.js +14 -0
  24. package/build/commands/telegram-profile/connect-telegram-profile-with-verification-code.command.js +15 -0
  25. package/build/commands/telegram-profile/create-new-user-from-telegram-bot.command.js +12 -0
  26. package/build/commands/telegram-profile/create-telegram-profile-connection-link.command.js +14 -0
  27. package/build/commands/telegram-profile/index.js +22 -0
  28. package/build/commands/user/get-me.command.js +18 -0
  29. package/build/commands/user/index.js +1 -0
  30. package/build/constants/errors/errors.js +81 -6
  31. package/build/constants/index.js +1 -0
  32. package/build/constants/telegram/index.js +18 -0
  33. package/build/constants/telegram/telegram-auth-log/enums/index.js +17 -0
  34. package/build/constants/telegram/telegram-auth-log/enums/telegram-auth-log-type.enum.js +8 -0
  35. package/build/constants/telegram/telegram-auth-log/index.js +17 -0
  36. package/build/constants/telegram/telegram-connect/enums/index.js +17 -0
  37. package/build/constants/telegram/telegram-connect/enums/telegram-connect-status.enum.js +9 -0
  38. package/build/constants/telegram/telegram-connect/index.js +17 -0
  39. package/build/constants/user/enums/user-status.js +1 -0
  40. package/build/models/index.js +1 -0
  41. package/build/models/telegram-user-data.schema.js +12 -0
  42. package/commands/index.ts +2 -0
  43. package/commands/task/get-potential-tasks-rewards.command.ts +1 -0
  44. package/commands/telegram/get-telegram-config.command.ts +12 -0
  45. package/commands/telegram/index.ts +1 -0
  46. package/commands/telegram-profile/auth-with-telegram-web-app.command.ts +18 -0
  47. package/commands/telegram-profile/check-my-telegram-profile-connected.command.ts +11 -0
  48. package/commands/telegram-profile/check-telegram-profile-exists.command.ts +16 -0
  49. package/commands/telegram-profile/connect-telegram-profile-with-verification-code.command.ts +16 -0
  50. package/commands/telegram-profile/create-new-user-from-telegram-bot.command.ts +13 -0
  51. package/commands/telegram-profile/create-telegram-profile-connection-link.command.ts +14 -0
  52. package/commands/telegram-profile/index.ts +6 -0
  53. package/commands/user/get-me.command.ts +20 -0
  54. package/commands/user/index.ts +1 -0
  55. package/constants/errors/errors.ts +81 -6
  56. package/constants/index.ts +1 -0
  57. package/constants/telegram/index.ts +2 -0
  58. package/constants/telegram/telegram-auth-log/enums/index.ts +1 -0
  59. package/constants/telegram/telegram-auth-log/enums/telegram-auth-log-type.enum.ts +4 -0
  60. package/constants/telegram/telegram-auth-log/index.ts +1 -0
  61. package/constants/telegram/telegram-connect/enums/index.ts +1 -0
  62. package/constants/telegram/telegram-connect/enums/telegram-connect-status.enum.ts +5 -0
  63. package/constants/telegram/telegram-connect/index.ts +1 -0
  64. package/constants/user/enums/user-status.ts +1 -0
  65. package/models/index.ts +1 -0
  66. package/models/telegram-user-data.schema.ts +12 -0
  67. package/package.json +1 -1
  68. /package/api/controllers/{ai-model.ts → http/ai-model.ts} +0 -0
  69. /package/api/controllers/{auth.ts → http/auth.ts} +0 -0
  70. /package/api/controllers/{blog.ts → http/blog.ts} +0 -0
  71. /package/api/controllers/{category.ts → http/category.ts} +0 -0
  72. /package/api/controllers/{chat-private.ts → http/chat-private.ts} +0 -0
  73. /package/api/controllers/{chat-public.ts → http/chat-public.ts} +0 -0
  74. /package/api/controllers/{cloud-payments.ts → http/cloud-payments.ts} +0 -0
  75. /package/api/controllers/{course.ts → http/course.ts} +0 -0
  76. /package/api/controllers/{feedback.ts → http/feedback.ts} +0 -0
  77. /package/api/controllers/{files.ts → http/files.ts} +0 -0
  78. /package/api/controllers/{message.ts → http/message.ts} +0 -0
  79. /package/api/controllers/{page.ts → http/page.ts} +0 -0
  80. /package/api/controllers/{payment.ts → http/payment.ts} +0 -0
  81. /package/api/controllers/{product.ts → http/product.ts} +0 -0
  82. /package/api/controllers/{question.ts → http/question.ts} +0 -0
  83. /package/api/controllers/{referral.ts → http/referral.ts} +0 -0
  84. /package/api/controllers/{subscription.ts → http/subscription.ts} +0 -0
  85. /package/api/controllers/{task.ts → http/task.ts} +0 -0
  86. /package/api/controllers/{unregistered-user.ts → http/unregistered-user.ts} +0 -0
  87. /package/api/controllers/{user-to-task-private.ts → http/user-to-task-private.ts} +0 -0
  88. /package/api/controllers/{user-to-task-public.ts → http/user-to-task-public.ts} +0 -0
  89. /package/api/controllers/{user.ts → http/user.ts} +0 -0
  90. /package/build/api/controllers/{ai-model.js → http/ai-model.js} +0 -0
  91. /package/build/api/controllers/{auth.js → http/auth.js} +0 -0
  92. /package/build/api/controllers/{blog.js → http/blog.js} +0 -0
  93. /package/build/api/controllers/{category.js → http/category.js} +0 -0
  94. /package/build/api/controllers/{chat-private.js → http/chat-private.js} +0 -0
  95. /package/build/api/controllers/{chat-public.js → http/chat-public.js} +0 -0
  96. /package/build/api/controllers/{cloud-payments.js → http/cloud-payments.js} +0 -0
  97. /package/build/api/controllers/{course.js → http/course.js} +0 -0
  98. /package/build/api/controllers/{feedback.js → http/feedback.js} +0 -0
  99. /package/build/api/controllers/{files.js → http/files.js} +0 -0
  100. /package/build/api/controllers/{message.js → http/message.js} +0 -0
  101. /package/build/api/controllers/{page.js → http/page.js} +0 -0
  102. /package/build/api/controllers/{payment.js → http/payment.js} +0 -0
  103. /package/build/api/controllers/{product.js → http/product.js} +0 -0
  104. /package/build/api/controllers/{question.js → http/question.js} +0 -0
  105. /package/build/api/controllers/{referral.js → http/referral.js} +0 -0
  106. /package/build/api/controllers/{subscription.js → http/subscription.js} +0 -0
  107. /package/build/api/controllers/{task.js → http/task.js} +0 -0
  108. /package/build/api/controllers/{unregistered-user.js → http/unregistered-user.js} +0 -0
  109. /package/build/api/controllers/{user-to-task-private.js → http/user-to-task-private.js} +0 -0
  110. /package/build/api/controllers/{user-to-task-public.js → http/user-to-task-public.js} +0 -0
  111. /package/build/api/controllers/{user.js → http/user.js} +0 -0
@@ -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);
@@ -5,4 +5,5 @@ var USER_STATUS;
5
5
  (function (USER_STATUS) {
6
6
  USER_STATUS["ACTIVE"] = "active";
7
7
  USER_STATUS["INACTIVE"] = "inactive";
8
+ USER_STATUS["TG_AUTO_REGISTERED"] = "tg_auto_registered";
8
9
  })(USER_STATUS || (exports.USER_STATUS = USER_STATUS = {}));
@@ -34,6 +34,7 @@ __exportStar(require("./referral-bonus.schema"), exports);
34
34
  __exportStar(require("./section.schema"), exports);
35
35
  __exportStar(require("./subscription-upgrade-schema"), exports);
36
36
  __exportStar(require("./subscription.schema"), exports);
37
+ __exportStar(require("./telegram-user-data.schema"), exports);
37
38
  __exportStar(require("./unregistered-user.schema"), exports);
38
39
  __exportStar(require("./user-task.schema"), exports);
39
40
  __exportStar(require("./user-to-subscription.schema"), exports);
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TelegramUserDataSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.TelegramUserDataSchema = zod_1.z.object({
6
+ telegramId: zod_1.z.coerce.number(),
7
+ username: zod_1.z.string().optional().nullable(),
8
+ firstName: zod_1.z.string(),
9
+ lastName: zod_1.z.string().optional().nullable(),
10
+ languageCode: zod_1.z.string(),
11
+ isPremium: zod_1.z.boolean().optional(),
12
+ });
package/commands/index.ts CHANGED
@@ -13,6 +13,8 @@ export * from './question';
13
13
  export * from './referral';
14
14
  export * from './subscription';
15
15
  export * from './task';
16
+ export * from './telegram';
17
+ export * from './telegram-profile';
16
18
  export * from './unregistered-user';
17
19
  export * from './user';
18
20
  export * from './user-to-subscription';
@@ -5,6 +5,7 @@ export namespace GetPotentialTasksRewardsCommand {
5
5
  data: z.object({
6
6
  potentialTasksRewards: z.number(),
7
7
  registrationReward: z.number(),
8
+ telegramConnectReward: z.number(),
8
9
  }),
9
10
  });
10
11
 
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace GetTelegramConfigCommand {
4
+ export const RequestSchema = z.void();
5
+ export type Request = z.infer<typeof RequestSchema>;
6
+
7
+ export const ResponseSchema = z.object({
8
+ tmaLink: z.string(),
9
+ });
10
+
11
+ export type Response = z.infer<typeof ResponseSchema>;
12
+ }
@@ -0,0 +1 @@
1
+ export * from './get-telegram-config.command';
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace AuthWithTelegramWebAppCommand {
4
+ export const RequestBodySchema = z.object({
5
+ initData: z.string(),
6
+ platform: z.string().nullable(),
7
+ partnerId: z.string().optional(),
8
+ });
9
+
10
+ export type Request = z.infer<typeof RequestBodySchema>;
11
+
12
+ export const ResponseSchema = z.object({
13
+ data: z.object({
14
+ accessToken: z.string(),
15
+ }),
16
+ });
17
+ export type Response = z.infer<typeof ResponseSchema>;
18
+ }
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace CheckMyTelegramProfileConnectedCommand {
4
+ export const ResponseSchema = z.object({
5
+ data: z.object({
6
+ connected: z.boolean(),
7
+ }),
8
+ });
9
+
10
+ export type Response = z.infer<typeof ResponseSchema>;
11
+ }
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+
3
+ export namespace CheckTelegramProfileExistsCommand {
4
+ export const RequestBodySchema = z.object({
5
+ telegramId: z.number(),
6
+ });
7
+
8
+ export type RequestBody = z.infer<typeof RequestBodySchema>;
9
+
10
+ export const ResponseSchema = z.object({
11
+ isSuccess: z.boolean(),
12
+ exists: z.boolean(),
13
+ });
14
+
15
+ export type Response = z.infer<typeof ResponseSchema>;
16
+ }
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ import { TelegramUserDataSchema } from '../../models';
3
+
4
+ export namespace ConnectTelegramProfileWithVerificationCodeCommand {
5
+ export const RequestSchema = TelegramUserDataSchema.extend({
6
+ code: z.string(),
7
+ });
8
+
9
+ export type Request = z.infer<typeof RequestSchema>;
10
+
11
+ export const ResponseSchema = z.object({
12
+ isSuccess: z.boolean(),
13
+ message: z.string().optional(),
14
+ });
15
+ export type Response = z.infer<typeof ResponseSchema>;
16
+ }
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ import { TelegramUserDataSchema } from '../../models';
3
+
4
+ export namespace CreateNewUserFromTelegramBotCommand {
5
+ export const RequestSchema = TelegramUserDataSchema.extend({
6
+ partnerId: z.string().uuid().optional(),
7
+ });
8
+
9
+ export type Request = z.infer<typeof RequestSchema>;
10
+
11
+ export const ResponseSchema = z.void();
12
+ export type Response = z.infer<typeof ResponseSchema>;
13
+ }
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ import { TelegramUserDataSchema } from '../../models';
3
+
4
+ export namespace CreateTelegramConnectionLinkCommand {
5
+ export const RequestSchema = TelegramUserDataSchema.extend({
6
+ code: z.string(),
7
+ });
8
+ export type Request = z.infer<typeof RequestSchema>;
9
+
10
+ export const ResponseSchema = z.object({
11
+ link: z.string(),
12
+ });
13
+ export type Response = z.infer<typeof ResponseSchema>;
14
+ }
@@ -0,0 +1,6 @@
1
+ export * from './auth-with-telegram-web-app.command';
2
+ export * from './check-my-telegram-profile-connected.command';
3
+ export * from './check-telegram-profile-exists.command';
4
+ export * from './connect-telegram-profile-with-verification-code.command';
5
+ export * from './create-telegram-profile-connection-link.command';
6
+ export * from './create-new-user-from-telegram-bot.command';
@@ -0,0 +1,20 @@
1
+ import { ROLE, USER_STATUS } from '../../constants';
2
+ import { z } from 'zod';
3
+
4
+ export namespace GetMeCommand {
5
+ export const RequestSchema = z.object({});
6
+
7
+ export type Request = z.infer<typeof RequestSchema>;
8
+
9
+ export const ResponseSchema = z.object({
10
+ data: z.object({
11
+ uuid: z.string().uuid(),
12
+ email: z.string().email(),
13
+ status: z.nativeEnum(USER_STATUS),
14
+ role: z.nativeEnum(ROLE),
15
+ telegramId: z.number().nullable(),
16
+ }),
17
+ });
18
+
19
+ export type Response = z.infer<typeof ResponseSchema>;
20
+ }
@@ -1,3 +1,4 @@
1
1
  export * from './check-email.command';
2
2
  export * from './find-user.command';
3
+ export * from './get-me.command';
3
4
  export * from './up-token-bonus-balance.command';
@@ -691,33 +691,108 @@ export const ERRORS = {
691
691
  httpCode: 400,
692
692
  },
693
693
  TASK_CREATE_ERROR: {
694
- code: 'A152',
694
+ code: 'A153',
695
695
  message: 'Произовшла ошибка при создании задания',
696
696
  httpCode: 500,
697
697
  },
698
698
  TASK_UPDATE_ERROR: {
699
- code: 'A153',
699
+ code: 'A154',
700
700
  message: 'Произовшла ошибка при обновлении задания',
701
701
  httpCode: 500,
702
702
  },
703
703
  TASK_DELETE_ERROR: {
704
- code: 'A154',
704
+ code: 'A155',
705
705
  message: 'Произовшла ошибка при удалении задания',
706
706
  httpCode: 500,
707
707
  },
708
708
  TASK_GET_POTENTIAL_REWARDS_ERROR: {
709
- code: 'A155',
709
+ code: 'A156',
710
710
  message: 'Произовшла ошибка при списка наград за выполение доступных заданий',
711
711
  httpCode: 500,
712
712
  },
713
713
  USER_BALANCE_CALCULATION_ERROR: {
714
- code: 'A156',
714
+ code: 'A157',
715
715
  message: 'Произовшла ошибка при расчете баланса пользователя',
716
716
  httpCode: 500,
717
717
  },
718
718
  TASK_REQUIRES_VERIFICATION: {
719
- code: 'A157',
719
+ code: 'A158',
720
720
  message: 'Для доступа к задачам необходимо подтвердить электронную почту',
721
721
  httpCode: 401,
722
722
  },
723
+ TELEGRAM_AUTH_ERROR: {
724
+ code: 'A159',
725
+ message: 'Не удалось авторизоваться через Telegram',
726
+ httpCode: 500,
727
+ },
728
+ TELEGRAM_PROFILE_NOT_FOUND: {
729
+ code: 'A160',
730
+ message: 'Telegram профиль не найден',
731
+ httpCode: 404,
732
+ },
733
+ TELEGRAM_PROFILE_FIND_ERROR: {
734
+ code: 'A170',
735
+ message: 'Ошибка при поиске Telegram профиля',
736
+ httpCode: 500,
737
+ },
738
+ TELEGRAM_PROFILE_CHECK_ERROR: {
739
+ code: 'A171',
740
+ message: 'Произошла ошибка при проверке существования Telegram профиля',
741
+ httpCode: 500,
742
+ },
743
+ TELEGRAM_PROFILE_VALIDATION_FAILED: {
744
+ code: 'A172',
745
+ message: 'Данные не прошли валидацию',
746
+ httpCode: 400,
747
+ },
748
+ TELEGRAM_PROFILE_CREATE_ERROR: {
749
+ code: 'A173',
750
+ message: 'Произошла ошибка при создании Telegram профиля',
751
+ httpCode: 500,
752
+ },
753
+ TELEGRAM_PROFILE_CHECK_CONNECTED_ERROR: {
754
+ code: 'A174',
755
+ message: 'Произошла ошибка при проверке привязки Telegram профиля',
756
+ httpCode: 500,
757
+ },
758
+ TELEGRAM_CONNECT_CREATE_ERROR: {
759
+ code: 'A175',
760
+ message: 'Произошла ошибка при формировании ссылки для привязки Telegram профиля',
761
+ httpCode: 500,
762
+ },
763
+ TELEGRAM_PROFILE_ALREADY_CONNECTED_TO_THIS_USER: {
764
+ code: 'A176',
765
+ message: 'К данной учетной записи уже привязан Telegram профиль',
766
+ httpCode: 400,
767
+ },
768
+ TELEGRAM_PROFILE_ALREADY_CONNECTED_TO_SOME_USER: {
769
+ code: 'A178',
770
+ message: 'Данный Telegram профиль уже привязан к учетной записи',
771
+ httpCode: 400,
772
+ },
773
+ TELEGRAM_CONNECT_INVALID: {
774
+ code: 'A179',
775
+ message: 'Ссылка для привязки Telegram профиля недействительна или устарела',
776
+ httpCode: 400,
777
+ },
778
+ TELEGRAM_CONNECT_UPDATE_ERROR: {
779
+ code: 'A180',
780
+ message: 'Произошла ошибка при обновлении ссылки для привязки Telegram профиля',
781
+ httpCode: 500,
782
+ },
783
+ TELEGRAM_CONNECT_EXPIRED: {
784
+ code: 'A181',
785
+ message: 'Срок действия ссылки для привязки Telegram профиля истек',
786
+ httpCode: 400,
787
+ },
788
+ TELEGRAM_CONNECT_FIND_ERROR: {
789
+ code: 'A182',
790
+ message: 'Произошла ошибка при поиске ссылки для привязки Telegram профиля',
791
+ httpCode: 500,
792
+ },
793
+ TELEGRAM_PROFILE_UPDATE_ERROR: {
794
+ code: 'A183',
795
+ message: 'Произошла ошибка при обновлении Telegram профиля',
796
+ httpCode: 500,
797
+ },
723
798
  };
@@ -15,5 +15,6 @@ export * from './referral';
15
15
  export * from './roles';
16
16
  export * from './subscription';
17
17
  export * from './task';
18
+ export * from './telegram';
18
19
  export * from './transaction';
19
20
  export * from './user';
@@ -0,0 +1,2 @@
1
+ export * from './telegram-auth-log';
2
+ export * from './telegram-connect';
@@ -0,0 +1 @@
1
+ export * from './telegram-auth-log-type.enum';
@@ -0,0 +1,4 @@
1
+ export enum TELEGRAM_AUTH_LOG_TYPE {
2
+ LOGIN = 'LOGIN',
3
+ REGISTER = 'REGISTER',
4
+ }
@@ -0,0 +1 @@
1
+ export * from './enums';
@@ -0,0 +1 @@
1
+ export * from './telegram-connect-status.enum';
@@ -0,0 +1,5 @@
1
+ export enum TELEGRAM_CONNECT_STATUS {
2
+ PENDING = 'pending',
3
+ CONNECTED = 'connected',
4
+ EXPIRED = 'expired',
5
+ }
@@ -0,0 +1 @@
1
+ export * from './enums';
@@ -1,4 +1,5 @@
1
1
  export enum USER_STATUS {
2
2
  ACTIVE = 'active',
3
3
  INACTIVE = 'inactive',
4
+ TG_AUTO_REGISTERED = 'tg_auto_registered',
4
5
  }
package/models/index.ts CHANGED
@@ -18,6 +18,7 @@ export * from './referral-bonus.schema';
18
18
  export * from './section.schema';
19
19
  export * from './subscription-upgrade-schema';
20
20
  export * from './subscription.schema';
21
+ export * from './telegram-user-data.schema';
21
22
  export * from './unregistered-user.schema';
22
23
  export * from './user-task.schema';
23
24
  export * from './user-to-subscription.schema';
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod';
2
+
3
+ export const TelegramUserDataSchema = z.object({
4
+ telegramId: z.coerce.number(),
5
+ username: z.string().optional().nullable(),
6
+ firstName: z.string(),
7
+ lastName: z.string().optional().nullable(),
8
+ languageCode: z.string(),
9
+ isPremium: z.boolean().optional(),
10
+ });
11
+
12
+ export type TelegramUserData = z.infer<typeof TelegramUserDataSchema>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpleschool/gptbot",
3
- "version": "0.5.29",
3
+ "version": "0.5.31",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes