@takentrade/takentrade-libs 4.1.8 → 4.1.9

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 (74) hide show
  1. package/README.md +14 -102
  2. package/dist/common/index.d.ts +0 -2
  3. package/dist/common/index.js +0 -2
  4. package/dist/common/utils/index.d.ts +0 -1
  5. package/dist/common/utils/index.js +0 -1
  6. package/dist/index.d.ts +0 -1
  7. package/dist/index.js +0 -1
  8. package/dist/nats/events/ajo.events.d.ts +14 -0
  9. package/dist/nats/events/index.d.ts +10 -174
  10. package/dist/nats/events/index.js +24 -0
  11. package/dist/nats/events/loans.events.d.ts +19 -0
  12. package/dist/nats/events/loans.events.js +2 -0
  13. package/dist/nats/events/notification.events.d.ts +8 -0
  14. package/dist/nats/events/notification.events.js +2 -0
  15. package/dist/nats/events/payment.events.d.ts +40 -0
  16. package/dist/nats/events/payment.events.js +2 -0
  17. package/dist/nats/events/providus.events.d.ts +14 -0
  18. package/dist/nats/events/providus.events.js +2 -0
  19. package/dist/nats/events/referral.events.d.ts +7 -0
  20. package/dist/nats/events/referral.events.js +2 -0
  21. package/dist/nats/events/savings.events.d.ts +11 -0
  22. package/dist/nats/events/savings.events.js +2 -0
  23. package/dist/nats/events/user.events.d.ts +35 -0
  24. package/dist/nats/events/user.events.js +2 -0
  25. package/dist/nats/events/vas.events.d.ts +12 -0
  26. package/dist/nats/events/vas.events.js +2 -0
  27. package/dist/nats/events/withdrawal.events.d.ts +9 -0
  28. package/dist/nats/events/withdrawal.events.js +2 -0
  29. package/dist/notification/broadcast-templates.d.ts +20 -20
  30. package/dist/notification/broadcast-templates.js +20 -20
  31. package/dist/rpc/rpc.client.d.ts +6 -8
  32. package/dist/rpc/rpc.client.js +59 -62
  33. package/dist/tsconfig.tsbuildinfo +1 -1
  34. package/dist/utils/enums/subaccount.enum.d.ts +0 -4
  35. package/dist/utils/enums/subaccount.enum.js +1 -6
  36. package/dist/utils/index.d.ts +0 -2
  37. package/dist/utils/index.js +0 -2
  38. package/dist/utils/interfaces/index.d.ts +0 -1
  39. package/dist/utils/interfaces/index.js +0 -1
  40. package/dist/utils/utils/index.d.ts +0 -1
  41. package/dist/utils/utils/index.js +0 -1
  42. package/package.json +4 -5
  43. package/dist/bullmq/bullmq.module.d.ts +0 -2
  44. package/dist/bullmq/bullmq.module.js +0 -16
  45. package/dist/bullmq/bullmq.service.d.ts +0 -2
  46. package/dist/bullmq/bullmq.service.js +0 -16
  47. package/dist/bullmq/config/bull.config.d.ts +0 -22
  48. package/dist/bullmq/config/bull.config.js +0 -28
  49. package/dist/bullmq/index.d.ts +0 -2
  50. package/dist/bullmq/index.js +0 -18
  51. package/dist/common/dto/account.dto.d.ts +0 -18
  52. package/dist/common/dto/account.dto.js +0 -68
  53. package/dist/common/dto/index.d.ts +0 -2
  54. package/dist/common/dto/index.js +0 -18
  55. package/dist/common/dto/user.dto.d.ts +0 -34
  56. package/dist/common/dto/user.dto.js +0 -132
  57. package/dist/common/enums/index.d.ts +0 -3
  58. package/dist/common/enums/index.js +0 -19
  59. package/dist/common/enums/support-action.enum.d.ts +0 -7
  60. package/dist/common/enums/support-action.enum.js +0 -11
  61. package/dist/common/enums/ticket.enum.d.ts +0 -19
  62. package/dist/common/enums/ticket.enum.js +0 -25
  63. package/dist/common/enums/transaction.enum.d.ts +0 -85
  64. package/dist/common/enums/transaction.enum.js +0 -97
  65. package/dist/common/utils/string.utils.d.ts +0 -10
  66. package/dist/common/utils/string.utils.js +0 -34
  67. package/dist/utils/helpers/penalty.util.d.ts +0 -25
  68. package/dist/utils/helpers/penalty.util.js +0 -40
  69. package/dist/utils/helpers/role.util.d.ts +0 -8
  70. package/dist/utils/helpers/role.util.js +0 -18
  71. package/dist/utils/interfaces/general.interface.d.ts +0 -13
  72. package/dist/utils/utils/otp.d.ts +0 -1
  73. package/dist/utils/utils/otp.js +0 -102
  74. /package/dist/{utils/interfaces/general.interface.js → nats/events/ajo.events.js} +0 -0
