synapse-storage 3.0.19 → 4.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 (351) hide show
  1. package/README.md +661 -104
  2. package/dist/_utils/chunk.util.d.ts +8 -0
  3. package/dist/_utils/chunk.util.d.ts.map +1 -0
  4. package/dist/_utils/chunk.util.js +21 -0
  5. package/dist/_utils/chunk.util.js.map +1 -0
  6. package/dist/_utils/deepMerge.util.d.ts +2 -0
  7. package/dist/_utils/deepMerge.util.d.ts.map +1 -0
  8. package/dist/_utils/deepMerge.util.js +19 -0
  9. package/dist/_utils/deepMerge.util.js.map +1 -0
  10. package/dist/_utils/error-handling.util.d.ts +50 -0
  11. package/dist/_utils/error-handling.util.d.ts.map +1 -0
  12. package/dist/_utils/error-handling.util.js +67 -0
  13. package/dist/_utils/error-handling.util.js.map +1 -0
  14. package/dist/_utils/flatMap.util.d.ts +10 -0
  15. package/dist/_utils/flatMap.util.d.ts.map +1 -0
  16. package/dist/_utils/flatMap.util.js +23 -0
  17. package/dist/_utils/flatMap.util.js.map +1 -0
  18. package/dist/_utils/index.d.ts +6 -0
  19. package/dist/_utils/index.d.ts.map +1 -0
  20. package/dist/_utils/index.js +13 -0
  21. package/dist/_utils/index.js.map +1 -0
  22. package/dist/_utils/logger-console.util.d.ts +9 -0
  23. package/dist/_utils/logger-console.util.d.ts.map +1 -0
  24. package/dist/_utils/logger-console.util.js +14 -0
  25. package/dist/_utils/logger-console.util.js.map +1 -0
  26. package/dist/api/api.module.d.ts +46 -0
  27. package/dist/api/api.module.d.ts.map +1 -0
  28. package/dist/api/api.module.js +121 -0
  29. package/dist/api/api.module.js.map +1 -0
  30. package/dist/api/components/endpoint.d.ts +57 -0
  31. package/dist/api/components/endpoint.d.ts.map +1 -0
  32. package/dist/api/components/endpoint.js +385 -0
  33. package/dist/api/components/endpoint.js.map +1 -0
  34. package/dist/api/components/query-storage.d.ts +100 -0
  35. package/dist/api/components/query-storage.d.ts.map +1 -0
  36. package/dist/api/components/query-storage.js +293 -0
  37. package/dist/api/components/query-storage.js.map +1 -0
  38. package/dist/api/example.d.ts +83 -0
  39. package/dist/api/example.d.ts.map +1 -0
  40. package/dist/api/example.js +90 -0
  41. package/dist/api/example.js.map +1 -0
  42. package/dist/api/index.d.ts +4 -0
  43. package/dist/api/index.d.ts.map +1 -0
  44. package/dist/api/index.js +11 -0
  45. package/dist/api/index.js.map +1 -0
  46. package/dist/api/types/api.interface.d.ts +126 -0
  47. package/dist/api/types/api.interface.d.ts.map +1 -0
  48. package/dist/api/types/api.interface.js +15 -0
  49. package/dist/api/types/api.interface.js.map +1 -0
  50. package/dist/api/types/endpoint.interface.d.ts +118 -0
  51. package/dist/api/types/endpoint.interface.d.ts.map +1 -0
  52. package/dist/api/types/endpoint.interface.js +6 -0
  53. package/dist/api/types/endpoint.interface.js.map +1 -0
  54. package/dist/api/types/query.interface.d.ts +85 -0
  55. package/dist/api/types/query.interface.d.ts.map +1 -0
  56. package/dist/api/types/query.interface.js +6 -0
  57. package/dist/api/types/query.interface.js.map +1 -0
  58. package/dist/api/utils/api-helpers.d.ts +22 -0
  59. package/dist/api/utils/api-helpers.d.ts.map +1 -0
  60. package/dist/api/utils/api-helpers.js +44 -0
  61. package/dist/api/utils/api-helpers.js.map +1 -0
  62. package/dist/api/utils/create-header-context.d.ts +10 -0
  63. package/dist/api/utils/create-header-context.d.ts.map +1 -0
  64. package/dist/api/utils/create-header-context.js +40 -0
  65. package/dist/api/utils/create-header-context.js.map +1 -0
  66. package/dist/api/utils/endpoint-headers.d.ts +23 -0
  67. package/dist/api/utils/endpoint-headers.d.ts.map +1 -0
  68. package/dist/api/utils/endpoint-headers.js +61 -0
  69. package/dist/api/utils/endpoint-headers.js.map +1 -0
  70. package/dist/api/utils/fetch-base-query.d.ts +9 -0
  71. package/dist/api/utils/fetch-base-query.d.ts.map +1 -0
  72. package/dist/api/utils/fetch-base-query.js +242 -0
  73. package/dist/api/utils/fetch-base-query.js.map +1 -0
  74. package/dist/api/utils/file-utils.d.ts +43 -0
  75. package/dist/api/utils/file-utils.d.ts.map +1 -0
  76. package/dist/api/utils/file-utils.js +102 -0
  77. package/dist/api/utils/file-utils.js.map +1 -0
  78. package/dist/api/utils/get-cacheable-headers.d.ts +8 -0
  79. package/dist/api/utils/get-cacheable-headers.d.ts.map +1 -0
  80. package/dist/api/utils/get-cacheable-headers.js +23 -0
  81. package/dist/api/utils/get-cacheable-headers.js.map +1 -0
  82. package/dist/core/index.d.ts +3 -0
  83. package/dist/core/index.d.ts.map +1 -0
  84. package/dist/core/index.js +7 -0
  85. package/dist/core/index.js.map +1 -0
  86. package/dist/core/selector/index.d.ts +3 -0
  87. package/dist/core/selector/index.d.ts.map +1 -0
  88. package/dist/core/selector/index.js +5 -0
  89. package/dist/core/selector/index.js.map +1 -0
  90. package/dist/{selector.interface-CA5y-kD_.d.ts → core/selector/selector.interface.d.ts} +41 -8
  91. package/dist/core/selector/selector.interface.d.ts.map +1 -0
  92. package/dist/core/selector/selector.interface.js +7 -0
  93. package/dist/core/selector/selector.interface.js.map +1 -0
  94. package/dist/core/selector/selector.module.d.ts +36 -0
  95. package/dist/core/selector/selector.module.d.ts.map +1 -0
  96. package/dist/core/selector/selector.module.js +412 -0
  97. package/dist/core/selector/selector.module.js.map +1 -0
  98. package/dist/core/storage/adapters/async-base-storage.service.d.ts +49 -0
  99. package/dist/core/storage/adapters/async-base-storage.service.d.ts.map +1 -0
  100. package/dist/core/storage/adapters/async-base-storage.service.js +505 -0
  101. package/dist/core/storage/adapters/async-base-storage.service.js.map +1 -0
  102. package/dist/core/storage/adapters/indexed-DB.service.d.ts +89 -0
  103. package/dist/core/storage/adapters/indexed-DB.service.d.ts.map +1 -0
  104. package/dist/core/storage/adapters/indexed-DB.service.js +596 -0
  105. package/dist/core/storage/adapters/indexed-DB.service.js.map +1 -0
  106. package/dist/core/storage/adapters/local-storage.service.d.ts +23 -0
  107. package/dist/core/storage/adapters/local-storage.service.d.ts.map +1 -0
  108. package/dist/core/storage/adapters/local-storage.service.js +111 -0
  109. package/dist/core/storage/adapters/local-storage.service.js.map +1 -0
  110. package/dist/core/storage/adapters/memory-storage.service.d.ts +24 -0
  111. package/dist/core/storage/adapters/memory-storage.service.d.ts.map +1 -0
  112. package/dist/core/storage/adapters/memory-storage.service.js +110 -0
  113. package/dist/core/storage/adapters/memory-storage.service.js.map +1 -0
  114. package/dist/core/storage/adapters/path.utils.d.ts +5 -0
  115. package/dist/core/storage/adapters/path.utils.d.ts.map +1 -0
  116. package/dist/core/storage/adapters/path.utils.js +42 -0
  117. package/dist/core/storage/adapters/path.utils.js.map +1 -0
  118. package/dist/core/storage/adapters/storage-core.d.ts +61 -0
  119. package/dist/core/storage/adapters/storage-core.d.ts.map +1 -0
  120. package/dist/core/storage/adapters/storage-core.js +221 -0
  121. package/dist/core/storage/adapters/storage-core.js.map +1 -0
  122. package/dist/core/storage/adapters/sync-base-storage.service.d.ts +56 -0
  123. package/dist/core/storage/adapters/sync-base-storage.service.d.ts.map +1 -0
  124. package/dist/core/storage/adapters/sync-base-storage.service.js +481 -0
  125. package/dist/core/storage/adapters/sync-base-storage.service.js.map +1 -0
  126. package/dist/core/storage/index.d.ts +16 -0
  127. package/dist/core/storage/index.d.ts.map +1 -0
  128. package/dist/core/storage/index.js +38 -0
  129. package/dist/core/storage/index.js.map +1 -0
  130. package/dist/core/storage/middlewares/broadcast.middleware.d.ts +9 -0
  131. package/dist/core/storage/middlewares/broadcast.middleware.d.ts.map +1 -0
  132. package/dist/core/storage/middlewares/broadcast.middleware.js +197 -0
  133. package/dist/core/storage/middlewares/broadcast.middleware.js.map +1 -0
  134. package/dist/core/storage/middlewares/index.d.ts +9 -0
  135. package/dist/core/storage/middlewares/index.d.ts.map +1 -0
  136. package/dist/core/storage/middlewares/index.js +17 -0
  137. package/dist/core/storage/middlewares/index.js.map +1 -0
  138. package/dist/core/storage/middlewares/storage-batching.middleware.d.ts +7 -0
  139. package/dist/core/storage/middlewares/storage-batching.middleware.d.ts.map +1 -0
  140. package/dist/core/storage/middlewares/storage-batching.middleware.js +108 -0
  141. package/dist/core/storage/middlewares/storage-batching.middleware.js.map +1 -0
  142. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.d.ts +7 -0
  143. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.d.ts.map +1 -0
  144. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.js +43 -0
  145. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.js.map +1 -0
  146. package/dist/core/storage/middlewares/sync-broadcast.middleware.d.ts +9 -0
  147. package/dist/core/storage/middlewares/sync-broadcast.middleware.d.ts.map +1 -0
  148. package/dist/core/storage/middlewares/sync-broadcast.middleware.js +177 -0
  149. package/dist/core/storage/middlewares/sync-broadcast.middleware.js.map +1 -0
  150. package/dist/core/storage/middlewares/sync-storage-batching.middleware.d.ts +6 -0
  151. package/dist/core/storage/middlewares/sync-storage-batching.middleware.d.ts.map +1 -0
  152. package/dist/core/storage/middlewares/sync-storage-batching.middleware.js +56 -0
  153. package/dist/core/storage/middlewares/sync-storage-batching.middleware.js.map +1 -0
  154. package/dist/core/storage/middlewares/sync-storage-shallow-compare.middleware.d.ts +7 -0
  155. package/dist/core/storage/middlewares/sync-storage-shallow-compare.middleware.d.ts.map +1 -0
  156. package/dist/core/storage/middlewares/sync-storage-shallow-compare.middleware.js +39 -0
  157. package/dist/core/storage/middlewares/sync-storage-shallow-compare.middleware.js.map +1 -0
  158. package/dist/core/storage/modules/plugin/plugin.interface.d.ts +101 -0
  159. package/dist/core/storage/modules/plugin/plugin.interface.d.ts.map +1 -0
  160. package/dist/core/storage/modules/plugin/plugin.interface.js +8 -0
  161. package/dist/core/storage/modules/plugin/plugin.interface.js.map +1 -0
  162. package/dist/core/storage/modules/plugin/plugin.service.d.ts +49 -0
  163. package/dist/core/storage/modules/plugin/plugin.service.d.ts.map +1 -0
  164. package/dist/core/storage/modules/plugin/plugin.service.js +406 -0
  165. package/dist/core/storage/modules/plugin/plugin.service.js.map +1 -0
  166. package/dist/core/storage/modules/singleton/mixin.util.d.ts +6 -0
  167. package/dist/core/storage/modules/singleton/mixin.util.d.ts.map +1 -0
  168. package/dist/core/storage/modules/singleton/mixin.util.js +30 -0
  169. package/dist/core/storage/modules/singleton/mixin.util.js.map +1 -0
  170. package/dist/core/storage/modules/singleton/models.d.ts +143 -0
  171. package/dist/core/storage/modules/singleton/models.d.ts.map +1 -0
  172. package/dist/core/storage/modules/singleton/models.js +60 -0
  173. package/dist/core/storage/modules/singleton/models.js.map +1 -0
  174. package/dist/core/storage/modules/singleton/singleton.util.d.ts +36 -0
  175. package/dist/core/storage/modules/singleton/singleton.util.d.ts.map +1 -0
  176. package/dist/core/storage/modules/singleton/singleton.util.js +216 -0
  177. package/dist/core/storage/modules/singleton/singleton.util.js.map +1 -0
  178. package/dist/core/storage/storage.interface.d.ts +168 -0
  179. package/dist/core/storage/storage.interface.d.ts.map +1 -0
  180. package/dist/core/storage/storage.interface.js +23 -0
  181. package/dist/core/storage/storage.interface.js.map +1 -0
  182. package/dist/core/storage/utils/broadcast.util.d.ts +49 -0
  183. package/dist/core/storage/utils/broadcast.util.d.ts.map +1 -0
  184. package/dist/core/storage/utils/broadcast.util.js +141 -0
  185. package/dist/core/storage/utils/broadcast.util.js.map +1 -0
  186. package/dist/core/storage/utils/cache.util.d.ts +33 -0
  187. package/dist/core/storage/utils/cache.util.d.ts.map +1 -0
  188. package/dist/core/storage/utils/cache.util.js +54 -0
  189. package/dist/core/storage/utils/cache.util.js.map +1 -0
  190. package/dist/core/storage/utils/middleware-module.d.ts +94 -0
  191. package/dist/core/storage/utils/middleware-module.d.ts.map +1 -0
  192. package/dist/core/storage/utils/middleware-module.js +258 -0
  193. package/dist/core/storage/utils/middleware-module.js.map +1 -0
  194. package/dist/core/storage/utils/path-selector.util.d.ts +15 -0
  195. package/dist/core/storage/utils/path-selector.util.d.ts.map +1 -0
  196. package/dist/core/storage/utils/path-selector.util.js +58 -0
  197. package/dist/core/storage/utils/path-selector.util.js.map +1 -0
  198. package/dist/core/storage/utils/state-diff.util.d.ts +14 -0
  199. package/dist/core/storage/utils/state-diff.util.d.ts.map +1 -0
  200. package/dist/core/storage/utils/state-diff.util.js +88 -0
  201. package/dist/core/storage/utils/state-diff.util.js.map +1 -0
  202. package/dist/core/storage/utils/storage-factory.util.d.ts +21 -0
  203. package/dist/core/storage/utils/storage-factory.util.d.ts.map +1 -0
  204. package/dist/core/storage/utils/storage-factory.util.js +40 -0
  205. package/dist/core/storage/utils/storage-factory.util.js.map +1 -0
  206. package/dist/core/storage/utils/storage-key.d.ts +11 -0
  207. package/dist/core/storage/utils/storage-key.d.ts.map +1 -0
  208. package/dist/core/storage/utils/storage-key.js +24 -0
  209. package/dist/core/storage/utils/storage-key.js.map +1 -0
  210. package/dist/core/storage/utils/storage.utils.d.ts +17 -0
  211. package/dist/core/storage/utils/storage.utils.d.ts.map +1 -0
  212. package/dist/core/storage/utils/storage.utils.js +57 -0
  213. package/dist/core/storage/utils/storage.utils.js.map +1 -0
  214. package/dist/index.d.ts +10 -12
  215. package/dist/index.d.ts.map +1 -0
  216. package/dist/index.js +17 -1
  217. package/dist/index.js.map +1 -0
  218. package/dist/react/hooks/index.d.ts +5 -0
  219. package/dist/react/hooks/index.d.ts.map +1 -0
  220. package/dist/react/hooks/index.js +11 -0
  221. package/dist/react/hooks/index.js.map +1 -0
  222. package/dist/react/hooks/useCreateStorage.d.ts +39 -0
  223. package/dist/react/hooks/useCreateStorage.d.ts.map +1 -0
  224. package/dist/react/hooks/useCreateStorage.js +137 -0
  225. package/dist/react/hooks/useCreateStorage.js.map +1 -0
  226. package/dist/react/hooks/useSelector.d.ts +21 -0
  227. package/dist/react/hooks/useSelector.d.ts.map +1 -0
  228. package/dist/react/hooks/useSelector.js +56 -0
  229. package/dist/react/hooks/useSelector.js.map +1 -0
  230. package/dist/react/hooks/useStorage.d.ts +39 -0
  231. package/dist/react/hooks/useStorage.d.ts.map +1 -0
  232. package/dist/react/hooks/useStorage.js +78 -0
  233. package/dist/react/hooks/useStorage.js.map +1 -0
  234. package/dist/react/hooks/useStorageSubscribe.d.ts +16 -0
  235. package/dist/react/hooks/useStorageSubscribe.d.ts.map +1 -0
  236. package/dist/react/hooks/useStorageSubscribe.js +55 -0
  237. package/dist/react/hooks/useStorageSubscribe.js.map +1 -0
  238. package/dist/react/index.d.ts +3 -0
  239. package/dist/react/index.d.ts.map +1 -0
  240. package/dist/react/index.js +7 -0
  241. package/dist/react/index.js.map +1 -0
  242. package/dist/react/utils/awaitSynapse.d.ts +34 -0
  243. package/dist/react/utils/awaitSynapse.d.ts.map +1 -0
  244. package/dist/react/utils/awaitSynapse.js +87 -0
  245. package/dist/react/utils/awaitSynapse.js.map +1 -0
  246. package/dist/react/utils/createSynapseCtx.d.ts +33 -0
  247. package/dist/react/utils/createSynapseCtx.d.ts.map +1 -0
  248. package/dist/react/utils/createSynapseCtx.js +139 -0
  249. package/dist/react/utils/createSynapseCtx.js.map +1 -0
  250. package/dist/react/utils/index.d.ts +3 -0
  251. package/dist/react/utils/index.d.ts.map +1 -0
  252. package/dist/react/utils/index.js +9 -0
  253. package/dist/react/utils/index.js.map +1 -0
  254. package/dist/reactive/dispatcher/dispatcher.module.d.ts +216 -0
  255. package/dist/reactive/dispatcher/dispatcher.module.d.ts.map +1 -0
  256. package/dist/reactive/dispatcher/dispatcher.module.js +384 -0
  257. package/dist/reactive/dispatcher/dispatcher.module.js.map +1 -0
  258. package/dist/reactive/dispatcher/index.d.ts +4 -0
  259. package/dist/reactive/dispatcher/index.d.ts.map +1 -0
  260. package/dist/reactive/dispatcher/index.js +9 -0
  261. package/dist/reactive/dispatcher/index.js.map +1 -0
  262. package/dist/reactive/dispatcher/middlewares/index.d.ts +2 -0
  263. package/dist/reactive/dispatcher/middlewares/index.d.ts.map +1 -0
  264. package/dist/reactive/dispatcher/middlewares/index.js +5 -0
  265. package/dist/reactive/dispatcher/middlewares/index.js.map +1 -0
  266. package/dist/reactive/dispatcher/middlewares/logger.middleware.d.ts +37 -0
  267. package/dist/reactive/dispatcher/middlewares/logger.middleware.d.ts.map +1 -0
  268. package/dist/reactive/dispatcher/middlewares/logger.middleware.js +188 -0
  269. package/dist/reactive/dispatcher/middlewares/logger.middleware.js.map +1 -0
  270. package/dist/reactive/dispatcher/standalone.d.ts +112 -0
  271. package/dist/reactive/dispatcher/standalone.d.ts.map +1 -0
  272. package/dist/reactive/dispatcher/standalone.js +142 -0
  273. package/dist/reactive/dispatcher/standalone.js.map +1 -0
  274. package/dist/reactive/effects/effects.module.d.ts +225 -0
  275. package/dist/reactive/effects/effects.module.d.ts.map +1 -0
  276. package/dist/reactive/effects/effects.module.js +356 -0
  277. package/dist/reactive/effects/effects.module.js.map +1 -0
  278. package/dist/reactive/effects/index.d.ts +4 -0
  279. package/dist/reactive/effects/index.d.ts.map +1 -0
  280. package/dist/reactive/effects/index.js +11 -0
  281. package/dist/reactive/effects/index.js.map +1 -0
  282. package/dist/reactive/effects/utils/chunkRequestConsistent.d.ts +12 -0
  283. package/dist/reactive/effects/utils/chunkRequestConsistent.d.ts.map +1 -0
  284. package/dist/reactive/effects/utils/chunkRequestConsistent.js +25 -0
  285. package/dist/reactive/effects/utils/chunkRequestConsistent.js.map +1 -0
  286. package/dist/reactive/effects/utils/chunkRequestParallel.d.ts +12 -0
  287. package/dist/reactive/effects/utils/chunkRequestParallel.d.ts.map +1 -0
  288. package/dist/reactive/effects/utils/chunkRequestParallel.js +22 -0
  289. package/dist/reactive/effects/utils/chunkRequestParallel.js.map +1 -0
  290. package/dist/reactive/effects/utils/fromRequest.d.ts +40 -0
  291. package/dist/reactive/effects/utils/fromRequest.d.ts.map +1 -0
  292. package/dist/reactive/effects/utils/fromRequest.js +64 -0
  293. package/dist/reactive/effects/utils/fromRequest.js.map +1 -0
  294. package/dist/reactive/effects/utils/index.d.ts +5 -0
  295. package/dist/reactive/effects/utils/index.d.ts.map +1 -0
  296. package/dist/reactive/effects/utils/index.js +11 -0
  297. package/dist/reactive/effects/utils/index.js.map +1 -0
  298. package/dist/reactive/effects/utils/toObservable.d.ts +23 -0
  299. package/dist/reactive/effects/utils/toObservable.d.ts.map +1 -0
  300. package/dist/reactive/effects/utils/toObservable.js +39 -0
  301. package/dist/reactive/effects/utils/toObservable.js.map +1 -0
  302. package/dist/reactive/index.d.ts +3 -0
  303. package/dist/reactive/index.d.ts.map +1 -0
  304. package/dist/reactive/index.js +7 -0
  305. package/dist/reactive/index.js.map +1 -0
  306. package/dist/utils/createEventBus.d.ts +87 -0
  307. package/dist/utils/createEventBus.d.ts.map +1 -0
  308. package/dist/utils/createEventBus.js +215 -0
  309. package/dist/utils/createEventBus.js.map +1 -0
  310. package/dist/utils/createSynapse/createSynapse.d.ts +9 -0
  311. package/dist/utils/createSynapse/createSynapse.d.ts.map +1 -0
  312. package/dist/utils/createSynapse/createSynapse.js +103 -0
  313. package/dist/utils/createSynapse/createSynapse.js.map +1 -0
  314. package/dist/utils/createSynapse/index.d.ts +3 -0
  315. package/dist/utils/createSynapse/index.d.ts.map +1 -0
  316. package/dist/utils/createSynapse/index.js +6 -0
  317. package/dist/utils/createSynapse/index.js.map +1 -0
  318. package/dist/utils/createSynapse/types.d.ts +93 -0
  319. package/dist/utils/createSynapse/types.d.ts.map +1 -0
  320. package/dist/utils/createSynapse/types.js +6 -0
  321. package/dist/utils/createSynapse/types.js.map +1 -0
  322. package/dist/utils/createSynapse/validate.d.ts +2 -0
  323. package/dist/utils/createSynapse/validate.d.ts.map +1 -0
  324. package/dist/utils/createSynapse/validate.js +76 -0
  325. package/dist/utils/createSynapse/validate.js.map +1 -0
  326. package/dist/utils/createSynapse/waitForDependencies.d.ts +3 -0
  327. package/dist/utils/createSynapse/waitForDependencies.d.ts.map +1 -0
  328. package/dist/utils/createSynapse/waitForDependencies.js +40 -0
  329. package/dist/utils/createSynapse/waitForDependencies.js.map +1 -0
  330. package/dist/utils/createSynapseAwaiter.d.ts +46 -0
  331. package/dist/utils/createSynapseAwaiter.d.ts.map +1 -0
  332. package/dist/utils/createSynapseAwaiter.js +102 -0
  333. package/dist/utils/createSynapseAwaiter.js.map +1 -0
  334. package/dist/utils/index.d.ts +4 -0
  335. package/dist/utils/index.d.ts.map +1 -0
  336. package/dist/utils/index.js +12 -0
  337. package/dist/utils/index.js.map +1 -0
  338. package/package.json +17 -21
  339. package/dist/api.d.ts +0 -365
  340. package/dist/api.js +0 -1
  341. package/dist/core.d.ts +0 -106
  342. package/dist/core.js +0 -1
  343. package/dist/createSynapse-vkfKjRob.d.ts +0 -97
  344. package/dist/dispatcher.module-BOsMHbD5.d.ts +0 -360
  345. package/dist/react.d.ts +0 -119
  346. package/dist/react.js +0 -1
  347. package/dist/reactive.d.ts +0 -35
  348. package/dist/reactive.js +0 -1
  349. package/dist/storage.interface-BA_ktyDz.d.ts +0 -591
  350. package/dist/utils.d.ts +0 -139
  351. package/dist/utils.js +0 -1
