@bitfiber/utils 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (509) hide show
  1. package/LICENSE.txt +1 -1
  2. package/README.md +1 -1
  3. package/dist/arr/at/at.js.map +1 -0
  4. package/{arr → dist/arr}/cnd/cnd.d.ts +63 -1
  5. package/{arr → dist/arr}/cnd/cnd.js +1 -1
  6. package/dist/arr/cnd/cnd.js.map +1 -0
  7. package/dist/arr/diff-arr/diff-arr.d.ts +30 -0
  8. package/dist/arr/diff-arr/diff-arr.js.map +1 -0
  9. package/dist/arr/fill/fill.js.map +1 -0
  10. package/{arr → dist/arr}/for-each-arr/for-each-arr.d.ts +1 -1
  11. package/{arr → dist/arr}/for-each-arr/for-each-arr.js +1 -1
  12. package/dist/arr/for-each-arr/for-each-arr.js.map +1 -0
  13. package/{arr → dist/arr}/index-by/index-by.d.ts +1 -1
  14. package/{arr → dist/arr}/index-by/index-by.js +1 -1
  15. package/dist/arr/index-by/index-by.js.map +1 -0
  16. package/dist/arr/index.d.ts +8 -0
  17. package/dist/arr/index.js +9 -0
  18. package/dist/arr/index.js.map +1 -0
  19. package/{arr → dist/arr}/pluck/pluck.d.ts +1 -1
  20. package/dist/arr/pluck/pluck.js.map +1 -0
  21. package/dist/arr/within/within.js.map +1 -0
  22. package/dist/common/copy/copy.js.map +1 -0
  23. package/dist/common/equals/equals.js.map +1 -0
  24. package/{common → dist/common}/error.d.ts +7 -1
  25. package/dist/common/error.js.map +1 -0
  26. package/dist/common/for-each/for-each.js.map +1 -0
  27. package/dist/common/get-unique-num-id/get-unique-num-id.js.map +1 -0
  28. package/{common → dist/common}/get-unique-str-id/get-unique-str-id.js +1 -1
  29. package/dist/common/get-unique-str-id/get-unique-str-id.js.map +1 -0
  30. package/dist/common/has-iterator/has-iterator.js.map +1 -0
  31. package/dist/common/index.d.ts +17 -0
  32. package/dist/common/index.js +17 -0
  33. package/dist/common/index.js.map +1 -0
  34. package/dist/common/interrupt.d.ts +4 -0
  35. package/dist/common/interrupt.js +5 -0
  36. package/dist/common/interrupt.js.map +1 -0
  37. package/dist/common/is/is.js.map +1 -0
  38. package/dist/common/is-empty/is-empty.js.map +1 -0
  39. package/dist/common/random/random.js.map +1 -0
  40. package/dist/common/same/same.js.map +1 -0
  41. package/dist/common/stub/stub.js.map +1 -0
  42. package/dist/common/to-float/to-float.js.map +1 -0
  43. package/dist/common/to-int/to-int.js.map +1 -0
  44. package/dist/common/to-sorted-string/to-sorted-string.js.map +1 -0
  45. package/{common → dist/common}/types.d.ts +0 -11
  46. package/{arr → dist/common}/types.js.map +1 -1
  47. package/dist/dom/closest/closest.js.map +1 -0
  48. package/{dom → dist/dom}/document/document.js +1 -1
  49. package/dist/dom/document/document.js.map +1 -0
  50. package/{dom → dist/dom}/download-file/download-file.js +1 -1
  51. package/dist/dom/download-file/download-file.js.map +1 -0
  52. package/{dom → dist/dom}/for-each-elements/for-each-elements.js +1 -1
  53. package/dist/dom/for-each-elements/for-each-elements.js.map +1 -0
  54. package/{dom → dist/dom}/for-each-nodes/for-each-nodes.js +1 -1
  55. package/dist/dom/for-each-nodes/for-each-nodes.js.map +1 -0
  56. package/dist/dom/get-all-styles/get-all-styles.js.map +1 -0
  57. package/dist/dom/get-body/get-body.js.map +1 -0
  58. package/dist/dom/get-html/get-html.js.map +1 -0
  59. package/dist/dom/get-non-static-parent/get-non-static-parent.js.map +1 -0
  60. package/dist/dom/get-offset-from-doc/get-offset-from-doc.js.map +1 -0
  61. package/{dom → dist/dom}/get-offset-from-parent/get-offset-from-parent.js +1 -1
  62. package/dist/dom/get-offset-from-parent/get-offset-from-parent.js.map +1 -0
  63. package/dist/dom/get-offset-from-win/get-offset-from-win.js.map +1 -0
  64. package/dist/dom/get-scroll-width/get-scroll-width.js.map +1 -0
  65. package/dist/dom/get-style/get-style.js.map +1 -0
  66. package/{dom → dist/dom}/get-styles/get-styles.d.ts +1 -1
  67. package/dist/dom/get-styles/get-styles.js.map +1 -0
  68. package/{dom → dist/dom}/get-valid-style-name/get-valid-style-name.js +1 -1
  69. package/dist/dom/get-valid-style-name/get-valid-style-name.js.map +1 -0
  70. package/{dom → dist/dom}/get-window/get-window.js +1 -1
  71. package/dist/dom/get-window/get-window.js.map +1 -0
  72. package/dist/dom/has-name/has-name.js.map +1 -0
  73. package/dist/dom/index.d.ts +25 -0
  74. package/dist/dom/index.js +25 -0
  75. package/dist/dom/index.js.map +1 -0
  76. package/dist/dom/is-comment/is-comment.js.map +1 -0
  77. package/dist/dom/is-element/is-element.js.map +1 -0
  78. package/dist/dom/is-text/is-text.js.map +1 -0
  79. package/{dom → dist/dom}/set-offset-from-parent/set-offset-from-parent.js +1 -1
  80. package/dist/dom/set-offset-from-parent/set-offset-from-parent.js.map +1 -0
  81. package/dist/dom/set-style/set-style.js.map +1 -0
  82. package/{dom → dist/dom}/set-styles/set-styles.d.ts +1 -1
  83. package/dist/dom/set-styles/set-styles.js.map +1 -0
  84. package/{num → dist/dom}/types.js.map +1 -1
  85. package/{env → dist/env}/get-browser/get-browser.js +1 -1
  86. package/dist/env/get-browser/get-browser.js.map +1 -0
  87. package/{env → dist/env}/get-engine/get-engine.js +1 -1
  88. package/dist/env/get-engine/get-engine.js.map +1 -0
  89. package/{env → dist/env}/get-os/get-os.js +1 -1
  90. package/dist/env/get-os/get-os.js.map +1 -0
  91. package/{env → dist/env}/get-platform/get-platform.js +1 -1
  92. package/dist/env/get-platform/get-platform.js.map +1 -0
  93. package/dist/env/index.d.ts +21 -0
  94. package/dist/env/index.js +21 -0
  95. package/dist/env/index.js.map +1 -0
  96. package/dist/env/is-browser/is-browser.js.map +1 -0
  97. package/dist/env/is-chrome-like/is-chrome-like.js.map +1 -0
  98. package/dist/env/is-desktop/is-desktop.js.map +1 -0
  99. package/dist/env/is-engine/is-engine.js.map +1 -0
  100. package/dist/env/is-firefox-like/is-firefox-like.js.map +1 -0
  101. package/dist/env/is-mobile/is-mobile.js.map +1 -0
  102. package/dist/env/is-os/is-os.js.map +1 -0
  103. package/dist/env/is-portable/is-portable.js.map +1 -0
  104. package/dist/env/is-safari-like/is-safari-like.js.map +1 -0
  105. package/dist/env/is-stationary/is-stationary.js.map +1 -0
  106. package/dist/env/is-tablet/is-tablet.js.map +1 -0
  107. package/dist/env/is-tv/is-tv.js.map +1 -0
  108. package/{env → dist/env}/matches/matches.js +1 -1
  109. package/dist/env/matches/matches.js.map +1 -0
  110. package/{env → dist/env}/matches-with-browsers/matches-with-browsers.js +1 -1
  111. package/dist/env/matches-with-browsers/matches-with-browsers.js.map +1 -0
  112. package/{env → dist/env}/matches-with-version/matches-with-version.js +1 -1
  113. package/dist/env/matches-with-version/matches-with-version.js.map +1 -0
  114. package/{env → dist/env}/private/private.d.ts +1 -1
  115. package/{env → dist/env}/private/private.js +4 -4
  116. package/dist/env/private/private.js.map +1 -0
  117. package/{dom → dist/env}/types.js.map +1 -1
  118. package/{env → dist/env}/user-agent/user-agent.js +4 -1
  119. package/dist/env/user-agent/user-agent.js.map +1 -0
  120. package/dist/index.d.ts +7 -0
  121. package/dist/index.js +8 -0
  122. package/dist/index.js.map +1 -0
  123. package/{num/types.d.ts → dist/num/in-range/in-range.d.ts} +7 -0
  124. package/{num → dist/num}/in-range/in-range.js +1 -1
  125. package/dist/num/in-range/in-range.js.map +1 -0
  126. package/dist/num/index.d.ts +2 -0
  127. package/dist/num/index.js +3 -0
  128. package/dist/num/index.js.map +1 -0
  129. package/dist/num/round/round.js.map +1 -0
  130. package/{obj → dist/obj}/constant/constant.d.ts +1 -1
  131. package/dist/obj/constant/constant.js.map +1 -0
  132. package/{obj → dist/obj}/deep-constant/deep-constant.d.ts +1 -1
  133. package/{obj → dist/obj}/deep-constant/deep-constant.js +1 -1
  134. package/dist/obj/deep-constant/deep-constant.js.map +1 -0
  135. package/{obj/types.d.ts → dist/obj/diff-obj/diff-obj.d.ts} +8 -1
  136. package/{obj → dist/obj}/diff-obj/diff-obj.js +1 -1
  137. package/dist/obj/diff-obj/diff-obj.js.map +1 -0
  138. package/{obj → dist/obj}/exclude/exclude.d.ts +1 -1
  139. package/{obj → dist/obj}/exclude/exclude.js +1 -1
  140. package/dist/obj/exclude/exclude.js.map +1 -0
  141. package/{obj → dist/obj}/extend/extend.d.ts +1 -1
  142. package/{obj → dist/obj}/extend/extend.js +1 -1
  143. package/dist/obj/extend/extend.js.map +1 -0
  144. package/{obj → dist/obj}/for-each-obj/for-each-obj.d.ts +1 -1
  145. package/{obj → dist/obj}/for-each-obj/for-each-obj.js +1 -1
  146. package/dist/obj/for-each-obj/for-each-obj.js.map +1 -0
  147. package/{obj → dist/obj}/has-own/has-own.d.ts +1 -1
  148. package/dist/obj/has-own/has-own.js.map +1 -0
  149. package/{obj → dist/obj}/include/include.d.ts +1 -1
  150. package/{obj → dist/obj}/include/include.js +1 -1
  151. package/dist/obj/include/include.js.map +1 -0
  152. package/dist/obj/index.d.ts +12 -0
  153. package/dist/obj/index.js +13 -0
  154. package/dist/obj/index.js.map +1 -0
  155. package/{obj → dist/obj}/keys/keys.d.ts +1 -1
  156. package/dist/obj/keys/keys.js.map +1 -0
  157. package/{obj → dist/obj}/map-obj/map-obj.d.ts +1 -1
  158. package/dist/obj/map-obj/map-obj.js.map +1 -0
  159. package/{obj → dist/obj}/map-obj-to-arr/map-obj-to-arr.d.ts +1 -1
  160. package/dist/obj/map-obj-to-arr/map-obj-to-arr.js.map +1 -0
  161. package/{obj → dist/obj}/values/values.d.ts +1 -1
  162. package/dist/obj/values/values.js.map +1 -0
  163. package/dist/str/index.d.ts +3 -0
  164. package/dist/str/index.js +4 -0
  165. package/dist/str/index.js.map +1 -0
  166. package/dist/str/to-camel-case/to-camel-case.js.map +1 -0
  167. package/dist/str/to-hash/to-hash.js.map +1 -0
  168. package/dist/str/with-capital/with-capital.js.map +1 -0
  169. package/package.json +71 -73
  170. package/src/arr/at/at.ts +10 -0
  171. package/src/arr/cnd/cnd.ts +188 -0
  172. package/src/arr/diff-arr/diff-arr.ts +66 -0
  173. package/src/arr/fill/fill.ts +10 -0
  174. package/src/arr/for-each-arr/for-each-arr.ts +25 -0
  175. package/src/arr/index-by/index-by.ts +19 -0
  176. package/src/arr/index.ts +11 -0
  177. package/src/arr/pluck/pluck.ts +14 -0
  178. package/src/arr/within/within.ts +14 -0
  179. package/src/common/copy/copy.ts +89 -0
  180. package/src/common/equals/equals.ts +142 -0
  181. package/src/common/error.ts +34 -0
  182. package/src/common/for-each/for-each.ts +36 -0
  183. package/src/common/get-unique-num-id/get-unique-num-id.ts +8 -0
  184. package/src/common/get-unique-str-id/get-unique-str-id.ts +18 -0
  185. package/src/common/has-iterator/has-iterator.ts +7 -0
  186. package/src/common/index.ts +23 -0
  187. package/{common/types.js → src/common/interrupt.ts} +0 -1
  188. package/src/common/is/is.ts +244 -0
  189. package/src/common/is-empty/is-empty.ts +26 -0
  190. package/src/common/random/random.ts +8 -0
  191. package/src/common/same/same.ts +8 -0
  192. package/src/common/stub/stub.ts +7 -0
  193. package/src/common/to-float/to-float.ts +10 -0
  194. package/src/common/to-int/to-int.ts +10 -0
  195. package/src/common/to-sorted-string/to-sorted-string.ts +58 -0
  196. package/src/common/types.ts +66 -0
  197. package/src/dom/closest/closest.ts +24 -0
  198. package/src/dom/document/document.ts +25 -0
  199. package/src/dom/download-file/download-file.ts +31 -0
  200. package/src/dom/for-each-elements/for-each-elements.ts +17 -0
  201. package/src/dom/for-each-nodes/for-each-nodes.ts +15 -0
  202. package/src/dom/get-all-styles/get-all-styles.ts +10 -0
  203. package/src/dom/get-body/get-body.ts +9 -0
  204. package/src/dom/get-html/get-html.ts +9 -0
  205. package/src/dom/get-non-static-parent/get-non-static-parent.ts +9 -0
  206. package/src/dom/get-offset-from-doc/get-offset-from-doc.ts +18 -0
  207. package/src/dom/get-offset-from-parent/get-offset-from-parent.ts +48 -0
  208. package/src/dom/get-offset-from-win/get-offset-from-win.ts +9 -0
  209. package/src/dom/get-scroll-width/get-scroll-width.ts +33 -0
  210. package/src/dom/get-style/get-style.ts +25 -0
  211. package/src/dom/get-styles/get-styles.ts +14 -0
  212. package/src/dom/get-valid-style-name/get-valid-style-name.ts +45 -0
  213. package/src/dom/get-window/get-window.ts +17 -0
  214. package/src/dom/has-name/has-name.ts +8 -0
  215. package/src/dom/index.ts +25 -0
  216. package/src/dom/is-comment/is-comment.ts +7 -0
  217. package/src/dom/is-element/is-element.ts +7 -0
  218. package/src/dom/is-text/is-text.ts +7 -0
  219. package/src/dom/set-offset-from-parent/set-offset-from-parent.ts +46 -0
  220. package/src/dom/set-style/set-style.ts +14 -0
  221. package/src/dom/set-styles/set-styles.ts +17 -0
  222. package/src/dom/types.ts +20 -0
  223. package/src/env/get-browser/get-browser.ts +38 -0
  224. package/src/env/get-engine/get-engine.ts +27 -0
  225. package/src/env/get-os/get-os.ts +31 -0
  226. package/src/env/get-platform/get-platform.ts +34 -0
  227. package/src/env/index.ts +24 -0
  228. package/src/env/is-browser/is-browser.ts +15 -0
  229. package/src/env/is-chrome-like/is-chrome-like.ts +9 -0
  230. package/src/env/is-desktop/is-desktop.ts +9 -0
  231. package/src/env/is-engine/is-engine.ts +12 -0
  232. package/src/env/is-firefox-like/is-firefox-like.ts +9 -0
  233. package/src/env/is-mobile/is-mobile.ts +9 -0
  234. package/src/env/is-os/is-os.ts +13 -0
  235. package/src/env/is-portable/is-portable.ts +8 -0
  236. package/src/env/is-safari-like/is-safari-like.ts +9 -0
  237. package/src/env/is-stationary/is-stationary.ts +8 -0
  238. package/src/env/is-tablet/is-tablet.ts +9 -0
  239. package/src/env/is-tv/is-tv.ts +9 -0
  240. package/src/env/matches/matches.ts +55 -0
  241. package/src/env/matches-with-browsers/matches-with-browsers.ts +55 -0
  242. package/src/env/matches-with-version/matches-with-version.ts +44 -0
  243. package/src/env/private/private.ts +82 -0
  244. package/src/env/types.ts +146 -0
  245. package/src/env/user-agent/user-agent.ts +29 -0
  246. package/src/index.ts +7 -0
  247. package/src/num/in-range/in-range.ts +54 -0
  248. package/src/num/index.ts +2 -0
  249. package/src/num/round/round.ts +10 -0
  250. package/src/obj/constant/constant.ts +9 -0
  251. package/src/obj/deep-constant/deep-constant.ts +20 -0
  252. package/src/obj/diff-obj/diff-obj.ts +87 -0
  253. package/src/obj/exclude/exclude.ts +18 -0
  254. package/src/obj/extend/extend.ts +54 -0
  255. package/src/obj/for-each-obj/for-each-obj.ts +17 -0
  256. package/src/obj/has-own/has-own.ts +12 -0
  257. package/src/obj/include/include.ts +17 -0
  258. package/src/obj/index.ts +12 -0
  259. package/src/obj/keys/keys.ts +9 -0
  260. package/src/obj/map-obj/map-obj.ts +14 -0
  261. package/src/obj/map-obj-to-arr/map-obj-to-arr.ts +14 -0
  262. package/src/obj/values/values.ts +12 -0
  263. package/src/str/index.ts +3 -0
  264. package/src/str/to-camel-case/to-camel-case.ts +17 -0
  265. package/src/str/to-hash/to-hash.ts +21 -0
  266. package/src/str/with-capital/with-capital.ts +8 -0
  267. package/arr/at/at.js.map +0 -1
  268. package/arr/cnd/cnd.js.map +0 -1
  269. package/arr/diff-arr/diff-arr.d.ts +0 -10
  270. package/arr/diff-arr/diff-arr.js.map +0 -1
  271. package/arr/fill/fill.js.map +0 -1
  272. package/arr/for-each-arr/for-each-arr.js.map +0 -1
  273. package/arr/index-by/index-by.js.map +0 -1
  274. package/arr/index.d.ts +0 -9
  275. package/arr/index.js +0 -10
  276. package/arr/index.js.map +0 -1
  277. package/arr/pluck/pluck.js.map +0 -1
  278. package/arr/types.d.ts +0 -84
  279. package/arr/within/within.js.map +0 -1
  280. package/common/copy/copy.js.map +0 -1
  281. package/common/equals/equals.js.map +0 -1
  282. package/common/error.js.map +0 -1
  283. package/common/for-each/for-each.js.map +0 -1
  284. package/common/get-unique-num-id/get-unique-num-id.js.map +0 -1
  285. package/common/get-unique-str-id/get-unique-str-id.js.map +0 -1
  286. package/common/has-iterator/has-iterator.js.map +0 -1
  287. package/common/index.d.ts +0 -16
  288. package/common/index.js +0 -17
  289. package/common/index.js.map +0 -1
  290. package/common/is/is.js.map +0 -1
  291. package/common/is-empty/is-empty.js.map +0 -1
  292. package/common/random/random.js.map +0 -1
  293. package/common/same/same.js.map +0 -1
  294. package/common/stub/stub.js.map +0 -1
  295. package/common/to-float/to-float.js.map +0 -1
  296. package/common/to-int/to-int.js.map +0 -1
  297. package/common/to-sorted-string/to-sorted-string.js.map +0 -1
  298. package/common/types.js.map +0 -1
  299. package/dom/closest/closest.js.map +0 -1
  300. package/dom/document/document.js.map +0 -1
  301. package/dom/download-file/download-file.js.map +0 -1
  302. package/dom/for-each-elements/for-each-elements.js.map +0 -1
  303. package/dom/for-each-nodes/for-each-nodes.js.map +0 -1
  304. package/dom/get-all-styles/get-all-styles.js.map +0 -1
  305. package/dom/get-body/get-body.js.map +0 -1
  306. package/dom/get-html/get-html.js.map +0 -1
  307. package/dom/get-non-static-parent/get-non-static-parent.js.map +0 -1
  308. package/dom/get-offset-from-doc/get-offset-from-doc.js.map +0 -1
  309. package/dom/get-offset-from-parent/get-offset-from-parent.js.map +0 -1
  310. package/dom/get-offset-from-win/get-offset-from-win.js.map +0 -1
  311. package/dom/get-scroll-width/get-scroll-width.js.map +0 -1
  312. package/dom/get-style/get-style.js.map +0 -1
  313. package/dom/get-styles/get-styles.js.map +0 -1
  314. package/dom/get-valid-style-name/get-valid-style-name.js.map +0 -1
  315. package/dom/get-window/get-window.js.map +0 -1
  316. package/dom/has-name/has-name.js.map +0 -1
  317. package/dom/index.d.ts +0 -25
  318. package/dom/index.js +0 -26
  319. package/dom/index.js.map +0 -1
  320. package/dom/is-comment/is-comment.js.map +0 -1
  321. package/dom/is-element/is-element.js.map +0 -1
  322. package/dom/is-text/is-text.js.map +0 -1
  323. package/dom/set-offset-from-parent/set-offset-from-parent.js.map +0 -1
  324. package/dom/set-style/set-style.js.map +0 -1
  325. package/dom/set-styles/set-styles.js.map +0 -1
  326. package/env/get-browser/get-browser.js.map +0 -1
  327. package/env/get-engine/get-engine.js.map +0 -1
  328. package/env/get-os/get-os.js.map +0 -1
  329. package/env/get-platform/get-platform.js.map +0 -1
  330. package/env/index.d.ts +0 -21
  331. package/env/index.js +0 -22
  332. package/env/index.js.map +0 -1
  333. package/env/is-browser/is-browser.js.map +0 -1
  334. package/env/is-chrome-like/is-chrome-like.js.map +0 -1
  335. package/env/is-desktop/is-desktop.js.map +0 -1
  336. package/env/is-engine/is-engine.js.map +0 -1
  337. package/env/is-firefox-like/is-firefox-like.js.map +0 -1
  338. package/env/is-mobile/is-mobile.js.map +0 -1
  339. package/env/is-os/is-os.js.map +0 -1
  340. package/env/is-portable/is-portable.js.map +0 -1
  341. package/env/is-safari-like/is-safari-like.js.map +0 -1
  342. package/env/is-stationary/is-stationary.js.map +0 -1
  343. package/env/is-tablet/is-tablet.js.map +0 -1
  344. package/env/is-tv/is-tv.js.map +0 -1
  345. package/env/matches/matches.js.map +0 -1
  346. package/env/matches-with-browsers/matches-with-browsers.js.map +0 -1
  347. package/env/matches-with-version/matches-with-version.js.map +0 -1
  348. package/env/private/private.js.map +0 -1
  349. package/env/types.js.map +0 -1
  350. package/env/user-agent/user-agent.js.map +0 -1
  351. package/index.d.ts +0 -7
  352. package/index.js +0 -8
  353. package/index.js.map +0 -1
  354. package/num/in-range/in-range.d.ts +0 -8
  355. package/num/in-range/in-range.js.map +0 -1
  356. package/num/index.d.ts +0 -3
  357. package/num/index.js +0 -4
  358. package/num/index.js.map +0 -1
  359. package/num/round/round.js.map +0 -1
  360. package/num/types.js +0 -2
  361. package/obj/constant/constant.js.map +0 -1
  362. package/obj/deep-constant/deep-constant.js.map +0 -1
  363. package/obj/diff-obj/diff-obj.d.ts +0 -9
  364. package/obj/diff-obj/diff-obj.js.map +0 -1
  365. package/obj/exclude/exclude.js.map +0 -1
  366. package/obj/extend/extend.js.map +0 -1
  367. package/obj/for-each-obj/for-each-obj.js.map +0 -1
  368. package/obj/has-own/has-own.js.map +0 -1
  369. package/obj/include/include.js.map +0 -1
  370. package/obj/index.d.ts +0 -13
  371. package/obj/index.js +0 -14
  372. package/obj/index.js.map +0 -1
  373. package/obj/keys/keys.js.map +0 -1
  374. package/obj/map-obj/map-obj.js.map +0 -1
  375. package/obj/map-obj-to-arr/map-obj-to-arr.js.map +0 -1
  376. package/obj/types.js +0 -2
  377. package/obj/types.js.map +0 -1
  378. package/obj/values/values.js.map +0 -1
  379. package/str/index.d.ts +0 -3
  380. package/str/index.js +0 -4
  381. package/str/index.js.map +0 -1
  382. package/str/to-camel-case/to-camel-case.js.map +0 -1
  383. package/str/to-hash/to-hash.js.map +0 -1
  384. package/str/with-capital/with-capital.js.map +0 -1
  385. /package/{arr → dist/arr}/at/at.d.ts +0 -0
  386. /package/{arr → dist/arr}/at/at.js +0 -0
  387. /package/{arr → dist/arr}/diff-arr/diff-arr.js +0 -0
  388. /package/{arr → dist/arr}/fill/fill.d.ts +0 -0
  389. /package/{arr → dist/arr}/fill/fill.js +0 -0
  390. /package/{arr → dist/arr}/pluck/pluck.js +0 -0
  391. /package/{arr → dist/arr}/within/within.d.ts +0 -0
  392. /package/{arr → dist/arr}/within/within.js +0 -0
  393. /package/{common → dist/common}/copy/copy.d.ts +0 -0
  394. /package/{common → dist/common}/copy/copy.js +0 -0
  395. /package/{common → dist/common}/equals/equals.d.ts +0 -0
  396. /package/{common → dist/common}/equals/equals.js +0 -0
  397. /package/{common → dist/common}/error.js +0 -0
  398. /package/{common → dist/common}/for-each/for-each.d.ts +0 -0
  399. /package/{common → dist/common}/for-each/for-each.js +0 -0
  400. /package/{common → dist/common}/get-unique-num-id/get-unique-num-id.d.ts +0 -0
  401. /package/{common → dist/common}/get-unique-num-id/get-unique-num-id.js +0 -0
  402. /package/{common → dist/common}/get-unique-str-id/get-unique-str-id.d.ts +0 -0
  403. /package/{common → dist/common}/has-iterator/has-iterator.d.ts +0 -0
  404. /package/{common → dist/common}/has-iterator/has-iterator.js +0 -0
  405. /package/{common → dist/common}/is/is.d.ts +0 -0
  406. /package/{common → dist/common}/is/is.js +0 -0
  407. /package/{common → dist/common}/is-empty/is-empty.d.ts +0 -0
  408. /package/{common → dist/common}/is-empty/is-empty.js +0 -0
  409. /package/{common → dist/common}/random/random.d.ts +0 -0
  410. /package/{common → dist/common}/random/random.js +0 -0
  411. /package/{common → dist/common}/same/same.d.ts +0 -0
  412. /package/{common → dist/common}/same/same.js +0 -0
  413. /package/{common → dist/common}/stub/stub.d.ts +0 -0
  414. /package/{common → dist/common}/stub/stub.js +0 -0
  415. /package/{common → dist/common}/to-float/to-float.d.ts +0 -0
  416. /package/{common → dist/common}/to-float/to-float.js +0 -0
  417. /package/{common → dist/common}/to-int/to-int.d.ts +0 -0
  418. /package/{common → dist/common}/to-int/to-int.js +0 -0
  419. /package/{common → dist/common}/to-sorted-string/to-sorted-string.d.ts +0 -0
  420. /package/{common → dist/common}/to-sorted-string/to-sorted-string.js +0 -0
  421. /package/{arr → dist/common}/types.js +0 -0
  422. /package/{dom → dist/dom}/closest/closest.d.ts +0 -0
  423. /package/{dom → dist/dom}/closest/closest.js +0 -0
  424. /package/{dom → dist/dom}/document/document.d.ts +0 -0
  425. /package/{dom → dist/dom}/download-file/download-file.d.ts +0 -0
  426. /package/{dom → dist/dom}/for-each-elements/for-each-elements.d.ts +0 -0
  427. /package/{dom → dist/dom}/for-each-nodes/for-each-nodes.d.ts +0 -0
  428. /package/{dom → dist/dom}/get-all-styles/get-all-styles.d.ts +0 -0
  429. /package/{dom → dist/dom}/get-all-styles/get-all-styles.js +0 -0
  430. /package/{dom → dist/dom}/get-body/get-body.d.ts +0 -0
  431. /package/{dom → dist/dom}/get-body/get-body.js +0 -0
  432. /package/{dom → dist/dom}/get-html/get-html.d.ts +0 -0
  433. /package/{dom → dist/dom}/get-html/get-html.js +0 -0
  434. /package/{dom → dist/dom}/get-non-static-parent/get-non-static-parent.d.ts +0 -0
  435. /package/{dom → dist/dom}/get-non-static-parent/get-non-static-parent.js +0 -0
  436. /package/{dom → dist/dom}/get-offset-from-doc/get-offset-from-doc.d.ts +0 -0
  437. /package/{dom → dist/dom}/get-offset-from-doc/get-offset-from-doc.js +0 -0
  438. /package/{dom → dist/dom}/get-offset-from-parent/get-offset-from-parent.d.ts +0 -0
  439. /package/{dom → dist/dom}/get-offset-from-win/get-offset-from-win.d.ts +0 -0
  440. /package/{dom → dist/dom}/get-offset-from-win/get-offset-from-win.js +0 -0
  441. /package/{dom → dist/dom}/get-scroll-width/get-scroll-width.d.ts +0 -0
  442. /package/{dom → dist/dom}/get-scroll-width/get-scroll-width.js +0 -0
  443. /package/{dom → dist/dom}/get-style/get-style.d.ts +0 -0
  444. /package/{dom → dist/dom}/get-style/get-style.js +0 -0
  445. /package/{dom → dist/dom}/get-styles/get-styles.js +0 -0
  446. /package/{dom → dist/dom}/get-valid-style-name/get-valid-style-name.d.ts +0 -0
  447. /package/{dom → dist/dom}/get-window/get-window.d.ts +0 -0
  448. /package/{dom → dist/dom}/has-name/has-name.d.ts +0 -0
  449. /package/{dom → dist/dom}/has-name/has-name.js +0 -0
  450. /package/{dom → dist/dom}/is-comment/is-comment.d.ts +0 -0
  451. /package/{dom → dist/dom}/is-comment/is-comment.js +0 -0
  452. /package/{dom → dist/dom}/is-element/is-element.d.ts +0 -0
  453. /package/{dom → dist/dom}/is-element/is-element.js +0 -0
  454. /package/{dom → dist/dom}/is-text/is-text.d.ts +0 -0
  455. /package/{dom → dist/dom}/is-text/is-text.js +0 -0
  456. /package/{dom → dist/dom}/set-offset-from-parent/set-offset-from-parent.d.ts +0 -0
  457. /package/{dom → dist/dom}/set-style/set-style.d.ts +0 -0
  458. /package/{dom → dist/dom}/set-style/set-style.js +0 -0
  459. /package/{dom → dist/dom}/set-styles/set-styles.js +0 -0
  460. /package/{dom → dist/dom}/types.d.ts +0 -0
  461. /package/{dom → dist/dom}/types.js +0 -0
  462. /package/{env → dist/env}/get-browser/get-browser.d.ts +0 -0
  463. /package/{env → dist/env}/get-engine/get-engine.d.ts +0 -0
  464. /package/{env → dist/env}/get-os/get-os.d.ts +0 -0
  465. /package/{env → dist/env}/get-platform/get-platform.d.ts +0 -0
  466. /package/{env → dist/env}/is-browser/is-browser.d.ts +0 -0
  467. /package/{env → dist/env}/is-browser/is-browser.js +0 -0
  468. /package/{env → dist/env}/is-chrome-like/is-chrome-like.d.ts +0 -0
  469. /package/{env → dist/env}/is-chrome-like/is-chrome-like.js +0 -0
  470. /package/{env → dist/env}/is-desktop/is-desktop.d.ts +0 -0
  471. /package/{env → dist/env}/is-desktop/is-desktop.js +0 -0
  472. /package/{env → dist/env}/is-engine/is-engine.d.ts +0 -0
  473. /package/{env → dist/env}/is-engine/is-engine.js +0 -0
  474. /package/{env → dist/env}/is-firefox-like/is-firefox-like.d.ts +0 -0
  475. /package/{env → dist/env}/is-firefox-like/is-firefox-like.js +0 -0
  476. /package/{env → dist/env}/is-mobile/is-mobile.d.ts +0 -0
  477. /package/{env → dist/env}/is-mobile/is-mobile.js +0 -0
  478. /package/{env → dist/env}/is-os/is-os.d.ts +0 -0
  479. /package/{env → dist/env}/is-os/is-os.js +0 -0
  480. /package/{env → dist/env}/is-portable/is-portable.d.ts +0 -0
  481. /package/{env → dist/env}/is-portable/is-portable.js +0 -0
  482. /package/{env → dist/env}/is-safari-like/is-safari-like.d.ts +0 -0
  483. /package/{env → dist/env}/is-safari-like/is-safari-like.js +0 -0
  484. /package/{env → dist/env}/is-stationary/is-stationary.d.ts +0 -0
  485. /package/{env → dist/env}/is-stationary/is-stationary.js +0 -0
  486. /package/{env → dist/env}/is-tablet/is-tablet.d.ts +0 -0
  487. /package/{env → dist/env}/is-tablet/is-tablet.js +0 -0
  488. /package/{env → dist/env}/is-tv/is-tv.d.ts +0 -0
  489. /package/{env → dist/env}/is-tv/is-tv.js +0 -0
  490. /package/{env → dist/env}/matches/matches.d.ts +0 -0
  491. /package/{env → dist/env}/matches-with-browsers/matches-with-browsers.d.ts +0 -0
  492. /package/{env → dist/env}/matches-with-version/matches-with-version.d.ts +0 -0
  493. /package/{env → dist/env}/types.d.ts +0 -0
  494. /package/{env → dist/env}/types.js +0 -0
  495. /package/{env → dist/env}/user-agent/user-agent.d.ts +0 -0
  496. /package/{num → dist/num}/round/round.d.ts +0 -0
  497. /package/{num → dist/num}/round/round.js +0 -0
  498. /package/{obj → dist/obj}/constant/constant.js +0 -0
  499. /package/{obj → dist/obj}/has-own/has-own.js +0 -0
  500. /package/{obj → dist/obj}/keys/keys.js +0 -0
  501. /package/{obj → dist/obj}/map-obj/map-obj.js +0 -0
  502. /package/{obj → dist/obj}/map-obj-to-arr/map-obj-to-arr.js +0 -0
  503. /package/{obj → dist/obj}/values/values.js +0 -0
  504. /package/{str → dist/str}/to-camel-case/to-camel-case.d.ts +0 -0
  505. /package/{str → dist/str}/to-camel-case/to-camel-case.js +0 -0
  506. /package/{str → dist/str}/to-hash/to-hash.d.ts +0 -0
  507. /package/{str → dist/str}/to-hash/to-hash.js +0 -0
  508. /package/{str → dist/str}/with-capital/with-capital.d.ts +0 -0
  509. /package/{str → dist/str}/with-capital/with-capital.js +0 -0
