@resolveio/server-lib 22.2.1 → 22.2.3

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 (35) hide show
  1. package/collections/customer-notification.collection.d.ts +3 -0
  2. package/collections/customer-notification.collection.js +130 -0
  3. package/collections/customer-notification.collection.js.map +1 -0
  4. package/managers/local-log.manager.js +1 -2
  5. package/managers/local-log.manager.js.map +1 -1
  6. package/managers/method.manager.js +3 -2
  7. package/managers/method.manager.js.map +1 -1
  8. package/managers/mongo.manager.js +18 -36
  9. package/managers/mongo.manager.js.map +1 -1
  10. package/managers/monitor.manager.js +4 -8
  11. package/managers/monitor.manager.js.map +1 -1
  12. package/managers/subscription.manager.js +2 -0
  13. package/managers/subscription.manager.js.map +1 -1
  14. package/methods/customer-notifications.d.ts +2 -0
  15. package/methods/customer-notifications.js +460 -0
  16. package/methods/customer-notifications.js.map +1 -0
  17. package/methods/logs.js +2 -4
  18. package/methods/logs.js.map +1 -1
  19. package/methods.ts +12 -0
  20. package/models/customer-notification.model.d.ts +26 -0
  21. package/models/customer-notification.model.js +4 -0
  22. package/models/customer-notification.model.js.map +1 -0
  23. package/package.json +1 -1
  24. package/public_api.d.ts +2 -0
  25. package/public_api.js +2 -0
  26. package/public_api.js.map +1 -1
  27. package/publications/customer-notifications.d.ts +2 -0
  28. package/publications/customer-notifications.js +161 -0
  29. package/publications/customer-notifications.js.map +1 -0
  30. package/publications.ts +6 -0
  31. package/resolveio-server-app.d.ts +4 -0
  32. package/resolveio-server-app.js +38 -0
  33. package/resolveio-server-app.js.map +1 -1
  34. package/server-app.js +2 -4
  35. package/server-app.js.map +1 -1