@@ -0,0 +1,481 @@
1
+ import { syncBatchingMiddleware } from "../middlewares/sync-storage-batching.middleware.js";
2
+ import { syncShallowCompareMiddleware } from "../middlewares/sync-storage-shallow-compare.middleware.js";
3
+ import { StorageEvents } from "../storage.interface.js";
4
+ import { SyncMiddlewareModule, VALUE_NOT_CHANGED } from "../utils/middleware-module.js";
5
+ import { createDummyState, extractPath } from "../utils/path-selector.util.js";
6
+ import { createLazyClone, findChangedPaths, isEqual } from "../utils/state-diff.util.js";
7
+ import { getValueByPath } from "./path.utils.js";
8
+ import { GLOBAL_SUBSCRIPTION_KEY, StorageCore } from "./storage-core.js";
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+ /**
27
+ * Базовый класс для синхронных хранилищ (Memory, LocalStorage).
28
+ *
29
+ * Все CRUD-операции выполняются синхронно.
30
+ * Lifecycle (initialize, destroy) остаётся async.
31
+ * subscribeByKey упрощён — нет race condition без async get.
32
+ */ class SyncBaseStorage extends StorageCore {
33
+ config;
34
+ pluginExecutor;
35
+ middlewareModule;
36
+ initializedMiddlewares = null;
37
+ selectorPathCache = new WeakMap();
38
+ constructor(config, pluginExecutor, eventEmitter, logger){
39
+ super(config, eventEmitter, logger), this.config = config, this.pluginExecutor = pluginExecutor;
40
+ this.middlewareModule = new SyncMiddlewareModule({
41
+ getState: ()=>this.getRawState(),
42
+ doGet: this.doGet.bind(this),
43
+ doSet: this.doSet.bind(this),
44
+ doUpdate: this.doUpdate.bind(this),
45
+ doRemove: this.doRemove.bind(this),
46
+ doClear: this.doClear.bind(this),
47
+ doKeys: this.doKeys.bind(this),
48
+ notifySubscribers: this.notifySubscribers.bind(this)
49
+ });
50
+ }
51
+ // ─── Lifecycle hooks ────────────────────────────────────────────────────────
52
+ async performInitialize() {
53
+ await this.doInitialize();
54
+ this._stateCache = this.getRawState();
55
+ }
56
+ async performCleanup() {
57
+ // Обходим публичный clear() (избегая ensureReady после _isDestroyed = true)
58
+ this.pluginExecutor?.executeOnClear();
59
+ this.doClear();
60
+ await this.doDestroy();
61
+ if (this.initializedMiddlewares) {
62
+ this.initializedMiddlewares.forEach((m)=>m.cleanup?.());
63
+ this.initializedMiddlewares = null;
64
+ }
65
+ }
66
+ // ─── Middleware initialization ──────────────────────────────────────────────
67
+ initializeMiddlewares() {
68
+ if (this.config.middlewares && !this.initializedMiddlewares) {
69
+ this.initializedMiddlewares = this.config.middlewares(()=>this.getDefaultMiddleware());
70
+ this.initializedMiddlewares.forEach((middleware)=>this.middlewareModule.use(middleware));
71
+ }
72
+ }
73
+ getDefaultMiddleware() {
74
+ return {
75
+ batching: (options = {})=>syncBatchingMiddleware(options),
76
+ shallowCompare: (options = {})=>syncShallowCompareMiddleware(options)
77
+ };
78
+ }
79
+ initializeWithMiddlewares() {
80
+ try {
81
+ const state = this.getRawState();
82
+ const hasExistingState = Object.keys(state).length > 0;
83
+ if (!hasExistingState && this.config.initialState) {
84
+ this.middlewareModule.dispatch({
85
+ type: 'init',
86
+ value: this.config.initialState
87
+ });
88
+ }
89
+ } catch (error) {
90
+ this.logger?.error('Ошибка инициализации хранилища', {
91
+ error
92
+ });
93
+ throw error;
94
+ }
95
+ }
96
+ // ─── Internal state access ──────────────────────────────────────────────────
97
+ getRawState() {
98
+ try {
99
+ const value = this.doGet('');
100
+ return value || {};
101
+ } catch (error) {
102
+ this.logger?.error('Error getting state', {
103
+ error
104
+ });
105
+ throw error;
106
+ }
107
+ }
108
+ // ─── Public sync API ────────────────────────────────────────────────────────
109
+ get(key) {
110
+ this.ensureReady();
111
+ try {
112
+ const metadata = {
113
+ operation: 'get',
114
+ timestamp: Date.now(),
115
+ key
116
+ };
117
+ const middlewareResult = this.middlewareModule.dispatch({
118
+ type: 'get',
119
+ key,
120
+ metadata
121
+ });
122
+ const finalResult = this.pluginExecutor?.executeAfterGet(key, middlewareResult, metadata) ?? middlewareResult;
123
+ this.emitEvent({
124
+ type: StorageEvents.STORAGE_SELECT,
125
+ payload: {
126
+ key,
127
+ value: finalResult
128
+ }
129
+ });
130
+ return finalResult;
131
+ } catch (error) {
132
+ this.logger?.error('Error getting value', {
133
+ key,
134
+ error
135
+ });
136
+ throw error;
137
+ }
138
+ }
139
+ set(key, value) {
140
+ this.ensureReady();
141
+ try {
142
+ const metadata = {
143
+ operation: 'set',
144
+ timestamp: Date.now(),
145
+ key
146
+ };
147
+ const processedValue = this.pluginExecutor?.executeBeforeSet(value, metadata) ?? value;
148
+ const middlewareResult = this.middlewareModule.dispatch({
149
+ type: 'set',
150
+ key,
151
+ value: processedValue,
152
+ metadata
153
+ });
154
+ if (middlewareResult === VALUE_NOT_CHANGED) return;
155
+ const finalResult = this.pluginExecutor?.executeAfterSet(key, middlewareResult, metadata) ?? middlewareResult;
156
+ this._stateCache = this.getRawState();
157
+ const keyStr = key.toString();
158
+ const changedPaths = [
159
+ keyStr
160
+ ];
161
+ this.notifySubscribers(key, finalResult);
162
+ this.notifySubscribers(GLOBAL_SUBSCRIPTION_KEY, {
163
+ type: StorageEvents.STORAGE_UPDATE,
164
+ key,
165
+ value: finalResult,
166
+ changedPaths
167
+ });
168
+ this.emitEvent({
169
+ type: StorageEvents.STORAGE_UPDATE,
170
+ payload: {
171
+ key,
172
+ value: finalResult,
173
+ changedPaths
174
+ }
175
+ });
176
+ } catch (error) {
177
+ this.logger?.error('Error setting value', {
178
+ key,
179
+ error
180
+ });
181
+ throw error;
182
+ }
183
+ }
184
+ update(updater) {
185
+ this.ensureReady();
186
+ try {
187
+ const metadata = {
188
+ operation: 'update',
189
+ timestamp: Date.now()
190
+ };
191
+ const currentState = this.getState();
192
+ const newState = createLazyClone(currentState);
193
+ updater(newState);
194
+ const changedPaths = findChangedPaths(currentState, newState);
195
+ if (changedPaths.size === 0) {
196
+ this.logger?.debug?.('No changes detected in update');
197
+ return;
198
+ }
199
+ this.logger?.debug?.('Changed paths:', {
200
+ paths: Array.from(changedPaths)
201
+ });
202
+ const changedTopLevelKeys = new Set();
203
+ for (const path of changedPaths){
204
+ changedTopLevelKeys.add(path.split('.')[0]);
205
+ }
206
+ const updates = Array.from(changedTopLevelKeys).map((key)=>{
207
+ const keyMetadata = {
208
+ ...metadata,
209
+ key
210
+ };
211
+ const processedValue = this.pluginExecutor?.executeBeforeSet(newState[key], keyMetadata) ?? newState[key];
212
+ return {
213
+ key,
214
+ value: processedValue
215
+ };
216
+ });
217
+ const result = this.middlewareModule.dispatch({
218
+ type: 'update',
219
+ value: updates,
220
+ metadata: {
221
+ ...metadata,
222
+ batchUpdate: true,
223
+ changedPaths: Array.from(changedPaths)
224
+ }
225
+ });
226
+ let updatedValues = {};
227
+ if (Array.isArray(result)) {
228
+ result.forEach((update)=>{
229
+ if (update && typeof update === 'object' && 'key' in update && 'value' in update) {
230
+ updatedValues[update.key] = update.value;
231
+ }
232
+ });
233
+ } else if (result && typeof result === 'object') {
234
+ updatedValues = {
235
+ ...result
236
+ };
237
+ }
238
+ const actuallyChangedKeys = Object.keys(updatedValues).filter((key)=>!isEqual(currentState[key], updatedValues[key]));
239
+ if (actuallyChangedKeys.length === 0) {
240
+ this.logger?.debug?.('No actual changes after middleware processing');
241
+ return;
242
+ }
243
+ const finalUpdates = {};
244
+ actuallyChangedKeys.forEach((key)=>{
245
+ finalUpdates[key] = updatedValues[key];
246
+ });
247
+ this.logger?.debug?.('Notifying subscribers about changes:', {
248
+ keys: actuallyChangedKeys
249
+ });
250
+ this._stateCache = {
251
+ ...currentState,
252
+ ...finalUpdates
253
+ };
254
+ this.notifySubscribers(GLOBAL_SUBSCRIPTION_KEY, {
255
+ type: StorageEvents.STORAGE_UPDATE,
256
+ key: actuallyChangedKeys,
257
+ value: finalUpdates,
258
+ changedPaths: Array.from(changedPaths)
259
+ });
260
+ for (const path of changedPaths){
261
+ try {
262
+ const topLevelKey = path.split('.')[0];
263
+ if (topLevelKey in finalUpdates) {
264
+ let value;
265
+ if (path === topLevelKey) {
266
+ value = finalUpdates[topLevelKey];
267
+ } else {
268
+ const restPath = path.substring(topLevelKey.length + 1);
269
+ value = getValueByPath(finalUpdates[topLevelKey], restPath);
270
+ }
271
+ if (value !== undefined) {
272
+ this.notifySubscribers(path, value);
273
+ }
274
+ }
275
+ } catch (error) {
276
+ this.logger?.error('Error notifying path subscribers', {
277
+ path,
278
+ error
279
+ });
280
+ }
281
+ }
282
+ this.emitEvent({
283
+ type: StorageEvents.STORAGE_UPDATE,
284
+ payload: {
285
+ state: finalUpdates,
286
+ key: actuallyChangedKeys,
287
+ changedPaths: Array.from(changedPaths)
288
+ }
289
+ });
290
+ } catch (error) {
291
+ this.logger?.error('Error updating state', {
292
+ error
293
+ });
294
+ throw error;
295
+ }
296
+ }
297
+ remove(key) {
298
+ this.ensureReady();
299
+ try {
300
+ const metadata = {
301
+ operation: 'delete',
302
+ timestamp: Date.now(),
303
+ key
304
+ };
305
+ const preventDeletion = this.pluginExecutor?.executeBeforeDelete(key, metadata);
306
+ if (preventDeletion === false) return;
307
+ const middlewareResult = this.middlewareModule.dispatch({
308
+ type: 'delete',
309
+ key,
310
+ metadata
311
+ });
312
+ if (middlewareResult === false) return;
313
+ this.pluginExecutor?.executeAfterDelete(key, metadata);
314
+ this._stateCache = this.getRawState();
315
+ const keyStr = key.toString();
316
+ const changedPaths = [
317
+ keyStr
318
+ ];
319
+ this.notifySubscribers(key, undefined);
320
+ this.notifySubscribers(GLOBAL_SUBSCRIPTION_KEY, {
321
+ type: StorageEvents.STORAGE_UPDATE,
322
+ key,
323
+ value: undefined,
324
+ result: middlewareResult,
325
+ changedPaths
326
+ });
327
+ this.emitEvent({
328
+ type: StorageEvents.STORAGE_UPDATE,
329
+ payload: {
330
+ key,
331
+ value: undefined,
332
+ result: middlewareResult,
333
+ changedPaths
334
+ }
335
+ });
336
+ } catch (error) {
337
+ this.logger?.error('Error deleting value', {
338
+ key,
339
+ error
340
+ });
341
+ throw error;
342
+ }
343
+ }
344
+ clear() {
345
+ this.ensureReady();
346
+ try {
347
+ this.pluginExecutor?.executeOnClear();
348
+ this.middlewareModule.dispatch({
349
+ type: 'clear'
350
+ });
351
+ this._stateCache = {};
352
+ } catch (error) {
353
+ this.logger?.error('Error clearing storage', {
354
+ error
355
+ });
356
+ throw error;
357
+ }
358
+ }
359
+ reset() {
360
+ this.ensureReady();
361
+ try {
362
+ const initialState = this.config.initialState;
363
+ this.middlewareModule.dispatch({
364
+ type: 'reset',
365
+ value: initialState
366
+ });
367
+ this._stateCache = initialState ? {
368
+ ...initialState
369
+ } : {};
370
+ const changedPaths = Object.keys(this._stateCache);
371
+ this.notifySubscribers(GLOBAL_SUBSCRIPTION_KEY, {
372
+ type: StorageEvents.STORAGE_CLEAR,
373
+ changedPaths
374
+ });
375
+ this.emitEvent({
376
+ type: StorageEvents.STORAGE_CLEAR,
377
+ payload: {
378
+ changedPaths
379
+ }
380
+ });
381
+ } catch (error) {
382
+ this.logger?.error('Error resetting storage', {
383
+ error
384
+ });
385
+ throw error;
386
+ }
387
+ }
388
+ keys() {
389
+ this.ensureReady();
390
+ try {
391
+ return this.middlewareModule.dispatch({
392
+ type: 'keys'
393
+ });
394
+ } catch (error) {
395
+ this.logger?.error('Error getting keys', {
396
+ error
397
+ });
398
+ throw error;
399
+ }
400
+ }
401
+ has(key) {
402
+ this.ensureReady();
403
+ try {
404
+ return this.doHas(key);
405
+ } catch (error) {
406
+ this.logger?.error('Error checking value existence', {
407
+ key,
408
+ error
409
+ });
410
+ throw error;
411
+ }
412
+ }
413
+ getState() {
414
+ this.ensureReady();
415
+ return this.getRawState();
416
+ }
417
+ // ─── Subscriptions (4.4 — simplified for sync) ─────────────────────────────
418
+ /**
419
+ * Sync-версия subscribeByKey.
420
+ * Нет race condition (get() синхронный) → не нужен keyVersions tracking.
421
+ */ subscribeByKey(key, callback) {
422
+ if (!this.subscribers.has(key)) {
423
+ this.subscribers.set(key, new Set());
424
+ }
425
+ this.subscribers.get(key).add(callback);
426
+ // Синхронно получаем начальное значение и сразу вызываем callback
427
+ try {
428
+ const value = this.get(key);
429
+ callback(value);
430
+ } catch (error) {
431
+ this.logger?.error('Error in initial callback', {
432
+ key,
433
+ error
434
+ });
435
+ }
436
+ return ()=>{
437
+ const subscribers = this.subscribers.get(key);
438
+ if (subscribers) {
439
+ subscribers.delete(callback);
440
+ if (subscribers.size === 0) {
441
+ this.subscribers.delete(key);
442
+ }
443
+ }
444
+ };
445
+ }
446
+ subscribeBySelector(pathSelector, callback) {
447
+ const dummyState = createDummyState();
448
+ const fullPath = extractPath(pathSelector, dummyState, this.selectorPathCache);
449
+ this.logger?.debug?.('Subscribing to path:', {
450
+ path: fullPath
451
+ });
452
+ // Sync-обёртка: получаем текущее состояние синхронно и применяем селектор
453
+ const wrappedCallback = (value)=>{
454
+ try {
455
+ if (value === undefined || value === null || typeof value === 'object') {
456
+ const currentState = this.getState();
457
+ const selectedValue = pathSelector(currentState);
458
+ callback(selectedValue);
459
+ return;
460
+ }
461
+ callback(value);
462
+ } catch (error) {
463
+ this.logger?.error('Error in selector callback', {
464
+ path: fullPath,
465
+ error
466
+ });
467
+ callback(value);
468
+ }
469
+ };
470
+ if (!fullPath) {
471
+ return this.subscribeToAll(()=>{
472
+ callback(pathSelector(this.getState()));
473
+ });
474
+ }
475
+ return this.subscribeByKey(fullPath, wrappedCallback);
476
+ }
477
+ }
478
+
479
+ export { SyncBaseStorage };
480
+
481
+ //# sourceMappingURL=sync-base-storage.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core/storage/adapters/sync-base-storage.service.js","sources":["../../../../src/core/storage/adapters/sync-base-storage.service.ts"],"sourcesContent":["import { syncBatchingMiddleware } from '../middlewares/sync-storage-batching.middleware'\nimport { syncShallowCompareMiddleware } from '../middlewares/sync-storage-shallow-compare.middleware'\nimport { ISyncPluginExecutor } from '../modules/plugin/plugin.interface'\nimport { IEventEmitter, ILogger, ISyncStorage, StorageEvents, StorageType, SyncDefaultMiddlewares, SyncStorageConfig } from '../storage.interface'\nimport { SyncMiddleware, SyncMiddlewareModule, VALUE_NOT_CHANGED } from '../utils/middleware-module'\nimport { createDummyState, extractPath } from '../utils/path-selector.util'\nimport { createLazyClone, findChangedPaths, isEqual } from '../utils/state-diff.util'\nimport { StorageKeyType } from '../utils/storage-key'\nimport { getValueByPath } from './path.utils'\nimport { GLOBAL_SUBSCRIPTION_KEY, PathSelector, StorageCore } from './storage-core'\n\n/**\n * Базовый класс для синхронных хранилищ (Memory, LocalStorage).\n *\n * Все CRUD-операции выполняются синхронно.\n * Lifecycle (initialize, destroy) остаётся async.\n * subscribeByKey упрощён — нет race condition без async get.\n */\nexport abstract class SyncBaseStorage<T extends Record<string, any>> extends StorageCore<T> implements ISyncStorage<T> {\n abstract readonly type: StorageType\n\n private middlewareModule: SyncMiddlewareModule\n private initializedMiddlewares: SyncMiddleware[] | null = null\n private selectorPathCache = new WeakMap<PathSelector<any, any>, string>()\n\n constructor(\n protected readonly config: SyncStorageConfig<T>,\n protected readonly pluginExecutor?: ISyncPluginExecutor,\n eventEmitter?: IEventEmitter,\n logger?: ILogger,\n ) {\n super(config, eventEmitter, logger)\n this.middlewareModule = new SyncMiddlewareModule({\n getState: () => this.getRawState(),\n doGet: this.doGet.bind(this),\n doSet: this.doSet.bind(this),\n doUpdate: this.doUpdate.bind(this),\n doRemove: this.doRemove.bind(this),\n doClear: this.doClear.bind(this),\n doKeys: this.doKeys.bind(this),\n notifySubscribers: this.notifySubscribers.bind(this),\n })\n }\n\n // ─── Abstract sync do* methods ──────────────────────────────────────────────\n\n protected abstract doGet(key: StorageKeyType): any\n protected abstract doSet(key: StorageKeyType, value: any): void\n protected abstract doUpdate(updates: Array<{ key: StorageKeyType; value: any }>): void\n protected abstract doRemove(key: StorageKeyType): boolean\n protected abstract doClear(): void\n protected abstract doKeys(): string[]\n protected abstract doHas(key: StorageKeyType): boolean\n\n /** Lifecycle — всегда async */\n protected abstract doInitialize(): Promise<this>\n /** Lifecycle — всегда async */\n protected abstract doDestroy(): Promise<void>\n\n // ─── Lifecycle hooks ────────────────────────────────────────────────────────\n\n protected async performInitialize(): Promise<void> {\n await this.doInitialize()\n this._stateCache = this.getRawState()\n }\n\n protected async performCleanup(): Promise<void> {\n // Обходим публичный clear() (избегая ensureReady после _isDestroyed = true)\n this.pluginExecutor?.executeOnClear()\n this.doClear()\n\n await this.doDestroy()\n\n if (this.initializedMiddlewares) {\n this.initializedMiddlewares.forEach((m) => m.cleanup?.())\n this.initializedMiddlewares = null\n }\n }\n\n // ─── Middleware initialization ──────────────────────────────────────────────\n\n protected initializeMiddlewares(): void {\n if (this.config.middlewares && !this.initializedMiddlewares) {\n this.initializedMiddlewares = this.config.middlewares(() => this.getDefaultMiddleware())\n this.initializedMiddlewares.forEach((middleware) => this.middlewareModule.use(middleware))\n }\n }\n\n protected getDefaultMiddleware(): SyncDefaultMiddlewares {\n return {\n batching: (options = {}) => syncBatchingMiddleware(options),\n shallowCompare: (options = {}) => syncShallowCompareMiddleware(options),\n }\n }\n\n protected initializeWithMiddlewares(): void {\n try {\n const state = this.getRawState()\n const hasExistingState = Object.keys(state).length > 0\n\n if (!hasExistingState && this.config.initialState) {\n this.middlewareModule.dispatch({\n type: 'init',\n value: this.config.initialState,\n })\n }\n } catch (error) {\n this.logger?.error('Ошибка инициализации хранилища', { error })\n throw error\n }\n }\n\n // ─── Internal state access ──────────────────────────────────────────────────\n\n private getRawState(): T {\n try {\n const value = this.doGet('')\n return value || {}\n } catch (error) {\n this.logger?.error('Error getting state', { error })\n throw error\n }\n }\n\n // ─── Public sync API ────────────────────────────────────────────────────────\n\n public get<R>(key: StorageKeyType): R | undefined {\n this.ensureReady()\n\n try {\n const metadata = { operation: 'get', timestamp: Date.now(), key }\n\n const middlewareResult = this.middlewareModule.dispatch({\n type: 'get',\n key,\n metadata,\n })\n\n const finalResult = this.pluginExecutor?.executeAfterGet(key, middlewareResult, metadata) ?? middlewareResult\n\n this.emitEvent({\n type: StorageEvents.STORAGE_SELECT,\n payload: { key, value: finalResult },\n })\n\n return finalResult\n } catch (error) {\n this.logger?.error('Error getting value', { key, error })\n throw error\n }\n }\n\n public set<R>(key: StorageKeyType, value: R): void {\n this.ensureReady()\n\n try {\n const metadata = { operation: 'set', timestamp: Date.now(), key }\n\n const processedValue = this.pluginExecutor?.executeBeforeSet(value, metadata) ?? value\n\n const middlewareResult = this.middlewareModule.dispatch({\n type: 'set',\n key,\n value: processedValue,\n metadata,\n })\n\n if (middlewareResult === VALUE_NOT_CHANGED) return\n\n const finalResult = this.pluginExecutor?.executeAfterSet(key, middlewareResult, metadata) ?? middlewareResult\n\n this._stateCache = this.getRawState()\n\n const keyStr = key.toString()\n const changedPaths = [keyStr]\n\n this.notifySubscribers(key, finalResult)\n\n this.notifySubscribers(GLOBAL_SUBSCRIPTION_KEY, {\n type: StorageEvents.STORAGE_UPDATE,\n key,\n value: finalResult,\n changedPaths,\n })\n\n this.emitEvent({\n type: StorageEvents.STORAGE_UPDATE,\n payload: { key, value: finalResult, changedPaths },\n })\n } catch (error) {\n this.logger?.error('Error setting value', { key, error })\n throw error\n }\n }\n\n public update(updater: (state: T) => void): void {\n this.ensureReady()\n\n try {\n const metadata = { operation: 'update', timestamp: Date.now() }\n\n const currentState = this.getState()\n const newState = createLazyClone(currentState)\n updater(newState)\n\n const changedPaths = findChangedPaths(currentState, newState)\n\n if (changedPaths.size === 0) {\n this.logger?.debug?.('No changes detected in update')\n return\n }\n\n this.logger?.debug?.('Changed paths:', { paths: Array.from(changedPaths) })\n\n const changedTopLevelKeys = new Set<string>()\n for (const path of changedPaths) {\n changedTopLevelKeys.add(path.split('.')[0])\n }\n\n const updates = Array.from(changedTopLevelKeys).map((key) => {\n const keyMetadata = { ...metadata, key }\n const processedValue = this.pluginExecutor?.executeBeforeSet(newState[key], keyMetadata) ?? newState[key]\n return { key, value: processedValue }\n })\n\n const result = this.middlewareModule.dispatch({\n type: 'update',\n value: updates,\n metadata: {\n ...metadata,\n batchUpdate: true,\n changedPaths: Array.from(changedPaths),\n },\n })\n\n let updatedValues: Record<string, any> = {}\n if (Array.isArray(result)) {\n result.forEach((update: any) => {\n if (update && typeof update === 'object' && 'key' in update && 'value' in update) {\n updatedValues[update.key as string] = update.value\n }\n })\n } else if (result && typeof result === 'object') {\n updatedValues = { ...result }\n }\n\n const actuallyChangedKeys = Object.keys(updatedValues).filter((key) => !isEqual(currentState[key], updatedValues[key]))\n\n if (actuallyChangedKeys.length === 0) {\n this.logger?.debug?.('No actual changes after middleware processing')\n return\n }\n\n const finalUpdates: Record<string, any> = {}\n actuallyChangedKeys.forEach((key) => {\n finalUpdates[key] = updatedValues[key]\n })\n\n this.logger?.debug?.('Notifying subscribers about changes:', { keys: actuallyChangedKeys })\n\n this._stateCache = { ...currentState, ...finalUpdates } as T\n\n this.notifySubscribers(GLOBAL_SUBSCRIPTION_KEY, {\n type: StorageEvents.STORAGE_UPDATE,\n key: actuallyChangedKeys,\n value: finalUpdates,\n changedPaths: Array.from(changedPaths),\n })\n\n for (const path of changedPaths) {\n try {\n const topLevelKey = path.split('.')[0]\n if (topLevelKey in finalUpdates) {\n let value\n if (path === topLevelKey) {\n value = finalUpdates[topLevelKey]\n } else {\n const restPath = path.substring(topLevelKey.length + 1)\n value = getValueByPath(finalUpdates[topLevelKey], restPath)\n }\n if (value !== undefined) {\n this.notifySubscribers(path, value)\n }\n }\n } catch (error) {\n this.logger?.error('Error notifying path subscribers', { path, error })\n }\n }\n\n this.emitEvent({\n type: StorageEvents.STORAGE_UPDATE,\n payload: {\n state: finalUpdates,\n key: actuallyChangedKeys,\n changedPaths: Array.from(changedPaths),\n },\n })\n } catch (error) {\n this.logger?.error('Error updating state', { error })\n throw error\n }\n }\n\n public remove(key: StorageKeyType): void {\n this.ensureReady()\n\n try {\n const metadata = { operation: 'delete', timestamp: Date.now(), key }\n\n const preventDeletion = this.pluginExecutor?.executeBeforeDelete(key, metadata)\n if (preventDeletion === false) return\n\n const middlewareResult = this.middlewareModule.dispatch({\n type: 'delete',\n key,\n metadata,\n })\n\n if (middlewareResult === false) return\n\n this.pluginExecutor?.executeAfterDelete(key, metadata)\n\n this._stateCache = this.getRawState()\n\n const keyStr = key.toString()\n const changedPaths = [keyStr]\n\n this.notifySubscribers(key, undefined)\n this.notifySubscribers(GLOBAL_SUBSCRIPTION_KEY, {\n type: StorageEvents.STORAGE_UPDATE,\n key,\n value: undefined,\n result: middlewareResult,\n changedPaths,\n })\n\n this.emitEvent({\n type: StorageEvents.STORAGE_UPDATE,\n payload: { key, value: undefined, result: middlewareResult, changedPaths },\n })\n } catch (error) {\n this.logger?.error('Error deleting value', { key, error })\n throw error\n }\n }\n\n public clear(): void {\n this.ensureReady()\n\n try {\n this.pluginExecutor?.executeOnClear()\n\n this.middlewareModule.dispatch({ type: 'clear' })\n\n this._stateCache = {} as T\n } catch (error) {\n this.logger?.error('Error clearing storage', { error })\n throw error\n }\n }\n\n public reset(): void {\n this.ensureReady()\n\n try {\n const initialState = this.config.initialState\n\n this.middlewareModule.dispatch({\n type: 'reset',\n value: initialState,\n })\n\n this._stateCache = initialState ? ({ ...initialState } as T) : ({} as T)\n\n const changedPaths = Object.keys(this._stateCache)\n\n this.notifySubscribers(GLOBAL_SUBSCRIPTION_KEY, {\n type: StorageEvents.STORAGE_CLEAR,\n changedPaths,\n })\n\n this.emitEvent({\n type: StorageEvents.STORAGE_CLEAR,\n payload: { changedPaths },\n })\n } catch (error) {\n this.logger?.error('Error resetting storage', { error })\n throw error\n }\n }\n\n public keys(): string[] {\n this.ensureReady()\n\n try {\n return this.middlewareModule.dispatch({ type: 'keys' })\n } catch (error) {\n this.logger?.error('Error getting keys', { error })\n throw error\n }\n }\n\n public has(key: StorageKeyType): boolean {\n this.ensureReady()\n try {\n return this.doHas(key)\n } catch (error) {\n this.logger?.error('Error checking value existence', { key, error })\n throw error\n }\n }\n\n public getState(): T {\n this.ensureReady()\n return this.getRawState()\n }\n\n // ─── Subscriptions (4.4 — simplified for sync) ─────────────────────────────\n\n /**\n * Sync-версия subscribeByKey.\n * Нет race condition (get() синхронный) → не нужен keyVersions tracking.\n */\n protected subscribeByKey(key: string, callback: (value: any) => void): VoidFunction {\n if (!this.subscribers.has(key)) {\n this.subscribers.set(key, new Set())\n }\n this.subscribers.get(key)!.add(callback)\n\n // Синхронно получаем начальное значение и сразу вызываем callback\n try {\n const value = this.get(key)\n callback(value)\n } catch (error) {\n this.logger?.error('Error in initial callback', { key, error })\n }\n\n return () => {\n const subscribers = this.subscribers.get(key)\n if (subscribers) {\n subscribers.delete(callback)\n if (subscribers.size === 0) {\n this.subscribers.delete(key)\n }\n }\n }\n }\n\n protected subscribeBySelector<R>(pathSelector: PathSelector<T, R>, callback: (value: R) => void): VoidFunction {\n const dummyState = createDummyState<T>()\n const fullPath = extractPath(pathSelector, dummyState, this.selectorPathCache)\n\n this.logger?.debug?.('Subscribing to path:', { path: fullPath })\n\n // Sync-обёртка: получаем текущее состояние синхронно и применяем селектор\n const wrappedCallback = (value: any) => {\n try {\n if (value === undefined || value === null || typeof value === 'object') {\n const currentState = this.getState()\n const selectedValue = pathSelector(currentState)\n callback(selectedValue as R)\n return\n }\n callback(value as R)\n } catch (error) {\n this.logger?.error('Error in selector callback', { path: fullPath, error })\n callback(value as R)\n }\n }\n\n if (!fullPath) {\n return this.subscribeToAll(() => {\n callback(pathSelector(this.getState()))\n })\n }\n\n return this.subscribeByKey(fullPath, wrappedCallback)\n }\n}\n"],"names":["syncBatchingMiddleware","syncShallowCompareMiddleware","StorageEvents","SyncMiddlewareModule","VALUE_NOT_CHANGED","createDummyState","extractPath","createLazyClone","findChangedPaths","isEqual","getValueByPath","GLOBAL_SUBSCRIPTION_KEY","StorageCore","SyncBaseStorage","WeakMap","config","pluginExecutor","eventEmitter","logger","m","middleware","options","state","hasExistingState","Object","error","value","key","metadata","Date","middlewareResult","finalResult","processedValue","keyStr","changedPaths","updater","currentState","newState","Array","changedTopLevelKeys","Set","path","updates","keyMetadata","result","updatedValues","update","actuallyChangedKeys","finalUpdates","topLevelKey","restPath","undefined","preventDeletion","initialState","callback","subscribers","pathSelector","dummyState","fullPath","wrappedCallback","selectedValue"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export * from './modules/plugin/plugin.interface';
2
+ export * from './modules/plugin/plugin.service';
3
+ export { ConfigMergeStrategy } from './modules/singleton/models';
4
+ export * from './storage.interface';
5
+ export type { BatchingMiddlewareOptions, ShallowCompareMiddlewareOptions } from './middlewares';
6
+ export { broadcastMiddleware, syncBroadcastMiddleware } from './middlewares';
7
+ export { AsyncBaseStorage } from './adapters/async-base-storage.service';
8
+ export { IndexedDBStorage } from './adapters/indexed-DB.service';
9
+ export { LocalStorage } from './adapters/local-storage.service';
10
+ export { MemoryStorage } from './adapters/memory-storage.service';
11
+ export { StorageCore } from './adapters/storage-core';
12
+ export { SyncBaseStorage } from './adapters/sync-base-storage.service';
13
+ export { type AsyncMiddleware, type AsyncMiddlewareAPI, type AsyncNextFunction, type Middleware, type MiddlewareAPI, type NextFunction, type StorageAction, type SyncMiddleware, type SyncMiddlewareAPI, type SyncNextFunction, } from './utils/middleware-module';
14
+ export { StorageFactory } from './utils/storage-factory.util';
15
+ export { type StorageKeyType } from './utils/storage-key';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/storage/index.ts"],"names":[],"mappings":"AACA,cAAc,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,cAAc,qBAAqB,CAAA;AAGnC,YAAY,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAA;AAC/F,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAG5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AAGtE,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,38 @@
1
+ export * from "./modules/plugin/plugin.interface.js";
2
+ export * from "./modules/plugin/plugin.service.js";
3
+ export * from "./storage.interface.js";
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+ // Экспортируем публичные интерфейсы
14
+
15
+
16
+
17
+
18
+
19
+ // Экспортируем публичные адаптеры
20
+
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+ export { ConfigMergeStrategy } from "./modules/singleton/models.js";
29
+ export { broadcastMiddleware, syncBroadcastMiddleware } from "./middlewares/index.js";
30
+ export { AsyncBaseStorage } from "./adapters/async-base-storage.service.js";
31
+ export { IndexedDBStorage } from "./adapters/indexed-DB.service.js";
32
+ export { LocalStorage } from "./adapters/local-storage.service.js";
33
+ export { MemoryStorage } from "./adapters/memory-storage.service.js";
34
+ export { StorageCore } from "./adapters/storage-core.js";
35
+ export { SyncBaseStorage } from "./adapters/sync-base-storage.service.js";
36
+ export { StorageFactory } from "./utils/storage-factory.util.js";
37
+
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core/storage/index.js","sources":["../../../src/core/storage/index.ts"],"sourcesContent":["// Экспортируем публичные интерфейсы\nexport * from './modules/plugin/plugin.interface'\nexport * from './modules/plugin/plugin.service'\nexport { ConfigMergeStrategy } from './modules/singleton/models'\nexport * from './storage.interface'\n\n// Экспортируем публичные middleware\nexport type { BatchingMiddlewareOptions, ShallowCompareMiddlewareOptions } from './middlewares'\nexport { broadcastMiddleware, syncBroadcastMiddleware } from './middlewares'\n\n// Экспортируем публичные адаптеры\nexport { AsyncBaseStorage } from './adapters/async-base-storage.service'\nexport { IndexedDBStorage } from './adapters/indexed-DB.service'\nexport { LocalStorage } from './adapters/local-storage.service'\nexport { MemoryStorage } from './adapters/memory-storage.service'\nexport { StorageCore } from './adapters/storage-core'\nexport { SyncBaseStorage } from './adapters/sync-base-storage.service'\n\n// Экспортируем утилиты, которые нужны в публичном API\nexport {\n type AsyncMiddleware,\n type AsyncMiddlewareAPI,\n type AsyncNextFunction,\n type Middleware,\n type MiddlewareAPI,\n type NextFunction,\n type StorageAction,\n type SyncMiddleware,\n type SyncMiddlewareAPI,\n type SyncNextFunction,\n} from './utils/middleware-module'\nexport { StorageFactory } from './utils/storage-factory.util'\nexport { type StorageKeyType } from './utils/storage-key'\n"],"names":["ConfigMergeStrategy","broadcastMiddleware","syncBroadcastMiddleware","AsyncBaseStorage","IndexedDBStorage","LocalStorage","MemoryStorage","StorageCore","SyncBaseStorage","StorageFactory"],"mappings":";;;;;;;;;;;;AAAA,oCAAoC;AACa;AACF;AACiB;AAC7B;AAIyC;AAE5E,kCAAkC;AACsC;AACR;AACD;AACE;AACZ;AACiB;AAeT"}
@@ -0,0 +1,9 @@
1
+ import { StorageType } from '../storage.interface';
2
+ import { Middleware } from '../utils/middleware-module';
3
+ interface SharedStateMiddlewareProps {
4
+ storageType: StorageType;
5
+ storageName: string;
6
+ }
7
+ export declare const broadcastMiddleware: (props: SharedStateMiddlewareProps) => Middleware;
8
+ export {};
9
+ //# sourceMappingURL=broadcast.middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.middleware.d.ts","sourceRoot":"","sources":["../../../../src/core/storage/middlewares/broadcast.middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEjE,OAAO,EAAE,UAAU,EAA8C,MAAM,4BAA4B,CAAA;AAEnG,UAAU,0BAA0B;IAClC,WAAW,EAAE,WAAW,CAAA;IACxB,WAAW,EAAE,MAAM,CAAA;CACpB;AA8GD,eAAO,MAAM,mBAAmB,GAAI,OAAO,0BAA0B,KAAG,UAgGvE,CAAA"}