synapse-storage 3.0.2 → 3.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/dist/api.cjs +1 -0
  2. package/dist/api.d.cts +365 -0
  3. package/dist/api.d.ts +365 -0
  4. package/dist/api.js +1 -0
  5. package/dist/chunk-22J2S57D.cjs +1 -0
  6. package/dist/chunk-4USKKL5R.js +1 -0
  7. package/dist/chunk-5X65PSGD.js +1 -0
  8. package/dist/chunk-635Q6YJZ.cjs +1 -0
  9. package/dist/chunk-6RNZVHSR.js +1 -0
  10. package/dist/chunk-FW5NGLPP.cjs +1 -0
  11. package/dist/chunk-IPUPRMZK.js +1 -0
  12. package/dist/chunk-NMDHQXMS.cjs +1 -0
  13. package/dist/chunk-S7X7IDBT.js +1 -0
  14. package/dist/chunk-UFBCZ25Y.cjs +1 -0
  15. package/dist/chunk-VSIVOWZF.cjs +1 -0
  16. package/dist/chunk-WC5TDS6C.cjs +1 -0
  17. package/dist/chunk-WQNH3LVB.js +1 -0
  18. package/dist/chunk-ZE2EJX2Y.js +1 -0
  19. package/dist/core.cjs +1 -0
  20. package/dist/core.d.cts +397 -0
  21. package/dist/{core/storage/modules/plugin/plugin.interface.d.ts → core.d.ts} +203 -7
  22. package/dist/core.js +1 -0
  23. package/dist/dispatcher.module-CdpmkplA.d.cts +363 -0
  24. package/dist/dispatcher.module-jd8U_ZEs.d.ts +363 -0
  25. package/dist/index.cjs +1 -0
  26. package/dist/index.d.cts +10 -0
  27. package/dist/index.d.ts +10 -10
  28. package/dist/index.js +1 -14
  29. package/dist/react.cjs +1 -0
  30. package/dist/react.d.cts +74 -0
  31. package/dist/react.d.ts +74 -0
  32. package/dist/react.js +1 -0
  33. package/dist/reactive.cjs +1 -0
  34. package/dist/reactive.d.cts +35 -0
  35. package/dist/reactive.d.ts +35 -0
  36. package/dist/reactive.js +1 -0
  37. package/dist/{core/selector/selector.interface.d.ts → selector.interface-CA5y-kD_.d.cts} +7 -35
  38. package/dist/selector.interface-CA5y-kD_.d.ts +63 -0
  39. package/dist/storage.interface-Dl8SLUd1.d.cts +128 -0
  40. package/dist/storage.interface-Dl8SLUd1.d.ts +128 -0
  41. package/dist/utils.cjs +1 -0
  42. package/dist/utils.d.cts +92 -0
  43. package/dist/utils.d.ts +92 -0
  44. package/dist/utils.js +1 -0
  45. package/package.json +54 -17
  46. package/dist/_utils/chunk.util.d.ts +0 -8
  47. package/dist/_utils/chunk.util.d.ts.map +0 -1
  48. package/dist/_utils/chunk.util.js +0 -21
  49. package/dist/_utils/chunk.util.js.map +0 -1
  50. package/dist/_utils/deepMerge.util.d.ts +0 -2
  51. package/dist/_utils/deepMerge.util.d.ts.map +0 -1
  52. package/dist/_utils/deepMerge.util.js +0 -16
  53. package/dist/_utils/deepMerge.util.js.map +0 -1
  54. package/dist/_utils/flatMap.util.d.ts +0 -10
  55. package/dist/_utils/flatMap.util.d.ts.map +0 -1
  56. package/dist/_utils/flatMap.util.js +0 -23
  57. package/dist/_utils/flatMap.util.js.map +0 -1
  58. package/dist/_utils/index.d.ts +0 -4
  59. package/dist/_utils/index.d.ts.map +0 -1
  60. package/dist/_utils/index.js +0 -4
  61. package/dist/_utils/index.js.map +0 -1
  62. package/dist/api/api.module.d.ts +0 -38
  63. package/dist/api/api.module.d.ts.map +0 -1
  64. package/dist/api/api.module.js +0 -82
  65. package/dist/api/api.module.js.map +0 -1
  66. package/dist/api/components/endpoint.d.ts +0 -26
  67. package/dist/api/components/endpoint.d.ts.map +0 -1
  68. package/dist/api/components/endpoint.js +0 -253
  69. package/dist/api/components/endpoint.js.map +0 -1
  70. package/dist/api/components/query-storage.d.ts +0 -84
  71. package/dist/api/components/query-storage.d.ts.map +0 -1
  72. package/dist/api/components/query-storage.js +0 -221
  73. package/dist/api/components/query-storage.js.map +0 -1
  74. package/dist/api/example.d.ts +0 -83
  75. package/dist/api/example.d.ts.map +0 -1
  76. package/dist/api/example.js +0 -85
  77. package/dist/api/example.js.map +0 -1
  78. package/dist/api/index.d.ts +0 -4
  79. package/dist/api/index.d.ts.map +0 -1
  80. package/dist/api/index.js +0 -6
  81. package/dist/api/index.js.map +0 -1
  82. package/dist/api/types/api.interface.d.ts +0 -108
  83. package/dist/api/types/api.interface.d.ts.map +0 -1
  84. package/dist/api/types/api.interface.js +0 -19
  85. package/dist/api/types/api.interface.js.map +0 -1
  86. package/dist/api/types/endpoint.interface.d.ts +0 -116
  87. package/dist/api/types/endpoint.interface.d.ts.map +0 -1
  88. package/dist/api/types/endpoint.interface.js +0 -2
  89. package/dist/api/types/endpoint.interface.js.map +0 -1
  90. package/dist/api/types/query.interface.d.ts +0 -87
  91. package/dist/api/types/query.interface.d.ts.map +0 -1
  92. package/dist/api/types/query.interface.js +0 -2
  93. package/dist/api/types/query.interface.js.map +0 -1
  94. package/dist/api/utils/api-helpers.d.ts +0 -22
  95. package/dist/api/utils/api-helpers.d.ts.map +0 -1
  96. package/dist/api/utils/api-helpers.js +0 -44
  97. package/dist/api/utils/api-helpers.js.map +0 -1
  98. package/dist/api/utils/create-header-context.d.ts +0 -10
  99. package/dist/api/utils/create-header-context.d.ts.map +0 -1
  100. package/dist/api/utils/create-header-context.js +0 -36
  101. package/dist/api/utils/create-header-context.js.map +0 -1
  102. package/dist/api/utils/endpoint-headers.d.ts +0 -23
  103. package/dist/api/utils/endpoint-headers.d.ts.map +0 -1
  104. package/dist/api/utils/endpoint-headers.js +0 -57
  105. package/dist/api/utils/endpoint-headers.js.map +0 -1
  106. package/dist/api/utils/fetch-base-query.d.ts +0 -9
  107. package/dist/api/utils/fetch-base-query.d.ts.map +0 -1
  108. package/dist/api/utils/fetch-base-query.js +0 -181
  109. package/dist/api/utils/fetch-base-query.js.map +0 -1
  110. package/dist/api/utils/file-utils.d.ts +0 -43
  111. package/dist/api/utils/file-utils.d.ts.map +0 -1
  112. package/dist/api/utils/file-utils.js +0 -108
  113. package/dist/api/utils/file-utils.js.map +0 -1
  114. package/dist/api/utils/get-cacheable-headers.d.ts +0 -8
  115. package/dist/api/utils/get-cacheable-headers.d.ts.map +0 -1
  116. package/dist/api/utils/get-cacheable-headers.js +0 -21
  117. package/dist/api/utils/get-cacheable-headers.js.map +0 -1
  118. package/dist/core/index.d.ts +0 -3
  119. package/dist/core/index.d.ts.map +0 -1
  120. package/dist/core/index.js +0 -3
  121. package/dist/core/index.js.map +0 -1
  122. package/dist/core/selector/index.d.ts +0 -3
  123. package/dist/core/selector/index.d.ts.map +0 -1
  124. package/dist/core/selector/index.js +0 -2
  125. package/dist/core/selector/index.js.map +0 -1
  126. package/dist/core/selector/selector.interface.d.ts.map +0 -1
  127. package/dist/core/selector/selector.interface.js +0 -2
  128. package/dist/core/selector/selector.interface.js.map +0 -1
  129. package/dist/core/selector/selector.module.d.ts +0 -29
  130. package/dist/core/selector/selector.module.d.ts.map +0 -1
  131. package/dist/core/selector/selector.module.js +0 -467
  132. package/dist/core/selector/selector.module.js.map +0 -1
  133. package/dist/core/storage/adapters/base-storage.service.d.ts +0 -65
  134. package/dist/core/storage/adapters/base-storage.service.d.ts.map +0 -1
  135. package/dist/core/storage/adapters/base-storage.service.js +0 -660
  136. package/dist/core/storage/adapters/base-storage.service.js.map +0 -1
  137. package/dist/core/storage/adapters/indexed-DB.service.d.ts +0 -63
  138. package/dist/core/storage/adapters/indexed-DB.service.d.ts.map +0 -1
  139. package/dist/core/storage/adapters/indexed-DB.service.js +0 -595
  140. package/dist/core/storage/adapters/indexed-DB.service.js.map +0 -1
  141. package/dist/core/storage/adapters/indexed-DB.service.old.d.ts +0 -38
  142. package/dist/core/storage/adapters/indexed-DB.service.old.d.ts.map +0 -1
  143. package/dist/core/storage/adapters/indexed-DB.service.old.js +0 -318
  144. package/dist/core/storage/adapters/indexed-DB.service.old.js.map +0 -1
  145. package/dist/core/storage/adapters/local-storage.service.d.ts +0 -21
  146. package/dist/core/storage/adapters/local-storage.service.d.ts.map +0 -1
  147. package/dist/core/storage/adapters/local-storage.service.js +0 -99
  148. package/dist/core/storage/adapters/local-storage.service.js.map +0 -1
  149. package/dist/core/storage/adapters/memory-storage.service.d.ts +0 -22
  150. package/dist/core/storage/adapters/memory-storage.service.d.ts.map +0 -1
  151. package/dist/core/storage/adapters/memory-storage.service.js +0 -99
  152. package/dist/core/storage/adapters/memory-storage.service.js.map +0 -1
  153. package/dist/core/storage/adapters/path.utils.d.ts +0 -5
  154. package/dist/core/storage/adapters/path.utils.d.ts.map +0 -1
  155. package/dist/core/storage/adapters/path.utils.js +0 -35
  156. package/dist/core/storage/adapters/path.utils.js.map +0 -1
  157. package/dist/core/storage/index.d.ts +0 -11
  158. package/dist/core/storage/index.d.ts.map +0 -1
  159. package/dist/core/storage/index.js +0 -12
  160. package/dist/core/storage/index.js.map +0 -1
  161. package/dist/core/storage/middlewares/broadcast.middleware.d.ts +0 -9
  162. package/dist/core/storage/middlewares/broadcast.middleware.d.ts.map +0 -1
  163. package/dist/core/storage/middlewares/broadcast.middleware.js +0 -115
  164. package/dist/core/storage/middlewares/broadcast.middleware.js.map +0 -1
  165. package/dist/core/storage/middlewares/index.d.ts +0 -4
  166. package/dist/core/storage/middlewares/index.d.ts.map +0 -1
  167. package/dist/core/storage/middlewares/index.js +0 -3
  168. package/dist/core/storage/middlewares/index.js.map +0 -1
  169. package/dist/core/storage/middlewares/storage-batching.middleware.d.ts +0 -7
  170. package/dist/core/storage/middlewares/storage-batching.middleware.d.ts.map +0 -1
  171. package/dist/core/storage/middlewares/storage-batching.middleware.js +0 -36
  172. package/dist/core/storage/middlewares/storage-batching.middleware.js.map +0 -1
  173. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.d.ts +0 -7
  174. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.d.ts.map +0 -1
  175. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.js +0 -46
  176. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.js.map +0 -1
  177. package/dist/core/storage/modules/plugin/plugin.interface.d.ts.map +0 -1
  178. package/dist/core/storage/modules/plugin/plugin.interface.js +0 -2
  179. package/dist/core/storage/modules/plugin/plugin.interface.js.map +0 -1
  180. package/dist/core/storage/modules/plugin/plugin.service.d.ts +0 -25
  181. package/dist/core/storage/modules/plugin/plugin.service.d.ts.map +0 -1
  182. package/dist/core/storage/modules/plugin/plugin.service.js +0 -186
  183. package/dist/core/storage/modules/plugin/plugin.service.js.map +0 -1
  184. package/dist/core/storage/storage.interface.d.ts +0 -70
  185. package/dist/core/storage/storage.interface.d.ts.map +0 -1
  186. package/dist/core/storage/storage.interface.js +0 -10
  187. package/dist/core/storage/storage.interface.js.map +0 -1
  188. package/dist/core/storage/utils/batch.utils.d.ts +0 -33
  189. package/dist/core/storage/utils/batch.utils.d.ts.map +0 -1
  190. package/dist/core/storage/utils/batch.utils.js +0 -88
  191. package/dist/core/storage/utils/batch.utils.js.map +0 -1
  192. package/dist/core/storage/utils/broadcast.util.d.ts +0 -48
  193. package/dist/core/storage/utils/broadcast.util.d.ts.map +0 -1
  194. package/dist/core/storage/utils/broadcast.util.js +0 -162
  195. package/dist/core/storage/utils/broadcast.util.js.map +0 -1
  196. package/dist/core/storage/utils/cache.util.d.ts +0 -33
  197. package/dist/core/storage/utils/cache.util.d.ts.map +0 -1
  198. package/dist/core/storage/utils/cache.util.js +0 -47
  199. package/dist/core/storage/utils/cache.util.js.map +0 -1
  200. package/dist/core/storage/utils/middleware-module.d.ts +0 -46
  201. package/dist/core/storage/utils/middleware-module.d.ts.map +0 -1
  202. package/dist/core/storage/utils/middleware-module.js +0 -109
  203. package/dist/core/storage/utils/middleware-module.js.map +0 -1
  204. package/dist/core/storage/utils/storage-key.d.ts +0 -11
  205. package/dist/core/storage/utils/storage-key.d.ts.map +0 -1
  206. package/dist/core/storage/utils/storage-key.js +0 -21
  207. package/dist/core/storage/utils/storage-key.js.map +0 -1
  208. package/dist/core/storage/utils/storage.utils.d.ts +0 -17
  209. package/dist/core/storage/utils/storage.utils.d.ts.map +0 -1
  210. package/dist/core/storage/utils/storage.utils.js +0 -57
  211. package/dist/core/storage/utils/storage.utils.js.map +0 -1
  212. package/dist/index.d.ts.map +0 -1
  213. package/dist/index.js.map +0 -1
  214. package/dist/react/hooks/index.d.ts +0 -3
  215. package/dist/react/hooks/index.d.ts.map +0 -1
  216. package/dist/react/hooks/index.js +0 -3
  217. package/dist/react/hooks/index.js.map +0 -1
  218. package/dist/react/hooks/useSelector.d.ts +0 -22
  219. package/dist/react/hooks/useSelector.d.ts.map +0 -1
  220. package/dist/react/hooks/useSelector.js +0 -104
  221. package/dist/react/hooks/useSelector.js.map +0 -1
  222. package/dist/react/hooks/useStorageSubscribe.d.ts +0 -12
  223. package/dist/react/hooks/useStorageSubscribe.d.ts.map +0 -1
  224. package/dist/react/hooks/useStorageSubscribe.js +0 -49
  225. package/dist/react/hooks/useStorageSubscribe.js.map +0 -1
  226. package/dist/react/index.d.ts +0 -3
  227. package/dist/react/index.d.ts.map +0 -1
  228. package/dist/react/index.js +0 -3
  229. package/dist/react/index.js.map +0 -1
  230. package/dist/react/utils/createSynapseCtx.d.ts +0 -40
  231. package/dist/react/utils/createSynapseCtx.d.ts.map +0 -1
  232. package/dist/react/utils/createSynapseCtx.js +0 -125
  233. package/dist/react/utils/createSynapseCtx.js.map +0 -1
  234. package/dist/react/utils/index.d.ts +0 -2
  235. package/dist/react/utils/index.d.ts.map +0 -1
  236. package/dist/react/utils/index.js +0 -2
  237. package/dist/react/utils/index.js.map +0 -1
  238. package/dist/reactive/dispatcher/dispatcher.module.d.ts +0 -195
  239. package/dist/reactive/dispatcher/dispatcher.module.d.ts.map +0 -1
  240. package/dist/reactive/dispatcher/dispatcher.module.js +0 -288
  241. package/dist/reactive/dispatcher/dispatcher.module.js.map +0 -1
  242. package/dist/reactive/dispatcher/index.d.ts +0 -3
  243. package/dist/reactive/dispatcher/index.d.ts.map +0 -1
  244. package/dist/reactive/dispatcher/index.js +0 -3
  245. package/dist/reactive/dispatcher/index.js.map +0 -1
  246. package/dist/reactive/dispatcher/middlewares/index.d.ts +0 -2
  247. package/dist/reactive/dispatcher/middlewares/index.d.ts.map +0 -1
  248. package/dist/reactive/dispatcher/middlewares/index.js +0 -2
  249. package/dist/reactive/dispatcher/middlewares/index.js.map +0 -1
  250. package/dist/reactive/dispatcher/middlewares/logger.middleware.d.ts +0 -31
  251. package/dist/reactive/dispatcher/middlewares/logger.middleware.d.ts.map +0 -1
  252. package/dist/reactive/dispatcher/middlewares/logger.middleware.js +0 -126
  253. package/dist/reactive/dispatcher/middlewares/logger.middleware.js.map +0 -1
  254. package/dist/reactive/effects/effects.module.d.ts +0 -150
  255. package/dist/reactive/effects/effects.module.d.ts.map +0 -1
  256. package/dist/reactive/effects/effects.module.js +0 -277
  257. package/dist/reactive/effects/effects.module.js.map +0 -1
  258. package/dist/reactive/effects/index.d.ts +0 -2
  259. package/dist/reactive/effects/index.d.ts.map +0 -1
  260. package/dist/reactive/effects/index.js +0 -2
  261. package/dist/reactive/effects/index.js.map +0 -1
  262. package/dist/reactive/effects/utils/chunkRequestConsistent.d.ts +0 -12
  263. package/dist/reactive/effects/utils/chunkRequestConsistent.d.ts.map +0 -1
  264. package/dist/reactive/effects/utils/chunkRequestConsistent.js +0 -16
  265. package/dist/reactive/effects/utils/chunkRequestConsistent.js.map +0 -1
  266. package/dist/reactive/effects/utils/chunkRequestParallel.d.ts +0 -12
  267. package/dist/reactive/effects/utils/chunkRequestParallel.d.ts.map +0 -1
  268. package/dist/reactive/effects/utils/chunkRequestParallel.js +0 -13
  269. package/dist/reactive/effects/utils/chunkRequestParallel.js.map +0 -1
  270. package/dist/reactive/effects/utils/index.d.ts +0 -3
  271. package/dist/reactive/effects/utils/index.d.ts.map +0 -1
  272. package/dist/reactive/effects/utils/index.js +0 -3
  273. package/dist/reactive/effects/utils/index.js.map +0 -1
  274. package/dist/reactive/index.d.ts +0 -3
  275. package/dist/reactive/index.d.ts.map +0 -1
  276. package/dist/reactive/index.js +0 -3
  277. package/dist/reactive/index.js.map +0 -1
  278. package/dist/utils/createSynapse.d.ts +0 -92
  279. package/dist/utils/createSynapse.d.ts.map +0 -1
  280. package/dist/utils/createSynapse.js +0 -79
  281. package/dist/utils/createSynapse.js.map +0 -1
  282. package/dist/utils/index.d.ts +0 -2
  283. package/dist/utils/index.d.ts.map +0 -1
  284. package/dist/utils/index.js +0 -2
  285. package/dist/utils/index.js.map +0 -1
