akeyless-server-commons 1.0.200 → 1.0.204
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/cjs/helpers/boards_helpers.js +1 -2
- package/dist/cjs/helpers/boards_helpers.js.map +1 -1
- package/dist/cjs/helpers/email_helpers.js +35 -35
- package/dist/cjs/helpers/email_helpers.js.map +1 -1
- package/dist/cjs/helpers/firebase_helpers.js +112 -107
- package/dist/cjs/helpers/firebase_helpers.js.map +1 -1
- package/dist/cjs/helpers/global_helpers.d.ts +1 -1
- package/dist/cjs/helpers/global_helpers.js +8 -19
- package/dist/cjs/helpers/global_helpers.js.map +1 -1
- package/dist/cjs/helpers/login_helpers.js +7 -16
- package/dist/cjs/helpers/login_helpers.js.map +1 -1
- package/dist/cjs/helpers/notification_helpers.js +36 -46
- package/dist/cjs/helpers/notification_helpers.js.map +1 -1
- package/dist/cjs/helpers/rabbitmq_helpers.d.ts +64 -0
- package/dist/cjs/helpers/rabbitmq_helpers.js +193 -0
- package/dist/cjs/helpers/rabbitmq_helpers.js.map +1 -0
- package/dist/cjs/helpers/redis/helpers.js +42 -52
- package/dist/cjs/helpers/redis/helpers.js.map +1 -1
- package/dist/cjs/helpers/redis/initialize.js +2 -1
- package/dist/cjs/helpers/redis/initialize.js.map +1 -1
- package/dist/cjs/helpers/redis/keys.js +3 -12
- package/dist/cjs/helpers/redis/keys.js.map +1 -1
- package/dist/cjs/helpers/redis/snapshot.js +38 -52
- package/dist/cjs/helpers/redis/snapshot.js.map +1 -1
- package/dist/cjs/helpers/start.js +26 -19
- package/dist/cjs/helpers/start.js.map +1 -1
- package/dist/cjs/helpers/tasks_helpers.js +20 -29
- package/dist/cjs/helpers/tasks_helpers.js.map +1 -1
- package/dist/cjs/helpers/time_helpers.js +12 -14
- package/dist/cjs/helpers/time_helpers.js.map +1 -1
- package/dist/cjs/index.js +17 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/managers/cache_manager.js +3 -3
- package/dist/cjs/managers/cache_manager.js.map +1 -1
- package/dist/cjs/managers/index.d.ts +1 -0
- package/dist/cjs/managers/index.js +1 -0
- package/dist/cjs/managers/index.js.map +1 -1
- package/dist/cjs/managers/logger_manager.js +2 -2
- package/dist/cjs/managers/logger_manager.js.map +1 -1
- package/dist/cjs/managers/rabbitmq_manager.d.ts +60 -0
- package/dist/cjs/managers/rabbitmq_manager.js +190 -0
- package/dist/cjs/managers/rabbitmq_manager.js.map +1 -0
- package/dist/cjs/managers/translation_manager.js +3 -3
- package/dist/cjs/managers/translation_manager.js.map +1 -1
- package/dist/cjs/middlewares/auth_mw.js +11 -20
- package/dist/cjs/middlewares/auth_mw.js.map +1 -1
- package/dist/cjs/middlewares/global_mw.js +9 -10
- package/dist/cjs/middlewares/global_mw.js.map +1 -1
- package/dist/cjs/types/interfaces/global.d.ts +1 -0
- package/dist/esm/helpers/boards_helpers.js +1 -2
- package/dist/esm/helpers/boards_helpers.js.map +1 -1
- package/dist/esm/helpers/email_helpers.js +18 -28
- package/dist/esm/helpers/email_helpers.js.map +1 -1
- package/dist/esm/helpers/firebase_helpers.js +112 -107
- package/dist/esm/helpers/firebase_helpers.js.map +1 -1
- package/dist/esm/helpers/global_helpers.d.ts +1 -1
- package/dist/esm/helpers/global_helpers.js +8 -19
- package/dist/esm/helpers/global_helpers.js.map +1 -1
- package/dist/esm/helpers/login_helpers.js +7 -16
- package/dist/esm/helpers/login_helpers.js.map +1 -1
- package/dist/esm/helpers/notification_helpers.js +36 -46
- package/dist/esm/helpers/notification_helpers.js.map +1 -1
- package/dist/esm/helpers/rabbitmq_helpers.d.ts +64 -0
- package/dist/esm/helpers/rabbitmq_helpers.js +186 -0
- package/dist/esm/helpers/rabbitmq_helpers.js.map +1 -0
- package/dist/esm/helpers/redis/helpers.js +42 -52
- package/dist/esm/helpers/redis/helpers.js.map +1 -1
- package/dist/esm/helpers/redis/initialize.js +2 -1
- package/dist/esm/helpers/redis/initialize.js.map +1 -1
- package/dist/esm/helpers/redis/keys.js +3 -12
- package/dist/esm/helpers/redis/keys.js.map +1 -1
- package/dist/esm/helpers/redis/snapshot.js +38 -52
- package/dist/esm/helpers/redis/snapshot.js.map +1 -1
- package/dist/esm/helpers/start.js +26 -19
- package/dist/esm/helpers/start.js.map +1 -1
- package/dist/esm/helpers/tasks_helpers.js +20 -29
- package/dist/esm/helpers/tasks_helpers.js.map +1 -1
- package/dist/esm/helpers/time_helpers.js +12 -14
- package/dist/esm/helpers/time_helpers.js.map +1 -1
- package/dist/esm/managers/cache_manager.js +3 -3
- package/dist/esm/managers/cache_manager.js.map +1 -1
- package/dist/esm/managers/index.d.ts +1 -0
- package/dist/esm/managers/index.js +1 -0
- package/dist/esm/managers/index.js.map +1 -1
- package/dist/esm/managers/logger_manager.js +2 -2
- package/dist/esm/managers/logger_manager.js.map +1 -1
- package/dist/esm/managers/rabbitmq_manager.d.ts +60 -0
- package/dist/esm/managers/rabbitmq_manager.js +183 -0
- package/dist/esm/managers/rabbitmq_manager.js.map +1 -0
- package/dist/esm/managers/translation_manager.js +3 -3
- package/dist/esm/managers/translation_manager.js.map +1 -1
- package/dist/esm/middlewares/auth_mw.js +11 -20
- package/dist/esm/middlewares/auth_mw.js.map +1 -1
- package/dist/esm/middlewares/global_mw.js +9 -10
- package/dist/esm/middlewares/global_mw.js.map +1 -1
- package/dist/esm/types/interfaces/global.d.ts +1 -0
- package/dist/helpers/boards_helpers.js +62 -0
- package/dist/helpers/email_helpers.js +153 -0
- package/dist/helpers/firebase_helpers.js +601 -0
- package/dist/helpers/global_helpers.js +147 -0
- package/dist/helpers/index.js +12 -0
- package/dist/helpers/location_helpers.js +15 -0
- package/dist/helpers/login_helpers.js +18 -0
- package/dist/helpers/notification_helpers.js +248 -0
- package/dist/helpers/phone_number_helpers.js +96 -0
- package/dist/helpers/redis/helpers.js +215 -0
- package/dist/helpers/redis/index.js +4 -0
- package/dist/helpers/redis/initialize.js +139 -0
- package/dist/helpers/redis/keys.js +23 -0
- package/dist/helpers/redis/snapshot.js +166 -0
- package/dist/helpers/start.js +83 -0
- package/dist/helpers/tasks_helpers.js +139 -0
- package/dist/helpers/time_helpers.js +167 -0
- package/dist/index.js +5 -0
- package/dist/managers/cache_manager.js +37 -0
- package/dist/managers/index.js +4 -0
- package/dist/managers/logger_manager.js +68 -0
- package/dist/managers/rabbitmq_manager.js +179 -0
- package/dist/managers/translation_manager.js +38 -0
- package/dist/middlewares/auth_mw.js +50 -0
- package/dist/middlewares/error_handling.js +20 -0
- package/dist/middlewares/global_mw.js +119 -0
- package/dist/middlewares/index.js +4 -0
- package/dist/middlewares/trim_mw.js +7 -0
- package/dist/test.js +1 -0
- package/dist/types/enums/global.js +8 -0
- package/dist/types/enums/index.js +1 -0
- package/dist/types/helpers/boards_helpers.d.ts +10 -0
- package/dist/types/helpers/email_helpers.d.ts +12 -0
- package/dist/types/helpers/firebase_helpers.d.ts +56 -0
- package/dist/types/helpers/global_helpers.d.ts +16 -0
- package/dist/types/helpers/index.d.ts +12 -0
- package/dist/types/helpers/location_helpers.d.ts +3 -0
- package/dist/types/helpers/login_helpers.d.ts +4 -0
- package/dist/types/helpers/notification_helpers.d.ts +11 -0
- package/dist/types/helpers/phone_number_helpers.d.ts +19 -0
- package/dist/types/helpers/redis/helpers.d.ts +11 -0
- package/dist/types/helpers/redis/index.d.ts +4 -0
- package/dist/types/helpers/redis/initialize.d.ts +6 -0
- package/dist/types/helpers/redis/keys.d.ts +5 -0
- package/dist/types/helpers/redis/snapshot.d.ts +2 -0
- package/dist/types/helpers/start.d.ts +4 -0
- package/dist/types/helpers/tasks_helpers.d.ts +25 -0
- package/dist/types/helpers/time_helpers.d.ts +40 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.js +3 -0
- package/dist/types/interfaces/index.js +2 -0
- package/dist/types/managers/cache_manager.d.ts +12 -0
- package/dist/types/managers/index.d.ts +4 -0
- package/dist/types/managers/logger_manager.d.ts +14 -0
- package/dist/types/managers/rabbitmq_manager.d.ts +60 -0
- package/dist/types/managers/translation_manager.d.ts +14 -0
- package/dist/types/middlewares/auth_mw.d.ts +4 -0
- package/dist/types/middlewares/error_handling.d.ts +11 -0
- package/dist/types/middlewares/global_mw.d.ts +5 -0
- package/dist/types/middlewares/index.d.ts +4 -0
- package/dist/types/middlewares/trim_mw.d.ts +2 -0
- package/dist/types/test.d.ts +0 -0
- package/dist/types/types/enums/global.d.ts +9 -0
- package/dist/types/types/enums/index.d.ts +1 -0
- package/dist/types/types/firebase_types.js +1 -0
- package/dist/types/types/global.js +1 -0
- package/dist/types/types/index.d.ts +3 -0
- package/dist/types/types/index.js +2 -0
- package/dist/types/types/interfaces/email.d.ts +33 -0
- package/dist/types/types/interfaces/global.d.ts +27 -0
- package/dist/types/types/interfaces/index.d.ts +2 -0
- package/dist/types/types/types/firebase_types.d.ts +50 -0
- package/dist/types/types/types/global.d.ts +17 -0
- package/dist/types/types/types/index.d.ts +2 -0
- package/package.json +5 -2
- package/dist/cjs/helpers/tasks.d.ts +0 -12
- package/dist/cjs/helpers/tasks.js +0 -62
- package/dist/cjs/helpers/tasks.js.map +0 -1
- package/dist/cjs/managers/cacche_manager2.d.ts +0 -18
- package/dist/cjs/managers/cacche_manager2.js +0 -41
- package/dist/cjs/managers/cacche_manager2.js.map +0 -1
- package/dist/cjs/managers/socket_manager.js +0 -245
- package/dist/cjs/managers/socket_manager.js.map +0 -1
- package/dist/esm/helpers/tasks.d.ts +0 -12
- package/dist/esm/helpers/tasks.js +0 -58
- package/dist/esm/helpers/tasks.js.map +0 -1
- package/dist/esm/managers/cacche_manager2.d.ts +0 -18
- package/dist/esm/managers/cacche_manager2.js +0 -37
- package/dist/esm/managers/cacche_manager2.js.map +0 -1
- package/dist/esm/managers/socket_manager.js +0 -243
- package/dist/esm/managers/socket_manager.js.map +0 -1
- /package/dist/{cjs/managers/socket_manager.d.ts → types/interfaces/email.js} +0 -0
- /package/dist/{esm/managers/socket_manager.d.ts → types/interfaces/global.js} +0 -0
|
@@ -1,18 +1,9 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import sendgrid from "@sendgrid/mail";
|
|
11
2
|
import { add_audit_record, get_document_by_id, ignore_ssl_request } from ".";
|
|
12
3
|
import { logger } from "../managers";
|
|
13
4
|
import * as fs from "fs";
|
|
14
5
|
import * as path from "path";
|
|
15
|
-
export const create_attachment_from_file =
|
|
6
|
+
export const create_attachment_from_file = async (file_path, filename, disposition = "attachment") => {
|
|
16
7
|
try {
|
|
17
8
|
const content = fs.readFileSync(file_path);
|
|
18
9
|
const base64_content = content.toString("base64");
|
|
@@ -28,7 +19,7 @@ export const create_attachment_from_file = (file_path_1, filename_1, ...args_1)
|
|
|
28
19
|
logger.error("error creating attachment from file", { error, file_path });
|
|
29
20
|
throw error;
|
|
30
21
|
}
|
|
31
|
-
}
|
|
22
|
+
};
|
|
32
23
|
export const create_attachment_from_buffer = (buffer, filename, mime_type, disposition = "attachment") => {
|
|
33
24
|
const buf = Buffer.isBuffer(buffer) ? buffer : Buffer.from(buffer);
|
|
34
25
|
return {
|
|
@@ -38,17 +29,16 @@ export const create_attachment_from_buffer = (buffer, filename, mime_type, dispo
|
|
|
38
29
|
disposition,
|
|
39
30
|
};
|
|
40
31
|
};
|
|
41
|
-
export const create_attachment_from_url = (url, filename) =>
|
|
42
|
-
var _a;
|
|
32
|
+
export const create_attachment_from_url = async (url, filename) => {
|
|
43
33
|
try {
|
|
44
|
-
const response =
|
|
34
|
+
const response = await ignore_ssl_request({
|
|
45
35
|
method: "GET",
|
|
46
36
|
url,
|
|
47
37
|
responseType: "arraybuffer",
|
|
48
38
|
timeout: 20000,
|
|
49
39
|
});
|
|
50
40
|
const buffer = Buffer.from(response.data);
|
|
51
|
-
const content_type =
|
|
41
|
+
const content_type = response.headers?.["content-type"] || "application/pdf";
|
|
52
42
|
return {
|
|
53
43
|
content: buffer.toString("base64"),
|
|
54
44
|
filename: filename,
|
|
@@ -60,7 +50,7 @@ export const create_attachment_from_url = (url, filename) => __awaiter(void 0, v
|
|
|
60
50
|
logger.error("error creating attachment from url", { error, url });
|
|
61
51
|
throw error;
|
|
62
52
|
}
|
|
63
|
-
}
|
|
53
|
+
};
|
|
64
54
|
const get_mime_type = (file_path) => {
|
|
65
55
|
const ext = path.extname(file_path).toLowerCase();
|
|
66
56
|
const mime_types = {
|
|
@@ -91,21 +81,21 @@ const get_mime_type = (file_path) => {
|
|
|
91
81
|
};
|
|
92
82
|
return mime_types[ext] || "application/octet-stream";
|
|
93
83
|
};
|
|
94
|
-
export const send_email = (email_data, options) =>
|
|
84
|
+
export const send_email = async (email_data, options) => {
|
|
95
85
|
try {
|
|
96
|
-
const emails_settings = (
|
|
86
|
+
const emails_settings = (await get_document_by_id("nx-settings", "emails"));
|
|
97
87
|
const { sendgrid_api_key, groups, default_from, default_cc } = emails_settings;
|
|
98
88
|
let { from, to, cc, group_name, body_html, body_plain_text, subject, entity_for_audit, attachments } = email_data;
|
|
99
89
|
const cc_array = cc ? (Array.isArray(cc) ? cc : [cc]) : [];
|
|
100
90
|
cc = [...cc_array, ...default_cc];
|
|
101
91
|
/// validate data
|
|
102
|
-
if (!
|
|
92
|
+
if (!to?.length && !group_name?.length) {
|
|
103
93
|
throw "must supply a 'group_name' or 'to' value ";
|
|
104
94
|
}
|
|
105
|
-
if (!
|
|
95
|
+
if (!body_html?.length && !body_plain_text?.length) {
|
|
106
96
|
throw "must supply a 'body_plain_text' or 'html' value ";
|
|
107
97
|
}
|
|
108
|
-
if (
|
|
98
|
+
if (to?.length && !group_name?.length) {
|
|
109
99
|
}
|
|
110
100
|
/// merge to and cc
|
|
111
101
|
if (group_name) {
|
|
@@ -140,25 +130,25 @@ export const send_email = (email_data, options) => __awaiter(void 0, void 0, voi
|
|
|
140
130
|
text: body_plain_text,
|
|
141
131
|
attachments: attachments,
|
|
142
132
|
};
|
|
143
|
-
if (!
|
|
133
|
+
if (!attachments?.length) {
|
|
144
134
|
delete msg.attachments;
|
|
145
135
|
}
|
|
146
136
|
/// send email
|
|
147
|
-
const email_result =
|
|
137
|
+
const email_result = await sendgrid.send(msg);
|
|
148
138
|
if (email_result[0].statusCode !== 202) {
|
|
149
139
|
throw email_result[0].body;
|
|
150
140
|
}
|
|
151
141
|
/// add audit
|
|
152
|
-
|
|
153
|
-
if (options
|
|
154
|
-
logger.log("email send successfully",
|
|
142
|
+
await add_audit_record("send_email", entity_for_audit, { ...email_data, ...msg });
|
|
143
|
+
if (options?.debug) {
|
|
144
|
+
logger.log("email send successfully", { ...email_data, ...msg });
|
|
155
145
|
}
|
|
156
146
|
}
|
|
157
147
|
catch (error) {
|
|
158
148
|
logger.error("error sending email", error);
|
|
159
|
-
if (options
|
|
149
|
+
if (options?.debug) {
|
|
160
150
|
logger.error("email payload", { message: JSON.stringify(email_data) });
|
|
161
151
|
}
|
|
162
152
|
}
|
|
163
|
-
}
|
|
153
|
+
};
|
|
164
154
|
//# sourceMappingURL=email_helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email_helpers.js","sourceRoot":"","sources":["../../../src/helpers/email_helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"email_helpers.js","sourceRoot":"","sources":["../../../src/helpers/email_helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { performance } from "perf_hooks";
|
|
11
2
|
import firebase_admin from "firebase-admin";
|
|
12
3
|
import { cache_manager, logger, translation_manager } from "../managers";
|
|
@@ -54,12 +45,15 @@ export const storage = firebase_admin.storage();
|
|
|
54
45
|
/// extract
|
|
55
46
|
export const simple_extract_data = (doc) => {
|
|
56
47
|
const doc_data = doc.data();
|
|
57
|
-
return
|
|
48
|
+
return {
|
|
49
|
+
...doc_data,
|
|
50
|
+
id: doc.id,
|
|
51
|
+
};
|
|
58
52
|
};
|
|
59
53
|
/// documents
|
|
60
|
-
export const get_all_documents = (collection_path) =>
|
|
54
|
+
export const get_all_documents = async (collection_path) => {
|
|
61
55
|
try {
|
|
62
|
-
const snapshot =
|
|
56
|
+
const snapshot = await db.collection(collection_path).get();
|
|
63
57
|
const documents = snapshot.docs.flatMap((doc) => {
|
|
64
58
|
return simple_extract_data(doc);
|
|
65
59
|
});
|
|
@@ -69,10 +63,10 @@ export const get_all_documents = (collection_path) => __awaiter(void 0, void 0,
|
|
|
69
63
|
logger.error("Error fetching documents:", error);
|
|
70
64
|
throw error;
|
|
71
65
|
}
|
|
72
|
-
}
|
|
73
|
-
export const query_documents = (collection_path, field_name, operator, value) =>
|
|
66
|
+
};
|
|
67
|
+
export const query_documents = async (collection_path, field_name, operator, value) => {
|
|
74
68
|
try {
|
|
75
|
-
const querySnapshot =
|
|
69
|
+
const querySnapshot = await db.collection(collection_path).where(field_name, operator, value).get();
|
|
76
70
|
const documentsData = querySnapshot.docs;
|
|
77
71
|
const documents = documentsData.flatMap((doc) => simple_extract_data(doc));
|
|
78
72
|
return documents;
|
|
@@ -81,14 +75,14 @@ export const query_documents = (collection_path, field_name, operator, value) =>
|
|
|
81
75
|
logger.error(`Error querying documents: ${collection_path} - ${field_name} - ${operator} - ${value} `, error);
|
|
82
76
|
throw error;
|
|
83
77
|
}
|
|
84
|
-
}
|
|
85
|
-
export const query_documents_by_conditions = (collection_path, where_conditions) =>
|
|
78
|
+
};
|
|
79
|
+
export const query_documents_by_conditions = async (collection_path, where_conditions) => {
|
|
86
80
|
try {
|
|
87
81
|
let query = db.collection(collection_path);
|
|
88
82
|
where_conditions.forEach((condition) => {
|
|
89
83
|
query = query.where(condition.field_name, condition.operator, condition.value);
|
|
90
84
|
});
|
|
91
|
-
const querySnapshot =
|
|
85
|
+
const querySnapshot = await query.get();
|
|
92
86
|
const documentsData = querySnapshot.docs;
|
|
93
87
|
const documents = documentsData.flatMap((doc) => simple_extract_data(doc));
|
|
94
88
|
return documents;
|
|
@@ -97,14 +91,14 @@ export const query_documents_by_conditions = (collection_path, where_conditions)
|
|
|
97
91
|
logger.error(`Error querying documents: ${collection_path} - ${JSON.stringify(where_conditions)} `, error);
|
|
98
92
|
throw error;
|
|
99
93
|
}
|
|
100
|
-
}
|
|
101
|
-
export const query_document_by_conditions =
|
|
94
|
+
};
|
|
95
|
+
export const query_document_by_conditions = async (collection_path, where_conditions, log = true) => {
|
|
102
96
|
try {
|
|
103
97
|
let query = db.collection(collection_path);
|
|
104
98
|
where_conditions.forEach((condition) => {
|
|
105
99
|
query = query.where(condition.field_name, condition.operator, condition.value);
|
|
106
100
|
});
|
|
107
|
-
const querySnapshot =
|
|
101
|
+
const querySnapshot = await query.get();
|
|
108
102
|
const documentsData = querySnapshot.docs;
|
|
109
103
|
const documents = documentsData.flatMap((doc) => simple_extract_data(doc));
|
|
110
104
|
if (!documents[0]) {
|
|
@@ -118,11 +112,11 @@ export const query_document_by_conditions = (collection_path_1, where_conditions
|
|
|
118
112
|
}
|
|
119
113
|
throw error;
|
|
120
114
|
}
|
|
121
|
-
}
|
|
115
|
+
};
|
|
122
116
|
/// document
|
|
123
|
-
export const query_document =
|
|
117
|
+
export const query_document = async (collection_path, field_name, operator, value, ignore_log = false) => {
|
|
124
118
|
try {
|
|
125
|
-
const querySnapshot =
|
|
119
|
+
const querySnapshot = await db.collection(collection_path).where(field_name, operator, value).get();
|
|
126
120
|
const documentsData = querySnapshot.docs;
|
|
127
121
|
const documents = documentsData.flatMap((doc) => simple_extract_data(doc));
|
|
128
122
|
const base_error = `collection: ${collection_path}, field_name: ${field_name}, operator: ${operator}, value:${value}`;
|
|
@@ -140,10 +134,10 @@ export const query_document = (collection_path_1, field_name_1, operator_1, valu
|
|
|
140
134
|
}
|
|
141
135
|
throw error;
|
|
142
136
|
}
|
|
143
|
-
}
|
|
144
|
-
export const query_document_optional =
|
|
137
|
+
};
|
|
138
|
+
export const query_document_optional = async (collection_path, field_name, operator, value, ignore_log = true) => {
|
|
145
139
|
try {
|
|
146
|
-
const querySnapshot =
|
|
140
|
+
const querySnapshot = await db.collection(collection_path).where(field_name, operator, value).get();
|
|
147
141
|
const documentsData = querySnapshot.docs;
|
|
148
142
|
const documents = documentsData.flatMap((doc) => simple_extract_data(doc));
|
|
149
143
|
return documents[0] || null;
|
|
@@ -154,11 +148,11 @@ export const query_document_optional = (collection_path_1, field_name_1, operato
|
|
|
154
148
|
}
|
|
155
149
|
return null;
|
|
156
150
|
}
|
|
157
|
-
}
|
|
158
|
-
export const get_document_by_id = (collection_path, doc_id) =>
|
|
151
|
+
};
|
|
152
|
+
export const get_document_by_id = async (collection_path, doc_id) => {
|
|
159
153
|
try {
|
|
160
154
|
const docRef = db.collection(collection_path).doc(doc_id);
|
|
161
|
-
const doc =
|
|
155
|
+
const doc = await docRef.get();
|
|
162
156
|
if (!doc.exists) {
|
|
163
157
|
throw "Document not found, document id: " + doc_id;
|
|
164
158
|
}
|
|
@@ -168,11 +162,11 @@ export const get_document_by_id = (collection_path, doc_id) => __awaiter(void 0,
|
|
|
168
162
|
logger.error("error from get_document_by_id", error);
|
|
169
163
|
throw error;
|
|
170
164
|
}
|
|
171
|
-
}
|
|
172
|
-
export const get_document_by_id_optional = (collection_path, doc_id) =>
|
|
165
|
+
};
|
|
166
|
+
export const get_document_by_id_optional = async (collection_path, doc_id) => {
|
|
173
167
|
try {
|
|
174
168
|
const docRef = db.collection(collection_path).doc(doc_id);
|
|
175
|
-
const doc =
|
|
169
|
+
const doc = await docRef.get();
|
|
176
170
|
if (!doc.exists) {
|
|
177
171
|
return null;
|
|
178
172
|
}
|
|
@@ -182,41 +176,41 @@ export const get_document_by_id_optional = (collection_path, doc_id) => __awaite
|
|
|
182
176
|
logger.error("error from get_document_by_id_optional", error);
|
|
183
177
|
return null;
|
|
184
178
|
}
|
|
185
|
-
}
|
|
186
|
-
export const set_document =
|
|
179
|
+
};
|
|
180
|
+
export const set_document = async (collection_path, doc_id, data, merge = true) => {
|
|
187
181
|
try {
|
|
188
|
-
|
|
182
|
+
await db
|
|
189
183
|
.collection(collection_path)
|
|
190
184
|
.doc(doc_id)
|
|
191
|
-
.set(
|
|
185
|
+
.set({ ...data }, { merge });
|
|
192
186
|
}
|
|
193
187
|
catch (error) {
|
|
194
188
|
logger.error(`failed to create document by id: ${doc_id} in collection: ${collection_path}`, error);
|
|
195
189
|
throw `failed to create document by id ${doc_id} in collection ${collection_path}`;
|
|
196
190
|
}
|
|
197
|
-
}
|
|
198
|
-
export const add_document =
|
|
191
|
+
};
|
|
192
|
+
export const add_document = async (collection_path, data, include_id = false, custom_id) => {
|
|
199
193
|
try {
|
|
200
194
|
const new_document = custom_id ? db.collection(collection_path).doc(custom_id) : db.collection(collection_path).doc();
|
|
201
|
-
const update = include_id ?
|
|
202
|
-
|
|
195
|
+
const update = include_id ? { ...data, id: new_document.id } : data;
|
|
196
|
+
await new_document.set(update);
|
|
203
197
|
return new_document.id;
|
|
204
198
|
}
|
|
205
199
|
catch (error) {
|
|
206
200
|
logger.error(`failed to create document in collection: ${collection_path}`, error);
|
|
207
201
|
throw `failed to create document in collection ${collection_path}`;
|
|
208
202
|
}
|
|
209
|
-
}
|
|
210
|
-
export const delete_document = (collection_path, doc_id) =>
|
|
203
|
+
};
|
|
204
|
+
export const delete_document = async (collection_path, doc_id) => {
|
|
211
205
|
try {
|
|
212
|
-
|
|
206
|
+
await db.collection(collection_path).doc(doc_id).delete();
|
|
213
207
|
}
|
|
214
208
|
catch (error) {
|
|
215
209
|
throw `Failed to delete document with id ${doc_id} from collection ${collection_path}`;
|
|
216
210
|
}
|
|
217
|
-
}
|
|
211
|
+
};
|
|
218
212
|
/// token
|
|
219
|
-
export const verify_token =
|
|
213
|
+
export const verify_token = async (authorization, ignore_log = false) => {
|
|
220
214
|
try {
|
|
221
215
|
if (!authorization) {
|
|
222
216
|
throw "Authorization token is required";
|
|
@@ -228,7 +222,7 @@ export const verify_token = (authorization_1, ...args_1) => __awaiter(void 0, [a
|
|
|
228
222
|
if (!token) {
|
|
229
223
|
throw "validation error: Token not found";
|
|
230
224
|
}
|
|
231
|
-
const res =
|
|
225
|
+
const res = await firebase_admin.auth().verifyIdToken(token);
|
|
232
226
|
if (!res) {
|
|
233
227
|
throw "User not found";
|
|
234
228
|
}
|
|
@@ -240,7 +234,7 @@ export const verify_token = (authorization_1, ...args_1) => __awaiter(void 0, [a
|
|
|
240
234
|
}
|
|
241
235
|
throw error;
|
|
242
236
|
}
|
|
243
|
-
}
|
|
237
|
+
};
|
|
244
238
|
/// parsers
|
|
245
239
|
const parse_add_update_translations = (documents) => {
|
|
246
240
|
const data = translation_manager.getTranslationData();
|
|
@@ -333,20 +327,18 @@ export const snapshot = (config) => {
|
|
|
333
327
|
};
|
|
334
328
|
const start = () => {
|
|
335
329
|
unsubscribe = q.onSnapshot((snapshot) => {
|
|
336
|
-
var _a, _b, _c, _d, _e, _f;
|
|
337
330
|
if (!snapshots_first_time.includes(cache_name)) {
|
|
338
331
|
snapshots_first_time.push(cache_name);
|
|
339
332
|
const documents = snapshot.docs.flatMap((doc) => simple_extract_data(doc));
|
|
340
|
-
if (debug
|
|
333
|
+
if (debug?.on_first_time) {
|
|
341
334
|
logger.log(`${cache_name} => Firebase snapshot on first time: `, debug.on_first_time === "documents" ? documents : { length: documents.length });
|
|
342
335
|
}
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
if ((_a = debug === null || debug === void 0 ? void 0 : debug.extra_parsers) === null || _a === void 0 ? void 0 : _a.on_first_time) {
|
|
336
|
+
config.on_first_time?.(documents, config);
|
|
337
|
+
config.extra_parsers?.forEach((extra_parser) => {
|
|
338
|
+
if (debug?.extra_parsers?.on_first_time) {
|
|
347
339
|
logger.log(`${cache_name} => Firebase snapshot extra parsers on first time: `, debug.extra_parsers.on_first_time === "documents" ? documents : { length: documents.length });
|
|
348
340
|
}
|
|
349
|
-
|
|
341
|
+
extra_parser.on_first_time?.(documents, config);
|
|
350
342
|
});
|
|
351
343
|
safe_resolve(); // ✅ boot can continue
|
|
352
344
|
return;
|
|
@@ -363,42 +355,41 @@ export const snapshot = (config) => {
|
|
|
363
355
|
get_docs_from_snapshot("removed"),
|
|
364
356
|
];
|
|
365
357
|
if (added.length) {
|
|
366
|
-
if (debug
|
|
358
|
+
if (debug?.on_add) {
|
|
367
359
|
logger.log(`${cache_name} => Firebase snapshot on add: `, added);
|
|
368
360
|
}
|
|
369
|
-
|
|
361
|
+
config.on_add?.(added, config);
|
|
370
362
|
}
|
|
371
363
|
if (modified.length) {
|
|
372
|
-
if (debug
|
|
364
|
+
if (debug?.on_modify) {
|
|
373
365
|
logger.log(`${cache_name} => Firebase snapshot on modify: `, modified);
|
|
374
366
|
}
|
|
375
|
-
|
|
367
|
+
config.on_modify?.(modified, config);
|
|
376
368
|
}
|
|
377
369
|
if (removed.length) {
|
|
378
|
-
if (debug
|
|
370
|
+
if (debug?.on_remove) {
|
|
379
371
|
logger.log(`${cache_name} => Firebase snapshot on remove: `, removed);
|
|
380
372
|
}
|
|
381
|
-
|
|
373
|
+
config.on_remove?.(removed, config);
|
|
382
374
|
}
|
|
383
|
-
|
|
384
|
-
var _a, _b, _c, _d, _e, _f;
|
|
375
|
+
config.extra_parsers?.forEach((extra_parser) => {
|
|
385
376
|
if (added.length) {
|
|
386
|
-
if (
|
|
377
|
+
if (debug?.extra_parsers?.on_add) {
|
|
387
378
|
logger.log(`${cache_name} => Firebase snapshot extra parsers on add: `, added);
|
|
388
379
|
}
|
|
389
|
-
|
|
380
|
+
extra_parser.on_add?.(added, config);
|
|
390
381
|
}
|
|
391
382
|
if (modified.length) {
|
|
392
|
-
if (
|
|
383
|
+
if (debug?.extra_parsers?.on_modify) {
|
|
393
384
|
logger.log(`${cache_name} => Firebase snapshot extra parsers on modify: `, modified);
|
|
394
385
|
}
|
|
395
|
-
|
|
386
|
+
extra_parser.on_modify?.(modified, config);
|
|
396
387
|
}
|
|
397
388
|
if (removed.length) {
|
|
398
|
-
if (
|
|
389
|
+
if (debug?.extra_parsers?.on_remove) {
|
|
399
390
|
logger.log(`${cache_name} => Firebase snapshot extra parsers on remove: `, removed);
|
|
400
391
|
}
|
|
401
|
-
|
|
392
|
+
extra_parser.on_remove?.(removed, config);
|
|
402
393
|
}
|
|
403
394
|
});
|
|
404
395
|
}, (error) => {
|
|
@@ -407,11 +398,11 @@ export const snapshot = (config) => {
|
|
|
407
398
|
safe_resolve();
|
|
408
399
|
try {
|
|
409
400
|
logger.log(`Error listening to collection -> unsubscribe from: ${config.collection_name}`);
|
|
410
|
-
unsubscribe
|
|
401
|
+
unsubscribe?.();
|
|
411
402
|
}
|
|
412
|
-
catch
|
|
403
|
+
catch { }
|
|
413
404
|
unsubscribe = null;
|
|
414
|
-
const delay_ms = Math.min(
|
|
405
|
+
const delay_ms = Math.min(30_000, 500 * 2 ** attempt++);
|
|
415
406
|
setTimeout(() => {
|
|
416
407
|
logger.log(`Error listening to collection -> subscribe to: ${config.collection_name}`);
|
|
417
408
|
start();
|
|
@@ -421,9 +412,9 @@ export const snapshot = (config) => {
|
|
|
421
412
|
start();
|
|
422
413
|
});
|
|
423
414
|
};
|
|
424
|
-
export const init_snapshots = (options) =>
|
|
415
|
+
export const init_snapshots = async (options) => {
|
|
425
416
|
const { subscription_type = "firebase", debug } = options || {};
|
|
426
|
-
|
|
417
|
+
await snapshot_bulk_by_names([
|
|
427
418
|
"nx-settings",
|
|
428
419
|
"settings",
|
|
429
420
|
{
|
|
@@ -443,13 +434,13 @@ export const init_snapshots = (options) => __awaiter(void 0, void 0, void 0, fun
|
|
|
443
434
|
parse_as: "object",
|
|
444
435
|
label: "Common snapshots",
|
|
445
436
|
});
|
|
446
|
-
}
|
|
447
|
-
export const snapshot_bulk = (snapshots, label) =>
|
|
437
|
+
};
|
|
438
|
+
export const snapshot_bulk = async (snapshots, label) => {
|
|
448
439
|
const start = performance.now();
|
|
449
440
|
logger.log(`==> ${label || "custom snapshots"} started... `);
|
|
450
|
-
|
|
441
|
+
await Promise.all(snapshots);
|
|
451
442
|
logger.log(`==> ${label || "custom snapshots"} ended. It took ${(performance.now() - start).toFixed(2)} ms`);
|
|
452
|
-
}
|
|
443
|
+
};
|
|
453
444
|
const get_default_parsers_as_array = () => {
|
|
454
445
|
return {
|
|
455
446
|
on_first_time: parse_add_update_as_array,
|
|
@@ -474,7 +465,7 @@ export const get_default_parsers = (parse_as) => {
|
|
|
474
465
|
return get_default_parsers_as_object();
|
|
475
466
|
}
|
|
476
467
|
};
|
|
477
|
-
export const snapshot_bulk_by_names = (params, options) =>
|
|
468
|
+
export const snapshot_bulk_by_names = async (params, options) => {
|
|
478
469
|
const { label = "snapshot_bulk_by_names", subscription_type = "firebase", debug, parse_as = "array", doc_key_property = "id" } = options || {};
|
|
479
470
|
const start = performance.now();
|
|
480
471
|
logger.log(`==> Snapshots ${label} => [${subscription_type}] started... `);
|
|
@@ -488,9 +479,24 @@ export const snapshot_bulk_by_names = (params, options) => __awaiter(void 0, voi
|
|
|
488
479
|
}
|
|
489
480
|
uniq_collections.add(name);
|
|
490
481
|
const config = typeof param === "string"
|
|
491
|
-
?
|
|
482
|
+
? {
|
|
483
|
+
collection_name: param,
|
|
484
|
+
subscription_type,
|
|
492
485
|
doc_key_property,
|
|
493
|
-
debug
|
|
486
|
+
debug,
|
|
487
|
+
...get_default_parsers(parse_as),
|
|
488
|
+
}
|
|
489
|
+
: {
|
|
490
|
+
collection_name: param.collection_name,
|
|
491
|
+
extra_parsers: param.extra_parsers,
|
|
492
|
+
conditions: param.conditions,
|
|
493
|
+
cache_name: param.cache_name,
|
|
494
|
+
doc_key_property: param.doc_key_property || doc_key_property,
|
|
495
|
+
subscription_type: param.subscription_type || subscription_type,
|
|
496
|
+
debug: param.debug || debug,
|
|
497
|
+
// parse_as: param.parse_as,
|
|
498
|
+
...get_default_parsers(param.parse_as || parse_as),
|
|
499
|
+
};
|
|
494
500
|
if (config.subscription_type === "redis") {
|
|
495
501
|
redis_configs.push(config);
|
|
496
502
|
}
|
|
@@ -498,11 +504,11 @@ export const snapshot_bulk_by_names = (params, options) => __awaiter(void 0, voi
|
|
|
498
504
|
firebase_promises.push(snapshot(config));
|
|
499
505
|
}
|
|
500
506
|
}
|
|
501
|
-
|
|
502
|
-
|
|
507
|
+
await redis_snapshots_bulk(redis_configs);
|
|
508
|
+
await Promise.all(firebase_promises);
|
|
503
509
|
logger.log(`==> Snapshots ${label} => [${subscription_type}] ended. It took ${(performance.now() - start).toFixed(2)} ms`);
|
|
504
|
-
}
|
|
505
|
-
export const add_audit_record = (action, entity, details, user) =>
|
|
510
|
+
};
|
|
511
|
+
export const add_audit_record = async (action, entity, details, user) => {
|
|
506
512
|
const { first_name = "John", last_name = "Doe", id = "" } = user || {};
|
|
507
513
|
const data = {
|
|
508
514
|
action,
|
|
@@ -512,13 +518,13 @@ export const add_audit_record = (action, entity, details, user) => __awaiter(voi
|
|
|
512
518
|
user: { first_name, last_name, id },
|
|
513
519
|
};
|
|
514
520
|
try {
|
|
515
|
-
|
|
521
|
+
await db.collection("nx-audit").add(data);
|
|
516
522
|
}
|
|
517
523
|
catch (error) {
|
|
518
524
|
throw { msg: "unable to add audit record", data, error };
|
|
519
525
|
}
|
|
520
|
-
}
|
|
521
|
-
export const add_nx_problem = (problem, key, details) =>
|
|
526
|
+
};
|
|
527
|
+
export const add_nx_problem = async (problem, key, details) => {
|
|
522
528
|
const data = {
|
|
523
529
|
problem,
|
|
524
530
|
key,
|
|
@@ -526,14 +532,13 @@ export const add_nx_problem = (problem, key, details) => __awaiter(void 0, void
|
|
|
526
532
|
timestamp: Timestamp.now(),
|
|
527
533
|
};
|
|
528
534
|
try {
|
|
529
|
-
|
|
535
|
+
await add_document("nx-problems", data);
|
|
530
536
|
}
|
|
531
537
|
catch (error) {
|
|
532
538
|
logger.log("error from add_nx_problem", error);
|
|
533
539
|
}
|
|
534
|
-
}
|
|
535
|
-
export const save_file_in_storage =
|
|
536
|
-
var _a, _b, _c;
|
|
540
|
+
};
|
|
541
|
+
export const save_file_in_storage = async (file_path, buffer, options = {}) => {
|
|
537
542
|
try {
|
|
538
543
|
const bucket = storage.bucket();
|
|
539
544
|
const normalized_path = file_path.replace(/^\/+/, "");
|
|
@@ -543,34 +548,34 @@ export const save_file_in_storage = (file_path_1, buffer_1, ...args_1) => __awai
|
|
|
543
548
|
cacheControl: options.cache_control,
|
|
544
549
|
contentDisposition: options.content_disposition,
|
|
545
550
|
};
|
|
546
|
-
|
|
551
|
+
await file.save(buffer, {
|
|
547
552
|
metadata,
|
|
548
|
-
resumable:
|
|
553
|
+
resumable: options.resumable ?? false,
|
|
549
554
|
});
|
|
550
|
-
if (
|
|
551
|
-
|
|
555
|
+
if (options.make_public ?? true) {
|
|
556
|
+
await file.makePublic();
|
|
552
557
|
}
|
|
553
|
-
const [url] =
|
|
558
|
+
const [url] = await file.getSignedUrl({
|
|
554
559
|
action: "read",
|
|
555
|
-
expires: Date.now() + (
|
|
560
|
+
expires: Date.now() + (options.signed_url_ttl_ms ?? 1000 * 60 * 60 * 24 * 7),
|
|
556
561
|
});
|
|
557
562
|
return url;
|
|
558
563
|
}
|
|
559
564
|
catch (error) {
|
|
560
|
-
logger.error("error from save_file_in_storage", { error:
|
|
565
|
+
logger.error("error from save_file_in_storage", { error: error?.message || error });
|
|
561
566
|
throw error;
|
|
562
567
|
}
|
|
563
|
-
}
|
|
564
|
-
export const get_file_url_from_storage = (file_path) =>
|
|
568
|
+
};
|
|
569
|
+
export const get_file_url_from_storage = async (file_path) => {
|
|
565
570
|
try {
|
|
566
571
|
const bucket = storage.bucket();
|
|
567
572
|
const normalized_path = file_path.replace(/^\/+/, "");
|
|
568
573
|
const file = bucket.file(normalized_path);
|
|
569
|
-
const [exists] =
|
|
574
|
+
const [exists] = await file.exists();
|
|
570
575
|
if (!exists) {
|
|
571
576
|
throw new Error("file not exist");
|
|
572
577
|
}
|
|
573
|
-
const [url] =
|
|
578
|
+
const [url] = await file.getSignedUrl({
|
|
574
579
|
action: "read",
|
|
575
580
|
expires: Date.now() + 1000 * 60 * 60 * 24 * 7,
|
|
576
581
|
});
|
|
@@ -580,18 +585,18 @@ export const get_file_url_from_storage = (file_path) => __awaiter(void 0, void 0
|
|
|
580
585
|
logger.error(`error from get_file_url_from_storage, file_path: ${file_path}`, error);
|
|
581
586
|
throw error;
|
|
582
587
|
}
|
|
583
|
-
}
|
|
584
|
-
export const get_nx_settings = () =>
|
|
588
|
+
};
|
|
589
|
+
export const get_nx_settings = async () => {
|
|
585
590
|
const cache = cache_manager.getObjectData("nx-settings");
|
|
586
591
|
if (cache) {
|
|
587
592
|
return cache;
|
|
588
593
|
}
|
|
589
|
-
const docs =
|
|
594
|
+
const docs = await get_all_documents("nx-settings");
|
|
590
595
|
const nx_settings = {};
|
|
591
596
|
docs.forEach((doc) => {
|
|
592
597
|
nx_settings[doc.id] = doc;
|
|
593
598
|
});
|
|
594
599
|
cache_manager.setObjectData("nx-settings", nx_settings);
|
|
595
600
|
return nx_settings;
|
|
596
|
-
}
|
|
601
|
+
};
|
|
597
602
|
//# sourceMappingURL=firebase_helpers.js.map
|