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