zcw-shared 1.21.0 → 1.23.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 (474) hide show
  1. package/dist/functions/algorithm/binarySearch.d.ts +3 -0
  2. package/dist/functions/algorithm/binarySearch.js +58 -0
  3. package/dist/functions/algorithm/binarySearch.js.map +1 -0
  4. package/dist/functions/algorithm/canJump.d.ts +2 -0
  5. package/dist/functions/algorithm/canJump.js +27 -0
  6. package/dist/functions/algorithm/canJump.js.map +1 -0
  7. package/dist/functions/algorithm/climbStairs.d.ts +2 -0
  8. package/dist/functions/algorithm/climbStairs.js +27 -0
  9. package/dist/functions/algorithm/climbStairs.js.map +1 -0
  10. package/dist/functions/algorithm/coinChange.d.ts +2 -0
  11. package/dist/functions/algorithm/coinChange.js +25 -0
  12. package/dist/functions/algorithm/coinChange.js.map +1 -0
  13. package/dist/functions/algorithm/combinationSum.d.ts +1 -0
  14. package/dist/functions/algorithm/combinationSum.js +24 -0
  15. package/dist/functions/algorithm/combinationSum.js.map +1 -0
  16. package/dist/functions/algorithm/editDistance.d.ts +2 -0
  17. package/dist/functions/algorithm/editDistance.js +96 -0
  18. package/dist/functions/algorithm/editDistance.js.map +1 -0
  19. package/dist/functions/algorithm/generateParenthesis.d.ts +1 -0
  20. package/dist/functions/algorithm/generateParenthesis.js +18 -0
  21. package/dist/functions/algorithm/generateParenthesis.js.map +1 -0
  22. package/dist/functions/algorithm/kmp.d.ts +2 -0
  23. package/dist/functions/algorithm/kmp.js +58 -0
  24. package/dist/functions/algorithm/kmp.js.map +1 -0
  25. package/dist/functions/algorithm/knapsack01.d.ts +2 -0
  26. package/dist/functions/algorithm/knapsack01.js +34 -0
  27. package/dist/functions/algorithm/knapsack01.js.map +1 -0
  28. package/dist/functions/algorithm/lengthOfLongestSubstring.d.ts +2 -0
  29. package/dist/functions/algorithm/lengthOfLongestSubstring.js +33 -0
  30. package/dist/functions/algorithm/lengthOfLongestSubstring.js.map +1 -0
  31. package/dist/functions/algorithm/longestCommonSubsequence.d.ts +2 -0
  32. package/dist/functions/algorithm/longestCommonSubsequence.js +37 -0
  33. package/dist/functions/algorithm/longestCommonSubsequence.js.map +1 -0
  34. package/dist/functions/algorithm/longestIncreasingSubsequence.d.ts +2 -0
  35. package/dist/functions/algorithm/longestIncreasingSubsequence.js +49 -0
  36. package/dist/functions/algorithm/longestIncreasingSubsequence.js.map +1 -0
  37. package/dist/functions/algorithm/maxArea.d.ts +1 -0
  38. package/dist/functions/algorithm/maxArea.js +19 -0
  39. package/dist/functions/algorithm/maxArea.js.map +1 -0
  40. package/dist/functions/algorithm/maxProfit.d.ts +2 -0
  41. package/dist/functions/algorithm/maxProfit.js +23 -0
  42. package/dist/functions/algorithm/maxProfit.js.map +1 -0
  43. package/dist/functions/algorithm/meetingRooms.d.ts +6 -0
  44. package/dist/functions/algorithm/meetingRooms.js +31 -0
  45. package/dist/functions/algorithm/meetingRooms.js.map +1 -0
  46. package/dist/functions/algorithm/mergeSort.d.ts +2 -0
  47. package/dist/functions/algorithm/mergeSort.js +72 -0
  48. package/dist/functions/algorithm/mergeSort.js.map +1 -0
  49. package/dist/functions/algorithm/minPathSum.d.ts +2 -0
  50. package/dist/functions/algorithm/minPathSum.js +39 -0
  51. package/dist/functions/algorithm/minPathSum.js.map +1 -0
  52. package/dist/functions/algorithm/minWindow.d.ts +1 -0
  53. package/dist/functions/algorithm/minWindow.js +40 -0
  54. package/dist/functions/algorithm/minWindow.js.map +1 -0
  55. package/dist/functions/algorithm/nQueens.d.ts +1 -0
  56. package/dist/functions/algorithm/nQueens.js +30 -0
  57. package/dist/functions/algorithm/nQueens.js.map +1 -0
  58. package/dist/functions/algorithm/numIslands.d.ts +2 -0
  59. package/dist/functions/algorithm/numIslands.js +59 -0
  60. package/dist/functions/algorithm/numIslands.js.map +1 -0
  61. package/dist/functions/algorithm/permutations.d.ts +1 -0
  62. package/dist/functions/algorithm/permutations.js +22 -0
  63. package/dist/functions/algorithm/permutations.js.map +1 -0
  64. package/dist/functions/algorithm/quickSort.d.ts +3 -0
  65. package/dist/functions/algorithm/quickSort.js +68 -0
  66. package/dist/functions/algorithm/quickSort.js.map +1 -0
  67. package/dist/functions/algorithm/rabinKarp.d.ts +1 -0
  68. package/dist/functions/algorithm/rabinKarp.js +40 -0
  69. package/dist/functions/algorithm/rabinKarp.js.map +1 -0
  70. package/dist/functions/algorithm/taskScheduler.d.ts +1 -0
  71. package/dist/functions/algorithm/taskScheduler.js +15 -0
  72. package/dist/functions/algorithm/taskScheduler.js.map +1 -0
  73. package/dist/functions/algorithm/threeSum.d.ts +2 -0
  74. package/dist/functions/algorithm/threeSum.js +56 -0
  75. package/dist/functions/algorithm/threeSum.js.map +1 -0
  76. package/dist/functions/algorithm/topologicalSort.d.ts +6 -0
  77. package/dist/functions/algorithm/topologicalSort.js +68 -0
  78. package/dist/functions/algorithm/topologicalSort.js.map +1 -0
  79. package/dist/functions/algorithm/trap.d.ts +2 -0
  80. package/dist/functions/algorithm/trap.js +51 -0
  81. package/dist/functions/algorithm/trap.js.map +1 -0
  82. package/dist/functions/algorithm/visualizeGarbageCollection.d.ts +44 -0
  83. package/dist/functions/algorithm/visualizeGarbageCollection.js +263 -0
  84. package/dist/functions/algorithm/visualizeGarbageCollection.js.map +1 -0
  85. package/dist/functions/array-object/chunk.d.ts +1 -0
  86. package/dist/functions/array-object/chunk.js +11 -0
  87. package/dist/functions/array-object/chunk.js.map +1 -0
  88. package/dist/functions/array-object/evolve.d.ts +3 -0
  89. package/dist/functions/array-object/evolve.js +15 -0
  90. package/dist/functions/array-object/evolve.js.map +1 -0
  91. package/dist/functions/array-object/flattenObject.d.ts +5 -0
  92. package/dist/functions/array-object/flattenObject.js +102 -0
  93. package/dist/functions/array-object/flattenObject.js.map +1 -0
  94. package/dist/functions/array-object/groupBy.d.ts +1 -0
  95. package/dist/functions/array-object/groupBy.js +14 -0
  96. package/dist/functions/array-object/groupBy.js.map +1 -0
  97. package/dist/functions/array-object/omit.d.ts +1 -0
  98. package/dist/functions/array-object/omit.js +8 -0
  99. package/dist/functions/array-object/omit.js.map +1 -0
  100. package/dist/functions/array-object/pick.d.ts +1 -0
  101. package/dist/functions/array-object/pick.js +10 -0
  102. package/dist/functions/array-object/pick.js.map +1 -0
  103. package/dist/functions/array-object/shuffle.d.ts +1 -0
  104. package/dist/functions/array-object/shuffle.js +9 -0
  105. package/dist/functions/array-object/shuffle.js.map +1 -0
  106. package/dist/functions/array-object/sortBy.d.ts +1 -0
  107. package/dist/functions/array-object/sortBy.js +13 -0
  108. package/dist/functions/array-object/sortBy.js.map +1 -0
  109. package/dist/functions/async/cachedAsync.d.ts +27 -0
  110. package/dist/functions/async/cachedAsync.js +123 -0
  111. package/dist/functions/async/cachedAsync.js.map +1 -0
  112. package/dist/functions/async/promiseLimit.d.ts +10 -0
  113. package/dist/functions/async/promiseLimit.js +125 -0
  114. package/dist/functions/async/promiseLimit.js.map +1 -0
  115. package/dist/functions/async/retryWithBackoff.d.ts +12 -0
  116. package/dist/functions/async/retryWithBackoff.js +29 -0
  117. package/dist/functions/async/retryWithBackoff.js.map +1 -0
  118. package/dist/functions/browser/detectBrowser.d.ts +39 -0
  119. package/dist/functions/browser/detectBrowser.js +193 -0
  120. package/dist/functions/browser/detectBrowser.js.map +1 -0
  121. package/dist/functions/browser/detectOS.d.ts +5 -0
  122. package/dist/functions/browser/detectOS.js +20 -0
  123. package/dist/functions/browser/detectOS.js.map +1 -0
  124. package/dist/functions/browser/isMobile.d.ts +6 -0
  125. package/dist/functions/browser/isMobile.js +5 -0
  126. package/dist/functions/browser/isMobile.js.map +1 -0
  127. package/dist/functions/data-structures/AVLTree.d.ts +19 -0
  128. package/dist/functions/data-structures/AVLTree.js +197 -0
  129. package/dist/functions/data-structures/AVLTree.js.map +1 -0
  130. package/dist/functions/data-structures/BinarySearchTree.d.ts +19 -0
  131. package/dist/functions/data-structures/BinarySearchTree.js +150 -0
  132. package/dist/functions/data-structures/BinarySearchTree.js.map +1 -0
  133. package/dist/functions/data-structures/Graph.d.ts +19 -0
  134. package/dist/functions/data-structures/Graph.js +190 -0
  135. package/dist/functions/data-structures/Graph.js.map +1 -0
  136. package/dist/functions/data-structures/HashMap.d.ts +13 -0
  137. package/dist/functions/data-structures/HashMap.js +128 -0
  138. package/dist/functions/data-structures/HashMap.js.map +1 -0
  139. package/dist/functions/data-structures/LRUCache.d.ts +41 -0
  140. package/dist/functions/data-structures/LRUCache.js +182 -0
  141. package/dist/functions/data-structures/LRUCache.js.map +1 -0
  142. package/dist/functions/data-structures/Trie.d.ts +16 -0
  143. package/dist/functions/data-structures/Trie.js +127 -0
  144. package/dist/functions/data-structures/Trie.js.map +1 -0
  145. package/dist/functions/data-structures/UnionFind.d.ts +8 -0
  146. package/dist/functions/data-structures/UnionFind.js +53 -0
  147. package/dist/functions/data-structures/UnionFind.js.map +1 -0
  148. package/dist/functions/date/dateRange.d.ts +1 -0
  149. package/dist/functions/date/dateRange.js +18 -0
  150. package/dist/functions/date/dateRange.js.map +1 -0
  151. package/dist/functions/date/formatDate.d.ts +1 -0
  152. package/dist/functions/date/formatDate.js +21 -0
  153. package/dist/functions/date/formatDate.js.map +1 -0
  154. package/dist/functions/date/timeAgo.d.ts +1 -0
  155. package/dist/functions/date/timeAgo.js +49 -0
  156. package/dist/functions/date/timeAgo.js.map +1 -0
  157. package/dist/functions/dom/createThrottledEventListener.d.ts +11 -0
  158. package/dist/functions/dom/createThrottledEventListener.js +51 -0
  159. package/dist/functions/dom/createThrottledEventListener.js.map +1 -0
  160. package/dist/functions/file/formatFileSize.d.ts +1 -0
  161. package/dist/functions/file/formatFileSize.js +16 -0
  162. package/dist/functions/file/formatFileSize.js.map +1 -0
  163. package/dist/functions/file/getFileExtension.d.ts +5 -0
  164. package/dist/functions/file/getFileExtension.js +18 -0
  165. package/dist/functions/file/getFileExtension.js.map +1 -0
  166. package/dist/functions/functional/cond.d.ts +1 -0
  167. package/dist/functions/functional/cond.js +15 -0
  168. package/dist/functions/functional/cond.js.map +1 -0
  169. package/dist/functions/functional/curryAdvanced.d.ts +8 -0
  170. package/dist/functions/functional/curryAdvanced.js +87 -0
  171. package/dist/functions/functional/curryAdvanced.js.map +1 -0
  172. package/dist/functions/functional/flow.d.ts +1 -0
  173. package/dist/functions/functional/flow.js +14 -0
  174. package/dist/functions/functional/flow.js.map +1 -0
  175. package/dist/functions/functional/partial.d.ts +1 -0
  176. package/dist/functions/functional/partial.js +13 -0
  177. package/dist/functions/functional/partial.js.map +1 -0
  178. package/dist/functions/functional/tap.d.ts +1 -0
  179. package/dist/functions/functional/tap.js +14 -0
  180. package/dist/functions/functional/tap.js.map +1 -0
  181. package/dist/functions/functional/until.d.ts +1 -0
  182. package/dist/functions/functional/until.js +10 -0
  183. package/dist/functions/functional/until.js.map +1 -0
  184. package/dist/functions/math/average.d.ts +1 -0
  185. package/dist/functions/math/average.js +8 -0
  186. package/dist/functions/math/average.js.map +1 -0
  187. package/dist/functions/math/median.d.ts +1 -0
  188. package/dist/functions/math/median.js +14 -0
  189. package/dist/functions/math/median.js.map +1 -0
  190. package/dist/functions/math/percentile.d.ts +1 -0
  191. package/dist/functions/math/percentile.js +18 -0
  192. package/dist/functions/math/percentile.js.map +1 -0
  193. package/dist/functions/math/sum.d.ts +1 -0
  194. package/dist/functions/math/sum.js +4 -0
  195. package/dist/functions/math/sum.js.map +1 -0
  196. package/dist/functions/number/clamp.d.ts +1 -0
  197. package/dist/functions/number/clamp.js +7 -0
  198. package/dist/functions/number/clamp.js.map +1 -0
  199. package/dist/functions/number/formatNumber.d.ts +8 -0
  200. package/dist/functions/number/formatNumber.js +16 -0
  201. package/dist/functions/number/formatNumber.js.map +1 -0
  202. package/dist/functions/number/random.d.ts +4 -0
  203. package/dist/functions/number/random.js +9 -0
  204. package/dist/functions/number/random.js.map +1 -0
  205. package/dist/functions/number/range.d.ts +1 -0
  206. package/dist/functions/number/range.js +18 -0
  207. package/dist/functions/number/range.js.map +1 -0
  208. package/dist/functions/patterns/EventEmitter.d.ts +32 -0
  209. package/dist/functions/patterns/EventEmitter.js +108 -0
  210. package/dist/functions/patterns/EventEmitter.js.map +1 -0
  211. package/dist/functions/patterns/adapter.d.ts +8 -0
  212. package/dist/functions/patterns/adapter.js +14 -0
  213. package/dist/functions/patterns/adapter.js.map +1 -0
  214. package/dist/functions/patterns/builder.d.ts +9 -0
  215. package/dist/functions/patterns/builder.js +28 -0
  216. package/dist/functions/patterns/builder.js.map +1 -0
  217. package/dist/functions/patterns/chainOfResponsibility.d.ts +9 -0
  218. package/dist/functions/patterns/chainOfResponsibility.js +19 -0
  219. package/dist/functions/patterns/chainOfResponsibility.js.map +1 -0
  220. package/dist/functions/patterns/command.d.ts +15 -0
  221. package/dist/functions/patterns/command.js +49 -0
  222. package/dist/functions/patterns/command.js.map +1 -0
  223. package/dist/functions/patterns/decorator.d.ts +10 -0
  224. package/dist/functions/patterns/decorator.js +72 -0
  225. package/dist/functions/patterns/decorator.js.map +1 -0
  226. package/dist/functions/patterns/factory.d.ts +8 -0
  227. package/dist/functions/patterns/factory.js +25 -0
  228. package/dist/functions/patterns/factory.js.map +1 -0
  229. package/dist/functions/patterns/observer.d.ts +19 -0
  230. package/dist/functions/patterns/observer.js +89 -0
  231. package/dist/functions/patterns/observer.js.map +1 -0
  232. package/dist/functions/patterns/prototype.d.ts +4 -0
  233. package/dist/functions/patterns/prototype.js +30 -0
  234. package/dist/functions/patterns/prototype.js.map +1 -0
  235. package/dist/functions/patterns/proxy.d.ts +8 -0
  236. package/dist/functions/patterns/proxy.js +41 -0
  237. package/dist/functions/patterns/proxy.js.map +1 -0
  238. package/dist/functions/patterns/singleton.d.ts +11 -0
  239. package/dist/functions/patterns/singleton.js +32 -0
  240. package/dist/functions/patterns/singleton.js.map +1 -0
  241. package/dist/functions/patterns/strategy.d.ts +12 -0
  242. package/dist/functions/patterns/strategy.js +34 -0
  243. package/dist/functions/patterns/strategy.js.map +1 -0
  244. package/dist/functions/patterns/templateMethod.d.ts +8 -0
  245. package/dist/functions/patterns/templateMethod.js +19 -0
  246. package/dist/functions/patterns/templateMethod.js.map +1 -0
  247. package/dist/functions/patterns/usePluginSystem.d.ts +11 -0
  248. package/dist/functions/patterns/usePluginSystem.js +34 -0
  249. package/dist/functions/patterns/usePluginSystem.js.map +1 -0
  250. package/dist/functions/performance/once.d.ts +1 -0
  251. package/dist/functions/performance/once.js +13 -0
  252. package/dist/functions/performance/once.js.map +1 -0
  253. package/dist/functions/performance/useCache.d.ts +18 -0
  254. package/dist/functions/performance/useCache.js +82 -0
  255. package/dist/functions/performance/useCache.js.map +1 -0
  256. package/dist/functions/principles/MyPromise.d.ts +32 -0
  257. package/dist/functions/principles/MyPromise.js +254 -0
  258. package/dist/functions/principles/MyPromise.js.map +1 -0
  259. package/dist/functions/promise/sleep.d.ts +5 -0
  260. package/dist/functions/promise/sleep.js +6 -0
  261. package/dist/functions/promise/sleep.js.map +1 -0
  262. package/dist/functions/promise/timeout.d.ts +6 -0
  263. package/dist/functions/promise/timeout.js +12 -0
  264. package/dist/functions/promise/timeout.js.map +1 -0
  265. package/dist/functions/storage/useLocalStorage.d.ts +8 -0
  266. package/dist/functions/storage/useLocalStorage.js +101 -0
  267. package/dist/functions/storage/useLocalStorage.js.map +1 -0
  268. package/dist/functions/storage/useSessionStorage.d.ts +8 -0
  269. package/dist/functions/storage/useSessionStorage.js +101 -0
  270. package/dist/functions/storage/useSessionStorage.js.map +1 -0
  271. package/dist/functions/storage/useStorage.d.ts +13 -0
  272. package/dist/functions/storage/useStorage.js +62 -0
  273. package/dist/functions/storage/useStorage.js.map +1 -0
  274. package/dist/functions/storage/useStorageWithIndexedDB.d.ts +8 -0
  275. package/dist/functions/storage/useStorageWithIndexedDB.js +132 -0
  276. package/dist/functions/storage/useStorageWithIndexedDB.js.map +1 -0
  277. package/dist/functions/string/testRegex.d.ts +20 -0
  278. package/dist/functions/string/testRegex.js +300 -0
  279. package/dist/functions/string/testRegex.js.map +1 -0
  280. package/dist/functions/string/visualizeRegexSteps.d.ts +39 -0
  281. package/dist/functions/string/visualizeRegexSteps.js +446 -0
  282. package/dist/functions/string/visualizeRegexSteps.js.map +1 -0
  283. package/dist/functions/tencent-cloud/upload.cos.d.ts +20 -0
  284. package/dist/functions/tencent-cloud/upload.cos.js +127 -0
  285. package/dist/functions/tencent-cloud/upload.cos.js.map +1 -0
  286. package/dist/functions/tree/buildTree.d.ts +7 -0
  287. package/dist/functions/tree/buildTree.js +27 -0
  288. package/dist/functions/tree/buildTree.js.map +1 -0
  289. package/dist/functions/tree/filterTree.d.ts +4 -0
  290. package/dist/functions/tree/filterTree.js +21 -0
  291. package/dist/functions/tree/filterTree.js.map +1 -0
  292. package/dist/functions/tree/findNode.d.ts +4 -0
  293. package/dist/functions/tree/findNode.js +21 -0
  294. package/dist/functions/tree/findNode.js.map +1 -0
  295. package/dist/functions/tree/flattenTree.d.ts +6 -0
  296. package/dist/functions/tree/flattenTree.js +21 -0
  297. package/dist/functions/tree/flattenTree.js.map +1 -0
  298. package/dist/functions/url/buildQueryString.d.ts +5 -0
  299. package/dist/functions/url/buildQueryString.js +15 -0
  300. package/dist/functions/url/buildQueryString.js.map +1 -0
  301. package/dist/functions/url/parseUrl.d.ts +11 -0
  302. package/dist/functions/url/parseUrl.js +34 -0
  303. package/dist/functions/url/parseUrl.js.map +1 -0
  304. package/dist/functions/utils/cachedAsync.d.ts +27 -0
  305. package/dist/functions/utils/cachedAsync.js +123 -0
  306. package/dist/functions/utils/cachedAsync.js.map +1 -0
  307. package/dist/functions/utils/errorManager.d.ts +63 -0
  308. package/dist/functions/utils/errorManager.js +199 -0
  309. package/dist/functions/utils/errorManager.js.map +1 -0
  310. package/dist/functions/utils/useAltool.d.ts +39 -0
  311. package/dist/functions/utils/useAltool.js +350 -0
  312. package/dist/functions/utils/useAltool.js.map +1 -0
  313. package/dist/functions/utils/vueDiff.d.ts +38 -0
  314. package/dist/functions/utils/vueDiff.js +333 -0
  315. package/dist/functions/utils/vueDiff.js.map +1 -0
  316. package/dist/functions/validation/isEmail.d.ts +1 -0
  317. package/dist/functions/validation/isEmail.js +8 -0
  318. package/dist/functions/validation/isEmail.js.map +1 -0
  319. package/dist/functions/validation/isIdCard.d.ts +1 -0
  320. package/dist/functions/validation/isIdCard.js +49 -0
  321. package/dist/functions/validation/isIdCard.js.map +1 -0
  322. package/dist/functions/validation/isIpAddress.d.ts +1 -0
  323. package/dist/functions/validation/isIpAddress.js +15 -0
  324. package/dist/functions/validation/isIpAddress.js.map +1 -0
  325. package/dist/functions/validation/isPhone.d.ts +1 -0
  326. package/dist/functions/validation/isPhone.js +12 -0
  327. package/dist/functions/validation/isPhone.js.map +1 -0
  328. package/dist/functions/validation/isUrl.d.ts +5 -0
  329. package/dist/functions/validation/isUrl.js +33 -0
  330. package/dist/functions/validation/isUrl.js.map +1 -0
  331. package/dist/reactive/createReactive.d.ts +10 -0
  332. package/dist/reactive/createReactive.js +50 -0
  333. package/dist/reactive/createReactive.js.map +1 -0
  334. package/dist/reactive/createReactiveErrorManager.d.ts +63 -0
  335. package/dist/reactive/createReactiveErrorManager.js +199 -0
  336. package/dist/reactive/createReactiveErrorManager.js.map +1 -0
  337. package/dist/reactive/createReactiveI18n.d.ts +27 -0
  338. package/dist/reactive/createReactiveI18n.js +119 -0
  339. package/dist/reactive/createReactiveI18n.js.map +1 -0
  340. package/dist/reactive/createReactivePermission.d.ts +40 -0
  341. package/dist/reactive/createReactivePermission.js +189 -0
  342. package/dist/reactive/createReactivePermission.js.map +1 -0
  343. package/dist/reactive/createReactivePinia.d.ts +52 -0
  344. package/dist/reactive/createReactivePinia.js +183 -0
  345. package/dist/reactive/createReactivePinia.js.map +1 -0
  346. package/dist/reactive/useReactiveCookie.d.ts +19 -0
  347. package/dist/reactive/useReactiveCookie.js +84 -0
  348. package/dist/reactive/useReactiveCookie.js.map +1 -0
  349. package/dist/reactive/useReactiveSSE.d.ts +46 -0
  350. package/dist/reactive/useReactiveSSE.js +212 -0
  351. package/dist/reactive/useReactiveSSE.js.map +1 -0
  352. package/dist/reactive/useReactiveWebsocket.d.ts +50 -0
  353. package/dist/reactive/useReactiveWebsocket.js +250 -0
  354. package/dist/reactive/useReactiveWebsocket.js.map +1 -0
  355. package/dist/vue-hooks/browser/useBattery.d.ts +16 -0
  356. package/dist/vue-hooks/browser/useBattery.js +70 -0
  357. package/dist/vue-hooks/browser/useBattery.js.map +1 -0
  358. package/dist/vue-hooks/browser/useBluetooth.d.ts +25 -0
  359. package/dist/vue-hooks/browser/useBluetooth.js +72 -0
  360. package/dist/vue-hooks/browser/useBluetooth.js.map +1 -0
  361. package/dist/vue-hooks/browser/useCamera.d.ts +21 -0
  362. package/dist/vue-hooks/browser/useCamera.js +52 -0
  363. package/dist/vue-hooks/browser/useCamera.js.map +1 -0
  364. package/dist/vue-hooks/browser/useClipboard.d.ts +18 -0
  365. package/dist/vue-hooks/browser/useClipboard.js +33 -0
  366. package/dist/vue-hooks/browser/useClipboard.js.map +1 -0
  367. package/dist/vue-hooks/browser/useFullscreen.d.ts +20 -0
  368. package/dist/vue-hooks/browser/useFullscreen.js +73 -0
  369. package/dist/vue-hooks/browser/useFullscreen.js.map +1 -0
  370. package/dist/vue-hooks/browser/useGamepad.d.ts +25 -0
  371. package/dist/vue-hooks/browser/useGamepad.js +69 -0
  372. package/dist/vue-hooks/browser/useGamepad.js.map +1 -0
  373. package/dist/vue-hooks/browser/useGeolocation.d.ts +24 -0
  374. package/dist/vue-hooks/browser/useGeolocation.js +85 -0
  375. package/dist/vue-hooks/browser/useGeolocation.js.map +1 -0
  376. package/dist/vue-hooks/browser/useMediaSession.d.ts +19 -0
  377. package/dist/vue-hooks/browser/useMediaSession.js +71 -0
  378. package/dist/vue-hooks/browser/useMediaSession.js.map +1 -0
  379. package/dist/vue-hooks/browser/useMicrophone.d.ts +23 -0
  380. package/dist/vue-hooks/browser/useMicrophone.js +66 -0
  381. package/dist/vue-hooks/browser/useMicrophone.js.map +1 -0
  382. package/dist/vue-hooks/browser/useNetwork.d.ts +23 -0
  383. package/dist/vue-hooks/browser/useNetwork.js +57 -0
  384. package/dist/vue-hooks/browser/useNetwork.js.map +1 -0
  385. package/dist/vue-hooks/browser/useOrientation.d.ts +22 -0
  386. package/dist/vue-hooks/browser/useOrientation.js +54 -0
  387. package/dist/vue-hooks/browser/useOrientation.js.map +1 -0
  388. package/dist/vue-hooks/browser/usePageVisibility.d.ts +15 -0
  389. package/dist/vue-hooks/browser/usePageVisibility.js +25 -0
  390. package/dist/vue-hooks/browser/usePageVisibility.js.map +1 -0
  391. package/dist/vue-hooks/browser/useScreenOrientation.d.ts +24 -0
  392. package/dist/vue-hooks/browser/useScreenOrientation.js +67 -0
  393. package/dist/vue-hooks/browser/useScreenOrientation.js.map +1 -0
  394. package/dist/vue-hooks/browser/useScreenWakeLock.d.ts +15 -0
  395. package/dist/vue-hooks/browser/useScreenWakeLock.js +57 -0
  396. package/dist/vue-hooks/browser/useScreenWakeLock.js.map +1 -0
  397. package/dist/vue-hooks/browser/useShare.d.ts +21 -0
  398. package/dist/vue-hooks/browser/useShare.js +39 -0
  399. package/dist/vue-hooks/browser/useShare.js.map +1 -0
  400. package/dist/vue-hooks/browser/useVibration.d.ts +17 -0
  401. package/dist/vue-hooks/browser/useVibration.js +40 -0
  402. package/dist/vue-hooks/browser/useVibration.js.map +1 -0
  403. package/dist/vue-hooks/dom/useClickOutside.d.ts +9 -0
  404. package/dist/vue-hooks/dom/useClickOutside.js +16 -0
  405. package/dist/vue-hooks/dom/useClickOutside.js.map +1 -0
  406. package/dist/vue-hooks/dom/useDraggable.d.ts +33 -0
  407. package/dist/vue-hooks/dom/useDraggable.js +163 -0
  408. package/dist/vue-hooks/dom/useDraggable.js.map +1 -0
  409. package/dist/vue-hooks/dom/useEventListener.d.ts +11 -0
  410. package/dist/vue-hooks/dom/useEventListener.js +18 -0
  411. package/dist/vue-hooks/dom/useEventListener.js.map +1 -0
  412. package/dist/vue-hooks/dom/useResizable.d.ts +50 -0
  413. package/dist/vue-hooks/dom/useResizable.js +178 -0
  414. package/dist/vue-hooks/dom/useResizable.js.map +1 -0
  415. package/dist/vue-hooks/history/useDebouncedRefHistory.d.ts +17 -0
  416. package/dist/vue-hooks/history/useDebouncedRefHistory.js +46 -0
  417. package/dist/vue-hooks/history/useDebouncedRefHistory.js.map +1 -0
  418. package/dist/vue-hooks/history/useManualRefHistory.d.ts +26 -0
  419. package/dist/vue-hooks/history/useManualRefHistory.js +80 -0
  420. package/dist/vue-hooks/history/useManualRefHistory.js.map +1 -0
  421. package/dist/vue-hooks/history/useRefHistory.d.ts +15 -0
  422. package/dist/vue-hooks/history/useRefHistory.js +41 -0
  423. package/dist/vue-hooks/history/useRefHistory.js.map +1 -0
  424. package/dist/vue-hooks/state/createGlobalState.d.ts +2 -0
  425. package/dist/vue-hooks/state/createGlobalState.js +11 -0
  426. package/dist/vue-hooks/state/createGlobalState.js.map +1 -0
  427. package/dist/vue-hooks/state/createInjectionState.d.ts +10 -0
  428. package/dist/vue-hooks/state/createInjectionState.js +20 -0
  429. package/dist/vue-hooks/state/createInjectionState.js.map +1 -0
  430. package/dist/vue-hooks/state/createSharedComposable.d.ts +2 -0
  431. package/dist/vue-hooks/state/createSharedComposable.js +13 -0
  432. package/dist/vue-hooks/state/createSharedComposable.js.map +1 -0
  433. package/dist/vue-hooks/state/injectLocal.d.ts +8 -0
  434. package/dist/vue-hooks/state/injectLocal.js +12 -0
  435. package/dist/vue-hooks/state/injectLocal.js.map +1 -0
  436. package/dist/vue-hooks/state/provideLocal.d.ts +7 -0
  437. package/dist/vue-hooks/state/provideLocal.js +7 -0
  438. package/dist/vue-hooks/state/provideLocal.js.map +1 -0
  439. package/dist/vue-hooks/state/useAsyncState.d.ts +27 -0
  440. package/dist/vue-hooks/state/useAsyncState.js +46 -0
  441. package/dist/vue-hooks/state/useAsyncState.js.map +1 -0
  442. package/dist/vue-hooks/state/useCounter.d.ts +17 -0
  443. package/dist/vue-hooks/state/useCounter.js +44 -0
  444. package/dist/vue-hooks/state/useCounter.js.map +1 -0
  445. package/dist/vue-hooks/state/useToggle.d.ts +13 -0
  446. package/dist/vue-hooks/state/useToggle.js +23 -0
  447. package/dist/vue-hooks/state/useToggle.js.map +1 -0
  448. package/dist/vue-hooks/time/useInterval.d.ts +16 -0
  449. package/dist/vue-hooks/time/useInterval.js +33 -0
  450. package/dist/vue-hooks/time/useInterval.js.map +1 -0
  451. package/dist/vue-hooks/time/useTimeout.d.ts +17 -0
  452. package/dist/vue-hooks/time/useTimeout.js +40 -0
  453. package/dist/vue-hooks/time/useTimeout.js.map +1 -0
  454. package/dist/vue-hooks/worker/useWebWorker.d.ts +25 -0
  455. package/dist/vue-hooks/worker/useWebWorker.js +207 -0
  456. package/dist/vue-hooks/worker/useWebWorker.js.map +1 -0
  457. package/dist/vue-hooks/worker/useWorkerFunction.d.ts +26 -0
  458. package/dist/vue-hooks/worker/useWorkerFunction.js +191 -0
  459. package/dist/vue-hooks/worker/useWorkerFunction.js.map +1 -0
  460. package/dist/vue-hooks/worker/useWorkerPool.d.ts +33 -0
  461. package/dist/vue-hooks/worker/useWorkerPool.js +247 -0
  462. package/dist/vue-hooks/worker/useWorkerPool.js.map +1 -0
  463. package/package.json +178 -65
  464. package/references/browser.d.ts +16 -0
  465. package/references/device.d.ts +340 -0
  466. package/references/dom.d.ts +31 -6
  467. package/references/eventsource.d.ts +121 -0
  468. package/references/node.d.ts +2 -0
  469. package/references/tencent-cloud.d.ts +38 -0
  470. package/references/websocket.d.ts +121 -0
  471. package/types/algorithm-visual.d.ts +79 -0
  472. package/types/algorithm.d.ts +85 -0
  473. package/types/tencent-cloud.d.ts +29 -0
  474. package/types/vue.d.ts +22 -0
