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,168 @@
1
+ "use strict";
2
+ // import React, { useEffect, useState } from 'react'
3
+ // import { IndexedDBStorage, LocalStorage, MemoryStorage, SelectorModule } from 'synapse'
4
+ //
5
+ // interface Counter {
6
+ // value: number;
7
+ // lastUpdated?: Date;
8
+ // }
9
+ //
10
+ // // Создаем хранилища
11
+ // const counter1 = await new MemoryStorage<Counter>({
12
+ // name: 'counter1',
13
+ // initialState: { value: 1 },
14
+ // }).initialize()
15
+ //
16
+ // const counter2 = await new IndexedDBStorage<Counter>({
17
+ // name: 'counter2',
18
+ // options: {
19
+ // dbVersion: 2,
20
+ // storeName: 'counter23',
21
+ // dbName: 'counter23',
22
+ // },
23
+ // initialState: { value: 2 },
24
+ // }).initialize()
25
+ //
26
+ // const counter3 = await new LocalStorage<Counter>({
27
+ // name: 'counter3',
28
+ // initialState: { value: 3 },
29
+ // }).initialize()
30
+ //
31
+ // const counter1Selector = new SelectorModule<Counter>(counter1, console)
32
+ // const counter2Selector = new SelectorModule(counter2)
33
+ // const counter3Selector = new SelectorModule(counter3)
34
+ //
35
+ // const counter1ValueSelector = counter1Selector.createSelector((s) => s.value)
36
+ // const counter2ValueSelector = counter2Selector.createSelector((s) => s.value)
37
+ // const counter3ValueSelector = counter3Selector.createSelector((s) => s.value)
38
+ //
39
+ // const sum = counter3Selector.createSelector(
40
+ // [counter1ValueSelector, counter2ValueSelector, counter3ValueSelector],
41
+ // (a, b, c) => a + b + c,
42
+ // )
43
+ //
44
+ // sum.subscribe({
45
+ // notify: (value) => {
46
+ // console.log('sum-notify', value)
47
+ // },
48
+ // })
49
+ //
50
+ // counter1ValueSelector.subscribe({
51
+ // notify: (value) => {
52
+ // console.log('counter1ValueUnsubscribe', value)
53
+ // },
54
+ // })
55
+ //
56
+ // counter2ValueSelector.subscribe({
57
+ // notify: async (value) => {
58
+ // console.log('counter2ValueUnsubscribe', value)
59
+ // },
60
+ // })
61
+ //
62
+ // // Компонент для демонстрации работы middleware
63
+ //
64
+ // export const Example6 = React.memo(() => {
65
+ // const [counter1Value, setCounter1Value] = useState(0)
66
+ // const [counter2Value, setCounter2Value] = useState(0)
67
+ // const [counter3Value, setCounter3Value] = useState(0)
68
+ //
69
+ // useEffect(() => {
70
+ // sum.select().then((r) => {
71
+ // console.log('result', r)
72
+ // })
73
+ // const a = sum.select().then((r) => r)
74
+ // console.log('a', a)
75
+ // }, [])
76
+ //
77
+ // useEffect(() => {
78
+ // // Подписываемся на изменения counter1
79
+ // const unsubscribe1 = counter1.subscribe((s) => s.value, setCounter1Value)
80
+ // return () => {
81
+ // unsubscribe1()
82
+ // }
83
+ // }, [])
84
+ //
85
+ // useEffect(() => {
86
+ // // Подписываемся на изменения counter1
87
+ // const unsubscribe2 = counter2.subscribe((s) => s.value, setCounter2Value)
88
+ // return () => {
89
+ // unsubscribe2()
90
+ // }
91
+ // }, [])
92
+ // useEffect(() => {
93
+ // // Подписываемся на изменения counter1
94
+ // const unsubscribe3 = counter3.subscribe((s) => s.value, setCounter3Value)
95
+ // return () => {
96
+ // unsubscribe3()
97
+ // }
98
+ // }, [])
99
+ //
100
+ // // Функции для обновления счетчиков
101
+ // const updateCounter1 = async () => {
102
+ // await counter1.update((state) => {
103
+ // state.value++
104
+ // })
105
+ // }
106
+ //
107
+ // const updateCounter2 = async () => {
108
+ // await counter2.update((state) => {
109
+ // state.value++
110
+ // })
111
+ // }
112
+ //
113
+ // const updateCounter3 = async () => {
114
+ // await counter3.set('value', counter3Value + 1)
115
+ // }
116
+ //
117
+ // return (
118
+ // <div style={{ fontFamily: 'Arial', padding: '20px' }}>
119
+ // <h2>Middleware Testing</h2>
120
+ //
121
+ // <div style={{ display: 'flex', gap: '20px', marginBottom: '20px' }}>
122
+ // <div style={{ border: '1px solid #ccc', padding: '15px', borderRadius: '5px' }}>
123
+ // <h3>Counter 1 (Both Middlewares)</h3>
124
+ // <p>
125
+ // Value:
126
+ // {counter1Value}
127
+ // </p>
128
+ // <button
129
+ // onClick={updateCounter1}
130
+ // style={{ padding: '8px 15px', backgroundColor: '#4CAF50', color: 'white', border: 'none', borderRadius: '4px' }}
131
+ // >
132
+ // Increment
133
+ // </button>
134
+ // </div>
135
+ //
136
+ // <div style={{ border: '1px solid #ccc', padding: '15px', borderRadius: '5px' }}>
137
+ // <h3>Counter 2 (ShallowCompare)</h3>
138
+ // <p>
139
+ // Value:
140
+ // {counter2Value}
141
+ // </p>
142
+ // <button
143
+ // onClick={updateCounter2}
144
+ // style={{ padding: '8px 15px', backgroundColor: '#2196F3', color: 'white', border: 'none', borderRadius: '4px' }}
145
+ // >
146
+ // Update
147
+ // </button>
148
+ // <p><small>Every 3rd click tries to set the same value</small></p>
149
+ // </div>
150
+ //
151
+ // <div style={{ border: '1px solid #ccc', padding: '15px', borderRadius: '5px' }}>
152
+ // <h3>Counter 3 (Batching)</h3>
153
+ // <p>
154
+ // Value:
155
+ // {counter3Value}
156
+ // </p>
157
+ // <button
158
+ // onClick={updateCounter3}
159
+ // style={{ padding: '8px 15px', backgroundColor: '#FF9800', color: 'white', border: 'none', borderRadius: '4px' }}
160
+ // >
161
+ // Batch Update
162
+ // </button>
163
+ // </div>
164
+ // </div>
165
+ // </div>
166
+ // )
167
+ // })
168
+ //# sourceMappingURL=example6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example6.js","sourceRoot":"","sources":["../../src/_examples/example6.tsx"],"names":[],"mappings":";AAAA,qDAAqD;AACrD,0FAA0F;AAC1F,EAAE;AACF,sBAAsB;AACtB,mBAAmB;AACnB,wBAAwB;AACxB,IAAI;AACJ,EAAE;AACF,uBAAuB;AACvB,sDAAsD;AACtD,sBAAsB;AACtB,gCAAgC;AAChC,kBAAkB;AAClB,EAAE;AACF,yDAAyD;AACzD,sBAAsB;AACtB,eAAe;AACf,oBAAoB;AACpB,8BAA8B;AAC9B,2BAA2B;AAC3B,OAAO;AACP,gCAAgC;AAChC,kBAAkB;AAClB,EAAE;AACF,qDAAqD;AACrD,sBAAsB;AACtB,gCAAgC;AAChC,kBAAkB;AAClB,EAAE;AACF,0EAA0E;AAC1E,wDAAwD;AACxD,wDAAwD;AACxD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAChF,EAAE;AACF,+CAA+C;AAC/C,2EAA2E;AAC3E,4BAA4B;AAC5B,IAAI;AACJ,EAAE;AACF,kBAAkB;AAClB,yBAAyB;AACzB,uCAAuC;AACvC,OAAO;AACP,KAAK;AACL,EAAE;AACF,oCAAoC;AACpC,yBAAyB;AACzB,qDAAqD;AACrD,OAAO;AACP,KAAK;AACL,EAAE;AACF,oCAAoC;AACpC,+BAA+B;AAC/B,qDAAqD;AACrD,OAAO;AACP,KAAK;AACL,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,6CAA6C;AAC7C,0DAA0D;AAC1D,0DAA0D;AAC1D,0DAA0D;AAC1D,EAAE;AACF,sBAAsB;AACtB,iCAAiC;AACjC,iCAAiC;AACjC,SAAS;AACT,4CAA4C;AAC5C,0BAA0B;AAC1B,WAAW;AACX,EAAE;AACF,sBAAsB;AACtB,6CAA6C;AAC7C,gFAAgF;AAChF,qBAAqB;AACrB,uBAAuB;AACvB,QAAQ;AACR,WAAW;AACX,EAAE;AACF,sBAAsB;AACtB,6CAA6C;AAC7C,gFAAgF;AAChF,qBAAqB;AACrB,uBAAuB;AACvB,QAAQ;AACR,WAAW;AACX,sBAAsB;AACtB,6CAA6C;AAC7C,gFAAgF;AAChF,qBAAqB;AACrB,uBAAuB;AACvB,QAAQ;AACR,WAAW;AACX,EAAE;AACF,wCAAwC;AACxC,yCAAyC;AACzC,yCAAyC;AACzC,sBAAsB;AACtB,SAAS;AACT,MAAM;AACN,EAAE;AACF,yCAAyC;AACzC,yCAAyC;AACzC,sBAAsB;AACtB,SAAS;AACT,MAAM;AACN,EAAE;AACF,yCAAyC;AACzC,qDAAqD;AACrD,MAAM;AACN,EAAE;AACF,aAAa;AACb,6DAA6D;AAC7D,oCAAoC;AACpC,EAAE;AACF,6EAA6E;AAC7E,2FAA2F;AAC3F,kDAAkD;AAClD,gBAAgB;AAChB,qBAAqB;AACrB,8BAA8B;AAC9B,iBAAiB;AACjB,oBAAoB;AACpB,uCAAuC;AACvC,+HAA+H;AAC/H,cAAc;AACd,wBAAwB;AACxB,sBAAsB;AACtB,iBAAiB;AACjB,EAAE;AACF,2FAA2F;AAC3F,gDAAgD;AAChD,gBAAgB;AAChB,qBAAqB;AACrB,8BAA8B;AAC9B,iBAAiB;AACjB,oBAAoB;AACpB,uCAAuC;AACvC,+HAA+H;AAC/H,cAAc;AACd,qBAAqB;AACrB,sBAAsB;AACtB,8EAA8E;AAC9E,iBAAiB;AACjB,EAAE;AACF,2FAA2F;AAC3F,0CAA0C;AAC1C,gBAAgB;AAChB,qBAAqB;AACrB,8BAA8B;AAC9B,iBAAiB;AACjB,oBAAoB;AACpB,uCAAuC;AACvC,+HAA+H;AAC/H,cAAc;AACd,2BAA2B;AAC3B,sBAAsB;AACtB,iBAAiB;AACjB,eAAe;AACf,aAAa;AACb,MAAM;AACN,KAAK"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=plugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/_examples/plugins.ts"],"names":[],"mappings":""}
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ // import { IStoragePlugin, PluginContext, StorageKeyType } from 'synapse'
3
+ //
4
+ // /**
5
+ // * Пример 1: LoggingPlugin
6
+ // *
7
+ // * Плагин для логирования операций хранилища.
8
+ // * Записывает информацию о всех операциях в консоль или пользовательский логгер.
9
+ // */
10
+ // export class LoggingPlugin implements IStoragePlugin {
11
+ // name = 'logging'
12
+ //
13
+ // constructor(
14
+ // private options: {
15
+ // logLevel?: 'info' | 'debug' | 'verbose',
16
+ // customLogger?: (message: string, data?: any) => void
17
+ // } = {},
18
+ // ) {}
19
+ //
20
+ // private log(message: string, data?: any): void {
21
+ // const formattedMessage = `[LoggingPlugin] ${message}`
22
+ //
23
+ // if (this.options.customLogger) {
24
+ // this.options.customLogger(formattedMessage, data)
25
+ // } else if (this.options.logLevel === 'verbose') {
26
+ // console.log(formattedMessage, data)
27
+ // } else if (this.options.logLevel === 'debug' || !this.options.logLevel) {
28
+ // console.log(formattedMessage)
29
+ // } else {
30
+ // console.log(formattedMessage)
31
+ // }
32
+ // }
33
+ //
34
+ // async initialize(): Promise<void> {
35
+ // this.log('Плагин инициализирован')
36
+ // }
37
+ //
38
+ // async destroy(): Promise<void> {
39
+ // this.log('Плагин уничтожен')
40
+ // }
41
+ //
42
+ // async onBeforeSet<T>(value: T, context: PluginContext): Promise<T> {
43
+ // this.log(
44
+ // `Сохранение значения в хранилище ${context.storageName}`,
45
+ // this.options.logLevel === 'verbose' ? value : undefined,
46
+ // )
47
+ // return value
48
+ // }
49
+ //
50
+ // async onAfterSet<T>(key: StorageKeyType, value: T, context: PluginContext): Promise<T> {
51
+ // this.log(
52
+ // `Значение сохранено по ключу ${String(key)}`,
53
+ // this.options.logLevel === 'verbose' ? value : undefined,
54
+ // )
55
+ // return value
56
+ // }
57
+ //
58
+ // async onBeforeGet(key: StorageKeyType, context: PluginContext): Promise<StorageKeyType> {
59
+ // this.log(`Запрос значения по ключу ${String(key)}`)
60
+ // return key
61
+ // }
62
+ //
63
+ // async onAfterGet<T>(key: StorageKeyType, value: T | undefined, context: PluginContext): Promise<T | undefined> {
64
+ // if (value === undefined) {
65
+ // this.log(`Значение не найдено по ключу ${String(key)}`)
66
+ // } else {
67
+ // this.log(
68
+ // `Получено значение по ключу ${String(key)}`,
69
+ // this.options.logLevel === 'verbose' ? value : undefined,
70
+ // )
71
+ // }
72
+ // return value
73
+ // }
74
+ //
75
+ // async onBeforeDelete(key: StorageKeyType, context: PluginContext): Promise<boolean> {
76
+ // this.log(`Запрос на удаление значения по ключу ${String(key)}`)
77
+ // return true
78
+ // }
79
+ //
80
+ // async onAfterDelete(key: StorageKeyType, context: PluginContext): Promise<void> {
81
+ // this.log(`Значение удалено по ключу ${String(key)}`)
82
+ // }
83
+ //
84
+ // async onClear(context: PluginContext): Promise<void> {
85
+ // this.log(`Хранилище ${context.storageName} очищено`)
86
+ // }
87
+ // }
88
+ //
89
+ // /**
90
+ // * Пример 2: ValidationPlugin
91
+ // *
92
+ // * Плагин для валидации данных перед сохранением в хранилище.
93
+ // * Позволяет устанавливать правила валидации для определенных ключей.
94
+ // */
95
+ // export class ValidationPlugin implements IStoragePlugin {
96
+ // name = 'validation'
97
+ //
98
+ // private validators = new Map<string, (value: any) => { valid: boolean, message?: string }>()
99
+ //
100
+ // constructor(
101
+ // private options: {
102
+ // throwOnInvalid?: boolean;
103
+ // onValidationError?: (key: string, value: any, message: string) => void;
104
+ // } = { throwOnInvalid: true },
105
+ // ) {}
106
+ //
107
+ // /**
108
+ // * Добавляет правило валидации для определенного ключа
109
+ // *
110
+ // * @param key Ключ, для которого применяется валидация
111
+ // * @param validator Функция валидации, возвращающая результат проверки
112
+ // * @returns Экземпляр плагина для цепочки вызовов
113
+ // */
114
+ // addValidator(
115
+ // key: string,
116
+ // validator: (value: any) => { valid: boolean, message?: string },
117
+ // ): this {
118
+ // this.validators.set(key, validator)
119
+ // return this
120
+ // }
121
+ //
122
+ // /**
123
+ // * Помощник для создания валидатора по JSON-схеме
124
+ // *
125
+ // * @param schema Объект описывающий схему данных
126
+ // * @returns Функция-валидатор
127
+ // */
128
+ // static schemaValidator(schema: any): (value: any) => { valid: boolean, message?: string } {
129
+ // return (value: any) => {
130
+ // // Здесь должна быть реализация проверки по JSON-схеме
131
+ // // Для примера используем упрощенную логику
132
+ // if (schema.type === 'object' && typeof value !== 'object') {
133
+ // return { valid: false, message: 'Value must be an object' }
134
+ // }
135
+ //
136
+ // if (schema.type === 'array' && !Array.isArray(value)) {
137
+ // return { valid: false, message: 'Value must be an array' }
138
+ // }
139
+ //
140
+ // if (schema.required && Array.isArray(schema.required)) {
141
+ // for (const prop of schema.required) {
142
+ // if (value[prop] === undefined) {
143
+ // return { valid: false, message: `Required property "${prop}" is missing` }
144
+ // }
145
+ // }
146
+ // }
147
+ //
148
+ // return { valid: true }
149
+ // }
150
+ // }
151
+ //
152
+ // async onBeforeSet<T>(value: T, context: PluginContext): Promise<T> {
153
+ // // Получаем ключ из метаданных (должен быть добавлен хранилищем)
154
+ // const key = context.metadata?.key
155
+ //
156
+ // if (key && this.validators.has(key)) {
157
+ // const validator = this.validators.get(key)!
158
+ // const result = validator(value)
159
+ //
160
+ // if (!result.valid) {
161
+ // const errorMessage = result.message || `Validation failed for key "${key}"`
162
+ //
163
+ // if (this.options.onValidationError) {
164
+ // this.options.onValidationError(key, value, errorMessage)
165
+ // }
166
+ //
167
+ // if (this.options.throwOnInvalid) {
168
+ // throw new Error(errorMessage)
169
+ // }
170
+ // }
171
+ // }
172
+ //
173
+ // return value
174
+ // }
175
+ // }
176
+ //# sourceMappingURL=plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/_examples/plugins.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Упрощенный React-компонент для работы с одним покемоном
3
+ */
4
+ export declare function SimplePokemonViewer(): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=PokemonList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PokemonList.d.ts","sourceRoot":"","sources":["../../../src/_examples/pokemons/PokemonList.tsx"],"names":[],"mappings":"AAMA;;GAEG;AACH,wBAAgB,mBAAmB,4CAsQlC"}
@@ -0,0 +1,166 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useState } from 'react';
3
+ import { distinctUntilChanged, map } from 'rxjs/operators';
4
+ import { useSelector, useStorageSubscribe } from 'synapse/react';
5
+ import { pokemonActions, pokemonSelectors, pokemonState$, pokemonStorage } from './store1';
6
+ /**
7
+ * Упрощенный React-компонент для работы с одним покемоном
8
+ */
9
+ export function SimplePokemonViewer() {
10
+ const [state, setState] = useState({
11
+ currentPokemon: null,
12
+ loading: true,
13
+ error: null,
14
+ currentId: 1,
15
+ });
16
+ const d = useSelector(pokemonSelectors.val1);
17
+ const d1 = useStorageSubscribe(pokemonStorage, (s) => 1);
18
+ // console.log('pokemonSelectors useSelector', d)
19
+ console.log('d1', d1);
20
+ useEffect(() => {
21
+ pokemonSelectors.val1.select().then((val) => {
22
+ // console.log('pokemonSelectors select', val)
23
+ });
24
+ const ddwe = pokemonStorage.subscribe((s) => s.currentPokemon, () => {
25
+ });
26
+ }, []);
27
+ useEffect(() => {
28
+ pokemonSelectors.val1.subscribe({
29
+ notify: (s) => {
30
+ // console.log('pokemonSelectors subscribe', s)
31
+ },
32
+ });
33
+ }, []);
34
+ useEffect(() => {
35
+ const subscription = pokemonState$.pipe(map((state) => state.currentId), distinctUntilChanged()).subscribe((state) => {
36
+ // console.log('Текущее состояние REACTIVE:', state)
37
+ });
38
+ return () => {
39
+ subscription.unsubscribe();
40
+ };
41
+ }, []);
42
+ useEffect(() => {
43
+ // Подписываемся на изменения состояния напрямую из хранилища
44
+ const unsubscribe = pokemonStorage.subscribeToAll((event) => {
45
+ // Обновляем состояние при изменении
46
+ pokemonStorage.getState().then((state) => {
47
+ // console.log('Текущее состояние ОБЫЧНОЕ:', state)
48
+ if (state)
49
+ setState(state);
50
+ });
51
+ });
52
+ // Инициируем загрузку первого покемона через действия
53
+ pokemonActions.loadPokemon(1);
54
+ // Отписываемся при размонтировании
55
+ return () => unsubscribe();
56
+ }, []);
57
+ // Обработчики действий
58
+ const handleNext = () => {
59
+ pokemonActions.next().then((result) => {
60
+ // console.log('Результат:', result) // Покажет { id: число }
61
+ });
62
+ };
63
+ const handlePrev = () => {
64
+ pokemonActions.prev();
65
+ };
66
+ const handleLoadById = (id) => {
67
+ if (id >= 1 && id <= 151) {
68
+ pokemonActions.loadPokemon(id).then((result) => {
69
+ // console.log('Результат:', result) // Покажет { id: число }
70
+ });
71
+ }
72
+ };
73
+ // Стили
74
+ const styles = {
75
+ container: {
76
+ maxWidth: '600px',
77
+ margin: '0 auto',
78
+ padding: '20px',
79
+ fontFamily: 'Arial, sans-serif',
80
+ textAlign: 'center',
81
+ },
82
+ title: {
83
+ fontSize: '24px',
84
+ fontWeight: 'bold',
85
+ marginBottom: '20px',
86
+ },
87
+ card: {
88
+ border: '1px solid #ddd',
89
+ borderRadius: '8px',
90
+ padding: '20px',
91
+ margin: '20px 0',
92
+ background: 'white',
93
+ boxShadow: '0 2px 4px rgba(0,0,0,0.1)',
94
+ },
95
+ pokemonName: {
96
+ fontSize: '20px',
97
+ fontWeight: 'bold',
98
+ textTransform: 'capitalize',
99
+ marginTop: '10px',
100
+ },
101
+ pokemonImage: {
102
+ width: '180px',
103
+ height: '180px',
104
+ },
105
+ typeBadge: {
106
+ display: 'inline-block',
107
+ padding: '4px 8px',
108
+ margin: '4px',
109
+ borderRadius: '16px',
110
+ fontSize: '12px',
111
+ background: '#eee',
112
+ },
113
+ stats: {
114
+ margin: '15px 0',
115
+ textAlign: 'left',
116
+ },
117
+ controls: {
118
+ display: 'flex',
119
+ justifyContent: 'space-between',
120
+ alignItems: 'center',
121
+ margin: '20px 0',
122
+ },
123
+ button: {
124
+ padding: '10px 20px',
125
+ background: '#0077cc',
126
+ color: 'white',
127
+ border: 'none',
128
+ borderRadius: '4px',
129
+ cursor: 'pointer',
130
+ fontSize: '16px',
131
+ },
132
+ input: {
133
+ padding: '10px',
134
+ fontSize: '16px',
135
+ borderRadius: '4px',
136
+ border: '1px solid #ddd',
137
+ width: '60px',
138
+ textAlign: 'center',
139
+ },
140
+ loader: {
141
+ padding: '40px',
142
+ fontSize: '18px',
143
+ },
144
+ error: {
145
+ padding: '16px',
146
+ background: '#ffebee',
147
+ color: '#c62828',
148
+ borderRadius: '4px',
149
+ margin: '20px 0',
150
+ },
151
+ };
152
+ // Форма ввода ID
153
+ function IdInput() {
154
+ const [inputId, setInputId] = useState('');
155
+ const handleSubmit = (e) => {
156
+ e.preventDefault();
157
+ const id = parseInt(inputId, 10);
158
+ if (!isNaN(id)) {
159
+ handleLoadById(id);
160
+ }
161
+ };
162
+ return (_jsxs("form", { onSubmit: handleSubmit, style: { marginTop: '20px' }, children: [_jsxs("label", { children: ["Go to Pok\u00E9mon #:", _jsx("input", { type: "number", min: "1", max: "151", value: inputId, onChange: (e) => setInputId(e.target.value), style: styles.input })] }), _jsx("button", { type: "submit", style: { ...styles.button, marginLeft: '10px' }, children: "Go" })] }));
163
+ }
164
+ return (_jsxs("div", { style: styles.container, children: [_jsx("h1", { style: styles.title, children: "Pok\u00E9mon Viewer" }), _jsxs("div", { style: styles.controls, children: [_jsx("button", { style: styles.button, onClick: handlePrev, children: "Previous" }), _jsxs("div", { children: ["Pok\u00E9mon #", state.currentId] }), _jsx("button", { style: styles.button, onClick: handleNext, children: "Next" })] }), state.error && (_jsx("div", { style: styles.error, children: _jsxs("p", { children: ["Error:", state.error] }) })), state.loading ? (_jsx("div", { style: styles.loader, children: _jsx("p", { children: "Loading Pok\u00E9mon..." }) })) : state.currentPokemon ? (_jsxs("div", { style: styles.card, children: [_jsx("img", { src: state.currentPokemon.sprites.other?.['official-artwork']?.front_default || state.currentPokemon.sprites.front_default, alt: state.currentPokemon.name, style: styles.pokemonImage }), _jsx("h2", { style: styles.pokemonName, children: state.currentPokemon.name }), _jsx("div", { children: state.currentPokemon.types.map(({ type }) => (_jsx("span", { style: styles.typeBadge, children: type.name }, type.name))) }), _jsxs("div", { style: styles.stats, children: [_jsxs("p", { children: [_jsx("strong", { children: "Height:" }), ' ', state.currentPokemon.height / 10, ' ', "m"] }), _jsxs("p", { children: [_jsx("strong", { children: "Weight:" }), ' ', state.currentPokemon.weight / 10, ' ', "kg"] })] })] })) : null, _jsx(IdInput, {})] }));
165
+ }
166
+ //# sourceMappingURL=PokemonList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PokemonList.js","sourceRoot":"","sources":["../../../src/_examples/pokemons/PokemonList.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface PokemonSearchParams {
2
+ limit?: number;
3
+ offset?: number;
4
+ }
5
+ export declare const api: any;
6
+ export declare const pokemonApi: any;
7
+ export declare const pokemonEndpoints: any;
8
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/_examples/pokemons/api.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,GAAG,KAoCd,CAAA;AAEF,eAAO,MAAM,UAAU,KAAmB,CAAA;AAK1C,eAAO,MAAM,gBAAgB,KAA4B,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { ApiClient, ResponseFormat } from 'synapse/api';
2
+ export const api = new ApiClient({
3
+ storageType: 'indexedDB',
4
+ storageOptions: {
5
+ name: 'pokemon-api-storage',
6
+ dbName: 'pokemon-api-cache',
7
+ storeName: 'requests',
8
+ dbVersion: 1,
9
+ },
10
+ // Или boolean или объект с настройками
11
+ cache: {
12
+ // Время жизни кэша в миллисекундах
13
+ ttl: 5 * 60 * 1000, // 5 минут
14
+ // Инвалидировать кэш при ошибке
15
+ invalidateOnError: true,
16
+ cleanup: {
17
+ // Включить периодическую очистку
18
+ enabled: true,
19
+ // Интервал очистки в миллисекундах
20
+ interval: 10 * 60 * 1000, // 10 минут
21
+ },
22
+ },
23
+ baseQuery: {
24
+ baseUrl: 'https://pokeapi.co/api/v2',
25
+ timeout: 10000,
26
+ credentials: 'same-origin',
27
+ },
28
+ endpoints: async (create) => ({
29
+ fetchPokemonById: create({
30
+ request: (params) => ({
31
+ path: `/pokemon/${params.id}`,
32
+ method: 'GET',
33
+ responseFormat: ResponseFormat.Json,
34
+ }),
35
+ tags: ['pokemon-details'],
36
+ }),
37
+ }),
38
+ });
39
+ // Инициализация
40
+ export const pokemonApi = await api.init();
41
+ // Демонтирование
42
+ // await pokemonApi.destroy()
43
+ // Получение эндпоинтов
44
+ export const pokemonEndpoints = pokemonApi.getEndpoints();
45
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/_examples/pokemons/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAQvD,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC;IAC/B,WAAW,EAAE,WAAW;IACxB,cAAc,EAAE;QACd,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,mBAAmB;QAC3B,SAAS,EAAE,UAAU;QACrB,SAAS,EAAE,CAAC;KACb;IACD,uCAAuC;IACvC,KAAK,EAAE;QACL,mCAAmC;QACnC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,UAAU;QAC9B,iCAAiC;QACjC,iBAAiB,EAAE,IAAI;QACvB,OAAO,EAAE;YACP,iCAAiC;YACjC,OAAO,EAAE,IAAI;YACb,mCAAmC;YACnC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,WAAW;SACtC;KACF;IACD,SAAS,EAAE;QACT,OAAO,EAAE,2BAA2B;QACpC,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,aAAa;KAC3B;IACD,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5B,gBAAgB,EAAE,MAAM,CAA0B;YAChD,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACpB,IAAI,EAAE,YAAY,MAAM,CAAC,EAAE,EAAE;gBAC7B,MAAM,EAAE,KAAK;gBACb,cAAc,EAAE,cAAc,CAAC,IAAI;aACpC,CAAC;YACF,IAAI,EAAE,CAAC,iBAAiB,CAAC;SAC1B,CAAC;KACH,CAAC;CACH,CAAC,CAAA;AACF,gBAAgB;AAChB,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;AAC1C,iBAAiB;AACjB,6BAA6B;AAE7B,uBAAuB;AACvB,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC,YAAY,EAAE,CAAA"}
@@ -0,0 +1,15 @@
1
+ export interface AppConfig {
2
+ apiBaseUrl: string;
3
+ apiKey: string;
4
+ requestTimeoutMs: number;
5
+ features: {
6
+ enableNotifications: boolean;
7
+ enableCache: boolean;
8
+ };
9
+ themeSettings: {
10
+ primaryColor: string;
11
+ secondaryColor: string;
12
+ };
13
+ }
14
+ export declare const appConfig: AppConfig;
15
+ //# sourceMappingURL=app.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.config.d.ts","sourceRoot":"","sources":["../../../src/_examples/pokemons/app.config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE;QACR,mBAAmB,EAAE,OAAO,CAAA;QAC5B,WAAW,EAAE,OAAO,CAAA;KACrB,CAAA;IACD,aAAa,EAAE;QACb,YAAY,EAAE,MAAM,CAAA;QACpB,cAAc,EAAE,MAAM,CAAA;KACvB,CAAA;CACF;AAED,eAAO,MAAM,SAAS,EAAE,SAYvB,CAAA"}
@@ -0,0 +1,15 @@
1
+ // Просто условный объект с конфигурацией, которую можно использовать в эффектах
2
+ export const appConfig = {
3
+ apiBaseUrl: 'https://pokeapi.co/api/v2',
4
+ apiKey: 'your-api-key-here',
5
+ requestTimeoutMs: 5000,
6
+ features: {
7
+ enableNotifications: true,
8
+ enableCache: true,
9
+ },
10
+ themeSettings: {
11
+ primaryColor: '#FF0000', // Pokemon Red!
12
+ secondaryColor: '#FFFFFF',
13
+ },
14
+ };
15
+ //# sourceMappingURL=app.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.config.js","sourceRoot":"","sources":["../../../src/_examples/pokemons/app.config.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAiBhF,MAAM,CAAC,MAAM,SAAS,GAAc;IAClC,UAAU,EAAE,2BAA2B;IACvC,MAAM,EAAE,mBAAmB;IAC3B,gBAAgB,EAAE,IAAI;IACtB,QAAQ,EAAE;QACR,mBAAmB,EAAE,IAAI;QACzB,WAAW,EAAE,IAAI;KAClB;IACD,aAAa,EAAE;QACb,YAAY,EAAE,SAAS,EAAE,eAAe;QACxC,cAAc,EAAE,SAAS;KAC1B;CACF,CAAA"}