synapse-storage 3.0.1 → 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/dist/api.cjs +891 -0
  2. package/dist/api.cjs.map +1 -0
  3. package/dist/api.d.cts +365 -0
  4. package/dist/api.d.ts +365 -0
  5. package/dist/api.js +860 -0
  6. package/dist/api.js.map +1 -0
  7. package/dist/core.cjs +2389 -0
  8. package/dist/core.cjs.map +1 -0
  9. package/dist/core.d.cts +397 -0
  10. package/dist/{core/storage/modules/plugin/plugin.interface.d.ts → core.d.ts} +203 -7
  11. package/dist/core.js +2356 -0
  12. package/dist/core.js.map +1 -0
  13. package/dist/dispatcher.module-CdpmkplA.d.cts +363 -0
  14. package/dist/dispatcher.module-jd8U_ZEs.d.ts +363 -0
  15. package/dist/index.cjs +4148 -0
  16. package/dist/index.cjs.map +1 -0
  17. package/dist/index.d.cts +10 -0
  18. package/dist/index.d.ts +10 -10
  19. package/dist/index.js +4092 -13
  20. package/dist/index.js.map +1 -1
  21. package/dist/react.cjs +268 -0
  22. package/dist/react.cjs.map +1 -0
  23. package/dist/react.d.cts +74 -0
  24. package/dist/react.d.ts +74 -0
  25. package/dist/react.js +239 -0
  26. package/dist/react.js.map +1 -0
  27. package/dist/reactive.cjs +643 -0
  28. package/dist/reactive.cjs.map +1 -0
  29. package/dist/reactive.d.cts +35 -0
  30. package/dist/reactive.d.ts +35 -0
  31. package/dist/reactive.js +604 -0
  32. package/dist/reactive.js.map +1 -0
  33. package/dist/{core/selector/selector.interface.d.ts → selector.interface-CA5y-kD_.d.cts} +7 -35
  34. package/dist/selector.interface-CA5y-kD_.d.ts +63 -0
  35. package/dist/storage.interface-Dl8SLUd1.d.cts +128 -0
  36. package/dist/storage.interface-Dl8SLUd1.d.ts +128 -0
  37. package/dist/utils.cjs +601 -0
  38. package/dist/utils.cjs.map +1 -0
  39. package/dist/utils.d.cts +92 -0
  40. package/dist/utils.d.ts +92 -0
  41. package/dist/utils.js +574 -0
  42. package/dist/utils.js.map +1 -0
  43. package/package.json +54 -17
  44. package/dist/_utils/chunk.util.d.ts +0 -8
  45. package/dist/_utils/chunk.util.d.ts.map +0 -1
  46. package/dist/_utils/chunk.util.js +0 -21
  47. package/dist/_utils/chunk.util.js.map +0 -1
  48. package/dist/_utils/deepMerge.util.d.ts +0 -2
  49. package/dist/_utils/deepMerge.util.d.ts.map +0 -1
  50. package/dist/_utils/deepMerge.util.js +0 -16
  51. package/dist/_utils/deepMerge.util.js.map +0 -1
  52. package/dist/_utils/flatMap.util.d.ts +0 -10
  53. package/dist/_utils/flatMap.util.d.ts.map +0 -1
  54. package/dist/_utils/flatMap.util.js +0 -23
  55. package/dist/_utils/flatMap.util.js.map +0 -1
  56. package/dist/_utils/index.d.ts +0 -4
  57. package/dist/_utils/index.d.ts.map +0 -1
  58. package/dist/_utils/index.js +0 -4
  59. package/dist/_utils/index.js.map +0 -1
  60. package/dist/api/api.module.d.ts +0 -38
  61. package/dist/api/api.module.d.ts.map +0 -1
  62. package/dist/api/api.module.js +0 -82
  63. package/dist/api/api.module.js.map +0 -1
  64. package/dist/api/components/endpoint.d.ts +0 -26
  65. package/dist/api/components/endpoint.d.ts.map +0 -1
  66. package/dist/api/components/endpoint.js +0 -253
  67. package/dist/api/components/endpoint.js.map +0 -1
  68. package/dist/api/components/query-storage.d.ts +0 -84
  69. package/dist/api/components/query-storage.d.ts.map +0 -1
  70. package/dist/api/components/query-storage.js +0 -221
  71. package/dist/api/components/query-storage.js.map +0 -1
  72. package/dist/api/example.d.ts +0 -83
  73. package/dist/api/example.d.ts.map +0 -1
  74. package/dist/api/example.js +0 -85
  75. package/dist/api/example.js.map +0 -1
  76. package/dist/api/index.d.ts +0 -4
  77. package/dist/api/index.d.ts.map +0 -1
  78. package/dist/api/index.js +0 -6
  79. package/dist/api/index.js.map +0 -1
  80. package/dist/api/types/api.interface.d.ts +0 -108
  81. package/dist/api/types/api.interface.d.ts.map +0 -1
  82. package/dist/api/types/api.interface.js +0 -19
  83. package/dist/api/types/api.interface.js.map +0 -1
  84. package/dist/api/types/endpoint.interface.d.ts +0 -116
  85. package/dist/api/types/endpoint.interface.d.ts.map +0 -1
  86. package/dist/api/types/endpoint.interface.js +0 -2
  87. package/dist/api/types/endpoint.interface.js.map +0 -1
  88. package/dist/api/types/query.interface.d.ts +0 -87
  89. package/dist/api/types/query.interface.d.ts.map +0 -1
  90. package/dist/api/types/query.interface.js +0 -2
  91. package/dist/api/types/query.interface.js.map +0 -1
  92. package/dist/api/utils/api-helpers.d.ts +0 -22
  93. package/dist/api/utils/api-helpers.d.ts.map +0 -1
  94. package/dist/api/utils/api-helpers.js +0 -44
  95. package/dist/api/utils/api-helpers.js.map +0 -1
  96. package/dist/api/utils/create-header-context.d.ts +0 -10
  97. package/dist/api/utils/create-header-context.d.ts.map +0 -1
  98. package/dist/api/utils/create-header-context.js +0 -36
  99. package/dist/api/utils/create-header-context.js.map +0 -1
  100. package/dist/api/utils/endpoint-headers.d.ts +0 -23
  101. package/dist/api/utils/endpoint-headers.d.ts.map +0 -1
  102. package/dist/api/utils/endpoint-headers.js +0 -57
  103. package/dist/api/utils/endpoint-headers.js.map +0 -1
  104. package/dist/api/utils/fetch-base-query.d.ts +0 -9
  105. package/dist/api/utils/fetch-base-query.d.ts.map +0 -1
  106. package/dist/api/utils/fetch-base-query.js +0 -181
  107. package/dist/api/utils/fetch-base-query.js.map +0 -1
  108. package/dist/api/utils/file-utils.d.ts +0 -43
  109. package/dist/api/utils/file-utils.d.ts.map +0 -1
  110. package/dist/api/utils/file-utils.js +0 -108
  111. package/dist/api/utils/file-utils.js.map +0 -1
  112. package/dist/api/utils/get-cacheable-headers.d.ts +0 -8
  113. package/dist/api/utils/get-cacheable-headers.d.ts.map +0 -1
  114. package/dist/api/utils/get-cacheable-headers.js +0 -21
  115. package/dist/api/utils/get-cacheable-headers.js.map +0 -1
  116. package/dist/core/index.d.ts +0 -3
  117. package/dist/core/index.d.ts.map +0 -1
  118. package/dist/core/index.js +0 -3
  119. package/dist/core/index.js.map +0 -1
  120. package/dist/core/selector/index.d.ts +0 -3
  121. package/dist/core/selector/index.d.ts.map +0 -1
  122. package/dist/core/selector/index.js +0 -2
  123. package/dist/core/selector/index.js.map +0 -1
  124. package/dist/core/selector/selector.interface.d.ts.map +0 -1
  125. package/dist/core/selector/selector.interface.js +0 -2
  126. package/dist/core/selector/selector.interface.js.map +0 -1
  127. package/dist/core/selector/selector.module.d.ts +0 -29
  128. package/dist/core/selector/selector.module.d.ts.map +0 -1
  129. package/dist/core/selector/selector.module.js +0 -467
  130. package/dist/core/selector/selector.module.js.map +0 -1
  131. package/dist/core/storage/adapters/base-storage.service.d.ts +0 -65
  132. package/dist/core/storage/adapters/base-storage.service.d.ts.map +0 -1
  133. package/dist/core/storage/adapters/base-storage.service.js +0 -660
  134. package/dist/core/storage/adapters/base-storage.service.js.map +0 -1
  135. package/dist/core/storage/adapters/indexed-DB.service.d.ts +0 -63
  136. package/dist/core/storage/adapters/indexed-DB.service.d.ts.map +0 -1
  137. package/dist/core/storage/adapters/indexed-DB.service.js +0 -595
  138. package/dist/core/storage/adapters/indexed-DB.service.js.map +0 -1
  139. package/dist/core/storage/adapters/indexed-DB.service.old.d.ts +0 -38
  140. package/dist/core/storage/adapters/indexed-DB.service.old.d.ts.map +0 -1
  141. package/dist/core/storage/adapters/indexed-DB.service.old.js +0 -318
  142. package/dist/core/storage/adapters/indexed-DB.service.old.js.map +0 -1
  143. package/dist/core/storage/adapters/local-storage.service.d.ts +0 -21
  144. package/dist/core/storage/adapters/local-storage.service.d.ts.map +0 -1
  145. package/dist/core/storage/adapters/local-storage.service.js +0 -99
  146. package/dist/core/storage/adapters/local-storage.service.js.map +0 -1
  147. package/dist/core/storage/adapters/memory-storage.service.d.ts +0 -22
  148. package/dist/core/storage/adapters/memory-storage.service.d.ts.map +0 -1
  149. package/dist/core/storage/adapters/memory-storage.service.js +0 -99
  150. package/dist/core/storage/adapters/memory-storage.service.js.map +0 -1
  151. package/dist/core/storage/adapters/path.utils.d.ts +0 -5
  152. package/dist/core/storage/adapters/path.utils.d.ts.map +0 -1
  153. package/dist/core/storage/adapters/path.utils.js +0 -35
  154. package/dist/core/storage/adapters/path.utils.js.map +0 -1
  155. package/dist/core/storage/index.d.ts +0 -11
  156. package/dist/core/storage/index.d.ts.map +0 -1
  157. package/dist/core/storage/index.js +0 -12
  158. package/dist/core/storage/index.js.map +0 -1
  159. package/dist/core/storage/middlewares/broadcast.middleware.d.ts +0 -9
  160. package/dist/core/storage/middlewares/broadcast.middleware.d.ts.map +0 -1
  161. package/dist/core/storage/middlewares/broadcast.middleware.js +0 -115
  162. package/dist/core/storage/middlewares/broadcast.middleware.js.map +0 -1
  163. package/dist/core/storage/middlewares/index.d.ts +0 -4
  164. package/dist/core/storage/middlewares/index.d.ts.map +0 -1
  165. package/dist/core/storage/middlewares/index.js +0 -3
  166. package/dist/core/storage/middlewares/index.js.map +0 -1
  167. package/dist/core/storage/middlewares/storage-batching.middleware.d.ts +0 -7
  168. package/dist/core/storage/middlewares/storage-batching.middleware.d.ts.map +0 -1
  169. package/dist/core/storage/middlewares/storage-batching.middleware.js +0 -36
  170. package/dist/core/storage/middlewares/storage-batching.middleware.js.map +0 -1
  171. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.d.ts +0 -7
  172. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.d.ts.map +0 -1
  173. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.js +0 -46
  174. package/dist/core/storage/middlewares/storage-shallow-compare.middleware.js.map +0 -1
  175. package/dist/core/storage/modules/plugin/plugin.interface.d.ts.map +0 -1
  176. package/dist/core/storage/modules/plugin/plugin.interface.js +0 -2
  177. package/dist/core/storage/modules/plugin/plugin.interface.js.map +0 -1
  178. package/dist/core/storage/modules/plugin/plugin.service.d.ts +0 -25
  179. package/dist/core/storage/modules/plugin/plugin.service.d.ts.map +0 -1
  180. package/dist/core/storage/modules/plugin/plugin.service.js +0 -186
  181. package/dist/core/storage/modules/plugin/plugin.service.js.map +0 -1
  182. package/dist/core/storage/storage.interface.d.ts +0 -70
  183. package/dist/core/storage/storage.interface.d.ts.map +0 -1
  184. package/dist/core/storage/storage.interface.js +0 -10
  185. package/dist/core/storage/storage.interface.js.map +0 -1
  186. package/dist/core/storage/utils/batch.utils.d.ts +0 -33
  187. package/dist/core/storage/utils/batch.utils.d.ts.map +0 -1
  188. package/dist/core/storage/utils/batch.utils.js +0 -88
  189. package/dist/core/storage/utils/batch.utils.js.map +0 -1
  190. package/dist/core/storage/utils/broadcast.util.d.ts +0 -48
  191. package/dist/core/storage/utils/broadcast.util.d.ts.map +0 -1
  192. package/dist/core/storage/utils/broadcast.util.js +0 -162
  193. package/dist/core/storage/utils/broadcast.util.js.map +0 -1
  194. package/dist/core/storage/utils/cache.util.d.ts +0 -33
  195. package/dist/core/storage/utils/cache.util.d.ts.map +0 -1
  196. package/dist/core/storage/utils/cache.util.js +0 -47
  197. package/dist/core/storage/utils/cache.util.js.map +0 -1
  198. package/dist/core/storage/utils/middleware-module.d.ts +0 -46
  199. package/dist/core/storage/utils/middleware-module.d.ts.map +0 -1
  200. package/dist/core/storage/utils/middleware-module.js +0 -109
  201. package/dist/core/storage/utils/middleware-module.js.map +0 -1
  202. package/dist/core/storage/utils/storage-key.d.ts +0 -11
  203. package/dist/core/storage/utils/storage-key.d.ts.map +0 -1
  204. package/dist/core/storage/utils/storage-key.js +0 -21
  205. package/dist/core/storage/utils/storage-key.js.map +0 -1
  206. package/dist/core/storage/utils/storage.utils.d.ts +0 -17
  207. package/dist/core/storage/utils/storage.utils.d.ts.map +0 -1
  208. package/dist/core/storage/utils/storage.utils.js +0 -57
  209. package/dist/core/storage/utils/storage.utils.js.map +0 -1
  210. package/dist/index.d.ts.map +0 -1
  211. package/dist/react/hooks/index.d.ts +0 -3
  212. package/dist/react/hooks/index.d.ts.map +0 -1
  213. package/dist/react/hooks/index.js +0 -3
  214. package/dist/react/hooks/index.js.map +0 -1
  215. package/dist/react/hooks/useSelector.d.ts +0 -22
  216. package/dist/react/hooks/useSelector.d.ts.map +0 -1
  217. package/dist/react/hooks/useSelector.js +0 -104
  218. package/dist/react/hooks/useSelector.js.map +0 -1
  219. package/dist/react/hooks/useStorageSubscribe.d.ts +0 -12
  220. package/dist/react/hooks/useStorageSubscribe.d.ts.map +0 -1
  221. package/dist/react/hooks/useStorageSubscribe.js +0 -49
  222. package/dist/react/hooks/useStorageSubscribe.js.map +0 -1
  223. package/dist/react/index.d.ts +0 -3
  224. package/dist/react/index.d.ts.map +0 -1
  225. package/dist/react/index.js +0 -3
  226. package/dist/react/index.js.map +0 -1
  227. package/dist/react/utils/createSynapseCtx.d.ts +0 -40
  228. package/dist/react/utils/createSynapseCtx.d.ts.map +0 -1
  229. package/dist/react/utils/createSynapseCtx.js +0 -125
  230. package/dist/react/utils/createSynapseCtx.js.map +0 -1
  231. package/dist/react/utils/index.d.ts +0 -2
  232. package/dist/react/utils/index.d.ts.map +0 -1
  233. package/dist/react/utils/index.js +0 -2
  234. package/dist/react/utils/index.js.map +0 -1
  235. package/dist/reactive/dispatcher/dispatcher.module.d.ts +0 -195
  236. package/dist/reactive/dispatcher/dispatcher.module.d.ts.map +0 -1
  237. package/dist/reactive/dispatcher/dispatcher.module.js +0 -288
  238. package/dist/reactive/dispatcher/dispatcher.module.js.map +0 -1
  239. package/dist/reactive/dispatcher/index.d.ts +0 -3
  240. package/dist/reactive/dispatcher/index.d.ts.map +0 -1
  241. package/dist/reactive/dispatcher/index.js +0 -3
  242. package/dist/reactive/dispatcher/index.js.map +0 -1
  243. package/dist/reactive/dispatcher/middlewares/index.d.ts +0 -2
  244. package/dist/reactive/dispatcher/middlewares/index.d.ts.map +0 -1
  245. package/dist/reactive/dispatcher/middlewares/index.js +0 -2
  246. package/dist/reactive/dispatcher/middlewares/index.js.map +0 -1
  247. package/dist/reactive/dispatcher/middlewares/logger.middleware.d.ts +0 -31
  248. package/dist/reactive/dispatcher/middlewares/logger.middleware.d.ts.map +0 -1
  249. package/dist/reactive/dispatcher/middlewares/logger.middleware.js +0 -126
  250. package/dist/reactive/dispatcher/middlewares/logger.middleware.js.map +0 -1
  251. package/dist/reactive/effects/effects.module.d.ts +0 -150
  252. package/dist/reactive/effects/effects.module.d.ts.map +0 -1
  253. package/dist/reactive/effects/effects.module.js +0 -277
  254. package/dist/reactive/effects/effects.module.js.map +0 -1
  255. package/dist/reactive/effects/index.d.ts +0 -2
  256. package/dist/reactive/effects/index.d.ts.map +0 -1
  257. package/dist/reactive/effects/index.js +0 -2
  258. package/dist/reactive/effects/index.js.map +0 -1
  259. package/dist/reactive/effects/utils/chunkRequestConsistent.d.ts +0 -12
  260. package/dist/reactive/effects/utils/chunkRequestConsistent.d.ts.map +0 -1
  261. package/dist/reactive/effects/utils/chunkRequestConsistent.js +0 -16
  262. package/dist/reactive/effects/utils/chunkRequestConsistent.js.map +0 -1
  263. package/dist/reactive/effects/utils/chunkRequestParallel.d.ts +0 -12
  264. package/dist/reactive/effects/utils/chunkRequestParallel.d.ts.map +0 -1
  265. package/dist/reactive/effects/utils/chunkRequestParallel.js +0 -13
  266. package/dist/reactive/effects/utils/chunkRequestParallel.js.map +0 -1
  267. package/dist/reactive/effects/utils/index.d.ts +0 -3
  268. package/dist/reactive/effects/utils/index.d.ts.map +0 -1
  269. package/dist/reactive/effects/utils/index.js +0 -3
  270. package/dist/reactive/effects/utils/index.js.map +0 -1
  271. package/dist/reactive/index.d.ts +0 -3
  272. package/dist/reactive/index.d.ts.map +0 -1
  273. package/dist/reactive/index.js +0 -3
  274. package/dist/reactive/index.js.map +0 -1
  275. package/dist/utils/createSynapse.d.ts +0 -92
  276. package/dist/utils/createSynapse.d.ts.map +0 -1
  277. package/dist/utils/createSynapse.js +0 -79
  278. package/dist/utils/createSynapse.js.map +0 -1
  279. package/dist/utils/index.d.ts +0 -2
  280. package/dist/utils/index.d.ts.map +0 -1
  281. package/dist/utils/index.js +0 -2
  282. package/dist/utils/index.js.map +0 -1
