synapse-storage 3.0.2 → 3.0.3

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 (282) hide show
  1. package/dist/api.cjs +891 -0
  2. package/dist/api.cjs.map +1 -0
  3. package/dist/api.d.cts +365 -0
  4. package/dist/api.d.ts +365 -0
  5. package/dist/api.js +860 -0
  6. package/dist/api.js.map +1 -0
  7. package/dist/core.cjs +2389 -0
  8. package/dist/core.cjs.map +1 -0
  9. package/dist/core.d.cts +397 -0
  10. package/dist/{core/storage/modules/plugin/plugin.interface.d.ts → core.d.ts} +203 -7
  11. package/dist/core.js +2356 -0
  12. package/dist/core.js.map +1 -0
  13. package/dist/dispatcher.module-CdpmkplA.d.cts +363 -0
  14. package/dist/dispatcher.module-jd8U_ZEs.d.ts +363 -0
  15. package/dist/index.cjs +4148 -0
  16. package/dist/index.cjs.map +1 -0
  17. package/dist/index.d.cts +10 -0
  18. package/dist/index.d.ts +10 -10
  19. package/dist/index.js +4092 -13
  20. package/dist/index.js.map +1 -1
  21. package/dist/react.cjs +268 -0
  22. package/dist/react.cjs.map +1 -0
  23. package/dist/react.d.cts +74 -0
  24. package/dist/react.d.ts +74 -0
  25. package/dist/react.js +239 -0
  26. package/dist/react.js.map +1 -0
  27. package/dist/reactive.cjs +643 -0
  28. package/dist/reactive.cjs.map +1 -0
  29. package/dist/reactive.d.cts +35 -0
  30. package/dist/reactive.d.ts +35 -0
  31. package/dist/reactive.js +604 -0
  32. package/dist/reactive.js.map +1 -0
  33. package/dist/{core/selector/selector.interface.d.ts → selector.interface-CA5y-kD_.d.cts} +7 -35
  34. package/dist/selector.interface-CA5y-kD_.d.ts +63 -0
  35. package/dist/storage.interface-Dl8SLUd1.d.cts +128 -0
  36. package/dist/storage.interface-Dl8SLUd1.d.ts +128 -0
  37. package/dist/utils.cjs +601 -0
  38. package/dist/utils.cjs.map +1 -0
  39. package/dist/utils.d.cts +92 -0
  40. package/dist/utils.d.ts +92 -0
  41. package/dist/utils.js +574 -0
  42. package/dist/utils.js.map +1 -0
  43. package/package.json +54 -17
  44. package/dist/_utils/chunk.util.d.ts +0 -8
  45. package/dist/_utils/chunk.util.d.ts.map +0 -1
  46. package/dist/_utils/chunk.util.js +0 -21
  47. package/dist/_utils/chunk.util.js.map +0 -1
  48. package/dist/_utils/deepMerge.util.d.ts +0 -2
  49. package/dist/_utils/deepMerge.util.d.ts.map +0 -1
  50. package/dist/_utils/deepMerge.util.js +0 -16
  51. package/dist/_utils/deepMerge.util.js.map +0 -1
  52. package/dist/_utils/flatMap.util.d.ts +0 -10
  53. package/dist/_utils/flatMap.util.d.ts.map +0 -1
  54. package/dist/_utils/flatMap.util.js +0 -23
  55. package/dist/_utils/flatMap.util.js.map +0 -1
  56. package/dist/_utils/index.d.ts +0 -4
  57. package/dist/_utils/index.d.ts.map +0 -1
  58. package/dist/_utils/index.js +0 -4
  59. package/dist/_utils/index.js.map +0 -1
  60. package/dist/api/api.module.d.ts +0 -38
  61. package/dist/api/api.module.d.ts.map +0 -1
  62. package/dist/api/api.module.js +0 -82
  63. package/dist/api/api.module.js.map +0 -1
  64. package/dist/api/components/endpoint.d.ts +0 -26
  65. package/dist/api/components/endpoint.d.ts.map +0 -1
  66. package/dist/api/components/endpoint.js +0 -253
  67. package/dist/api/components/endpoint.js.map +0 -1
  68. package/dist/api/components/query-storage.d.ts +0 -84
  69. package/dist/api/components/query-storage.d.ts.map +0 -1
  70. package/dist/api/components/query-storage.js +0 -221
  71. package/dist/api/components/query-storage.js.map +0 -1
  72. package/dist/api/example.d.ts +0 -83
  73. package/dist/api/example.d.ts.map +0 -1
  74. package/dist/api/example.js +0 -85
  75. package/dist/api/example.js.map +0 -1
  76. package/dist/api/index.d.ts +0 -4
  77. package/dist/api/index.d.ts.map +0 -1
  78. package/dist/api/index.js +0 -6
  79. package/dist/api/index.js.map +0 -1
  80. package/dist/api/types/api.interface.d.ts +0 -108
  81. package/dist/api/types/api.interface.d.ts.map +0 -1
  82. package/dist/api/types/api.interface.js +0 -19
  83. package/dist/api/types/api.interface.js.map +0 -1
  84. package/dist/api/types/endpoint.interface.d.ts +0 -116
  85. package/dist/api/types/endpoint.interface.d.ts.map +0 -1
  86. package/dist/api/types/endpoint.interface.js +0 -2
  87. package/dist/api/types/endpoint.interface.js.map +0 -1
  88. package/dist/api/types/query.interface.d.ts +0 -87
  89. package/dist/api/types/query.interface.d.ts.map +0 -1
  90. package/dist/api/types/query.interface.js +0 -2
  91. package/dist/api/types/query.interface.js.map +0 -1
  92. package/dist/api/utils/api-helpers.d.ts +0 -22
  93. package/dist/api/utils/api-helpers.d.ts.map +0 -1
  94. package/dist/api/utils/api-helpers.js +0 -44
  95. package/dist/api/utils/api-helpers.js.map +0 -1
  96. package/dist/api/utils/create-header-context.d.ts +0 -10
  97. package/dist/api/utils/create-header-context.d.ts.map +0 -1
  98. package/dist/api/utils/create-header-context.js +0 -36
  99. package/dist/api/utils/create-header-context.js.map +0 -1
  100. package/dist/api/utils/endpoint-headers.d.ts +0 -23
  101. package/dist/api/utils/endpoint-headers.d.ts.map +0 -1
  102. package/dist/api/utils/endpoint-headers.js +0 -57
  103. package/dist/api/utils/endpoint-headers.js.map +0 -1
  104. package/dist/api/utils/fetch-base-query.d.ts +0 -9
  105. package/dist/api/utils/fetch-base-query.d.ts.map +0 -1
  106. package/dist/api/utils/fetch-base-query.js +0 -181
  107. package/dist/api/utils/fetch-base-query.js.map +0 -1
  108. package/dist/api/utils/file-utils.d.ts +0 -43
  109. package/dist/api/utils/file-utils.d.ts.map +0 -1
  110. package/dist/api/utils/file-utils.js +0 -108
  111. package/dist/api/utils/file-utils.js.map +0 -1
  112. package/dist/api/utils/get-cacheable-headers.d.ts +0 -8
  113. package/dist/api/utils/get-cacheable-headers.d.ts.map +0 -1
  114. package/dist/api/utils/get-cacheable-headers.js +0 -21
  115. package/dist/api/utils/get-cacheable-headers.js.map +0 -1
  116. package/dist/core/index.d.ts +0 -3
  117. package/dist/core/index.d.ts.map +0 -1
  118. package/dist/core/index.js +0 -3
  119. package/dist/core/index.js.map +0 -1
  120. package/dist/core/selector/index.d.ts +0 -3
  121. package/dist/core/selector/index.d.ts.map +0 -1
  122. package/dist/core/selector/index.js +0 -2
  123. package/dist/core/selector/index.js.map +0 -1
  124. package/dist/core/selector/selector.interface.d.ts.map +0 -1
  125. package/dist/core/selector/selector.interface.js +0 -2
  126. package/dist/core/selector/selector.interface.js.map +0 -1
  127. package/dist/core/selector/selector.module.d.ts +0 -29
  128. package/dist/core/selector/selector.module.d.ts.map +0 -1
  129. package/dist/core/selector/selector.module.js +0 -467
  130. package/dist/core/selector/selector.module.js.map +0 -1
  131. package/dist/core/storage/adapters/base-storage.service.d.ts +0 -65
  132. package/dist/core/storage/adapters/base-storage.service.d.ts.map +0 -1
  133. package/dist/core/storage/adapters/base-storage.service.js +0 -660
  134. package/dist/core/storage/adapters/base-storage.service.js.map +0 -1
  135. package/dist/core/storage/adapters/indexed-DB.service.d.ts +0 -63
  136. package/dist/core/storage/adapters/indexed-DB.service.d.ts.map +0 -1
  137. package/dist/core/storage/adapters/indexed-DB.service.js +0 -595
  138. package/dist/core/storage/adapters/indexed-DB.service.js.map +0 -1
  139. package/dist/core/storage/adapters/indexed-DB.service.old.d.ts +0 -38
  140. package/dist/core/storage/adapters/indexed-DB.service.old.d.ts.map +0 -1
  141. package/dist/core/storage/adapters/indexed-DB.service.old.js +0 -318
  142. package/dist/core/storage/adapters/indexed-DB.service.old.js.map +0 -1
  143. package/dist/core/storage/adapters/local-storage.service.d.ts +0 -21
  144. package/dist/core/storage/adapters/local-storage.service.d.ts.map +0 -1
  145. package/dist/core/storage/adapters/local-storage.service.js +0 -99
  146. package/dist/core/storage/adapters/local-storage.service.js.map +0 -1
  147. package/dist/core/storage/adapters/memory-storage.service.d.ts +0 -22
  148. package/dist/core/storage/adapters/memory-storage.service.d.ts.map +0 -1
  149. package/dist/core/storage/adapters/memory-storage.service.js +0 -99
  150. package/dist/core/storage/adapters/memory-storage.service.js.map +0 -1
  151. package/dist/core/storage/adapters/path.utils.d.ts +0 -5
  152. package/dist/core/storage/adapters/path.utils.d.ts.map +0 -1
  153. package/dist/core/storage/adapters/path.utils.js +0 -35
  154. package/dist/core/storage/adapters/path.utils.js.map +0 -1
  155. package/dist/core/storage/index.d.ts +0 -11
  156. package/dist/core/storage/index.d.ts.map +0 -1
  157. package/dist/core/storage/index.js +0 -12
  158. package/dist/core/storage/index.js.map +0 -1
  159. package/dist/core/storage/middlewares/broadcast.middleware.d.ts +0 -9
  160. package/dist/core/storage/middlewares/broadcast.middleware.d.ts.map +0 -1
  161. package/dist/core/storage/middlewares/broadcast.middleware.js +0 -115
  162. package/dist/core/storage/middlewares/broadcast.middleware.js.map +0 -1
  163. package/dist/core/storage/middlewares/index.d.ts +0 -4
  164. package/dist/core/storage/middlewares/index.d.ts.map +0 -1
  165. package/dist/core/storage/middlewares/index.js +0 -3
  166. package/dist/core/storage/middlewares/index.js.map +0 -1
  167. package/dist/core/storage/middlewares/storage-batching.middleware.d.ts +0 -7
  168. package/dist/core/storage/middlewares/storage-batching.middleware.d.ts.map +0 -1
  169. package/dist/core/storage/middlewares/storage-batching.middleware.js +0 -36
  170. package/dist/core/storage/middlewares/storage-batching.middleware.js.map +0 -1
  171. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.d.ts +0 -7
  172. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.d.ts.map +0 -1
  173. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.js +0 -46
  174. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.js.map +0 -1
  175. package/dist/core/storage/modules/plugin/plugin.interface.d.ts.map +0 -1
  176. package/dist/core/storage/modules/plugin/plugin.interface.js +0 -2
  177. package/dist/core/storage/modules/plugin/plugin.interface.js.map +0 -1
  178. package/dist/core/storage/modules/plugin/plugin.service.d.ts +0 -25
  179. package/dist/core/storage/modules/plugin/plugin.service.d.ts.map +0 -1
  180. package/dist/core/storage/modules/plugin/plugin.service.js +0 -186
  181. package/dist/core/storage/modules/plugin/plugin.service.js.map +0 -1
  182. package/dist/core/storage/storage.interface.d.ts +0 -70
  183. package/dist/core/storage/storage.interface.d.ts.map +0 -1
  184. package/dist/core/storage/storage.interface.js +0 -10
  185. package/dist/core/storage/storage.interface.js.map +0 -1
  186. package/dist/core/storage/utils/batch.utils.d.ts +0 -33
  187. package/dist/core/storage/utils/batch.utils.d.ts.map +0 -1
  188. package/dist/core/storage/utils/batch.utils.js +0 -88
  189. package/dist/core/storage/utils/batch.utils.js.map +0 -1
  190. package/dist/core/storage/utils/broadcast.util.d.ts +0 -48
  191. package/dist/core/storage/utils/broadcast.util.d.ts.map +0 -1
  192. package/dist/core/storage/utils/broadcast.util.js +0 -162
  193. package/dist/core/storage/utils/broadcast.util.js.map +0 -1
  194. package/dist/core/storage/utils/cache.util.d.ts +0 -33
  195. package/dist/core/storage/utils/cache.util.d.ts.map +0 -1
  196. package/dist/core/storage/utils/cache.util.js +0 -47
  197. package/dist/core/storage/utils/cache.util.js.map +0 -1
  198. package/dist/core/storage/utils/middleware-module.d.ts +0 -46
  199. package/dist/core/storage/utils/middleware-module.d.ts.map +0 -1
  200. package/dist/core/storage/utils/middleware-module.js +0 -109
  201. package/dist/core/storage/utils/middleware-module.js.map +0 -1
  202. package/dist/core/storage/utils/storage-key.d.ts +0 -11
  203. package/dist/core/storage/utils/storage-key.d.ts.map +0 -1
  204. package/dist/core/storage/utils/storage-key.js +0 -21
  205. package/dist/core/storage/utils/storage-key.js.map +0 -1
  206. package/dist/core/storage/utils/storage.utils.d.ts +0 -17
  207. package/dist/core/storage/utils/storage.utils.d.ts.map +0 -1
  208. package/dist/core/storage/utils/storage.utils.js +0 -57
  209. package/dist/core/storage/utils/storage.utils.js.map +0 -1
  210. package/dist/index.d.ts.map +0 -1
  211. package/dist/react/hooks/index.d.ts +0 -3
  212. package/dist/react/hooks/index.d.ts.map +0 -1
  213. package/dist/react/hooks/index.js +0 -3
  214. package/dist/react/hooks/index.js.map +0 -1
  215. package/dist/react/hooks/useSelector.d.ts +0 -22
  216. package/dist/react/hooks/useSelector.d.ts.map +0 -1
  217. package/dist/react/hooks/useSelector.js +0 -104
  218. package/dist/react/hooks/useSelector.js.map +0 -1
  219. package/dist/react/hooks/useStorageSubscribe.d.ts +0 -12
  220. package/dist/react/hooks/useStorageSubscribe.d.ts.map +0 -1
  221. package/dist/react/hooks/useStorageSubscribe.js +0 -49
  222. package/dist/react/hooks/useStorageSubscribe.js.map +0 -1
  223. package/dist/react/index.d.ts +0 -3
  224. package/dist/react/index.d.ts.map +0 -1
  225. package/dist/react/index.js +0 -3
  226. package/dist/react/index.js.map +0 -1
  227. package/dist/react/utils/createSynapseCtx.d.ts +0 -40
  228. package/dist/react/utils/createSynapseCtx.d.ts.map +0 -1
  229. package/dist/react/utils/createSynapseCtx.js +0 -125
  230. package/dist/react/utils/createSynapseCtx.js.map +0 -1
  231. package/dist/react/utils/index.d.ts +0 -2
  232. package/dist/react/utils/index.d.ts.map +0 -1
  233. package/dist/react/utils/index.js +0 -2
  234. package/dist/react/utils/index.js.map +0 -1
  235. package/dist/reactive/dispatcher/dispatcher.module.d.ts +0 -195
  236. package/dist/reactive/dispatcher/dispatcher.module.d.ts.map +0 -1
  237. package/dist/reactive/dispatcher/dispatcher.module.js +0 -288
  238. package/dist/reactive/dispatcher/dispatcher.module.js.map +0 -1
  239. package/dist/reactive/dispatcher/index.d.ts +0 -3
  240. package/dist/reactive/dispatcher/index.d.ts.map +0 -1
  241. package/dist/reactive/dispatcher/index.js +0 -3
  242. package/dist/reactive/dispatcher/index.js.map +0 -1
  243. package/dist/reactive/dispatcher/middlewares/index.d.ts +0 -2
  244. package/dist/reactive/dispatcher/middlewares/index.d.ts.map +0 -1
  245. package/dist/reactive/dispatcher/middlewares/index.js +0 -2
  246. package/dist/reactive/dispatcher/middlewares/index.js.map +0 -1
  247. package/dist/reactive/dispatcher/middlewares/logger.middleware.d.ts +0 -31
  248. package/dist/reactive/dispatcher/middlewares/logger.middleware.d.ts.map +0 -1
  249. package/dist/reactive/dispatcher/middlewares/logger.middleware.js +0 -126
  250. package/dist/reactive/dispatcher/middlewares/logger.middleware.js.map +0 -1
  251. package/dist/reactive/effects/effects.module.d.ts +0 -150
  252. package/dist/reactive/effects/effects.module.d.ts.map +0 -1
  253. package/dist/reactive/effects/effects.module.js +0 -277
  254. package/dist/reactive/effects/effects.module.js.map +0 -1
  255. package/dist/reactive/effects/index.d.ts +0 -2
  256. package/dist/reactive/effects/index.d.ts.map +0 -1
  257. package/dist/reactive/effects/index.js +0 -2
  258. package/dist/reactive/effects/index.js.map +0 -1
  259. package/dist/reactive/effects/utils/chunkRequestConsistent.d.ts +0 -12
  260. package/dist/reactive/effects/utils/chunkRequestConsistent.d.ts.map +0 -1
  261. package/dist/reactive/effects/utils/chunkRequestConsistent.js +0 -16
  262. package/dist/reactive/effects/utils/chunkRequestConsistent.js.map +0 -1
  263. package/dist/reactive/effects/utils/chunkRequestParallel.d.ts +0 -12
  264. package/dist/reactive/effects/utils/chunkRequestParallel.d.ts.map +0 -1
  265. package/dist/reactive/effects/utils/chunkRequestParallel.js +0 -13
  266. package/dist/reactive/effects/utils/chunkRequestParallel.js.map +0 -1
  267. package/dist/reactive/effects/utils/index.d.ts +0 -3
  268. package/dist/reactive/effects/utils/index.d.ts.map +0 -1
  269. package/dist/reactive/effects/utils/index.js +0 -3
  270. package/dist/reactive/effects/utils/index.js.map +0 -1
  271. package/dist/reactive/index.d.ts +0 -3
  272. package/dist/reactive/index.d.ts.map +0 -1
  273. package/dist/reactive/index.js +0 -3
  274. package/dist/reactive/index.js.map +0 -1
  275. package/dist/utils/createSynapse.d.ts +0 -92
  276. package/dist/utils/createSynapse.d.ts.map +0 -1
  277. package/dist/utils/createSynapse.js +0 -79
  278. package/dist/utils/createSynapse.js.map +0 -1
  279. package/dist/utils/index.d.ts +0 -2
  280. package/dist/utils/index.d.ts.map +0 -1
  281. package/dist/utils/index.js +0 -2
  282. package/dist/utils/index.js.map +0 -1