@@ -0,0 +1,183 @@
1
+ export function createReactivePinia(deps) {
2
+ const stores = new Map();
3
+ const plugins = [];
4
+ const pinia = {
5
+ _stores: stores,
6
+ _plugins: plugins,
7
+ use(plugin) {
8
+ plugins.push(plugin);
9
+ deps.log(`插件已添加`);
10
+ return pinia;
11
+ },
12
+ getStore(id) {
13
+ return stores.get(id);
14
+ },
15
+ getAllStores() {
16
+ return Array.from(stores.values());
17
+ },
18
+ dispose() {
19
+ stores.forEach(store => store.$dispose());
20
+ stores.clear();
21
+ deps.log('所有 store 已清理');
22
+ }
23
+ };
24
+ return pinia;
25
+ }
26
+ export function defineStore(options, pinia, deps) {
27
+ return function useStore() {
28
+ const existingStore = pinia._stores.get(options.id);
29
+ if (existingStore) {
30
+ return existingStore;
31
+ }
32
+ const initialState = options.state ? options.state() : {};
33
+ const currentState = { ...initialState };
34
+ const reactiveState = deps.createReactive(currentState, {
35
+ subscribers: new Set(),
36
+ notify: () => {
37
+ },
38
+ subscribe: (listener) => {
39
+ reactiveState.subscribers.add(listener);
40
+ return () => reactiveState.subscribers.delete(listener);
41
+ },
42
+ dispose: () => reactiveState.subscribers.clear(),
43
+ createProxy: (target, reactiveDeps) => new Proxy(target, {
44
+ get(target, property) {
45
+ if (property === 'subscribe' || property === 'notify' ||
46
+ property === 'dispose' || property === 'subscribers') {
47
+ return reactiveDeps[property];
48
+ }
49
+ return target[property];
50
+ },
51
+ set(target, property, value) {
52
+ const oldValue = target[property];
53
+ target[property] = value;
54
+ reactiveDeps.notify();
55
+ return true;
56
+ },
57
+ deleteProperty(target, property) {
58
+ if (property in target) {
59
+ delete target[property];
60
+ reactiveDeps.notify();
61
+ return true;
62
+ }
63
+ return false;
64
+ }
65
+ }),
66
+ getChangePath: (target, property) => [String(property)]
67
+ });
68
+ const gettersCache = new Map();
69
+ const computedGetters = {};
70
+ if (options.getters) {
71
+ Object.keys(options.getters).forEach(key => {
72
+ Object.defineProperty(computedGetters, key, {
73
+ get() {
74
+ if (!gettersCache.has(key)) {
75
+ const getter = options.getters[key];
76
+ const value = getter(reactiveState);
77
+ gettersCache.set(key, value);
78
+ return value;
79
+ }
80
+ return gettersCache.get(key);
81
+ },
82
+ enumerable: true,
83
+ configurable: true
84
+ });
85
+ });
86
+ reactiveState.subscribe(() => {
87
+ gettersCache.clear();
88
+ });
89
+ }
90
+ const boundActions = {};
91
+ if (options.actions) {
92
+ Object.keys(options.actions).forEach(key => {
93
+ const action = options.actions[key];
94
+ boundActions[key] = function (...args) {
95
+ return action.apply(store, args);
96
+ };
97
+ });
98
+ }
99
+ const store = {
100
+ $id: options.id,
101
+ $state: reactiveState,
102
+ $patch(partialStateOrMutator) {
103
+ if (typeof partialStateOrMutator === 'function') {
104
+ partialStateOrMutator(reactiveState);
105
+ }
106
+ else {
107
+ Object.assign(reactiveState, partialStateOrMutator);
108
+ }
109
+ deps.log(`Store ${options.id}: 状态已更新`);
110
+ },
111
+ $reset() {
112
+ Object.assign(reactiveState, { ...initialState });
113
+ deps.log(`Store ${options.id}: 状态已重置`);
114
+ },
115
+ $subscribe(callback) {
116
+ const unsubscribe = reactiveState.subscribe(() => {
117
+ callback({ type: 'direct', payload: undefined }, reactiveState);
118
+ });
119
+ return unsubscribe;
120
+ },
121
+ $dispose() {
122
+ reactiveState.dispose();
123
+ pinia._stores.delete(options.id);
124
+ deps.log(`Store ${options.id}: 已销毁`);
125
+ },
126
+ ...computedGetters,
127
+ ...boundActions
128
+ };
129
+ Object.keys(initialState).forEach(key => {
130
+ Object.defineProperty(store, key, {
131
+ get() {
132
+ return reactiveState[key];
133
+ },
134
+ set(value) {
135
+ reactiveState[key] = value;
136
+ },
137
+ enumerable: true,
138
+ configurable: true
139
+ });
140
+ });
141
+ pinia._stores.set(options.id, store);
142
+ pinia._plugins.forEach(plugin => {
143
+ plugin({ pinia, store, options });
144
+ });
145
+ deps.log(`Store ${options.id}: 已创建`);
146
+ return store;
147
+ };
148
+ }
149
+ export function createPersistPlugin(deps) {
150
+ return ({ store }) => {
151
+ const storageKey = `pinia-${store.$id}`;
152
+ try {
153
+ const savedState = deps.getItem(storageKey);
154
+ if (savedState) {
155
+ store.$patch(JSON.parse(savedState));
156
+ deps.log(`Store ${store.$id}: 已从存储恢复状态`);
157
+ }
158
+ }
159
+ catch (error) {
160
+ deps.log(`Store ${store.$id}: 恢复状态失败`, error);
161
+ }
162
+ store.$subscribe((mutation, state) => {
163
+ try {
164
+ deps.setItem(storageKey, JSON.stringify(state));
165
+ }
166
+ catch (error) {
167
+ deps.log(`Store ${store.$id}: 保存状态失败`, error);
168
+ }
169
+ });
170
+ };
171
+ }
172
+ export function createLogPlugin(deps) {
173
+ return ({ store }) => {
174
+ deps.log(`[Pinia Plugin] Store ${store.$id} 已初始化`);
175
+ store.$subscribe((mutation, state) => {
176
+ deps.log(`[Pinia Plugin] Store ${store.$id} 状态变化:`, {
177
+ type: mutation.type,
178
+ state: JSON.parse(JSON.stringify(state))
179
+ });
180
+ });
181
+ };
182
+ }
183
+ //# sourceMappingURL=createReactivePinia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createReactivePinia.js","sourceRoot":"","sources":["../../src/reactive/createReactivePinia.ts"],"names":[],"mappings":"AAqHA,MAAM,UAAU,mBAAmB,CAAC,IAAe;IACjD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAA;IACvC,MAAM,OAAO,GAAkB,EAAE,CAAA;IAEjC,MAAM,KAAK,GAAkB;QAC3B,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,OAAO;QAEjB,GAAG,CAAC,MAAmB;YACrB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACpB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACjB,OAAO,KAAK,CAAA;QACd,CAAC;QAED,QAAQ,CAAC,EAAU;YACjB,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACvB,CAAC;QAED,YAAY;YACV,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;QACpC,CAAC;QAED,OAAO;YACL,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;YACzC,MAAM,CAAC,KAAK,EAAE,CAAA;YACd,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAC1B,CAAC;KACF,CAAA;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AA4CD,MAAM,UAAU,WAAW,CAKzB,OAAoC,EACpC,KAAoB,EACpB,IAAe;IAGf,OAAO,SAAS,QAAQ;QAEtB,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACnD,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,aAA+B,CAAA;QACxC,CAAC;QAGD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAO,CAAA;QAC9D,MAAM,YAAY,GAAG,EAAE,GAAG,YAAY,EAAE,CAAA;QAGxC,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;YACtD,WAAW,EAAE,IAAI,GAAG,EAAE;YACtB,MAAM,EAAE,GAAG,EAAE;YAEb,CAAC;YACD,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACtB,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBACvC,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YACzD,CAAC;YACD,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,EAAE;YAChD,WAAW,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE;gBACvD,GAAG,CAAC,MAAM,EAAE,QAAQ;oBAClB,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,QAAQ;wBACjD,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;wBACzD,OAAO,YAAY,CAAC,QAAqC,CAAC,CAAA;oBAC5D,CAAC;oBACD,OAAO,MAAM,CAAC,QAA+B,CAAC,CAAA;gBAChD,CAAC;gBACD,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK;oBACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAA+B,CAAC,CACvD;oBAAC,MAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAA;oBAGlC,YAAY,CAAC,MAAM,EAAE,CAAA;oBAErB,OAAO,IAAI,CAAA;gBACb,CAAC;gBACD,cAAc,CAAC,MAAM,EAAE,QAAQ;oBAC7B,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;wBACvB,OAAO,MAAM,CAAC,QAA+B,CAAC,CAAA;wBAC9C,YAAY,CAAC,MAAM,EAAE,CAAA;wBACrB,OAAO,IAAI,CAAA;oBACb,CAAC;oBACD,OAAO,KAAK,CAAA;gBACd,CAAC;aACF,CAAC;YACF,aAAa,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SACxD,CAAC,CAAA;QAGF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAe,CAAA;QAC3C,MAAM,eAAe,GAAwB,EAAE,CAAA;QAE/C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzC,MAAM,CAAC,cAAc,CAAC,eAAe,EAAE,GAAG,EAAE;oBAC1C,GAAG;wBAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAA;4BACpC,MAAM,KAAK,GAAG,MAAM,CAAC,aAAkB,CAAC,CAAA;4BACxC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;4BAC5B,OAAO,KAAK,CAAA;wBACd,CAAC;wBACD,OAAO,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;oBAC9B,CAAC;oBACD,UAAU,EAAE,IAAI;oBAChB,YAAY,EAAE,IAAI;iBACnB,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;YAGF,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE;gBAC3B,YAAY,CAAC,KAAK,EAAE,CAAA;YACtB,CAAC,CAAC,CAAA;QACJ,CAAC;QAGD,MAAM,YAAY,GAAwB,EAAE,CAAA;QAC5C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACzC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAQ,CAAC,GAAG,CAAC,CAAA;gBACpC,YAAY,CAAC,GAAG,CAAC,GAAG,UAA+B,GAAG,IAAW;oBAC/D,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;gBAClC,CAAC,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAGD,MAAM,KAAK,GAAmB;YAC5B,GAAG,EAAE,OAAO,CAAC,EAAE;YACf,MAAM,EAAE,aAAkB;YAE1B,MAAM,CAAC,qBAAqB;gBAC1B,IAAI,OAAO,qBAAqB,KAAK,UAAU,EAAE,CAAC;oBAChD,qBAAqB,CAAC,aAAkB,CAAC,CAAA;gBAC3C,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAA;gBACrD,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,EAAE,SAAS,CAAC,CAAA;YACxC,CAAC;YAED,MAAM;gBACJ,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,GAAG,YAAY,EAAE,CAAC,CAAA;gBACjD,IAAI,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,EAAE,SAAS,CAAC,CAAA;YACxC,CAAC;YAED,UAAU,CAAC,QAAQ;gBACjB,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC,GAAG,EAAE;oBAC/C,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,aAAkB,CAAC,CAAA;gBACtE,CAAC,CAAC,CAAA;gBACF,OAAO,WAAW,CAAA;YACpB,CAAC;YAED,QAAQ;gBACN,aAAa,CAAC,OAAO,EAAE,CAAA;gBACvB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gBAChC,IAAI,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;YACtC,CAAC;YAGD,GAAG,eAAe;YAClB,GAAG,YAAY;SAChB,CAAA;QAGD,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACtC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,EAAE;gBAChC,GAAG;oBACD,OAAO,aAAa,CAAC,GAAc,CAAC,CAAA;gBACtC,CAAC;gBACD,GAAG,CAAC,KAAK;oBACP,aAAa,CAAC,GAAc,CAAC,GAAG,KAAK,CAAA;gBACvC,CAAC;gBACD,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,IAAI;aACnB,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAGF,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QAGpC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC9B,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;QACnC,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,EAAE,OAAO,CAAC,CAAA;QAEpC,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;AACH,CAAC;AAmBD,MAAM,UAAU,mBAAmB,CAAC,IAInC;IACC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACnB,MAAM,UAAU,GAAG,SAAS,KAAK,CAAC,GAAG,EAAE,CAAA;QAGvC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YAC3C,IAAI,UAAU,EAAE,CAAC;gBACf,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;gBACpC,IAAI,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,GAAG,YAAY,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,CAAA;QAC/C,CAAC;QAGD,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YACnC,IAAI,CAAC;gBACH,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;YACjD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,GAAG,UAAU,EAAE,KAAK,CAAC,CAAA;YAC/C,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC;AAiBD,MAAM,UAAU,eAAe,CAAC,IAE/B;IACC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACnB,IAAI,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,GAAG,OAAO,CAAC,CAAA;QAGlD,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;YACnC,IAAI,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,GAAG,QAAQ,EAAE;gBAClD,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aACzC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,19 @@
1
+ export interface UseReactiveCookieDeps {
2
+ getCookie: () => string;
3
+ setCookie: (value: string) => void;
4
+ }
5
+ export interface CookieOptions {
6
+ days?: number;
7
+ path?: string;
8
+ domain?: string;
9
+ secure?: boolean;
10
+ sameSite?: 'Strict' | 'Lax' | 'None';
11
+ }
12
+ export interface ReactiveCookie {
13
+ value: string | null;
14
+ set: (value: string, options?: CookieOptions) => void;
15
+ remove: (options?: Pick<CookieOptions, 'path' | 'domain'>) => void;
16
+ subscribe: (listener: () => void) => () => void;
17
+ dispose: () => void;
18
+ }
19
+ export declare function useReactiveCookie(name: string, deps: UseReactiveCookieDeps): ReactiveCookie;
@@ -0,0 +1,84 @@
1
+ import { createReactive } from './createReactive';
2
+ export function useReactiveCookie(name, deps) {
3
+ const parseCookie = () => {
4
+ const cookies = deps.getCookie().split(';');
5
+ for (const cookie of cookies) {
6
+ const [key, value] = cookie.trim().split('=');
7
+ if (key === name) {
8
+ return decodeURIComponent(value);
9
+ }
10
+ }
11
+ return null;
12
+ };
13
+ const state = createReactive({ value: parseCookie() }, {
14
+ subscribers: new Set(),
15
+ notify: () => { },
16
+ subscribe: (listener) => {
17
+ const subs = new Set();
18
+ subs.add(listener);
19
+ return () => subs.delete(listener);
20
+ },
21
+ dispose: () => { },
22
+ createProxy: (target, deps) => {
23
+ return new Proxy(target, {
24
+ get(target, property) {
25
+ if (property === 'subscribe' || property === 'notify' || property === 'dispose') {
26
+ return deps[property];
27
+ }
28
+ return target[property];
29
+ },
30
+ set(target, property, value) {
31
+ target[property] = value;
32
+ deps.notify();
33
+ return true;
34
+ }
35
+ });
36
+ },
37
+ getChangePath: (target, property) => [String(property)]
38
+ });
39
+ const set = (value, options = {}) => {
40
+ const { days, path = '/', domain, secure = false, sameSite = 'Lax' } = options;
41
+ let cookieString = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;
42
+ if (days) {
43
+ const date = new Date();
44
+ date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
45
+ cookieString += `; expires=${date.toUTCString()}`;
46
+ }
47
+ if (path) {
48
+ cookieString += `; path=${path}`;
49
+ }
50
+ if (domain) {
51
+ cookieString += `; domain=${domain}`;
52
+ }
53
+ if (secure) {
54
+ cookieString += '; secure';
55
+ }
56
+ if (sameSite) {
57
+ cookieString += `; SameSite=${sameSite}`;
58
+ }
59
+ deps.setCookie(cookieString);
60
+ state.value = value;
61
+ };
62
+ const remove = (options = {}) => {
63
+ const { path = '/', domain } = options;
64
+ let cookieString = `${encodeURIComponent(name)}=; expires=Thu, 01 Jan 1970 00:00:00 GMT`;
65
+ if (path) {
66
+ cookieString += `; path=${path}`;
67
+ }
68
+ if (domain) {
69
+ cookieString += `; domain=${domain}`;
70
+ }
71
+ deps.setCookie(cookieString);
72
+ state.value = null;
73
+ };
74
+ return {
75
+ get value() {
76
+ return state.value;
77
+ },
78
+ set,
79
+ remove,
80
+ subscribe: state.subscribe,
81
+ dispose: state.dispose
82
+ };
83
+ }
84
+ //# sourceMappingURL=useReactiveCookie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReactiveCookie.js","sourceRoot":"","sources":["../../src/reactive/useReactiveCookie.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { EventSourceConstructor, EventSource } from '../../references/eventsource.d';
2
+ import type { setTimeout, clearTimeout } from '../../references/timer.d';
3
+ export declare enum SSEStatus {
4
+ CONNECTING = "CONNECTING",
5
+ CONNECTED = "CONNECTED",
6
+ DISCONNECTED = "DISCONNECTED",
7
+ ERROR = "ERROR"
8
+ }
9
+ export interface SSEReconnectOptions {
10
+ enabled?: boolean;
11
+ delay?: number;
12
+ maxRetries?: number;
13
+ retryDelayMultiplier?: number;
14
+ }
15
+ export interface UseReactiveSSEOptions {
16
+ withCredentials?: boolean;
17
+ immediate?: boolean;
18
+ reconnect?: SSEReconnectOptions;
19
+ onConnected?: (es: EventSource) => void;
20
+ onDisconnected?: (es: EventSource, event: any) => void;
21
+ onError?: (es: EventSource, event: any) => void;
22
+ onMessage?: (es: EventSource, event: any) => void;
23
+ }
24
+ export interface ReactiveSSEState {
25
+ status: SSEStatus;
26
+ data: string | null;
27
+ lastEventId: string;
28
+ error: Error | null;
29
+ retryCount: number;
30
+ es: EventSource | null;
31
+ }
32
+ export interface ReactiveSSEReturn {
33
+ state: ReactiveSSEState;
34
+ connect: () => void;
35
+ disconnect: () => void;
36
+ addEventListener: (type: string, listener: (event: any) => void) => () => void;
37
+ subscribe: (listener: () => void) => () => void;
38
+ dispose: () => void;
39
+ }
40
+ export interface UseReactiveSSEDeps {
41
+ EventSource: EventSourceConstructor;
42
+ setTimeout: typeof setTimeout;
43
+ clearTimeout: typeof clearTimeout;
44
+ log?: (...args: any[]) => void;
45
+ }
46
+ export declare function useReactiveSSE(url: string, options: UseReactiveSSEOptions | undefined, deps: UseReactiveSSEDeps): ReactiveSSEReturn;
@@ -0,0 +1,212 @@
1
+ export var SSEStatus;
2
+ (function (SSEStatus) {
3
+ SSEStatus["CONNECTING"] = "CONNECTING";
4
+ SSEStatus["CONNECTED"] = "CONNECTED";
5
+ SSEStatus["DISCONNECTED"] = "DISCONNECTED";
6
+ SSEStatus["ERROR"] = "ERROR";
7
+ })(SSEStatus || (SSEStatus = {}));
8
+ export function useReactiveSSE(url, options = {}, deps) {
9
+ const defaultOptions = {
10
+ withCredentials: false,
11
+ immediate: true,
12
+ reconnect: {
13
+ enabled: true,
14
+ delay: 3000,
15
+ maxRetries: 5,
16
+ retryDelayMultiplier: 1.5
17
+ },
18
+ onConnected: () => { },
19
+ onDisconnected: () => { },
20
+ onError: () => { },
21
+ onMessage: () => { }
22
+ };
23
+ const config = { ...defaultOptions, ...options };
24
+ if (options.reconnect) {
25
+ config.reconnect = { ...defaultOptions.reconnect, ...options.reconnect };
26
+ }
27
+ const state = {
28
+ status: SSEStatus.DISCONNECTED,
29
+ data: null,
30
+ lastEventId: '',
31
+ error: null,
32
+ retryCount: 0,
33
+ es: null
34
+ };
35
+ const subscribers = new Set();
36
+ const notify = () => {
37
+ subscribers.forEach(listener => listener());
38
+ };
39
+ let reconnectTimer = null;
40
+ let isManualClose = false;
41
+ let isReconnecting = false;
42
+ const customListeners = new Map();
43
+ const clearReconnect = () => {
44
+ if (reconnectTimer !== null) {
45
+ deps.clearTimeout(reconnectTimer);
46
+ reconnectTimer = null;
47
+ }
48
+ };
49
+ const attemptReconnect = () => {
50
+ deps.log?.(`[SSE-重连] 尝试重连: enabled=${config.reconnect.enabled}, isManualClose=${isManualClose}, isReconnecting=${isReconnecting}`);
51
+ if (!config.reconnect.enabled || isManualClose || isReconnecting) {
52
+ deps.log?.('[SSE-重连] 跳过重连');
53
+ return;
54
+ }
55
+ const maxRetries = config.reconnect.maxRetries || 0;
56
+ if (maxRetries > 0 && state.retryCount >= maxRetries) {
57
+ deps.log?.(`[SSE-重连] 已达到最大重连次数 ${maxRetries}`);
58
+ state.status = SSEStatus.ERROR;
59
+ state.error = new Error(`重连失败:已达到最大重连次数 ${maxRetries}`);
60
+ notify();
61
+ isReconnecting = false;
62
+ return;
63
+ }
64
+ const delay = (config.reconnect.delay || 3000) * Math.pow(config.reconnect.retryDelayMultiplier || 1, state.retryCount);
65
+ deps.log?.(`[SSE-重连] 将在 ${delay}ms 后重连(第 ${state.retryCount + 1} 次)`);
66
+ isReconnecting = true;
67
+ clearReconnect();
68
+ state.status = SSEStatus.CONNECTING;
69
+ notify();
70
+ reconnectTimer = deps.setTimeout(() => {
71
+ state.retryCount++;
72
+ deps.log?.(`[SSE-重连] 开始第 ${state.retryCount} 次重连`);
73
+ try {
74
+ connect();
75
+ }
76
+ finally {
77
+ isReconnecting = false;
78
+ }
79
+ }, delay);
80
+ };
81
+ const connect = () => {
82
+ if (state.es && state.es.readyState !== deps.EventSource.CLOSED) {
83
+ deps.log?.('[SSE] 已有活跃连接,跳过');
84
+ return;
85
+ }
86
+ isManualClose = false;
87
+ state.status = SSEStatus.CONNECTING;
88
+ state.error = null;
89
+ notify();
90
+ try {
91
+ const eventSourceInit = config.withCredentials
92
+ ? { withCredentials: true }
93
+ : undefined;
94
+ const es = new deps.EventSource(url, eventSourceInit);
95
+ es.onopen = (event) => {
96
+ if (isManualClose) {
97
+ deps.log?.('[SSE] 连接建立但已标记为手动关闭,忽略');
98
+ es.close();
99
+ return;
100
+ }
101
+ deps.log?.('[SSE] 连接成功');
102
+ state.status = SSEStatus.CONNECTED;
103
+ state.error = null;
104
+ state.retryCount = 0;
105
+ state.es = es;
106
+ customListeners.forEach((listeners, eventType) => {
107
+ listeners.forEach(listener => {
108
+ deps.log?.(`[SSE] 注册事件监听器: ${eventType}`);
109
+ es.addEventListener(eventType, listener);
110
+ });
111
+ });
112
+ notify();
113
+ config.onConnected(es);
114
+ };
115
+ es.onmessage = (event) => {
116
+ deps.log?.('[SSE] 收到消息:', event.data);
117
+ state.data = event.data;
118
+ state.lastEventId = event.lastEventId;
119
+ notify();
120
+ config.onMessage(es, event);
121
+ };
122
+ es.onerror = (event) => {
123
+ deps.log?.('[SSE] 连接错误');
124
+ state.error = new Error('SSE 连接错误');
125
+ notify();
126
+ config.onError(es, event);
127
+ if (es.readyState === deps.EventSource.CLOSED) {
128
+ deps.log?.('[SSE] 连接已关闭');
129
+ if (state.es === es) {
130
+ state.status = SSEStatus.DISCONNECTED;
131
+ state.es = null;
132
+ notify();
133
+ }
134
+ config.onDisconnected(es, event);
135
+ if (!isManualClose && !isReconnecting) {
136
+ attemptReconnect();
137
+ }
138
+ }
139
+ };
140
+ }
141
+ catch (error) {
142
+ deps.log?.('[SSE] 创建连接失败:', error);
143
+ state.status = SSEStatus.ERROR;
144
+ state.error = error instanceof Error ? error : new Error('SSE 创建失败');
145
+ notify();
146
+ attemptReconnect();
147
+ }
148
+ };
149
+ const disconnect = () => {
150
+ deps.log?.('[SSE] 手动断开连接');
151
+ isManualClose = true;
152
+ isReconnecting = false;
153
+ clearReconnect();
154
+ const es = state.es;
155
+ if (es) {
156
+ state.es = null;
157
+ try {
158
+ es.close();
159
+ }
160
+ catch (error) {
161
+ deps.log?.('[SSE] 关闭连接失败(忽略):', error);
162
+ }
163
+ }
164
+ state.status = SSEStatus.DISCONNECTED;
165
+ state.retryCount = 0;
166
+ notify();
167
+ };
168
+ const addEventListener = (type, listener) => {
169
+ if (!customListeners.has(type)) {
170
+ customListeners.set(type, new Set());
171
+ }
172
+ customListeners.get(type).add(listener);
173
+ if (state.es) {
174
+ state.es.addEventListener(type, listener);
175
+ }
176
+ return () => {
177
+ const listeners = customListeners.get(type);
178
+ if (listeners) {
179
+ listeners.delete(listener);
180
+ if (listeners.size === 0) {
181
+ customListeners.delete(type);
182
+ }
183
+ }
184
+ if (state.es) {
185
+ state.es.removeEventListener(type, listener);
186
+ }
187
+ };
188
+ };
189
+ const subscribe = (listener) => {
190
+ subscribers.add(listener);
191
+ return () => subscribers.delete(listener);
192
+ };
193
+ const dispose = () => {
194
+ disconnect();
195
+ subscribers.clear();
196
+ customListeners.clear();
197
+ isManualClose = false;
198
+ isReconnecting = false;
199
+ };
200
+ if (config.immediate) {
201
+ connect();
202
+ }
203
+ return {
204
+ state,
205
+ connect,
206
+ disconnect,
207
+ addEventListener,
208
+ subscribe,
209
+ dispose
210
+ };
211
+ }
212
+ //# sourceMappingURL=useReactiveSSE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useReactiveSSE.js","sourceRoot":"","sources":["../../src/reactive/useReactiveSSE.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,sCAAyB,CAAA;IACzB,oCAAuB,CAAA;IACvB,0CAA6B,CAAA;IAC7B,4BAAe,CAAA;AACjB,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AA2ID,MAAM,UAAU,cAAc,CAC5B,GAAW,EACX,UAAiC,EAAE,EACnC,IAAwB;IAGxB,MAAM,cAAc,GAAoC;QACtD,eAAe,EAAE,KAAK;QACtB,SAAS,EAAE,IAAI;QACf,SAAS,EAAE;YACT,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,CAAC;YACb,oBAAoB,EAAE,GAAG;SAC1B;QACD,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;QACrB,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;QACxB,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;QACjB,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC;KACpB,CAAA;IAED,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,OAAO,EAAE,CAAA;IAChD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,CAAC,SAAS,GAAG,EAAE,GAAG,cAAc,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAA;IAC1E,CAAC;IAGD,MAAM,KAAK,GAAqB;QAC9B,MAAM,EAAE,SAAS,CAAC,YAAY;QAC9B,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,EAAE;QACf,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC;QACb,EAAE,EAAE,IAAI;KACT,CAAA;IAGD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAc,CAAA;IAGzC,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAA;IAGD,IAAI,cAAc,GAAQ,IAAI,CAAA;IAG9B,IAAI,aAAa,GAAG,KAAK,CAAA;IACzB,IAAI,cAAc,GAAG,KAAK,CAAA;IAG1B,MAAM,eAAe,GAAG,IAAI,GAAG,EAAqC,CAAA;IAGpE,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAA;YACjC,cAAc,GAAG,IAAI,CAAA;QACvB,CAAC;IACH,CAAC,CAAA;IAGD,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,IAAI,CAAC,GAAG,EAAE,CAAC,0BAA0B,MAAM,CAAC,SAAS,CAAC,OAAO,mBAAmB,aAAa,oBAAoB,cAAc,EAAE,CAAC,CAAA;QAElI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,IAAI,aAAa,IAAI,cAAc,EAAE,CAAC;YACjE,IAAI,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAA;YAC3B,OAAM;QACR,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,CAAA;QACnD,IAAI,UAAU,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,IAAI,UAAU,EAAE,CAAC;YACrD,IAAI,CAAC,GAAG,EAAE,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAA;YAC9C,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAA;YAC9B,KAAK,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAA;YACvD,MAAM,EAAE,CAAA;YACR,cAAc,GAAG,KAAK,CAAA;YACtB,OAAM;QACR,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CACvD,MAAM,CAAC,SAAS,CAAC,oBAAoB,IAAI,CAAC,EAC1C,KAAK,CAAC,UAAU,CACjB,CAAA;QAED,IAAI,CAAC,GAAG,EAAE,CAAC,eAAe,KAAK,YAAY,KAAK,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,CAAA;QACrE,cAAc,GAAG,IAAI,CAAA;QACrB,cAAc,EAAE,CAAA;QAEhB,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,UAAU,CAAA;QACnC,MAAM,EAAE,CAAA;QAER,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;YACpC,KAAK,CAAC,UAAU,EAAE,CAAA;YAClB,IAAI,CAAC,GAAG,EAAE,CAAC,gBAAgB,KAAK,CAAC,UAAU,MAAM,CAAC,CAAA;YAClD,IAAI,CAAC;gBACH,OAAO,EAAE,CAAA;YACX,CAAC;oBAAS,CAAC;gBACT,cAAc,GAAG,KAAK,CAAA;YACxB,CAAC;QACH,CAAC,EAAE,KAAK,CAAC,CAAA;IACX,CAAC,CAAA;IAGD,MAAM,OAAO,GAAG,GAAG,EAAE;QAEnB,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YAChE,IAAI,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAA;YAC7B,OAAM;QACR,CAAC;QAGD,aAAa,GAAG,KAAK,CAAA;QAGrB,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,UAAU,CAAA;QACnC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAA;QAClB,MAAM,EAAE,CAAA;QAER,IAAI,CAAC;YACH,MAAM,eAAe,GAAgC,MAAM,CAAC,eAAe;gBACzE,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE;gBAC3B,CAAC,CAAC,SAAS,CAAA;YAEb,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,CAAC,CAAA;YAErD,EAAE,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,EAAE;gBAEpB,IAAI,aAAa,EAAE,CAAC;oBAClB,IAAI,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,CAAA;oBACpC,EAAE,CAAC,KAAK,EAAE,CAAA;oBACV,OAAM;gBACR,CAAC;gBAED,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAA;gBACxB,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAA;gBAClC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAA;gBAClB,KAAK,CAAC,UAAU,GAAG,CAAC,CAAA;gBACpB,KAAK,CAAC,EAAE,GAAG,EAAE,CAAA;gBAGb,eAAe,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;oBAC/C,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;wBAC3B,IAAI,CAAC,GAAG,EAAE,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAA;wBACzC,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAe,CAAC,CAAA;oBACjD,CAAC,CAAC,CAAA;gBACJ,CAAC,CAAC,CAAA;gBAEF,MAAM,EAAE,CAAA;gBACR,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YACxB,CAAC,CAAA;YAED,EAAE,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;gBACvB,IAAI,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;gBACrC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;gBACvB,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAA;gBACrC,MAAM,EAAE,CAAA;gBACR,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YAC7B,CAAC,CAAA;YAED,EAAE,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;gBACrB,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAA;gBACxB,KAAK,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;gBACnC,MAAM,EAAE,CAAA;gBACR,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;gBAIzB,IAAI,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;oBAC9C,IAAI,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAA;oBAGzB,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;wBACpB,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,YAAY,CAAA;wBACrC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAA;wBACf,MAAM,EAAE,CAAA;oBACV,CAAC;oBAED,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;oBAGhC,IAAI,CAAC,aAAa,IAAI,CAAC,cAAc,EAAE,CAAC;wBACtC,gBAAgB,EAAE,CAAA;oBACpB,CAAC;gBACH,CAAC;YACH,CAAC,CAAA;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,KAAK,CAAC,CAAA;YAClC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAA;YAC9B,KAAK,CAAC,KAAK,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;YACpE,MAAM,EAAE,CAAA;YAER,gBAAgB,EAAE,CAAA;QACpB,CAAC;IACH,CAAC,CAAA;IAGD,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,CAAA;QAG1B,aAAa,GAAG,IAAI,CAAA;QACpB,cAAc,GAAG,KAAK,CAAA;QAGtB,cAAc,EAAE,CAAA;QAGhB,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAA;QACnB,IAAI,EAAE,EAAE,CAAC;YACP,KAAK,CAAC,EAAE,GAAG,IAAI,CAAA;YACf,IAAI,CAAC;gBACH,EAAE,CAAC,KAAK,EAAE,CAAA;YACZ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,EAAE,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;YACxC,CAAC;QACH,CAAC;QAGD,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,YAAY,CAAA;QACrC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAA;QACpB,MAAM,EAAE,CAAA;IACV,CAAC,CAAA;IAGD,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,QAA8B,EAAgB,EAAE;QACtF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;QACtC,CAAC;QACD,eAAe,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAGxC,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;YACb,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAe,CAAC,CAAA;QAClD,CAAC;QAGD,OAAO,GAAG,EAAE;YACV,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAC3C,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;gBAC1B,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACzB,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBAC9B,CAAC;YACH,CAAC;YACD,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;gBACb,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAe,CAAC,CAAA;YACrD,CAAC;QACH,CAAC,CAAA;IACH,CAAC,CAAA;IAGD,MAAM,SAAS,GAAG,CAAC,QAAoB,EAAgB,EAAE;QACvD,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACzB,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC3C,CAAC,CAAA;IAGD,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,UAAU,EAAE,CAAA;QACZ,WAAW,CAAC,KAAK,EAAE,CAAA;QACnB,eAAe,CAAC,KAAK,EAAE,CAAA;QAEvB,aAAa,GAAG,KAAK,CAAA;QACrB,cAAc,GAAG,KAAK,CAAA;IACxB,CAAC,CAAA;IAGD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,OAAO;QACL,KAAK;QACL,OAAO;QACP,UAAU;QACV,gBAAgB;QAChB,SAAS;QACT,OAAO;KACR,CAAA;AACH,CAAC"}
@@ -0,0 +1,50 @@
1
+ import type { WebSocketConstructor, WebSocket } from '../../references/websocket.d';
2
+ import type { setTimeout, clearTimeout } from '../../references/timer.d';
3
+ import type { Blob } from '../../references/blob.d';
4
+ export type WebSocketMessage = string | ArrayBufferLike | Blob | ArrayBufferView;
5
+ export declare enum WebSocketStatus {
6
+ CONNECTING = "CONNECTING",
7
+ CONNECTED = "CONNECTED",
8
+ DISCONNECTED = "DISCONNECTED",
9
+ ERROR = "ERROR"
10
+ }
11
+ export interface ReconnectOptions {
12
+ enabled?: boolean;
13
+ delay?: number;
14
+ maxRetries?: number;
15
+ retryDelayMultiplier?: number;
16
+ }
17
+ export interface UseReactiveWebsocketOptions {
18
+ protocols?: string | string[];
19
+ immediate?: boolean;
20
+ heartbeat?: number;
21
+ heartbeatMessage?: WebSocketMessage;
22
+ heartbeatTimeout?: number;
23
+ reconnect?: ReconnectOptions;
24
+ onConnected?: (ws: WebSocket) => void;
25
+ onDisconnected?: (ws: WebSocket, event: any) => void;
26
+ onError?: (ws: WebSocket, event: any) => void;
27
+ onMessage?: (ws: WebSocket, event: any) => void;
28
+ }
29
+ export interface ReactiveWebSocketState {
30
+ status: WebSocketStatus;
31
+ data: any;
32
+ error: Error | null;
33
+ retryCount: number;
34
+ ws: WebSocket | null;
35
+ }
36
+ export interface ReactiveWebSocketReturn {
37
+ state: ReactiveWebSocketState;
38
+ send: (data: WebSocketMessage) => boolean;
39
+ connect: () => void;
40
+ disconnect: (code?: number, reason?: string) => void;
41
+ subscribe: (listener: () => void) => () => void;
42
+ dispose: () => void;
43
+ }
44
+ export interface UseReactiveWebsocketDeps {
45
+ WebSocket: WebSocketConstructor;
46
+ setTimeout: typeof setTimeout;
47
+ clearTimeout: typeof clearTimeout;
48
+ log?: (...args: any[]) => void;
49
+ }
50
+ export declare function useReactiveWebsocket(url: string, options: UseReactiveWebsocketOptions | undefined, deps: UseReactiveWebsocketDeps): ReactiveWebSocketReturn;