@@ -0,0 +1,3 @@
1
+ import { MongoManagerCollection } from '../managers/mongo.manager';
2
+ import { CustomerNotificationModel } from '../models/customer-notification.model';
3
+ export declare let CustomerNotifications: MongoManagerCollection<CustomerNotificationModel>;
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CustomerNotifications = void 0;
4
+ var mongo_manager_1 = require("../managers/mongo.manager");
5
+ var resolveio_server_app_1 = require("../resolveio-server-app");
6
+ var schema = {
7
+ _id: {
8
+ type: String,
9
+ optional: true
10
+ },
11
+ __v: {
12
+ type: Number,
13
+ optional: true
14
+ },
15
+ updatedAt: {
16
+ type: Date,
17
+ optional: true
18
+ },
19
+ createdAt: {
20
+ type: Date,
21
+ optional: true
22
+ },
23
+ id_user: {
24
+ type: String
25
+ },
26
+ id_client: {
27
+ type: String,
28
+ optional: true
29
+ },
30
+ client_name: {
31
+ type: String,
32
+ optional: true
33
+ },
34
+ title: {
35
+ type: String
36
+ },
37
+ message: {
38
+ type: String
39
+ },
40
+ details: {
41
+ type: String,
42
+ optional: true
43
+ },
44
+ category: {
45
+ type: String,
46
+ optional: true
47
+ },
48
+ severity: {
49
+ type: String,
50
+ optional: true
51
+ },
52
+ status: {
53
+ type: String,
54
+ allowedValues: ['unread', 'read']
55
+ },
56
+ read_at: {
57
+ type: Date,
58
+ optional: true
59
+ },
60
+ read_by: {
61
+ type: String,
62
+ optional: true
63
+ },
64
+ source: {
65
+ type: String,
66
+ optional: true
67
+ },
68
+ source_id: {
69
+ type: String,
70
+ optional: true
71
+ },
72
+ action_label: {
73
+ type: String,
74
+ optional: true
75
+ },
76
+ action_route: {
77
+ type: String,
78
+ optional: true
79
+ },
80
+ dedupe_key: {
81
+ type: String,
82
+ optional: true
83
+ },
84
+ metadata: {
85
+ type: Object,
86
+ optional: true,
87
+ blackbox: true
88
+ },
89
+ expires_at: {
90
+ type: Date,
91
+ optional: true
92
+ },
93
+ created_by: {
94
+ type: String,
95
+ optional: true
96
+ },
97
+ created_by_name: {
98
+ type: String,
99
+ optional: true
100
+ }
101
+ };
102
+ exports.CustomerNotifications = null;
103
+ initializeCollection();
104
+ function initializeCollection() {
105
+ if (resolveio_server_app_1.ResolveIOServer && resolveio_server_app_1.ResolveIOServer.getMainDB() && mongo_manager_1.MongoManagerModel) {
106
+ var model = mongo_manager_1.MongoManagerModel.create({
107
+ collectionName: 'customer-notifications',
108
+ schema: schema,
109
+ useVersionCollection: false,
110
+ useReportBuilder: false,
111
+ reportBuilderLookupTables: [],
112
+ timestamps: true,
113
+ createLogs: false,
114
+ checkSchema: true,
115
+ collectionOptions: null
116
+ });
117
+ exports.CustomerNotifications = model.collection_main;
118
+ exports.CustomerNotifications.createIndex({ id_user: 1, status: 1, createdAt: -1 });
119
+ exports.CustomerNotifications.createIndex({ id_client: 1, createdAt: -1 });
120
+ exports.CustomerNotifications.createIndex({ dedupe_key: 1, id_user: 1, createdAt: -1 });
121
+ exports.CustomerNotifications.createIndex({ expires_at: 1 }, { expireAfterSeconds: 0 });
122
+ }
123
+ else {
124
+ setImmediate(function () {
125
+ initializeCollection();
126
+ });
127
+ }
128
+ }
129
+
130
+ //# sourceMappingURL=customer-notification.collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/collections/customer-notification.collection.ts"],"names":[],"mappings":"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","file":"customer-notification.collection.js","sourcesContent":["import { MongoManagerCollection, MongoManagerModel } from '../managers/mongo.manager';\nimport { CustomerNotificationModel } from '../models/customer-notification.model';\nimport { ResolveIOServer } from '../resolveio-server-app';\n\nlet schema: any = {\n\t_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\t__v: {\n\t\ttype: Number,\n\t\toptional: true\n\t},\n\tupdatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreatedAt: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tid_user: {\n\t\ttype: String\n\t},\n\tid_client: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tclient_name: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\ttitle: {\n\t\ttype: String\n\t},\n\tmessage: {\n\t\ttype: String\n\t},\n\tdetails: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tcategory: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tseverity: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tstatus: {\n\t\ttype: String,\n\t\tallowedValues: ['unread', 'read']\n\t},\n\tread_at: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tread_by: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tsource: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tsource_id: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\taction_label: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\taction_route: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tdedupe_key: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tmetadata: {\n\t\ttype: Object,\n\t\toptional: true,\n\t\tblackbox: true\n\t},\n\texpires_at: {\n\t\ttype: Date,\n\t\toptional: true\n\t},\n\tcreated_by: {\n\t\ttype: String,\n\t\toptional: true\n\t},\n\tcreated_by_name: {\n\t\ttype: String,\n\t\toptional: true\n\t}\n};\n\nexport let CustomerNotifications: MongoManagerCollection<CustomerNotificationModel> = null;\n\ninitializeCollection();\n\nfunction initializeCollection() {\n\tif (ResolveIOServer && ResolveIOServer.getMainDB() && MongoManagerModel) {\n\t\tconst model = MongoManagerModel.create<CustomerNotificationModel>({\n\t\t\tcollectionName: 'customer-notifications',\n\t\t\tschema: schema,\n\t\t\tuseVersionCollection: false,\n\t\t\tuseReportBuilder: false,\n\t\t\treportBuilderLookupTables: [],\n\t\t\ttimestamps: true,\n\t\t\tcreateLogs: false,\n\t\t\tcheckSchema: true,\n\t\t\tcollectionOptions: null\n\t\t});\n\n\t\tCustomerNotifications = model.collection_main;\n\t\tCustomerNotifications.createIndex({id_user: 1, status: 1, createdAt: -1});\n\t\tCustomerNotifications.createIndex({id_client: 1, createdAt: -1});\n\t\tCustomerNotifications.createIndex({dedupe_key: 1, id_user: 1, createdAt: -1});\n\t\tCustomerNotifications.createIndex({expires_at: 1}, {expireAfterSeconds: 0});\n\t}\n\telse {\n\t\tsetImmediate(() => {\n\t\t\tinitializeCollection();\n\t\t});\n\t}\n}\n"]}
@@ -17,8 +17,7 @@ var LocalLogManager = /** @class */ (function () {
17
17
  };
18
18
  LocalLogManager.prototype.initialize = function () {
19
19
  var logDir = resolveLocalLogDir();
20
- if (resolveio_server_app_1.ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'https://resolveio.com'
21
- && resolveio_server_app_1.ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200') {
20
+ if (resolveio_server_app_1.ResolveIOServer.shouldWriteLogsOffline()) {
22
21
  if (!fs.existsSync(logDir)) {
23
22
  fs.mkdirSync(logDir, { recursive: true });
24
23
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/managers/local-log.manager.ts"],"names":[],"mappings":"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","file":"local-log.manager.js","sourcesContent":["/***************\nlocal-logs.manager.ts\n****************/\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { ResolveIOServer } from '../resolveio-server-app';\n\nexport type LocalLogType = 'monitor-mongo' \n\t| 'monitor-memory'\n\t| 'monitor-cpu'\n\t| 'monitor-function'\n\t| 'log'\n\t| 'log-subscription'\n\t| 'log-method-latency';\n\nexport interface LocalLogModel {\n\ttype: LocalLogType;\n\tdata: any;\n\tinstance_index?: string;\n}\n\nexport class LocalLogManager {\n\tprivate _logFilePath: string;\n\n\tconstructor() {}\n\n\tstatic create() {\n\t\tconst localLogManager = new LocalLogManager();\n\t\tlocalLogManager.initialize();\n\t\treturn localLogManager;\n\t}\n\n\tprivate initialize() {\n\t\tconst logDir = resolveLocalLogDir();\n\t\tif (\n\t\t\tResolveIOServer.getServerConfig()['ROOT_URL'] !== 'https://resolveio.com'\n\t\t\t&& ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200'\n\t\t) {\n\t\t\tif (!fs.existsSync(logDir)) {\n\t\t\t\tfs.mkdirSync(logDir, { recursive: true });\n\t\t\t}\n\t\t}\n\t\t\n\t\tthis._logFilePath = path.join(logDir, 'local-logs.jsonl');\n\t}\n\n\t// Internal method to append a JSON line to the file\n\tpublic writeLog(logEntry: LocalLogModel): void {\n\t\ttry {\n\t\t\tlogEntry.instance_index = process.env.NODE_APP_INSTANCE || '';\n\n\t\t\tlet log = JSON.stringify(logEntry) + '\\n';\n\t\t\tfs.appendFileSync(this._logFilePath, log, { encoding: 'utf8' });\n\t\t}\n\t\tcatch(err) {\n\t\t\t// If there's an error writing logs, you might want to handle it or queue it\n\t\t\tconsole.error(new Date(), 'LocalLogManager', 'Failed to write log to file:', err);\n\t\t}\n\t}\n\n\tpublic writeLogs(logEntries: LocalLogModel[]): void {\n\t\tif (!logEntries || logEntries.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\t// Convert each item to a JSON string, add newline\n\t\t\tlet logs = logEntries.map(logEntry => {\n\t\t\t\tlogEntry.instance_index = process.env.NODE_APP_INSTANCE || '';\n\t\t\t\treturn JSON.stringify(logEntry);\n\t\t\t}).join('\\n') + '\\n';\n\t\t\tfs.appendFileSync(this._logFilePath, logs, { encoding: 'utf8' });\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.error(new Date(), 'LocalLogManager', 'Failed to write logs batch:', err);\n\t\t}\n\t}\n\n\t/**\n\t * Reads all logs from disk, then empties the file.\n\t */\n\tpublic offloadLogs(): any[] {\n\t\tlet result = [];\n\n\t\ttry {\n\t\t\tif (!fs.existsSync(this._logFilePath)) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tlet fileData = fs.readFileSync(this._logFilePath, 'utf8');\n\t\t\tif (fileData.trim().length === 0) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tresult = fileData.split('\\n').filter(l => l.trim() !== '');\n\n\t\t\t// Truncate the file so we don't send logs more than once\n\t\t\tfs.writeFileSync(this._logFilePath, '');\n\t\t}\n\t\tcatch(err) {\n\t\t\tconsole.error(new Date(), 'LocalLogManager', 'Failed to offload logs:', err);\n\t\t}\n\n\t\treturn result;\n\t}\n}\n\nfunction resolveLocalLogDir(): string {\n\tconst overrideDir = String(process.env.RESOLVEIO_LOCAL_LOG_DIR || '').trim();\n\tif (overrideDir) {\n\t\treturn overrideDir;\n\t}\n\treturn '/home/ubuntu/resolveio/logs';\n}\n"]}
1
+ {"version":3,"sources":["../../src/managers/local-log.manager.ts"],"names":[],"mappings":"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","file":"local-log.manager.js","sourcesContent":["/***************\nlocal-logs.manager.ts\n****************/\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { ResolveIOServer } from '../resolveio-server-app';\n\nexport type LocalLogType = 'monitor-mongo' \n\t| 'monitor-memory'\n\t| 'monitor-cpu'\n\t| 'monitor-function'\n\t| 'log'\n\t| 'log-subscription'\n\t| 'log-method-latency';\n\nexport interface LocalLogModel {\n\ttype: LocalLogType;\n\tdata: any;\n\tinstance_index?: string;\n}\n\nexport class LocalLogManager {\n\tprivate _logFilePath: string;\n\n\tconstructor() {}\n\n\tstatic create() {\n\t\tconst localLogManager = new LocalLogManager();\n\t\tlocalLogManager.initialize();\n\t\treturn localLogManager;\n\t}\n\n\tprivate initialize() {\n\t\tconst logDir = resolveLocalLogDir();\n\t\tif (\n\t\t\tResolveIOServer.shouldWriteLogsOffline()\n\t\t) {\n\t\t\tif (!fs.existsSync(logDir)) {\n\t\t\t\tfs.mkdirSync(logDir, { recursive: true });\n\t\t\t}\n\t\t}\n\t\t\n\t\tthis._logFilePath = path.join(logDir, 'local-logs.jsonl');\n\t}\n\n\t// Internal method to append a JSON line to the file\n\tpublic writeLog(logEntry: LocalLogModel): void {\n\t\ttry {\n\t\t\tlogEntry.instance_index = process.env.NODE_APP_INSTANCE || '';\n\n\t\t\tlet log = JSON.stringify(logEntry) + '\\n';\n\t\t\tfs.appendFileSync(this._logFilePath, log, { encoding: 'utf8' });\n\t\t}\n\t\tcatch(err) {\n\t\t\t// If there's an error writing logs, you might want to handle it or queue it\n\t\t\tconsole.error(new Date(), 'LocalLogManager', 'Failed to write log to file:', err);\n\t\t}\n\t}\n\n\tpublic writeLogs(logEntries: LocalLogModel[]): void {\n\t\tif (!logEntries || logEntries.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\t// Convert each item to a JSON string, add newline\n\t\t\tlet logs = logEntries.map(logEntry => {\n\t\t\t\tlogEntry.instance_index = process.env.NODE_APP_INSTANCE || '';\n\t\t\t\treturn JSON.stringify(logEntry);\n\t\t\t}).join('\\n') + '\\n';\n\t\t\tfs.appendFileSync(this._logFilePath, logs, { encoding: 'utf8' });\n\t\t}\n\t\tcatch (err) {\n\t\t\tconsole.error(new Date(), 'LocalLogManager', 'Failed to write logs batch:', err);\n\t\t}\n\t}\n\n\t/**\n\t * Reads all logs from disk, then empties the file.\n\t */\n\tpublic offloadLogs(): any[] {\n\t\tlet result = [];\n\n\t\ttry {\n\t\t\tif (!fs.existsSync(this._logFilePath)) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tlet fileData = fs.readFileSync(this._logFilePath, 'utf8');\n\t\t\tif (fileData.trim().length === 0) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tresult = fileData.split('\\n').filter(l => l.trim() !== '');\n\n\t\t\t// Truncate the file so we don't send logs more than once\n\t\t\tfs.writeFileSync(this._logFilePath, '');\n\t\t}\n\t\tcatch(err) {\n\t\t\tconsole.error(new Date(), 'LocalLogManager', 'Failed to offload logs:', err);\n\t\t}\n\n\t\treturn result;\n\t}\n}\n\nfunction resolveLocalLogDir(): string {\n\tconst overrideDir = String(process.env.RESOLVEIO_LOCAL_LOG_DIR || '').trim();\n\tif (overrideDir) {\n\t\treturn overrideDir;\n\t}\n\treturn '/home/ubuntu/resolveio/logs';\n}\n"]}
@@ -100,6 +100,7 @@ var accounts_1 = require("../methods/accounts");
100
100
  var aws_1 = require("../methods/aws");
101
101
  var ai_terminal_1 = require("../methods/ai-terminal");
102
102
  var collections_1 = require("../methods/collections");
103
+ var customer_notifications_1 = require("../methods/customer-notifications");
103
104
  var counters_1 = require("../methods/counters");
104
105
  var cron_jobs_2 = require("../methods/cron-jobs");
105
106
  var flag_updates_1 = require("../methods/flag-updates");
@@ -346,6 +347,7 @@ var MethodManager = /** @class */ (function () {
346
347
  (0, aws_1.loadAWSMethods)(this);
347
348
  (0, ai_terminal_1.loadAiTerminalMethods)(this);
348
349
  (0, collections_1.loadCollectionMethods)(this);
350
+ (0, customer_notifications_1.loadCustomerNotificationMethods)(this);
349
351
  (0, counters_1.loadCounterMethods)(this);
350
352
  (0, logs_1.loadLogMethods)(this);
351
353
  (0, pdf_1.loadPDFMethods)(this);
@@ -752,8 +754,7 @@ var MethodManager = /** @class */ (function () {
752
754
  methodName !== 'countWithQuery' &&
753
755
  methodName !== 'qbFetchRequests' &&
754
756
  methodName !== 'qbHandleResponse')) return [3 /*break*/, 6];
755
- if (!(resolveio_server_app_1.ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'https://resolveio.com'
756
- && resolveio_server_app_1.ResolveIOServer.getServerConfig()['ROOT_URL'] !== 'http://localhost:4200')) return [3 /*break*/, 3];
757
+ if (!resolveio_server_app_1.ResolveIOServer.shouldWriteLogsOffline()) return [3 /*break*/, 3];
757
758
  resolveio_server_app_1.ResolveIOServer.getLocalLogManager().writeLog({
758
759
  type: 'log',
759
760
  data: {