@mgarlik/datastore 0.1.2 → 0.1.4

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/index.cjs CHANGED
@@ -85,26 +85,32 @@ function systemLog(..._args) {
85
85
  }
86
86
 
87
87
  // src/handleSocketMessage.ts
88
- var handleSocketMessage = (model, msg, dataProvider) => {
89
- const { dispatch, updateDocument } = dataProvider;
88
+ var handleSocketMessage = (msg, dataProvider) => {
89
+ const { dispatch } = dataProvider;
90
+ console.log("Mam socket message, data: ", msg);
90
91
  const data = JSON.parse(msg);
91
92
  switch (data.action) {
92
93
  case "create":
93
94
  systemLog("sockets", "[create] ", data.model, ", document: ", data.documentId);
95
+ console.log("[SOCKETS] CREATING model:", data.model, ", document: ", data.documentId, " data:", data.data);
94
96
  dispatch?.("createDocument", { model: data.model, documentId: data.documentId, data: data.data });
95
97
  break;
96
98
  case "update":
99
+ console.log(`[SOCKETS] UPDATE model: ${data.model}, document: ${data.documentId}, data: `, data.data);
97
100
  systemLog("sockets", `[update] ${JSON.stringify(data)}`);
98
101
  if (Array.isArray(data.data)) dispatch?.("updateDocuments", { model: data.model, documents: data.data });
99
- else updateDocument?.({ model: data.model, documentId: data.documentId, data: data.data });
102
+ else {
103
+ dispatch?.("updateDocument", { model: data.model, documentId: data.documentId, data: data.data });
104
+ }
100
105
  break;
101
106
  case "delete":
107
+ console.log(`[SOCKETS] DELETE model: ${data.model}, document: ${data.documentId}`);
102
108
  systemLog("sockets", "[delete] model:", data.model, ", document: ", data.documentId);
103
- dispatch?.("deleteDocument", { documentId: data.documentId, data: data.data });
109
+ dispatch?.("deleteDocument", { model: data.model, documentId: data.documentId, data: data.data });
104
110
  break;
105
111
  case "deleteItem":
106
- systemLog("sockets", "DELETE ITEM ", model, ", model: ", data.model, ", data: ", data.data);
107
- dispatch?.("removeItem", { model, documentId: data.data.id });
112
+ systemLog("sockets", "DELETE ITEM ", data.model, ", model: ", data.model, ", data: ", data.data);
113
+ dispatch?.("removeItem", { model: data.model, documentId: data.data.id });
108
114
  break;
109
115
  default:
110
116
  console.error(`Unknown command ${data.action}`);
@@ -512,12 +518,15 @@ function doesValueMatchFilter(objVal, value, documents = {}) {
512
518
  }
513
519
  }
514
520
  function doesObjectMatchFilter(obj, filter, documents = {}) {
521
+ console.log("doesObjectMatchFilter", "Obj", JSON.stringify(obj, null, 2), "Filter", JSON.stringify(filter, null, 2));
515
522
  if (!filter) return true;
516
523
  if (Object.keys(filter)?.includes("$rule")) {
524
+ console.log("Pravidloo: ", filter.$rule);
517
525
  const result2 = doesObjectMatchFilter(obj, filter.$rule, documents);
518
526
  if (result2 === true) {
519
527
  return result2;
520
528
  } else {
529
+ console.log("Vracim chybovou message ", filter.$message);
521
530
  return filter.$message || false;
522
531
  }
523
532
  }
@@ -666,11 +675,20 @@ var saveData = async ({
666
675
  }
667
676
  console.timeEnd(`[SQL] saveData ${providerId}`);
668
677
  };
678
+ var serializeParams = (params) => {
679
+ return Object.fromEntries(
680
+ Object.entries(params).map(([key, value]) => [
681
+ key,
682
+ typeof value === "object" ? JSON.stringify(value) : value
683
+ ])
684
+ );
685
+ };
669
686
  var buildUri = ({
670
687
  method,
671
688
  dataSource,
672
689
  variant
673
690
  }) => {
691
+ console.log("[HANDLE DATA] BUILD URI method ", method, " from", dataSource);
674
692
  if (dataSource.crud) {
675
693
  if (method === "update" && dataSource.crud.updates) {
676
694
  if (variant && dataSource.crud.updates[variant]) return dataSource.crud.updates[variant];
@@ -704,7 +722,7 @@ var getData = async ({ id, dataSource, isPersisting, schema, SQLite, changeTime
704
722
  console.time("Persisted Data");
705
723
  const qDatum = await SQLite.read(`SELECT * FROM documents WHERE model = '${id}' ORDER BY lastUpdate DESC`);
706
724
  systemLog("axios", "SQLite.read Posledni datum update: ", qDatum[0]?.lastUpdate);
707
- if (qDatum[0]?.lastUpdate) params.changeTime = qDatum[0].lastUpdate;
725
+ if (qDatum[0]?.lastUpdate) params.changeTimeFrom = qDatum[0].lastUpdate;
708
726
  persistedData = qDatum.map((item) => {
709
727
  try {
710
728
  const parsedData = typeof item.data === "string" ? JSON.parse(item.data) : item.data;
@@ -721,8 +739,8 @@ var getData = async ({ id, dataSource, isPersisting, schema, SQLite, changeTime
721
739
  console.timeEnd("Persisted Data");
722
740
  }
723
741
  if (dataSource) {
724
- systemLog("axios", "Params: ", JSON.stringify(params));
725
- const axiosResponse = await import_axios.default.get(buildUri({ dataSource, method: "read" }), { params });
742
+ console.log("Stahuji data z ", buildUri({ dataSource, method: "read" }), " s parametry ", params);
743
+ const axiosResponse = await import_axios.default.get(buildUri({ dataSource, method: "read" }), { params: serializeParams(params) });
726
744
  if (schema && !dataSource.readAllFields) {
727
745
  if (Array.isArray(axiosResponse.data.data)) {
728
746
  newData = [];
@@ -1118,9 +1136,12 @@ var DataStoreProvider = (0, import_react.forwardRef)(
1118
1136
  (0, import_react.useEffect)(() => {
1119
1137
  if (isLive) {
1120
1138
  systemLog("dsp", "useEffect[isLive] Sockets: ", JSON.stringify(sockets, null, 2));
1121
- const ss = Object.keys(sockets);
1122
- systemLog("dsp", "useEffect[isLive] registruji", ss);
1123
- if (ss?.length > 0) socket.emit("joinRooms", JSON.stringify(ss));
1139
+ const roomsToJoin = Object.entries(sockets).flatMap(
1140
+ ([roomName, socketItem]) => socketItem.filters.map(({ filter }) => ({ room: roomName, filter }))
1141
+ );
1142
+ console.log("Sokety pro p\u0159ipojen\xED:", roomsToJoin);
1143
+ systemLog("dsp", "useEffect[isLive] registruji", roomsToJoin);
1144
+ if (roomsToJoin.length > 0) socket.emit("joinRooms", roomsToJoin);
1124
1145
  if (!didInitialLiveSyncRef.current) {
1125
1146
  didInitialLiveSyncRef.current = true;
1126
1147
  systemLog("dsp", "useEffect[isLive] Zacinam synchronizovat");
@@ -1134,6 +1155,15 @@ var DataStoreProvider = (0, import_react.forwardRef)(
1134
1155
  (0, import_react.useEffect)(() => {
1135
1156
  socket.on("connect", handleSocketConnect);
1136
1157
  socket.on("disconnect", handleSocketDisconnect);
1158
+ if (socketServer?.params?.socketEvents && socketServer.params.socketEvents.length > 0) {
1159
+ socketServer?.params?.socketEvents?.map(
1160
+ (event) => socket.on(event, (data) => handleSocketMessage(data, socketActionHandlersRef.current))
1161
+ );
1162
+ } else {
1163
+ socket.on("create", (data) => handleSocketMessage(data, socketActionHandlersRef.current));
1164
+ socket.on("update", (data) => handleSocketMessage(data, socketActionHandlersRef.current));
1165
+ socket.on("delete", (data) => handleSocketMessage(data, socketActionHandlersRef.current));
1166
+ }
1137
1167
  return () => {
1138
1168
  socket.off("connect", handleSocketConnect);
1139
1169
  socket.off("disconnect", handleSocketDisconnect);
@@ -1175,8 +1205,9 @@ var DataStoreProvider = (0, import_react.forwardRef)(
1175
1205
  async (id, data) => {
1176
1206
  const providerPreset = presetProviders[id];
1177
1207
  const prov = renderJSONTemplate({ ...providerPreset || {}, id }, data);
1178
- systemLog("dsp", "[INIT PROVIDER] ", id, "(", data || "", ")");
1208
+ console.log("[INIT PROVIDER] ", id, "(", data || "", ")");
1179
1209
  if (typeof prov !== "boolean") {
1210
+ console.log("[INIT PROVIDER] rendered: ", prov);
1180
1211
  return await registerProvider(prov);
1181
1212
  }
1182
1213
  return false;
@@ -1210,6 +1241,7 @@ var DataStoreProvider = (0, import_react.forwardRef)(
1210
1241
  result = await updateDataStore(item.data);
1211
1242
  break;
1212
1243
  case "createDocument":
1244
+ console.log("Dispatcher createDocument", item.data);
1213
1245
  await createDocument(item.data);
1214
1246
  break;
1215
1247
  case "updateDocument":
@@ -1549,14 +1581,27 @@ var DataStoreProvider = (0, import_react.forwardRef)(
1549
1581
  const createDocument = (0, import_react.useCallback)(
1550
1582
  async ({ model, documentId, data }) => {
1551
1583
  const newDocument = data;
1552
- systemLog("dsp", `Registruji model ${model}, documentId ${documentId}, data: ${JSON.stringify(data)}`);
1584
+ console.log(`Registruji model ${model}, documentId ${documentId}, data: ${JSON.stringify(data)}`);
1553
1585
  var providerListenersCount = 0;
1554
1586
  Object.keys(providers).forEach((key) => {
1555
1587
  const provider = providers[key];
1556
1588
  var socketListeners = provider.dataSource?.socketListeners;
1557
1589
  if ((socketListeners?.includes(model) || key === model) && (!provider.dataSource?.filter || filterDocuments(data, provider.dataSource?.filter))) {
1558
- systemLog("dsp", "[createDocument] Provider data: ", provider.data.length, " Bytes, documentId: ", documentId);
1559
1590
  if (!provider.data.includes(documentId)) {
1591
+ setCounterDocuments((prev) => {
1592
+ const newC = { ...prev };
1593
+ if (newC[documentId]) {
1594
+ setDocuments((prev2) => ({
1595
+ ...prev2,
1596
+ [documentId]: { ...prev2[documentId], ...newDocument }
1597
+ }));
1598
+ newC[documentId] = prev[documentId] + 1;
1599
+ } else {
1600
+ setDocuments((prev2) => ({ ...prev2, [documentId]: newDocument }));
1601
+ newC[documentId] = providerListenersCount;
1602
+ }
1603
+ return newC;
1604
+ });
1560
1605
  providerListenersCount++;
1561
1606
  setProviders((prev) => ({
1562
1607
  ...prev,
@@ -1569,24 +1614,14 @@ var DataStoreProvider = (0, import_react.forwardRef)(
1569
1614
  }
1570
1615
  }
1571
1616
  });
1617
+ console.log("Provider listeners count: ", providerListenersCount);
1572
1618
  if (providerListenersCount > 0) {
1573
1619
  if (providers[model]?.isPersisting && persistenceStorage) {
1620
+ console.log("Persistuji dokument ", documentId, " do modelu ", model);
1574
1621
  await persistDocument({ documentId, model, data: newDocument });
1575
1622
  }
1576
- setCounterDocuments((prev) => {
1577
- const newC = { ...prev };
1578
- if (newC[documentId]) {
1579
- setDocuments((prev2) => ({
1580
- ...prev2,
1581
- [documentId]: { ...prev2[documentId], ...newDocument }
1582
- }));
1583
- newC[documentId] = prev[documentId] + providerListenersCount;
1584
- } else {
1585
- setDocuments((prev2) => ({ ...prev2, [documentId]: newDocument }));
1586
- newC[documentId] = providerListenersCount;
1587
- }
1588
- return newC;
1589
- });
1623
+ console.log("Dokument ", documentId, " zaregistrovan do ", providerListenersCount, " provideru");
1624
+ console.log(newDocument);
1590
1625
  return { id: documentId, document: newDocument };
1591
1626
  } else return false;
1592
1627
  },
@@ -1594,6 +1629,7 @@ var DataStoreProvider = (0, import_react.forwardRef)(
1594
1629
  );
1595
1630
  const deleteDocument = (0, import_react.useCallback)(
1596
1631
  async ({ documentId }) => {
1632
+ console.log("Mazani dokumentu ", documentId);
1597
1633
  systemLog("dsp", `[deleteDocument] Mazu document ${documentId}}`);
1598
1634
  await removePersistedDocument(documentId);
1599
1635
  setDocuments((prev) => {
@@ -1660,55 +1696,77 @@ var DataStoreProvider = (0, import_react.forwardRef)(
1660
1696
  [providers]
1661
1697
  );
1662
1698
  const registerProviderSockets = (0, import_react.useCallback)(
1663
- (sockets2) => {
1664
- if (sockets2) {
1665
- systemLog("dsp", "[registerProviderSockets]", sockets2);
1666
- var d = Array.isArray(sockets2) ? sockets2 : [sockets2];
1667
- setSockets((prev) => {
1668
- const newS = { ...prev };
1669
- d.forEach((item) => {
1670
- if (newS[item]) {
1671
- newS[item].listeners = newS[item].listeners + 1;
1699
+ (sockets2, filter) => {
1700
+ if (!sockets2) return;
1701
+ const normalizedFilter = filter ?? {};
1702
+ systemLog("dsp", "[registerProviderSockets]", sockets2, `filter: ${JSON.stringify(normalizedFilter)}`);
1703
+ const d = Array.isArray(sockets2) ? sockets2 : [sockets2];
1704
+ setSockets((prev) => {
1705
+ const newS = { ...prev };
1706
+ d.forEach((item) => {
1707
+ if (newS[item]) {
1708
+ const existingFilter = newS[item].filters.find((f) => (0, import_isEqual.default)(f.filter, normalizedFilter));
1709
+ if (existingFilter) {
1710
+ existingFilter.listeners++;
1711
+ systemLog("dsp", `[registerProviderSockets] Filter uz existuje, navysuji listeners na ${existingFilter.listeners}`);
1672
1712
  } else {
1673
- const roomHandler = (msg) => {
1674
- const { dispatch: currentDispatch, updateDocument: currentUpdateDocument } = socketActionHandlersRef.current;
1675
- handleSocketMessage(item, msg, {
1676
- dispatch: currentDispatch,
1677
- updateDocument: currentUpdateDocument
1678
- });
1679
- };
1680
- socketRoomHandlersRef.current[item] = roomHandler;
1681
- newS[item] = { listeners: 1, data: [] };
1682
- socket.emit("joinRoom", item);
1683
- socket.on(item, roomHandler);
1713
+ newS[item].filters = [...newS[item].filters, { filter: normalizedFilter, listeners: 1 }];
1714
+ socket.emit("joinRoom", { room: item, filter: normalizedFilter });
1715
+ systemLog(
1716
+ "dsp",
1717
+ `[registerProviderSockets] Novy filter, registruji room ${item} s filterem ${JSON.stringify(normalizedFilter)}`
1718
+ );
1684
1719
  }
1685
- });
1686
- return newS;
1720
+ } else {
1721
+ newS[item] = {
1722
+ filters: [{ filter: normalizedFilter, listeners: 1 }],
1723
+ data: []
1724
+ };
1725
+ socket.emit("joinRoom", { room: item, filter: normalizedFilter });
1726
+ systemLog("dsp", `[registerProviderSockets] Nova room ${item}, filter: ${JSON.stringify(normalizedFilter)}`);
1727
+ }
1687
1728
  });
1688
- }
1729
+ return newS;
1730
+ });
1689
1731
  },
1690
1732
  [setSockets, socket]
1691
1733
  );
1692
1734
  const unregisterProviderSockets = (0, import_react.useCallback)(
1693
- (sockets2) => {
1694
- systemLog("dsp", "[unregisterProviderSockets] Mazu sockety ", JSON.stringify(sockets2, null, 2));
1695
- var removeSocketListeners = [];
1696
- var d = Array.isArray(sockets2) ? sockets2 : [sockets2];
1735
+ (sockets2, filter) => {
1736
+ const normalizedFilter = filter ?? {};
1737
+ systemLog(
1738
+ "dsp",
1739
+ "[unregisterProviderSockets] Mazu sockety",
1740
+ JSON.stringify(sockets2, null, 2),
1741
+ `filter: ${JSON.stringify(normalizedFilter)}`
1742
+ );
1743
+ const d = Array.isArray(sockets2) ? sockets2 : [sockets2];
1697
1744
  setSockets((prev) => {
1698
1745
  const newS = { ...prev };
1746
+ const removeSocketListeners = [];
1699
1747
  d.forEach((item) => {
1700
- if (newS[item]?.listeners <= 1) {
1748
+ if (!newS[item]) return;
1749
+ const existingFilter = newS[item].filters.find((f) => (0, import_isEqual.default)(f.filter, normalizedFilter));
1750
+ if (!existingFilter) return;
1751
+ if (existingFilter.listeners <= 1) {
1752
+ newS[item].filters = newS[item].filters.filter((f) => !(0, import_isEqual.default)(f.filter, normalizedFilter));
1753
+ socket.emit("leaveRoom", { room: item, filter: normalizedFilter });
1754
+ systemLog(
1755
+ "dsp",
1756
+ `[unregisterProviderSockets] Filter smazan, odhlaseni room ${item} s filterem ${JSON.stringify(normalizedFilter)}`
1757
+ );
1758
+ } else {
1759
+ existingFilter.listeners--;
1760
+ systemLog("dsp", `[unregisterProviderSockets] Filter listeners snizen na ${existingFilter.listeners}`);
1761
+ }
1762
+ if (newS[item].filters.length === 0) {
1701
1763
  removeSocketListeners.push(item);
1702
- const roomHandler = socketRoomHandlersRef.current[item];
1703
- if (roomHandler) {
1704
- socket.off(item, roomHandler);
1705
- delete socketRoomHandlersRef.current[item];
1706
- }
1707
1764
  delete newS[item];
1708
- } else if (newS[item]) newS[item].listeners = newS[item].listeners - 1;
1765
+ systemLog("dsp", `[unregisterProviderSockets] Room ${item} uplne smazana`);
1766
+ }
1709
1767
  });
1710
1768
  if (removeSocketListeners.length > 0) {
1711
- socket.emit("leaveRooms", JSON.stringify(removeSocketListeners));
1769
+ socket.emit("leaveRooms", removeSocketListeners);
1712
1770
  }
1713
1771
  return newS;
1714
1772
  });
@@ -1721,66 +1779,69 @@ var DataStoreProvider = (0, import_react.forwardRef)(
1721
1779
  setCounterProviders((prev) => {
1722
1780
  if (!prev[id]) return prev;
1723
1781
  if (prev[id] + val > 0) {
1724
- return {
1725
- ...prev,
1726
- [id]: prev[id] + val
1727
- };
1728
- } else {
1729
- setProviders((prevP) => {
1730
- systemLog("dsp", "[DSP] UPDATE PROVIDER - mazu sockets ", id);
1731
- setSockets((prevS) => {
1732
- var removeSocketListeners = [];
1733
- const newS = { ...prevS };
1734
- const providerSocketListeners = prevP[id].dataSource?.socketListeners || [];
1735
- providerSocketListeners.forEach((socketName) => {
1736
- if (!newS[socketName]) return;
1737
- if (newS[socketName].listeners + val <= 0) {
1738
- const roomHandler = socketRoomHandlersRef.current[socketName];
1739
- if (roomHandler) {
1740
- socket.off(socketName, roomHandler);
1741
- delete socketRoomHandlersRef.current[socketName];
1742
- }
1743
- delete newS[socketName];
1744
- removeSocketListeners.push(socketName);
1745
- } else {
1746
- newS[socketName].listeners = newS[socketName].listeners + val;
1747
- }
1748
- });
1749
- if (removeSocketListeners.length > 0) {
1750
- socket.emit("leaveRooms", JSON.stringify(removeSocketListeners));
1782
+ return { ...prev, [id]: prev[id] + val };
1783
+ }
1784
+ setProviders((prevP) => {
1785
+ systemLog("dsp", "[DSP] UPDATE PROVIDER - mazu sockets ", id);
1786
+ setSockets((prevS) => {
1787
+ const newS = { ...prevS };
1788
+ const removeSocketListeners = [];
1789
+ const providerSocketListeners = prevP[id].dataSource?.socketListeners || [];
1790
+ const providerFilter = prevP[id].dataSource?.filter;
1791
+ const normalizedFilter = providerFilter ?? {};
1792
+ providerSocketListeners.forEach((socketName) => {
1793
+ if (!newS[socketName]) return;
1794
+ const existingFilter = newS[socketName].filters.find((f) => (0, import_isEqual.default)(f.filter, normalizedFilter));
1795
+ if (!existingFilter) return;
1796
+ if (existingFilter.listeners + val <= 0) {
1797
+ newS[socketName].filters = newS[socketName].filters.filter((f) => !(0, import_isEqual.default)(f.filter, normalizedFilter));
1798
+ socket.emit("leaveRoom", { room: socketName, filter: normalizedFilter });
1799
+ systemLog("dsp", `[updateProviderListeners] Filter smazan pro room ${socketName}`);
1800
+ } else {
1801
+ existingFilter.listeners = existingFilter.listeners + val;
1802
+ systemLog("dsp", `[updateProviderListeners] Filter listeners snizen na ${existingFilter.listeners}`);
1803
+ }
1804
+ if (newS[socketName].filters.length === 0) {
1805
+ removeSocketListeners.push(socketName);
1806
+ delete newS[socketName];
1807
+ systemLog("dsp", `[updateProviderListeners] Room ${socketName} uplne smazana`);
1751
1808
  }
1752
- return newS;
1753
1809
  });
1754
- setCounterDocuments((prevC) => {
1755
- const newC = { ...prevC };
1756
- prevP[id].data.forEach((document) => {
1757
- if (newC[document] + val <= 0) {
1758
- setDocuments((prev2) => {
1759
- const newD = { ...prev2 };
1760
- delete newD[document];
1761
- return newD;
1762
- });
1763
- delete newC[document];
1764
- } else {
1765
- newC[document] = newC[document] + val;
1766
- }
1767
- });
1768
- return newC;
1810
+ if (removeSocketListeners.length > 0) {
1811
+ socket.emit("leaveRooms", removeSocketListeners);
1812
+ }
1813
+ return newS;
1814
+ });
1815
+ setCounterDocuments((prevC) => {
1816
+ const newC = { ...prevC };
1817
+ prevP[id].data.forEach((document) => {
1818
+ if (newC[document] + val <= 0) {
1819
+ setDocuments((prev2) => {
1820
+ const newD = { ...prev2 };
1821
+ delete newD[document];
1822
+ return newD;
1823
+ });
1824
+ delete newC[document];
1825
+ } else {
1826
+ newC[document] = newC[document] + val;
1827
+ }
1769
1828
  });
1770
- const newP = { ...prevP };
1771
- delete newP[id];
1772
- return newP;
1829
+ return newC;
1773
1830
  });
1774
- const newProvs = { ...prev };
1775
- delete newProvs[id];
1776
- return newProvs;
1777
- }
1831
+ const newP = { ...prevP };
1832
+ delete newP[id];
1833
+ return newP;
1834
+ });
1835
+ const newProvs = { ...prev };
1836
+ delete newProvs[id];
1837
+ return newProvs;
1778
1838
  });
1779
1839
  },
1780
1840
  [setCounterProviders, setProviders, setCounterDocuments, setDocuments, socket]
1781
1841
  );
1782
1842
  const registerProvider = (0, import_react.useCallback)(
1783
1843
  async (newItem) => {
1844
+ console.log("Registruji provider ", newItem.id, " se schema ", newItem.schema);
1784
1845
  systemLog("dsp", "[registerProvider]", newItem.id);
1785
1846
  let result;
1786
1847
  const { id, ...provider } = newItem;
@@ -1848,7 +1909,7 @@ var DataStoreProvider = (0, import_react.forwardRef)(
1848
1909
  [id]: 1
1849
1910
  }));
1850
1911
  if (provider.dataSource?.socketListeners) {
1851
- registerProviderSockets(provider.dataSource.socketListeners);
1912
+ registerProviderSockets(provider.dataSource.socketListeners, provider.dataSource.filter);
1852
1913
  }
1853
1914
  console.timeEnd(`[DSP] VYTVARENI PROVIDERA ${id}`);
1854
1915
  } catch (error) {
@@ -1872,7 +1933,7 @@ var DataStoreProvider = (0, import_react.forwardRef)(
1872
1933
  };
1873
1934
  } else {
1874
1935
  systemLog("dsp", "[unregisterProvider] mazu ", Object.keys(providers));
1875
- unregisterProviderSockets(providers[itemId]?.dataSource.socketListeners);
1936
+ unregisterProviderSockets(providers[itemId]?.dataSource.socketListeners, providers[itemId]?.dataSource.filter);
1876
1937
  systemLog("dsp", "[unregisterProvider] Mazu dokumenty providera ", itemId);
1877
1938
  setCounterDocuments((cd) => {
1878
1939
  const newC = { ...cd };