synapse-storage 2.1.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 (448) hide show
  1. package/README.md +1038 -0
  2. package/dist/_examples/_example5.d.ts +1 -0
  3. package/dist/_examples/_example5.d.ts.map +1 -0
  4. package/dist/_examples/_example5.js +184 -0
  5. package/dist/_examples/_example5.js.map +1 -0
  6. package/dist/_examples/_example6.d.ts +1 -0
  7. package/dist/_examples/_example6.d.ts.map +1 -0
  8. package/dist/_examples/_example6.js +168 -0
  9. package/dist/_examples/_example6.js.map +1 -0
  10. package/dist/_examples/example1.d.ts +1 -0
  11. package/dist/_examples/example1.d.ts.map +1 -0
  12. package/dist/_examples/example1.js +240 -0
  13. package/dist/_examples/example1.js.map +1 -0
  14. package/dist/_examples/example2.d.ts +1 -0
  15. package/dist/_examples/example2.d.ts.map +1 -0
  16. package/dist/_examples/example2.js +81 -0
  17. package/dist/_examples/example2.js.map +1 -0
  18. package/dist/_examples/example3.d.ts +1 -0
  19. package/dist/_examples/example3.d.ts.map +1 -0
  20. package/dist/_examples/example3.js +99 -0
  21. package/dist/_examples/example3.js.map +1 -0
  22. package/dist/_examples/example4.d.ts +1 -0
  23. package/dist/_examples/example4.d.ts.map +1 -0
  24. package/dist/_examples/example4.js +172 -0
  25. package/dist/_examples/example4.js.map +1 -0
  26. package/dist/_examples/example5.d.ts +1 -0
  27. package/dist/_examples/example5.d.ts.map +1 -0
  28. package/dist/_examples/example5.js +184 -0
  29. package/dist/_examples/example5.js.map +1 -0
  30. package/dist/_examples/example6.d.ts +1 -0
  31. package/dist/_examples/example6.d.ts.map +1 -0
  32. package/dist/_examples/example6.js +168 -0
  33. package/dist/_examples/example6.js.map +1 -0
  34. package/dist/_examples/plugins.d.ts +1 -0
  35. package/dist/_examples/plugins.d.ts.map +1 -0
  36. package/dist/_examples/plugins.js +176 -0
  37. package/dist/_examples/plugins.js.map +1 -0
  38. package/dist/_examples/pokemons/PokemonList.d.ts +5 -0
  39. package/dist/_examples/pokemons/PokemonList.d.ts.map +1 -0
  40. package/dist/_examples/pokemons/PokemonList.js +166 -0
  41. package/dist/_examples/pokemons/PokemonList.js.map +1 -0
  42. package/dist/_examples/pokemons/api.d.ts +8 -0
  43. package/dist/_examples/pokemons/api.d.ts.map +1 -0
  44. package/dist/_examples/pokemons/api.js +45 -0
  45. package/dist/_examples/pokemons/api.js.map +1 -0
  46. package/dist/_examples/pokemons/app.config.d.ts +15 -0
  47. package/dist/_examples/pokemons/app.config.d.ts.map +1 -0
  48. package/dist/_examples/pokemons/app.config.js +15 -0
  49. package/dist/_examples/pokemons/app.config.js.map +1 -0
  50. package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.d.ts +9 -0
  51. package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.d.ts.map +1 -0
  52. package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.js +122 -0
  53. package/dist/_examples/pokemons/dispatchers/pokemon.dispatcher.js.map +1 -0
  54. package/dist/_examples/pokemons/effects/pokemon.effects.d.ts +16 -0
  55. package/dist/_examples/pokemons/effects/pokemon.effects.d.ts.map +1 -0
  56. package/dist/_examples/pokemons/effects/pokemon.effects.js +39 -0
  57. package/dist/_examples/pokemons/effects/pokemon.effects.js.map +1 -0
  58. package/dist/_examples/pokemons/middlewares/pokenon.middlewares.d.ts +4 -0
  59. package/dist/_examples/pokemons/middlewares/pokenon.middlewares.d.ts.map +1 -0
  60. package/dist/_examples/pokemons/middlewares/pokenon.middlewares.js +27 -0
  61. package/dist/_examples/pokemons/middlewares/pokenon.middlewares.js.map +1 -0
  62. package/dist/_examples/pokemons/pokemon.dispatcher.d.ts +9 -0
  63. package/dist/_examples/pokemons/pokemon.dispatcher.d.ts.map +1 -0
  64. package/dist/_examples/pokemons/pokemon.dispatcher.js +122 -0
  65. package/dist/_examples/pokemons/pokemon.dispatcher.js.map +1 -0
  66. package/dist/_examples/pokemons/pokemon.effects.d.ts +5 -0
  67. package/dist/_examples/pokemons/pokemon.effects.d.ts.map +1 -0
  68. package/dist/_examples/pokemons/pokemon.effects.js +39 -0
  69. package/dist/_examples/pokemons/pokemon.effects.js.map +1 -0
  70. package/dist/_examples/pokemons/pokemon.selectors.d.ts +5 -0
  71. package/dist/_examples/pokemons/pokemon.selectors.d.ts.map +1 -0
  72. package/dist/_examples/pokemons/pokemon.selectors.js +10 -0
  73. package/dist/_examples/pokemons/pokemon.selectors.js.map +1 -0
  74. package/dist/_examples/pokemons/pokemon.storage.d.ts +3 -0
  75. package/dist/_examples/pokemons/pokemon.storage.d.ts.map +1 -0
  76. package/dist/_examples/pokemons/pokemon.storage.js +14 -0
  77. package/dist/_examples/pokemons/pokemon.storage.js.map +1 -0
  78. package/dist/_examples/pokemons/pokemon1.selectors.d.ts +5 -0
  79. package/dist/_examples/pokemons/pokemon1.selectors.d.ts.map +1 -0
  80. package/dist/_examples/pokemons/pokemon1.selectors.js +8 -0
  81. package/dist/_examples/pokemons/pokemon1.selectors.js.map +1 -0
  82. package/dist/_examples/pokemons/pokenon.middlewares.d.ts +4 -0
  83. package/dist/_examples/pokemons/pokenon.middlewares.d.ts.map +1 -0
  84. package/dist/_examples/pokemons/pokenon.middlewares.js +27 -0
  85. package/dist/_examples/pokemons/pokenon.middlewares.js.map +1 -0
  86. package/dist/_examples/pokemons/selectors/pokemon.selectors.d.ts +5 -0
  87. package/dist/_examples/pokemons/selectors/pokemon.selectors.d.ts.map +1 -0
  88. package/dist/_examples/pokemons/selectors/pokemon.selectors.js +10 -0
  89. package/dist/_examples/pokemons/selectors/pokemon.selectors.js.map +1 -0
  90. package/dist/_examples/pokemons/selectors/pokemon1.selectors.d.ts +5 -0
  91. package/dist/_examples/pokemons/selectors/pokemon1.selectors.d.ts.map +1 -0
  92. package/dist/_examples/pokemons/selectors/pokemon1.selectors.js +8 -0
  93. package/dist/_examples/pokemons/selectors/pokemon1.selectors.js.map +1 -0
  94. package/dist/_examples/pokemons/storages/pokemon.storage.d.ts +3 -0
  95. package/dist/_examples/pokemons/storages/pokemon.storage.d.ts.map +1 -0
  96. package/dist/_examples/pokemons/storages/pokemon.storage.js +14 -0
  97. package/dist/_examples/pokemons/storages/pokemon.storage.js.map +1 -0
  98. package/dist/_examples/pokemons/store.d.ts +1 -0
  99. package/dist/_examples/pokemons/store.d.ts.map +1 -0
  100. package/dist/_examples/pokemons/store.js +2 -0
  101. package/dist/_examples/pokemons/store.js.map +1 -0
  102. package/dist/_examples/pokemons/store1.d.ts +23 -0
  103. package/dist/_examples/pokemons/store1.d.ts.map +1 -0
  104. package/dist/_examples/pokemons/store1.js +35 -0
  105. package/dist/_examples/pokemons/store1.js.map +1 -0
  106. package/dist/_examples/pokemons/store2.d.ts +23 -0
  107. package/dist/_examples/pokemons/store2.d.ts.map +1 -0
  108. package/dist/_examples/pokemons/store2.js +34 -0
  109. package/dist/_examples/pokemons/store2.js.map +1 -0
  110. package/dist/_examples/pokemons/types.d.ts +26 -0
  111. package/dist/_examples/pokemons/types.d.ts.map +1 -0
  112. package/dist/_examples/pokemons/types.js +2 -0
  113. package/dist/_examples/pokemons/types.js.map +1 -0
  114. package/dist/_utils/chunk.util.d.ts +8 -0
  115. package/dist/_utils/chunk.util.d.ts.map +1 -0
  116. package/dist/_utils/chunk.util.js +21 -0
  117. package/dist/_utils/chunk.util.js.map +1 -0
  118. package/dist/_utils/deepMerge.util.d.ts +2 -0
  119. package/dist/_utils/deepMerge.util.d.ts.map +1 -0
  120. package/dist/_utils/deepMerge.util.js +16 -0
  121. package/dist/_utils/deepMerge.util.js.map +1 -0
  122. package/dist/_utils/flatMap.util.d.ts +10 -0
  123. package/dist/_utils/flatMap.util.d.ts.map +1 -0
  124. package/dist/_utils/flatMap.util.js +23 -0
  125. package/dist/_utils/flatMap.util.js.map +1 -0
  126. package/dist/_utils/index.d.ts +4 -0
  127. package/dist/_utils/index.d.ts.map +1 -0
  128. package/dist/_utils/index.js +4 -0
  129. package/dist/_utils/index.js.map +1 -0
  130. package/dist/api/api.module.d.ts +38 -0
  131. package/dist/api/api.module.d.ts.map +1 -0
  132. package/dist/api/api.module.js +82 -0
  133. package/dist/api/api.module.js.map +1 -0
  134. package/dist/api/components/endpoint.d.ts +26 -0
  135. package/dist/api/components/endpoint.d.ts.map +1 -0
  136. package/dist/api/components/endpoint.js +253 -0
  137. package/dist/api/components/endpoint.js.map +1 -0
  138. package/dist/api/components/query-storage.d.ts +84 -0
  139. package/dist/api/components/query-storage.d.ts.map +1 -0
  140. package/dist/api/components/query-storage.js +221 -0
  141. package/dist/api/components/query-storage.js.map +1 -0
  142. package/dist/api/example.d.ts +83 -0
  143. package/dist/api/example.d.ts.map +1 -0
  144. package/dist/api/example.js +85 -0
  145. package/dist/api/example.js.map +1 -0
  146. package/dist/api/index.d.ts +4 -0
  147. package/dist/api/index.d.ts.map +1 -0
  148. package/dist/api/index.js +6 -0
  149. package/dist/api/index.js.map +1 -0
  150. package/dist/api/types/api.interface.d.ts +108 -0
  151. package/dist/api/types/api.interface.d.ts.map +1 -0
  152. package/dist/api/types/api.interface.js +19 -0
  153. package/dist/api/types/api.interface.js.map +1 -0
  154. package/dist/api/types/endpoint.interface.d.ts +116 -0
  155. package/dist/api/types/endpoint.interface.d.ts.map +1 -0
  156. package/dist/api/types/endpoint.interface.js +2 -0
  157. package/dist/api/types/endpoint.interface.js.map +1 -0
  158. package/dist/api/types/query.interface.d.ts +87 -0
  159. package/dist/api/types/query.interface.d.ts.map +1 -0
  160. package/dist/api/types/query.interface.js +2 -0
  161. package/dist/api/types/query.interface.js.map +1 -0
  162. package/dist/api/utils/api-helpers.d.ts +22 -0
  163. package/dist/api/utils/api-helpers.d.ts.map +1 -0
  164. package/dist/api/utils/api-helpers.js +44 -0
  165. package/dist/api/utils/api-helpers.js.map +1 -0
  166. package/dist/api/utils/create-header-context.d.ts +10 -0
  167. package/dist/api/utils/create-header-context.d.ts.map +1 -0
  168. package/dist/api/utils/create-header-context.js +36 -0
  169. package/dist/api/utils/create-header-context.js.map +1 -0
  170. package/dist/api/utils/endpoint-headers.d.ts +23 -0
  171. package/dist/api/utils/endpoint-headers.d.ts.map +1 -0
  172. package/dist/api/utils/endpoint-headers.js +57 -0
  173. package/dist/api/utils/endpoint-headers.js.map +1 -0
  174. package/dist/api/utils/fetch-base-query.d.ts +9 -0
  175. package/dist/api/utils/fetch-base-query.d.ts.map +1 -0
  176. package/dist/api/utils/fetch-base-query.js +181 -0
  177. package/dist/api/utils/fetch-base-query.js.map +1 -0
  178. package/dist/api/utils/file-utils.d.ts +43 -0
  179. package/dist/api/utils/file-utils.d.ts.map +1 -0
  180. package/dist/api/utils/file-utils.js +108 -0
  181. package/dist/api/utils/file-utils.js.map +1 -0
  182. package/dist/api/utils/get-cacheable-headers.d.ts +8 -0
  183. package/dist/api/utils/get-cacheable-headers.d.ts.map +1 -0
  184. package/dist/api/utils/get-cacheable-headers.js +21 -0
  185. package/dist/api/utils/get-cacheable-headers.js.map +1 -0
  186. package/dist/core/index.d.ts +3 -0
  187. package/dist/core/index.d.ts.map +1 -0
  188. package/dist/core/index.js +3 -0
  189. package/dist/core/index.js.map +1 -0
  190. package/dist/core/selector/index.d.ts +3 -0
  191. package/dist/core/selector/index.d.ts.map +1 -0
  192. package/dist/core/selector/index.js +2 -0
  193. package/dist/core/selector/index.js.map +1 -0
  194. package/dist/core/selector/selector.interface.d.ts +91 -0
  195. package/dist/core/selector/selector.interface.d.ts.map +1 -0
  196. package/dist/core/selector/selector.interface.js +2 -0
  197. package/dist/core/selector/selector.interface.js.map +1 -0
  198. package/dist/core/selector/selector.module.d.ts +29 -0
  199. package/dist/core/selector/selector.module.d.ts.map +1 -0
  200. package/dist/core/selector/selector.module.js +467 -0
  201. package/dist/core/selector/selector.module.js.map +1 -0
  202. package/dist/core/storage/adapters/base-storage.service.d.ts +65 -0
  203. package/dist/core/storage/adapters/base-storage.service.d.ts.map +1 -0
  204. package/dist/core/storage/adapters/base-storage.service.js +660 -0
  205. package/dist/core/storage/adapters/base-storage.service.js.map +1 -0
  206. package/dist/core/storage/adapters/idb.d.ts +52 -0
  207. package/dist/core/storage/adapters/idb.d.ts.map +1 -0
  208. package/dist/core/storage/adapters/idb.js +528 -0
  209. package/dist/core/storage/adapters/idb.js.map +1 -0
  210. package/dist/core/storage/adapters/indexed-DB.service.d.ts +63 -0
  211. package/dist/core/storage/adapters/indexed-DB.service.d.ts.map +1 -0
  212. package/dist/core/storage/adapters/indexed-DB.service.js +595 -0
  213. package/dist/core/storage/adapters/indexed-DB.service.js.map +1 -0
  214. package/dist/core/storage/adapters/indexed-DB.service.old.d.ts +38 -0
  215. package/dist/core/storage/adapters/indexed-DB.service.old.d.ts.map +1 -0
  216. package/dist/core/storage/adapters/indexed-DB.service.old.js +318 -0
  217. package/dist/core/storage/adapters/indexed-DB.service.old.js.map +1 -0
  218. package/dist/core/storage/adapters/indexed-DB.service1.d.ts +38 -0
  219. package/dist/core/storage/adapters/indexed-DB.service1.d.ts.map +1 -0
  220. package/dist/core/storage/adapters/indexed-DB.service1.js +318 -0
  221. package/dist/core/storage/adapters/indexed-DB.service1.js.map +1 -0
  222. package/dist/core/storage/adapters/indexed-DB.service2.d.ts +61 -0
  223. package/dist/core/storage/adapters/indexed-DB.service2.d.ts.map +1 -0
  224. package/dist/core/storage/adapters/indexed-DB.service2.js +596 -0
  225. package/dist/core/storage/adapters/indexed-DB.service2.js.map +1 -0
  226. package/dist/core/storage/adapters/local-storage.service.d.ts +21 -0
  227. package/dist/core/storage/adapters/local-storage.service.d.ts.map +1 -0
  228. package/dist/core/storage/adapters/local-storage.service.js +99 -0
  229. package/dist/core/storage/adapters/local-storage.service.js.map +1 -0
  230. package/dist/core/storage/adapters/memory-storage.service.d.ts +22 -0
  231. package/dist/core/storage/adapters/memory-storage.service.d.ts.map +1 -0
  232. package/dist/core/storage/adapters/memory-storage.service.js +99 -0
  233. package/dist/core/storage/adapters/memory-storage.service.js.map +1 -0
  234. package/dist/core/storage/adapters/path.utils.d.ts +5 -0
  235. package/dist/core/storage/adapters/path.utils.d.ts.map +1 -0
  236. package/dist/core/storage/adapters/path.utils.js +35 -0
  237. package/dist/core/storage/adapters/path.utils.js.map +1 -0
  238. package/dist/core/storage/factory/createSynapseStorage.factory.d.ts +1 -0
  239. package/dist/core/storage/factory/createSynapseStorage.factory.d.ts.map +1 -0
  240. package/dist/core/storage/factory/createSynapseStorage.factory.js +2 -0
  241. package/dist/core/storage/factory/createSynapseStorage.factory.js.map +1 -0
  242. package/dist/core/storage/factory/index.d.ts +2 -0
  243. package/dist/core/storage/factory/index.d.ts.map +1 -0
  244. package/dist/core/storage/factory/index.js +2 -0
  245. package/dist/core/storage/factory/index.js.map +1 -0
  246. package/dist/core/storage/index.d.ts +11 -0
  247. package/dist/core/storage/index.d.ts.map +1 -0
  248. package/dist/core/storage/index.js +12 -0
  249. package/dist/core/storage/index.js.map +1 -0
  250. package/dist/core/storage/middlewares/broadcast.middleware.d.ts +9 -0
  251. package/dist/core/storage/middlewares/broadcast.middleware.d.ts.map +1 -0
  252. package/dist/core/storage/middlewares/broadcast.middleware.js +115 -0
  253. package/dist/core/storage/middlewares/broadcast.middleware.js.map +1 -0
  254. package/dist/core/storage/middlewares/index.d.ts +4 -0
  255. package/dist/core/storage/middlewares/index.d.ts.map +1 -0
  256. package/dist/core/storage/middlewares/index.js +3 -0
  257. package/dist/core/storage/middlewares/index.js.map +1 -0
  258. package/dist/core/storage/middlewares/storage-batching.middleware.d.ts +7 -0
  259. package/dist/core/storage/middlewares/storage-batching.middleware.d.ts.map +1 -0
  260. package/dist/core/storage/middlewares/storage-batching.middleware.js +36 -0
  261. package/dist/core/storage/middlewares/storage-batching.middleware.js.map +1 -0
  262. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.d.ts +7 -0
  263. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.d.ts.map +1 -0
  264. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.js +46 -0
  265. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.js.map +1 -0
  266. package/dist/core/storage/modules/plugin/plugin.interface.d.ts +201 -0
  267. package/dist/core/storage/modules/plugin/plugin.interface.d.ts.map +1 -0
  268. package/dist/core/storage/modules/plugin/plugin.interface.js +2 -0
  269. package/dist/core/storage/modules/plugin/plugin.interface.js.map +1 -0
  270. package/dist/core/storage/modules/plugin/plugin.service.d.ts +25 -0
  271. package/dist/core/storage/modules/plugin/plugin.service.d.ts.map +1 -0
  272. package/dist/core/storage/modules/plugin/plugin.service.js +186 -0
  273. package/dist/core/storage/modules/plugin/plugin.service.js.map +1 -0
  274. package/dist/core/storage/storage.interface.d.ts +70 -0
  275. package/dist/core/storage/storage.interface.d.ts.map +1 -0
  276. package/dist/core/storage/storage.interface.js +10 -0
  277. package/dist/core/storage/storage.interface.js.map +1 -0
  278. package/dist/core/storage/utils/batch.utils.d.ts +33 -0
  279. package/dist/core/storage/utils/batch.utils.d.ts.map +1 -0
  280. package/dist/core/storage/utils/batch.utils.js +88 -0
  281. package/dist/core/storage/utils/batch.utils.js.map +1 -0
  282. package/dist/core/storage/utils/broadcast.util.d.ts +48 -0
  283. package/dist/core/storage/utils/broadcast.util.d.ts.map +1 -0
  284. package/dist/core/storage/utils/broadcast.util.js +162 -0
  285. package/dist/core/storage/utils/broadcast.util.js.map +1 -0
  286. package/dist/core/storage/utils/cache.util.d.ts +33 -0
  287. package/dist/core/storage/utils/cache.util.d.ts.map +1 -0
  288. package/dist/core/storage/utils/cache.util.js +47 -0
  289. package/dist/core/storage/utils/cache.util.js.map +1 -0
  290. package/dist/core/storage/utils/middleware-module.d.ts +46 -0
  291. package/dist/core/storage/utils/middleware-module.d.ts.map +1 -0
  292. package/dist/core/storage/utils/middleware-module.js +109 -0
  293. package/dist/core/storage/utils/middleware-module.js.map +1 -0
  294. package/dist/core/storage/utils/storage-key.d.ts +11 -0
  295. package/dist/core/storage/utils/storage-key.d.ts.map +1 -0
  296. package/dist/core/storage/utils/storage-key.js +21 -0
  297. package/dist/core/storage/utils/storage-key.js.map +1 -0
  298. package/dist/core/storage/utils/storage.utils.d.ts +17 -0
  299. package/dist/core/storage/utils/storage.utils.d.ts.map +1 -0
  300. package/dist/core/storage/utils/storage.utils.js +57 -0
  301. package/dist/core/storage/utils/storage.utils.js.map +1 -0
  302. package/dist/examples/_example5.d.ts +1 -0
  303. package/dist/examples/_example5.d.ts.map +1 -0
  304. package/dist/examples/_example5.js +184 -0
  305. package/dist/examples/_example5.js.map +1 -0
  306. package/dist/examples/_example6.d.ts +1 -0
  307. package/dist/examples/_example6.d.ts.map +1 -0
  308. package/dist/examples/_example6.js +168 -0
  309. package/dist/examples/_example6.js.map +1 -0
  310. package/dist/examples/plugins.d.ts +1 -0
  311. package/dist/examples/plugins.d.ts.map +1 -0
  312. package/dist/examples/plugins.js +176 -0
  313. package/dist/examples/plugins.js.map +1 -0
  314. package/dist/examples/pokemons/PokemonList.d.ts +2 -0
  315. package/dist/examples/pokemons/PokemonList.d.ts.map +1 -0
  316. package/dist/examples/pokemons/PokemonList.js +110 -0
  317. package/dist/examples/pokemons/PokemonList.js.map +1 -0
  318. package/dist/examples/pokemons/api.d.ts +22 -0
  319. package/dist/examples/pokemons/api.d.ts.map +1 -0
  320. package/dist/examples/pokemons/api.js +43 -0
  321. package/dist/examples/pokemons/api.js.map +1 -0
  322. package/dist/examples/pokemons/app.config.d.ts +15 -0
  323. package/dist/examples/pokemons/app.config.d.ts.map +1 -0
  324. package/dist/examples/pokemons/app.config.js +15 -0
  325. package/dist/examples/pokemons/app.config.js.map +1 -0
  326. package/dist/examples/pokemons/dispatchers/pokemon.dispatcher.js +128 -0
  327. package/dist/examples/pokemons/dispatchers/pokemon.dispatcher.js.map +1 -0
  328. package/dist/examples/pokemons/effects/pokemon.effects.d.ts +16 -0
  329. package/dist/examples/pokemons/effects/pokemon.effects.d.ts.map +1 -0
  330. package/dist/examples/pokemons/effects/pokemon.effects.js +51 -0
  331. package/dist/examples/pokemons/effects/pokemon.effects.js.map +1 -0
  332. package/dist/examples/pokemons/middlewares/pokenon.middlewares.d.ts +4 -0
  333. package/dist/examples/pokemons/middlewares/pokenon.middlewares.d.ts.map +1 -0
  334. package/dist/examples/pokemons/middlewares/pokenon.middlewares.js +28 -0
  335. package/dist/examples/pokemons/middlewares/pokenon.middlewares.js.map +1 -0
  336. package/dist/examples/pokemons/selectors/pokemon.selectors.d.ts +13 -0
  337. package/dist/examples/pokemons/selectors/pokemon.selectors.d.ts.map +1 -0
  338. package/dist/examples/pokemons/selectors/pokemon.selectors.js +7 -0
  339. package/dist/examples/pokemons/selectors/pokemon.selectors.js.map +1 -0
  340. package/dist/examples/pokemons/storages/pokemon.storage.d.ts +5 -0
  341. package/dist/examples/pokemons/storages/pokemon.storage.d.ts.map +1 -0
  342. package/dist/examples/pokemons/storages/pokemon.storage.js +13 -0
  343. package/dist/examples/pokemons/storages/pokemon.storage.js.map +1 -0
  344. package/dist/examples/pokemons/store.d.ts +35 -0
  345. package/dist/examples/pokemons/store.d.ts.map +1 -0
  346. package/dist/examples/pokemons/store.js +21 -0
  347. package/dist/examples/pokemons/store.js.map +1 -0
  348. package/dist/examples/pokemons/types.d.ts +26 -0
  349. package/dist/examples/pokemons/types.d.ts.map +1 -0
  350. package/dist/examples/pokemons/types.js +2 -0
  351. package/dist/examples/pokemons/types.js.map +1 -0
  352. package/dist/index.d.ts +10 -0
  353. package/dist/index.d.ts.map +1 -0
  354. package/dist/index.js +18 -0
  355. package/dist/index.js.map +1 -0
  356. package/dist/react/hooks/index.d.ts +3 -0
  357. package/dist/react/hooks/index.d.ts.map +1 -0
  358. package/dist/react/hooks/index.js +3 -0
  359. package/dist/react/hooks/index.js.map +1 -0
  360. package/dist/react/hooks/useSelector.d.ts +22 -0
  361. package/dist/react/hooks/useSelector.d.ts.map +1 -0
  362. package/dist/react/hooks/useSelector.js +104 -0
  363. package/dist/react/hooks/useSelector.js.map +1 -0
  364. package/dist/react/hooks/useStorageSubscribe.d.ts +12 -0
  365. package/dist/react/hooks/useStorageSubscribe.d.ts.map +1 -0
  366. package/dist/react/hooks/useStorageSubscribe.js +49 -0
  367. package/dist/react/hooks/useStorageSubscribe.js.map +1 -0
  368. package/dist/react/index.d.ts +3 -0
  369. package/dist/react/index.d.ts.map +1 -0
  370. package/dist/react/index.js +3 -0
  371. package/dist/react/index.js.map +1 -0
  372. package/dist/react/utils/createSynapse.d.ts +47 -0
  373. package/dist/react/utils/createSynapse.d.ts.map +1 -0
  374. package/dist/react/utils/createSynapse.js +83 -0
  375. package/dist/react/utils/createSynapse.js.map +1 -0
  376. package/dist/react/utils/createSynapseContext.d.ts +29 -0
  377. package/dist/react/utils/createSynapseContext.d.ts.map +1 -0
  378. package/dist/react/utils/createSynapseContext.js +112 -0
  379. package/dist/react/utils/createSynapseContext.js.map +1 -0
  380. package/dist/react/utils/createSynapseCtx.d.ts +30 -0
  381. package/dist/react/utils/createSynapseCtx.d.ts.map +1 -0
  382. package/dist/react/utils/createSynapseCtx.js +124 -0
  383. package/dist/react/utils/createSynapseCtx.js.map +1 -0
  384. package/dist/react/utils/index.d.ts +2 -0
  385. package/dist/react/utils/index.d.ts.map +1 -0
  386. package/dist/react/utils/index.js +2 -0
  387. package/dist/react/utils/index.js.map +1 -0
  388. package/dist/reactive/dispatcher/dispatcher.module.d.ts +195 -0
  389. package/dist/reactive/dispatcher/dispatcher.module.d.ts.map +1 -0
  390. package/dist/reactive/dispatcher/dispatcher.module.js +288 -0
  391. package/dist/reactive/dispatcher/dispatcher.module.js.map +1 -0
  392. package/dist/reactive/dispatcher/index.d.ts +3 -0
  393. package/dist/reactive/dispatcher/index.d.ts.map +1 -0
  394. package/dist/reactive/dispatcher/index.js +3 -0
  395. package/dist/reactive/dispatcher/index.js.map +1 -0
  396. package/dist/reactive/dispatcher/middlewares/index.d.ts +2 -0
  397. package/dist/reactive/dispatcher/middlewares/index.d.ts.map +1 -0
  398. package/dist/reactive/dispatcher/middlewares/index.js +2 -0
  399. package/dist/reactive/dispatcher/middlewares/index.js.map +1 -0
  400. package/dist/reactive/dispatcher/middlewares/logger.middleware.d.ts +31 -0
  401. package/dist/reactive/dispatcher/middlewares/logger.middleware.d.ts.map +1 -0
  402. package/dist/reactive/dispatcher/middlewares/logger.middleware.js +126 -0
  403. package/dist/reactive/dispatcher/middlewares/logger.middleware.js.map +1 -0
  404. package/dist/reactive/effects/effects.module.d.ts +140 -0
  405. package/dist/reactive/effects/effects.module.d.ts.map +1 -0
  406. package/dist/reactive/effects/effects.module.js +263 -0
  407. package/dist/reactive/effects/effects.module.js.map +1 -0
  408. package/dist/reactive/effects/index.d.ts +2 -0
  409. package/dist/reactive/effects/index.d.ts.map +1 -0
  410. package/dist/reactive/effects/index.js +2 -0
  411. package/dist/reactive/effects/index.js.map +1 -0
  412. package/dist/reactive/effects/utils/chunkRequestConsistent.d.ts +12 -0
  413. package/dist/reactive/effects/utils/chunkRequestConsistent.d.ts.map +1 -0
  414. package/dist/reactive/effects/utils/chunkRequestConsistent.js +16 -0
  415. package/dist/reactive/effects/utils/chunkRequestConsistent.js.map +1 -0
  416. package/dist/reactive/effects/utils/chunkRequestParallel.d.ts +12 -0
  417. package/dist/reactive/effects/utils/chunkRequestParallel.d.ts.map +1 -0
  418. package/dist/reactive/effects/utils/chunkRequestParallel.js +13 -0
  419. package/dist/reactive/effects/utils/chunkRequestParallel.js.map +1 -0
  420. package/dist/reactive/effects/utils/index.d.ts +3 -0
  421. package/dist/reactive/effects/utils/index.d.ts.map +1 -0
  422. package/dist/reactive/effects/utils/index.js +3 -0
  423. package/dist/reactive/effects/utils/index.js.map +1 -0
  424. package/dist/reactive/index.d.ts +3 -0
  425. package/dist/reactive/index.d.ts.map +1 -0
  426. package/dist/reactive/index.js +3 -0
  427. package/dist/reactive/index.js.map +1 -0
  428. package/dist/utils/chunk.util.d.ts +8 -0
  429. package/dist/utils/chunk.util.d.ts.map +1 -0
  430. package/dist/utils/chunk.util.js +21 -0
  431. package/dist/utils/chunk.util.js.map +1 -0
  432. package/dist/utils/createSynapse.d.ts +52 -0
  433. package/dist/utils/createSynapse.d.ts.map +1 -0
  434. package/dist/utils/createSynapse.js +87 -0
  435. package/dist/utils/createSynapse.js.map +1 -0
  436. package/dist/utils/deepMerge.util.d.ts +2 -0
  437. package/dist/utils/deepMerge.util.d.ts.map +1 -0
  438. package/dist/utils/deepMerge.util.js +16 -0
  439. package/dist/utils/deepMerge.util.js.map +1 -0
  440. package/dist/utils/flatMap.util.d.ts +10 -0
  441. package/dist/utils/flatMap.util.d.ts.map +1 -0
  442. package/dist/utils/flatMap.util.js +23 -0
  443. package/dist/utils/flatMap.util.js.map +1 -0
  444. package/dist/utils/index.d.ts +2 -0
  445. package/dist/utils/index.d.ts.map +1 -0
  446. package/dist/utils/index.js +2 -0
  447. package/dist/utils/index.js.map +1 -0
  448. package/package.json +111 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effects.module.d.ts","sourceRoot":"","sources":["../../../src/reactive/effects/effects.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,263 @@
