synapse-storage 3.0.19 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/README.md +661 -104
  2. package/dist/_utils/chunk.util.d.ts +8 -0
  3. package/dist/_utils/chunk.util.d.ts.map +1 -0
  4. package/dist/_utils/chunk.util.js +21 -0
  5. package/dist/_utils/chunk.util.js.map +1 -0
  6. package/dist/_utils/deepMerge.util.d.ts +2 -0
  7. package/dist/_utils/deepMerge.util.d.ts.map +1 -0
  8. package/dist/_utils/deepMerge.util.js +19 -0
  9. package/dist/_utils/deepMerge.util.js.map +1 -0
  10. package/dist/_utils/error-handling.util.d.ts +50 -0
  11. package/dist/_utils/error-handling.util.d.ts.map +1 -0
  12. package/dist/_utils/error-handling.util.js +67 -0
  13. package/dist/_utils/error-handling.util.js.map +1 -0
  14. package/dist/_utils/flatMap.util.d.ts +10 -0
  15. package/dist/_utils/flatMap.util.d.ts.map +1 -0
  16. package/dist/_utils/flatMap.util.js +23 -0
  17. package/dist/_utils/flatMap.util.js.map +1 -0
  18. package/dist/_utils/index.d.ts +6 -0
  19. package/dist/_utils/index.d.ts.map +1 -0
  20. package/dist/_utils/index.js +13 -0
  21. package/dist/_utils/index.js.map +1 -0
  22. package/dist/_utils/logger-console.util.d.ts +9 -0
  23. package/dist/_utils/logger-console.util.d.ts.map +1 -0
  24. package/dist/_utils/logger-console.util.js +14 -0
  25. package/dist/_utils/logger-console.util.js.map +1 -0
  26. package/dist/api/api.module.d.ts +46 -0
  27. package/dist/api/api.module.d.ts.map +1 -0
  28. package/dist/api/api.module.js +121 -0
  29. package/dist/api/api.module.js.map +1 -0
  30. package/dist/api/components/endpoint.d.ts +57 -0
  31. package/dist/api/components/endpoint.d.ts.map +1 -0
  32. package/dist/api/components/endpoint.js +385 -0
  33. package/dist/api/components/endpoint.js.map +1 -0
  34. package/dist/api/components/query-storage.d.ts +100 -0
  35. package/dist/api/components/query-storage.d.ts.map +1 -0
  36. package/dist/api/components/query-storage.js +293 -0
  37. package/dist/api/components/query-storage.js.map +1 -0
  38. package/dist/api/example.d.ts +83 -0
  39. package/dist/api/example.d.ts.map +1 -0
  40. package/dist/api/example.js +90 -0
  41. package/dist/api/example.js.map +1 -0
  42. package/dist/api/index.d.ts +4 -0
  43. package/dist/api/index.d.ts.map +1 -0
  44. package/dist/api/index.js +11 -0
  45. package/dist/api/index.js.map +1 -0
  46. package/dist/api/types/api.interface.d.ts +126 -0
  47. package/dist/api/types/api.interface.d.ts.map +1 -0
  48. package/dist/api/types/api.interface.js +15 -0
  49. package/dist/api/types/api.interface.js.map +1 -0
  50. package/dist/api/types/endpoint.interface.d.ts +118 -0
  51. package/dist/api/types/endpoint.interface.d.ts.map +1 -0
  52. package/dist/api/types/endpoint.interface.js +6 -0
  53. package/dist/api/types/endpoint.interface.js.map +1 -0
  54. package/dist/api/types/query.interface.d.ts +85 -0
  55. package/dist/api/types/query.interface.d.ts.map +1 -0
  56. package/dist/api/types/query.interface.js +6 -0
  57. package/dist/api/types/query.interface.js.map +1 -0
  58. package/dist/api/utils/api-helpers.d.ts +22 -0
  59. package/dist/api/utils/api-helpers.d.ts.map +1 -0
  60. package/dist/api/utils/api-helpers.js +44 -0
  61. package/dist/api/utils/api-helpers.js.map +1 -0
  62. package/dist/api/utils/create-header-context.d.ts +10 -0
  63. package/dist/api/utils/create-header-context.d.ts.map +1 -0
  64. package/dist/api/utils/create-header-context.js +40 -0
  65. package/dist/api/utils/create-header-context.js.map +1 -0
  66. package/dist/api/utils/endpoint-headers.d.ts +23 -0
  67. package/dist/api/utils/endpoint-headers.d.ts.map +1 -0
  68. package/dist/api/utils/endpoint-headers.js +61 -0
  69. package/dist/api/utils/endpoint-headers.js.map +1 -0
  70. package/dist/api/utils/fetch-base-query.d.ts +9 -0
  71. package/dist/api/utils/fetch-base-query.d.ts.map +1 -0
  72. package/dist/api/utils/fetch-base-query.js +242 -0
  73. package/dist/api/utils/fetch-base-query.js.map +1 -0
  74. package/dist/api/utils/file-utils.d.ts +43 -0
  75. package/dist/api/utils/file-utils.d.ts.map +1 -0
  76. package/dist/api/utils/file-utils.js +102 -0
  77. package/dist/api/utils/file-utils.js.map +1 -0
  78. package/dist/api/utils/get-cacheable-headers.d.ts +8 -0
  79. package/dist/api/utils/get-cacheable-headers.d.ts.map +1 -0
  80. package/dist/api/utils/get-cacheable-headers.js +23 -0
  81. package/dist/api/utils/get-cacheable-headers.js.map +1 -0
  82. package/dist/core/index.d.ts +3 -0
  83. package/dist/core/index.d.ts.map +1 -0
  84. package/dist/core/index.js +7 -0
  85. package/dist/core/index.js.map +1 -0
  86. package/dist/core/selector/index.d.ts +3 -0
  87. package/dist/core/selector/index.d.ts.map +1 -0
  88. package/dist/core/selector/index.js +5 -0
  89. package/dist/core/selector/index.js.map +1 -0
  90. package/dist/{selector.interface-CA5y-kD_.d.ts → core/selector/selector.interface.d.ts} +41 -8
  91. package/dist/core/selector/selector.interface.d.ts.map +1 -0
  92. package/dist/core/selector/selector.interface.js +7 -0
  93. package/dist/core/selector/selector.interface.js.map +1 -0
  94. package/dist/core/selector/selector.module.d.ts +36 -0
  95. package/dist/core/selector/selector.module.d.ts.map +1 -0
  96. package/dist/core/selector/selector.module.js +412 -0
  97. package/dist/core/selector/selector.module.js.map +1 -0
  98. package/dist/core/storage/adapters/async-base-storage.service.d.ts +49 -0
  99. package/dist/core/storage/adapters/async-base-storage.service.d.ts.map +1 -0
  100. package/dist/core/storage/adapters/async-base-storage.service.js +505 -0
  101. package/dist/core/storage/adapters/async-base-storage.service.js.map +1 -0
  102. package/dist/core/storage/adapters/indexed-DB.service.d.ts +89 -0
  103. package/dist/core/storage/adapters/indexed-DB.service.d.ts.map +1 -0
  104. package/dist/core/storage/adapters/indexed-DB.service.js +596 -0
  105. package/dist/core/storage/adapters/indexed-DB.service.js.map +1 -0
  106. package/dist/core/storage/adapters/local-storage.service.d.ts +23 -0
  107. package/dist/core/storage/adapters/local-storage.service.d.ts.map +1 -0
  108. package/dist/core/storage/adapters/local-storage.service.js +111 -0
  109. package/dist/core/storage/adapters/local-storage.service.js.map +1 -0
  110. package/dist/core/storage/adapters/memory-storage.service.d.ts +24 -0
  111. package/dist/core/storage/adapters/memory-storage.service.d.ts.map +1 -0
  112. package/dist/core/storage/adapters/memory-storage.service.js +110 -0
  113. package/dist/core/storage/adapters/memory-storage.service.js.map +1 -0
  114. package/dist/core/storage/adapters/path.utils.d.ts +5 -0
  115. package/dist/core/storage/adapters/path.utils.d.ts.map +1 -0
  116. package/dist/core/storage/adapters/path.utils.js +42 -0
  117. package/dist/core/storage/adapters/path.utils.js.map +1 -0
  118. package/dist/core/storage/adapters/storage-core.d.ts +61 -0
  119. package/dist/core/storage/adapters/storage-core.d.ts.map +1 -0
  120. package/dist/core/storage/adapters/storage-core.js +221 -0
  121. package/dist/core/storage/adapters/storage-core.js.map +1 -0
  122. package/dist/core/storage/adapters/sync-base-storage.service.d.ts +56 -0
  123. package/dist/core/storage/adapters/sync-base-storage.service.d.ts.map +1 -0
  124. package/dist/core/storage/adapters/sync-base-storage.service.js +481 -0
  125. package/dist/core/storage/adapters/sync-base-storage.service.js.map +1 -0
  126. package/dist/core/storage/index.d.ts +16 -0
  127. package/dist/core/storage/index.d.ts.map +1 -0
  128. package/dist/core/storage/index.js +38 -0
  129. package/dist/core/storage/index.js.map +1 -0
  130. package/dist/core/storage/middlewares/broadcast.middleware.d.ts +9 -0
  131. package/dist/core/storage/middlewares/broadcast.middleware.d.ts.map +1 -0
  132. package/dist/core/storage/middlewares/broadcast.middleware.js +197 -0
  133. package/dist/core/storage/middlewares/broadcast.middleware.js.map +1 -0
  134. package/dist/core/storage/middlewares/index.d.ts +9 -0
  135. package/dist/core/storage/middlewares/index.d.ts.map +1 -0
  136. package/dist/core/storage/middlewares/index.js +17 -0
  137. package/dist/core/storage/middlewares/index.js.map +1 -0
  138. package/dist/core/storage/middlewares/storage-batching.middleware.d.ts +7 -0
  139. package/dist/core/storage/middlewares/storage-batching.middleware.d.ts.map +1 -0
  140. package/dist/core/storage/middlewares/storage-batching.middleware.js +108 -0
  141. package/dist/core/storage/middlewares/storage-batching.middleware.js.map +1 -0
  142. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.d.ts +7 -0
  143. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.d.ts.map +1 -0
  144. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.js +43 -0
  145. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.js.map +1 -0
  146. package/dist/core/storage/middlewares/sync-broadcast.middleware.d.ts +9 -0
  147. package/dist/core/storage/middlewares/sync-broadcast.middleware.d.ts.map +1 -0
  148. package/dist/core/storage/middlewares/sync-broadcast.middleware.js +177 -0
  149. package/dist/core/storage/middlewares/sync-broadcast.middleware.js.map +1 -0
  150. package/dist/core/storage/middlewares/sync-storage-batching.middleware.d.ts +6 -0
  151. package/dist/core/storage/middlewares/sync-storage-batching.middleware.d.ts.map +1 -0
  152. package/dist/core/storage/middlewares/sync-storage-batching.middleware.js +56 -0
  153. package/dist/core/storage/middlewares/sync-storage-batching.middleware.js.map +1 -0
  154. package/dist/core/storage/middlewares/sync-storage-shallow-compare.middleware.d.ts +7 -0
  155. package/dist/core/storage/middlewares/sync-storage-shallow-compare.middleware.d.ts.map +1 -0
  156. package/dist/core/storage/middlewares/sync-storage-shallow-compare.middleware.js +39 -0
  157. package/dist/core/storage/middlewares/sync-storage-shallow-compare.middleware.js.map +1 -0
  158. package/dist/core/storage/modules/plugin/plugin.interface.d.ts +101 -0
  159. package/dist/core/storage/modules/plugin/plugin.interface.d.ts.map +1 -0
  160. package/dist/core/storage/modules/plugin/plugin.interface.js +8 -0
  161. package/dist/core/storage/modules/plugin/plugin.interface.js.map +1 -0
  162. package/dist/core/storage/modules/plugin/plugin.service.d.ts +49 -0
  163. package/dist/core/storage/modules/plugin/plugin.service.d.ts.map +1 -0
  164. package/dist/core/storage/modules/plugin/plugin.service.js +406 -0
  165. package/dist/core/storage/modules/plugin/plugin.service.js.map +1 -0
  166. package/dist/core/storage/modules/singleton/mixin.util.d.ts +6 -0
  167. package/dist/core/storage/modules/singleton/mixin.util.d.ts.map +1 -0
  168. package/dist/core/storage/modules/singleton/mixin.util.js +30 -0
  169. package/dist/core/storage/modules/singleton/mixin.util.js.map +1 -0
  170. package/dist/core/storage/modules/singleton/models.d.ts +143 -0
  171. package/dist/core/storage/modules/singleton/models.d.ts.map +1 -0
  172. package/dist/core/storage/modules/singleton/models.js +60 -0
  173. package/dist/core/storage/modules/singleton/models.js.map +1 -0
  174. package/dist/core/storage/modules/singleton/singleton.util.d.ts +36 -0
  175. package/dist/core/storage/modules/singleton/singleton.util.d.ts.map +1 -0
  176. package/dist/core/storage/modules/singleton/singleton.util.js +216 -0
  177. package/dist/core/storage/modules/singleton/singleton.util.js.map +1 -0
  178. package/dist/core/storage/storage.interface.d.ts +168 -0
  179. package/dist/core/storage/storage.interface.d.ts.map +1 -0
  180. package/dist/core/storage/storage.interface.js +23 -0
  181. package/dist/core/storage/storage.interface.js.map +1 -0
  182. package/dist/core/storage/utils/broadcast.util.d.ts +49 -0
  183. package/dist/core/storage/utils/broadcast.util.d.ts.map +1 -0
  184. package/dist/core/storage/utils/broadcast.util.js +141 -0
  185. package/dist/core/storage/utils/broadcast.util.js.map +1 -0
  186. package/dist/core/storage/utils/cache.util.d.ts +33 -0
  187. package/dist/core/storage/utils/cache.util.d.ts.map +1 -0
  188. package/dist/core/storage/utils/cache.util.js +54 -0
  189. package/dist/core/storage/utils/cache.util.js.map +1 -0
  190. package/dist/core/storage/utils/middleware-module.d.ts +94 -0
  191. package/dist/core/storage/utils/middleware-module.d.ts.map +1 -0
  192. package/dist/core/storage/utils/middleware-module.js +258 -0
  193. package/dist/core/storage/utils/middleware-module.js.map +1 -0
  194. package/dist/core/storage/utils/path-selector.util.d.ts +15 -0
  195. package/dist/core/storage/utils/path-selector.util.d.ts.map +1 -0
  196. package/dist/core/storage/utils/path-selector.util.js +58 -0
  197. package/dist/core/storage/utils/path-selector.util.js.map +1 -0
  198. package/dist/core/storage/utils/state-diff.util.d.ts +14 -0
  199. package/dist/core/storage/utils/state-diff.util.d.ts.map +1 -0
  200. package/dist/core/storage/utils/state-diff.util.js +88 -0
  201. package/dist/core/storage/utils/state-diff.util.js.map +1 -0
  202. package/dist/core/storage/utils/storage-factory.util.d.ts +21 -0
  203. package/dist/core/storage/utils/storage-factory.util.d.ts.map +1 -0
  204. package/dist/core/storage/utils/storage-factory.util.js +40 -0
  205. package/dist/core/storage/utils/storage-factory.util.js.map +1 -0
  206. package/dist/core/storage/utils/storage-key.d.ts +11 -0
  207. package/dist/core/storage/utils/storage-key.d.ts.map +1 -0
  208. package/dist/core/storage/utils/storage-key.js +24 -0
  209. package/dist/core/storage/utils/storage-key.js.map +1 -0
  210. package/dist/core/storage/utils/storage.utils.d.ts +17 -0
  211. package/dist/core/storage/utils/storage.utils.d.ts.map +1 -0
  212. package/dist/core/storage/utils/storage.utils.js +57 -0
  213. package/dist/core/storage/utils/storage.utils.js.map +1 -0
  214. package/dist/index.d.ts +10 -12
  215. package/dist/index.d.ts.map +1 -0
  216. package/dist/index.js +17 -1
  217. package/dist/index.js.map +1 -0
  218. package/dist/react/hooks/index.d.ts +5 -0
  219. package/dist/react/hooks/index.d.ts.map +1 -0
  220. package/dist/react/hooks/index.js +11 -0
  221. package/dist/react/hooks/index.js.map +1 -0
  222. package/dist/react/hooks/useCreateStorage.d.ts +39 -0
  223. package/dist/react/hooks/useCreateStorage.d.ts.map +1 -0
  224. package/dist/react/hooks/useCreateStorage.js +137 -0
  225. package/dist/react/hooks/useCreateStorage.js.map +1 -0
  226. package/dist/react/hooks/useSelector.d.ts +21 -0
  227. package/dist/react/hooks/useSelector.d.ts.map +1 -0
  228. package/dist/react/hooks/useSelector.js +56 -0
  229. package/dist/react/hooks/useSelector.js.map +1 -0
  230. package/dist/react/hooks/useStorage.d.ts +39 -0
  231. package/dist/react/hooks/useStorage.d.ts.map +1 -0
  232. package/dist/react/hooks/useStorage.js +78 -0
  233. package/dist/react/hooks/useStorage.js.map +1 -0
  234. package/dist/react/hooks/useStorageSubscribe.d.ts +16 -0
  235. package/dist/react/hooks/useStorageSubscribe.d.ts.map +1 -0
  236. package/dist/react/hooks/useStorageSubscribe.js +55 -0
  237. package/dist/react/hooks/useStorageSubscribe.js.map +1 -0
  238. package/dist/react/index.d.ts +3 -0
  239. package/dist/react/index.d.ts.map +1 -0
  240. package/dist/react/index.js +7 -0
  241. package/dist/react/index.js.map +1 -0
  242. package/dist/react/utils/awaitSynapse.d.ts +34 -0
  243. package/dist/react/utils/awaitSynapse.d.ts.map +1 -0
  244. package/dist/react/utils/awaitSynapse.js +87 -0
  245. package/dist/react/utils/awaitSynapse.js.map +1 -0
  246. package/dist/react/utils/createSynapseCtx.d.ts +33 -0
  247. package/dist/react/utils/createSynapseCtx.d.ts.map +1 -0
  248. package/dist/react/utils/createSynapseCtx.js +139 -0
  249. package/dist/react/utils/createSynapseCtx.js.map +1 -0
  250. package/dist/react/utils/index.d.ts +3 -0
  251. package/dist/react/utils/index.d.ts.map +1 -0
  252. package/dist/react/utils/index.js +9 -0
  253. package/dist/react/utils/index.js.map +1 -0
  254. package/dist/reactive/dispatcher/dispatcher.module.d.ts +216 -0
  255. package/dist/reactive/dispatcher/dispatcher.module.d.ts.map +1 -0
  256. package/dist/reactive/dispatcher/dispatcher.module.js +384 -0
  257. package/dist/reactive/dispatcher/dispatcher.module.js.map +1 -0
  258. package/dist/reactive/dispatcher/index.d.ts +4 -0
  259. package/dist/reactive/dispatcher/index.d.ts.map +1 -0
  260. package/dist/reactive/dispatcher/index.js +9 -0
  261. package/dist/reactive/dispatcher/index.js.map +1 -0
  262. package/dist/reactive/dispatcher/middlewares/index.d.ts +2 -0
  263. package/dist/reactive/dispatcher/middlewares/index.d.ts.map +1 -0
  264. package/dist/reactive/dispatcher/middlewares/index.js +5 -0
  265. package/dist/reactive/dispatcher/middlewares/index.js.map +1 -0
  266. package/dist/reactive/dispatcher/middlewares/logger.middleware.d.ts +37 -0
  267. package/dist/reactive/dispatcher/middlewares/logger.middleware.d.ts.map +1 -0
  268. package/dist/reactive/dispatcher/middlewares/logger.middleware.js +188 -0
  269. package/dist/reactive/dispatcher/middlewares/logger.middleware.js.map +1 -0
  270. package/dist/reactive/dispatcher/standalone.d.ts +112 -0
  271. package/dist/reactive/dispatcher/standalone.d.ts.map +1 -0
  272. package/dist/reactive/dispatcher/standalone.js +142 -0
  273. package/dist/reactive/dispatcher/standalone.js.map +1 -0
  274. package/dist/reactive/effects/effects.module.d.ts +225 -0
  275. package/dist/reactive/effects/effects.module.d.ts.map +1 -0
  276. package/dist/reactive/effects/effects.module.js +356 -0
  277. package/dist/reactive/effects/effects.module.js.map +1 -0
  278. package/dist/reactive/effects/index.d.ts +4 -0
  279. package/dist/reactive/effects/index.d.ts.map +1 -0
  280. package/dist/reactive/effects/index.js +11 -0
  281. package/dist/reactive/effects/index.js.map +1 -0
  282. package/dist/reactive/effects/utils/chunkRequestConsistent.d.ts +12 -0
  283. package/dist/reactive/effects/utils/chunkRequestConsistent.d.ts.map +1 -0
  284. package/dist/reactive/effects/utils/chunkRequestConsistent.js +25 -0
  285. package/dist/reactive/effects/utils/chunkRequestConsistent.js.map +1 -0
  286. package/dist/reactive/effects/utils/chunkRequestParallel.d.ts +12 -0
  287. package/dist/reactive/effects/utils/chunkRequestParallel.d.ts.map +1 -0
  288. package/dist/reactive/effects/utils/chunkRequestParallel.js +22 -0
  289. package/dist/reactive/effects/utils/chunkRequestParallel.js.map +1 -0
  290. package/dist/reactive/effects/utils/fromRequest.d.ts +40 -0
  291. package/dist/reactive/effects/utils/fromRequest.d.ts.map +1 -0
  292. package/dist/reactive/effects/utils/fromRequest.js +64 -0
  293. package/dist/reactive/effects/utils/fromRequest.js.map +1 -0
  294. package/dist/reactive/effects/utils/index.d.ts +5 -0
  295. package/dist/reactive/effects/utils/index.d.ts.map +1 -0
  296. package/dist/reactive/effects/utils/index.js +11 -0
  297. package/dist/reactive/effects/utils/index.js.map +1 -0
  298. package/dist/reactive/effects/utils/toObservable.d.ts +23 -0
  299. package/dist/reactive/effects/utils/toObservable.d.ts.map +1 -0
  300. package/dist/reactive/effects/utils/toObservable.js +39 -0
  301. package/dist/reactive/effects/utils/toObservable.js.map +1 -0
  302. package/dist/reactive/index.d.ts +3 -0
  303. package/dist/reactive/index.d.ts.map +1 -0
  304. package/dist/reactive/index.js +7 -0
  305. package/dist/reactive/index.js.map +1 -0
  306. package/dist/utils/createEventBus.d.ts +87 -0
  307. package/dist/utils/createEventBus.d.ts.map +1 -0
  308. package/dist/utils/createEventBus.js +215 -0
  309. package/dist/utils/createEventBus.js.map +1 -0
  310. package/dist/utils/createSynapse/createSynapse.d.ts +9 -0
  311. package/dist/utils/createSynapse/createSynapse.d.ts.map +1 -0
  312. package/dist/utils/createSynapse/createSynapse.js +103 -0
  313. package/dist/utils/createSynapse/createSynapse.js.map +1 -0
  314. package/dist/utils/createSynapse/index.d.ts +3 -0
  315. package/dist/utils/createSynapse/index.d.ts.map +1 -0
  316. package/dist/utils/createSynapse/index.js +6 -0
  317. package/dist/utils/createSynapse/index.js.map +1 -0
  318. package/dist/utils/createSynapse/types.d.ts +93 -0
  319. package/dist/utils/createSynapse/types.d.ts.map +1 -0
  320. package/dist/utils/createSynapse/types.js +6 -0
  321. package/dist/utils/createSynapse/types.js.map +1 -0
  322. package/dist/utils/createSynapse/validate.d.ts +2 -0
  323. package/dist/utils/createSynapse/validate.d.ts.map +1 -0
  324. package/dist/utils/createSynapse/validate.js +76 -0
  325. package/dist/utils/createSynapse/validate.js.map +1 -0
  326. package/dist/utils/createSynapse/waitForDependencies.d.ts +3 -0
  327. package/dist/utils/createSynapse/waitForDependencies.d.ts.map +1 -0
  328. package/dist/utils/createSynapse/waitForDependencies.js +40 -0
  329. package/dist/utils/createSynapse/waitForDependencies.js.map +1 -0
  330. package/dist/utils/createSynapseAwaiter.d.ts +46 -0
  331. package/dist/utils/createSynapseAwaiter.d.ts.map +1 -0
  332. package/dist/utils/createSynapseAwaiter.js +102 -0
  333. package/dist/utils/createSynapseAwaiter.js.map +1 -0
  334. package/dist/utils/index.d.ts +4 -0
  335. package/dist/utils/index.d.ts.map +1 -0
  336. package/dist/utils/index.js +12 -0
  337. package/dist/utils/index.js.map +1 -0
  338. package/package.json +17 -21
  339. package/dist/api.d.ts +0 -365
  340. package/dist/api.js +0 -1
  341. package/dist/core.d.ts +0 -106
  342. package/dist/core.js +0 -1
  343. package/dist/createSynapse-vkfKjRob.d.ts +0 -97
  344. package/dist/dispatcher.module-BOsMHbD5.d.ts +0 -360
  345. package/dist/react.d.ts +0 -119
  346. package/dist/react.js +0 -1
  347. package/dist/reactive.d.ts +0 -35
  348. package/dist/reactive.js +0 -1
  349. package/dist/storage.interface-BA_ktyDz.d.ts +0 -591
  350. package/dist/utils.d.ts +0 -139
  351. package/dist/utils.js +0 -1
