akeyless-server-commons 1.0.136-test.2 → 1.0.136-test.21

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 (53) hide show
  1. package/dist/cjs/helpers/firebase_helpers.d.ts +8 -2
  2. package/dist/cjs/helpers/firebase_helpers.js +143 -63
  3. package/dist/cjs/helpers/firebase_helpers.js.map +1 -1
  4. package/dist/cjs/helpers/global_helpers.d.ts +2 -2
  5. package/dist/cjs/helpers/global_helpers.js +7 -7
  6. package/dist/cjs/helpers/global_helpers.js.map +1 -1
  7. package/dist/cjs/helpers/index.d.ts +1 -0
  8. package/dist/cjs/helpers/index.js +1 -0
  9. package/dist/cjs/helpers/index.js.map +1 -1
  10. package/dist/cjs/helpers/redis/index.d.ts +3 -0
  11. package/dist/cjs/helpers/redis/index.js +20 -0
  12. package/dist/cjs/helpers/redis/index.js.map +1 -0
  13. package/dist/cjs/helpers/redis/initialize.d.ts +5 -0
  14. package/dist/cjs/helpers/redis/initialize.js +79 -0
  15. package/dist/cjs/helpers/redis/initialize.js.map +1 -0
  16. package/dist/cjs/helpers/redis/keys.d.ts +5 -0
  17. package/dist/cjs/helpers/redis/keys.js +40 -0
  18. package/dist/cjs/helpers/redis/keys.js.map +1 -0
  19. package/dist/cjs/helpers/redis/snapshot.d.ts +2 -0
  20. package/dist/cjs/helpers/redis/snapshot.js +143 -0
  21. package/dist/cjs/helpers/redis/snapshot.js.map +1 -0
  22. package/dist/cjs/helpers/start.d.ts +1 -1
  23. package/dist/cjs/helpers/start.js +2 -2
  24. package/dist/cjs/helpers/start.js.map +1 -1
  25. package/dist/cjs/types/interfaces/global.d.ts +2 -0
  26. package/dist/cjs/types/types/firebase_types.d.ts +19 -3
  27. package/dist/esm/helpers/firebase_helpers.d.ts +8 -2
  28. package/dist/esm/helpers/firebase_helpers.js +136 -62
  29. package/dist/esm/helpers/firebase_helpers.js.map +1 -1
  30. package/dist/esm/helpers/global_helpers.d.ts +2 -2
  31. package/dist/esm/helpers/global_helpers.js +7 -7
  32. package/dist/esm/helpers/global_helpers.js.map +1 -1
  33. package/dist/esm/helpers/index.d.ts +1 -0
  34. package/dist/esm/helpers/index.js +1 -0
  35. package/dist/esm/helpers/index.js.map +1 -1
  36. package/dist/esm/helpers/redis/index.d.ts +3 -0
  37. package/dist/esm/helpers/redis/index.js +4 -0
  38. package/dist/esm/helpers/redis/index.js.map +1 -0
  39. package/dist/esm/helpers/redis/initialize.d.ts +5 -0
  40. package/dist/esm/helpers/redis/initialize.js +73 -0
  41. package/dist/esm/helpers/redis/initialize.js.map +1 -0
  42. package/dist/esm/helpers/redis/keys.d.ts +5 -0
  43. package/dist/esm/helpers/redis/keys.js +33 -0
  44. package/dist/esm/helpers/redis/keys.js.map +1 -0
  45. package/dist/esm/helpers/redis/snapshot.d.ts +2 -0
  46. package/dist/esm/helpers/redis/snapshot.js +139 -0
  47. package/dist/esm/helpers/redis/snapshot.js.map +1 -0
  48. package/dist/esm/helpers/start.d.ts +1 -1
  49. package/dist/esm/helpers/start.js +2 -2
  50. package/dist/esm/helpers/start.js.map +1 -1
  51. package/dist/esm/types/interfaces/global.d.ts +2 -0
  52. package/dist/esm/types/types/firebase_types.d.ts +19 -3
  53. package/package.json +1 -1
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.redis_listener = exports.redis_commander = exports.redis_listener_connected = exports.redis_commander_connected = void 0;
7
+ const ioredis_1 = __importDefault(require("ioredis"));
8
+ const akeyless_types_commons_1 = require("akeyless-types-commons");
9
+ const keys_1 = require("./keys");
10
+ const global_helpers_1 = require("../global_helpers");
11
+ const managers_1 = require("../../managers");
12
+ const dotenv_1 = __importDefault(require("dotenv"));
13
+ dotenv_1.default.config();
14
+ const { redis_ip } = (0, global_helpers_1.init_env_variables)(["redis_ip"]);
15
+ exports.redis_commander_connected = false;
16
+ exports.redis_listener_connected = false;
17
+ const MAX_RETRY_ATTEMPTS = 5;
18
+ function create_redis_instance(role) {
19
+ let retry_attempts = 0;
20
+ const client = new ioredis_1.default({
21
+ host: redis_ip,
22
+ lazyConnect: true,
23
+ enableOfflineQueue: false,
24
+ maxRetriesPerRequest: 0,
25
+ reconnectOnError: () => false,
26
+ retryStrategy(times) {
27
+ retry_attempts = times;
28
+ if (retry_attempts >= MAX_RETRY_ATTEMPTS) {
29
+ managers_1.logger.error(`❌ Redis ${role} failed after ${MAX_RETRY_ATTEMPTS} attempts. Stopping retries.`);
30
+ return null;
31
+ }
32
+ const delay = 1000;
33
+ managers_1.logger.warn(`⚠️ Redis ${role} retry attempt ${retry_attempts}/${MAX_RETRY_ATTEMPTS} in ${delay}ms...`);
34
+ return delay;
35
+ },
36
+ });
37
+ client.on("connect", () => {
38
+ managers_1.logger.log(`✅ Redis ${role} connected`);
39
+ if (role === "commander")
40
+ exports.redis_commander_connected = true;
41
+ if (role === "listener")
42
+ exports.redis_listener_connected = true;
43
+ });
44
+ client.on("error", (err) => managers_1.logger.error(`❌ Redis ${role} error`, err));
45
+ client.on("close", () => {
46
+ managers_1.logger.warn(`ℹ️ Redis ${role} connection closed`);
47
+ if (role === "commander")
48
+ exports.redis_commander_connected = false;
49
+ if (role === "listener")
50
+ exports.redis_listener_connected = false;
51
+ });
52
+ client.on("end", () => {
53
+ managers_1.logger.warn(`ℹ️ Redis ${role} connection ended`);
54
+ if (role === "commander")
55
+ exports.redis_commander_connected = false;
56
+ if (role === "listener")
57
+ exports.redis_listener_connected = false;
58
+ });
59
+ client.connect().catch((err) => {
60
+ managers_1.logger.error(`❌ Redis ${role} initial connect failed`, err);
61
+ });
62
+ return client;
63
+ }
64
+ exports.redis_commander = create_redis_instance("commander");
65
+ exports.redis_listener = create_redis_instance("listener");
66
+ exports.redis_listener.on("connect", () => {
67
+ const redis_pattern = (0, keys_1.get_collection_keys)(akeyless_types_commons_1.REDIS_UPDATES_PREFIX);
68
+ exports.redis_listener
69
+ .psubscribe(redis_pattern)
70
+ .then(() => managers_1.logger.log(`✅ Subscribed to Redis pattern: ${redis_pattern}`))
71
+ .catch((err) => managers_1.logger.error(`❌ Failed to psubscribe to ${redis_pattern}`, err));
72
+ });
73
+ process.on("unhandledRejection", (err) => {
74
+ managers_1.logger.error("❌ Unhandled promise rejection", err);
75
+ });
76
+ process.on("uncaughtException", (err) => {
77
+ managers_1.logger.error("❌ Uncaught exception", err);
78
+ });
79
+ //# sourceMappingURL=initialize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../src/helpers/redis/initialize.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA4B;AAC5B,mEAA8D;AAC9D,iCAA6C;AAC7C,sDAAuD;AACvD,6CAAwC;AACxC,oDAA4B;AAE5B,gBAAM,CAAC,MAAM,EAAE,CAAC;AAChB,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,mCAAkB,EAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAE3C,QAAA,yBAAyB,GAAG,KAAK,CAAC;AAClC,QAAA,wBAAwB,GAAG,KAAK,CAAC;AAE5C,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,SAAS,qBAAqB,CAAC,IAA8B;IACzD,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,MAAM,MAAM,GAAG,IAAI,iBAAK,CAAC;QACrB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAE,KAAK;QACzB,oBAAoB,EAAE,CAAC;QACvB,gBAAgB,EAAE,GAAG,EAAE,CAAC,KAAK;QAC7B,aAAa,CAAC,KAAK;YACf,cAAc,GAAG,KAAK,CAAC;YACvB,IAAI,cAAc,IAAI,kBAAkB,EAAE,CAAC;gBACvC,iBAAM,CAAC,KAAK,CAAC,WAAW,IAAI,iBAAiB,kBAAkB,8BAA8B,CAAC,CAAC;gBAC/F,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAA;YAClB,iBAAM,CAAC,IAAI,CAAC,YAAY,IAAI,kBAAkB,cAAc,IAAI,kBAAkB,OAAO,KAAK,OAAO,CAAC,CAAC;YACvG,OAAO,KAAK,CAAC;QACjB,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACtB,iBAAM,CAAC,GAAG,CAAC,WAAW,IAAI,YAAY,CAAC,CAAC;QACxC,IAAI,IAAI,KAAK,WAAW;YAAE,iCAAyB,GAAG,IAAI,CAAC;QAC3D,IAAI,IAAI,KAAK,UAAU;YAAE,gCAAwB,GAAG,IAAI,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAM,CAAC,KAAK,CAAC,WAAW,IAAI,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IAExE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACpB,iBAAM,CAAC,IAAI,CAAC,YAAY,IAAI,oBAAoB,CAAC,CAAC;QAClD,IAAI,IAAI,KAAK,WAAW;YAAE,iCAAyB,GAAG,KAAK,CAAC;QAC5D,IAAI,IAAI,KAAK,UAAU;YAAE,gCAAwB,GAAG,KAAK,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;QAClB,iBAAM,CAAC,IAAI,CAAC,YAAY,IAAI,mBAAmB,CAAC,CAAC;QACjD,IAAI,IAAI,KAAK,WAAW;YAAE,iCAAyB,GAAG,KAAK,CAAC;QAC5D,IAAI,IAAI,KAAK,UAAU;YAAE,gCAAwB,GAAG,KAAK,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAC3B,iBAAM,CAAC,KAAK,CAAC,WAAW,IAAI,yBAAyB,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAClB,CAAC;AAEY,QAAA,eAAe,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;AACrD,QAAA,cAAc,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;AAEhE,sBAAc,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IAC9B,MAAM,aAAa,GAAG,IAAA,0BAAmB,EAAC,6CAAoB,CAAC,CAAC;IAChE,sBAAc;SACT,UAAU,CAAC,aAAa,CAAC;SACzB,IAAI,CAAC,GAAG,EAAE,CAAC,iBAAM,CAAC,GAAG,CAAC,kCAAkC,aAAa,EAAE,CAAC,CAAC;SACzE,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAM,CAAC,KAAK,CAAC,6BAA6B,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AACzF,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,EAAE;IACrC,iBAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;AACvD,CAAC,CAAC,CAAC;AACH,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,GAAG,EAAE,EAAE;IACpC,iBAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import Redis from "ioredis";
2
+ export declare const get_doc_key: (collection: string, doc_id: string) => string;
3
+ export declare const get_collection_keys: (collection: string) => string;
4
+ export declare const get_channel: (...args: string[]) => string;
5
+ export declare const scan_redis_keys: (pattern: string, redis_publisher: Redis) => Promise<string[]>;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.scan_redis_keys = exports.get_channel = exports.get_collection_keys = exports.get_doc_key = void 0;
13
+ const akeyless_types_commons_1 = require("akeyless-types-commons");
14
+ const get_key = (...args) => {
15
+ return args.join(":");
16
+ };
17
+ const get_doc_key = (collection, doc_id) => {
18
+ return get_key(collection, doc_id);
19
+ };
20
+ exports.get_doc_key = get_doc_key;
21
+ const get_collection_keys = (collection) => {
22
+ return get_key(collection, "*");
23
+ };
24
+ exports.get_collection_keys = get_collection_keys;
25
+ const get_channel = (...args) => {
26
+ return get_key(akeyless_types_commons_1.REDIS_UPDATES_PREFIX, ...args);
27
+ };
28
+ exports.get_channel = get_channel;
29
+ const scan_redis_keys = (pattern, redis_publisher) => __awaiter(void 0, void 0, void 0, function* () {
30
+ const found_keys = [];
31
+ let cursor = "0";
32
+ do {
33
+ const [next_cursor, keys] = yield redis_publisher.scan(cursor, "MATCH", pattern, "COUNT", 100);
34
+ cursor = next_cursor;
35
+ found_keys.push(...keys);
36
+ } while (cursor !== "0");
37
+ return found_keys;
38
+ });
39
+ exports.scan_redis_keys = scan_redis_keys;
40
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../../src/helpers/redis/keys.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mEAA8D;AAG9D,MAAM,OAAO,GAAG,CAAC,GAAG,IAAc,EAAE,EAAE;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC,CAAC;AAEK,MAAM,WAAW,GAAG,CAAC,UAAkB,EAAE,MAAc,EAAE,EAAE;IAC9D,OAAO,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC,CAAC;AAFW,QAAA,WAAW,eAEtB;AAEK,MAAM,mBAAmB,GAAG,CAAC,UAAkB,EAAE,EAAE;IACtD,OAAO,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC,CAAC;AAFW,QAAA,mBAAmB,uBAE9B;AAEK,MAAM,WAAW,GAAG,CAAC,GAAG,IAAc,EAAE,EAAE;IAC7C,OAAO,OAAO,CAAC,6CAAoB,EAAE,GAAG,IAAI,CAAC,CAAC;AAClD,CAAC,CAAC;AAFW,QAAA,WAAW,eAEtB;AAEK,MAAM,eAAe,GAAG,CAAO,OAAe,EAAE,eAAsB,EAAqB,EAAE;IAChG,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,MAAM,GAAG,GAAG,CAAC;IACjB,GAAG,CAAC;QACA,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAC/F,MAAM,GAAG,WAAW,CAAC;QACrB,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7B,CAAC,QAAQ,MAAM,KAAK,GAAG,EAAE;IACzB,OAAO,UAAU,CAAC;AACtB,CAAC,CAAA,CAAC;AATW,QAAA,eAAe,mBAS1B"}
@@ -0,0 +1,2 @@
1
+ import { OnSnapshotConfig } from "../../types";
2
+ export declare const redis_snapshots_bulk: (configs: OnSnapshotConfig[]) => Promise<void>;
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.redis_snapshots_bulk = void 0;
13
+ const initialize_1 = require("./initialize");
14
+ const firebase_helpers_1 = require("../firebase_helpers");
15
+ const keys_1 = require("./keys");
16
+ const firestore_1 = require("firebase-admin/firestore");
17
+ const managers_1 = require("../../managers");
18
+ const subscription_collections = new Set();
19
+ const redis_snapshots_bulk = (configs) => __awaiter(void 0, void 0, void 0, function* () {
20
+ var _a;
21
+ const nx_settings = yield (0, firebase_helpers_1.get_nx_settings)();
22
+ const cache_collections_config = nx_settings.cache_collections_config || {};
23
+ for (const config of configs) {
24
+ const { collection_name, extra_parsers, cache_name = collection_name, parse_as, subscription_type = "firebase", debug } = config;
25
+ if (!initialize_1.redis_commander_connected ||
26
+ !initialize_1.redis_listener_connected ||
27
+ subscription_type === "firebase" ||
28
+ !cache_collections_config[collection_name] ||
29
+ cache_collections_config[collection_name].sync_direction === "redis_to_firebase") {
30
+ yield (0, firebase_helpers_1.snapshot)(config);
31
+ continue;
32
+ }
33
+ if (subscription_collections.has(cache_name)) {
34
+ continue;
35
+ }
36
+ subscription_collections.add(cache_name);
37
+ const init_data = yield get_collection_data(collection_name);
38
+ default_parsers(parse_as, init_data, config);
39
+ if (debug === null || debug === void 0 ? void 0 : debug.on_first_time) {
40
+ managers_1.logger.log(`${cache_name} => Redis snapshot on first time: `, debug.on_first_time === "documents" ? init_data : { length: init_data.length });
41
+ }
42
+ (_a = config.on_first_time) === null || _a === void 0 ? void 0 : _a.call(config, init_data, config);
43
+ extra_parsers === null || extra_parsers === void 0 ? void 0 : extra_parsers.forEach((parser) => {
44
+ var _a, _b;
45
+ if ((_a = debug === null || debug === void 0 ? void 0 : debug.extra_parsers) === null || _a === void 0 ? void 0 : _a.on_first_time) {
46
+ managers_1.logger.log(`${cache_name} => Redis snapshot extra parsers on first time: `, debug.extra_parsers.on_first_time === "documents" ? init_data : { length: init_data.length });
47
+ }
48
+ (_b = parser === null || parser === void 0 ? void 0 : parser.on_first_time) === null || _b === void 0 ? void 0 : _b.call(parser, init_data, config);
49
+ });
50
+ }
51
+ initialize_1.redis_listener.on("pmessage", (pattern, channel, message) => __awaiter(void 0, void 0, void 0, function* () {
52
+ const { collection_name, update_type, data: doc } = JSON.parse(message);
53
+ const update = [convert_object_timestamps(doc)];
54
+ const relevant_configs = configs.filter((config) => config.collection_name === collection_name);
55
+ managers_1.logger.log(`♻️ relevant configs: ${relevant_configs.length}`);
56
+ for (const config of relevant_configs) {
57
+ const { collection_name: config_collection_name, cache_name = config_collection_name, on_add, on_remove, on_modify, extra_parsers, parse_as, debug, } = config;
58
+ if (!subscription_collections.has(cache_name)) {
59
+ managers_1.logger.log(`♻️ skipping for cache: ${cache_name} collection: ${config_collection_name} `);
60
+ continue;
61
+ }
62
+ managers_1.logger.log(`♻️ update: ${update_type} cache: ${cache_name} collection: ${config_collection_name} `);
63
+ switch (update_type) {
64
+ case "add":
65
+ if (debug === null || debug === void 0 ? void 0 : debug.on_add) {
66
+ managers_1.logger.log(`${cache_name} => Redis snapshot on add: `, update);
67
+ }
68
+ default_parsers(parse_as, update, config);
69
+ on_add === null || on_add === void 0 ? void 0 : on_add(update, config);
70
+ extra_parsers === null || extra_parsers === void 0 ? void 0 : extra_parsers.forEach((parser) => {
71
+ var _a, _b;
72
+ if ((_a = debug === null || debug === void 0 ? void 0 : debug.extra_parsers) === null || _a === void 0 ? void 0 : _a.on_add) {
73
+ managers_1.logger.log(`${cache_name} => Redis snapshot extra parsers on add: `, update);
74
+ }
75
+ (_b = parser === null || parser === void 0 ? void 0 : parser.on_add) === null || _b === void 0 ? void 0 : _b.call(parser, update, config);
76
+ });
77
+ break;
78
+ case "update":
79
+ if (debug === null || debug === void 0 ? void 0 : debug.on_modify) {
80
+ managers_1.logger.log(`${cache_name} => Redis snapshot on modify: `, update);
81
+ }
82
+ default_parsers(parse_as, update, config);
83
+ on_modify === null || on_modify === void 0 ? void 0 : on_modify(update, config);
84
+ extra_parsers === null || extra_parsers === void 0 ? void 0 : extra_parsers.forEach((parser) => {
85
+ var _a, _b;
86
+ if ((_a = debug === null || debug === void 0 ? void 0 : debug.extra_parsers) === null || _a === void 0 ? void 0 : _a.on_modify) {
87
+ managers_1.logger.log(`${cache_name} => Redis snapshot extra parsers on modify: `, update);
88
+ }
89
+ (_b = parser === null || parser === void 0 ? void 0 : parser.on_modify) === null || _b === void 0 ? void 0 : _b.call(parser, update, config);
90
+ });
91
+ break;
92
+ case "delete":
93
+ if (debug === null || debug === void 0 ? void 0 : debug.on_remove) {
94
+ managers_1.logger.log(`${cache_name} => Redis snapshot on remove: `, update);
95
+ }
96
+ if (parse_as === "object") {
97
+ (0, firebase_helpers_1.parse_delete_as_object)(update, config);
98
+ }
99
+ if (parse_as === "array") {
100
+ (0, firebase_helpers_1.parse_delete_as_array)(update, config);
101
+ }
102
+ on_remove === null || on_remove === void 0 ? void 0 : on_remove(update, config);
103
+ extra_parsers === null || extra_parsers === void 0 ? void 0 : extra_parsers.forEach((parser) => {
104
+ var _a, _b;
105
+ if ((_a = debug === null || debug === void 0 ? void 0 : debug.extra_parsers) === null || _a === void 0 ? void 0 : _a.on_remove) {
106
+ managers_1.logger.log(`${cache_name} => Redis snapshot extra parsers on remove: `, update);
107
+ }
108
+ (_b = parser === null || parser === void 0 ? void 0 : parser.on_remove) === null || _b === void 0 ? void 0 : _b.call(parser, update, config);
109
+ });
110
+ break;
111
+ default:
112
+ break;
113
+ }
114
+ }
115
+ }));
116
+ });
117
+ exports.redis_snapshots_bulk = redis_snapshots_bulk;
118
+ const default_parsers = (parse_as, update, config) => {
119
+ if (parse_as === "object") {
120
+ (0, firebase_helpers_1.parse_add_update_as_object)(update, config);
121
+ }
122
+ if (parse_as === "array") {
123
+ (0, firebase_helpers_1.parse_add_update_as_array)(update, config);
124
+ }
125
+ };
126
+ const get_collection_data = (collection_name) => __awaiter(void 0, void 0, void 0, function* () {
127
+ const keys = yield (0, keys_1.scan_redis_keys)((0, keys_1.get_collection_keys)(collection_name), initialize_1.redis_commander);
128
+ let collection_data = [];
129
+ if (keys.length > 0) {
130
+ const values = yield initialize_1.redis_commander.mget(keys);
131
+ collection_data = values.filter(Boolean).map((v) => JSON.parse(v).data);
132
+ }
133
+ return collection_data.map((data) => convert_object_timestamps(data));
134
+ });
135
+ const convert_object_timestamps = (data) => {
136
+ Object.entries(data).forEach(([key, value]) => {
137
+ if (typeof value === "object" && value._seconds) {
138
+ data[key] = new firestore_1.Timestamp(value._seconds, value._nanoseconds);
139
+ }
140
+ });
141
+ return data;
142
+ };
143
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../../src/helpers/redis/snapshot.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { Express } from "express";
2
2
  import { AppOptions, MainRouter } from "../types";