@@ -1,3 +0,0 @@
1
- export * from './dispatcher.module';
2
- export * from './middlewares';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reactive/dispatcher/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA"}
@@ -1,3 +0,0 @@
1
- export * from './dispatcher.module.js';
2
- export * from './middlewares/index.js';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/reactive/dispatcher/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,eAAe,CAAA"}
@@ -1,2 +0,0 @@
1
- export * from './logger.middleware';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/reactive/dispatcher/middlewares/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA"}
@@ -1,2 +0,0 @@
1
- export * from './logger.middleware.js';
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/reactive/dispatcher/middlewares/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA"}
@@ -1,31 +0,0 @@
1
- import type { EnhancedMiddleware } from '../dispatcher.module';
2
- interface LoggerTranslations {
3
- action: string;
4
- prevState: string;
5
- nextState: string;
6
- duration: string;
7
- error: string;
8
- diff: string;
9
- changesCount: string;
10
- showFullState: string;
11
- }
12
- interface LoggerColors {
13
- title: string;
14
- prevState: string;
15
- fullState: string;
16
- action: string;
17
- nextState: string;
18
- error: string;
19
- diff: string;
20
- }
21
- interface LoggerOptions {
22
- collapsed?: boolean;
23
- duration?: boolean;
24
- diff?: boolean;
25
- showFullState?: boolean;
26
- translations?: Partial<LoggerTranslations>;
27
- colors?: Partial<LoggerColors>;
28
- }
29
- export declare const loggerDispatcherMiddleware: <State extends Record<string, any>>(options?: LoggerOptions) => EnhancedMiddleware<State>;
30
- export {};
31
- //# sourceMappingURL=logger.middleware.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.middleware.d.ts","sourceRoot":"","sources":["../../../../src/reactive/dispatcher/middlewares/logger.middleware.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAE9D,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAED,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;CAC/B;AA4CD,eAAO,MAAM,0BAA0B,GAAI,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAS,aAAkB,KAAG,kBAAkB,CAAC,KAAK,CAuGnI,CAAA"}
@@ -1,126 +0,0 @@
1
- // Функция для вычисления разницы между двумя объектами состояния
2
- function getStateDiff(prevState, nextState) {
3
- const diff = {};
4
- // Проверяем изменения в свойствах верхнего уровня
5
- const allKeys = [...new Set([...Object.keys(prevState), ...Object.keys(nextState)])];
6
- allKeys.forEach((key) => {
7
- // Если ключ существует в обоих состояниях
8
- if (key in prevState && key in nextState) {
9
- // Если это объекты, рекурсивно проверяем их
10
- if (typeof prevState[key] === 'object' &&
11
- prevState[key] !== null &&
12
- typeof nextState[key] === 'object' &&
13
- nextState[key] !== null &&
14
- !Array.isArray(prevState[key]) &&
15
- !Array.isArray(nextState[key])) {
16
- const nestedDiff = getStateDiff(prevState[key], nextState[key]);
17
- if (Object.keys(nestedDiff).length > 0) {
18
- diff[key] = nestedDiff;
19
- }
20
- }
21
- // Для массивов и примитивов просто сравниваем значения
22
- else if (JSON.stringify(prevState[key]) !== JSON.stringify(nextState[key])) {
23
- diff[key] = { PREV: prevState[key], NEXT: nextState[key] };
24
- }
25
- }
26
- // Если ключ существует только в предыдущем состоянии
27
- else if (key in prevState) {
28
- diff[key] = { PREV: prevState[key], NEXT: undefined };
29
- }
30
- // Если ключ существует только в новом состоянии
31
- else {
32
- diff[key] = { PREV: undefined, NEXT: nextState[key] };
33
- }
34
- });
35
- return diff;
36
- }
37
- export const loggerDispatcherMiddleware = (options = {}) => {
38
- const defaultTranslations = {
39
- action: 'Действие',
40
- prevState: 'Предыдущее состояние',
41
- nextState: 'Следующее состояние',
42
- duration: 'Длительность',
43
- error: 'Ошибка в действии',
44
- diff: 'Изменения',
45
- changesCount: 'Количество изменений',
46
- showFullState: 'Полное состояние',
47
- };
48
- const defaultOptions = {
49
- collapsed: false,
50
- duration: true,
51
- diff: false,
52
- showFullState: true, // Показывать полное состояние по умолчанию
53
- translations: defaultTranslations,
54
- colors: {
55
- title: '#3498db',
56
- prevState: '#9E9E9E',
57
- fullState: '#008a15',
58
- action: '#03A9F4',
59
- nextState: '#4CAF50',
60
- error: '#F20404',
61
- diff: '#9C27B0',
62
- },
63
- };
64
- // Объединяем пользовательские настройки с настройками по умолчанию
65
- const mergedOptions = {
66
- ...defaultOptions,
67
- ...options,
68
- // Объединяем переводы отдельно, чтобы позволить частичное переопределение
69
- translations: {
70
- ...defaultTranslations,
71
- ...(options.translations || {}),
72
- },
73
- // Объединяем цвета отдельно, чтобы позволить частичное переопределение
74
- colors: {
75
- ...defaultOptions.colors,
76
- ...(options.colors || {}),
77
- },
78
- };
79
- const { collapsed, duration, colors, translations } = mergedOptions;
80
- return (api) => (next) => async (action) => {
81
- // Собираем информацию перед выполнением
82
- const started = Date.now();
83
- const prevState = await api.getState();
84
- // Выполняем действие без группировки логов
85
- try {
86
- // Выполняем действие
87
- const result = await next(action);
88
- // Собираем информацию после выполнения
89
- const nextState = await api.getState();
90
- const ended = Date.now();
91
- const time = ended - started;
92
- // Теперь выводим всю информацию в группе
93
- const title = `${action.type}`;
94
- const groupMethod = collapsed ? console.groupCollapsed : console.group;
95
- groupMethod(`%c ${title}`, `color: ${colors.title}; font-weight: bold`);
96
- // Выводим информацию о действии
97
- console.log(`%c ${translations.action}:`, `color: ${colors.action}; font-weight: bold`, action);
98
- // Если включена опция diff, вычисляем и показываем изменения
99
- if (mergedOptions.diff) {
100
- const stateDiff = getStateDiff(prevState, nextState);
101
- const changesCount = Object.keys(stateDiff).length;
102
- console.log(`%c ${translations.diff} (${translations.changesCount}: ${changesCount}):`, `color: ${colors.diff}; font-weight: bold`, stateDiff);
103
- }
104
- // Если showFullState включен, показываем полные состояния
105
- if (mergedOptions.showFullState) {
106
- // Создаем подгруппу для полного состояния
107
- console.groupCollapsed(`%c ${translations.showFullState}`, `color: ${colors.fullState}; font-weight: bold`);
108
- console.log(`%c ${translations.prevState}:`, `color: ${colors.prevState}; font-weight: bold`, prevState);
109
- console.log(`%c ${translations.nextState}:`, `color: ${colors.nextState}; font-weight: bold`, nextState);
110
- console.groupEnd();
111
- }
112
- if (duration) {
113
- console.log(`%c ${translations.duration}: %c ${time}ms`, 'font-weight: bold', 'color: #4CAF50');
114
- }
115
- console.groupEnd();
116
- return result;
117
- }
118
- catch (error) {
119
- // В случае ошибки логируем её отдельно, не в группе
120
- console.error(`%c ${translations.error}:`, `color: ${colors.error}; font-weight: bold`, action.type, error);
121
- // Пробрасываем ошибку дальше
122
- throw error;
123
- }
124
- };
125
- };
126
- //# sourceMappingURL=logger.middleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.middleware.js","sourceRoot":"","sources":["../../../../src/reactive/dispatcher/middlewares/logger.middleware.ts"],"names":[],"mappings":"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"}
@@ -1,150 +0,0 @@
1
- import { Observable, OperatorFunction } from 'rxjs';
2
- import { IStorage } from '../../core';
3
- import { Action, ActionsResult, Dispatcher, DispatchFunction, ExtractResultType, WatcherFunction } from '../dispatcher';
4
- import { ChunkRequestConsistent, ChunkRequestParallel } from './utils';
5
- /**
6
- * Тип действия с типизированным payload
7
- */
8
- export interface TypedAction<P> extends Action<P> {
9
- type: string;
10
- payload: P;
11
- }
12
- /**
13
- * Тип для внешних состояний
14
- */
15
- export type ExternalStates = Record<string, Observable<any>>;
16
- /**
17
- * Тип для базового эффекта без доступа к состоянию
18
- */
19
- export type EffectBase<TDispatchers extends Record<string, Dispatcher<any, any>> = Record<string, never>, TServices extends Record<string, any> = Record<string, never>> = (action$: Observable<Action>, dispatchers: TDispatchers, services: TServices) => Observable<unknown>;
20
- /**
21
- * Тип для эффекта с доступом к состоянию и конфигурации - это основной тип, который используется по умолчанию
22
- */
23
- export type Effect<TState extends Record<string, any> = any, TDispatchers extends Record<string, Dispatcher<any, any>> = Record<string, never>, TServices extends Record<string, any> = Record<string, never>, TConfig extends Record<string, any> = Record<string, never>, TExternalStates extends ExternalStates = Record<string, never>> = (action$: Observable<Action>, state$: Observable<TState>, externalStates: TExternalStates, dispatchers: TDispatchers, services: TServices, config: TConfig) => Observable<unknown>;
24
- /**
25
- * Тип для получения типов действий диспетчера
26
- */
27
- export type DispatcherActions<T> = T extends Dispatcher<any, infer A> ? ActionsResult<A> : Record<string, DispatchFunction<any, any>>;
28
- /**
29
- * Конфигурация для валидации в validateMap
30
- */
31
- export interface ValidateConfig {
32
- conditions: boolean[];
33
- skipAction: (() => any) | any | ((() => any) | any)[];
34
- }
35
- /**
36
- * Утилиты для запросов в validateMap
37
- */
38
- export interface ValidateMapRequestUtils {
39
- chunkRequest: ChunkRequestParallel;
40
- chunkRequestConsistent: ChunkRequestConsistent;
41
- }
42
- /**
43
- * Оператор для фильтрации действий по типу с сохранением типа payload
44
- */
45
- export declare function ofType<T extends DispatchFunction<any, any> | WatcherFunction<any>>(actionFn: T): OperatorFunction<Action, TypedAction<T extends WatcherFunction<infer R> ? R : ExtractResultType<T>>>;
46
- /**
47
- * Оператор для фильтрации действий по нескольким типам с объединением типов payload
48
- * @param actionFns Массив функций действий
49
- */
50
- export declare function ofTypes<T extends DispatchFunction<any, any>[]>(actionFns: [...T]): OperatorFunction<Action, TypedAction<ExtractResultType<T[number]>>>;
51
- /**
52
- * Оператор для ожидания выполнения всех указанных действий
53
- * @param actionFns Массив функций действий
54
- */
55
- export declare function ofTypesWaitAll<T extends DispatchFunction<any, any>[]>(actionFns: [...T]): (source$: Observable<Action>) => Observable<{ [K in keyof T]: TypedAction<ExtractResultType<T[K]>>; }>;
56
- /**
57
- * Создает Observable с выбранными данными из состояния
58
- * @param state$ Поток состояния
59
- * @param selectors Селекторы для выбора частей состояния
60
- * @returns Observable с массивом выбранных значений
61
- */
62
- export declare function selectorMap<TState, TResults extends any[]>(state$: Observable<TState>, ...selectors: {
63
- [K in keyof TResults]: (state: TState) => TResults[K];
64
- }): Observable<TResults>;
65
- /**
66
- * Создает именованный объект вместо массива
67
- * @param state$ Поток состояния
68
- * @param selectors Объект с селекторами
69
- * @returns Observable с объектом выбранных значений
70
- */
71
- export declare function selectorObject<TState, TResult extends Record<string, any>>(state$: Observable<TState>, selectors: {
72
- [K in keyof TResult]: (state: TState) => TResult[K];
73
- }): Observable<TResult>;
74
- /**
75
- * Оператор validateMap для валидации данных и условного вызова API
76
- */
77
- export declare function validateMap<T, TResult = any>({ validator, apiCall, }: {
78
- validator?: (value: T) => ValidateConfig;
79
- apiCall: (value: T, utils: ValidateMapRequestUtils) => Observable<TResult>;
80
- }): OperatorFunction<T, any>;
81
- /**
82
- * Класс для управления эффектами с поддержкой доступа к состоянию и конфигурации
83
- * Основной класс, который следует использовать
84
- */
85
- export declare class EffectsModule<TState extends Record<string, any> = any, TDispatchers extends Record<string, Dispatcher<any, any>> = Record<string, never>, TServices extends Record<string, any> = Record<string, never>, TConfig extends Record<string, any> = Record<string, never>, TExternalStates extends ExternalStates = Record<string, never>> {
86
- private storage;
87
- private externalStates;
88
- private dispatchers;
89
- private services;
90
- private config;
91
- private effects;
92
- private subscriptions;
93
- private running;
94
- private action$;
95
- /**
96
- * Поток состояния
97
- */
98
- readonly state$: Observable<TState>;
99
- /**
100
- * Создает модуль эффектов с доступом к состоянию, внешним состояниям и конфигурации
101
- * @param storage Хранилище состояния
102
- * @param externalStates Внешние состояния
103
- * @param dispatchers Объект с диспетчерами
104
- * @param services Объект с сервисами
105
- * @param config Глобальная конфигурация для всех эффектов
106
- */
107
- constructor(storage: IStorage<TState>, externalStates: TExternalStates | undefined, dispatchers: TDispatchers, services?: TServices, config?: TConfig);
108
- /**
109
- * Подписывается на действия от всех диспетчеров
110
- */
111
- private subscribeToDispatchers;
112
- add(effect: Effect<TState, TDispatchers, TServices, TConfig, TExternalStates>): this;
113
- /**
114
- * Добавляет несколько эффектов
115
- * @param effects Эффекты для добавления
116
- * @returns Текущий модуль
117
- */
118
- addEffects(effects: Effect<TState, TDispatchers, TServices, TConfig, TExternalStates>[]): this;
119
- /**
120
- * Запускает все эффекты
121
- * @returns Текущий модуль
122
- */
123
- start(): this;
124
- /**
125
- * Останавливает все эффекты
126
- * @returns Текущий модуль
127
- */
128
- stop(): this;
129
- /**
130
- * Подписывается на конкретный эффект
131
- * @param effect Эффект для подписки
132
- */
133
- private subscribeToEffect;
134
- }
135
- /**
136
- * Вспомогательная функция для создания типизированного эффекта без состояния
137
- * @deprecated Используйте createEffect вместо этого
138
- */
139
- export declare function createEffectBase<TDispatchers extends Record<string, Dispatcher<any, any>>, TServices extends Record<string, any>>(effect: EffectBase<TDispatchers, TServices>): EffectBase<TDispatchers, TServices>;
140
- /**
141
- * Вспомогательная функция для создания типизированного эффекта с состоянием и конфигурацией
142
- */
143
- export declare function createEffect<TState extends Record<string, any>, TDispatchers extends Record<string, Dispatcher<any, any>>, TServices extends Record<string, any>, TConfig extends Record<string, any> = Record<string, never>, TExternalStates extends ExternalStates = Record<string, never>>(effect: Effect<TState, TDispatchers, TServices, TConfig, TExternalStates>): Effect<TState, TDispatchers, TServices, TConfig, TExternalStates>;
144
- /**
145
- * Объединяет несколько эффектов в один
146
- * @param effects Эффекты для объединения
147
- * @returns Объединенный эффект
148
- */
149
- export declare function combineEffects<TState extends Record<string, any>, TDispatchers extends Record<string, Dispatcher<any, any>>, TServices extends Record<string, any>, TConfig extends Record<string, any> = Record<string, never>, TExternalStates extends ExternalStates = Record<string, never>>(...effects: Effect<TState, TDispatchers, TServices, TConfig, TExternalStates>[]): Effect<TState, TDispatchers, TServices, TConfig, TExternalStates>;
150
- //# sourceMappingURL=effects.module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"effects.module.d.ts","sourceRoot":"","sources":["../../../src/reactive/effects/effects.module.ts"],"names":[],"mappings":"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"}
@@ -1,277 +0,0 @@
1
- import { combineLatest, merge, Observable, of, pipe, Subject } from 'rxjs';
2
- import { catchError, filter, map, share, switchMap, take } from 'rxjs/operators';
3
- import { chunkRequestConsistent, chunkRequestParallel } from './utils/index.js';
4
- /**
5
- * Оператор для фильтрации действий по типу с сохранением типа payload
6
- */
7
- export function ofType(actionFn) {
8
- const { actionType } = actionFn;
9
- if (!actionType) {
10
- console.warn('ofType: Action function does not have actionType property', actionFn);
11
- return filter(() => false);
12
- }
13
- // Улучшенная реализация с явными типами
14
- return (source$) => {
15
- return source$.pipe(filter((action) => action !== undefined && action.type === actionType));
16
- };
17
- }
18
- /**
19
- * Оператор для фильтрации действий по нескольким типам с объединением типов payload
20
- * @param actionFns Массив функций действий
21
- */
22
- export function ofTypes(actionFns) {
23
- // Получаем типы действий
24
- const actionTypes = actionFns.map((fn) => fn.actionType).filter(Boolean);
25
- if (actionTypes.length === 0) {
26
- console.warn('ofTypes: No valid action types found in array', actionFns);
27
- return filter(() => false);
28
- }
29
- // Улучшенная реализация с явными типами
30
- return (source$) => {
31
- return source$.pipe(filter((action) => action !== undefined && actionTypes.includes(action.type)));
32
- };
33
- }
34
- /**
35
- * Оператор для ожидания выполнения всех указанных действий
36
- * @param actionFns Массив функций действий
37
- */
38
- export function ofTypesWaitAll(actionFns) {
39
- return (source$) => {
40
- // Создаем потоки для каждого типа действия
41
- const actionTypes = actionFns.map((fn) => fn.actionType).filter(Boolean);
42
- if (actionTypes.length === 0) {
43
- console.warn('ofTypesWaitAll: No valid action types found in array', actionFns);
44
- return of([]);
45
- }
46
- // Для каждого типа действия создаем поток,
47
- // который берет первое срабатывание
48
- const actionStreams = actionTypes.map((type, index) => source$.pipe(filter((action) => action.type === type), take(1), map((action) =>
49
- // Сохраняем ассоциацию с индексом, чтобы соответствовать
50
- // порядку в исходном массиве actionFns
51
- ({ index, action }))));
52
- // Ждем, пока все потоки выдадут значения, и сортируем результаты
53
- // по индексу для сохранения порядка
54
- return combineLatest(actionStreams).pipe(map((results) => {
55
- // Сортируем по индексу
56
- results.sort((a, b) => a.index - b.index);
57
- // Убираем индекс и возвращаем только действия
58
- return results.map((r) => r.action);
59
- }));
60
- };
61
- }
62
- /**
63
- * Создает Observable с выбранными данными из состояния
64
- * @param state$ Поток состояния
65
- * @param selectors Селекторы для выбора частей состояния
66
- * @returns Observable с массивом выбранных значений
67
- */
68
- export function selectorMap(state$, ...selectors) {
69
- return state$.pipe(map((state) => {
70
- return selectors.map((selector) => selector(state));
71
- }));
72
- }
73
- /**
74
- * Создает именованный объект вместо массива
75
- * @param state$ Поток состояния
76
- * @param selectors Объект с селекторами
77
- * @returns Observable с объектом выбранных значений
78
- */
79
- export function selectorObject(state$, selectors) {
80
- return state$.pipe(map((state) => {
81
- const result = {};
82
- for (const [key, selector] of Object.entries(selectors)) {
83
- result[key] = selector(state);
84
- }
85
- return result;
86
- }));
87
- }
88
- /**
89
- * Оператор validateMap для валидации данных и условного вызова API
90
- */
91
- export function validateMap({ validator, apiCall, }) {
92
- return pipe(switchMap((pipeData) => {
93
- /**
94
- * Функция вызова API-метода
95
- */
96
- const callApi = () => apiCall(pipeData, {
97
- chunkRequest: chunkRequestParallel,
98
- chunkRequestConsistent: chunkRequestConsistent,
99
- });
100
- /**
101
- * Если валидацию не используем - сразу вызываем запрос
102
- */
103
- if (!validator)
104
- return callApi();
105
- const validateConfig = validator(pipeData);
106
- const { conditions, skipAction } = validateConfig;
107
- const conditionMet = conditions.every(Boolean);
108
- /**
109
- * Если валидация не пройдена - вызываем экшн сброса
110
- */
111
- if (!conditionMet) {
112
- if (Array.isArray(skipAction)) {
113
- // eslint-disable-next-line no-unsafe-optional-chaining
114
- return of(...skipAction?.filter(Boolean).map((action) => (typeof action === 'function' ? action() : action)));
115
- }
116
- return of(typeof skipAction === 'function' ? skipAction() : skipAction);
117
- }
118
- return callApi();
119
- }));
120
- }
121
- /**
122
- * Класс для управления эффектами с поддержкой доступа к состоянию и конфигурации
123
- * Основной класс, который следует использовать
124
- */
125
- export class EffectsModule {
126
- storage;
127
- externalStates;
128
- dispatchers;
129
- services;
130
- config;
131
- effects = [];
132
- subscriptions = [];
133
- running = false;
134
- action$ = new Subject();
135
- /**
136
- * Поток состояния
137
- */
138
- state$;
139
- /**
140
- * Создает модуль эффектов с доступом к состоянию, внешним состояниям и конфигурации
141
- * @param storage Хранилище состояния
142
- * @param externalStates Внешние состояния
143
- * @param dispatchers Объект с диспетчерами
144
- * @param services Объект с сервисами
145
- * @param config Глобальная конфигурация для всех эффектов
146
- */
147
- constructor(storage, externalStates = {}, dispatchers, services = {}, config = {}) {
148
- this.storage = storage;
149
- this.externalStates = externalStates;
150
- this.dispatchers = dispatchers;
151
- this.services = services;
152
- this.config = config;
153
- this.subscribeToDispatchers();
154
- // Создаем поток состояния
155
- this.state$ = new Observable((observer) => {
156
- // Отправляем начальное состояние
157
- this.storage.getState().then((state) => observer.next(state));
158
- // Подписываемся на все изменения
159
- const unsubscribe = this.storage.subscribeToAll(() => {
160
- this.storage.getState().then((state) => observer.next(state));
161
- });
162
- // Отписываемся при завершении
163
- return () => unsubscribe();
164
- }).pipe(share());
165
- }
166
- /**
167
- * Подписывается на действия от всех диспетчеров
168
- */
169
- subscribeToDispatchers() {
170
- for (const [_, dispatcher] of Object.entries(this.dispatchers)) {
171
- const subscription = dispatcher.actions.subscribe((action) => {
172
- this.action$.next(action);
173
- });
174
- this.subscriptions.push(subscription);
175
- }
176
- }
177
- add(effect) {
178
- this.effects.push(effect);
179
- if (this.running) {
180
- this.subscribeToEffect(effect);
181
- }
182
- return this;
183
- }
184
- /**
185
- * Добавляет несколько эффектов
186
- * @param effects Эффекты для добавления
187
- * @returns Текущий модуль
188
- */
189
- addEffects(effects) {
190
- effects.forEach((effect) => this.add(effect));
191
- return this;
192
- }
193
- /**
194
- * Запускает все эффекты
195
- * @returns Текущий модуль
196
- */
197
- start() {
198
- if (this.running) {
199
- return this;
200
- }
201
- this.effects.forEach((effect) => this.subscribeToEffect(effect));
202
- this.running = true;
203
- return this;
204
- }
205
- /**
206
- * Останавливает все эффекты
207
- * @returns Текущий модуль
208
- */
209
- stop() {
210
- this.subscriptions.forEach((sub) => sub.unsubscribe());
211
- this.subscriptions = [];
212
- this.running = false;
213
- return this;
214
- }
215
- /**
216
- * Подписывается на конкретный эффект
217
- * @param effect Эффект для подписки
218
- */
219
- subscribeToEffect(effect) {
220
- try {
221
- const output$ = effect(this.action$.asObservable(), this.state$, this.externalStates, this.dispatchers, this.services, this.config).pipe(catchError((err) => {
222
- console.error('Error in effect:', err);
223
- return of(null);
224
- }));
225
- const subscription = output$.subscribe((result) => {
226
- if (result === null || result === undefined) {
227
- return;
228
- }
229
- if (typeof result === 'function') {
230
- try {
231
- result();
232
- }
233
- catch (callError) {
234
- console.error('Error calling effect result function:', callError);
235
- }
236
- }
237
- });
238
- this.subscriptions.push(subscription);
239
- }
240
- catch (setupError) {
241
- console.error('Error setting up effect:', setupError);
242
- }
243
- }
244
- }
245
- /**
246
- * Вспомогательная функция для создания типизированного эффекта без состояния
247
- * @deprecated Используйте createEffect вместо этого
248
- */
249
- export function createEffectBase(effect) {
250
- return effect;
251
- }
252
- /**
253
- * Вспомогательная функция для создания типизированного эффекта с состоянием и конфигурацией
254
- */
255
- export function createEffect(effect) {
256
- return effect;
257
- }
258
- /**
259
- * Объединяет несколько эффектов в один
260
- * @param effects Эффекты для объединения
261
- * @returns Объединенный эффект
262
- */
263
- export function combineEffects(...effects) {
264
- return (action$, state$, externalStates, dispatchers, services, config) => {
265
- const outputs = effects.map((effect) => {
266
- try {
267
- return effect(action$, state$, externalStates, dispatchers, services, config);
268
- }
269
- catch (error) {
270
- console.error('Error in one of combined effects:', error);
271
- return of(null);
272
- }
273
- });
274
- return merge(...outputs);
275
- };
276
- }
277
- //# sourceMappingURL=effects.module.js.map