@@ -0,0 +1,89 @@
1
+ import {
2
+ isNumber, isBigInt, isBoolean, isString, isDate, isRegExp, isFunction, isMap, isSet, isObject, isArray, isTypedArray,
3
+ isBlob, isArrayBuffer, isWindow, isDocument, isFile, isFormData, isPromise, isObservable,
4
+ } from '../';
5
+ import {forEachObj} from '../../obj';
6
+
7
+ /**
8
+ * Creates a deep copy of a value of any type
9
+ * Objects, arrays, sets, maps etc. will be ignored if they have been visited to prevent looping
10
+ * @param value - anything
11
+ */
12
+ export function copy<T>(value: T): T {
13
+ return _copy(value, new Map());
14
+ }
15
+
16
+ function _copy(value: any, visited: Map<any, any>): any {
17
+ if (!value || isString(value) || isNumber(value) || isBigInt(value) || isBoolean(value) || isFunction(value)) {
18
+ return value;
19
+ } else if (isDate(value)) {
20
+ return new Date(value.getTime());
21
+ } else if (isArray(value)) {
22
+ if (visited.has(value)) {
23
+ return visited.get(value);
24
+ }
25
+
26
+ const arr: any[] = [];
27
+ visited.set(value, arr);
28
+ value.forEach(item => arr.push(_copy(item, visited)));
29
+
30
+ return arr;
31
+ } else if (isSet(value)) {
32
+ if (visited.has(value)) {
33
+ return visited.get(value);
34
+ }
35
+
36
+ const newSet = new Set();
37
+ visited.set(value, newSet);
38
+ value.forEach(item => newSet.add(_copy(item, visited)));
39
+
40
+ return newSet;
41
+ } else if (isMap(value)) {
42
+ if (visited.has(value)) {
43
+ return visited.get(value);
44
+ }
45
+
46
+ const newMap = new Map();
47
+ visited.set(value, newMap);
48
+
49
+ value.forEach((item, key) => newMap.set(_copy(key, visited), _copy(item, visited)));
50
+
51
+ return newMap;
52
+ } else if (isRegExp(value)) {
53
+ // @ts-ignore
54
+ const reg = new RegExp(value.source, value.toString().match(/[^/]*$/)[0]);
55
+ reg.lastIndex = value.lastIndex;
56
+ return reg;
57
+ } else if (isBlob(value)) {
58
+ return new Blob([value], {type: value.type});
59
+ } else if (isArrayBuffer(value)) {
60
+ return value.slice(0);
61
+ } else if (isTypedArray(value)) {
62
+ // @ts-ignore
63
+ return new value.constructor(value.buffer.slice(0), value.byteOffset, value.length);
64
+ } else if (isWindow(value) || isDocument(value) || isFile(value) || isFormData(value) || isPromise(value)
65
+ || isObservable(value)) {
66
+ return value;
67
+ } else if (isObject(value)) {
68
+ if (visited.has(value)) {
69
+ return visited.get(value);
70
+ }
71
+
72
+ const obj = Object.create(Object.getPrototypeOf(value));
73
+ visited.set(value, obj);
74
+
75
+ forEachObj(value, (val, key) => {
76
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
77
+
78
+ if (descriptor?.get || descriptor?.set) {
79
+ Object.defineProperty(obj, key, descriptor);
80
+ } else {
81
+ obj[key] = _copy(val, visited);
82
+ }
83
+ });
84
+
85
+ return obj;
86
+ } else {
87
+ return value;
88
+ }
89
+ }
@@ -0,0 +1,142 @@
1
+ import {
2
+ Index, isNaN, isDate, isRegExp, isFunction, isDefined, isMap, isSet, isObject, isArray, isTypedArray,
3
+ } from '../';
4
+ import {hasOwn} from '../../obj';
5
+
6
+ /**
7
+ * Determines whether two values are equal.
8
+ * The comparison is performed to the full depth of nesting.
9
+ * Objects are equal if they have the same fields with equal values.
10
+ * Arrays and sets are equal if they have the same length and equal values in the same order.
11
+ * Maps are equal if they have the same keys with equal values.
12
+ * Objects, arrays, sets, maps etc. will be ignored if they have been visited to prevent looping
13
+ * @param value1 - anything
14
+ * @param value2 - anything
15
+ * @param sortFn - if added, arrays and sets will be sorted before comparison
16
+ */
17
+ export function equals(value1: any, value2: any, sortFn?: (a: any, b: any) => number): boolean {
18
+ return _equals(value1, value2, new Map<any, true>(), sortFn);
19
+ }
20
+
21
+ function _equals(obj1: any, obj2: any, visited: Map<any, true>, sortFn?: (a: any, b: any) => number): boolean {
22
+ if (obj1 === obj2 || (isNaN(obj1) && isNaN(obj2))) {
23
+ return true;
24
+ } else if (isArray(obj1) || isTypedArray(obj1)) {
25
+ if (visited.has(obj1)) {
26
+ return true;
27
+ }
28
+ visited.set(obj1, true);
29
+
30
+ if ((!isArray(obj2) && !isTypedArray(obj2)) || obj1.length !== obj2.length) {
31
+ return false;
32
+ }
33
+
34
+ let arr1 = obj1;
35
+ let arr2 = obj2;
36
+
37
+ if (sortFn) {
38
+ arr1 = [...obj1].sort(sortFn);
39
+ arr2 = [...obj2].sort(sortFn);
40
+ }
41
+
42
+ for (let i = 0; i < arr1.length; i++) {
43
+ if (!_equals(arr1[i], arr2[i], visited, sortFn)) {
44
+ return false;
45
+ }
46
+ }
47
+
48
+ return true;
49
+ } else if (isFunction(obj1)) {
50
+ return false;
51
+ } else if (isDate(obj1)) {
52
+ return isDate(obj2) && obj1.getTime() === obj2.getTime();
53
+ } else if (isRegExp(obj1)) {
54
+ return isRegExp(obj2) && obj1.toString() === obj2.toString();
55
+ } else if (isMap(obj1)) {
56
+ if (visited.has(obj1)) {
57
+ return true;
58
+ }
59
+ visited.set(obj1, true);
60
+
61
+ if (!isMap(obj2) || obj1.size !== obj2.size) {
62
+ return false;
63
+ }
64
+
65
+ const map = new Map<any, true>();
66
+
67
+ for (const [key, value] of obj1) {
68
+ if (!_equals(value, obj2.get(key), visited, sortFn)) {
69
+ return false;
70
+ }
71
+
72
+ map.set(key, true);
73
+ }
74
+
75
+ for (const [key, value] of obj2) {
76
+ if (!map.has(key) && isDefined(value)) {
77
+ return false;
78
+ }
79
+ }
80
+
81
+ return true;
82
+ } else if (isSet(obj1)) {
83
+ if (visited.has(obj1)) {
84
+ return true;
85
+ }
86
+ visited.set(obj1, true);
87
+
88
+ if (!isSet(obj2) || obj1.size !== obj2.size) {
89
+ return false;
90
+ }
91
+
92
+ const arr1 = Array.from(obj1);
93
+ const arr2 = Array.from(obj2);
94
+
95
+ if (sortFn) {
96
+ arr1.sort(sortFn);
97
+ arr2.sort(sortFn);
98
+ }
99
+
100
+ for (let i = 0; i < arr1.length; i++) {
101
+ if (!_equals(arr1[i], arr2[i], visited, sortFn)) {
102
+ return false;
103
+ }
104
+ }
105
+
106
+ return true;
107
+ } else if (isObject(obj1)) {
108
+ if (visited.has(obj1)) {
109
+ return true;
110
+ }
111
+ visited.set(obj1, true);
112
+
113
+ if (!isObject(obj2) || isArray(obj2) || isTypedArray(obj2) || isDate(obj2) || isRegExp(obj2) || isMap(obj2)
114
+ || isSet(obj2)) {
115
+ return false;
116
+ }
117
+
118
+ const obj: Index<true> = {};
119
+
120
+ for (const key in obj1) {
121
+ if (!hasOwn(obj1, key) || isFunction(obj1[key])) {
122
+ continue;
123
+ } else if (!_equals(obj1[key], obj2[key], visited, sortFn)) {
124
+ return false;
125
+ }
126
+
127
+ obj[key] = true;
128
+ }
129
+
130
+ for (const key in obj2) {
131
+ if (!hasOwn(obj2, key) || isFunction(obj2[key])) {
132
+ continue;
133
+ } else if (!hasOwn(obj, key) && isDefined(obj2[key])) {
134
+ return false;
135
+ }
136
+ }
137
+
138
+ return true;
139
+ } else {
140
+ return false;
141
+ }
142
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Represents additional error options the BfError class
3
+ */
4
+ export interface BfErrorOptions {
5
+ code?: string;
6
+ data?: any;
7
+ }
8
+
9
+ /**
10
+ * Extends the Error class and adds additional parameters: date, code, data
11
+ */
12
+ export class BfError extends Error {
13
+ /**
14
+ * Creation date
15
+ */
16
+ readonly date = new Date();
17
+
18
+ /**
19
+ * Unique error code
20
+ */
21
+ readonly code?: string;
22
+
23
+ /**
24
+ * Any additional data for error handling
25
+ */
26
+ readonly data?: any;
27
+
28
+ constructor(massage?: string, options?: BfErrorOptions) {
29
+ super(massage);
30
+ this.name = 'BfError';
31
+ this.code = options?.code;
32
+ this.data = options?.data;
33
+ }
34
+ }
@@ -0,0 +1,36 @@
1
+ import {NumStr, BfError, INTERRUPT, isNumber, isFunction, isMap, isSet, isObject, hasIterator} from '../';
2
+ import {forEachArr} from '../../arr';
3
+ import {forEachObj} from '../../obj';
4
+
5
+ /**
6
+ * Iterates through all the items of any iterable object and calls a handler for each item
7
+ * If the handler returns INTERRUPT, the loop will be interrupted
8
+ * @param obj - any iterable object
9
+ * @param handler - function called for each item
10
+ * @param reverse - iterates in reverse order if true
11
+ */
12
+ export function forEach(obj: any, handler: (value: any, key: NumStr, obj: any) => any, reverse?: boolean): void {
13
+ if (hasIterator(obj)) {
14
+ if (isMap(obj)) {
15
+ const iterable = Array.from(obj);
16
+ forEachArr(iterable, entry => handler(entry[1], entry[0], obj), reverse);
17
+ } else if (isFunction(obj.forEach) || isNumber(obj.length)) {
18
+ const iterable: any = isSet(obj) ? Array.from(obj) : obj;
19
+ forEachArr(iterable, (value, i) => handler(value, i, obj), reverse);
20
+ } else {
21
+ let i = 0;
22
+ for (const item of obj) {
23
+ if (handler(item, i++, obj) === INTERRUPT) {
24
+ return;
25
+ }
26
+ }
27
+ }
28
+ } else if (isObject(obj)) {
29
+ forEachObj(obj, handler);
30
+ } else {
31
+ throw new BfError('Invalid iterable object', {
32
+ code: 'bf_utils_forEach_1',
33
+ data: obj,
34
+ });
35
+ }
36
+ }
@@ -0,0 +1,8 @@
1
+ import {getUniqueStrId} from '../';
2
+
3
+ /**
4
+ * Returns a unique number identifier for the current session
5
+ */
6
+ export function getUniqueNumId(): number {
7
+ return Number(getUniqueStrId());
8
+ }
@@ -0,0 +1,18 @@
1
+ import {random} from '../random/random';
2
+
3
+ /*
4
+ * Counter for the getUniqueStrId function
5
+ */
6
+ let counter = 0;
7
+
8
+ /*
9
+ * Salt for the getUniqueStrId function
10
+ */
11
+ const salt = random(7);
12
+
13
+ /**
14
+ * Returns a unique string identifier for the current session
15
+ */
16
+ export function getUniqueStrId(): string {
17
+ return `${salt}${++counter}`;
18
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Returns true if the value has an iterator, otherwise false
3
+ * @param value - anything
4
+ */
5
+ export function hasIterator(value: any): boolean {
6
+ return !!(value && value[Symbol.iterator]);
7
+ }
@@ -0,0 +1,23 @@
1
+ export {
2
+ Nullish, NumStr, NumStrSym, Fn, Arr, TypedArr, Obj, Index, ArrObj, UnionToIntersection, ValueUnion, ValueIntersection,
3
+ } from './types';
4
+ export {INTERRUPT} from './interrupt';
5
+ export {BfError, BfErrorOptions} from './error';
6
+ export {stub} from './stub/stub';
7
+ export {
8
+ isNull, isUndefined, isDefined, isNullish, isNaN, isString, isNumber, isBigInt, isBoolean, isSymbol, isFunction,
9
+ isObject, isArray, isSet, isMap, isDate, isRegExp, isFile, isBlob, isFormData, isArrayBuffer, isDocument, isWindow,
10
+ isPromise, isObservable, isTypedArray, isUsualObject,
11
+ } from './is/is';
12
+ export {isEmpty} from './is-empty/is-empty';
13
+ export {same} from './same/same';
14
+ export {random} from './random/random';
15
+ export {toInt} from './to-int/to-int';
16
+ export {toFloat} from './to-float/to-float';
17
+ export {hasIterator} from './has-iterator/has-iterator';
18
+ export {getUniqueStrId} from './get-unique-str-id/get-unique-str-id';
19
+ export {getUniqueNumId} from './get-unique-num-id/get-unique-num-id';
20
+ export {toSortedString} from './to-sorted-string/to-sorted-string';
21
+ export {forEach} from './for-each/for-each';
22
+ export {equals} from './equals/equals';
23
+ export {copy} from './copy/copy';
@@ -2,4 +2,3 @@
2
2
  * This symbol is used in forEach handlers to interrupt the loop
3
3
  */
4
4
  export const INTERRUPT = Symbol('Symbol.INTERRUPT');
5
- //# sourceMappingURL=types.js.map
@@ -0,0 +1,244 @@
1
+ import {Fn, TypedArr, Obj, Nullish} from '../';
2
+
3
+ /*
4
+ * Why is typeof or constructor used to check type?
5
+ * For 100 000 000 iterations type checking is spending:
6
+ * by typeof: ~75 milliseconds
7
+ * by constructor: ~75 milliseconds
8
+ * by instanceof: ~255 milliseconds
9
+ * by toString.call: ~850 milliseconds
10
+ */
11
+
12
+ /**
13
+ * Returns true if the value is null, otherwise false
14
+ * @param value - anything
15
+ */
16
+ export function isNull(value: any): value is null {
17
+ return value === null;
18
+ }
19
+
20
+ /**
21
+ * Returns true if the value is undefined, otherwise false
22
+ * @param value - anything
23
+ */
24
+ export function isUndefined(value: any): value is undefined {
25
+ return typeof value === 'undefined';
26
+ }
27
+
28
+ /**
29
+ * Returns true if the value is defined, otherwise false
30
+ * @param value - anything
31
+ */
32
+ export function isDefined(value: any): boolean {
33
+ return typeof value !== 'undefined';
34
+ }
35
+
36
+ /**
37
+ * Returns true if the value is undefined or null, otherwise false
38
+ * @param value - anything
39
+ */
40
+ export function isNullish(value: any): value is Nullish {
41
+ return isNull(value) || isUndefined(value);
42
+ }
43
+
44
+ /**
45
+ * Returns true if the value is NaN, otherwise false
46
+ * @param value - anything
47
+ */
48
+ export function isNaN(value: any): value is typeof NaN {
49
+ return Number.isNaN(value);
50
+ }
51
+
52
+ /**
53
+ * Returns true if the value is a string, otherwise false
54
+ * @param value - anything
55
+ */
56
+ export function isString(value: any): value is string {
57
+ return typeof value === 'string';
58
+ }
59
+
60
+ /**
61
+ * Returns true if the value is a number, otherwise false
62
+ * @param value - anything
63
+ */
64
+ export function isNumber(value: any): value is number {
65
+ return typeof value === 'number';
66
+ }
67
+
68
+ /**
69
+ * Returns true if the value is a big integer, otherwise false
70
+ * @param value - anything
71
+ */
72
+ export function isBigInt(value: any): value is bigint {
73
+ return typeof value === 'bigint';
74
+ }
75
+
76
+ /**
77
+ * Returns true if the value is a boolean, otherwise false
78
+ * @param value - anything
79
+ */
80
+ export function isBoolean(value: any): value is boolean {
81
+ return typeof value === 'boolean';
82
+ }
83
+
84
+ /**
85
+ * Returns true if the value is a symbol, otherwise false
86
+ * @param value - anything
87
+ */
88
+ export function isSymbol(value: any): value is symbol {
89
+ return typeof value === 'symbol';
90
+ }
91
+
92
+ /**
93
+ * Returns true if the value is a function, otherwise false
94
+ * @param value - anything
95
+ */
96
+ export function isFunction(value: any): value is Fn {
97
+ return typeof value === 'function';
98
+ }
99
+
100
+ /**
101
+ * Returns true if the value is an object, otherwise false
102
+ * @param value - anything
103
+ */
104
+ export function isObject(value: any): value is Obj {
105
+ return !!value && typeof value === 'object';
106
+ }
107
+
108
+ /**
109
+ * Returns true if the value is an array, otherwise false
110
+ * @param value - anything
111
+ */
112
+ export function isArray(value: any): value is Array<any> {
113
+ return Array.isArray(value);
114
+ }
115
+
116
+ /**
117
+ * Returns true if the value is a set, otherwise false
118
+ * @param value - anything
119
+ */
120
+ export function isSet(value: any): value is Set<any> {
121
+ return !!value && value.constructor === Set;
122
+ }
123
+
124
+ /**
125
+ * Returns true if the value is a map, otherwise false
126
+ * @param value - anything
127
+ */
128
+ export function isMap(value: any): value is Map<any, any> {
129
+ return !!value && value.constructor === Map;
130
+ }
131
+
132
+ /**
133
+ * Returns true if the value is a date, otherwise false
134
+ * @param value - anything
135
+ */
136
+ export function isDate(value: any): value is Date {
137
+ return !!value && value.constructor === Date;
138
+ }
139
+
140
+ /**
141
+ * Returns true if the value is a regular expression, otherwise false
142
+ * @param value - anything
143
+ */
144
+ export function isRegExp(value: any): value is RegExp {
145
+ return !!value && value.constructor === RegExp;
146
+ }
147
+
148
+ /**
149
+ * Returns true if the value is a file, otherwise false
150
+ * @param value - anything
151
+ */
152
+ export function isFile(value: any): value is File {
153
+ return !!value && value.constructor === File;
154
+ }
155
+
156
+ /**
157
+ * Returns true if the value is a blob, otherwise false
158
+ * @param value - anything
159
+ */
160
+ export function isBlob(value: any): value is Blob {
161
+ return !!value && value.constructor === Blob;
162
+ }
163
+
164
+ /**
165
+ * Returns true if the value is form data, otherwise false
166
+ * @param value - anything
167
+ */
168
+ export function isFormData(value: any): value is FormData {
169
+ return !!value && value.constructor === FormData;
170
+ }
171
+
172
+ /**
173
+ * Returns true if the value is an array buffer, otherwise false
174
+ * @param value - anything
175
+ */
176
+ export function isArrayBuffer(value: any): value is ArrayBuffer {
177
+ return !!value && value.constructor === ArrayBuffer;
178
+ }
179
+
180
+ /**
181
+ * Returns true if the value is a document, otherwise false
182
+ * @param value - anything
183
+ */
184
+ export function isDocument(value: any): value is Document {
185
+ return !!value && typeof Document === 'function' && value.constructor === Document;
186
+ }
187
+
188
+ /**
189
+ * Returns true if the value is a window, otherwise false
190
+ * @param value - anything
191
+ */
192
+ export function isWindow(value: any): value is Window {
193
+ return !!value && value.window === value;
194
+ }
195
+
196
+ /**
197
+ * Returns true if the value is a promise, otherwise false
198
+ * @param value - anything
199
+ */
200
+ export function isPromise(value: any): value is Promise<any> {
201
+ return !!value && (value.constructor === Promise || (isFunction(value.then) && isFunction(value.catch)));
202
+ }
203
+
204
+ /**
205
+ * Returns true if the value is an observable, otherwise false
206
+ * @param value - anything
207
+ */
208
+ export function isObservable(value: any): boolean {
209
+ return !!value && isFunction(value.pipe) && isFunction(value.subscribe);
210
+ }
211
+
212
+ /**
213
+ * Returns true if the value is a typed array, otherwise false
214
+ * @param value - anything
215
+ */
216
+ export function isTypedArray(value: any): value is TypedArr {
217
+ switch (value?.constructor) {
218
+ case Int8Array:
219
+ case Int16Array:
220
+ case Int32Array:
221
+ case Float32Array:
222
+ case Float64Array:
223
+ case Uint8Array:
224
+ case Uint8ClampedArray:
225
+ case Uint16Array:
226
+ case Uint32Array:
227
+ // case BigInt64Array:
228
+ // case BigUint64Array:
229
+ return true;
230
+ default:
231
+ return false;
232
+ }
233
+ }
234
+
235
+ /**
236
+ * Returns true if the value is a usual object, otherwise false
237
+ * @param value - anything
238
+ */
239
+ export function isUsualObject(value: any): value is Obj {
240
+ return isObject(value) && !isArray(value) && !isTypedArray(value) && !isSet(value) && !isMap(value) && !isDate(value)
241
+ && !isRegExp(value) && !isFile(value) && !isBlob(value) && !isFormData(value) && !isArrayBuffer(value) && !isWindow(
242
+ value,
243
+ ) && !isDocument(value) && !isPromise(value) && !isObservable(value);
244
+ }
@@ -0,0 +1,26 @@
1
+ import {isNumber, isBigInt, isBoolean, isSymbol, isString, isDate, isRegExp, isFunction, isDefined} from '../';
2
+ import {hasOwn} from '../../obj';
3
+
4
+ /**
5
+ * Returns true if the value is empty (null, undefined, NaN, Infinity, '', {}, [], Int32Array(), Set(), Map()),
6
+ * otherwise false
7
+ * @param value - anything
8
+ */
9
+ export function isEmpty(value: any): boolean {
10
+ if (isNumber(value) || isBigInt(value) || isBoolean(value) || isSymbol(value)) {
11
+ return false;
12
+ } else if (!value) {
13
+ return true;
14
+ } else if (isString(value) || isDate(value) || isRegExp(value) || isFunction(value)) {
15
+ return false;
16
+ } else if (isFunction(value.forEach)) {
17
+ return value.length === 0 || value.size === 0;
18
+ } else {
19
+ for (const key in value) {
20
+ if (hasOwn(value, key) && isDefined(value[key])) {
21
+ return false;
22
+ }
23
+ }
24
+ return true;
25
+ }
26
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Returns a random integer between 0 and number, not exceeding a certain number of digits
3
+ * @param numberOfDigits - number of digits (default: 7, maximum: 15)
4
+ */
5
+ export function random(numberOfDigits = 7): number {
6
+ numberOfDigits = numberOfDigits <= 15 ? numberOfDigits : 15;
7
+ return Math.round(Math.random() * Math.pow(10, numberOfDigits));
8
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Determines whether two values are the same value
3
+ * @param value1 - anything
4
+ * @param value2 - anything
5
+ */
6
+ export function same(value1: any, value2: any): boolean {
7
+ return (value1 === 0 && value2 === 0) || Object.is(value1, value2);
8
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Can replace any required function,
3
+ * takes any arguments and returns anything
4
+ */// eslint-disable-next-line @typescript-eslint/no-unused-vars
5
+ export function stub(...args: any[]): any {
6
+ return;
7
+ }
@@ -0,0 +1,10 @@
1
+ import {NumStr, isNumber} from '../';
2
+
3
+ /**
4
+ * Converts a string to a float and replaces NaN and Infinity with 0
5
+ * @param value - a string or number
6
+ */
7
+ export function toFloat(value: NumStr): number {
8
+ const num = isNumber(value) ? value : parseFloat(value);
9
+ return isFinite(num) ? num : 0;
10
+ }
@@ -0,0 +1,10 @@
1
+ import {NumStr, isNumber} from '../';
2
+
3
+ /**
4
+ * Converts a string to an integer and replaces NaN and Infinity with 0
5
+ * @param value - a string or number
6
+ */
7
+ export function toInt(value: NumStr): number {
8
+ const num = isNumber(value) ? value : parseInt(value, 10);
9
+ return isFinite(num) ? num : 0;
10
+ }