3
3
  export declare const start_server: (main_router: MainRouter, project_name: string, version: string, { port, log_requests }?: AppOptions) => Promise<Express>;
4
- export declare const basic_init: (main_router: MainRouter, project_name: string, version: string, { port, log_requests }?: AppOptions) => Promise<Express>;
4
+ export declare const basic_init: (main_router: MainRouter, project_name: string, version: string, { port, log_requests, init_snapshot_options }?: AppOptions) => Promise<Express>;
@@ -39,9 +39,9 @@ const start_server = (main_router_1, project_name_1, version_1, ...args_1) => __
39
39
  });
40
40
  });
41
41
  exports.start_server = start_server;
42
- const basic_init = (main_router_1, project_name_1, version_1, ...args_1) => __awaiter(void 0, [main_router_1, project_name_1, version_1, ...args_1], void 0, function* (main_router, project_name, version, { port, log_requests } = {}) {
42
+ const basic_init = (main_router_1, project_name_1, version_1, ...args_1) => __awaiter(void 0, [main_router_1, project_name_1, version_1, ...args_1], void 0, function* (main_router, project_name, version, { port, log_requests, init_snapshot_options } = {}) {
43
43
  try {
44
- yield (0, _1.init_snapshots)();
44
+ yield (0, _1.init_snapshots)(init_snapshot_options);
45
45
  const app = yield (0, exports.start_server)(main_router, project_name, version, { port, log_requests });
46
46
  return app;
47
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/helpers/start.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sDAA2C;AAC3C,gDAAwB;AACxB,0CAAqC;AACrC,yBAAwD;AAExD,kEAA8D;AAC9D,gDAAsE;AAE/D,MAAM,YAAY,GAAG,sDAKR,EAAE,6FAJlB,WAAuB,EACvB,YAAoB,EACpB,OAAe,EACf,EAAE,IAAI,EAAE,YAAY,KAAiB,EAAE;IAEvC,MAAM,GAAG,GAAY,IAAA,iBAAO,GAAE,CAAC;IAC/B,IAAI,QAAQ,GAAG,IAAA,qBAAkB,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,GAAE,CAAC,CAAC;IAChB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/D,GAAG,CAAC,GAAG,CAAC,IAAA,kCAAoB,GAAE,CAAC,CAAC;IAChC,GAAG,CAAC,GAAG,CAAC,IAAA,4BAAc,EAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5C,WAAW,CAAC,GAAG,CAAC,CAAC;IACjB,GAAG,CAAC,GAAG,CAAC,8BAAa,CAAC,CAAC;IAEvB,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5C,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YAClB,iBAAM,CAAC,GAAG,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAC;YAC5D,iBAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACpF,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAA,CAAC;AAxBW,QAAA,YAAY,gBAwBvB;AAEK,MAAM,UAAU,GAAG,sDAKN,EAAE,6FAJlB,WAAuB,EACvB,YAAoB,EACpB,OAAe,EACf,EAAE,IAAI,EAAE,YAAY,KAAiB,EAAE;IAEvC,IAAI,CAAC;QACD,MAAM,IAAA,iBAAc,GAAE,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAY,EAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3F,OAAO,GAAG,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,iBAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAA,CAAC;AAdW,QAAA,UAAU,cAcrB"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/helpers/start.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sDAA2C;AAC3C,gDAAwB;AACxB,0CAAqC;AACrC,yBAAwD;AAExD,kEAA8D;AAC9D,gDAAsE;AAE/D,MAAM,YAAY,GAAG,sDAKR,EAAE,6FAJlB,WAAuB,EACvB,YAAoB,EACpB,OAAe,EACf,EAAE,IAAI,EAAE,YAAY,KAAiB,EAAE;IAEvC,MAAM,GAAG,GAAY,IAAA,iBAAO,GAAE,CAAC;IAC/B,IAAI,QAAQ,GAAG,IAAA,qBAAkB,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,GAAE,CAAC,CAAC;IAChB,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/D,GAAG,CAAC,GAAG,CAAC,IAAA,kCAAoB,GAAE,CAAC,CAAC;IAChC,GAAG,CAAC,GAAG,CAAC,IAAA,4BAAc,EAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5C,WAAW,CAAC,GAAG,CAAC,CAAC;IACjB,GAAG,CAAC,GAAG,CAAC,8BAAa,CAAC,CAAC;IAEvB,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5C,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YAClB,iBAAM,CAAC,GAAG,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAC;YAC5D,iBAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YACpF,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAA,CAAC;AAxBW,QAAA,YAAY,gBAwBvB;AAEK,MAAM,UAAU,GAAG,sDAKN,EAAE,6FAJlB,WAAuB,EACvB,YAAoB,EACpB,OAAe,EACf,EAAE,IAAI,EAAE,YAAY,EAAE,qBAAqB,KAAiB,EAAE;IAE9D,IAAI,CAAC;QACD,MAAM,IAAA,iBAAc,EAAC,qBAAqB,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAY,EAAC,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3F,OAAO,GAAG,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,iBAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAA,CAAC;AAdW,QAAA,UAAU,cAcrB"}
@@ -1,3 +1,4 @@
1
+ import { InitSnapshotsOptions } from "../types";
1
2
  export interface MandatoryObject {
2
3
  key: string;
3
4
  type: "string" | "number" | "boolean" | "object" | "array";
@@ -17,4 +18,5 @@ export interface LogRequests {
17
18
  export interface AppOptions {
18
19
  port?: number;
19
20
  log_requests?: LogRequests;
21
+ init_snapshot_options?: InitSnapshotsOptions;
20
22
  }
@@ -16,12 +16,23 @@ export interface OnSnapshotParsers {
16
16
  on_modify?: OnSnapshotCallback;
17
17
  on_remove?: OnSnapshotCallback;
18
18
  }
19
- interface ExtraSnapshotConfig {
19
+ export interface ExtraSnapshotConfig {
20
20
  collection_name: string;
21
21
  extra_parsers?: OnSnapshotParsers[];
22
22
  conditions?: WhereCondition[];
23
23
  cache_name?: string;
24
- subscribe_to?: "cache" | "db";
24
+ parse_as?: "object" | "array";
25
+ doc_key_property?: string;
26
+ subscription_type?: "redis" | "firebase";
27
+ debug?: Debug & {
28
+ extra_parsers?: Debug;
29
+ };
30
+ }
31
+ interface Debug {
32
+ on_first_time?: "documents" | "length";
33
+ on_add?: boolean;
34
+ on_modify?: boolean;
35
+ on_remove?: boolean;
25
36
  }
26
37
  export type OnSnapshotConfig = OnSnapshotParsers & ExtraSnapshotConfig;
27
38
  export type Snapshot = (config: OnSnapshotConfig) => Promise<void>;
@@ -30,5 +41,10 @@ export type SnapshotBulkByNamesParamObject = Omit<ExtraSnapshotConfig, "extra_pa
30
41
  extra_parsers: OnSnapshotParsers[];
31
42
  };
32
43
  export type SnapshotBulkByNamesParam = string | SnapshotBulkByNamesParamObject;
33
- export type SnapshotBulkByNames = (params: SnapshotBulkByNamesParam[]) => Promise<void>;
44
+ export type SnapshotBulkByNamesOptions = Pick<ExtraSnapshotConfig, "debug" | "subscription_type" | "parse_as" | "doc_key_property"> & {
45
+ label?: string;
46
+ };
47
+ export type SnapshotBulkByNames = (params: SnapshotBulkByNamesParam[], options?: SnapshotBulkByNamesOptions) => Promise<void>;
48
+ export interface InitSnapshotsOptions extends Pick<ExtraSnapshotConfig, "subscription_type" | "debug"> {
49
+ }
34
50
  export {};
@@ -1,5 +1,5 @@
1
1
  import firebase_admin from "firebase-admin";
2
- import { AddAuditRecord, QueryDocument, QueryDocumentByConditions, QueryDocumentOptional, QueryDocuments, QueryDocumentsByConditions, Snapshot, SnapshotBulk, SnapshotBulkByNames } from "../types";
2
+ import { AddAuditRecord, ExtraSnapshotConfig, InitSnapshotsOptions, OnSnapshotCallback, OnSnapshotParsers, QueryDocument, QueryDocumentByConditions, QueryDocumentOptional, QueryDocuments, QueryDocumentsByConditions, Snapshot, SnapshotBulk, SnapshotBulkByNames } from "../types";
3
3
  import { DecodedIdToken } from "firebase-admin/auth";
4
4
  import { TObject } from "akeyless-types-commons";
5
5
  export declare const service_account_firebase: {
@@ -32,9 +32,14 @@ export declare const set_document: (collection_path: string, doc_id: string, dat
32
32
  export declare const add_document: (collection_path: string, data: {}, include_id?: boolean, custom_id?: string) => Promise<void>;
33
33
  export declare const delete_document: (collection_path: string, doc_id: string) => Promise<void>;
34
34
  export declare const verify_token: (authorization: string | undefined) => Promise<DecodedIdToken>;
35
+ export declare const parse_add_update_as_object: OnSnapshotCallback;
36
+ export declare const parse_delete_as_object: OnSnapshotCallback;
37
+ export declare const parse_add_update_as_array: OnSnapshotCallback;
38
+ export declare const parse_delete_as_array: OnSnapshotCallback;
35
39
  export declare const snapshot: Snapshot;
36
- export declare const init_snapshots: () => Promise<void>;
40
+ export declare const init_snapshots: (options?: InitSnapshotsOptions) => Promise<void>;
37
41
  export declare const snapshot_bulk: SnapshotBulk;
42
+ export declare const get_default_parsers: (parse_as: ExtraSnapshotConfig["parse_as"]) => OnSnapshotParsers;
38
43
  export declare const snapshot_bulk_by_names: SnapshotBulkByNames;
39
44
  export declare const add_audit_record: AddAuditRecord;
40
45
  export interface SaveFileOptions {
@@ -47,3 +52,4 @@ export interface SaveFileOptions {
47
52
  }
48
53
  export declare const save_file_in_storage: (file_path: string, buffer: Buffer | Uint8Array, options?: SaveFileOptions) => Promise<string>;
49
54
  export declare const get_file_url_from_storage: (file_path: string) => Promise<string>;
55
+ export declare const get_nx_settings: () => Promise<any>;