1
+ import { combineLatest, merge, Observable, of, pipe, Subject } from 'rxjs';
2
+ import { catchError, filter, map, share, switchMap, take, withLatestFrom } from 'rxjs/operators';
3
+ import { chunkRequestConsistent, chunkRequestParallel } from './utils';
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
+ * Оператор selectorMap для выбора частей состояния с помощью селекторов
64
+ * @param state$ Поток состояния
65
+ * @param selectors Селекторы для выбора частей состояния
66
+ */
67
+ export function selectorMap(state$, ...selectors) {
68
+ return (source$) => {
69
+ return source$.pipe(withLatestFrom(state$.pipe(map((state) => {
70
+ return selectors.map((selector) => selector(state));
71
+ }))));
72
+ };
73
+ }
74
+ /**
75
+ * Оператор validateMap для валидации данных и условного вызова API
76
+ */
77
+ export function validateMap({ validator, apiCall, }) {
78
+ return pipe(switchMap((pipeData) => {
79
+ /**
80
+ * Функция вызова API-метода
81
+ */
82
+ const callApi = () => apiCall(pipeData, {
83
+ chunkRequest: chunkRequestParallel,
84
+ chunkRequestConsistent: chunkRequestConsistent,
85
+ });
86
+ /**
87
+ * Если валидацию не используем - сразу вызываем запрос
88
+ */
89
+ if (!validator)
90
+ return callApi();
91
+ const validateConfig = validator(pipeData);
92
+ const { conditions, skipAction } = validateConfig;
93
+ const conditionMet = conditions.every(Boolean);
94
+ /**
95
+ * Если валидация не пройдена - вызываем экшн сброса
96
+ */
97
+ if (!conditionMet) {
98
+ if (Array.isArray(skipAction)) {
99
+ // eslint-disable-next-line no-unsafe-optional-chaining
100
+ return of(...skipAction?.filter(Boolean).map((action) => (typeof action === 'function' ? action() : action)));
101
+ }
102
+ return of(typeof skipAction === 'function' ? skipAction() : skipAction);
103
+ }
104
+ return callApi();
105
+ }));
106
+ }
107
+ /**
108
+ * Класс для управления эффектами с поддержкой доступа к состоянию и конфигурации
109
+ * Основной класс, который следует использовать
110
+ */
111
+ export class EffectsModule {
112
+ storage;
113
+ externalStates;
114
+ dispatchers;
115
+ services;
116
+ config;
117
+ effects = [];
118
+ subscriptions = [];
119
+ running = false;
120
+ action$ = new Subject();
121
+ /**
122
+ * Поток состояния
123
+ */
124
+ state$;
125
+ /**
126
+ * Создает модуль эффектов с доступом к состоянию, внешним состояниям и конфигурации
127
+ * @param storage Хранилище состояния
128
+ * @param externalStates Внешние состояния
129
+ * @param dispatchers Объект с диспетчерами
130
+ * @param services Объект с сервисами
131
+ * @param config Глобальная конфигурация для всех эффектов
132
+ */
133
+ constructor(storage, externalStates = {}, dispatchers, services = {}, config = {}) {
134
+ this.storage = storage;
135
+ this.externalStates = externalStates;
136
+ this.dispatchers = dispatchers;
137
+ this.services = services;
138
+ this.config = config;
139
+ this.subscribeToDispatchers();
140
+ // Создаем поток состояния
141
+ this.state$ = new Observable((observer) => {
142
+ // Отправляем начальное состояние
143
+ this.storage.getState().then((state) => observer.next(state));
144
+ // Подписываемся на все изменения
145
+ const unsubscribe = this.storage.subscribeToAll(() => {
146
+ this.storage.getState().then((state) => observer.next(state));
147
+ });
148
+ // Отписываемся при завершении
149
+ return () => unsubscribe();
150
+ }).pipe(share());
151
+ }
152
+ /**
153
+ * Подписывается на действия от всех диспетчеров
154
+ */
155
+ subscribeToDispatchers() {
156
+ for (const [_, dispatcher] of Object.entries(this.dispatchers)) {
157
+ const subscription = dispatcher.actions.subscribe((action) => {
158
+ this.action$.next(action);
159
+ });
160
+ this.subscriptions.push(subscription);
161
+ }
162
+ }
163
+ add(effect) {
164
+ this.effects.push(effect);
165
+ if (this.running) {
166
+ this.subscribeToEffect(effect);
167
+ }
168
+ return this;
169
+ }
170
+ /**
171
+ * Добавляет несколько эффектов
172
+ * @param effects Эффекты для добавления
173
+ * @returns Текущий модуль
174
+ */
175
+ addEffects(effects) {
176
+ effects.forEach((effect) => this.add(effect));
177
+ return this;
178
+ }
179
+ /**
180
+ * Запускает все эффекты
181
+ * @returns Текущий модуль
182
+ */
183
+ start() {
184
+ if (this.running) {
185
+ return this;
186
+ }
187
+ this.effects.forEach((effect) => this.subscribeToEffect(effect));
188
+ this.running = true;
189
+ return this;
190
+ }
191
+ /**
192
+ * Останавливает все эффекты
193
+ * @returns Текущий модуль
194
+ */
195
+ stop() {
196
+ this.subscriptions.forEach((sub) => sub.unsubscribe());
197
+ this.subscriptions = [];
198
+ this.running = false;
199
+ return this;
200
+ }
201
+ /**
202
+ * Подписывается на конкретный эффект
203
+ * @param effect Эффект для подписки
204
+ */
205
+ subscribeToEffect(effect) {
206
+ try {
207
+ const output$ = effect(this.action$.asObservable(), this.state$, this.externalStates, this.dispatchers, this.services, this.config).pipe(catchError((err) => {
208
+ console.error('Error in effect:', err);
209
+ return of(null);
210
+ }));
211
+ const subscription = output$.subscribe((result) => {
212
+ if (result === null || result === undefined) {
213
+ return;
214
+ }
215
+ if (typeof result === 'function') {
216
+ try {
217
+ result();
218
+ }
219
+ catch (callError) {
220
+ console.error('Error calling effect result function:', callError);
221
+ }
222
+ }
223
+ });
224
+ this.subscriptions.push(subscription);
225
+ }
226
+ catch (setupError) {
227
+ console.error('Error setting up effect:', setupError);
228
+ }
229
+ }
230
+ }
231
+ /**
232
+ * Вспомогательная функция для создания типизированного эффекта без состояния
233
+ * @deprecated Используйте createEffect вместо этого
234
+ */
235
+ export function createEffectBase(effect) {
236
+ return effect;
237
+ }
238
+ /**
239
+ * Вспомогательная функция для создания типизированного эффекта с состоянием и конфигурацией
240
+ */
241
+ export function createEffect(effect) {
242
+ return effect;
243
+ }
244
+ /**
245
+ * Объединяет несколько эффектов в один
246
+ * @param effects Эффекты для объединения
247
+ * @returns Объединенный эффект
248
+ */
249
+ export function combineEffects(...effects) {
250
+ return (action$, state$, externalStates, dispatchers, services, config) => {
251
+ const outputs = effects.map((effect) => {
252
+ try {
253
+ return effect(action$, state$, externalStates, dispatchers, services, config);
254
+ }
255
+ catch (error) {
256
+ console.error('Error in one of combined effects:', error);
257
+ return of(null);
258
+ }
259
+ });
260
+ return merge(...outputs);
261
+ };
262
+ }
263
+ //# sourceMappingURL=effects.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effects.module.js","sourceRoot":"","sources":["../../../src/reactive/effects/effects.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './effects.module';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reactive/effects/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './effects.module';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/reactive/effects/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { Observable } from 'rxjs';
2
+ /**
3
+ * Разбиение запроса на порции
4
+ * Отправляется ПОСЛЕДОВАТЕЛЬНО n-запросов и дожидается ответа от каждого
5
+ * @param fn - функция в которую передается chunk и возвращается функция api
6
+ * @param arr - массив который нужно поделить
7
+ * @param size - размер порции
8
+ * @param delayMs - задержка между запросами в миллисекундах
9
+ */
10
+ export declare const chunkRequestConsistent: <T, R>(fn: (chunk: T[]) => Observable<R>, arr: T[], size: number, delayMs?: number) => Observable<R[]>;
11
+ export type ChunkRequestConsistent = typeof chunkRequestConsistent;
12
+ //# sourceMappingURL=chunkRequestConsistent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunkRequestConsistent.d.ts","sourceRoot":"","sources":["../../../../src/reactive/effects/utils/chunkRequestConsistent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAM,MAAM,MAAM,CAAA;AAKrC;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,MAAM,EAAE,gBAAW,KAAG,UAAU,CAAC,CAAC,EAAE,CAGnI,CAAA;AACD,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { of } from 'rxjs';
2
+ import { concatAll, delay, mergeMap, toArray } from 'rxjs/operators';
3
+ import { chunk } from '../../../_utils';
4
+ /**
5
+ * Разбиение запроса на порции
6
+ * Отправляется ПОСЛЕДОВАТЕЛЬНО n-запросов и дожидается ответа от каждого
7
+ * @param fn - функция в которую передается chunk и возвращается функция api
8
+ * @param arr - массив который нужно поделить
9
+ * @param size - размер порции
10
+ * @param delayMs - задержка между запросами в миллисекундах
11
+ */
12
+ export const chunkRequestConsistent = (fn, arr, size, delayMs = 0) => {
13
+ const chunks = chunk(arr, size).map((chunkItem) => of(chunkItem).pipe(delay(delayMs), mergeMap(fn)));
14
+ return of(...chunks).pipe(concatAll(), toArray());
15
+ };
16
+ //# sourceMappingURL=chunkRequestConsistent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunkRequestConsistent.js","sourceRoot":"","sources":["../../../../src/reactive/effects/utils/chunkRequestConsistent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,EAAE,EAAE,MAAM,MAAM,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAEpE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAO,EAAiC,EAAE,GAAQ,EAAE,IAAY,EAAE,OAAO,GAAG,CAAC,EAAmB,EAAE;IACtI,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACpG,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;AACnD,CAAC,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { Observable } from 'rxjs';
2
+ /**
3
+ * Разбиение запроса на порции
4
+ * Отправляется ПАРАЛЛЕЛЬНО n-запросов и дожидается ответа от каждого
5
+ * @param fn - функция в которую передается chunk и возвращается функция api
6
+ * @param arr - массив который нужно поделить
7
+ * @param size - размер порции
8
+ * @param delayMs - задержка между запросами в миллисекундах
9
+ */
10
+ export declare const chunkRequestParallel: <T, R>(fn: (chunk: T[]) => Observable<R>, arr: T[], size: number, delayMs?: number) => Observable<R[]>;
11
+ export type ChunkRequestParallel = typeof chunkRequestParallel;
12
+ //# sourceMappingURL=chunkRequestParallel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunkRequestParallel.d.ts","sourceRoot":"","sources":["../../../../src/reactive/effects/utils/chunkRequestParallel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,UAAU,EAAS,MAAM,MAAM,CAAA;AAKlD;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,MAAM,EAAE,gBAAW,KAAG,UAAU,CAAC,CAAC,EAAE,CAChB,CAAA;AAClH,MAAM,MAAM,oBAAoB,GAAG,OAAO,oBAAoB,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { forkJoin, timer } from 'rxjs';
2
+ import { mergeMap } from 'rxjs/operators';
3
+ import { chunk } from '../../../_utils';
4
+ /**
5
+ * Разбиение запроса на порции
6
+ * Отправляется ПАРАЛЛЕЛЬНО n-запросов и дожидается ответа от каждого
7
+ * @param fn - функция в которую передается chunk и возвращается функция api
8
+ * @param arr - массив который нужно поделить
9
+ * @param size - размер порции
10
+ * @param delayMs - задержка между запросами в миллисекундах
11
+ */
12
+ export const chunkRequestParallel = (fn, arr, size, delayMs = 0) => forkJoin(chunk(arr, size).map((chunkItem, index) => timer(index * delayMs).pipe(mergeMap(() => fn(chunkItem)))));
13
+ //# sourceMappingURL=chunkRequestParallel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunkRequestParallel.js","sourceRoot":"","sources":["../../../../src/reactive/effects/utils/chunkRequestParallel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAc,KAAK,EAAE,MAAM,MAAM,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAO,EAAiC,EAAE,GAAQ,EAAE,IAAY,EAAE,OAAO,GAAG,CAAC,EAAmB,EAAE,CACpI,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './chunkRequestConsistent';
2
+ export * from './chunkRequestParallel';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/reactive/effects/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './chunkRequestConsistent';
2
+ export * from './chunkRequestParallel';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/reactive/effects/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './dispatcher';
2
+ export * from './effects';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reactive/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './dispatcher';
2
+ export * from './effects';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reactive/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Разбивает массив на группы элементов указанного размера.
3
+ * @param array - Массив для разбиения
4
+ * @param size - Размер каждой группы
5
+ * @returns Массив групп элементов
6
+ */
7
+ export declare function chunk<T>(array: T[], size?: number): T[][];
8
+ //# sourceMappingURL=chunk.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk.util.d.ts","sourceRoot":"","sources":["../../src/utils/chunk.util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,GAAE,MAAU,GAAG,CAAC,EAAE,EAAE,CAe5D"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Разбивает массив на группы элементов указанного размера.
3
+ * @param array - Массив для разбиения
4
+ * @param size - Размер каждой группы
5
+ * @returns Массив групп элементов
6
+ */
7
+ export function chunk(array, size = 1) {
8
+ if (size <= 0)
9
+ throw new Error('Size must be greater than 0');
10
+ if (!array || !array.length)
11
+ return [];
12
+ const result = [];
13
+ const length = array.length;
14
+ let index = 0;
15
+ while (index < length) {
16
+ result.push(array.slice(index, index + size));
17
+ index += size;
18
+ }
19
+ return result;
20
+ }
21
+ //# sourceMappingURL=chunk.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk.util.js","sourceRoot":"","sources":["../../src/utils/chunk.util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,KAAK,CAAI,KAAU,EAAE,OAAe,CAAC;IACnD,IAAI,IAAI,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IAE7D,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,CAAA;IAEtC,MAAM,MAAM,GAAU,EAAE,CAAA;IACxB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;IAC3B,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,OAAO,KAAK,GAAG,MAAM,EAAE,CAAC;QACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;QAC7C,KAAK,IAAI,IAAI,CAAA;IACf,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { Observable } from 'rxjs';
2
+ import { ILogger, ISelectorModule, IStorage } from '../core';
3
+ import { Effect, ExternalStates } from '../reactive';
4
+ export type ExtractPromiseType<T> = T extends Promise<infer U> ? U : T;
5
+ export type ExtractStorageType<T> = T extends IStorage<infer U> ? U : never;
6
+ export type ExtractDispatchType<T> = T extends {
7
+ dispatch: infer D;
8
+ } ? D : never;
9
+ export type StorageCreatorFunction<T extends Record<string, any>> = () => Promise<IStorage<T>>;
10
+ /**
11
+ * Конфигурация хранилища
12
+ */
13
+ export type CreateSynapseConfig<TStore extends Record<string, any>, TSelectors = any, TDispatcher = any, TApi extends Record<string, any> = Record<string, never>, TConfig extends Record<string, any> = Record<string, never>, TExternalSelectors extends Record<string, any> = Record<string, any>, TExternalStates extends ExternalStates = Record<string, never>> = ({
14
+ storage: IStorage<TStore>;
15
+ createStorageFn?: undefined;
16
+ } | {
17
+ storage?: undefined;
18
+ createStorageFn: StorageCreatorFunction<TStore>;
19
+ }) & {
20
+ externalSelectors?: TExternalSelectors;
21
+ createSelectorsFn?: (selectorModule: ISelectorModule<TStore>, externalSelectors: TExternalSelectors) => TSelectors;
22
+ createDispatcherFn?: (storage: IStorage<TStore>) => TDispatcher;
23
+ createEffectConfig?: (dispatcher: TDispatcher) => {
24
+ dispatchers: Record<string, any>;
25
+ externalStates?: TExternalStates;
26
+ api?: TApi;
27
+ config?: TConfig;
28
+ };
29
+ effects?: Effect<TStore, any, TApi, TConfig>[];
30
+ config?: {
31
+ selectorModuleLogger?: ILogger;
32
+ };
33
+ };
34
+ /**
35
+ * Возвращаемый результат
36
+ */
37
+ export interface SynapseStore<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors = any, TActions = any, TDispatcher = any> {
38
+ storage: TStorage;
39
+ selectors: TSelectors;
40
+ actions: TActions;
41
+ state$: Observable<TStore>;
42
+ destroy: () => Promise<void>;
43
+ dispatcher: TDispatcher;
44
+ }
45
+ /**
46
+ * Создает хранилище Synapse
47
+ *
48
+ * @param config Конфигурация для создания хранилища
49
+ * @returns Promise, который разрешается в SynapseStore
50
+ */
51
+ export declare function createSynapse<TStore extends Record<string, any>, TSelectors = any, TDispatcher = any, TApi extends Record<string, any> = Record<string, never>, TConfig extends Record<string, any> = Record<string, never>, TExternalSelectors extends Record<string, any> = Record<string, any>, TExternalStates extends ExternalStates = Record<string, never>, TStorage extends IStorage<TStore> = IStorage<TStore>, TActions = ExtractDispatchType<TDispatcher>>(config: CreateSynapseConfig<TStore, TSelectors, TDispatcher, TApi, TConfig, TExternalSelectors, TExternalStates>): Promise<SynapseStore<TStore, TStorage, TSelectors, TActions, TDispatcher>>;
52
+ //# sourceMappingURL=createSynapse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSynapse.d.ts","sourceRoot":"","sources":["../../src/utils/createSynapse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import { Observable } from 'rxjs';
2
+ import { SelectorModule } from '../core';
3
+ import { EffectsModule } from '../reactive';
4
+ /**
5
+ * Создает хранилище Synapse
6
+ *
7
+ * @param config Конфигурация для создания хранилища
8
+ * @returns Promise, который разрешается в SynapseStore
9
+ */
10
+ export async function createSynapse(config) {
11
+ // Создаем и инициализируем хранилище
12
+ const storageInstance = (config.createStorageFn ? await config.createStorageFn() : config.storage);
13
+ // Создаем сборщики для последующей очистки
14
+ const cleanupCallbacks = [];
15
+ const result = {
16
+ storage: storageInstance,
17
+ selectors: {},
18
+ actions: {},
19
+ state$: new Observable(),
20
+ dispatcher: undefined,
21
+ destroy: async () => {
22
+ for (const callback of cleanupCallbacks) {
23
+ await callback();
24
+ }
25
+ },
26
+ };
27
+ cleanupCallbacks.push(() => storageInstance.destroy());
28
+ let dispatcher;
29
+ let selectorModule;
30
+ let effectsModule;
31
+ // Создаем модуль селекторов
32
+ if (config.createSelectorsFn) {
33
+ try {
34
+ selectorModule = new SelectorModule(storageInstance, config.config?.selectorModuleLogger);
35
+ const externalSelectors = config.externalSelectors || {};
36
+ result.selectors = config.createSelectorsFn(selectorModule, externalSelectors);
37
+ if (typeof selectorModule.destroy === 'function') {
38
+ cleanupCallbacks.push(() => selectorModule.destroy());
39
+ }
40
+ }
41
+ catch (error) {
42
+ console.error('Ошибка создания selectors:', error);
43
+ }
44
+ }
45
+ // Создаем диспетчер
46
+ if (config.createDispatcherFn) {
47
+ dispatcher = config.createDispatcherFn(storageInstance);
48
+ result.dispatcher = dispatcher;
49
+ // @ts-ignore
50
+ if (dispatcher && 'dispatch' in dispatcher) {
51
+ result.actions = dispatcher.dispatch;
52
+ if (typeof dispatcher.destroy === 'function') {
53
+ cleanupCallbacks.push(() => dispatcher.destroy());
54
+ }
55
+ }
56
+ }
57
+ // Создаем и настраиваем модуль эффектов
58
+ if (config.createEffectConfig && dispatcher) {
59
+ try {
60
+ const { dispatchers, api, config: effectConfig, externalStates } = config.createEffectConfig(dispatcher);
61
+ // Получаем внешние состояния из конфигурации эффектов
62
+ const effectExternalStates = externalStates || {};
63
+ // Создаем модуль эффектов
64
+ effectsModule = new EffectsModule(storageInstance, effectExternalStates, dispatchers, api, effectConfig);
65
+ // Добавляем эффекты
66
+ if (Array.isArray(config.effects)) {
67
+ config.effects.forEach((effect) => {
68
+ if (effectsModule)
69
+ effectsModule.add(effect);
70
+ });
71
+ }
72
+ // Запускаем модуль эффектов
73
+ effectsModule.start();
74
+ result.state$ = effectsModule.state$;
75
+ // Добавляем очистку эффектов
76
+ cleanupCallbacks.push(() => {
77
+ if (effectsModule)
78
+ effectsModule.stop();
79
+ });
80
+ }
81
+ catch (error) {
82
+ console.error('Ошибка создания модуля эффектов:', error);
83
+ }
84
+ }
85
+ return result;
86
+ }
87
+ //# sourceMappingURL=createSynapse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSynapse.js","sourceRoot":"","sources":["../../src/utils/createSynapse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const deepMerge: (target: any, source: any) => void;
2
+ //# sourceMappingURL=deepMerge.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepMerge.util.d.ts","sourceRoot":"","sources":["../../src/utils/deepMerge.util.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,GAAI,QAAQ,GAAG,EAAE,QAAQ,GAAG,SAajD,CAAA"}