synapse-storage 2.1.1 → 3.0.0

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 (233) hide show
  1. package/dist/_utils/index.js +3 -3
  2. package/dist/api/api.module.js +3 -3
  3. package/dist/api/example.js +2 -2
  4. package/dist/api/index.js +5 -5
  5. package/dist/api/utils/endpoint-headers.js +1 -1
  6. package/dist/api/utils/fetch-base-query.js +1 -1
  7. package/dist/core/index.js +2 -2
  8. package/dist/core/selector/index.js +1 -1
  9. package/dist/core/storage/adapters/base-storage.service.js +1 -1
  10. package/dist/core/storage/adapters/indexed-DB.service.js +2 -2
  11. package/dist/core/storage/adapters/indexed-DB.service.old.js +2 -2
  12. package/dist/core/storage/adapters/local-storage.service.js +2 -2
  13. package/dist/core/storage/adapters/memory-storage.service.js +2 -2
  14. package/dist/core/storage/index.js +9 -9
  15. package/dist/core/storage/middlewares/index.js +1 -1
  16. package/dist/core/storage/utils/cache.util.js +1 -1
  17. package/dist/index.js +5 -9
  18. package/dist/index.js.map +1 -1
  19. package/dist/react/hooks/index.js +2 -2
  20. package/dist/react/index.js +2 -2
  21. package/dist/react/utils/createSynapseCtx.d.ts.map +1 -1
  22. package/dist/react/utils/createSynapseCtx.js.map +1 -1
  23. package/dist/react/utils/index.js +1 -1
  24. package/dist/reactive/dispatcher/index.js +2 -2
  25. package/dist/reactive/dispatcher/middlewares/index.js +1 -1
  26. package/dist/reactive/effects/effects.module.js +1 -1
  27. package/dist/reactive/effects/index.js +1 -1
  28. package/dist/reactive/effects/utils/index.js +2 -2
  29. package/dist/reactive/index.js +2 -2
  30. package/dist/utils/index.js +1 -1
  31. package/package.json +2 -2
  32. package/dist/_examples/_example5.d.ts +0 -1
  33. package/dist/_examples/_example5.d.ts.map +0 -1
  34. package/dist/_examples/_example5.js +0 -184
  35. package/dist/_examples/_example5.js.map +0 -1
  36. package/dist/_examples/_example6.d.ts +0 -1
  37. package/dist/_examples/_example6.d.ts.map +0 -1
  38. package/dist/_examples/_example6.js +0 -168
  39. package/dist/_examples/_example6.js.map +0 -1
  40. package/dist/_examples/example1.d.ts +0 -1
  41. package/dist/_examples/example1.d.ts.map +0 -1
  42. package/dist/_examples/example1.js +0 -240
  43. package/dist/_examples/example1.js.map +0 -1
  44. package/dist/_examples/example2.d.ts +0 -1
  45. package/dist/_examples/example2.d.ts.map +0 -1
  46. package/dist/_examples/example2.js +0 -81
  47. package/dist/_examples/example2.js.map +0 -1
  48. package/dist/_examples/example3.d.ts +0 -1
  49. package/dist/_examples/example3.d.ts.map +0 -1
  50. package/dist/_examples/example3.js +0 -99
  51. package/dist/_examples/example3.js.map +0 -1
  52. package/dist/_examples/example4.d.ts +0 -1
  53. package/dist/_examples/example4.d.ts.map +0 -1
  54. package/dist/_examples/example4.js +0 -172
  55. package/dist/_examples/example4.js.map +0 -1
  56. package/dist/_examples/example5.d.ts +0 -1
  57. package/dist/_examples/example5.d.ts.map +0 -1
  58. package/dist/_examples/example5.js +0 -184
  59. package/dist/_examples/example5.js.map +0 -1
  60. package/dist/_examples/example6.d.ts +0 -1
  61. package/dist/_examples/example6.d.ts.map +0 -1
  62. package/dist/_examples/example6.js +0 -168
  63. package/dist/_examples/example6.js.map +0 -1
  64. package/dist/_examples/plugins.d.ts +0 -1
  65. package/dist/_examples/plugins.d.ts.map +0 -1
  66. package/dist/_examples/plugins.js +0 -176
  67. package/dist/_examples/plugins.js.map +0 -1
  68. package/dist/_examples/pokemons/PokemonList.d.ts +0 -5
  69. package/dist/_examples/pokemons/PokemonList.d.ts.map +0 -1
  70. package/dist/_examples/pokemons/PokemonList.js +0 -166
  71. package/dist/_examples/pokemons/PokemonList.js.map +0 -1
  72. package/dist/_examples/pokemons/api.d.ts +0 -8
  73. package/dist/_examples/pokemons/api.d.ts.map +0 -1
  74. package/dist/_examples/pokemons/api.js +0 -45
  75. package/dist/_examples/pokemons/api.js.map +0 -1
  76. package/dist/_examples/pokemons/app.config.d.ts +0 -15
  77. package/dist/_examples/pokemons/app.config.d.ts.map +0 -1
  78. package/dist/_examples/pokemons/app.config.js +0 -15
  79. package/dist/_examples/pokemons/app.config.js.map +0 -1
  80. package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.d.ts +0 -9
  81. package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.d.ts.map +0 -1
  82. package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.js +0 -122
  83. package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.js.map +0 -1
  84. package/dist/_examples/pokemons/effects/pokemon.effects.d.ts +0 -16
  85. package/dist/_examples/pokemons/effects/pokemon.effects.d.ts.map +0 -1
  86. package/dist/_examples/pokemons/effects/pokemon.effects.js +0 -39
  87. package/dist/_examples/pokemons/effects/pokemon.effects.js.map +0 -1
  88. package/dist/_examples/pokemons/middlewares/pokenon.middlewares.d.ts +0 -4
  89. package/dist/_examples/pokemons/middlewares/pokenon.middlewares.d.ts.map +0 -1
  90. package/dist/_examples/pokemons/middlewares/pokenon.middlewares.js +0 -27
  91. package/dist/_examples/pokemons/middlewares/pokenon.middlewares.js.map +0 -1
  92. package/dist/_examples/pokemons/pokemon.dispatcher.d.ts +0 -9
  93. package/dist/_examples/pokemons/pokemon.dispatcher.d.ts.map +0 -1
  94. package/dist/_examples/pokemons/pokemon.dispatcher.js +0 -122
  95. package/dist/_examples/pokemons/pokemon.dispatcher.js.map +0 -1
  96. package/dist/_examples/pokemons/pokemon.effects.d.ts +0 -5
  97. package/dist/_examples/pokemons/pokemon.effects.d.ts.map +0 -1
  98. package/dist/_examples/pokemons/pokemon.effects.js +0 -39
  99. package/dist/_examples/pokemons/pokemon.effects.js.map +0 -1
  100. package/dist/_examples/pokemons/pokemon.selectors.d.ts +0 -5
  101. package/dist/_examples/pokemons/pokemon.selectors.d.ts.map +0 -1
  102. package/dist/_examples/pokemons/pokemon.selectors.js +0 -10
  103. package/dist/_examples/pokemons/pokemon.selectors.js.map +0 -1
  104. package/dist/_examples/pokemons/pokemon.storage.d.ts +0 -3
  105. package/dist/_examples/pokemons/pokemon.storage.d.ts.map +0 -1
  106. package/dist/_examples/pokemons/pokemon.storage.js +0 -14
  107. package/dist/_examples/pokemons/pokemon.storage.js.map +0 -1
  108. package/dist/_examples/pokemons/pokemon1.selectors.d.ts +0 -5
  109. package/dist/_examples/pokemons/pokemon1.selectors.d.ts.map +0 -1
  110. package/dist/_examples/pokemons/pokemon1.selectors.js +0 -8
  111. package/dist/_examples/pokemons/pokemon1.selectors.js.map +0 -1
  112. package/dist/_examples/pokemons/pokenon.middlewares.d.ts +0 -4
  113. package/dist/_examples/pokemons/pokenon.middlewares.d.ts.map +0 -1
  114. package/dist/_examples/pokemons/pokenon.middlewares.js +0 -27
  115. package/dist/_examples/pokemons/pokenon.middlewares.js.map +0 -1
  116. package/dist/_examples/pokemons/selectors/pokemon.selectors.d.ts +0 -5
  117. package/dist/_examples/pokemons/selectors/pokemon.selectors.d.ts.map +0 -1
  118. package/dist/_examples/pokemons/selectors/pokemon.selectors.js +0 -10
  119. package/dist/_examples/pokemons/selectors/pokemon.selectors.js.map +0 -1
  120. package/dist/_examples/pokemons/selectors/pokemon1.selectors.d.ts +0 -5
  121. package/dist/_examples/pokemons/selectors/pokemon1.selectors.d.ts.map +0 -1
  122. package/dist/_examples/pokemons/selectors/pokemon1.selectors.js +0 -8
  123. package/dist/_examples/pokemons/selectors/pokemon1.selectors.js.map +0 -1
  124. package/dist/_examples/pokemons/storages/pokemon.storage.d.ts +0 -3
  125. package/dist/_examples/pokemons/storages/pokemon.storage.d.ts.map +0 -1
  126. package/dist/_examples/pokemons/storages/pokemon.storage.js +0 -14
  127. package/dist/_examples/pokemons/storages/pokemon.storage.js.map +0 -1
  128. package/dist/_examples/pokemons/store.d.ts +0 -1
  129. package/dist/_examples/pokemons/store.d.ts.map +0 -1
  130. package/dist/_examples/pokemons/store.js +0 -2
  131. package/dist/_examples/pokemons/store.js.map +0 -1
  132. package/dist/_examples/pokemons/store1.d.ts +0 -23
  133. package/dist/_examples/pokemons/store1.d.ts.map +0 -1
  134. package/dist/_examples/pokemons/store1.js +0 -35
  135. package/dist/_examples/pokemons/store1.js.map +0 -1
  136. package/dist/_examples/pokemons/store2.d.ts +0 -23
  137. package/dist/_examples/pokemons/store2.d.ts.map +0 -1
  138. package/dist/_examples/pokemons/store2.js +0 -34
  139. package/dist/_examples/pokemons/store2.js.map +0 -1
  140. package/dist/_examples/pokemons/types.d.ts +0 -26
  141. package/dist/_examples/pokemons/types.d.ts.map +0 -1
  142. package/dist/_examples/pokemons/types.js +0 -2
  143. package/dist/_examples/pokemons/types.js.map +0 -1
  144. package/dist/core/storage/adapters/idb.d.ts +0 -52
  145. package/dist/core/storage/adapters/idb.d.ts.map +0 -1
  146. package/dist/core/storage/adapters/idb.js +0 -528
  147. package/dist/core/storage/adapters/idb.js.map +0 -1
  148. package/dist/core/storage/adapters/indexed-DB.service1.d.ts +0 -38
  149. package/dist/core/storage/adapters/indexed-DB.service1.d.ts.map +0 -1
  150. package/dist/core/storage/adapters/indexed-DB.service1.js +0 -318
  151. package/dist/core/storage/adapters/indexed-DB.service1.js.map +0 -1
  152. package/dist/core/storage/adapters/indexed-DB.service2.d.ts +0 -61
  153. package/dist/core/storage/adapters/indexed-DB.service2.d.ts.map +0 -1
  154. package/dist/core/storage/adapters/indexed-DB.service2.js +0 -596
  155. package/dist/core/storage/adapters/indexed-DB.service2.js.map +0 -1
  156. package/dist/core/storage/factory/createSynapseStorage.factory.d.ts +0 -1
  157. package/dist/core/storage/factory/createSynapseStorage.factory.d.ts.map +0 -1
  158. package/dist/core/storage/factory/createSynapseStorage.factory.js +0 -2
  159. package/dist/core/storage/factory/createSynapseStorage.factory.js.map +0 -1
  160. package/dist/core/storage/factory/index.d.ts +0 -2
  161. package/dist/core/storage/factory/index.d.ts.map +0 -1
  162. package/dist/core/storage/factory/index.js +0 -2
  163. package/dist/core/storage/factory/index.js.map +0 -1
  164. package/dist/examples/_example5.d.ts +0 -1
  165. package/dist/examples/_example5.d.ts.map +0 -1
  166. package/dist/examples/_example5.js +0 -184
  167. package/dist/examples/_example5.js.map +0 -1
  168. package/dist/examples/_example6.d.ts +0 -1
  169. package/dist/examples/_example6.d.ts.map +0 -1
  170. package/dist/examples/_example6.js +0 -168
  171. package/dist/examples/_example6.js.map +0 -1
  172. package/dist/examples/plugins.d.ts +0 -1
  173. package/dist/examples/plugins.d.ts.map +0 -1
  174. package/dist/examples/plugins.js +0 -176
  175. package/dist/examples/plugins.js.map +0 -1
  176. package/dist/examples/pokemons/PokemonList.d.ts +0 -2
  177. package/dist/examples/pokemons/PokemonList.d.ts.map +0 -1
  178. package/dist/examples/pokemons/PokemonList.js +0 -110
  179. package/dist/examples/pokemons/PokemonList.js.map +0 -1
  180. package/dist/examples/pokemons/api.d.ts +0 -22
  181. package/dist/examples/pokemons/api.d.ts.map +0 -1
  182. package/dist/examples/pokemons/api.js +0 -43
  183. package/dist/examples/pokemons/api.js.map +0 -1
  184. package/dist/examples/pokemons/app.config.d.ts +0 -15
  185. package/dist/examples/pokemons/app.config.d.ts.map +0 -1
  186. package/dist/examples/pokemons/app.config.js +0 -15
  187. package/dist/examples/pokemons/app.config.js.map +0 -1
  188. package/dist/examples/pokemons/dispatchers/pokemon.dispatcher.js +0 -128
  189. package/dist/examples/pokemons/dispatchers/pokemon.dispatcher.js.map +0 -1
  190. package/dist/examples/pokemons/effects/pokemon.effects.d.ts +0 -16
  191. package/dist/examples/pokemons/effects/pokemon.effects.d.ts.map +0 -1
  192. package/dist/examples/pokemons/effects/pokemon.effects.js +0 -51
  193. package/dist/examples/pokemons/effects/pokemon.effects.js.map +0 -1
  194. package/dist/examples/pokemons/middlewares/pokenon.middlewares.d.ts +0 -4
  195. package/dist/examples/pokemons/middlewares/pokenon.middlewares.d.ts.map +0 -1
  196. package/dist/examples/pokemons/middlewares/pokenon.middlewares.js +0 -28
  197. package/dist/examples/pokemons/middlewares/pokenon.middlewares.js.map +0 -1
  198. package/dist/examples/pokemons/selectors/pokemon.selectors.d.ts +0 -13
  199. package/dist/examples/pokemons/selectors/pokemon.selectors.d.ts.map +0 -1
  200. package/dist/examples/pokemons/selectors/pokemon.selectors.js +0 -7
  201. package/dist/examples/pokemons/selectors/pokemon.selectors.js.map +0 -1
  202. package/dist/examples/pokemons/storages/pokemon.storage.d.ts +0 -5
  203. package/dist/examples/pokemons/storages/pokemon.storage.d.ts.map +0 -1
  204. package/dist/examples/pokemons/storages/pokemon.storage.js +0 -13
  205. package/dist/examples/pokemons/storages/pokemon.storage.js.map +0 -1
  206. package/dist/examples/pokemons/store.d.ts +0 -35
  207. package/dist/examples/pokemons/store.d.ts.map +0 -1
  208. package/dist/examples/pokemons/store.js +0 -21
  209. package/dist/examples/pokemons/store.js.map +0 -1
  210. package/dist/examples/pokemons/types.d.ts +0 -26
  211. package/dist/examples/pokemons/types.d.ts.map +0 -1
  212. package/dist/examples/pokemons/types.js +0 -2
  213. package/dist/examples/pokemons/types.js.map +0 -1
  214. package/dist/react/utils/createSynapse.d.ts +0 -47
  215. package/dist/react/utils/createSynapse.d.ts.map +0 -1
  216. package/dist/react/utils/createSynapse.js +0 -83
  217. package/dist/react/utils/createSynapse.js.map +0 -1
  218. package/dist/react/utils/createSynapseContext.d.ts +0 -29
  219. package/dist/react/utils/createSynapseContext.d.ts.map +0 -1
  220. package/dist/react/utils/createSynapseContext.js +0 -112
  221. package/dist/react/utils/createSynapseContext.js.map +0 -1
  222. package/dist/utils/chunk.util.d.ts +0 -8
  223. package/dist/utils/chunk.util.d.ts.map +0 -1
  224. package/dist/utils/chunk.util.js +0 -21
  225. package/dist/utils/chunk.util.js.map +0 -1
  226. package/dist/utils/deepMerge.util.d.ts +0 -2
  227. package/dist/utils/deepMerge.util.d.ts.map +0 -1
  228. package/dist/utils/deepMerge.util.js +0 -16
  229. package/dist/utils/deepMerge.util.js.map +0 -1
  230. package/dist/utils/flatMap.util.d.ts +0 -10
  231. package/dist/utils/flatMap.util.d.ts.map +0 -1
  232. package/dist/utils/flatMap.util.js +0 -23
  233. package/dist/utils/flatMap.util.js.map +0 -1