@@ -1,125 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { createContext, useContext, useEffect, useRef, useState } from 'react';
3
- import { deepMerge } from '../../_utils';
4
- const ERROR_HOOK_MESSAGE = 'useSynapseActions необходимо использовать внутри компонента contextSynapse';
5
- const ERROR_CONTEXT_INIT = 'Ошибка при инициализации контекста:';
6
- // Основная реализация
7
- export function createSynapseCtx(synapseStorePromise, options) {
8
- const { loadingComponent = null, mergeFn = deepMerge } = options || {};
9
- // Храним ссылку на store
10
- let synapseStore = null;
11
- // Флаг готовности хранилища
12
- let storeReady = false;
13
- // Если передан Promise, начинаем его обработку
14
- const initPromise = (async () => {
15
- try {
16
- synapseStore = await (synapseStorePromise instanceof Promise ? synapseStorePromise : Promise.resolve(synapseStorePromise));
17
- storeReady = true;
18
- }
19
- catch (error) {
20
- console.error('Ошибка инициализации хранилища Synapse:', error);
21
- }
22
- })();
23
- const SynapseContext = createContext(null);
24
- const useSynapseStorage = () => {
25
- const context = useContext(SynapseContext);
26
- if (!context)
27
- throw new Error(ERROR_HOOK_MESSAGE);
28
- return context.storage;
29
- };
30
- const useSynapseSelectors = () => {
31
- const context = useContext(SynapseContext);
32
- if (!context)
33
- throw new Error(ERROR_HOOK_MESSAGE);
34
- return context.selectors;
35
- };
36
- // Условный хук для actions (только если есть dispatcher)
37
- const useSynapseActions = () => {
38
- const context = useContext(SynapseContext);
39
- if (!context)
40
- throw new Error(ERROR_HOOK_MESSAGE);
41
- if ('actions' in context) {
42
- return context.actions;
43
- }
44
- throw new Error('useSynapseActions: actions недоступны для этого типа хранилища. Убедитесь, что передана функция createDispatcherFn при создании хранилища.');
45
- };
46
- // Условный хук для state$ (только если есть effects)
47
- const useSynapseState$ = () => {
48
- const context = useContext(SynapseContext);
49
- if (!context)
50
- throw new Error(ERROR_HOOK_MESSAGE);
51
- if ('state$' in context) {
52
- return context.state$;
53
- }
54
- throw new Error('useSynapseState$: state$ недоступен для этого типа хранилища. Убедитесь, что переданы функции createDispatcherFn и createEffectConfig при создании хранилища.');
55
- };
56
- /**
57
- * Декоратор для обертывания компонентов в контекст Synapse
58
- */
59
- function contextSynapse(Component) {
60
- function WrappedComponent({ contextProps, ...props }) {
61
- const [initialized, setInitialized] = useState(false);
62
- const [storeInitialized, setStoreInitialized] = useState(storeReady);
63
- const debugIdRef = useRef(`synapse-${synapseStore?.storage.name || 'initializing'}`);
64
- // Отслеживаем инициализацию хранилища, если оно еще не готово
65
- useEffect(() => {
66
- if (!storeReady) {
67
- initPromise.then(() => {
68
- setStoreInitialized(true);
69
- });
70
- }
71
- }, []);
72
- // Инициализируем контекст при монтировании компонента
73
- useEffect(() => {
74
- // Не начинаем инициализацию контекста, пока хранилище не готово
75
- if (!storeInitialized)
76
- return;
77
- let mounted = true;
78
- const initializeContext = async () => {
79
- try {
80
- if (synapseStore && contextProps && Object.keys(contextProps).length > 0) {
81
- await synapseStore.storage.update((state) => {
82
- mergeFn(state, contextProps);
83
- });
84
- }
85
- if (mounted) {
86
- setInitialized(true);
87
- }
88
- }
89
- catch (error) {
90
- console.error(`[${debugIdRef.current}] ${ERROR_CONTEXT_INIT}`, error);
91
- }
92
- };
93
- initializeContext();
94
- return () => {
95
- mounted = false;
96
- };
97
- }, [contextProps, storeInitialized]);
98
- // Проверяем инициализацию хранилища и контекста
99
- if (!storeInitialized) {
100
- return loadingComponent || _jsx("div", { children: "\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430..." });
101
- }
102
- if (!initialized) {
103
- return loadingComponent || _jsx("div", { children: "\u0418\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430..." });
104
- }
105
- return (_jsx(SynapseContext.Provider, { value: synapseStore, children: _jsx(Component, { ...props }) }));
106
- }
107
- // Устанавливаем отображаемое имя для отладки
108
- const componentName = Component.displayName || Component.name || 'Component';
109
- WrappedComponent.displayName = `SynapseContext(${componentName})`;
110
- return WrappedComponent;
111
- }
112
- const cleanupSynapse = async () => {
113
- await initPromise; // Ждем завершения инициализации
114
- return synapseStore?.destroy() || Promise.resolve();
115
- };
116
- return {
117
- contextSynapse,
118
- useSynapseStorage,
119
- useSynapseSelectors,
120
- useSynapseActions,
121
- useSynapseState$,
122
- cleanupSynapse,
123
- };
124
- }
125
- //# sourceMappingURL=createSynapseCtx.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createSynapseCtx.js","sourceRoot":"","sources":["../../../src/react/utils/createSynapseCtx.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export * from './createSynapseCtx';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
@@ -1,2 +0,0 @@
1
- export * from './createSynapseCtx/index.js';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
@@ -1,195 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import type { IStorage } from '../../core';
3
- import { TypedAction } from '../effects';
4
- /**
5
- * Расширенное API для middleware
6
- */
7
- export interface EnhancedMiddlewareAPI<T extends Record<string, any>> {
8
- getState: () => Promise<T>;
9
- dispatch: (action: Action) => Promise<any>;
10
- storage: IStorage<T>;
11
- actions$: Observable<Action>;
12
- actions: Record<string, DispatchFunction<any, any>>;
13
- watchers: Record<string, WatcherFunction<any>>;
14
- findActionByType: (actionType: string) => DispatchFunction<any, any> | undefined;
15
- findWatcherByType: (actionType: string) => WatcherFunction<any> | undefined;
16
- }
17
- /**
18
- * Расширенное определение middleware
19
- */
20
- export interface EnhancedMiddleware<T extends Record<string, any> = any> {
21
- (api: EnhancedMiddlewareAPI<T>): (next: (action: Action) => Promise<any>) => (action: Action) => Promise<any>;
22
- }
23
- /**
24
- * Базовая структура действия
25
- */
26
- export interface Action<T = unknown> {
27
- type: string;
28
- payload?: T;
29
- meta?: Record<string, any>;
30
- }
31
- interface ActionExecutionOptions {
32
- worker?: Worker;
33
- memoize?: (currentArgs: any[], previousArgs: any[], previousResult: any) => boolean;
34
- }
35
- /**
36
- * Параметры для создания действия
37
- */
38
- export interface ActionDefinition<TParams, TResult> {
39
- /** Тип действия для идентификации в потоке и эффектах */
40
- type: string;
41
- /** Функция, выполняющая действие и возвращающая результат (payload) */
42
- action: (params: TParams) => Promise<TResult> | TResult;
43
- /** Дополнительные метаданные (опционально) */
44
- meta?: Record<string, any>;
45
- }
46
- /**
47
- * Определение типа для watcher'а
48
- */
49
- interface WatcherDefinition<T, R> {
50
- type: string;
51
- selector: (state: T) => R;
52
- meta?: Record<string, any>;
53
- shouldTrigger?: (prev: R | undefined, current: R) => boolean;
54
- }
55
- /**
56
- * Тип для функции watcher
57
- */
58
- export interface WatcherFunction<R> {
59
- (): Observable<TypedAction<R>>;
60
- actionType: string;
61
- meta?: Record<string, any>;
62
- unsubscribe: VoidFunction;
63
- }
64
- /**
65
- * Расширенный тип для функции настройки действий с поддержкой дополнительных утилит
66
- */
67
- export type ActionsSetupWithUtils<T extends Record<string, unknown>> = (storage: IStorage<T>, utils: {
68
- createAction: ActionCreatorFactory;
69
- createWatcher: <R>(config: WatcherDefinition<T, R>) => WatcherFunction<R>;
70
- }) => Record<string, DispatchFunction<any, any> | WatcherFunction<any>>;
71
- /**
72
- * Расширенная функция диспетчеризации
73
- */
74
- export interface DispatchFunction<TParams, TResult> {
75
- /** Функция для вызова действия с параметрами */
76
- (params: TParams): Promise<TResult>;
77
- /** Тип действия для использования в эффектах */
78
- actionType: string;
79
- /** Метаданные действия */
80
- meta?: Record<string, any>;
81
- /** Внутренний тип для идентификации */
82
- _type?: 'dispatch' | 'watchers';
83
- }
84
- /**
85
- * Тип для фабрики создателей действий
86
- */
87
- type ActionCreatorFactory = <TParams, TResult>(config: ActionDefinition<TParams, TResult>, executionOptions?: ActionExecutionOptions) => DispatchFunction<TParams, TResult>;
88
- /**
89
- * Тип для функции настройки действий
90
- */
91
- export type ActionsSetup<T extends Record<string, unknown>> = (create: ActionCreatorFactory, storage: IStorage<T>) => Record<string, DispatchFunction<any, any>>;
92
- /**
93
- * Извлекает тип результата из функции диспетчера
94
- */
95
- export type ExtractResultType<T> = T extends DispatchFunction<any, infer R> ? R : never;
96
- /**
97
- * Извлекает типы из функции настройки действий
98
- */
99
- export type ActionsResult<F> = F extends (create: ActionCreatorFactory, storage: any, ...args: any[]) => infer R ? R : Record<string, DispatchFunction<any, any>>;
100
- /**
101
- * Типизированный объект действий
102
- */
103
- export type DispatchActions<T> = {
104
- [K in keyof T]: T[K] extends DispatchFunction<any, any> ? T[K] : never;
105
- };
106
- /**
107
- * Типизированный объект watchers
108
- */
109
- export type WatcherActions<T> = {
110
- [K in keyof T]: T[K] extends WatcherFunction<any> ? T[K] : never;
111
- };
112
- /**
113
- * Параметры для Dispatcher
114
- */
115
- interface DispatcherOptions<T extends Record<string, any>> {
116
- storage: IStorage<T>;
117
- worker?: Worker;
118
- middlewares?: EnhancedMiddleware<T>[];
119
- }
120
- /**
121
- * Интерфейс для API middleware
122
- */
123
- export interface DispatcherMiddlewareAPI<T extends Record<string, any>> {
124
- getState: () => Promise<T>;
125
- dispatch: (action: Action) => Promise<any>;
126
- }
127
- /**
128
- * Интерфейс для middleware
129
- */
130
- export interface DispatcherMiddleware<T extends Record<string, any> = any> {
131
- (api: DispatcherMiddlewareAPI<T>): (next: (action: Action) => Promise<any>) => (action: Action) => Promise<any>;
132
- }
133
- /**
134
- * Класс Dispatcher для интеграции хранилищ с реактивной системой
135
- */
136
- export declare class Dispatcher<T extends Record<string, any>, TActionsFn extends ActionsSetupWithUtils<T> = ActionsSetupWithUtils<T>> {
137
- private options;
138
- private actions$;
139
- readonly actions: Observable<Action>;
140
- dispatch: Record<string, DispatchFunction<any, any>>;
141
- watchers: Record<string, WatcherFunction<any>>;
142
- private storage;
143
- private middlewareFunctions;
144
- private middlewareAPI;
145
- /**
146
- * Создает новый экземпляр Dispatcher
147
- */
148
- constructor(options: DispatcherOptions<T>);
149
- /**
150
- * Добавляет middleware в цепочку обработки
151
- */
152
- use(...middlewares: EnhancedMiddleware<T>[]): this;
153
- /**
154
- * Получает все действия с улучшенной типизацией
155
- */
156
- getActions(): ActionsResult<TActionsFn>;
157
- /**
158
- * Получает типизированные действия диспетчера
159
- */
160
- getTypedDispatch<A extends Record<string, any>>(): DispatchActions<A>;
161
- /**
162
- * Получает типизированные watcher'ы
163
- */
164
- getTypedWatchers<A extends Record<string, any>>(): WatcherActions<A>;
165
- /**
166
- * Находит действие по типу
167
- */
168
- findActionByType(actionType: string): DispatchFunction<any, any> | undefined;
169
- /**
170
- * Находит наблюдатель по типу
171
- */
172
- findWatcherByType(actionType: string): WatcherFunction<any> | undefined;
173
- /**
174
- * Создает действие
175
- */
176
- createAction<TParams, TResult>(actionConfig: ActionDefinition<TParams, TResult>, executionOptions?: ActionExecutionOptions): DispatchFunction<TParams, TResult>;
177
- /**
178
- * Создает watcher для отслеживания изменений в хранилище
179
- */
180
- createWatcher<R>(config: WatcherDefinition<T, R>): WatcherFunction<R>;
181
- /**
182
- * Выполняет действие в worker
183
- */
184
- private executeInWorker;
185
- }
186
- /**
187
- * Функция для создания типизированного диспетчера
188
- */
189
- export declare function createDispatcher<TState extends Record<string, any>, TActions extends ActionsSetupWithUtils<TState>>(options: DispatcherOptions<TState>, actionsSetup: TActions): Dispatcher<TState, TActions> & {
190
- dispatch: DispatchActions<ReturnType<TActions>>;
191
- watchers: WatcherActions<ReturnType<TActions>>;
192
- };
193
- export type CreateDispatcherType = ReturnType<typeof createDispatcher>;
194
- export {};
195
- //# sourceMappingURL=dispatcher.module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dispatcher.module.d.ts","sourceRoot":"","sources":["../../../src/reactive/dispatcher/dispatcher.module.ts"],"names":[],"mappings":"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"}
@@ -1,288 +0,0 @@
1
- import { Subject } from 'rxjs';
2
- /**
3
- * Класс Dispatcher для интеграции хранилищ с реактивной системой
4
- */
5
- export class Dispatcher {
6
- options;
7
- // Поток действий
8
- actions$ = new Subject();
9
- // Публичный Observable для действий
10
- actions = this.actions$.asObservable();
11
- // Методы диспетчеризации действий с типизацией
12
- dispatch = {};
13
- // Watcher'ы для реактивной подписки на изменения
14
- watchers = {};
15
- // Ссылка на хранилище
16
- storage;
17
- // Только один массив для хранения инициализированных middleware
18
- middlewareFunctions = [];
19
- // API для инициализации middleware
20
- middlewareAPI;
21
- /**
22
- * Создает новый экземпляр Dispatcher
23
- */
24
- constructor(options) {
25
- this.options = options;
26
- this.storage = options.storage;
27
- // Создаем API для middleware сразу
28
- this.middlewareAPI = {
29
- getState: () => this.storage.getState(),
30
- dispatch: async (action) => {
31
- this.actions$.next(action);
32
- return action.payload;
33
- },
34
- storage: this.storage,
35
- actions$: this.actions,
36
- actions: this.dispatch,
37
- watchers: this.watchers,
38
- findActionByType: (type) => this.findActionByType(type),
39
- findWatcherByType: (type) => this.findWatcherByType(type),
40
- };
41
- // Если есть middleware в options, добавляем их
42
- if (options.middlewares && options.middlewares.length > 0) {
43
- this.use(...options.middlewares);
44
- }
45
- }
46
- /**
47
- * Добавляет middleware в цепочку обработки
48
- */
49
- use(...middlewares) {
50
- // Инициализируем каждый middleware и добавляем только инициализированную версию
51
- for (let i = 0; i < middlewares.length; i++) {
52
- try {
53
- // Инициализируем middleware с API
54
- const initializedMiddleware = middlewares[i](this.middlewareAPI);
55
- this.middlewareFunctions.push(initializedMiddleware);
56
- }
57
- catch (error) {
58
- console.error(`Error initializing middleware [${i}]:`, error);
59
- }
60
- }
61
- return this;
62
- }
63
- /**
64
- * Получает все действия с улучшенной типизацией
65
- */
66
- getActions() {
67
- return this.dispatch;
68
- }
69
- /**
70
- * Получает типизированные действия диспетчера
71
- */
72
- getTypedDispatch() {
73
- return this.dispatch;
74
- }
75
- /**
76
- * Получает типизированные watcher'ы
77
- */
78
- getTypedWatchers() {
79
- return this.watchers;
80
- }
81
- /**
82
- * Находит действие по типу
83
- */
84
- findActionByType(actionType) {
85
- return Object.values(this.dispatch).find((action) => {
86
- return action.actionType.split(`[${this.storage.name}]`)[1] === actionType;
87
- });
88
- }
89
- /**
90
- * Находит наблюдатель по типу
91
- */
92
- findWatcherByType(actionType) {
93
- return Object.values(this.watchers).find((watcher) => watcher.actionType === actionType);
94
- }
95
- /**
96
- * Создает действие
97
- */
98
- createAction(actionConfig, executionOptions) {
99
- const actionType = `[${this.storage.name}]${actionConfig.type}`;
100
- // Для мемоизации храним последние аргументы и результат
101
- let lastArgs = null;
102
- let lastResult = null;
103
- // Создаем функцию диспетчеризации
104
- const dispatchFn = async (params) => {
105
- const args = [params];
106
- // Проверяем мемоизацию
107
- if (executionOptions?.memoize && lastArgs && lastResult) {
108
- if (executionOptions.memoize(args, lastArgs, lastResult)) {
109
- return lastResult;
110
- }
111
- }
112
- // Создаем объект действия
113
- const actionObject = {
114
- type: actionType,
115
- meta: actionConfig.meta,
116
- };
117
- // Применяем middleware цепочку
118
- let result;
119
- if (this.middlewareFunctions.length > 0) {
120
- // Базовая функция выполнения действия
121
- // Строим цепочку middleware в обратном порядке
122
- let chain = async (action) => {
123
- if (executionOptions?.worker) {
124
- return this.executeInWorker(executionOptions.worker, actionType, args, actionConfig.action);
125
- }
126
- else {
127
- return Promise.resolve(actionConfig.action(params));
128
- }
129
- };
130
- // Проходим по middleware в обратном порядке
131
- // Важно: сначала создаем всю цепочку, затем выполняем
132
- for (let i = this.middlewareFunctions.length - 1; i >= 0; i--) {
133
- const currentMiddleware = this.middlewareFunctions[i];
134
- const nextChain = chain; // Сохраняем предыдущую цепочку
135
- // Создаем новую цепочку, которая вызывает текущий middleware,
136
- // передавая предыдущую цепочку как функцию next
137
- chain = async (action) => {
138
- // Создаем функцию next для передачи в middleware
139
- const next = async (nextAction) => nextChain(nextAction);
140
- // Получаем обработчик действия и сразу вызываем его
141
- return currentMiddleware(next)(action);
142
- };
143
- }
144
- // Выполняем действие через цепочку middleware
145
- result = await chain(actionObject);
146
- }
147
- else {
148
- // Выполняем действие напрямую без middleware
149
- if (executionOptions?.worker) {
150
- result = await this.executeInWorker(executionOptions.worker, actionType, args, actionConfig.action);
151
- }
152
- else {
153
- result = await actionConfig.action(params);
154
- }
155
- }
156
- // Обновляем объект действия результатом
157
- actionObject.payload = result;
158
- // Сохраняем аргументы и результат для мемоизации
159
- lastArgs = [...args];
160
- lastResult = result;
161
- // Отправляем информацию о действии в поток
162
- this.actions$.next(actionObject);
163
- return result;
164
- };
165
- dispatchFn._type = 'dispatch';
166
- // Добавляем тип действия как свойство функции
167
- Object.defineProperty(dispatchFn, 'actionType', {
168
- value: actionType,
169
- writable: false,
170
- enumerable: true,
171
- });
172
- // Добавляем метаданные, если они есть
173
- if (actionConfig.meta) {
174
- Object.defineProperty(dispatchFn, 'meta', {
175
- value: actionConfig.meta,
176
- writable: false,
177
- enumerable: true,
178
- });
179
- }
180
- return dispatchFn;
181
- }
182
- /**
183
- * Создает watcher для отслеживания изменений в хранилище
184
- */
185
- createWatcher(config) {
186
- // Логика остается без изменений
187
- const actionType = `[${this.storage.name}]${config.type}`;
188
- // Создаем Subject для этого watcher'а
189
- const subject = new Subject();
190
- // Предыдущее значение для сравнения
191
- let prevValue;
192
- // Подписываемся на изменения состояния
193
- const unsubscribe = this.storage.subscribe(config.selector, (value) => {
194
- // Проверяем, нужно ли генерировать событие
195
- if (!config.shouldTrigger || config.shouldTrigger(prevValue, value)) {
196
- // Создаем действие
197
- const action = {
198
- type: actionType,
199
- payload: value,
200
- meta: config.meta,
201
- };
202
- // Отправляем в основной поток действий
203
- this.actions$.next(action);
204
- // Отправляем в поток этого watcher'а
205
- subject.next(action);
206
- // Обновляем предыдущее значение
207
- prevValue = value;
208
- }
209
- });
210
- // Создаем функцию watcher'а
211
- const watcherFn = () => subject.asObservable();
212
- watcherFn._type = 'watchers';
213
- // Добавляем свойства
214
- Object.defineProperty(watcherFn, 'actionType', {
215
- value: actionType,
216
- writable: false,
217
- enumerable: true,
218
- });
219
- if (config.meta) {
220
- Object.defineProperty(watcherFn, 'meta', {
221
- value: config.meta,
222
- writable: false,
223
- enumerable: true,
224
- });
225
- }
226
- // Добавляем метод для отписки
227
- Object.defineProperty(watcherFn, 'unsubscribe', {
228
- value: unsubscribe,
229
- writable: false,
230
- enumerable: true,
231
- });
232
- //@ts-ignore
233
- return watcherFn;
234
- }
235
- /**
236
- * Выполняет действие в worker
237
- */
238
- async executeInWorker(worker, actionType, args, fallbackAction) {
239
- // Логика остается без изменений
240
- return new Promise((resolve, reject) => {
241
- const requestId = `${actionType}_${Date.now()}_${Math.random()}`;
242
- const handleMessage = (event) => {
243
- if (event.data.requestId === requestId) {
244
- worker.removeEventListener('message', handleMessage);
245
- if (event.data.error) {
246
- reject(new Error(event.data.error));
247
- }
248
- else {
249
- resolve(event.data.result);
250
- }
251
- }
252
- };
253
- worker.addEventListener('message', handleMessage);
254
- worker.postMessage({
255
- type: actionType,
256
- args,
257
- requestId,
258
- });
259
- // Опционально: таймаут
260
- setTimeout(() => {
261
- worker.removeEventListener('message', handleMessage);
262
- reject(new Error(`Worker execution timeout for action: ${actionType}`));
263
- }, 30000); // 30 секунд таймаут
264
- });
265
- }
266
- }
267
- /**
268
- * Функция для создания типизированного диспетчера
269
- */
270
- export function createDispatcher(options, actionsSetup) {
271
- // Создаем экземпляр диспетчера
272
- const dispatcher = new Dispatcher(options);
273
- // Вызываем функцию настройки действий с обновленной структурой аргументов
274
- const actions = actionsSetup(options.storage, {
275
- createAction: (actionConfig, executionOptions) => dispatcher.createAction(actionConfig, executionOptions),
276
- createWatcher: (config) => dispatcher.createWatcher(config),
277
- });
278
- // Регистрируем все созданные объекты в соответствующих коллекциях
279
- for (const [key, fn] of Object.entries(actions)) {
280
- if (typeof fn === 'function') {
281
- const type = fn._type;
282
- // @ts-ignore
283
- dispatcher[type][key] = fn;
284
- }
285
- }
286
- return dispatcher;
287
- }
288
- //# sourceMappingURL=dispatcher.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dispatcher.module.js","sourceRoot":"","sources":["../../../src/reactive/dispatcher/dispatcher.module.ts"],"names":[],"mappings":"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"}