@@ -41,10 +41,10 @@ export declare const BROADCAST_EMAIL_TEMPLATES: readonly [{
41
41
  readonly templateName: "product-announcement";
42
42
  readonly category: "announcement";
43
43
  readonly label: "Product Announcement";
44
- readonly description: "Announce a new feature, release, or platform update with a polished launch-style layout.";
45
- readonly defaultSubject: "Introducing our latest update";
46
- readonly defaultTitle: "A new TakeNTrade update is here";
47
- readonly defaultCtaText: "Learn More";
44
+ readonly description: "Announcement layout for release or product updates.";
45
+ readonly defaultSubject: "";
46
+ readonly defaultTitle: "";
47
+ readonly defaultCtaText: "";
48
48
  readonly previewTag: "Launch";
49
49
  readonly accentColor: "#FF914D";
50
50
  }, {
@@ -52,10 +52,10 @@ export declare const BROADCAST_EMAIL_TEMPLATES: readonly [{
52
52
  readonly templateName: "promotion-special-offer";
53
53
  readonly category: "promotion";
54
54
  readonly label: "Promotion / Special Offer";
55
- readonly description: "Highlight limited-time offers, bonuses, or time-sensitive campaigns with stronger visual emphasis.";
56
- readonly defaultSubject: "Special offer for our customers";
57
- readonly defaultTitle: "Unlock a limited-time offer";
58
- readonly defaultCtaText: "Claim Offer";
55
+ readonly description: "Promotion layout for time-sensitive campaigns.";
56
+ readonly defaultSubject: "";
57
+ readonly defaultTitle: "";
58
+ readonly defaultCtaText: "";
59
59
  readonly previewTag: "Offer";
60
60
  readonly accentColor: "#F97316";
61
61
  }, {
@@ -63,10 +63,10 @@ export declare const BROADCAST_EMAIL_TEMPLATES: readonly [{
63
63
  readonly templateName: "newsletter";
64
64
  readonly category: "newsletter";
65
65
  readonly label: "Newsletter";
66
- readonly description: "Share a balanced editorial update with multiple content sections and softer promotional styling.";
67
- readonly defaultSubject: "Your monthly TakeNTrade update";
68
- readonly defaultTitle: "Catch up on what's new";
69
- readonly defaultCtaText: "Read More";
66
+ readonly description: "Newsletter layout for recurring updates.";
67
+ readonly defaultSubject: "";
68
+ readonly defaultTitle: "";
69
+ readonly defaultCtaText: "";
70
70
  readonly previewTag: "Digest";
71
71
  readonly accentColor: "#3B82F6";
72
72
  }, {
@@ -74,10 +74,10 @@ export declare const BROADCAST_EMAIL_TEMPLATES: readonly [{
74
74
  readonly templateName: "event-webinar-invitation";
75
75
  readonly category: "event";
76
76
  readonly label: "Event / Webinar Invitation";
77
- readonly description: "Invite users to a live event, webinar, or community session with clear schedule and RSVP emphasis.";
78
- readonly defaultSubject: "You are invited to our next event";
79
- readonly defaultTitle: "Join our upcoming session";
80
- readonly defaultCtaText: "Reserve Your Spot";
77
+ readonly description: "Event layout for invites, webinars, and sessions.";
78
+ readonly defaultSubject: "";
79
+ readonly defaultTitle: "";
80
+ readonly defaultCtaText: "";
81
81
  readonly previewTag: "Event";
82
82
  readonly accentColor: "#14B8A6";
83
83
  }, {
@@ -85,10 +85,10 @@ export declare const BROADCAST_EMAIL_TEMPLATES: readonly [{
85
85
  readonly templateName: "general-company-update";
86
86
  readonly category: "update";
87
87
  readonly label: "General Company Update";
88
- readonly description: "Send a simple operational update, policy notice, or company-wide announcement with a clean structure.";
89
- readonly defaultSubject: "Important update from TakeNTrade";
90
- readonly defaultTitle: "A quick company update";
91
- readonly defaultCtaText: "View Update";
88
+ readonly description: "General update layout for announcements and notices.";
89
+ readonly defaultSubject: "";
90
+ readonly defaultTitle: "";
91
+ readonly defaultCtaText: "";
92
92
  readonly previewTag: "Update";
93
93
  readonly accentColor: "#8B5CF6";
94
94
  }];
@@ -9,10 +9,10 @@ exports.BROADCAST_EMAIL_TEMPLATES = [
9
9
  templateName: 'product-announcement',
10
10
  category: 'announcement',
11
11
  label: 'Product Announcement',
12
- description: 'Announce a new feature, release, or platform update with a polished launch-style layout.',
13
- defaultSubject: 'Introducing our latest update',
14
- defaultTitle: 'A new TakeNTrade update is here',
15
- defaultCtaText: 'Learn More',
12
+ description: 'Announcement layout for release or product updates.',
13
+ defaultSubject: '',
14
+ defaultTitle: '',
15
+ defaultCtaText: '',
16
16
  previewTag: 'Launch',
17
17
  accentColor: '#FF914D',
18
18
  },
@@ -21,10 +21,10 @@ exports.BROADCAST_EMAIL_TEMPLATES = [
21
21
  templateName: 'promotion-special-offer',
22
22
  category: 'promotion',
23
23
  label: 'Promotion / Special Offer',
24
- description: 'Highlight limited-time offers, bonuses, or time-sensitive campaigns with stronger visual emphasis.',
25
- defaultSubject: 'Special offer for our customers',
26
- defaultTitle: 'Unlock a limited-time offer',
27
- defaultCtaText: 'Claim Offer',
24
+ description: 'Promotion layout for time-sensitive campaigns.',
25
+ defaultSubject: '',
26
+ defaultTitle: '',
27
+ defaultCtaText: '',
28
28
  previewTag: 'Offer',
29
29
  accentColor: '#F97316',
30
30
  },
@@ -33,10 +33,10 @@ exports.BROADCAST_EMAIL_TEMPLATES = [
33
33
  templateName: 'newsletter',
34
34
  category: 'newsletter',
35
35
  label: 'Newsletter',
36
- description: 'Share a balanced editorial update with multiple content sections and softer promotional styling.',
37
- defaultSubject: 'Your monthly TakeNTrade update',
38
- defaultTitle: "Catch up on what's new",
39
- defaultCtaText: 'Read More',
36
+ description: 'Newsletter layout for recurring updates.',
37
+ defaultSubject: '',
38
+ defaultTitle: '',
39
+ defaultCtaText: '',
40
40
  previewTag: 'Digest',
41
41
  accentColor: '#3B82F6',
42
42
  },
@@ -45,10 +45,10 @@ exports.BROADCAST_EMAIL_TEMPLATES = [
45
45
  templateName: 'event-webinar-invitation',
46
46
  category: 'event',
47
47
  label: 'Event / Webinar Invitation',
48
- description: 'Invite users to a live event, webinar, or community session with clear schedule and RSVP emphasis.',
49
- defaultSubject: 'You are invited to our next event',
50
- defaultTitle: 'Join our upcoming session',
51
- defaultCtaText: 'Reserve Your Spot',
48
+ description: 'Event layout for invites, webinars, and sessions.',
49
+ defaultSubject: '',
50
+ defaultTitle: '',
51
+ defaultCtaText: '',
52
52
  previewTag: 'Event',
53
53
  accentColor: '#14B8A6',
54
54
  },
@@ -57,10 +57,10 @@ exports.BROADCAST_EMAIL_TEMPLATES = [
57
57
  templateName: 'general-company-update',
58
58
  category: 'update',
59
59
  label: 'General Company Update',
60
- description: 'Send a simple operational update, policy notice, or company-wide announcement with a clean structure.',
61
- defaultSubject: 'Important update from TakeNTrade',
62
- defaultTitle: 'A quick company update',
63
- defaultCtaText: 'View Update',
60
+ description: 'General update layout for announcements and notices.',
61
+ defaultSubject: '',
62
+ defaultTitle: '',
63
+ defaultCtaText: '',
64
64
  previewTag: 'Update',
65
65
  accentColor: '#8B5CF6',
66
66
  },
@@ -11,12 +11,11 @@ export declare class TakeNTradeRpc {
11
11
  */
12
12
  static handleRequest<V>(promise: Promise<V>, ctx?: NatsContext): Promise<TakeNTradeRPCSuccess<V> | RpcException>;
13
13
  /**
14
- * Handles errors from an RPC request handler and returns a TakeNTradeRPCError wrapped in RpcException.
14
+ * Handles errors from an RPC request handler and returns a TakeNTradeRPCError.
15
15
  * @param err - Error to be handled.
16
16
  * @param ctx - A NATS Context.
17
17
  */
18
18
  static handleRequestError(err: unknown, ctx: NatsContext): RpcException;
19
- private static catch;
20
19
  /**
21
20
  * Handles NATS request response.
22
21
  * @param obs - An instance of an Observable.
@@ -25,6 +24,11 @@ export declare class TakeNTradeRpc {
25
24
  static withReply<V>(obs: Observable<V>, successMessage?: string): Promise<TakeNTradeRPCSuccess<V>>;
26
25
  }
27
26
  export declare class TakeNTradeRpcV2 {
27
+ /**
28
+ * Handles NATS request response.
29
+ * @param obs - An instance of an Observable.
30
+ */
31
+ static withReply<V>(obs: Observable<V>): Promise<TakeNTradeRPCSuccess<V>>;
28
32
  /**
29
33
  * Wraps a promise returned by an RPC request handler.
30
34
  * @param promise - A Promise resolving to the response value.
@@ -37,10 +41,4 @@ export declare class TakeNTradeRpcV2 {
37
41
  * @param ctx - A NATS Context.
38
42
  */
39
43
  static handleRequestError(err: unknown, ctx: NatsContext): TakeNTradeRPCError;
40
- private static catch;
41
- /**
42
- * Handles NATS request response.
43
- * @param obs - An instance of an Observable.
44
- */
45
- static withReply<V>(obs: Observable<V>): Promise<TakeNTradeRPCSuccess<V>>;
46
44
  }
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TakeNTradeRpcV2 = exports.TakeNTradeRpc = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
5
  const microservices_1 = require("@nestjs/microservices");
6
- class TakeNTradeRpcUtils {
6
+ class TakeNTradeRpcCore {
7
7
  static getValidationErrors(err) {
8
8
  if (err instanceof common_1.BadRequestException) {
9
9
  const response = err.getResponse();
@@ -25,28 +25,7 @@ class TakeNTradeRpcUtils {
25
25
  data,
26
26
  };
27
27
  }
28
- }
29
- class TakeNTradeRpc {
30
- /**
31
- * Wraps a promise returned by an RPC request handler.
32
- * @param promise - A Promise resolving to the response value.
33
- * @param ctx - Optional NatsContext object.
34
- * @param successMessage - Optional success message
35
- */
36
- static async handleRequest(promise, ctx) {
37
- return promise
38
- .then((value) => TakeNTradeRpcUtils.formatSuccessResponse(value))
39
- .catch((err) => this.catch(err, ctx));
40
- }
41
- /**
42
- * Handles errors from an RPC request handler and returns a TakeNTradeRPCError wrapped in RpcException.
43
- * @param err - Error to be handled.
44
- * @param ctx - A NATS Context.
45
- */
46
- static handleRequestError(err, ctx) {
47
- return this.catch(err, ctx);
48
- }
49
- static catch(err, ctx) {
28
+ static toRpcException(err, ctx) {
50
29
  const subject = ctx ? ctx.getArgs()[0] : null;
51
30
  const error = err instanceof Error ? err : new Error(String(err));
52
31
  const statusCode = err instanceof common_1.HttpException ? err.getStatus() : 500;
@@ -55,42 +34,57 @@ class TakeNTradeRpc {
55
34
  subject,
56
35
  message: error.message,
57
36
  statusCode,
58
- errors: TakeNTradeRpcUtils.getValidationErrors(err),
37
+ errors: TakeNTradeRpcCore.getValidationErrors(err),
59
38
  };
60
39
  return new microservices_1.RpcException(errorDetails);
61
40
  }
62
- /**
63
- * Handles NATS request response.
64
- * @param obs - An instance of an Observable.
65
- * @param successMessage - Optional success message
66
- */
67
- static async withReply(obs, successMessage = 'Operation successful') {
41
+ static toRpcError(err, ctx) {
42
+ const subject = ctx ? ctx.getArgs()[0] : null;
43
+ const error = err instanceof Error ? err : new Error(String(err));
44
+ const statusCode = err instanceof common_1.HttpException ? err.getStatus() : 500;
45
+ return {
46
+ success: false,
47
+ subject,
48
+ message: error.message,
49
+ statusCode,
50
+ errors: TakeNTradeRpcCore.getValidationErrors(err),
51
+ };
52
+ }
53
+ static async fromPromise(promise, ctx) {
54
+ return promise
55
+ .then((value) => TakeNTradeRpcCore.formatSuccessResponse(value))
56
+ .catch((err) => TakeNTradeRpcCore.toRpcException(err, ctx));
57
+ }
58
+ static async fromPromiseV2(promise, ctx) {
59
+ return promise
60
+ .then((value) => TakeNTradeRpcCore.formatSuccessResponse(value))
61
+ .catch((err) => TakeNTradeRpcCore.toRpcError(err, ctx));
62
+ }
63
+ static async fromObservable(obs) {
68
64
  const result = await new Promise((resolve, reject) => {
69
65
  obs.subscribe({
70
66
  next: (value) => resolve(value),
71
67
  error: (err) => reject(err instanceof Error ? err : new Error(String(err))),
72
68
  });
73
69
  });
74
- if (TakeNTradeRpcUtils.isErrorResponse(result)) {
70
+ if (TakeNTradeRpcCore.isErrorResponse(result)) {
75
71
  common_1.Logger.error(result.error);
76
72
  throw new common_1.HttpException(result.error, result.error.statusCode, {
77
73
  cause: result.error.errors,
78
74
  });
79
75
  }
80
- return TakeNTradeRpcUtils.formatSuccessResponse(result);
76
+ return TakeNTradeRpcCore.formatSuccessResponse(result);
81
77
  }
82
78
  }
83
- exports.TakeNTradeRpc = TakeNTradeRpc;
84
- class TakeNTradeRpcV2 {
79
+ class TakeNTradeRpc {
85
80
  /**
86
81
  * Wraps a promise returned by an RPC request handler.
87
82
  * @param promise - A Promise resolving to the response value.
88
83
  * @param ctx - Optional NatsContext object.
84
+ * @param successMessage - Optional success message
89
85
  */
90
86
  static async handleRequest(promise, ctx) {
91
- return promise
92
- .then((value) => TakeNTradeRpcUtils.formatSuccessResponse(value))
93
- .catch((err) => this.catch(err, ctx));
87
+ return TakeNTradeRpcCore.fromPromise(promise, ctx);
94
88
  }
95
89
  /**
96
90
  * Handles errors from an RPC request handler and returns a TakeNTradeRPCError.
@@ -98,38 +92,41 @@ class TakeNTradeRpcV2 {
98
92
  * @param ctx - A NATS Context.
99
93
  */
100
94
  static handleRequestError(err, ctx) {
101
- return this.catch(err, ctx);
95
+ return TakeNTradeRpcCore.toRpcException(err, ctx);
102
96
  }
103
- static catch(err, ctx) {
104
- const subject = ctx ? ctx.getArgs()[0] : null;
105
- const error = err instanceof Error ? err : new Error(String(err));
106
- const statusCode = err instanceof common_1.HttpException ? err.getStatus() : 500;
107
- return {
108
- success: false,
109
- subject,
110
- message: error.message,
111
- statusCode,
112
- errors: TakeNTradeRpcUtils.getValidationErrors(err),
113
- };
97
+ /**
98
+ * Handles NATS request response.
99
+ * @param obs - An instance of an Observable.
100
+ * @param successMessage - Optional success message
101
+ */
102
+ static async withReply(obs, successMessage = 'Operation successful') {
103
+ return TakeNTradeRpcCore.fromObservable(obs);
114
104
  }
105
+ }
106
+ exports.TakeNTradeRpc = TakeNTradeRpc;
107
+ class TakeNTradeRpcV2 {
115
108
  /**
116
109
  * Handles NATS request response.
117
110
  * @param obs - An instance of an Observable.
118
111
  */
119
112
  static async withReply(obs) {
120
- const result = await new Promise((resolve, reject) => {
121
- obs.subscribe({
122
- next: (value) => resolve(value),
123
- error: (err) => reject(err instanceof Error ? err : new Error(String(err))),
124
- });
125
- });
126
- if (TakeNTradeRpcUtils.isErrorResponse(result)) {
127
- common_1.Logger.error(result.error);
128
- throw new common_1.HttpException(result.error, result.error.statusCode, {
129
- cause: result.error.errors,
130
- });
131
- }
132
- return TakeNTradeRpcUtils.formatSuccessResponse(result);
113
+ return TakeNTradeRpcCore.fromObservable(obs);
114
+ }
115
+ /**
116
+ * Wraps a promise returned by an RPC request handler.
117
+ * @param promise - A Promise resolving to the response value.
118
+ * @param ctx - Optional NatsContext object.
119
+ */
120
+ static async handleRequest(promise, ctx) {
121
+ return TakeNTradeRpcCore.fromPromiseV2(promise, ctx);
122
+ }
123
+ /**
124
+ * Handles errors from an RPC request handler and returns a TakeNTradeRPCError.
125
+ * @param err - Error to be handled.
126
+ * @param ctx - A NATS Context.
127
+ */
128
+ static handleRequestError(err, ctx) {
129
+ return TakeNTradeRpcCore.toRpcError(err, ctx);
133
130
  }
134
131
  }
135
132
  exports.TakeNTradeRpcV2 = TakeNTradeRpcV2;