yummies 5.4.6 → 5.4.8

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 (508) hide show
  1. package/async.cjs +70 -0
  2. package/async.d.cts +28 -0
  3. package/async.d.cts.map +1 -0
  4. package/async.d.ts +28 -0
  5. package/async.d.ts.map +1 -0
  6. package/async.js +62 -0
  7. package/common.cjs +18 -0
  8. package/common.d.cts +15 -0
  9. package/common.d.cts.map +1 -0
  10. package/common.d.ts +15 -0
  11. package/common.d.ts.map +1 -0
  12. package/common.js +14 -0
  13. package/complex/counter.cjs +21 -0
  14. package/complex/counter.d.cts +15 -0
  15. package/complex/counter.d.cts.map +1 -0
  16. package/complex/counter.d.ts +15 -0
  17. package/complex/counter.d.ts.map +1 -0
  18. package/complex/counter.js +17 -0
  19. package/complex/global-config.cjs +46 -0
  20. package/complex/global-config.d.cts +11 -0
  21. package/complex/global-config.d.cts.map +1 -0
  22. package/complex/global-config.d.ts +11 -0
  23. package/complex/global-config.d.ts.map +1 -0
  24. package/complex/global-config.js +41 -0
  25. package/complex/index.cjs +19 -0
  26. package/complex/index.d.cts +4 -0
  27. package/complex/index.d.cts.map +1 -0
  28. package/complex/index.d.ts +4 -0
  29. package/complex/index.d.ts.map +1 -0
  30. package/complex/index.js +3 -0
  31. package/complex/modules-factory.cjs +50 -0
  32. package/complex/modules-factory.d.cts +49 -0
  33. package/complex/modules-factory.d.cts.map +1 -0
  34. package/complex/modules-factory.d.ts +49 -0
  35. package/complex/modules-factory.d.ts.map +1 -0
  36. package/complex/modules-factory.js +46 -0
  37. package/cookie.cjs +13 -0
  38. package/cookie.d.cts +3 -0
  39. package/cookie.d.cts.map +1 -0
  40. package/cookie.d.ts +3 -0
  41. package/cookie.d.ts.map +1 -0
  42. package/cookie.js +9 -0
  43. package/css.cjs +28 -0
  44. package/css.d.cts +36 -0
  45. package/css.d.cts.map +1 -0
  46. package/css.d.ts +36 -0
  47. package/css.d.ts.map +1 -0
  48. package/css.js +20 -0
  49. package/data.cjs +58 -0
  50. package/data.d.cts +4 -0
  51. package/data.d.cts.map +1 -0
  52. package/data.d.ts +4 -0
  53. package/data.d.ts.map +1 -0
  54. package/data.js +52 -0
  55. package/date-time.cjs +171 -0
  56. package/date-time.d.cts +28 -0
  57. package/date-time.d.cts.map +1 -0
  58. package/date-time.d.ts +28 -0
  59. package/date-time.d.ts.map +1 -0
  60. package/date-time.js +160 -0
  61. package/device.cjs +28 -0
  62. package/device.d.cts +8 -0
  63. package/device.d.cts.map +1 -0
  64. package/device.d.ts +8 -0
  65. package/device.d.ts.map +1 -0
  66. package/device.js +21 -0
  67. package/encodings.cjs +270 -0
  68. package/encodings.d.cts +2 -0
  69. package/encodings.d.cts.map +1 -0
  70. package/encodings.d.ts +2 -0
  71. package/encodings.d.ts.map +1 -0
  72. package/encodings.js +267 -0
  73. package/errors.cjs +34 -0
  74. package/errors.d.cts +19 -0
  75. package/errors.d.cts.map +1 -0
  76. package/errors.d.ts +19 -0
  77. package/errors.d.ts.map +1 -0
  78. package/errors.js +30 -0
  79. package/file.cjs +29 -0
  80. package/file.d.cts +3 -0
  81. package/file.d.cts.map +1 -0
  82. package/file.d.ts +3 -0
  83. package/file.d.ts.map +1 -0
  84. package/file.js +24 -0
  85. package/format/_exports.cjs +20 -0
  86. package/format/_exports.d.cts +5 -0
  87. package/format/_exports.d.cts.map +1 -0
  88. package/format/_exports.d.ts +5 -0
  89. package/format/_exports.d.ts.map +1 -0
  90. package/format/_exports.js +4 -0
  91. package/format/constants.cjs +6 -0
  92. package/format/constants.d.cts +4 -0
  93. package/format/constants.d.cts.map +1 -0
  94. package/format/constants.d.ts +4 -0
  95. package/format/constants.d.ts.map +1 -0
  96. package/{src/format/constants.ts → format/constants.js} +0 -2
  97. package/format/index.cjs +40 -0
  98. package/format/index.d.cts +3 -0
  99. package/format/index.d.cts.map +1 -0
  100. package/format/index.d.ts +3 -0
  101. package/format/index.d.ts.map +1 -0
  102. package/{src/format/index.ts → format/index.js} +1 -2
  103. package/format/number.cjs +48 -0
  104. package/format/number.d.cts +36 -0
  105. package/format/number.d.cts.map +1 -0
  106. package/format/number.d.ts +36 -0
  107. package/format/number.d.ts.map +1 -0
  108. package/format/number.js +44 -0
  109. package/format/percent.cjs +27 -0
  110. package/format/percent.d.cts +15 -0
  111. package/format/percent.d.cts.map +1 -0
  112. package/format/percent.d.ts +15 -0
  113. package/format/percent.d.ts.map +1 -0
  114. package/format/percent.js +23 -0
  115. package/format/skip-spaces.cjs +8 -0
  116. package/format/skip-spaces.d.cts +5 -0
  117. package/format/skip-spaces.d.cts.map +1 -0
  118. package/format/skip-spaces.d.ts +5 -0
  119. package/format/skip-spaces.d.ts.map +1 -0
  120. package/format/skip-spaces.js +4 -0
  121. package/html.cjs +202 -0
  122. package/html.d.cts +44 -0
  123. package/html.d.cts.map +1 -0
  124. package/html.d.ts +44 -0
  125. package/html.d.ts.map +1 -0
  126. package/html.js +182 -0
  127. package/id.cjs +76 -0
  128. package/id.d.cts +63 -0
  129. package/id.d.cts.map +1 -0
  130. package/id.d.ts +63 -0
  131. package/id.d.ts.map +1 -0
  132. package/{src/id.ts → id.js} +6 -16
  133. package/imports.cjs +45 -0
  134. package/imports.d.cts +15 -0
  135. package/imports.d.cts.map +1 -0
  136. package/imports.d.ts +15 -0
  137. package/imports.d.ts.map +1 -0
  138. package/imports.js +40 -0
  139. package/math.cjs +23 -0
  140. package/math.d.cts +13 -0
  141. package/math.d.cts.map +1 -0
  142. package/math.d.ts +13 -0
  143. package/math.d.ts.map +1 -0
  144. package/math.js +17 -0
  145. package/media.cjs +115 -0
  146. package/media.d.cts +20 -0
  147. package/media.d.cts.map +1 -0
  148. package/media.d.ts +20 -0
  149. package/media.d.ts.map +1 -0
  150. package/media.js +103 -0
  151. package/mobx/apply-observable.cjs +16 -0
  152. package/mobx/apply-observable.d.cts +4 -0
  153. package/mobx/apply-observable.d.cts.map +1 -0
  154. package/mobx/apply-observable.d.ts +4 -0
  155. package/mobx/apply-observable.d.ts.map +1 -0
  156. package/mobx/apply-observable.js +12 -0
  157. package/mobx/create-enhanced-atom.cjs +16 -0
  158. package/mobx/create-enhanced-atom.d.cts +11 -0
  159. package/mobx/create-enhanced-atom.d.cts.map +1 -0
  160. package/mobx/create-enhanced-atom.d.ts +11 -0
  161. package/mobx/create-enhanced-atom.d.ts.map +1 -0
  162. package/mobx/create-enhanced-atom.js +12 -0
  163. package/mobx/deep-observable-struct.cjs +61 -0
  164. package/mobx/deep-observable-struct.d.cts +7 -0
  165. package/mobx/deep-observable-struct.d.cts.map +1 -0
  166. package/mobx/deep-observable-struct.d.ts +7 -0
  167. package/mobx/deep-observable-struct.d.ts.map +1 -0
  168. package/mobx/deep-observable-struct.js +57 -0
  169. package/mobx/get-mobx-administration.cjs +6 -0
  170. package/mobx/get-mobx-administration.d.cts +6 -0
  171. package/mobx/get-mobx-administration.d.cts.map +1 -0
  172. package/mobx/get-mobx-administration.d.ts +6 -0
  173. package/mobx/get-mobx-administration.d.ts.map +1 -0
  174. package/mobx/get-mobx-administration.js +2 -0
  175. package/mobx/index.cjs +21 -0
  176. package/mobx/index.d.cts +6 -0
  177. package/mobx/index.d.cts.map +1 -0
  178. package/mobx/index.d.ts +6 -0
  179. package/mobx/index.d.ts.map +1 -0
  180. package/mobx/index.js +5 -0
  181. package/mobx/lazy-observe.cjs +47 -0
  182. package/mobx/lazy-observe.d.cts +8 -0
  183. package/mobx/lazy-observe.d.cts.map +1 -0
  184. package/mobx/lazy-observe.d.ts +8 -0
  185. package/mobx/lazy-observe.d.ts.map +1 -0
  186. package/mobx/lazy-observe.js +43 -0
  187. package/ms.cjs +22 -0
  188. package/ms.d.cts +19 -0
  189. package/ms.d.cts.map +1 -0
  190. package/ms.d.ts +19 -0
  191. package/ms.d.ts.map +1 -0
  192. package/ms.js +18 -0
  193. package/number.cjs +16 -0
  194. package/number.d.cts +8 -0
  195. package/number.d.cts.map +1 -0
  196. package/number.d.ts +8 -0
  197. package/number.d.ts.map +1 -0
  198. package/number.js +13 -0
  199. package/package.json +163 -5
  200. package/parser/_exports.cjs +19 -0
  201. package/parser/_exports.d.cts +4 -0
  202. package/parser/_exports.d.cts.map +1 -0
  203. package/parser/_exports.d.ts +4 -0
  204. package/parser/_exports.d.ts.map +1 -0
  205. package/parser/_exports.js +3 -0
  206. package/parser/index.cjs +40 -0
  207. package/parser/index.d.cts +3 -0
  208. package/parser/index.d.cts.map +1 -0
  209. package/parser/index.d.ts +3 -0
  210. package/parser/index.d.ts.map +1 -0
  211. package/{src/parser/index.ts → parser/index.js} +1 -2
  212. package/parser/number.cjs +48 -0
  213. package/parser/number.d.cts +21 -0
  214. package/parser/number.d.cts.map +1 -0
  215. package/parser/number.d.ts +21 -0
  216. package/parser/number.d.ts.map +1 -0
  217. package/parser/number.js +44 -0
  218. package/parser/percent.cjs +8 -0
  219. package/parser/percent.d.cts +4 -0
  220. package/parser/percent.d.cts.map +1 -0
  221. package/parser/percent.d.ts +4 -0
  222. package/parser/percent.d.ts.map +1 -0
  223. package/parser/percent.js +4 -0
  224. package/parser/string.cjs +18 -0
  225. package/parser/string.d.cts +7 -0
  226. package/parser/string.d.cts.map +1 -0
  227. package/parser/string.d.ts +7 -0
  228. package/parser/string.d.ts.map +1 -0
  229. package/parser/string.js +14 -0
  230. package/price.cjs +21 -0
  231. package/price.d.cts +6 -0
  232. package/price.d.cts.map +1 -0
  233. package/price.d.ts +6 -0
  234. package/price.d.ts.map +1 -0
  235. package/price.js +17 -0
  236. package/random.cjs +25 -0
  237. package/random.d.cts +9 -0
  238. package/random.d.cts.map +1 -0
  239. package/random.d.ts +9 -0
  240. package/random.d.ts.map +1 -0
  241. package/random.js +14 -0
  242. package/react/hooks/index.cjs +37 -0
  243. package/react/hooks/index.d.cts +22 -0
  244. package/react/hooks/index.d.cts.map +1 -0
  245. package/react/hooks/index.d.ts +22 -0
  246. package/react/hooks/index.d.ts.map +1 -0
  247. package/react/hooks/index.js +21 -0
  248. package/react/hooks/use-abort-controller.cjs +15 -0
  249. package/react/hooks/use-abort-controller.d.cts +2 -0
  250. package/react/hooks/use-abort-controller.d.cts.map +1 -0
  251. package/react/hooks/use-abort-controller.d.ts +2 -0
  252. package/react/hooks/use-abort-controller.d.ts.map +1 -0
  253. package/react/hooks/use-abort-controller.js +11 -0
  254. package/react/hooks/use-abort-signal.cjs +8 -0
  255. package/react/hooks/use-abort-signal.d.cts +2 -0
  256. package/react/hooks/use-abort-signal.d.cts.map +1 -0
  257. package/react/hooks/use-abort-signal.d.ts +2 -0
  258. package/react/hooks/use-abort-signal.d.ts.map +1 -0
  259. package/react/hooks/use-abort-signal.js +4 -0
  260. package/react/hooks/use-click-outside.cjs +17 -0
  261. package/react/hooks/use-click-outside.d.cts +9 -0
  262. package/react/hooks/use-click-outside.d.cts.map +1 -0
  263. package/react/hooks/use-click-outside.d.ts +9 -0
  264. package/react/hooks/use-click-outside.d.ts.map +1 -0
  265. package/react/hooks/use-click-outside.js +13 -0
  266. package/react/hooks/use-constant.cjs +19 -0
  267. package/react/hooks/use-constant.d.cts +9 -0
  268. package/react/hooks/use-constant.d.cts.map +1 -0
  269. package/react/hooks/use-constant.d.ts +9 -0
  270. package/react/hooks/use-constant.d.ts.map +1 -0
  271. package/{src/react/hooks/use-constant.ts → react/hooks/use-constant.js} +6 -9
  272. package/react/hooks/use-define-ref.cjs +19 -0
  273. package/react/hooks/use-define-ref.d.cts +10 -0
  274. package/react/hooks/use-define-ref.d.cts.map +1 -0
  275. package/react/hooks/use-define-ref.d.ts +10 -0
  276. package/react/hooks/use-define-ref.d.ts.map +1 -0
  277. package/{src/react/hooks/use-define-ref.ts → react/hooks/use-define-ref.js} +7 -10
  278. package/react/hooks/use-element-ref.cjs +12 -0
  279. package/react/hooks/use-element-ref.d.cts +2 -0
  280. package/react/hooks/use-element-ref.d.cts.map +1 -0
  281. package/react/hooks/use-element-ref.d.ts +2 -0
  282. package/react/hooks/use-element-ref.d.ts.map +1 -0
  283. package/react/hooks/use-element-ref.js +8 -0
  284. package/react/hooks/use-event-listener.cjs +17 -0
  285. package/react/hooks/use-event-listener.d.cts +8 -0
  286. package/react/hooks/use-event-listener.d.cts.map +1 -0
  287. package/react/hooks/use-event-listener.d.ts +8 -0
  288. package/react/hooks/use-event-listener.d.ts.map +1 -0
  289. package/react/hooks/use-event-listener.js +13 -0
  290. package/react/hooks/use-event.cjs +23 -0
  291. package/react/hooks/use-event.d.cts +3 -0
  292. package/react/hooks/use-event.d.cts.map +1 -0
  293. package/react/hooks/use-event.d.ts +3 -0
  294. package/react/hooks/use-event.d.ts.map +1 -0
  295. package/react/hooks/use-event.js +19 -0
  296. package/react/hooks/use-flag.cjs +19 -0
  297. package/react/hooks/use-flag.d.cts +8 -0
  298. package/react/hooks/use-flag.d.cts.map +1 -0
  299. package/react/hooks/use-flag.d.ts +8 -0
  300. package/react/hooks/use-flag.d.ts.map +1 -0
  301. package/react/hooks/use-flag.js +15 -0
  302. package/react/hooks/use-force-update.cjs +11 -0
  303. package/react/hooks/use-force-update.d.cts +2 -0
  304. package/react/hooks/use-force-update.d.cts.map +1 -0
  305. package/react/hooks/use-force-update.d.ts +2 -0
  306. package/react/hooks/use-force-update.d.ts.map +1 -0
  307. package/react/hooks/use-force-update.js +7 -0
  308. package/react/hooks/use-initial-height.cjs +15 -0
  309. package/react/hooks/use-initial-height.d.cts +5 -0
  310. package/react/hooks/use-initial-height.d.cts.map +1 -0
  311. package/react/hooks/use-initial-height.d.ts +5 -0
  312. package/react/hooks/use-initial-height.d.ts.map +1 -0
  313. package/react/hooks/use-initial-height.js +11 -0
  314. package/react/hooks/use-instance.cjs +31 -0
  315. package/react/hooks/use-instance.d.cts +27 -0
  316. package/react/hooks/use-instance.d.cts.map +1 -0
  317. package/react/hooks/use-instance.d.ts +27 -0
  318. package/react/hooks/use-instance.d.ts.map +1 -0
  319. package/{src/react/hooks/use-instance.ts → react/hooks/use-instance.js} +9 -31
  320. package/react/hooks/use-intersection-observer.cjs +14 -0
  321. package/react/hooks/use-intersection-observer.d.cts +2 -0
  322. package/react/hooks/use-intersection-observer.d.cts.map +1 -0
  323. package/react/hooks/use-intersection-observer.d.ts +2 -0
  324. package/react/hooks/use-intersection-observer.d.ts.map +1 -0
  325. package/react/hooks/use-intersection-observer.js +10 -0
  326. package/react/hooks/use-last-defined-value.cjs +12 -0
  327. package/react/hooks/use-last-defined-value.d.cts +2 -0
  328. package/react/hooks/use-last-defined-value.d.cts.map +1 -0
  329. package/react/hooks/use-last-defined-value.d.ts +2 -0
  330. package/react/hooks/use-last-defined-value.d.ts.map +1 -0
  331. package/react/hooks/use-last-defined-value.js +8 -0
  332. package/react/hooks/use-last-value-ref.cjs +12 -0
  333. package/react/hooks/use-last-value-ref.d.cts +2 -0
  334. package/react/hooks/use-last-value-ref.d.cts.map +1 -0
  335. package/react/hooks/use-last-value-ref.d.ts +2 -0
  336. package/react/hooks/use-last-value-ref.d.ts.map +1 -0
  337. package/react/hooks/use-last-value-ref.js +8 -0
  338. package/react/hooks/use-life-cycle.cjs +14 -0
  339. package/react/hooks/use-life-cycle.d.cts +5 -0
  340. package/react/hooks/use-life-cycle.d.cts.map +1 -0
  341. package/react/hooks/use-life-cycle.d.ts +5 -0
  342. package/react/hooks/use-life-cycle.d.ts.map +1 -0
  343. package/react/hooks/use-life-cycle.js +10 -0
  344. package/react/hooks/use-resize-observer.cjs +15 -0
  345. package/react/hooks/use-resize-observer.d.cts +2 -0
  346. package/react/hooks/use-resize-observer.d.cts.map +1 -0
  347. package/react/hooks/use-resize-observer.d.ts +2 -0
  348. package/react/hooks/use-resize-observer.d.ts.map +1 -0
  349. package/react/hooks/use-resize-observer.js +11 -0
  350. package/react/hooks/use-sync-ref.cjs +10 -0
  351. package/react/hooks/use-sync-ref.d.cts +2 -0
  352. package/react/hooks/use-sync-ref.d.cts.map +1 -0
  353. package/react/hooks/use-sync-ref.d.ts +2 -0
  354. package/react/hooks/use-sync-ref.d.ts.map +1 -0
  355. package/react/hooks/use-sync-ref.js +6 -0
  356. package/react/hooks/use-toggle.cjs +10 -0
  357. package/react/hooks/use-toggle.d.cts +2 -0
  358. package/react/hooks/use-toggle.d.cts.map +1 -0
  359. package/react/hooks/use-toggle.d.ts +2 -0
  360. package/react/hooks/use-toggle.d.ts.map +1 -0
  361. package/react/hooks/use-toggle.js +6 -0
  362. package/react/hooks/use-value.cjs +12 -0
  363. package/react/hooks/use-value.d.cts +5 -0
  364. package/react/hooks/use-value.d.cts.map +1 -0
  365. package/react/hooks/use-value.d.ts +5 -0
  366. package/react/hooks/use-value.d.ts.map +1 -0
  367. package/react/hooks/use-value.js +8 -0
  368. package/react/hooks/use-visibility-state.cjs +18 -0
  369. package/react/hooks/use-visibility-state.d.cts +2 -0
  370. package/react/hooks/use-visibility-state.d.cts.map +1 -0
  371. package/react/hooks/use-visibility-state.d.ts +2 -0
  372. package/react/hooks/use-visibility-state.d.ts.map +1 -0
  373. package/react/hooks/use-visibility-state.js +14 -0
  374. package/react/index.cjs +17 -0
  375. package/react/index.d.cts +2 -0
  376. package/react/index.d.cts.map +1 -0
  377. package/react/index.d.ts +2 -0
  378. package/react/index.d.ts.map +1 -0
  379. package/react/index.js +1 -0
  380. package/sound.cjs +16 -0
  381. package/sound.d.cts +7 -0
  382. package/sound.d.cts.map +1 -0
  383. package/sound.d.ts +7 -0
  384. package/sound.d.ts.map +1 -0
  385. package/sound.js +12 -0
  386. package/storage.cjs +48 -0
  387. package/storage.d.cts +39 -0
  388. package/storage.d.cts.map +1 -0
  389. package/storage.d.ts +39 -0
  390. package/storage.d.ts.map +1 -0
  391. package/storage.js +43 -0
  392. package/text.cjs +53 -0
  393. package/text.d.cts +15 -0
  394. package/text.d.cts.map +1 -0
  395. package/text.d.ts +15 -0
  396. package/text.d.ts.map +1 -0
  397. package/text.js +48 -0
  398. package/type-guard/_exports.cjs +129 -0
  399. package/type-guard/_exports.d.cts +86 -0
  400. package/type-guard/_exports.d.cts.map +1 -0
  401. package/type-guard/_exports.d.ts +86 -0
  402. package/type-guard/_exports.d.ts.map +1 -0
  403. package/type-guard/_exports.js +125 -0
  404. package/type-guard/index.cjs +40 -0
  405. package/type-guard/index.d.cts +3 -0
  406. package/type-guard/index.d.cts.map +1 -0
  407. package/type-guard/index.d.ts +3 -0
  408. package/type-guard/index.d.ts.map +1 -0
  409. package/{src/type-guard/index.ts → type-guard/index.js} +1 -2
  410. package/utility-types.d.ts +396 -0
  411. package/utils/types.cjs +2 -0
  412. package/utils/types.d.cts +395 -0
  413. package/utils/types.d.cts.map +1 -0
  414. package/utils/types.d.ts +395 -0
  415. package/utils/types.d.ts.map +1 -0
  416. package/utils/types.js +1 -0
  417. package/vibrate.cjs +12 -0
  418. package/vibrate.d.cts +5 -0
  419. package/vibrate.d.cts.map +1 -0
  420. package/vibrate.d.ts +5 -0
  421. package/vibrate.d.ts.map +1 -0
  422. package/vibrate.js +8 -0
  423. package/.changeset/README.md +0 -8
  424. package/.changeset/config.json +0 -11
  425. package/.github/FUNDING.yml +0 -1
  426. package/.github/workflows/main.yml +0 -34
  427. package/.github/workflows/version-or-publish.yml +0 -45
  428. package/.nvmrc +0 -1
  429. package/.vscode/settings.json +0 -19
  430. package/CHANGELOG.md +0 -215
  431. package/CONTRIBUTING.md +0 -8
  432. package/Makefile +0 -7
  433. package/biome.json +0 -3
  434. package/commitfmt.toml +0 -18
  435. package/lefthook.yml +0 -14
  436. package/scripts/post-build.ts +0 -71
  437. package/src/async.ts +0 -86
  438. package/src/common.ts +0 -26
  439. package/src/complex/counter.test.ts +0 -41
  440. package/src/complex/counter.ts +0 -40
  441. package/src/complex/global-config.ts +0 -55
  442. package/src/complex/index.ts +0 -3
  443. package/src/complex/modules-factory.ts +0 -65
  444. package/src/cookie.ts +0 -11
  445. package/src/css.ts +0 -60
  446. package/src/data.test.ts +0 -99
  447. package/src/data.ts +0 -65
  448. package/src/date-time.test.ts +0 -119
  449. package/src/date-time.ts +0 -236
  450. package/src/device.ts +0 -42
  451. package/src/encodings.ts +0 -270
  452. package/src/errors.ts +0 -40
  453. package/src/file.ts +0 -25
  454. package/src/format/_exports.ts +0 -4
  455. package/src/format/number.test.ts +0 -16
  456. package/src/format/number.ts +0 -96
  457. package/src/format/percent.ts +0 -40
  458. package/src/format/skip-spaces.ts +0 -4
  459. package/src/html.ts +0 -238
  460. package/src/imports.ts +0 -52
  461. package/src/math.ts +0 -20
  462. package/src/media.ts +0 -134
  463. package/src/mobx/apply-observable.ts +0 -20
  464. package/src/mobx/create-enhanced-atom.ts +0 -28
  465. package/src/mobx/deep-observable-struct.test.ts +0 -69
  466. package/src/mobx/deep-observable-struct.ts +0 -69
  467. package/src/mobx/get-mobx-administration.ts +0 -10
  468. package/src/mobx/index.ts +0 -5
  469. package/src/mobx/lazy-observe.ts +0 -59
  470. package/src/ms.ts +0 -20
  471. package/src/number.ts +0 -14
  472. package/src/parser/_exports.ts +0 -3
  473. package/src/parser/number.test.ts +0 -38
  474. package/src/parser/number.ts +0 -73
  475. package/src/parser/percent.ts +0 -11
  476. package/src/parser/string.ts +0 -29
  477. package/src/price.ts +0 -33
  478. package/src/random.ts +0 -27
  479. package/src/react/hooks/index.ts +0 -21
  480. package/src/react/hooks/use-abort-controller.ts +0 -15
  481. package/src/react/hooks/use-abort-signal.ts +0 -5
  482. package/src/react/hooks/use-click-outside.ts +0 -27
  483. package/src/react/hooks/use-element-ref.ts +0 -11
  484. package/src/react/hooks/use-event-listener.ts +0 -29
  485. package/src/react/hooks/use-event.ts +0 -23
  486. package/src/react/hooks/use-flag.ts +0 -27
  487. package/src/react/hooks/use-force-update.ts +0 -9
  488. package/src/react/hooks/use-initial-height.ts +0 -16
  489. package/src/react/hooks/use-intersection-observer.ts +0 -18
  490. package/src/react/hooks/use-last-defined-value.ts +0 -9
  491. package/src/react/hooks/use-last-value-ref.ts +0 -11
  492. package/src/react/hooks/use-life-cycle.ts +0 -17
  493. package/src/react/hooks/use-resize-observer.ts +0 -14
  494. package/src/react/hooks/use-sync-ref.ts +0 -7
  495. package/src/react/hooks/use-toggle.ts +0 -9
  496. package/src/react/hooks/use-value.ts +0 -10
  497. package/src/react/hooks/use-visibility-state.ts +0 -19
  498. package/src/react/index.ts +0 -1
  499. package/src/sound.ts +0 -15
  500. package/src/storage.ts +0 -137
  501. package/src/text.test.ts +0 -91
  502. package/src/text.ts +0 -60
  503. package/src/type-guard/_exports.ts +0 -154
  504. package/src/type-guard/index.test.ts +0 -127
  505. package/src/vibrate.ts +0 -8
  506. package/tsconfig.json +0 -26
  507. package/tsconfig.test.json +0 -33
  508. package/vitest.config.ts +0 -20
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-last-defined-value.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-last-defined-value.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,OAAO,CAAC,MAM9C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useLastDefinedValue: <T>(value: T) => T;
2
+ //# sourceMappingURL=use-last-defined-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-last-defined-value.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-last-defined-value.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,OAAO,CAAC,MAM9C,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { useRef } from 'react';
2
+ export const useLastDefinedValue = (value) => {
3
+ const ref = useRef(value);
4
+ if (value != null) {
5
+ ref.current = value;
6
+ }
7
+ return ref.current;
8
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useLastValueRef = void 0;
4
+ const react_1 = require("react");
5
+ const useLastValueRef = (value) => {
6
+ const ref = (0, react_1.useRef)(value);
7
+ if (value != null) {
8
+ ref.current = value;
9
+ }
10
+ return ref;
11
+ };
12
+ exports.useLastValueRef = useLastValueRef;
@@ -0,0 +1,2 @@
1
+ export declare const useLastValueRef: <T>(value: T | null | undefined) => import("react").MutableRefObject<T | null | undefined>;
2
+ //# sourceMappingURL=use-last-value-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-last-value-ref.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-last-value-ref.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,2DAQ7D,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useLastValueRef: <T>(value: T | null | undefined) => import("react").MutableRefObject<T | null | undefined>;
2
+ //# sourceMappingURL=use-last-value-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-last-value-ref.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-last-value-ref.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,2DAQ7D,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { useRef } from 'react';
2
+ export const useLastValueRef = (value) => {
3
+ const ref = useRef(value);
4
+ if (value != null) {
5
+ ref.current = value;
6
+ }
7
+ return ref;
8
+ };
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useLifeCycle = void 0;
4
+ const react_1 = require("react");
5
+ const use_sync_ref_js_1 = require("./use-sync-ref.cjs");
6
+ const useLifeCycle = (fn) => {
7
+ const fnRef = (0, use_sync_ref_js_1.useSyncRef)(fn);
8
+ (0, react_1.useEffect)(() => {
9
+ const fnOperation = fnRef.current();
10
+ fnOperation.mount?.();
11
+ return fnOperation.unmount?.();
12
+ }, []);
13
+ };
14
+ exports.useLifeCycle = useLifeCycle;
@@ -0,0 +1,5 @@
1
+ export declare const useLifeCycle: (fn: () => {
2
+ mount?: VoidFunction;
3
+ unmount?: VoidFunction;
4
+ }) => void;
5
+ //# sourceMappingURL=use-life-cycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-life-cycle.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-life-cycle.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,GACvB,IAAI,MAAM;IACR,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,SASF,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const useLifeCycle: (fn: () => {
2
+ mount?: VoidFunction;
3
+ unmount?: VoidFunction;
4
+ }) => void;
5
+ //# sourceMappingURL=use-life-cycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-life-cycle.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-life-cycle.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,GACvB,IAAI,MAAM;IACR,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,SASF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { useEffect } from 'react';
2
+ import { useSyncRef } from "./use-sync-ref.js";
3
+ export const useLifeCycle = (fn) => {
4
+ const fnRef = useSyncRef(fn);
5
+ useEffect(() => {
6
+ const fnOperation = fnRef.current();
7
+ fnOperation.mount?.();
8
+ return fnOperation.unmount?.();
9
+ }, []);
10
+ };
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useResizeObserver = void 0;
4
+ const react_1 = require("react");
5
+ const use_define_ref_js_1 = require("./use-define-ref.cjs");
6
+ const useResizeObserver = (callback) => {
7
+ const resizeObserverRef = (0, use_define_ref_js_1.useDefineRef)(() => new ResizeObserver(callback));
8
+ (0, react_1.useLayoutEffect)(() => {
9
+ return () => {
10
+ resizeObserverRef.current.disconnect();
11
+ };
12
+ }, []);
13
+ return resizeObserverRef;
14
+ };
15
+ exports.useResizeObserver = useResizeObserver;
@@ -0,0 +1,2 @@
1
+ export declare const useResizeObserver: (callback: ResizeObserverCallback) => import("react").MutableRefObject<ResizeObserver>;
2
+ //# sourceMappingURL=use-resize-observer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-resize-observer.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-resize-observer.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,GAAI,UAAU,sBAAsB,qDAUjE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useResizeObserver: (callback: ResizeObserverCallback) => import("react").MutableRefObject<ResizeObserver>;
2
+ //# sourceMappingURL=use-resize-observer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-resize-observer.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-resize-observer.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,GAAI,UAAU,sBAAsB,qDAUjE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { useLayoutEffect } from 'react';
2
+ import { useDefineRef } from "./use-define-ref.js";
3
+ export const useResizeObserver = (callback) => {
4
+ const resizeObserverRef = useDefineRef(() => new ResizeObserver(callback));
5
+ useLayoutEffect(() => {
6
+ return () => {
7
+ resizeObserverRef.current.disconnect();
8
+ };
9
+ }, []);
10
+ return resizeObserverRef;
11
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useSyncRef = void 0;
4
+ const react_1 = require("react");
5
+ const useSyncRef = (value) => {
6
+ const ref = (0, react_1.useRef)(value);
7
+ ref.current = value;
8
+ return ref;
9
+ };
10
+ exports.useSyncRef = useSyncRef;
@@ -0,0 +1,2 @@
1
+ export declare const useSyncRef: <T>(value: T) => import("react").MutableRefObject<T>;
2
+ //# sourceMappingURL=use-sync-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-sync-ref.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-sync-ref.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,OAAO,CAAC,wCAIrC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useSyncRef: <T>(value: T) => import("react").MutableRefObject<T>;
2
+ //# sourceMappingURL=use-sync-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-sync-ref.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-sync-ref.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,OAAO,CAAC,wCAIrC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { useRef } from 'react';
2
+ export const useSyncRef = (value) => {
3
+ const ref = useRef(value);
4
+ ref.current = value;
5
+ return ref;
6
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useToggle = void 0;
4
+ const react_1 = require("react");
5
+ const useToggle = (initialState) => {
6
+ const [toggled, setToggled] = (0, react_1.useState)(!!initialState);
7
+ const toggle = (0, react_1.useCallback)(() => setToggled((toggled) => !toggled), []);
8
+ return [toggled, toggle, setToggled];
9
+ };
10
+ exports.useToggle = useToggle;
@@ -0,0 +1,2 @@
1
+ export declare const useToggle: (initialState?: boolean) => readonly [boolean, () => void, import("react").Dispatch<import("react").SetStateAction<boolean>>];
2
+ //# sourceMappingURL=use-toggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-toggle.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-toggle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,GAAI,eAAe,OAAO,sGAM/C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useToggle: (initialState?: boolean) => readonly [boolean, () => void, import("react").Dispatch<import("react").SetStateAction<boolean>>];
2
+ //# sourceMappingURL=use-toggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-toggle.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-toggle.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,GAAI,eAAe,OAAO,sGAM/C,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { useCallback, useState } from 'react';
2
+ export const useToggle = (initialState) => {
3
+ const [toggled, setToggled] = useState(!!initialState);
4
+ const toggle = useCallback(() => setToggled((toggled) => !toggled), []);
5
+ return [toggled, toggle, setToggled];
6
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useValue = void 0;
4
+ const react_1 = require("react");
5
+ const useValue = (defaults) => {
6
+ const [value, setValue] = (0, react_1.useState)(defaults);
7
+ return {
8
+ value,
9
+ set: setValue,
10
+ };
11
+ };
12
+ exports.useValue = useValue;
@@ -0,0 +1,5 @@
1
+ export declare const useValue: <T>(defaults: T | (() => T)) => {
2
+ value: T;
3
+ set: import("react").Dispatch<import("react").SetStateAction<T>>;
4
+ };
5
+ //# sourceMappingURL=use-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-value.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-value.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;;;CAOlD,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const useValue: <T>(defaults: T | (() => T)) => {
2
+ value: T;
3
+ set: import("react").Dispatch<import("react").SetStateAction<T>>;
4
+ };
5
+ //# sourceMappingURL=use-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-value.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-value.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;;;CAOlD,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { useState } from 'react';
2
+ export const useValue = (defaults) => {
3
+ const [value, setValue] = useState(defaults);
4
+ return {
5
+ value,
6
+ set: setValue,
7
+ };
8
+ };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useVisibilityState = void 0;
4
+ const react_1 = require("react");
5
+ const useVisibilityState = () => {
6
+ const [state, setState] = (0, react_1.useState)();
7
+ (0, react_1.useEffect)(() => {
8
+ const handleVisibilityChange = () => {
9
+ setState(document.visibilityState);
10
+ };
11
+ document.addEventListener('visibilitychange', handleVisibilityChange);
12
+ return () => {
13
+ document.removeEventListener('visibilitychange', handleVisibilityChange);
14
+ };
15
+ }, []);
16
+ return state;
17
+ };
18
+ exports.useVisibilityState = useVisibilityState;
@@ -0,0 +1,2 @@
1
+ export declare const useVisibilityState: () => DocumentVisibilityState | undefined;
2
+ //# sourceMappingURL=use-visibility-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-visibility-state.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-visibility-state.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,2CAgB9B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const useVisibilityState: () => DocumentVisibilityState | undefined;
2
+ //# sourceMappingURL=use-visibility-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-visibility-state.d.ts","sourceRoot":"","sources":["../../../src/react/hooks/use-visibility-state.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,2CAgB9B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { useEffect, useState } from 'react';
2
+ export const useVisibilityState = () => {
3
+ const [state, setState] = useState();
4
+ useEffect(() => {
5
+ const handleVisibilityChange = () => {
6
+ setState(document.visibilityState);
7
+ };
8
+ document.addEventListener('visibilitychange', handleVisibilityChange);
9
+ return () => {
10
+ document.removeEventListener('visibilitychange', handleVisibilityChange);
11
+ };
12
+ }, []);
13
+ return state;
14
+ };
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./hooks/index.cjs"), exports);
@@ -0,0 +1,2 @@
1
+ export * from "./hooks/index.cjs";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,kCAAiC"}
@@ -0,0 +1,2 @@
1
+ export * from "./hooks/index.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,iCAAiC"}
package/react/index.js ADDED
@@ -0,0 +1 @@
1
+ export * from "./hooks/index.js";
package/sound.cjs ADDED
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.playSound = void 0;
4
+ /**
5
+ * Воспроизводит звук из файла
6
+ */
7
+ const playSound = async (file, { volume = 1 } = {}) => {
8
+ let audio = new Audio(file);
9
+ audio.volume = volume;
10
+ audio.muted = !volume;
11
+ await audio.play();
12
+ audio.remove();
13
+ // @ts-expect-error
14
+ audio = null;
15
+ };
16
+ exports.playSound = playSound;
package/sound.d.cts ADDED
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Воспроизводит звук из файла
3
+ */
4
+ export declare const playSound: (file: string, { volume }?: {
5
+ volume?: number;
6
+ }) => Promise<void>;
7
+ //# sourceMappingURL=sound.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sound.d.ts","sourceRoot":"","sources":["../src/sound.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,SAAS,GACpB,MAAM,MAAM,EACZ,aAAgB;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,kBASzC,CAAC"}
package/sound.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Воспроизводит звук из файла
3
+ */
4
+ export declare const playSound: (file: string, { volume }?: {
5
+ volume?: number;
6
+ }) => Promise<void>;
7
+ //# sourceMappingURL=sound.d.ts.map
package/sound.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sound.d.ts","sourceRoot":"","sources":["../src/sound.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,SAAS,GACpB,MAAM,MAAM,EACZ,aAAgB;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,kBASzC,CAAC"}
package/sound.js ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Воспроизводит звук из файла
3
+ */
4
+ export const playSound = async (file, { volume = 1 } = {}) => {
5
+ let audio = new Audio(file);
6
+ audio.volume = volume;
7
+ audio.muted = !volume;
8
+ await audio.play();
9
+ audio.remove();
10
+ // @ts-expect-error
11
+ audio = null;
12
+ };
package/storage.cjs ADDED
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createStorageKey = void 0;
4
+ exports.createStorage = createStorage;
5
+ const storages = {
6
+ session: sessionStorage,
7
+ local: localStorage,
8
+ };
9
+ const createStorageKey = (prefix, key, namespace) => `${prefix}${namespace ? `/${namespace}` : ''}/${key}`;
10
+ exports.createStorageKey = createStorageKey;
11
+ const parseStorageValue = (value) => {
12
+ if (typeof value !== 'string') {
13
+ return value;
14
+ }
15
+ try {
16
+ const parsed = JSON.parse(value);
17
+ return parsed;
18
+ }
19
+ catch {
20
+ return null;
21
+ }
22
+ };
23
+ const formatValueToStorage = (value) => {
24
+ return JSON.stringify(value);
25
+ };
26
+ /**
27
+ * Создает интерфейс для работы с хранилищем (localStorage, sessionStorage)
28
+ */
29
+ function createStorage(storageConfig) {
30
+ return {
31
+ set: (cfg) => {
32
+ const config = cfg;
33
+ const storageType = (config.type ?? storageConfig.type);
34
+ const storagePrefix = (config.prefix ?? storageConfig.prefix);
35
+ const storage = storages[storageType];
36
+ storage.setItem((0, exports.createStorageKey)(storagePrefix, config.key, config.namespace), formatValueToStorage(config.value));
37
+ },
38
+ get: (cfg) => {
39
+ const config = cfg;
40
+ const storageType = (config.type ?? storageConfig.type);
41
+ const storagePrefix = (config.prefix ?? storageConfig.prefix);
42
+ const storage = storages[storageType];
43
+ return (parseStorageValue(storage.getItem((0, exports.createStorageKey)(storagePrefix, config.key, config.namespace))) ??
44
+ config.fallback ??
45
+ null);
46
+ },
47
+ };
48
+ }
package/storage.d.cts ADDED
@@ -0,0 +1,39 @@
1
+ export type StorageType = 'session' | 'local';
2
+ export declare const createStorageKey: (prefix: string, key: string, namespace?: string) => string;
3
+ export interface SetToStorageConfig<V> extends Omit<GetFromStorageConfig<V>, 'fallback'> {
4
+ value: V;
5
+ }
6
+ export interface GetFromStorageConfig<V> {
7
+ /**
8
+ * Ключ по которому можно получить значение из хранилища (имя ключа не полное, оно дополняется неймпспейсом проекта)
9
+ */
10
+ key: string;
11
+ /**
12
+ * Тип хранилища
13
+ */
14
+ type: StorageType;
15
+ /**
16
+ * дефолтное значение, которое будет использоваться если значения нет в хранилище
17
+ */
18
+ fallback?: V;
19
+ /**
20
+ * Доп. делитель в ключ/utils/types'е
21
+ */
22
+ namespace?: string;
23
+ /**
24
+ * Доп. делитель
25
+ */
26
+ prefix?: string;
27
+ }
28
+ export type SetToStorageWrappedConfig<V, BaseConfig extends StorageConfigBase> = Omit<SetToStorageConfig<V>, Extract<keyof SetToStorageConfig<V>, keyof BaseConfig>> & Partial<Pick<SetToStorageConfig<V>, Extract<keyof SetToStorageConfig<V>, keyof BaseConfig>>> & Pick<BaseConfig, Exclude<keyof BaseConfig, keyof SetToStorageConfig<V>>>;
29
+ export type GetFromStorageWrappedConfig<V, BaseConfig extends StorageConfigBase> = Omit<GetFromStorageConfig<V>, Extract<keyof GetFromStorageConfig<V>, keyof BaseConfig>> & Partial<Pick<GetFromStorageConfig<V>, Extract<keyof GetFromStorageConfig<V>, keyof BaseConfig>>> & Pick<BaseConfig, Exclude<keyof BaseConfig, keyof GetFromStorageConfig<V>>>;
30
+ export type StorageConfigBase = Partial<Pick<GetFromStorageConfig<any>, 'prefix' | 'type'>>;
31
+ export interface StorageApi<BaseConfig extends StorageConfigBase> {
32
+ set<Value>(config: SetToStorageWrappedConfig<Value, BaseConfig>): void;
33
+ get<Value>(config: GetFromStorageWrappedConfig<Value, BaseConfig>): Value | null;
34
+ }
35
+ /**
36
+ * Создает интерфейс для работы с хранилищем (localStorage, sessionStorage)
37
+ */
38
+ export declare function createStorage<BaseConfig extends StorageConfigBase>(storageConfig: BaseConfig): StorageApi<BaseConfig>;
39
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAO9C,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,MAAM,EACd,KAAK,MAAM,EACX,YAAY,MAAM,WACsC,CAAC;AAmB3D,MAAM,WAAW,kBAAkB,CAAC,CAAC,CACnC,SAAQ,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IACjD,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,IAAI,EAAE,WAAW,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC;IACb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,yBAAyB,CACnC,CAAC,EACD,UAAU,SAAS,iBAAiB,IAClC,IAAI,CACN,kBAAkB,CAAC,CAAC,CAAC,EACrB,OAAO,CAAC,MAAM,kBAAkB,CAAC,CAAC,CAAC,EAAE,MAAM,UAAU,CAAC,CACvD,GACC,OAAO,CACL,IAAI,CACF,kBAAkB,CAAC,CAAC,CAAC,EACrB,OAAO,CAAC,MAAM,kBAAkB,CAAC,CAAC,CAAC,EAAE,MAAM,UAAU,CAAC,CACvD,CACF,GACD,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3E,MAAM,MAAM,2BAA2B,CACrC,CAAC,EACD,UAAU,SAAS,iBAAiB,IAClC,IAAI,CACN,oBAAoB,CAAC,CAAC,CAAC,EACvB,OAAO,CAAC,MAAM,oBAAoB,CAAC,CAAC,CAAC,EAAE,MAAM,UAAU,CAAC,CACzD,GACC,OAAO,CACL,IAAI,CACF,oBAAoB,CAAC,CAAC,CAAC,EACvB,OAAO,CAAC,MAAM,oBAAoB,CAAC,CAAC,CAAC,EAAE,MAAM,UAAU,CAAC,CACzD,CACF,GACD,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7E,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,CACnD,CAAC;AAEF,MAAM,WAAW,UAAU,CAAC,UAAU,SAAS,iBAAiB;IAC9D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,yBAAyB,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;IACvE,GAAG,CAAC,KAAK,EACP,MAAM,EAAE,2BAA2B,CAAC,KAAK,EAAE,UAAU,CAAC,GACrD,KAAK,GAAG,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,SAAS,iBAAiB,EAChE,aAAa,EAAE,UAAU,GACxB,UAAU,CAAC,UAAU,CAAC,CAgCxB"}
package/storage.d.ts ADDED
@@ -0,0 +1,39 @@
1
+ export type StorageType = 'session' | 'local';
2
+ export declare const createStorageKey: (prefix: string, key: string, namespace?: string) => string;
3
+ export interface SetToStorageConfig<V> extends Omit<GetFromStorageConfig<V>, 'fallback'> {
4
+ value: V;
5
+ }
6
+ export interface GetFromStorageConfig<V> {
7
+ /**
8
+ * Ключ по которому можно получить значение из хранилища (имя ключа не полное, оно дополняется неймпспейсом проекта)
9
+ */
10
+ key: string;
11
+ /**
12
+ * Тип хранилища
13
+ */
14
+ type: StorageType;
15
+ /**
16
+ * дефолтное значение, которое будет использоваться если значения нет в хранилище
17
+ */
18
+ fallback?: V;
19
+ /**
20
+ * Доп. делитель в ключ/utils/types'е
21
+ */
22
+ namespace?: string;
23
+ /**
24
+ * Доп. делитель
25
+ */
26
+ prefix?: string;
27
+ }
28
+ export type SetToStorageWrappedConfig<V, BaseConfig extends StorageConfigBase> = Omit<SetToStorageConfig<V>, Extract<keyof SetToStorageConfig<V>, keyof BaseConfig>> & Partial<Pick<SetToStorageConfig<V>, Extract<keyof SetToStorageConfig<V>, keyof BaseConfig>>> & Pick<BaseConfig, Exclude<keyof BaseConfig, keyof SetToStorageConfig<V>>>;
29
+ export type GetFromStorageWrappedConfig<V, BaseConfig extends StorageConfigBase> = Omit<GetFromStorageConfig<V>, Extract<keyof GetFromStorageConfig<V>, keyof BaseConfig>> & Partial<Pick<GetFromStorageConfig<V>, Extract<keyof GetFromStorageConfig<V>, keyof BaseConfig>>> & Pick<BaseConfig, Exclude<keyof BaseConfig, keyof GetFromStorageConfig<V>>>;
30
+ export type StorageConfigBase = Partial<Pick<GetFromStorageConfig<any>, 'prefix' | 'type'>>;
31
+ export interface StorageApi<BaseConfig extends StorageConfigBase> {
32
+ set<Value>(config: SetToStorageWrappedConfig<Value, BaseConfig>): void;
33
+ get<Value>(config: GetFromStorageWrappedConfig<Value, BaseConfig>): Value | null;
34
+ }
35
+ /**
36
+ * Создает интерфейс для работы с хранилищем (localStorage, sessionStorage)
37
+ */
38
+ export declare function createStorage<BaseConfig extends StorageConfigBase>(storageConfig: BaseConfig): StorageApi<BaseConfig>;
39
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAO9C,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,MAAM,EACd,KAAK,MAAM,EACX,YAAY,MAAM,WACsC,CAAC;AAmB3D,MAAM,WAAW,kBAAkB,CAAC,CAAC,CACnC,SAAQ,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC;IACjD,KAAK,EAAE,CAAC,CAAC;CACV;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,IAAI,EAAE,WAAW,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC;IACb;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,yBAAyB,CACnC,CAAC,EACD,UAAU,SAAS,iBAAiB,IAClC,IAAI,CACN,kBAAkB,CAAC,CAAC,CAAC,EACrB,OAAO,CAAC,MAAM,kBAAkB,CAAC,CAAC,CAAC,EAAE,MAAM,UAAU,CAAC,CACvD,GACC,OAAO,CACL,IAAI,CACF,kBAAkB,CAAC,CAAC,CAAC,EACrB,OAAO,CAAC,MAAM,kBAAkB,CAAC,CAAC,CAAC,EAAE,MAAM,UAAU,CAAC,CACvD,CACF,GACD,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3E,MAAM,MAAM,2BAA2B,CACrC,CAAC,EACD,UAAU,SAAS,iBAAiB,IAClC,IAAI,CACN,oBAAoB,CAAC,CAAC,CAAC,EACvB,OAAO,CAAC,MAAM,oBAAoB,CAAC,CAAC,CAAC,EAAE,MAAM,UAAU,CAAC,CACzD,GACC,OAAO,CACL,IAAI,CACF,oBAAoB,CAAC,CAAC,CAAC,EACvB,OAAO,CAAC,MAAM,oBAAoB,CAAC,CAAC,CAAC,EAAE,MAAM,UAAU,CAAC,CACzD,CACF,GACD,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,UAAU,EAAE,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7E,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,CACnD,CAAC;AAEF,MAAM,WAAW,UAAU,CAAC,UAAU,SAAS,iBAAiB;IAC9D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,yBAAyB,CAAC,KAAK,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;IACvE,GAAG,CAAC,KAAK,EACP,MAAM,EAAE,2BAA2B,CAAC,KAAK,EAAE,UAAU,CAAC,GACrD,KAAK,GAAG,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,SAAS,iBAAiB,EAChE,aAAa,EAAE,UAAU,GACxB,UAAU,CAAC,UAAU,CAAC,CAgCxB"}
package/storage.js ADDED
@@ -0,0 +1,43 @@
1
+ const storages = {
2
+ session: sessionStorage,
3
+ local: localStorage,
4
+ };
5
+ export const createStorageKey = (prefix, key, namespace) => `${prefix}${namespace ? `/${namespace}` : ''}/${key}`;
6
+ const parseStorageValue = (value) => {
7
+ if (typeof value !== 'string') {
8
+ return value;
9
+ }
10
+ try {
11
+ const parsed = JSON.parse(value);
12
+ return parsed;
13
+ }
14
+ catch {
15
+ return null;
16
+ }
17
+ };
18
+ const formatValueToStorage = (value) => {
19
+ return JSON.stringify(value);
20
+ };
21
+ /**
22
+ * Создает интерфейс для работы с хранилищем (localStorage, sessionStorage)
23
+ */
24
+ export function createStorage(storageConfig) {
25
+ return {
26
+ set: (cfg) => {
27
+ const config = cfg;
28
+ const storageType = (config.type ?? storageConfig.type);
29
+ const storagePrefix = (config.prefix ?? storageConfig.prefix);
30
+ const storage = storages[storageType];
31
+ storage.setItem(createStorageKey(storagePrefix, config.key, config.namespace), formatValueToStorage(config.value));
32
+ },
33
+ get: (cfg) => {
34
+ const config = cfg;
35
+ const storageType = (config.type ?? storageConfig.type);
36
+ const storagePrefix = (config.prefix ?? storageConfig.prefix);
37
+ const storage = storages[storageType];
38
+ return (parseStorageValue(storage.getItem(createStorageKey(storagePrefix, config.key, config.namespace))) ??
39
+ config.fallback ??
40
+ null);
41
+ },
42
+ };
43
+ }