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,221 @@
1
+ import { SingletonKeyGenerator, SingletonManager } from "../modules/singleton/singleton.util.js";
2
+ import { StorageEvents, StorageStatus } from "../storage.interface.js";
3
+
4
+
5
+
6
+
7
+
8
+ /**
9
+ * Общая константа для глобальной подписки.
10
+ * Используется в StorageCore и наследниках.
11
+ */ const GLOBAL_SUBSCRIPTION_KEY = '*';
12
+ /**
13
+ * Абстрактный базовый класс с общей инфраструктурой хранилища.
14
+ *
15
+ * Содержит: status management, subscriptions, lifecycle wrappers,
16
+ * state cache, event emission, singleton cleanup.
17
+ *
18
+ * Не содержит: middleware, plugin executor, do* методы, публичные CRUD-операции.
19
+ */ class StorageCore {
20
+ coreConfig;
21
+ eventEmitter;
22
+ logger;
23
+ name;
24
+ _initStatus = {
25
+ status: StorageStatus.IDLE
26
+ };
27
+ _isDestroyed = false;
28
+ statusSubscribers = new Set();
29
+ subscribers = new Map();
30
+ _stateCache = {};
31
+ keyVersions = new Map();
32
+ constructor(coreConfig, eventEmitter, logger){
33
+ this.coreConfig = coreConfig;
34
+ this.eventEmitter = eventEmitter;
35
+ this.logger = logger;
36
+ this.name = coreConfig.name;
37
+ }
38
+ // ─── Status Management ──────────────────────────────────────────────────────
39
+ get initStatus() {
40
+ return {
41
+ ...this._initStatus
42
+ };
43
+ }
44
+ async waitForReady() {
45
+ if (this._initStatus.status === StorageStatus.READY) return this;
46
+ if (this._initStatus.status === StorageStatus.ERROR) {
47
+ throw this._initStatus.error || new Error('Storage initialization failed');
48
+ }
49
+ return new Promise((resolve, reject)=>{
50
+ const unsubscribe = this.onStatusChange((status)=>{
51
+ if (status.status === StorageStatus.READY) {
52
+ unsubscribe();
53
+ resolve(this);
54
+ } else if (status.status === StorageStatus.ERROR) {
55
+ unsubscribe();
56
+ reject(status.error || new Error('Storage initialization failed'));
57
+ }
58
+ });
59
+ });
60
+ }
61
+ onStatusChange(callback) {
62
+ this.statusSubscribers.add(callback);
63
+ callback(this.initStatus);
64
+ return ()=>{
65
+ this.statusSubscribers.delete(callback);
66
+ };
67
+ }
68
+ updateInitStatus(update) {
69
+ const previousStatus = this._initStatus.status;
70
+ this._initStatus = {
71
+ ...this._initStatus,
72
+ ...update
73
+ };
74
+ if (previousStatus !== this._initStatus.status) {
75
+ this.logger?.debug(`Storage "${this.name}" status changed: ${previousStatus} -> ${this._initStatus.status}`);
76
+ }
77
+ const statusCopy = this.initStatus;
78
+ this.statusSubscribers.forEach((callback)=>{
79
+ try {
80
+ callback(statusCopy);
81
+ } catch (error) {
82
+ this.logger?.error('Error in status change callback', {
83
+ error
84
+ });
85
+ }
86
+ });
87
+ }
88
+ ensureReady() {
89
+ if (this._isDestroyed) {
90
+ throw new Error(`Storage "${this.name}" has been destroyed`);
91
+ }
92
+ if (this._initStatus.status !== StorageStatus.READY) {
93
+ throw new Error(`Storage "${this.name}" is not ready. Current status: ${this._initStatus.status}`);
94
+ }
95
+ }
96
+ // ─── State Cache ────────────────────────────────────────────────────────────
97
+ getStateSync() {
98
+ return this._stateCache;
99
+ }
100
+ // ─── Subscriptions ──────────────────────────────────────────────────────────
101
+ subscribeToAll(callback) {
102
+ if (!this.subscribers.has(GLOBAL_SUBSCRIPTION_KEY)) {
103
+ this.subscribers.set(GLOBAL_SUBSCRIPTION_KEY, new Set());
104
+ }
105
+ this.subscribers.get(GLOBAL_SUBSCRIPTION_KEY).add(callback);
106
+ return ()=>{
107
+ const subscribers = this.subscribers.get(GLOBAL_SUBSCRIPTION_KEY);
108
+ if (subscribers) {
109
+ subscribers.delete(callback);
110
+ if (subscribers.size === 0) {
111
+ this.subscribers.delete(GLOBAL_SUBSCRIPTION_KEY);
112
+ }
113
+ }
114
+ };
115
+ }
116
+ subscribe(keyOrSelector, callback) {
117
+ if (typeof keyOrSelector === 'string') {
118
+ return this.subscribeByKey(keyOrSelector, callback);
119
+ }
120
+ return this.subscribeBySelector(keyOrSelector, callback);
121
+ }
122
+ notifySubscribers(key, value) {
123
+ const keyStr = key.toString();
124
+ // Инкрементируем версию ключа — используется для защиты от race condition в subscribeByKey (async)
125
+ this.keyVersions.set(keyStr, (this.keyVersions.get(keyStr) ?? 0) + 1);
126
+ const exactSubscribers = this.subscribers.get(keyStr);
127
+ if (exactSubscribers?.size) {
128
+ const subscribersCopy = new Set(exactSubscribers);
129
+ subscribersCopy.forEach((callback)=>{
130
+ try {
131
+ callback(value);
132
+ } catch (error) {
133
+ this.logger?.error('Ошибка в подписчике на колбэк', {
134
+ key: keyStr,
135
+ error
136
+ });
137
+ }
138
+ });
139
+ }
140
+ }
141
+ // ─── Lifecycle ──────────────────────────────────────────────────────────────
142
+ async initialize() {
143
+ if (this._initStatus.status === StorageStatus.READY) return this;
144
+ if (this._initStatus.status === StorageStatus.LOADING) return this.waitForReady();
145
+ // Allow re-initialization after destroy
146
+ this._isDestroyed = false;
147
+ this.updateInitStatus({
148
+ status: StorageStatus.LOADING,
149
+ error: undefined
150
+ });
151
+ try {
152
+ await this.performInitialize();
153
+ this.updateInitStatus({
154
+ status: StorageStatus.READY,
155
+ error: undefined
156
+ });
157
+ return this;
158
+ } catch (error) {
159
+ this.updateInitStatus({
160
+ status: StorageStatus.ERROR,
161
+ error: error instanceof Error ? error : new Error(String(error))
162
+ });
163
+ throw error;
164
+ }
165
+ }
166
+ async destroy() {
167
+ if (this._isDestroyed) return;
168
+ this._isDestroyed = true;
169
+ try {
170
+ if (this._initStatus.status === StorageStatus.LOADING) {
171
+ try {
172
+ await this.waitForReady();
173
+ } catch {
174
+ // Инициализация упала — продолжаем destroy
175
+ }
176
+ }
177
+ if (this._initStatus.status === StorageStatus.READY) {
178
+ await this.performCleanup();
179
+ }
180
+ this.statusSubscribers.clear();
181
+ if (this.coreConfig.singleton?.enabled) {
182
+ const key = SingletonKeyGenerator.generate(this.coreConfig, this.type);
183
+ SingletonManager.remove(key);
184
+ }
185
+ this._stateCache = {};
186
+ this.updateInitStatus({
187
+ status: StorageStatus.IDLE
188
+ });
189
+ await this.emitEvent({
190
+ type: StorageEvents.STORAGE_DESTROY
191
+ });
192
+ } catch (error) {
193
+ this.logger?.error('Error destroying storage', {
194
+ error
195
+ });
196
+ throw error;
197
+ }
198
+ }
199
+ // ─── Events ─────────────────────────────────────────────────────────────────
200
+ async emitEvent(event) {
201
+ try {
202
+ await this.eventEmitter?.emit({
203
+ ...event,
204
+ metadata: {
205
+ ...event.metadata || {},
206
+ timestamp: Date.now(),
207
+ storageName: this.name
208
+ }
209
+ });
210
+ } catch (error) {
211
+ this.logger?.error('Error emitting event', {
212
+ event,
213
+ error
214
+ });
215
+ }
216
+ }
217
+ }
218
+
219
+ export { GLOBAL_SUBSCRIPTION_KEY, StorageCore };
220
+
221
+ //# sourceMappingURL=storage-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core/storage/adapters/storage-core.js","sources":["../../../../src/core/storage/adapters/storage-core.ts"],"sourcesContent":["import { SingletonKeyGenerator, SingletonManager } from '../modules/singleton/singleton.util'\nimport { BaseStorageConfig, IEventEmitter, ILogger, IStorageBase, StorageEvent, StorageEvents, StorageInitStatus, StorageStatus, StorageType } from '../storage.interface'\nimport { StorageKeyType } from '../utils/storage-key'\n\nexport type PathSelector<T, R> = (state: T) => R\n\n/**\n * Общая константа для глобальной подписки.\n * Используется в StorageCore и наследниках.\n */\nexport const GLOBAL_SUBSCRIPTION_KEY = '*'\n\n/**\n * Абстрактный базовый класс с общей инфраструктурой хранилища.\n *\n * Содержит: status management, subscriptions, lifecycle wrappers,\n * state cache, event emission, singleton cleanup.\n *\n * Не содержит: middleware, plugin executor, do* методы, публичные CRUD-операции.\n */\nexport abstract class StorageCore<T extends Record<string, any>> implements IStorageBase<T> {\n name: string\n abstract readonly type: StorageType\n\n private _initStatus: StorageInitStatus = { status: StorageStatus.IDLE }\n private _isDestroyed = false\n private statusSubscribers = new Set<(status: StorageInitStatus) => void>()\n\n protected subscribers = new Map<StorageKeyType, Set<(value: any) => void>>()\n protected _stateCache: T = {} as T\n protected keyVersions = new Map<string, number>()\n\n constructor(\n protected readonly coreConfig: BaseStorageConfig<T>,\n protected readonly eventEmitter?: IEventEmitter,\n protected readonly logger?: ILogger,\n ) {\n this.name = coreConfig.name\n }\n\n // ─── Status Management ──────────────────────────────────────────────────────\n\n get initStatus(): StorageInitStatus {\n return { ...this._initStatus }\n }\n\n async waitForReady(): Promise<this> {\n if (this._initStatus.status === StorageStatus.READY) return this\n if (this._initStatus.status === StorageStatus.ERROR) {\n throw this._initStatus.error || new Error('Storage initialization failed')\n }\n\n return new Promise((resolve, reject) => {\n const unsubscribe = this.onStatusChange((status) => {\n if (status.status === StorageStatus.READY) {\n unsubscribe()\n resolve(this)\n } else if (status.status === StorageStatus.ERROR) {\n unsubscribe()\n reject(status.error || new Error('Storage initialization failed'))\n }\n })\n })\n }\n\n onStatusChange(callback: (status: StorageInitStatus) => void): VoidFunction {\n this.statusSubscribers.add(callback)\n callback(this.initStatus)\n\n return () => {\n this.statusSubscribers.delete(callback)\n }\n }\n\n protected updateInitStatus(update: Partial<StorageInitStatus>): void {\n const previousStatus = this._initStatus.status\n\n this._initStatus = { ...this._initStatus, ...update }\n\n if (previousStatus !== this._initStatus.status) {\n this.logger?.debug(`Storage \"${this.name}\" status changed: ${previousStatus} -> ${this._initStatus.status}`)\n }\n\n const statusCopy = this.initStatus\n this.statusSubscribers.forEach((callback) => {\n try {\n callback(statusCopy)\n } catch (error) {\n this.logger?.error('Error in status change callback', { error })\n }\n })\n }\n\n protected ensureReady(): void {\n if (this._isDestroyed) {\n throw new Error(`Storage \"${this.name}\" has been destroyed`)\n }\n if (this._initStatus.status !== StorageStatus.READY) {\n throw new Error(`Storage \"${this.name}\" is not ready. Current status: ${this._initStatus.status}`)\n }\n }\n\n // ─── State Cache ────────────────────────────────────────────────────────────\n\n public getStateSync(): T {\n return this._stateCache\n }\n\n // ─── Subscriptions ──────────────────────────────────────────────────────────\n\n public subscribeToAll(callback: (event: { type: string; key?: StorageKeyType[] | StorageKeyType; value?: any; changedPaths?: string[] }) => void): VoidFunction {\n if (!this.subscribers.has(GLOBAL_SUBSCRIPTION_KEY)) {\n this.subscribers.set(GLOBAL_SUBSCRIPTION_KEY, new Set())\n }\n\n this.subscribers.get(GLOBAL_SUBSCRIPTION_KEY)!.add(callback)\n\n return () => {\n const subscribers = this.subscribers.get(GLOBAL_SUBSCRIPTION_KEY)\n if (subscribers) {\n subscribers.delete(callback)\n if (subscribers.size === 0) {\n this.subscribers.delete(GLOBAL_SUBSCRIPTION_KEY)\n }\n }\n }\n }\n\n public subscribe(key: string, callback: (value: any) => void): VoidFunction\n public subscribe<R>(pathSelector: PathSelector<T, R>, callback: (value: R) => void): VoidFunction\n public subscribe<R>(keyOrSelector: string | PathSelector<T, R>, callback: (value: any) => void): VoidFunction {\n if (typeof keyOrSelector === 'string') {\n return this.subscribeByKey(keyOrSelector, callback)\n }\n return this.subscribeBySelector(keyOrSelector, callback)\n }\n\n protected abstract subscribeByKey(key: string, callback: (value: any) => void): VoidFunction\n protected abstract subscribeBySelector<R>(pathSelector: PathSelector<T, R>, callback: (value: R) => void): VoidFunction\n\n protected notifySubscribers(key: StorageKeyType, value: any): void {\n const keyStr = key.toString()\n\n // Инкрементируем версию ключа — используется для защиты от race condition в subscribeByKey (async)\n this.keyVersions.set(keyStr, (this.keyVersions.get(keyStr) ?? 0) + 1)\n\n const exactSubscribers = this.subscribers.get(keyStr)\n if (exactSubscribers?.size) {\n const subscribersCopy = new Set(exactSubscribers)\n subscribersCopy.forEach((callback) => {\n try {\n callback(value)\n } catch (error) {\n this.logger?.error('Ошибка в подписчике на колбэк', { key: keyStr, error })\n }\n })\n }\n }\n\n // ─── Lifecycle ──────────────────────────────────────────────────────────────\n\n public async initialize(): Promise<this> {\n if (this._initStatus.status === StorageStatus.READY) return this\n if (this._initStatus.status === StorageStatus.LOADING) return this.waitForReady()\n\n // Allow re-initialization after destroy\n this._isDestroyed = false\n\n this.updateInitStatus({ status: StorageStatus.LOADING, error: undefined })\n\n try {\n await this.performInitialize()\n this.updateInitStatus({ status: StorageStatus.READY, error: undefined })\n return this\n } catch (error) {\n this.updateInitStatus({\n status: StorageStatus.ERROR,\n error: error instanceof Error ? error : new Error(String(error)),\n })\n throw error\n }\n }\n\n /**\n * Subclass-specific initialization.\n * Called inside initialize() wrapper after status is set to LOADING.\n */\n protected abstract performInitialize(): Promise<void>\n\n public async destroy(): Promise<void> {\n if (this._isDestroyed) return\n this._isDestroyed = true\n\n try {\n if (this._initStatus.status === StorageStatus.LOADING) {\n try {\n await this.waitForReady()\n } catch {\n // Инициализация упала — продолжаем destroy\n }\n }\n\n if (this._initStatus.status === StorageStatus.READY) {\n await this.performCleanup()\n }\n\n this.statusSubscribers.clear()\n\n if (this.coreConfig.singleton?.enabled) {\n const key = SingletonKeyGenerator.generate(this.coreConfig as any, this.type)\n SingletonManager.remove(key)\n }\n\n this._stateCache = {} as T\n this.updateInitStatus({ status: StorageStatus.IDLE })\n\n await this.emitEvent({ type: StorageEvents.STORAGE_DESTROY })\n } catch (error) {\n this.logger?.error('Error destroying storage', { error })\n throw error\n }\n }\n\n /**\n * Subclass-specific cleanup during destroy.\n * Should clear storage data, call doDestroy, cleanup middlewares.\n */\n protected abstract performCleanup(): Promise<void>\n\n // ─── Events ─────────────────────────────────────────────────────────────────\n\n protected async emitEvent(event: StorageEvent): Promise<void> {\n try {\n await this.eventEmitter?.emit({\n ...event,\n metadata: {\n ...(event.metadata || {}),\n timestamp: Date.now(),\n storageName: this.name,\n },\n })\n } catch (error) {\n this.logger?.error('Error emitting event', { event, error })\n }\n }\n}\n"],"names":["SingletonKeyGenerator","SingletonManager","StorageEvents","StorageStatus","GLOBAL_SUBSCRIPTION_KEY","StorageCore","Set","Map","coreConfig","eventEmitter","logger","Error","Promise","resolve","reject","unsubscribe","status","callback","update","previousStatus","statusCopy","error","subscribers","keyOrSelector","key","value","keyStr","exactSubscribers","subscribersCopy","undefined","String","event","Date"],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { ISyncPluginExecutor } from '../modules/plugin/plugin.interface';
2
+ import { IEventEmitter, ILogger, ISyncStorage, StorageType, SyncDefaultMiddlewares, SyncStorageConfig } from '../storage.interface';
3
+ import { StorageKeyType } from '../utils/storage-key';
4
+ import { PathSelector, StorageCore } from './storage-core';
5
+ /**
6
+ * Базовый класс для синхронных хранилищ (Memory, LocalStorage).
7
+ *
8
+ * Все CRUD-операции выполняются синхронно.
9
+ * Lifecycle (initialize, destroy) остаётся async.
10
+ * subscribeByKey упрощён — нет race condition без async get.
11
+ */
12
+ export declare abstract class SyncBaseStorage<T extends Record<string, any>> extends StorageCore<T> implements ISyncStorage<T> {
13
+ protected readonly config: SyncStorageConfig<T>;
14
+ protected readonly pluginExecutor?: ISyncPluginExecutor | undefined;
15
+ abstract readonly type: StorageType;
16
+ private middlewareModule;
17
+ private initializedMiddlewares;
18
+ private selectorPathCache;
19
+ constructor(config: SyncStorageConfig<T>, pluginExecutor?: ISyncPluginExecutor | undefined, eventEmitter?: IEventEmitter, logger?: ILogger);
20
+ protected abstract doGet(key: StorageKeyType): any;
21
+ protected abstract doSet(key: StorageKeyType, value: any): void;
22
+ protected abstract doUpdate(updates: Array<{
23
+ key: StorageKeyType;
24
+ value: any;
25
+ }>): void;
26
+ protected abstract doRemove(key: StorageKeyType): boolean;
27
+ protected abstract doClear(): void;
28
+ protected abstract doKeys(): string[];
29
+ protected abstract doHas(key: StorageKeyType): boolean;
30
+ /** Lifecycle — всегда async */
31
+ protected abstract doInitialize(): Promise<this>;
32
+ /** Lifecycle — всегда async */
33
+ protected abstract doDestroy(): Promise<void>;
34
+ protected performInitialize(): Promise<void>;
35
+ protected performCleanup(): Promise<void>;
36
+ protected initializeMiddlewares(): void;
37
+ protected getDefaultMiddleware(): SyncDefaultMiddlewares;
38
+ protected initializeWithMiddlewares(): void;
39
+ private getRawState;
40
+ get<R>(key: StorageKeyType): R | undefined;
41
+ set<R>(key: StorageKeyType, value: R): void;
42
+ update(updater: (state: T) => void): void;
43
+ remove(key: StorageKeyType): void;
44
+ clear(): void;
45
+ reset(): void;
46
+ keys(): string[];
47
+ has(key: StorageKeyType): boolean;
48
+ getState(): T;
49
+ /**
50
+ * Sync-версия subscribeByKey.
51
+ * Нет race condition (get() синхронный) → не нужен keyVersions tracking.
52
+ */
53
+ protected subscribeByKey(key: string, callback: (value: any) => void): VoidFunction;
54
+ protected subscribeBySelector<R>(pathSelector: PathSelector<T, R>, callback: (value: R) => void): VoidFunction;
55
+ }
56
+ //# sourceMappingURL=sync-base-storage.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-base-storage.service.d.ts","sourceRoot":"","sources":["../../../../src/core/storage/adapters/sync-base-storage.service.ts"],"names":[],"mappings":"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"}