@@ -0,0 +1,49 @@
1
+ interface BroadcastMessage<T = unknown> {
2
+ type: string;
3
+ payload?: T;
4
+ senderId: string;
5
+ targetId?: string;
6
+ timestamp: number;
7
+ }
8
+ type MessageHandler<T> = (message: BroadcastMessage<T>) => void | Promise<void>;
9
+ type SyncRequestHandler<T> = () => T | Promise<T>;
10
+ interface SyncBroadcastChannelOptions {
11
+ debug?: boolean;
12
+ }
13
+ export declare class SyncBroadcastChannel<T = unknown> {
14
+ private channel;
15
+ private readonly tabId;
16
+ private messageHandlers;
17
+ private syncHandler?;
18
+ private debug;
19
+ private syncTimeoutMs;
20
+ private pendingSyncRequests;
21
+ constructor(channelName: string, options?: SyncBroadcastChannelOptions);
22
+ private log;
23
+ private error;
24
+ private handleMessage;
25
+ private handleError;
26
+ private postMessage;
27
+ /**
28
+ * Подписка на сообщения канала
29
+ */
30
+ subscribe(handler: MessageHandler<T>): () => boolean;
31
+ /**
32
+ * Установка обработчика запросов на синхронизацию
33
+ */
34
+ setSyncHandler(handler: SyncRequestHandler<T>): void;
35
+ /**
36
+ * Отправка сообщения всем подписчикам
37
+ */
38
+ broadcast(type: string, payload?: T): void;
39
+ /**
40
+ * Запрос синхронизации данных с других вкладок
41
+ */
42
+ requestSync(): Promise<T | null>;
43
+ /**
44
+ * Закрытие канала
45
+ */
46
+ close(): void;
47
+ }
48
+ export {};
49
+ //# sourceMappingURL=broadcast.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broadcast.util.d.ts","sourceRoot":"","sources":["../../../../src/core/storage/utils/broadcast.util.ts"],"names":[],"mappings":"AAEA,UAAU,gBAAgB,CAAC,CAAC,GAAG,OAAO;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,CAAC,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAC/E,KAAK,kBAAkB,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAEjD,UAAU,2BAA2B;IACnC,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,qBAAa,oBAAoB,CAAC,CAAC,GAAG,OAAO;IAC3C,OAAO,CAAC,OAAO,CAAkB;IAEjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAE9B,OAAO,CAAC,eAAe,CAAwB;IAE/C,OAAO,CAAC,WAAW,CAAC,CAAuB;IAE3C,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,aAAa,CAAO;IAE5B,OAAO,CAAC,mBAAmB,CAO1B;gBAEW,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,2BAAgC;IAW1E,OAAO,CAAC,GAAG;IAMX,OAAO,CAAC,KAAK;YAIC,aAAa;IA+C3B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,WAAW;IAenB;;OAEG;IACI,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IAK3C;;OAEG;IACI,cAAc,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAIpD;;OAEG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAK1C;;OAEG;IACU,WAAW,IAAI,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAa7C;;OAEG;IACI,KAAK;CAeb"}
@@ -0,0 +1,141 @@
1
+ import { loggerConsole } from "../../../_utils/logger-console.util.js";
2
+
3
+
4
+
5
+ class SyncBroadcastChannel {
6
+ channel;
7
+ tabId;
8
+ messageHandlers;
9
+ syncHandler;
10
+ debug;
11
+ syncTimeoutMs = 1000;
12
+ pendingSyncRequests;
13
+ constructor(channelName, options = {}){
14
+ this.channel = new BroadcastChannel(channelName);
15
+ this.tabId = crypto.randomUUID();
16
+ this.messageHandlers = new Set();
17
+ this.debug = options.debug ?? false;
18
+ this.pendingSyncRequests = new Map();
19
+ this.channel.onmessage = this.handleMessage.bind(this);
20
+ this.channel.onmessageerror = this.handleError.bind(this);
21
+ }
22
+ log(...args) {
23
+ if (this.debug) {
24
+ loggerConsole.log(`[SyncBroadcastChannel][${this.tabId}]`, ...args);
25
+ }
26
+ }
27
+ error(...args) {
28
+ loggerConsole.error(`[SyncBroadcastChannel][${this.tabId}]`, ...args);
29
+ }
30
+ async handleMessage(event) {
31
+ const message = event.data;
32
+ // Игнорируем собственные сообщения
33
+ if (message.senderId === this.tabId) {
34
+ return;
35
+ }
36
+ // Обработка запроса на синхронизацию
37
+ if (message.type === 'SYNC_REQUEST') {
38
+ if (this.syncHandler) {
39
+ try {
40
+ const state = await this.syncHandler();
41
+ this.postMessage('SYNC_RESPONSE', state, message.senderId);
42
+ } catch (error) {
43
+ this.error('Error handling sync request:', error);
44
+ }
45
+ }
46
+ return;
47
+ }
48
+ // Обработка ответа на запрос синхронизации
49
+ if (message.type === 'SYNC_RESPONSE') {
50
+ // Фильтруем по targetId — принимаем только ответы, адресованные этой вкладке
51
+ if (message.targetId && message.targetId !== this.tabId) {
52
+ return;
53
+ }
54
+ const request = this.pendingSyncRequests.get(this.tabId);
55
+ if (request) {
56
+ clearTimeout(request.timeout);
57
+ this.pendingSyncRequests.delete(this.tabId);
58
+ //@ts-ignore
59
+ request.resolve(message.payload);
60
+ }
61
+ return;
62
+ }
63
+ // Уведомляем всех подписчиков о сообщении
64
+ for (const handler of this.messageHandlers){
65
+ try {
66
+ await handler(message);
67
+ } catch (error) {
68
+ this.error('Error in message handler:', error);
69
+ }
70
+ }
71
+ }
72
+ handleError(event) {
73
+ this.error('Channel error:', event);
74
+ }
75
+ postMessage(type, payload, targetId) {
76
+ const message = {
77
+ type,
78
+ payload,
79
+ senderId: this.tabId,
80
+ timestamp: Date.now()
81
+ };
82
+ if (targetId) {
83
+ message.targetId = targetId;
84
+ }
85
+ this.channel.postMessage(message);
86
+ }
87
+ /**
88
+ * Подписка на сообщения канала
89
+ */ subscribe(handler) {
90
+ this.messageHandlers.add(handler);
91
+ return ()=>this.messageHandlers.delete(handler);
92
+ }
93
+ /**
94
+ * Установка обработчика запросов на синхронизацию
95
+ */ setSyncHandler(handler) {
96
+ this.syncHandler = handler;
97
+ }
98
+ /**
99
+ * Отправка сообщения всем подписчикам
100
+ */ broadcast(type, payload) {
101
+ //@ts-ignore
102
+ this.postMessage(type, payload);
103
+ }
104
+ /**
105
+ * Запрос синхронизации данных с других вкладок
106
+ */ async requestSync() {
107
+ return new Promise((resolve, reject)=>{
108
+ const timeout = setTimeout(()=>{
109
+ this.pendingSyncRequests.delete(this.tabId);
110
+ resolve(null);
111
+ }, this.syncTimeoutMs);
112
+ this.pendingSyncRequests.set(this.tabId, {
113
+ resolve,
114
+ reject,
115
+ timeout
116
+ });
117
+ this.postMessage('SYNC_REQUEST', {
118
+ type: 'sync'
119
+ });
120
+ });
121
+ }
122
+ /**
123
+ * Закрытие канала
124
+ */ close() {
125
+ // Очищаем все pending запросы
126
+ for (const [, request] of this.pendingSyncRequests){
127
+ clearTimeout(request.timeout);
128
+ request.reject(new Error('Channel closed'));
129
+ }
130
+ this.pendingSyncRequests.clear();
131
+ // Очищаем обработчики
132
+ this.messageHandlers.clear();
133
+ this.syncHandler = undefined;
134
+ // Закрываем канал
135
+ this.channel.close();
136
+ }
137
+ }
138
+
139
+ export { SyncBroadcastChannel };
140
+
141
+ //# sourceMappingURL=broadcast.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core/storage/utils/broadcast.util.js","sources":["../../../../src/core/storage/utils/broadcast.util.ts"],"sourcesContent":["import { loggerConsole } from '../../../_utils/logger-console.util'\n\ninterface BroadcastMessage<T = unknown> {\n type: string\n payload?: T\n senderId: string\n targetId?: string\n timestamp: number\n}\n\ntype MessageHandler<T> = (message: BroadcastMessage<T>) => void | Promise<void>\ntype SyncRequestHandler<T> = () => T | Promise<T>\n\ninterface SyncBroadcastChannelOptions {\n debug?: boolean\n}\n\nexport class SyncBroadcastChannel<T = unknown> {\n private channel: BroadcastChannel\n\n private readonly tabId: string\n\n private messageHandlers: Set<MessageHandler<T>>\n\n private syncHandler?: SyncRequestHandler<T>\n\n private debug: boolean\n\n private syncTimeoutMs = 1000\n\n private pendingSyncRequests: Map<\n string,\n {\n resolve: (value: T | null) => void\n reject: (reason?: any) => void\n timeout: NodeJS.Timeout\n }\n >\n\n constructor(channelName: string, options: SyncBroadcastChannelOptions = {}) {\n this.channel = new BroadcastChannel(channelName)\n this.tabId = crypto.randomUUID()\n this.messageHandlers = new Set()\n this.debug = options.debug ?? false\n this.pendingSyncRequests = new Map()\n\n this.channel.onmessage = this.handleMessage.bind(this)\n this.channel.onmessageerror = this.handleError.bind(this)\n }\n\n private log(...args: any[]) {\n if (this.debug) {\n loggerConsole.log(`[SyncBroadcastChannel][${this.tabId}]`, ...args)\n }\n }\n\n private error(...args: any[]) {\n loggerConsole.error(`[SyncBroadcastChannel][${this.tabId}]`, ...args)\n }\n\n private async handleMessage(event: MessageEvent<BroadcastMessage<T>>): Promise<void> {\n const message = event.data\n\n // Игнорируем собственные сообщения\n if (message.senderId === this.tabId) {\n return\n }\n\n // Обработка запроса на синхронизацию\n if (message.type === 'SYNC_REQUEST') {\n if (this.syncHandler) {\n try {\n const state = await this.syncHandler()\n this.postMessage('SYNC_RESPONSE', state, message.senderId)\n } catch (error) {\n this.error('Error handling sync request:', error)\n }\n }\n return\n }\n\n // Обработка ответа на запрос синхронизации\n if (message.type === 'SYNC_RESPONSE') {\n // Фильтруем по targetId — принимаем только ответы, адресованные этой вкладке\n if (message.targetId && message.targetId !== this.tabId) {\n return\n }\n const request = this.pendingSyncRequests.get(this.tabId)\n if (request) {\n clearTimeout(request.timeout)\n this.pendingSyncRequests.delete(this.tabId)\n //@ts-ignore\n request.resolve(message.payload)\n }\n return\n }\n\n // Уведомляем всех подписчиков о сообщении\n for (const handler of this.messageHandlers) {\n try {\n await handler(message)\n } catch (error) {\n this.error('Error in message handler:', error)\n }\n }\n }\n\n private handleError(event: MessageEvent) {\n this.error('Channel error:', event)\n }\n\n private postMessage(type: string, payload: T, targetId?: string): void {\n const message: BroadcastMessage<T> = {\n type,\n payload,\n senderId: this.tabId,\n timestamp: Date.now(),\n }\n\n if (targetId) {\n message.targetId = targetId\n }\n\n this.channel.postMessage(message)\n }\n\n /**\n * Подписка на сообщения канала\n */\n public subscribe(handler: MessageHandler<T>) {\n this.messageHandlers.add(handler)\n return () => this.messageHandlers.delete(handler)\n }\n\n /**\n * Установка обработчика запросов на синхронизацию\n */\n public setSyncHandler(handler: SyncRequestHandler<T>) {\n this.syncHandler = handler\n }\n\n /**\n * Отправка сообщения всем подписчикам\n */\n public broadcast(type: string, payload?: T) {\n //@ts-ignore\n this.postMessage(type, payload)\n }\n\n /**\n * Запрос синхронизации данных с других вкладок\n */\n public async requestSync(): Promise<T | null> {\n return new Promise((resolve, reject) => {\n const timeout = setTimeout(() => {\n this.pendingSyncRequests.delete(this.tabId)\n resolve(null)\n }, this.syncTimeoutMs)\n\n this.pendingSyncRequests.set(this.tabId, { resolve, reject, timeout })\n\n this.postMessage('SYNC_REQUEST', { type: 'sync' } as T)\n })\n }\n\n /**\n * Закрытие канала\n */\n public close() {\n // Очищаем все pending запросы\n for (const [, request] of this.pendingSyncRequests) {\n clearTimeout(request.timeout)\n request.reject(new Error('Channel closed'))\n }\n this.pendingSyncRequests.clear()\n\n // Очищаем обработчики\n this.messageHandlers.clear()\n this.syncHandler = undefined\n\n // Закрываем канал\n this.channel.close()\n }\n}\n"],"names":["loggerConsole","SyncBroadcastChannel","channelName","options","BroadcastChannel","crypto","Set","Map","args","event","message","state","error","request","clearTimeout","handler","type","payload","targetId","Date","Promise","resolve","reject","timeout","setTimeout","Error","undefined"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { StorageKey, StorageKeyType } from './storage-key';
2
+ export interface CacheMetadata {
3
+ createdAt: number;
4
+ updatedAt: number;
5
+ expiresAt: number;
6
+ tags?: string[];
7
+ createdAtDateTime: string;
8
+ updatedAtDateTime: string;
9
+ expiresAtDateTime: string;
10
+ }
11
+ export interface CacheOptions {
12
+ ttl?: number;
13
+ cleanup?: {
14
+ enabled: boolean;
15
+ interval?: number;
16
+ };
17
+ invalidateOnError?: boolean;
18
+ }
19
+ export interface CacheEntry<Data, Params extends Record<string, any> = any> {
20
+ data: Data;
21
+ metadata: CacheMetadata;
22
+ params: Params;
23
+ }
24
+ export declare class CacheUtils {
25
+ static createMetadata(ttl?: number, tags?: string[]): CacheMetadata;
26
+ private static formatDateTime;
27
+ static isExpired(metadata: CacheMetadata): boolean;
28
+ static updateMetadata(metadata: CacheMetadata): CacheMetadata;
29
+ static createKey(...parts: (string | number)[]): StorageKey;
30
+ static createApiKey(endpoint: string, params?: Record<string, any>): [StorageKeyType, Record<string, any> | undefined];
31
+ static hasAnyTag(metadata: CacheMetadata, tags?: string[]): boolean;
32
+ }
33
+ //# sourceMappingURL=cache.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.util.d.ts","sourceRoot":"","sources":["../../../../src/core/storage/utils/cache.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE1D,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,iBAAiB,EAAE,MAAM,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE;QACR,OAAO,EAAE,OAAO,CAAA;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,UAAU,CAAC,IAAI,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;IACxE,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,aAAa,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,UAAU;IACrB,MAAM,CAAC,cAAc,CAAC,GAAG,GAAE,MAAU,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,aAAa;IAe1E,OAAO,CAAC,MAAM,CAAC,cAAc;IAI7B,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO;IAIlD,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa;IAO7D,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,UAAU;IAI3D,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;IAYtH,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,aAAa,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO;CAIxE"}
@@ -0,0 +1,54 @@
1
+ import { StorageKey } from "./storage-key.js";
2
+
3
+
4
+
5
+ class CacheUtils {
6
+ static createMetadata(ttl = 0, tags = []) {
7
+ const now = Date.now();
8
+ const expiresAt = ttl > 0 ? now + ttl : Infinity;
9
+ return {
10
+ createdAt: now,
11
+ updatedAt: now,
12
+ expiresAt,
13
+ tags,
14
+ createdAtDateTime: this.formatDateTime(now),
15
+ updatedAtDateTime: this.formatDateTime(now),
16
+ expiresAtDateTime: expiresAt === Infinity ? 'never' : this.formatDateTime(expiresAt)
17
+ };
18
+ }
19
+ static formatDateTime(timestamp) {
20
+ return new Date(timestamp).toISOString();
21
+ }
22
+ static isExpired(metadata) {
23
+ return Date.now() > metadata.expiresAt;
24
+ }
25
+ static updateMetadata(metadata) {
26
+ return {
27
+ ...metadata,
28
+ updatedAt: Date.now()
29
+ };
30
+ }
31
+ static createKey(...parts) {
32
+ return new StorageKey(parts.join('_'));
33
+ }
34
+ static createApiKey(endpoint, params) {
35
+ if (!params) return [
36
+ new StorageKey(endpoint, true),
37
+ params
38
+ ];
39
+ const sortedParams = Object.entries(params).sort(([a], [b])=>a.localeCompare(b)).map(([k, v])=>`${k}=${v}`).join('&');
40
+ return [
41
+ new StorageKey(`${endpoint}_${sortedParams}`, true),
42
+ params
43
+ ];
44
+ }
45
+ // Функция для проверки, есть ли у записи определенные теги
46
+ static hasAnyTag(metadata, tags = []) {
47
+ if (!metadata.tags || !tags.length) return false;
48
+ return tags.some((tag)=>metadata.tags?.includes(tag));
49
+ }
50
+ }
51
+
52
+ export { CacheUtils };
53
+
54
+ //# sourceMappingURL=cache.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core/storage/utils/cache.util.js","sources":["../../../../src/core/storage/utils/cache.util.ts"],"sourcesContent":["import { StorageKey, StorageKeyType } from './storage-key'\n\nexport interface CacheMetadata {\n createdAt: number\n updatedAt: number\n expiresAt: number\n tags?: string[]\n createdAtDateTime: string\n updatedAtDateTime: string\n expiresAtDateTime: string\n}\n\nexport interface CacheOptions {\n ttl?: number\n cleanup?: {\n enabled: boolean\n interval?: number\n }\n invalidateOnError?: boolean\n}\n\nexport interface CacheEntry<Data, Params extends Record<string, any> = any> {\n data: Data\n metadata: CacheMetadata\n params: Params\n}\n\nexport class CacheUtils {\n static createMetadata(ttl: number = 0, tags: string[] = []): CacheMetadata {\n const now = Date.now()\n const expiresAt = ttl > 0 ? now + ttl : Infinity\n\n return {\n createdAt: now,\n updatedAt: now,\n expiresAt,\n tags,\n createdAtDateTime: this.formatDateTime(now),\n updatedAtDateTime: this.formatDateTime(now),\n expiresAtDateTime: expiresAt === Infinity ? 'never' : this.formatDateTime(expiresAt),\n }\n }\n\n private static formatDateTime(timestamp: number): string {\n return new Date(timestamp).toISOString()\n }\n\n static isExpired(metadata: CacheMetadata): boolean {\n return Date.now() > metadata.expiresAt\n }\n\n static updateMetadata(metadata: CacheMetadata): CacheMetadata {\n return {\n ...metadata,\n updatedAt: Date.now(),\n }\n }\n\n static createKey(...parts: (string | number)[]): StorageKey {\n return new StorageKey(parts.join('_'))\n }\n\n static createApiKey(endpoint: string, params?: Record<string, any>): [StorageKeyType, Record<string, any> | undefined] {\n if (!params) return [new StorageKey(endpoint, true), params]\n\n const sortedParams = Object.entries(params)\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([k, v]) => `${k}=${v}`)\n .join('&')\n\n return [new StorageKey(`${endpoint}_${sortedParams}`, true), params]\n }\n\n // Функция для проверки, есть ли у записи определенные теги\n static hasAnyTag(metadata: CacheMetadata, tags: string[] = []): boolean {\n if (!metadata.tags || !tags.length) return false\n return tags.some((tag) => metadata.tags?.includes(tag))\n }\n}\n"],"names":["StorageKey","CacheUtils","ttl","tags","now","Date","expiresAt","Infinity","timestamp","metadata","parts","endpoint","params","sortedParams","Object","a","b","k","v","tag"],"mappings":";;;AAA0D;AA2BnD,MAAMC,UAAUA;IACrB,OAAO,eAAeC,MAAc,CAAC,EAAEC,OAAiB,EAAE,EAAiB;QACzE,MAAMC,MAAMC,KAAK,GAAG;QACpB,MAAMC,YAAYJ,MAAM,IAAIE,MAAMF,MAAMK;QAExC,OAAO;YACL,WAAWH;YACX,WAAWA;YACXE;YACAH;YACA,mBAAmB,IAAI,CAAC,cAAc,CAACC;YACvC,mBAAmB,IAAI,CAAC,cAAc,CAACA;YACvC,mBAAmBE,cAAcC,WAAW,UAAU,IAAI,CAAC,cAAc,CAACD;QAC5E;IACF;IAEA,OAAe,eAAeE,SAAiB,EAAU;QACvD,OAAO,IAAIH,KAAKG,WAAW,WAAW;IACxC;IAEA,OAAO,UAAUC,QAAuB,EAAW;QACjD,OAAOJ,KAAK,GAAG,KAAKI,SAAS,SAAS;IACxC;IAEA,OAAO,eAAeA,QAAuB,EAAiB;QAC5D,OAAO;YACL,GAAGA,QAAQ;YACX,WAAWJ,KAAK,GAAG;QACrB;IACF;IAEA,OAAO,UAAU,GAAGK,KAA0B,EAAc;QAC1D,OAAO,IAAIV,UAAUA,CAACU,MAAM,IAAI,CAAC;IACnC;IAEA,OAAO,aAAaC,QAAgB,EAAEC,MAA4B,EAAqD;QACrH,IAAI,CAACA,QAAQ,OAAO;YAAC,IAAIZ,UAAUA,CAACW,UAAU;YAAOC;SAAO;QAE5D,MAAMC,eAAeC,OAAO,OAAO,CAACF,QACjC,IAAI,CAAC,CAAC,CAACG,EAAE,EAAE,CAACC,EAAE,GAAKD,EAAE,aAAa,CAACC,IACnC,GAAG,CAAC,CAAC,CAACC,GAAGC,EAAE,GAAK,GAAGD,EAAE,CAAC,EAAEC,GAAG,EAC3B,IAAI,CAAC;QAER,OAAO;YAAC,IAAIlB,UAAUA,CAAC,GAAGW,SAAS,CAAC,EAAEE,cAAc,EAAE;YAAOD;SAAO;IACtE;IAEA,2DAA2D;IAC3D,OAAO,UAAUH,QAAuB,EAAEN,OAAiB,EAAE,EAAW;QACtE,IAAI,CAACM,SAAS,IAAI,IAAI,CAACN,KAAK,MAAM,EAAE,OAAO;QAC3C,OAAOA,KAAK,IAAI,CAAC,CAACgB,MAAQV,SAAS,IAAI,EAAE,SAASU;IACpD;AACF"}
@@ -0,0 +1,94 @@
1
+ import { StorageKeyType } from './storage-key';
2
+ /**
3
+ * Sentinel object returned by middleware to signal that the value has not changed.
4
+ * BaseStorage checks for this by reference equality to skip subscriber notifications.
5
+ */
6
+ export declare const VALUE_NOT_CHANGED: unique symbol;
7
+ export type StorageActionType = 'get' | 'set' | 'delete' | 'clear' | 'init' | 'keys' | 'update' | 'reset';
8
+ export type StorageAction = {
9
+ type: StorageActionType;
10
+ key?: StorageKeyType;
11
+ value?: any;
12
+ metadata?: Record<string, any>;
13
+ source?: string;
14
+ timestamp?: number;
15
+ };
16
+ export type MiddlewareAPI = {
17
+ dispatch: (action: StorageAction) => Promise<any>;
18
+ getState: () => Promise<Record<string, any>>;
19
+ storage: {
20
+ doGet: (key: StorageKeyType) => Promise<any>;
21
+ doSet: (key: StorageKeyType, value: any) => Promise<void>;
22
+ doUpdate: (updates: Array<{
23
+ key: StorageKeyType;
24
+ value: any;
25
+ }>) => Promise<void>;
26
+ doDelete: (key: StorageKeyType) => Promise<boolean>;
27
+ doClear: () => Promise<void>;
28
+ doKeys: () => Promise<string[]>;
29
+ notifySubscribers: (key: StorageKeyType, value: any) => void;
30
+ };
31
+ };
32
+ export type NextFunction = (action: StorageAction) => Promise<any>;
33
+ export type SetupEventsFunction = (api: MiddlewareAPI) => void;
34
+ export type Middleware = {
35
+ name: string;
36
+ setup?: SetupEventsFunction;
37
+ cleanup?: () => Promise<void> | void;
38
+ reducer: (api: MiddlewareAPI) => (next: NextFunction) => (action: StorageAction) => Promise<any>;
39
+ };
40
+ export type AsyncMiddlewareAPI = MiddlewareAPI;
41
+ export type AsyncNextFunction = NextFunction;
42
+ export type AsyncMiddleware = Middleware;
43
+ export type SyncMiddlewareAPI = {
44
+ dispatch: (action: StorageAction) => any;
45
+ getState: () => Record<string, any>;
46
+ storage: {
47
+ doGet: (key: StorageKeyType) => any;
48
+ doSet: (key: StorageKeyType, value: any) => void;
49
+ doUpdate: (updates: Array<{
50
+ key: StorageKeyType;
51
+ value: any;
52
+ }>) => void;
53
+ doRemove: (key: StorageKeyType) => boolean;
54
+ doClear: () => void;
55
+ doKeys: () => string[];
56
+ notifySubscribers: (key: StorageKeyType, value: any) => void;
57
+ };
58
+ };
59
+ export type SyncNextFunction = (action: StorageAction) => any;
60
+ export type SyncSetupEventsFunction = (api: SyncMiddlewareAPI) => void;
61
+ export type SyncMiddleware = {
62
+ name: string;
63
+ setup?: SyncSetupEventsFunction;
64
+ cleanup?: () => void;
65
+ reducer: (api: SyncMiddlewareAPI) => (next: SyncNextFunction) => (action: StorageAction) => any;
66
+ };
67
+ export declare class AsyncMiddlewareModule {
68
+ private middlewares;
69
+ private api;
70
+ private initialized;
71
+ private depth;
72
+ private dispatchFn;
73
+ constructor(storage: any);
74
+ private baseOperation;
75
+ private initializeMiddlewares;
76
+ use(middleware: Middleware): void;
77
+ dispatch(action: StorageAction): Promise<any>;
78
+ }
79
+ /** @deprecated Use AsyncMiddlewareModule */
80
+ export declare class MiddlewareModule extends AsyncMiddlewareModule {
81
+ }
82
+ export declare class SyncMiddlewareModule {
83
+ private middlewares;
84
+ private api;
85
+ private initialized;
86
+ private depth;
87
+ private dispatchFn;
88
+ constructor(storage: any);
89
+ private baseOperation;
90
+ private initializeMiddlewares;
91
+ use(middleware: SyncMiddleware): void;
92
+ dispatch(action: StorageAction): any;
93
+ }
94
+ //# sourceMappingURL=middleware-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware-module.d.ts","sourceRoot":"","sources":["../../../../src/core/storage/utils/middleware-module.ts"],"names":[],"mappings":"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"}