@wipperoz/wipperoz-core 1.0.11 → 1.0.13
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/dist/billing/index.d.ts +1 -0
- package/dist/billing/index.d.ts.map +1 -1
- package/dist/billing/index.js +1 -0
- package/dist/billing/index.js.map +1 -1
- package/dist/billing/interfaces/accountCreditManager/depositMetadata.interface.d.ts +7 -0
- package/dist/billing/interfaces/accountCreditManager/depositMetadata.interface.d.ts.map +1 -1
- package/dist/billing/interfaces/accountCreditManager/index.d.ts +10 -10
- package/dist/billing/interfaces/accountCreditManager/index.d.ts.map +1 -1
- package/dist/billing/interfaces/accountCreditManager/index.js +10 -10
- package/dist/billing/interfaces/accountCreditManager/index.js.map +1 -1
- package/dist/billing/interfaces/billing/billingConfig.interface.d.ts +6 -0
- package/dist/billing/interfaces/billing/billingConfig.interface.d.ts.map +1 -1
- package/dist/billing/interfaces/billing/billingConfig.interface.js +5 -0
- package/dist/billing/interfaces/billing/billingConfig.interface.js.map +1 -1
- package/dist/billing/interfaces/billing/creditOptionDisplay.interface.d.ts +7 -0
- package/dist/billing/interfaces/billing/creditOptionDisplay.interface.d.ts.map +1 -1
- package/dist/billing/interfaces/billing/index.d.ts +5 -0
- package/dist/billing/interfaces/billing/index.d.ts.map +1 -0
- package/dist/billing/interfaces/billing/index.js +8 -0
- package/dist/billing/interfaces/billing/index.js.map +1 -0
- package/dist/billing/interfaces/billing/topUpIntentResult.interface.d.ts +10 -0
- package/dist/billing/interfaces/billing/topUpIntentResult.interface.d.ts.map +1 -0
- package/dist/billing/interfaces/billing/topUpIntentResult.interface.js +3 -0
- package/dist/billing/interfaces/billing/topUpIntentResult.interface.js.map +1 -0
- package/dist/billing/interfaces/costCalculator/index.d.ts +2 -0
- package/dist/billing/interfaces/costCalculator/index.d.ts.map +1 -0
- package/dist/billing/interfaces/costCalculator/index.js +5 -0
- package/dist/billing/interfaces/costCalculator/index.js.map +1 -0
- package/dist/billing/interfaces/index.d.ts +5 -0
- package/dist/billing/interfaces/index.d.ts.map +1 -0
- package/dist/billing/interfaces/index.js +8 -0
- package/dist/billing/interfaces/index.js.map +1 -0
- package/dist/billing/services/accountCreditManager.service.d.ts +9 -0
- package/dist/billing/services/accountCreditManager.service.d.ts.map +1 -1
- package/dist/billing/services/accountCreditManager.service.js +135 -13
- package/dist/billing/services/accountCreditManager.service.js.map +1 -1
- package/dist/billing/services/billingConfig.service.d.ts +6 -0
- package/dist/billing/services/billingConfig.service.d.ts.map +1 -1
- package/dist/billing/services/billingConfig.service.js +45 -0
- package/dist/billing/services/billingConfig.service.js.map +1 -1
- package/dist/billing/services/costCalculator.service.d.ts +1 -1
- package/dist/billing/services/costCalculator.service.d.ts.map +1 -1
- package/dist/billing/services/costCalculator.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/sendWebSocketNotification.d.ts +26 -0
- package/dist/utils/sendWebSocketNotification.d.ts.map +1 -0
- package/dist/utils/sendWebSocketNotification.js +75 -0
- package/dist/utils/sendWebSocketNotification.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { JsonValue } from '@wipperoz/common-utils';
|
|
2
|
+
import { JSONObject } from '@wipperoz/common-utils/dist/lib/utils';
|
|
3
|
+
import { NotificationCategoryEnum, NotificationPriorityEnum, NotificationSeverityEnum } from '@wipperoz/common-entities/dist/src/enums';
|
|
4
|
+
type MetadataLeaf = string | number | boolean | null | Date;
|
|
5
|
+
type NotificationMetadata = Record<string, MetadataLeaf | JsonValue | JSONObject | MetadataLeaf[] | JsonValue[] | JSONObject[] | Record<string, MetadataLeaf | JsonValue | JSONObject>>;
|
|
6
|
+
export interface BellNotificationPayload {
|
|
7
|
+
userId: string;
|
|
8
|
+
id: string;
|
|
9
|
+
title: string;
|
|
10
|
+
message: string;
|
|
11
|
+
category?: NotificationCategoryEnum;
|
|
12
|
+
priority?: NotificationPriorityEnum;
|
|
13
|
+
severity?: NotificationSeverityEnum;
|
|
14
|
+
metadata?: NotificationMetadata;
|
|
15
|
+
read?: boolean;
|
|
16
|
+
dismissible?: boolean;
|
|
17
|
+
autoClose?: boolean;
|
|
18
|
+
channels?: Partial<Record<'websocket' | 'email' | 'push', boolean>>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Send a generic bell notification (Notification Center).
|
|
22
|
+
* This creates a persistent notification in the user's notification center.
|
|
23
|
+
*/
|
|
24
|
+
export declare function sendBellNotification(notification: BellNotificationPayload): Promise<void>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=sendWebSocketNotification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendWebSocketNotification.d.ts","sourceRoot":"","sources":["../../src/utils/sendWebSocketNotification.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,uCAAuC,CAAC;AACjE,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,0CAA0C,CAAC;AAElD,KAAK,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5D,KAAK,oBAAoB,GAAG,MAAM,CAChC,MAAM,EACJ,YAAY,GACZ,SAAS,GACT,UAAU,GACV,YAAY,EAAE,GACd,SAAS,EAAE,GACX,UAAU,EAAE,GACZ,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC,CACxD,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACrE;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,YAAY,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsE/F"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendBellNotification = sendBellNotification;
|
|
4
|
+
const client_sns_1 = require("@aws-sdk/client-sns");
|
|
5
|
+
const enums_1 = require("@wipperoz/common-entities/dist/src/enums");
|
|
6
|
+
/**
|
|
7
|
+
* Send a generic bell notification (Notification Center).
|
|
8
|
+
* This creates a persistent notification in the user's notification center.
|
|
9
|
+
*/
|
|
10
|
+
async function sendBellNotification(notification) {
|
|
11
|
+
const snsTopicArn = process.env.WEBSOCKET_SNS_TOPIC_ARN;
|
|
12
|
+
if (!snsTopicArn) {
|
|
13
|
+
console.warn('[sendBellNotification] WEBSOCKET_SNS_TOPIC_ARN not configured, skipping bell notification');
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const snsClient = new client_sns_1.SNSClient({
|
|
17
|
+
region: process.env.AWS_REGION ?? 'us-east-1',
|
|
18
|
+
});
|
|
19
|
+
const channels = {
|
|
20
|
+
websocket: notification.channels?.websocket ?? true,
|
|
21
|
+
email: notification.channels?.email ?? false,
|
|
22
|
+
push: notification.channels?.push ?? false,
|
|
23
|
+
};
|
|
24
|
+
if (!channels.websocket && !channels.email && !channels.push) {
|
|
25
|
+
console.warn('[sendBellNotification] At least one channel must be enabled, skipping bell notification');
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const bellNotification = {
|
|
29
|
+
type: 'NOTIFICATION',
|
|
30
|
+
userId: notification.userId,
|
|
31
|
+
timestamp: Date.now(),
|
|
32
|
+
channels,
|
|
33
|
+
data: {
|
|
34
|
+
title: notification.title,
|
|
35
|
+
message: notification.message,
|
|
36
|
+
category: notification.category ?? enums_1.NotificationCategoryEnum.GENERAL,
|
|
37
|
+
priority: notification.priority ?? enums_1.NotificationPriorityEnum.MEDIUM,
|
|
38
|
+
severity: notification.severity ?? enums_1.NotificationSeverityEnum.INFO,
|
|
39
|
+
read: notification.read ?? false,
|
|
40
|
+
dismissible: notification.dismissible ?? true,
|
|
41
|
+
autoClose: notification.autoClose ?? false,
|
|
42
|
+
metadata: {
|
|
43
|
+
id: notification.id,
|
|
44
|
+
...(notification.metadata ?? {}),
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
try {
|
|
49
|
+
const command = new client_sns_1.PublishCommand({
|
|
50
|
+
TopicArn: snsTopicArn,
|
|
51
|
+
Message: JSON.stringify(bellNotification),
|
|
52
|
+
MessageAttributes: {
|
|
53
|
+
messageType: {
|
|
54
|
+
DataType: 'String',
|
|
55
|
+
StringValue: 'NOTIFICATION',
|
|
56
|
+
},
|
|
57
|
+
userId: {
|
|
58
|
+
DataType: 'String',
|
|
59
|
+
StringValue: notification.userId,
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
await snsClient.send(command);
|
|
64
|
+
console.log('[sendBellNotification] Bell notification sent:', {
|
|
65
|
+
userId: notification.userId,
|
|
66
|
+
id: notification.id,
|
|
67
|
+
title: notification.title,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
console.error('[sendBellNotification] Failed to send notification:', error);
|
|
72
|
+
// Don't throw - notification failures shouldn't break the main flow
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=sendWebSocketNotification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendWebSocketNotification.js","sourceRoot":"","sources":["../../src/utils/sendWebSocketNotification.ts"],"names":[],"mappings":";;AAyCA,oDAsEC;AA/GD,oDAA8D;AAG9D,oEAIkD;AA8BlD;;;GAGG;AACI,KAAK,UAAU,oBAAoB,CAAC,YAAqC;IAC9E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;IAExD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,2FAA2F,CAAC,CAAC;QAC1G,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,sBAAS,CAAC;QAC9B,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,WAAW;KAC9C,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG;QACf,SAAS,EAAE,YAAY,CAAC,QAAQ,EAAE,SAAS,IAAI,IAAI;QACnD,KAAK,EAAE,YAAY,CAAC,QAAQ,EAAE,KAAK,IAAI,KAAK;QAC5C,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,IAAI,IAAI,KAAK;KAC3C,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;QACxG,OAAO;IACT,CAAC;IAED,MAAM,gBAAgB,GAAG;QACvB,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,QAAQ;QACR,IAAI,EAAE;YACJ,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,gCAAwB,CAAC,OAAO;YACnE,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,gCAAwB,CAAC,MAAM;YAClE,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,gCAAwB,CAAC,IAAI;YAChE,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,KAAK;YAChC,WAAW,EAAE,YAAY,CAAC,WAAW,IAAI,IAAI;YAC7C,SAAS,EAAE,YAAY,CAAC,SAAS,IAAI,KAAK;YAC1C,QAAQ,EAAE;gBACR,EAAE,EAAE,YAAY,CAAC,EAAE;gBACnB,GAAG,CAAC,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC;aACjC;SACF;KACF,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,2BAAc,CAAC;YACjC,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;YACzC,iBAAiB,EAAE;gBACjB,WAAW,EAAE;oBACX,QAAQ,EAAE,QAAQ;oBAClB,WAAW,EAAE,cAAc;iBAC5B;gBACD,MAAM,EAAE;oBACN,QAAQ,EAAE,QAAQ;oBAClB,WAAW,EAAE,YAAY,CAAC,MAAM;iBACjC;aACF;SACF,CAAC,CAAC;QAEH,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,gDAAgD,EAAE;YAC5D,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,EAAE,EAAE,YAAY,CAAC,EAAE;YACnB,KAAK,EAAE,YAAY,CAAC,KAAK;SAC1B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qDAAqD,EAAE,KAAK,CAAC,CAAC;QAC5E,oEAAoE;IACtE,CAAC;AACH,CAAC"}
|