akeyless-client-commons 1.1.33 → 1.1.35

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.
@@ -7,6 +7,9 @@ function _array_like_to_array(arr, len) {
7
7
  function _array_with_holes(arr) {
8
8
  if (Array.isArray(arr)) return arr;
9
9
  }
10
+ function _array_without_holes(arr) {
11
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
12
+ }
10
13
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
11
14
  try {
12
15
  var info = gen[key](arg);
@@ -68,6 +71,9 @@ function _define_property(obj, key, value) {
68
71
  }
69
72
  return obj;
70
73
  }
74
+ function _iterable_to_array(iter) {
75
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
76
+ }
71
77
  function _iterable_to_array_limit(arr, i) {
72
78
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
73
79
  if (_i == null) return;
@@ -95,6 +101,9 @@ function _iterable_to_array_limit(arr, i) {
95
101
  function _non_iterable_rest() {
96
102
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
97
103
  }
104
+ function _non_iterable_spread() {
105
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
106
+ }
98
107
  function _object_spread(target) {
99
108
  for(var i = 1; i < arguments.length; i++){
100
109
  var source = arguments[i] != null ? arguments[i] : {};
@@ -137,6 +146,9 @@ function _object_spread_props(target, source) {
137
146
  function _sliced_to_array(arr, i) {
138
147
  return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
139
148
  }
149
+ function _to_consumable_array(arr) {
150
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
151
+ }
140
152
  function _type_of(obj) {
141
153
  "@swc/helpers - typeof";
142
154
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
@@ -508,9 +520,14 @@ var snapshot = function(config, snapshotsFirstTime, settings) {
508
520
  });
509
521
  }
510
522
  var unsubscribe = (0, import_firestore.onSnapshot)(collectionRef, function(snapshot3) {
511
- if (!snapshotsFirstTime.includes(config.collectionName)) {
523
+ var firstTimeKey = JSON.stringify({
524
+ collectionName: config.collectionName,
525
+ conditions: config.conditions || [],
526
+ orderBy: config.orderBy || []
527
+ });
528
+ if (!snapshotsFirstTime.includes(firstTimeKey)) {
512
529
  var _config_onFirstTime, _config_extraParsers;
513
- snapshotsFirstTime.push(config.collectionName);
530
+ snapshotsFirstTime.push(firstTimeKey);
514
531
  var documents = snapshot3.docs.map(function(doc2) {
515
532
  return simpleExtractData(doc2);
516
533
  });
@@ -1012,20 +1029,240 @@ function useDeepCompareEffect(effect, dependencies) {
1012
1029
  }
1013
1030
  // src/hooks/WebWorker.ts
1014
1031
  var import_react4 = require("react");
1032
+ var useWebWorker = function(fn) {
1033
+ var workerRef = (0, import_react4.useRef)(null);
1034
+ var workerUrlRef = (0, import_react4.useRef)(null);
1035
+ var nextJobIdRef = (0, import_react4.useRef)(1);
1036
+ var pendingJobsRef = (0, import_react4.useRef)(/* @__PURE__ */ new Map());
1037
+ (0, import_react4.useEffect)(function() {
1038
+ if (typeof window === "undefined" || typeof Worker === "undefined") {
1039
+ return function() {};
1040
+ }
1041
+ var functionString = fn.toString();
1042
+ var workerSource = [
1043
+ "const userFn = (".concat(functionString, ");"),
1044
+ "onmessage = async function(event) {",
1045
+ " try {",
1046
+ " const { id, payload } = event.data || {};",
1047
+ " const result = await userFn(payload);",
1048
+ " postMessage({ id, ok: true, result });",
1049
+ " } catch (err) {",
1050
+ " let message;",
1051
+ " try { message = err && err.message ? String(err.message) : String(err); } catch (_) { message = 'Worker error'; }",
1052
+ " postMessage({ id, ok: false, error: message });",
1053
+ " }",
1054
+ "}"
1055
+ ].join("\n");
1056
+ var workerBlob = new Blob([
1057
+ workerSource
1058
+ ], {
1059
+ type: "application/javascript"
1060
+ });
1061
+ var url = URL.createObjectURL(workerBlob);
1062
+ var worker = new Worker(url);
1063
+ worker.onmessage = function(event) {
1064
+ var data = event.data || {};
1065
+ var id = data.id;
1066
+ if (!id) return;
1067
+ var pending = pendingJobsRef.current.get(id);
1068
+ if (!pending) return;
1069
+ pendingJobsRef.current.delete(id);
1070
+ if (data.ok) {
1071
+ pending.resolve(data.result);
1072
+ } else {
1073
+ var _data_error;
1074
+ pending.reject(new Error((_data_error = data.error) !== null && _data_error !== void 0 ? _data_error : "Worker error"));
1075
+ }
1076
+ };
1077
+ worker.onerror = function() {
1078
+ pendingJobsRef.current.forEach(function(job) {
1079
+ job.reject(new Error("Worker encountered an error"));
1080
+ });
1081
+ pendingJobsRef.current.clear();
1082
+ };
1083
+ if (workerRef.current) {
1084
+ workerRef.current.terminate();
1085
+ }
1086
+ if (workerUrlRef.current) {
1087
+ URL.revokeObjectURL(workerUrlRef.current);
1088
+ }
1089
+ workerRef.current = worker;
1090
+ workerUrlRef.current = url;
1091
+ return function() {
1092
+ if (workerRef.current) {
1093
+ workerRef.current.terminate();
1094
+ workerRef.current = null;
1095
+ }
1096
+ if (workerUrlRef.current) {
1097
+ URL.revokeObjectURL(workerUrlRef.current);
1098
+ workerUrlRef.current = null;
1099
+ }
1100
+ pendingJobsRef.current.forEach(function(job) {
1101
+ job.reject(new Error("Worker terminated"));
1102
+ });
1103
+ pendingJobsRef.current.clear();
1104
+ };
1105
+ }, [
1106
+ fn
1107
+ ]);
1108
+ var runWorker = (0, import_react4.useCallback)(function(data, transfer) {
1109
+ if (!workerRef.current) {
1110
+ return new Promise(/*#__PURE__*/ function() {
1111
+ var _ref = _async_to_generator(function(resolve, reject) {
1112
+ var result, err;
1113
+ return _ts_generator(this, function(_state) {
1114
+ switch(_state.label){
1115
+ case 0:
1116
+ _state.trys.push([
1117
+ 0,
1118
+ 2,
1119
+ ,
1120
+ 3
1121
+ ]);
1122
+ return [
1123
+ 4,
1124
+ fn(data)
1125
+ ];
1126
+ case 1:
1127
+ result = _state.sent();
1128
+ resolve(result);
1129
+ return [
1130
+ 3,
1131
+ 3
1132
+ ];
1133
+ case 2:
1134
+ err = _state.sent();
1135
+ reject(err);
1136
+ return [
1137
+ 3,
1138
+ 3
1139
+ ];
1140
+ case 3:
1141
+ return [
1142
+ 2
1143
+ ];
1144
+ }
1145
+ });
1146
+ });
1147
+ return function(resolve, reject) {
1148
+ return _ref.apply(this, arguments);
1149
+ };
1150
+ }());
1151
+ }
1152
+ var id = nextJobIdRef.current++;
1153
+ return new Promise(function(resolve, reject) {
1154
+ pendingJobsRef.current.set(id, {
1155
+ resolve: resolve,
1156
+ reject: reject
1157
+ });
1158
+ try {
1159
+ if (transfer && transfer.length) {
1160
+ workerRef.current.postMessage({
1161
+ id: id,
1162
+ payload: data
1163
+ }, transfer);
1164
+ } else {
1165
+ workerRef.current.postMessage({
1166
+ id: id,
1167
+ payload: data
1168
+ });
1169
+ }
1170
+ } catch (err) {
1171
+ pendingJobsRef.current.delete(id);
1172
+ reject(err);
1173
+ }
1174
+ });
1175
+ }, [
1176
+ fn
1177
+ ]);
1178
+ return runWorker;
1179
+ };
1180
+ var WebWorker_default = useWebWorker;
1015
1181
  // src/hooks/snapshots.ts
1016
1182
  var import_react5 = require("react");
1017
1183
  var useDbSnapshots = function(configs, label, settings) {
1018
1184
  var snapshotsFirstTime = (0, import_react5.useRef)([]);
1019
1185
  var unsubscribeFunctions = (0, import_react5.useRef)([]);
1186
+ var runProcessor = WebWorker_default(function(payload) {
1187
+ return {
1188
+ docs: payload.docs
1189
+ };
1190
+ });
1191
+ var wrapConfigsForWorker = function(cfgs) {
1192
+ return cfgs.map(function(cfg) {
1193
+ var wrapped = _object_spread({}, cfg);
1194
+ var wrapCb = function(cb, op) {
1195
+ if (!cb) return void 0;
1196
+ return /*#__PURE__*/ function() {
1197
+ var _ref = _async_to_generator(function(docs, config) {
1198
+ var safeDocs, _ref, processed, e;
1199
+ return _ts_generator(this, function(_state) {
1200
+ switch(_state.label){
1201
+ case 0:
1202
+ _state.trys.push([
1203
+ 0,
1204
+ 2,
1205
+ ,
1206
+ 3
1207
+ ]);
1208
+ safeDocs = JSON.parse(JSON.stringify(docs));
1209
+ return [
1210
+ 4,
1211
+ runProcessor({
1212
+ op: op,
1213
+ docs: safeDocs
1214
+ })
1215
+ ];
1216
+ case 1:
1217
+ _ref = _state.sent(), processed = _ref.docs;
1218
+ cb(processed, config);
1219
+ return [
1220
+ 3,
1221
+ 3
1222
+ ];
1223
+ case 2:
1224
+ e = _state.sent();
1225
+ cb(docs, config);
1226
+ return [
1227
+ 3,
1228
+ 3
1229
+ ];
1230
+ case 3:
1231
+ return [
1232
+ 2
1233
+ ];
1234
+ }
1235
+ });
1236
+ });
1237
+ return function(docs, config) {
1238
+ return _ref.apply(this, arguments);
1239
+ };
1240
+ }();
1241
+ };
1242
+ wrapped.onFirstTime = wrapCb(cfg.onFirstTime, "first");
1243
+ wrapped.onAdd = wrapCb(cfg.onAdd, "add");
1244
+ wrapped.onModify = wrapCb(cfg.onModify, "modify");
1245
+ wrapped.onRemove = wrapCb(cfg.onRemove, "remove");
1246
+ if (cfg.extraParsers && cfg.extraParsers.length) {
1247
+ wrapped.extraParsers = cfg.extraParsers.map(function(p) {
1248
+ return {
1249
+ onFirstTime: wrapCb(p.onFirstTime, "first"),
1250
+ onAdd: wrapCb(p.onAdd, "add"),
1251
+ onModify: wrapCb(p.onModify, "modify"),
1252
+ onRemove: wrapCb(p.onRemove, "remove")
1253
+ };
1254
+ });
1255
+ }
1256
+ return wrapped;
1257
+ });
1258
+ };
1020
1259
  useDeepCompareEffect(function() {
1021
- if (configs.length === 0) {
1022
- return;
1023
- }
1024
1260
  var start = performance.now();
1025
1261
  if (!(settings === null || settings === void 0 ? void 0 : settings.disableLogs) && configs.length > 0) {
1026
1262
  console.log("==> ".concat(label || "DB snapshots", " started from db... "));
1027
1263
  }
1028
- var snapshotResults = configs.map(function(config) {
1264
+ var wrappedConfigs = wrapConfigsForWorker(configs);
1265
+ var snapshotResults = wrappedConfigs.map(function(config) {
1029
1266
  return snapshot(config, snapshotsFirstTime.current, settings);
1030
1267
  });
1031
1268
  unsubscribeFunctions.current = snapshotResults.map(function(result) {
@@ -1113,25 +1350,94 @@ var useSmartSnapshots = function(configs, label, settings) {
1113
1350
  var useSocketSnapshots = function(configs, label, settings) {
1114
1351
  var _auth_currentUser;
1115
1352
  var _ref = _sliced_to_array((0, import_react5.useState)(socketServiceInstance.isConnected()), 2), socketConnected = _ref[0], setSocketConnected = _ref[1];
1116
- var cleanupSubscriptionsRef = (0, import_react5.useRef)([]);
1353
+ var _ref1 = _sliced_to_array((0, import_react5.useState)([]), 2), cleanupSubscriptions = _ref1[0], setCleanupSubscriptions = _ref1[1];
1117
1354
  var socketStarted = (0, import_react5.useRef)(false);
1355
+ var runProcessor = WebWorker_default(function(payload) {
1356
+ return {
1357
+ docs: payload.docs
1358
+ };
1359
+ });
1360
+ var wrapConfigsForWorker = function(cfgs) {
1361
+ return cfgs.map(function(cfg) {
1362
+ var wrapped = _object_spread({}, cfg);
1363
+ var wrapCb = function(cb, op) {
1364
+ if (!cb) return void 0;
1365
+ return /*#__PURE__*/ function() {
1366
+ var _ref = _async_to_generator(function(docs, config) {
1367
+ var _ref, processed, e;
1368
+ return _ts_generator(this, function(_state) {
1369
+ switch(_state.label){
1370
+ case 0:
1371
+ _state.trys.push([
1372
+ 0,
1373
+ 2,
1374
+ ,
1375
+ 3
1376
+ ]);
1377
+ return [
1378
+ 4,
1379
+ runProcessor({
1380
+ op: op,
1381
+ docs: docs
1382
+ })
1383
+ ];
1384
+ case 1:
1385
+ _ref = _state.sent(), processed = _ref.docs;
1386
+ cb(processed, config);
1387
+ return [
1388
+ 3,
1389
+ 3
1390
+ ];
1391
+ case 2:
1392
+ e = _state.sent();
1393
+ cb(docs, config);
1394
+ return [
1395
+ 3,
1396
+ 3
1397
+ ];
1398
+ case 3:
1399
+ return [
1400
+ 2
1401
+ ];
1402
+ }
1403
+ });
1404
+ });
1405
+ return function(docs, config) {
1406
+ return _ref.apply(this, arguments);
1407
+ };
1408
+ }();
1409
+ };
1410
+ wrapped.onFirstTime = wrapCb(cfg.onFirstTime, "first");
1411
+ wrapped.onAdd = wrapCb(cfg.onAdd, "add");
1412
+ wrapped.onModify = wrapCb(cfg.onModify, "modify");
1413
+ wrapped.onRemove = wrapCb(cfg.onRemove, "remove");
1414
+ if (cfg.extraParsers && cfg.extraParsers.length) {
1415
+ wrapped.extraParsers = cfg.extraParsers.map(function(p) {
1416
+ return {
1417
+ onFirstTime: wrapCb(p.onFirstTime, "first"),
1418
+ onAdd: wrapCb(p.onAdd, "add"),
1419
+ onModify: wrapCb(p.onModify, "modify"),
1420
+ onRemove: wrapCb(p.onRemove, "remove")
1421
+ };
1422
+ });
1423
+ }
1424
+ return wrapped;
1425
+ });
1426
+ };
1118
1427
  useDeepCompareEffect(function() {
1119
- var isActive = true;
1120
1428
  if (!auth.currentUser) {
1121
1429
  return;
1122
1430
  }
1123
- var clearSubs = function() {
1124
- cleanupSubscriptionsRef.current.forEach(function(cleanup) {
1125
- return cleanup();
1126
- });
1127
- cleanupSubscriptionsRef.current = [];
1128
- };
1129
1431
  var subscribe = function() {
1130
1432
  if (configs.length === 0) {
1131
1433
  return;
1132
1434
  }
1133
- var disposer = socketServiceInstance.subscribeToCollections(configs);
1134
- cleanupSubscriptionsRef.current.push(disposer);
1435
+ var disposer = socketServiceInstance.subscribeToCollections(wrapConfigsForWorker(configs));
1436
+ setCleanupSubscriptions(function(prev) {
1437
+ return _to_consumable_array(prev).concat([
1438
+ disposer
1439
+ ]);
1440
+ });
1135
1441
  if (!(settings === null || settings === void 0 ? void 0 : settings.disableLogs)) {
1136
1442
  console.log("==> ".concat(label || "Cache snapshots", " subscribed to ").concat(configs.map(function(c) {
1137
1443
  return c.collectionName;
@@ -1140,34 +1446,32 @@ var useSocketSnapshots = function(configs, label, settings) {
1140
1446
  };
1141
1447
  if (socketServiceInstance.isConnected()) {
1142
1448
  setSocketConnected(true);
1143
- clearSubs();
1144
1449
  subscribe();
1145
1450
  } else if (!socketStarted.current) {
1146
1451
  socketStarted.current = true;
1147
1452
  auth.currentUser.getIdToken().then(function(token) {
1148
- if (!isActive) return;
1149
1453
  socketServiceInstance.startSession(token);
1150
1454
  if (!(settings === null || settings === void 0 ? void 0 : settings.disableLogs)) {
1151
1455
  console.log("==> ".concat(label || "Cache snapshots", " started... "));
1152
1456
  }
1153
- }).catch(function() {});
1457
+ });
1154
1458
  }
1155
1459
  var offConnect = socketServiceInstance.onConnect(function() {
1156
- if (!isActive) return;
1157
1460
  setSocketConnected(true);
1158
1461
  socketStarted.current = false;
1159
1462
  subscribe();
1160
1463
  });
1161
1464
  var offDisconnect = socketServiceInstance.onDisconnect(function() {
1162
- if (!isActive) return;
1163
1465
  setSocketConnected(false);
1466
+ cleanupSubscriptions.forEach(function(cleanup) {
1467
+ return cleanup();
1468
+ });
1164
1469
  });
1165
1470
  if (settings === null || settings === void 0 ? void 0 : settings.cleanupForConfigChange) {
1166
1471
  return function() {
1167
- isActive = false;
1168
- clearSubs();
1169
- offConnect();
1170
- offDisconnect();
1472
+ cleanupSubscriptions.forEach(function(cleanup) {
1473
+ return cleanup();
1474
+ });
1171
1475
  if (!(settings === null || settings === void 0 ? void 0 : settings.disableLogs) && configs.length > 0) {
1172
1476
  console.log("==> ".concat(label || "Cache snapshots", " unsubscribed. "));
1173
1477
  }
@@ -1178,21 +1482,10 @@ var useSocketSnapshots = function(configs, label, settings) {
1178
1482
  (_auth_currentUser = auth.currentUser) === null || _auth_currentUser === void 0 ? void 0 : _auth_currentUser.uid
1179
1483
  ]);
1180
1484
  (0, import_react5.useEffect)(function() {
1181
- var _auth_onIdTokenChanged;
1182
- var unsubscribeAuth = (_auth_onIdTokenChanged = auth.onIdTokenChanged) === null || _auth_onIdTokenChanged === void 0 ? void 0 : _auth_onIdTokenChanged.call(auth, function(user) {
1183
- if (!user) return;
1184
- user.getIdToken().then(function(token) {
1185
- return socketServiceInstance.setAuthToken(token);
1186
- }).catch(function() {});
1187
- });
1188
1485
  return function() {
1189
- cleanupSubscriptionsRef.current.forEach(function(cleanup) {
1486
+ cleanupSubscriptions.forEach(function(cleanup) {
1190
1487
  return cleanup();
1191
1488
  });
1192
- cleanupSubscriptionsRef.current = [];
1193
- if (typeof unsubscribeAuth === "function") {
1194
- unsubscribeAuth();
1195
- }
1196
1489
  if (!(settings === null || settings === void 0 ? void 0 : settings.disableLogs) && configs.length > 0) {
1197
1490
  console.log("==> ".concat(label || "Cache snapshots", " unsubscribed. "));
1198
1491
  }