@@ -1,109 +0,0 @@
1
- export class MiddlewareModule {
2
- middlewares = [];
3
- api;
4
- initialized = false;
5
- dispatchFn;
6
- constructor(storage) {
7
- this.api = {
8
- dispatch: async (action) => this.dispatch(action),
9
- getState: () => storage.getState(),
10
- storage: {
11
- doGet: storage.doGet.bind(storage),
12
- doSet: storage.doSet.bind(storage),
13
- doUpdate: storage.doUpdate.bind(storage),
14
- doDelete: storage.doDelete.bind(storage),
15
- doClear: storage.doClear.bind(storage),
16
- doKeys: storage.doKeys.bind(storage),
17
- notifySubscribers: storage.notifySubscribers.bind(storage),
18
- },
19
- };
20
- }
21
- async baseOperation(action) {
22
- // Деструктурируем с подчеркиванием для неиспользуемых переменных
23
- const { processed: _, ...metadata } = action.metadata || {};
24
- const cleanAction = { ...action, metadata };
25
- switch (cleanAction.type) {
26
- case 'get': {
27
- return this.api.storage.doGet(cleanAction.key);
28
- }
29
- case 'set': {
30
- await this.api.storage.doSet(cleanAction.key, cleanAction.value);
31
- return this.api.storage.doGet(cleanAction.key);
32
- }
33
- case 'update': {
34
- if (Array.isArray(cleanAction.value)) {
35
- await this.api.storage.doUpdate(cleanAction.value);
36
- return this.api.storage.doGet('');
37
- }
38
- return cleanAction.value;
39
- }
40
- case 'delete': {
41
- return this.api.storage.doDelete(cleanAction.key);
42
- }
43
- case 'clear': {
44
- return this.api.storage.doClear();
45
- }
46
- case 'init': {
47
- const currentState = await this.api.storage.doGet('');
48
- if (Object.keys(currentState || {}).length > 0) {
49
- return currentState;
50
- }
51
- if (cleanAction.value) {
52
- await this.api.storage.doSet('', cleanAction.value);
53
- return this.api.storage.doGet('');
54
- }
55
- return currentState;
56
- }
57
- case 'keys': {
58
- return this.api.storage.doKeys();
59
- }
60
- default: {
61
- throw new Error(`Unknown action type: ${cleanAction.type}`);
62
- }
63
- }
64
- }
65
- initializeMiddlewares() {
66
- if (this.initialized)
67
- return;
68
- let chain = this.baseOperation.bind(this);
69
- for (const middleware of [...this.middlewares].reverse()) {
70
- const nextChain = chain;
71
- chain = async (action) => {
72
- if (action.metadata?.processed) {
73
- return nextChain(action);
74
- }
75
- const actionWithMeta = {
76
- ...action,
77
- metadata: {
78
- ...action.metadata,
79
- processed: true,
80
- timestamp: action.metadata?.timestamp || Date.now(),
81
- },
82
- };
83
- return middleware.reducer(this.api)(nextChain)(actionWithMeta);
84
- };
85
- }
86
- this.dispatchFn = chain; // Используем новое имя
87
- this.initialized = true;
88
- }
89
- use(middleware) {
90
- if (middleware.setup) {
91
- middleware.setup(this.api);
92
- }
93
- this.middlewares.push(middleware);
94
- this.initialized = false;
95
- }
96
- async dispatch(action) {
97
- if (!this.initialized) {
98
- this.initializeMiddlewares();
99
- }
100
- try {
101
- return this.dispatchFn(action);
102
- }
103
- catch (error) {
104
- console.error('Error in middleware chain:', error);
105
- throw error;
106
- }
107
- }
108
- }
109
- //# sourceMappingURL=middleware-module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"middleware-module.js","sourceRoot":"","sources":["../../../../src/core/storage/utils/middleware-module.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- export declare class StorageKey {
2
- private readonly value;
3
- private readonly isRawKey;
4
- constructor(value: string, isRawKey?: boolean);
5
- toString(): string;
6
- toJSON(): string;
7
- valueOf(): string;
8
- isUnparseable(): boolean;
9
- }
10
- export type StorageKeyType = string | StorageKey;
11
- //# sourceMappingURL=storage-key.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage-key.d.ts","sourceRoot":"","sources":["../../../../src/core/storage/utils/storage-key.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU;IAEnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,OAAe;IAG5C,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,MAAM;IAIhB,OAAO,IAAI,MAAM;IAIjB,aAAa,IAAI,OAAO;CAGzB;AAGD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,CAAA"}
@@ -1,21 +0,0 @@
1
- export class StorageKey {
2
- value;
3
- isRawKey;
4
- constructor(value, isRawKey = false) {
5
- this.value = value;
6
- this.isRawKey = isRawKey;
7
- }
8
- toString() {
9
- return this.value;
10
- }
11
- toJSON() {
12
- return this.value;
13
- }
14
- valueOf() {
15
- return this.value;
16
- }
17
- isUnparseable() {
18
- return this.isRawKey;
19
- }
20
- }
21
- //# sourceMappingURL=storage-key.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage-key.js","sourceRoot":"","sources":["../../../../src/core/storage/utils/storage-key.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAU;IAEF;IACA;IAFnB,YACmB,KAAa,EACb,WAAoB,KAAK;QADzB,UAAK,GAAL,KAAK,CAAQ;QACb,aAAQ,GAAR,QAAQ,CAAiB;IACzC,CAAC;IAEJ,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;CACF"}
@@ -1,17 +0,0 @@
1
- export interface StorageUtils {
2
- pathUtils: {
3
- join(...parts: string[]): string;
4
- getParent(path: string): string;
5
- isSubPath(parent: string, child: string): boolean;
6
- getSegments(path: string): string[];
7
- };
8
- dataUtils: {
9
- flatten(obj: any, prefix?: string): Record<string, any>;
10
- unflatten(flat: Record<string, any>): any;
11
- clone<T>(data: T): T;
12
- merge(target: any, source: any): any;
13
- };
14
- }
15
- export declare const pathUtils: StorageUtils['pathUtils'];
16
- export declare const dataUtils: StorageUtils['dataUtils'];
17
- //# sourceMappingURL=storage.utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.utils.d.ts","sourceRoot":"","sources":["../../../../src/core/storage/utils/storage.utils.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAE3B,SAAS,EAAE;QACT,IAAI,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;QAChC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;QAC/B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;QACjD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KACpC,CAAA;IAGD,SAAS,EAAE;QACT,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACvD,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,CAAA;QACzC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;QACpB,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,CAAA;KACrC,CAAA;CACF;AAED,eAAO,MAAM,SAAS,EAAE,YAAY,CAAC,WAAW,CAQ/C,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,YAAY,CAAC,WAAW,CAuD/C,CAAA"}
@@ -1,57 +0,0 @@
1
- export const pathUtils = {
2
- join: (...parts) => parts.filter(Boolean).join('.'),
3
- getParent: (path) => {
4
- const segments = path.split('.');
5
- return segments.slice(0, -1).join('.');
6
- },
7
- isSubPath: (parent, child) => child.startsWith(`${parent}.`),
8
- getSegments: (path) => path.split('.'),
9
- };
10
- export const dataUtils = {
11
- flatten: (obj, prefix = '') => Object.keys(obj).reduce((acc, key) => {
12
- const prefixKey = prefix ? `${prefix}.${key}` : key;
13
- if (typeof obj[key] === 'object' && obj[key] !== null) {
14
- if (Array.isArray(obj[key])) {
15
- acc[prefixKey] = obj[key];
16
- }
17
- else {
18
- Object.assign(acc, dataUtils.flatten(obj[key], prefixKey));
19
- }
20
- }
21
- else {
22
- acc[prefixKey] = obj[key];
23
- }
24
- return acc;
25
- }, {}),
26
- unflatten: (flat) => {
27
- const result = {};
28
- for (const key in flat) {
29
- const segments = pathUtils.getSegments(key);
30
- let current = result;
31
- for (let i = 0; i < segments.length - 1; i++) {
32
- const segment = segments[i];
33
- current[segment] = current[segment] || {};
34
- current = current[segment];
35
- }
36
- current[segments[segments.length - 1]] = flat[key];
37
- }
38
- return result;
39
- },
40
- clone: (data) => JSON.parse(JSON.stringify(data)),
41
- merge: (target, source) => {
42
- const merged = dataUtils.clone(target);
43
- for (const key in source) {
44
- if (typeof source[key] === 'object' && source[key] !== null) {
45
- if (typeof merged[key] !== 'object') {
46
- merged[key] = {};
47
- }
48
- merged[key] = dataUtils.merge(merged[key], source[key]);
49
- }
50
- else {
51
- merged[key] = source[key];
52
- }
53
- }
54
- return merged;
55
- },
56
- };
57
- //# sourceMappingURL=storage.utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.utils.js","sourceRoot":"","sources":["../../../../src/core/storage/utils/storage.utils.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,OAAO,CAAA;AACrB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AAKvB,cAAc,SAAS,CAAA"}
@@ -1,3 +0,0 @@
1
- export * from './useSelector';
2
- export * from './useStorageSubscribe';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA"}
@@ -1,3 +0,0 @@
1
- export * from './useSelector.js';
2
- export * from './useStorageSubscribe.js';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,uBAAuB,CAAA"}
@@ -1,22 +0,0 @@
1
- import type { SelectorAPI } from '../../core';
2
- interface UseSelectorOptions<T> {
3
- /** Начальное значение до загрузки данных из селектора */
4
- initialValue?: T;
5
- /** Функция сравнения для предотвращения лишних ререндеров */
6
- equals?: (a: T, b: T) => boolean;
7
- /** Включать ли статус загрузки в возвращаемый результат */
8
- withLoading?: boolean;
9
- }
10
- /**
11
- * Хук для использования селекторов в компонентах React.
12
- * Обеспечивает согласованность значений между всеми экземплярами хука.
13
- */
14
- export declare function useSelector<T>(selector: SelectorAPI<T>): T | undefined;
15
- export declare function useSelector<T>(selector: SelectorAPI<T>, options: UseSelectorOptions<T> & {
16
- withLoading?: true;
17
- }): {
18
- data: T | undefined;
19
- isLoading: boolean;
20
- };
21
- export {};
22
- //# sourceMappingURL=useSelector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSelector.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useSelector.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,UAAU,kBAAkB,CAAC,CAAC;IAC5B,yDAAyD;IACzD,YAAY,CAAC,EAAE,CAAC,CAAA;IAChB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;IAChC,2DAA2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAeD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;AACvE,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAA"}
@@ -1,104 +0,0 @@
1
- import { useEffect, useRef, useState } from 'react';
2
- /**
3
- * Глобальный реестр селекторов с активными подписками.
4
- * Хранит последние значения селекторов и список callbacks для обновления всех компонентов.
5
- */
6
- const SELECTOR_REGISTRY = new Map();
7
- export function useSelector(selector, options) {
8
- // Базовые состояния
9
- const [state, setState] = useState(options?.initialValue);
10
- const [isLoading, setIsLoading] = useState(!!options?.withLoading);
11
- // Для предотвращения лишних ререндеров
12
- const prevValueRef = useRef(options?.initialValue);
13
- const equalsRef = useRef(options?.equals || ((a, b) => a === b));
14
- // Получаем ID селектора с помощью метода getId()
15
- const selectorId = selector.getId();
16
- // Обновляем состояние компонента при изменении значения
17
- const updateComponentState = (newValue) => {
18
- // Сравниваем с предыдущим значением компонента
19
- if (prevValueRef.current === undefined || !equalsRef.current(newValue, prevValueRef.current)) {
20
- prevValueRef.current = newValue;
21
- setState(newValue);
22
- }
23
- };
24
- useEffect(() => {
25
- // Создаем запись в реестре, если её ещё нет
26
- if (!SELECTOR_REGISTRY.has(selectorId)) {
27
- SELECTOR_REGISTRY.set(selectorId, {
28
- lastValue: undefined,
29
- listeners: new Set(),
30
- unsubscribe: null,
31
- });
32
- }
33
- const registry = SELECTOR_REGISTRY.get(selectorId);
34
- // Добавляем текущий компонент в список слушателей
35
- registry.listeners.add(updateComponentState);
36
- // Если у нас уже есть значение, сразу устанавливаем его
37
- if (registry.lastValue !== undefined) {
38
- updateComponentState(registry.lastValue);
39
- // Если был запрошен режим загрузки, сразу сбрасываем его
40
- if (options?.withLoading) {
41
- setIsLoading(false);
42
- }
43
- }
44
- else {
45
- // Запрашиваем начальное значение
46
- if (options?.withLoading)
47
- setIsLoading(true);
48
- selector
49
- .select()
50
- .then((initialValue) => {
51
- // Обновляем значение в реестре
52
- registry.lastValue = initialValue;
53
- // Уведомляем все компоненты
54
- registry.listeners.forEach((listener) => listener(initialValue));
55
- if (options?.withLoading)
56
- setIsLoading(false);
57
- })
58
- .catch((error) => {
59
- console.error(`useSelector: Ошибка при получении начального значения для ${selectorId}`, error);
60
- if (options?.withLoading)
61
- setIsLoading(false);
62
- });
63
- }
64
- // Создаем подписку только один раз для селектора
65
- if (!registry.unsubscribe) {
66
- registry.unsubscribe = selector.subscribe({
67
- notify: (newValue) => {
68
- // Обновляем значение в реестре
69
- registry.lastValue = newValue;
70
- // Уведомляем все компоненты
71
- registry.listeners.forEach((listener) => {
72
- try {
73
- listener(newValue);
74
- }
75
- catch (error) {
76
- console.error(`useSelector: Ошибка при уведомлении слушателя для ${selectorId}`, error);
77
- }
78
- });
79
- },
80
- });
81
- }
82
- // При размонтировании компонента
83
- return () => {
84
- const registry = SELECTOR_REGISTRY.get(selectorId);
85
- if (registry) {
86
- // Удаляем текущий компонент из списка слушателей
87
- registry.listeners.delete(updateComponentState);
88
- // Если больше нет слушателей, можно очистить подписку
89
- if (registry.listeners.size === 0) {
90
- if (registry.unsubscribe) {
91
- registry.unsubscribe();
92
- }
93
- SELECTOR_REGISTRY.delete(selectorId);
94
- }
95
- }
96
- };
97
- }, [selector, selectorId]);
98
- // Возвращаем данные в нужном формате
99
- if (options?.withLoading) {
100
- return { data: state, isLoading };
101
- }
102
- return state;
103
- }
104
- //# sourceMappingURL=useSelector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSelector.js","sourceRoot":"","sources":["../../../src/react/hooks/useSelector.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { IStorage } from '../../core';
2
- /**
3
- * Хук для подписки на изменения в хранилище
4
- *
5
- * @template S - Тип состояния хранилища
6
- * @template R - Тип возвращаемого значения
7
- * @param storage - Экземпляр хранилища
8
- * @param selector - Функция-селектор для выбора данных
9
- * @returns Значение из хранилища
10
- */
11
- export declare const useStorageSubscribe: <S extends Record<string, any>, R = any>(storage: IStorage<S>, selector: (state: S) => R) => R | undefined;
12
- //# sourceMappingURL=useStorageSubscribe.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useStorageSubscribe.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/useStorageSubscribe.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,KAAG,CAAC,GAAG,SA0CjI,CAAA"}
@@ -1,49 +0,0 @@
1
- import { useEffect, useState } from 'react';
2
- /**
3
- * Хук для подписки на изменения в хранилище
4
- *
5
- * @template S - Тип состояния хранилища
6
- * @template R - Тип возвращаемого значения
7
- * @param storage - Экземпляр хранилища
8
- * @param selector - Функция-селектор для выбора данных
9
- * @returns Значение из хранилища
10
- */
11
- export const useStorageSubscribe = (storage, selector) => {
12
- const [value, setValue] = useState(undefined);
13
- useEffect(() => {
14
- // Флаг монтирования для предотвращения обновления состояния при размонтировании
15
- let isMounted = true;
16
- const initializeValue = async () => {
17
- try {
18
- const state = await storage.getState();
19
- const selectedValue = selector(state);
20
- if (isMounted) {
21
- setValue(selectedValue);
22
- }
23
- }
24
- catch (error) {
25
- console.error('Failed to initialize storage value:', error);
26
- }
27
- };
28
- // Инициализируем значение
29
- initializeValue();
30
- let unsubscribe;
31
- try {
32
- unsubscribe = storage.subscribe(selector, (newValue) => {
33
- if (isMounted) {
34
- setValue(newValue);
35
- }
36
- });
37
- }
38
- catch (error) {
39
- console.error('Failed to subscribe to storage:', error);
40
- unsubscribe = () => { };
41
- }
42
- return () => {
43
- isMounted = false;
44
- unsubscribe();
45
- };
46
- }, [storage, selector]);
47
- return value;
48
- };
49
- //# sourceMappingURL=useStorageSubscribe.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useStorageSubscribe.js","sourceRoot":"","sources":["../../../src/react/hooks/useStorageSubscribe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAI3C;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAyC,OAAoB,EAAE,QAAyB,EAAiB,EAAE;IAC5I,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,SAAS,CAAC,CAAA;IAE5D,SAAS,CAAC,GAAG,EAAE;QACb,gFAAgF;QAChF,IAAI,SAAS,GAAG,IAAI,CAAA;QAEpB,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE;YACjC,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAA;gBACtC,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAM,CAAA;gBAE1C,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,aAAa,CAAC,CAAA;gBACzB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAA;YAC7D,CAAC;QACH,CAAC,CAAA;QAED,0BAA0B;QAC1B,eAAe,EAAE,CAAA;QAEjB,IAAI,WAAyB,CAAA;QAC7B,IAAI,CAAC;YACH,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAW,EAAE,EAAE;gBACxD,IAAI,SAAS,EAAE,CAAC;oBACd,QAAQ,CAAC,QAAQ,CAAC,CAAA;gBACpB,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAA;YACvD,WAAW,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;QACxB,CAAC;QAED,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,KAAK,CAAA;YACjB,WAAW,EAAE,CAAA;QACf,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;IAEvB,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
@@ -1,3 +0,0 @@
1
- export * from './hooks';
2
- export * from './utils';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
@@ -1,3 +0,0 @@
1
- export * from './hooks.js';
2
- export * from './utils.js';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
@@ -1,40 +0,0 @@
1
- import { ComponentType } from 'react';
2
- import { Observable } from 'rxjs';
3
- import { IStorage } from '../../core';
4
- import { SynapseStoreBasic, SynapseStoreWithDispatcher, SynapseStoreWithEffects } from '../../utils';
5
- interface Options<TStore extends Record<string, any>> {
6
- loadingComponent?: any;
7
- mergeFn?: (target: TStore, source: Record<string, any>) => void;
8
- }
9
- /**
10
- * Перегрузки для createSynapseCtx в зависимости от типа хранилища
11
- */
12
- export declare function createSynapseCtx<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors, TActions>(synapseStorePromise: Promise<SynapseStoreWithEffects<TStore, TStorage, TSelectors, TActions>> | SynapseStoreWithEffects<TStore, TStorage, TSelectors, TActions>, options?: Options<TStore>): {
13
- contextSynapse: <SelfComponentProps, PublicContextProps = Record<string, any>>(Component: ComponentType<SelfComponentProps>) => ComponentType<SelfComponentProps & {
14
- contextProps?: PublicContextProps;
15
- }>;
16
- useSynapseStorage: () => TStorage;
17
- useSynapseSelectors: () => TSelectors;
18
- useSynapseActions: () => TActions;
19
- useSynapseState$: () => Observable<TStore>;
20
- cleanupSynapse: () => Promise<void>;
21
- };
22
- export declare function createSynapseCtx<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors, TActions>(synapseStorePromise: Promise<SynapseStoreWithDispatcher<TStore, TStorage, TSelectors, TActions>> | SynapseStoreWithDispatcher<TStore, TStorage, TSelectors, TActions>, options?: Options<TStore>): {
23
- contextSynapse: <SelfComponentProps, PublicContextProps = Record<string, any>>(Component: ComponentType<SelfComponentProps>) => ComponentType<SelfComponentProps & {
24
- contextProps?: PublicContextProps;
25
- }>;
26
- useSynapseStorage: () => TStorage;
27
- useSynapseSelectors: () => TSelectors;
28
- useSynapseActions: () => TActions;
29
- cleanupSynapse: () => Promise<void>;
30
- };
31
- export declare function createSynapseCtx<TStore extends Record<string, any>, TStorage extends IStorage<TStore>, TSelectors>(synapseStorePromise: Promise<SynapseStoreBasic<TStore, TStorage, TSelectors>> | SynapseStoreBasic<TStore, TStorage, TSelectors>, options?: Options<TStore>): {
32
- contextSynapse: <SelfComponentProps, PublicContextProps = Record<string, any>>(Component: ComponentType<SelfComponentProps>) => ComponentType<SelfComponentProps & {
33
- contextProps?: PublicContextProps;
34
- }>;
35
- useSynapseStorage: () => TStorage;
36
- useSynapseSelectors: () => TSelectors;
37
- cleanupSynapse: () => Promise<void>;
38
- };
39
- export {};
40
- //# sourceMappingURL=createSynapseCtx.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createSynapseCtx.d.ts","sourceRoot":"","sources":["../../../src/react/utils/createSynapseCtx.tsx"],"names":[],"mappings":"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"}