@@ -1,596 +0,0 @@
1
- import { StorageKey } from '../utils/storage-key';
2
- import { BaseStorage } from './base-storage.service';
3
- import { getValueByPath, parsePath, setValueByPath } from './path.utils';
4
- // Class to manage the IndexedDB connection
5
- export class IndexedDBManager {
6
- dbName;
7
- logger;
8
- static instances = new Map();
9
- db = null;
10
- initPromise = null;
11
- storeNames = new Set();
12
- dbVersion;
13
- constructor(dbName, dbVersion, logger) {
14
- this.dbName = dbName;
15
- this.logger = logger;
16
- this.dbVersion = dbVersion;
17
- }
18
- static getInstance(dbName, dbVersion = 1, logger) {
19
- if (!IndexedDBManager.instances.has(dbName)) {
20
- IndexedDBManager.instances.set(dbName, new IndexedDBManager(dbName, dbVersion, logger));
21
- }
22
- const instance = IndexedDBManager.instances.get(dbName);
23
- // Update version if higher version is requested
24
- if (dbVersion > instance.dbVersion) {
25
- instance.dbVersion = dbVersion;
26
- }
27
- return instance;
28
- }
29
- async initialize() {
30
- if (this.db) {
31
- return this.db;
32
- }
33
- if (!this.initPromise) {
34
- this.initPromise = this.openDatabase();
35
- }
36
- return this.initPromise;
37
- }
38
- async ensureStoreExists(storeName) {
39
- await this.initialize();
40
- if (this.db.objectStoreNames.contains(storeName)) {
41
- this.storeNames.add(storeName);
42
- return this.db;
43
- }
44
- this.logger?.debug(`Store "${storeName}" not found, upgrading database`, {
45
- dbName: this.dbName,
46
- currentStores: Array.from(this.db.objectStoreNames),
47
- });
48
- this.db.close();
49
- this.db = null;
50
- this.dbVersion++;
51
- this.initPromise = this.openDatabase([storeName]);
52
- const newDb = await this.initPromise;
53
- this.storeNames.add(storeName);
54
- return newDb;
55
- }
56
- async openDatabase(newStores = []) {
57
- return new Promise((resolve, reject) => {
58
- this.logger?.debug(`Opening database "${this.dbName}" with version ${this.dbVersion}`);
59
- const request = indexedDB.open(this.dbName, this.dbVersion);
60
- request.onerror = () => {
61
- this.logger?.error(`Failed to open database "${this.dbName}"`, { error: request.error });
62
- reject(request.error);
63
- };
64
- request.onsuccess = () => {
65
- this.db = request.result;
66
- // Add existing stores to our set
67
- for (let i = 0; i < this.db.objectStoreNames.length; i++) {
68
- this.storeNames.add(this.db.objectStoreNames[i]);
69
- }
70
- this.logger?.debug(`Database "${this.dbName}" opened successfully`, {
71
- version: this.db.version,
72
- stores: Array.from(this.db.objectStoreNames),
73
- });
74
- resolve(this.db);
75
- };
76
- request.onupgradeneeded = (event) => {
77
- const db = event.target.result;
78
- this.logger?.debug(`Upgrading database "${this.dbName}" to version ${this.dbVersion}`);
79
- // Create new stores that don't exist yet
80
- for (const storeName of newStores) {
81
- if (!db.objectStoreNames.contains(storeName)) {
82
- this.logger?.debug(`Creating store "${storeName}"`);
83
- db.createObjectStore(storeName);
84
- }
85
- }
86
- };
87
- });
88
- }
89
- closeDatabase() {
90
- if (this.db) {
91
- this.db.close();
92
- this.db = null;
93
- this.initPromise = null;
94
- }
95
- }
96
- async deleteDatabase() {
97
- this.closeDatabase();
98
- return new Promise((resolve, reject) => {
99
- const request = indexedDB.deleteDatabase(this.dbName);
100
- request.onsuccess = () => {
101
- this.logger?.debug(`Database "${this.dbName}" deleted successfully`);
102
- IndexedDBManager.instances.delete(this.dbName);
103
- this.storeNames.clear();
104
- resolve();
105
- };
106
- request.onerror = () => {
107
- this.logger?.error(`Failed to delete database "${this.dbName}"`, { error: request.error });
108
- reject(request.error);
109
- };
110
- });
111
- }
112
- async ensureStoresExist(storeNames) {
113
- // Сначала инициализируем базу
114
- await this.initialize();
115
- // Проверяем, какие хранилища уже существуют
116
- const missingStores = storeNames.filter((name) => !this.db.objectStoreNames.contains(name));
117
- // Если все хранилища уже существуют, просто возвращаем базу
118
- if (missingStores.length === 0) {
119
- return this.db;
120
- }
121
- // Иначе нам нужно обновить базу для создания новых хранилищ
122
- this.logger?.debug(`Создание недостающих хранилищ: ${missingStores.join(', ')}`, {
123
- dbName: this.dbName,
124
- currentStores: Array.from(this.db.objectStoreNames),
125
- });
126
- // Закрываем текущее соединение
127
- this.db.close();
128
- this.db = null;
129
- // Увеличиваем версию один раз для всех новых хранилищ
130
- this.dbVersion++;
131
- this.initPromise = this.openDatabase(missingStores);
132
- return this.initPromise;
133
- }
134
- // Метод для получения текущей версии
135
- getCurrentVersion() {
136
- return this.dbVersion;
137
- }
138
- }
139
- /**
140
- * Менеджер для управления версией базы данных IndexedDB
141
- * и создания хранилищ
142
- */
143
- class DBVersionManager {
144
- dbName;
145
- logger;
146
- db = null;
147
- version;
148
- constructor(dbName, initialVersion = 1, logger) {
149
- this.dbName = dbName;
150
- this.logger = logger;
151
- this.version = initialVersion;
152
- }
153
- /**
154
- * Получает текущую версию базы данных
155
- */
156
- getCurrentVersion() {
157
- return this.version;
158
- }
159
- /**
160
- * Открывает базу данных с заданной версией
161
- */
162
- openDatabase(version, newStores = []) {
163
- return new Promise((resolve, reject) => {
164
- this.logger?.debug(`Открытие базы данных "${this.dbName}" с версией ${version}`);
165
- const request = indexedDB.open(this.dbName, version);
166
- request.onerror = () => {
167
- this.logger?.error(`Ошибка при открытии базы данных "${this.dbName}"`, { error: request.error });
168
- reject(request.error);
169
- };
170
- request.onsuccess = () => {
171
- this.db = request.result;
172
- this.version = this.db.version;
173
- this.logger?.debug(`База данных "${this.dbName}" успешно открыта`, {
174
- version: this.db.version,
175
- stores: Array.from(this.db.objectStoreNames),
176
- });
177
- resolve(this.db);
178
- };
179
- request.onupgradeneeded = (event) => {
180
- const db = event.target.result;
181
- this.logger?.debug(`Обновление базы данных "${this.dbName}" до версии ${version}`);
182
- // Создаем все новые хранилища
183
- for (const storeName of newStores) {
184
- if (!db.objectStoreNames.contains(storeName)) {
185
- this.logger?.debug(`Создание хранилища "${storeName}"`);
186
- db.createObjectStore(storeName);
187
- }
188
- }
189
- };
190
- });
191
- }
192
- /**
193
- * Убеждается, что все указанные хранилища существуют в базе данных
194
- */
195
- async ensureStoresExist(storeNames) {
196
- // Если база еще не открыта, открываем ее
197
- if (!this.db) {
198
- this.db = await this.openDatabase(this.version);
199
- }
200
- // Проверяем, какие хранилища отсутствуют
201
- const missingStores = storeNames.filter((name) => !this.db.objectStoreNames.contains(name));
202
- // Если все хранилища уже существуют, просто возвращаем базу
203
- if (missingStores.length === 0) {
204
- return this.db;
205
- }
206
- // Иначе нам нужно обновить базу данных
207
- this.logger?.debug(`Необходимо создать отсутствующие хранилища: ${missingStores.join(', ')}`, {
208
- dbName: this.dbName,
209
- currentVersion: this.version,
210
- });
211
- // Закрываем текущее соединение
212
- this.db.close();
213
- this.db = null;
214
- // Увеличиваем версию и открываем базу с новыми хранилищами
215
- this.version++;
216
- this.db = await this.openDatabase(this.version, missingStores);
217
- return this.db;
218
- }
219
- /**
220
- * Закрывает соединение с базой данных
221
- */
222
- close() {
223
- if (this.db) {
224
- this.db.close();
225
- this.db = null;
226
- }
227
- }
228
- }
229
- export class IndexedDBStorage extends BaseStorage {
230
- DB_NAME;
231
- STORE_NAME;
232
- DB_VERSION;
233
- dbManager;
234
- constructor(config, pluginExecutor, eventEmitter, logger) {
235
- super(config, pluginExecutor, eventEmitter, logger);
236
- const options = config.options;
237
- this.DB_NAME = options.dbName || 'app_storage';
238
- this.STORE_NAME = config.name;
239
- this.DB_VERSION = options.dbVersion || 1;
240
- // Get database manager instance
241
- this.dbManager = IndexedDBManager.getInstance(this.DB_NAME, this.DB_VERSION, logger);
242
- }
243
- async initialize() {
244
- try {
245
- this.logger?.debug(`Initializing IndexedDB storage "${this.STORE_NAME}"`);
246
- await this.dbManager.ensureStoreExists(this.STORE_NAME);
247
- // Проверим еще раз, что хранилище доступно перед инициализацией middleware
248
- try {
249
- const db = await this.dbManager.initialize();
250
- if (!db.objectStoreNames.contains(this.STORE_NAME)) {
251
- throw new Error(`Store "${this.STORE_NAME}" not found after initialization`);
252
- }
253
- }
254
- catch (error) {
255
- this.logger?.error(`Error verifying store "${this.STORE_NAME}" exists:`, { error });
256
- throw error;
257
- }
258
- // Initialize middlewares from BaseStorage
259
- this.initializeMiddlewares();
260
- try {
261
- await this.initializeWithMiddlewares();
262
- this.logger?.debug(`IndexedDB storage "${this.STORE_NAME}" initialized successfully`);
263
- }
264
- catch (error) {
265
- this.logger?.error(`Failed to initialize middleware for store "${this.STORE_NAME}"`, { error });
266
- // Продолжаем работу даже при ошибке middleware
267
- }
268
- return this;
269
- }
270
- catch (error) {
271
- this.logger?.error(`Ошибка инициализации IndexedDB "${this.name}"`, { error });
272
- throw error;
273
- }
274
- }
275
- static async getCurrentDBVersion(dbName) {
276
- return new Promise((resolve) => {
277
- try {
278
- const request = indexedDB.open(dbName);
279
- request.onsuccess = () => {
280
- const version = request.result.version;
281
- request.result.close(); // Важно закрыть соединение
282
- resolve(version);
283
- };
284
- request.onerror = () => {
285
- console.warn(`Ошибка при определении версии БД ${dbName}`, request.error);
286
- resolve(0); // В случае ошибки возвращаем 0
287
- };
288
- }
289
- catch (error) {
290
- console.warn(`Исключение при определении версии БД ${dbName}`, error);
291
- resolve(0);
292
- }
293
- });
294
- }
295
- static async createStorages(dbName, configs, logger) {
296
- // Получаем текущую версию базы данных
297
- const currentVersion = await this.getCurrentDBVersion(dbName);
298
- const initialVersion = currentVersion || 1;
299
- // Создаем менеджер для управления базой данных
300
- const dbManager = new DBVersionManager(dbName, initialVersion, logger);
301
- // Получаем имена всех хранилищ, которые нужно создать
302
- const storeNames = Object.values(configs).map((config) => config.name);
303
- // Предварительно создаем все хранилища в рамках одной операции
304
- await dbManager.ensureStoresExist(storeNames);
305
- // Создаем и инициализируем все хранилища
306
- const result = {};
307
- for (const [key, config] of Object.entries(configs)) {
308
- const storage = new IndexedDBStorage({
309
- ...config,
310
- options: {
311
- dbName,
312
- dbVersion: dbManager.getCurrentVersion(), // Используем актуальную версию
313
- },
314
- }, config.pluginExecutor, config.eventEmitter, logger);
315
- // Инициализируем хранилище
316
- result[key] = await storage.initialize();
317
- }
318
- return result;
319
- }
320
- async getTransaction(mode = 'readonly') {
321
- try {
322
- // Ensure database is open and our store exists
323
- const db = await this.dbManager.ensureStoreExists(this.STORE_NAME);
324
- // Проверяем существование хранилища перед созданием транзакции
325
- if (!db.objectStoreNames.contains(this.STORE_NAME)) {
326
- // Попытка исправить проблему - закрываем и снова открываем
327
- this.logger?.warn(`Object store "${this.STORE_NAME}" not found, attempting to repair`);
328
- db.close();
329
- this.dbManager.closeDatabase();
330
- // Пробуем заново создать хранилище с инкрементом версии
331
- const newDb = await this.dbManager.ensureStoreExists(this.STORE_NAME);
332
- if (!newDb.objectStoreNames.contains(this.STORE_NAME)) {
333
- throw new Error(`Object store "${this.STORE_NAME}" still doesn't exist after repair attempt`);
334
- }
335
- return newDb.transaction(this.STORE_NAME, mode);
336
- }
337
- return db.transaction(this.STORE_NAME, mode);
338
- }
339
- catch (error) {
340
- this.logger?.error(`Failed to create transaction for store "${this.STORE_NAME}"`, { error });
341
- throw error;
342
- }
343
- }
344
- async getObjectStore(mode = 'readonly') {
345
- const transaction = await this.getTransaction(mode);
346
- return transaction.objectStore(this.STORE_NAME);
347
- }
348
- async doGet(key) {
349
- const store = await this.getObjectStore();
350
- // Для пустого ключа возвращаем все состояние
351
- if (key === '') {
352
- return new Promise((resolve, reject) => {
353
- const request = store.getAll();
354
- request.onerror = () => reject(request.error);
355
- request.onsuccess = () => {
356
- const allValues = request.result;
357
- const allKeys = store.getAllKeys();
358
- allKeys.onsuccess = () => {
359
- const state = allKeys.result.reduce((acc, k, index) => {
360
- if (k !== 'root') {
361
- acc[k] = allValues[index];
362
- }
363
- return acc;
364
- }, {});
365
- resolve(state);
366
- };
367
- allKeys.onerror = () => reject(allKeys.error);
368
- };
369
- });
370
- }
371
- // Проверяем, является ли ключ "сырым"
372
- if (key instanceof StorageKey && key.isUnparseable()) {
373
- return new Promise((resolve, reject) => {
374
- const request = store.get(key.valueOf());
375
- request.onerror = () => reject(request.error);
376
- request.onsuccess = () => resolve(request.result);
377
- });
378
- }
379
- // Для вложенного пути
380
- const parts = parsePath(key);
381
- if (parts.length > 1) {
382
- const rootKey = parts[0];
383
- return new Promise((resolve, reject) => {
384
- const request = store.get(rootKey);
385
- request.onerror = () => reject(request.error);
386
- request.onsuccess = () => {
387
- const rootValue = request.result;
388
- if (!rootValue) {
389
- resolve(undefined);
390
- return;
391
- }
392
- const value = getValueByPath(rootValue, parts.slice(1).join('.'));
393
- resolve(value);
394
- };
395
- });
396
- }
397
- // Для простого ключа
398
- return new Promise((resolve, reject) => {
399
- const request = store.get(parts[0]);
400
- request.onerror = () => reject(request.error);
401
- request.onsuccess = () => resolve(request.result);
402
- });
403
- }
404
- async doSet(key, value) {
405
- // Для пустого ключа устанавливаем все состояние
406
- if (key === '') {
407
- const store = await this.getObjectStore('readwrite');
408
- return new Promise((resolve, reject) => {
409
- const tx = store.transaction;
410
- tx.oncomplete = () => {
411
- resolve();
412
- };
413
- tx.onerror = () => {
414
- reject(tx.error);
415
- };
416
- const clearRequest = store.clear();
417
- clearRequest.onsuccess = () => {
418
- const entries = Object.entries(value);
419
- for (const [entryKey, entryValue] of entries) {
420
- store.put(entryValue, entryKey);
421
- }
422
- };
423
- clearRequest.onerror = () => {
424
- reject(clearRequest.error);
425
- };
426
- });
427
- }
428
- const store = await this.getObjectStore('readwrite');
429
- // Для "сырого" ключа
430
- if (key instanceof StorageKey && key.isUnparseable()) {
431
- await this.putValueInStore(store, key.valueOf(), value);
432
- return;
433
- }
434
- // Для вложенного пути
435
- const parts = parsePath(key);
436
- if (parts.length > 1) {
437
- const rootKey = parts[0];
438
- return new Promise((resolve, reject) => {
439
- const request = store.get(rootKey);
440
- request.onerror = () => reject(request.error);
441
- request.onsuccess = () => {
442
- const rootValue = request.result || {};
443
- const updatedValue = setValueByPath(rootValue, parts.slice(1).join('.'), value);
444
- const putRequest = store.put(updatedValue, rootKey);
445
- putRequest.onerror = () => reject(putRequest.error);
446
- putRequest.onsuccess = () => resolve();
447
- };
448
- });
449
- }
450
- // Для простого ключа
451
- await this.putValueInStore(store, parts[0], value);
452
- }
453
- async putValueInStore(store, key, value) {
454
- return new Promise((resolve, reject) => {
455
- const request = store.put(value, key.valueOf());
456
- request.onerror = () => reject(request.error);
457
- request.onsuccess = () => resolve();
458
- });
459
- }
460
- async doUpdate(updates) {
461
- // Group updates
462
- const updatesByRoot = new Map();
463
- const rawUpdates = [];
464
- // Separate "raw" updates from regular ones
465
- for (const { key, value } of updates) {
466
- if (key instanceof StorageKey && key.isUnparseable()) {
467
- rawUpdates.push({ key: key.valueOf(), value });
468
- continue;
469
- }
470
- const parts = parsePath(key);
471
- const rootKey = parts[0];
472
- const path = parts.slice(1);
473
- if (!updatesByRoot.has(rootKey)) {
474
- updatesByRoot.set(rootKey, []);
475
- }
476
- updatesByRoot.get(rootKey).push({ path, value });
477
- }
478
- try {
479
- // Process "raw" updates
480
- for (const { key, value } of rawUpdates) {
481
- const store = await this.getObjectStore('readwrite');
482
- await this.putValueInStore(store, key, value);
483
- }
484
- // Process grouped updates
485
- for (const [rootKey, pathUpdates] of updatesByRoot) {
486
- const rootValue = (await this.doGet(rootKey)) || {};
487
- let updatedValue = { ...rootValue };
488
- for (const { path, value } of pathUpdates) {
489
- if (path.length === 0) {
490
- updatedValue = value;
491
- }
492
- else {
493
- updatedValue = setValueByPath(updatedValue, path.join('.'), value);
494
- }
495
- }
496
- const store = await this.getObjectStore('readwrite');
497
- await this.putValueInStore(store, rootKey, updatedValue);
498
- }
499
- }
500
- catch (error) {
501
- this.logger?.error('Error during update:', { error });
502
- throw error;
503
- }
504
- }
505
- async doDelete(key) {
506
- const store = await this.getObjectStore('readwrite');
507
- // For "raw" key
508
- if (key instanceof StorageKey && key.isUnparseable()) {
509
- return new Promise((resolve, reject) => {
510
- const request = store.delete(key.valueOf());
511
- request.onerror = () => reject(request.error);
512
- request.onsuccess = () => resolve(true);
513
- });
514
- }
515
- const parts = parsePath(key);
516
- // For simple key
517
- if (parts.length === 1) {
518
- return new Promise((resolve, reject) => {
519
- const request = store.delete(parts[0]);
520
- request.onerror = () => reject(request.error);
521
- request.onsuccess = () => resolve(true);
522
- });
523
- }
524
- // For nested path
525
- const rootKey = parts[0];
526
- return new Promise((resolve, reject) => {
527
- const getRequest = store.get(rootKey);
528
- getRequest.onerror = () => reject(getRequest.error);
529
- getRequest.onsuccess = () => {
530
- const rootValue = getRequest.result;
531
- if (!rootValue) {
532
- resolve(false);
533
- return;
534
- }
535
- const parent = getValueByPath(rootValue, parts.slice(0, -1).join('.'));
536
- const lastKey = parts[parts.length - 1];
537
- if (!parent || !(lastKey in parent)) {
538
- resolve(false);
539
- return;
540
- }
541
- if (Array.isArray(parent)) {
542
- const index = parseInt(lastKey, 10);
543
- if (!isNaN(index)) {
544
- parent.splice(index, 1);
545
- }
546
- else {
547
- // @ts-ignore
548
- delete parent[lastKey];
549
- }
550
- }
551
- else {
552
- delete parent[lastKey];
553
- }
554
- const putRequest = store.put(rootValue, rootKey);
555
- putRequest.onerror = () => reject(putRequest.error);
556
- putRequest.onsuccess = () => resolve(true);
557
- };
558
- });
559
- }
560
- async doClear() {
561
- const store = await this.getObjectStore('readwrite');
562
- return new Promise((resolve, reject) => {
563
- const request = store.clear();
564
- request.onsuccess = () => resolve();
565
- request.onerror = () => reject(request.error);
566
- });
567
- }
568
- async doKeys() {
569
- const store = await this.getObjectStore();
570
- const request = store.getAllKeys();
571
- return new Promise((resolve, reject) => {
572
- request.onsuccess = () => {
573
- resolve(request.result);
574
- };
575
- request.onerror = () => reject(request.error);
576
- });
577
- }
578
- async doHas(key) {
579
- const value = await this.doGet(key);
580
- return value !== undefined;
581
- }
582
- async doDestroy() {
583
- try {
584
- // Clear the store
585
- await this.doClear();
586
- // Note: We don't actually delete the object store from the database
587
- // as that would require reopening the DB with a higher version.
588
- // An empty object store takes minimal space.
589
- }
590
- catch (error) {
591
- this.logger?.error(`Error destroying store "${this.STORE_NAME}"`, { error });
592
- throw error;
593
- }
594
- }
595
- }
596
- //# sourceMappingURL=indexed-DB.service2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"indexed-DB.service2.js","sourceRoot":"","sources":["../../../../src/core/storage/adapters/indexed-DB.service2.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=createSynapseStorage.factory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createSynapseStorage.factory.d.ts","sourceRoot":"","sources":["../../../../src/core/storage/factory/createSynapseStorage.factory.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=createSynapseStorage.factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createSynapseStorage.factory.js","sourceRoot":"","sources":["../../../../src/core/storage/factory/createSynapseStorage.factory.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export * from './createSynapseStorage.factory';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/storage/factory/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA"}
@@ -1,2 +0,0 @@
1
- export * from './createSynapseStorage.factory';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/storage/factory/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA"}