@bitfiber/utils 1.0.1 → 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,146 @@
1
+ /**
2
+ * Represents supported bot names
3
+ */
4
+ export type BotNames = 'googlebot' | 'bingbot' | 'yandexbot' | 'slurp' | 'unknown';
5
+
6
+ /**
7
+ * Represents supported platform names
8
+ */
9
+ export type PlatformNames = 'tv' | 'desktop' | 'tablet' | 'mobile' | BotNames;
10
+
11
+ /**
12
+ * Represents supported OS names
13
+ */
14
+ export type OSNames = 'xbox' | 'windows' | 'ios' | 'macOS' | 'webOS' | 'tizen' | 'appleTV' | 'roku' | 'chromeOS'
15
+ | 'playstation4' | 'playstation5' | 'nintendoSwitch' | 'likeAndroid' | 'android' | 'linux' | BotNames;
16
+
17
+ /**
18
+ * Represents supported engine names
19
+ */
20
+ export type EngineNames = 'blink' | 'webkit' | 'gecko' | BotNames;
21
+
22
+ /**
23
+ * Represents supported browser names
24
+ */
25
+ export type BrowserNames = 'opera' | 'operaCoast' | 'operaTouch' | 'samsung' | 'mz' | 'yandex' | 'uc' | 'maxthon'
26
+ | 'kmeleon' | 'wechat' | 'qqLite' | 'qq' | 'edge' | 'sailfish' | 'webOS' | 'tizen' | 'miui' | 'silk' | 'phantomjs'
27
+ | 'slimerjs' | 'qupzilla' | 'electron' | 'whale' | 'focus' | 'swing' | 'epiphany' | 'puffin' | 'sleipnir' | 'vivaldi'
28
+ | 'seamonkey' | 'playstation4' | 'playstation5' | 'googleSearch' | 'firefox' | 'chrome' | 'android' | 'safari'
29
+ | BotNames;
30
+
31
+ /**
32
+ * Represents a version data
33
+ */
34
+ export interface VersionData {
35
+
36
+ /**
37
+ * Full version
38
+ */
39
+ version: string;
40
+
41
+ /**
42
+ * Major version (first number)
43
+ */
44
+ major: string;
45
+ }
46
+
47
+ /**
48
+ * Represents the returned data by the getOS function
49
+ */
50
+ export interface OSData extends VersionData {
51
+
52
+ /**
53
+ * Unique name of the OS
54
+ */
55
+ name: OSNames;
56
+ }
57
+
58
+ /**
59
+ * Represents the returned data by the getEngine function
60
+ */
61
+ export interface EngineData extends VersionData {
62
+
63
+ /**
64
+ * Unique name of the browser engine
65
+ */
66
+ name: EngineNames;
67
+ }
68
+
69
+ /**
70
+ * Represents the returned data by the getBrowser function
71
+ */
72
+ export interface BrowserData extends VersionData {
73
+
74
+ /**
75
+ * Unique name of the browser
76
+ */
77
+ name: BrowserNames;
78
+ }
79
+
80
+ /**
81
+ * Represents an object that have keys corresponding to engine names and values corresponding to engine versions
82
+ */
83
+ export type EnginesCondition = {[key in EngineNames]?: string};
84
+
85
+ /**
86
+ * Represents an object that have keys corresponding to browser names and values corresponding to browser versions,
87
+ * and may have an engine property with the engines condition
88
+ */
89
+ export type BrowsersCondition = {[key in BrowserNames]?: string} & {engines?: EngineNames | EnginesCondition};
90
+
91
+ /**
92
+ * Represents the browsers condition with an optional osVersion property
93
+ */
94
+ export type OSBrowsersCondition = BrowsersCondition & {osVersion?: string};
95
+
96
+ /**
97
+ * Represents an object that have keys corresponding to OS names and values corresponding to the OS browsers conditions
98
+ */
99
+ export type OSCondition = {[key in OSNames]?: OSBrowsersCondition} & {anyOS?: OSBrowsersCondition};
100
+
101
+ /**
102
+ * Represents an object that have keys corresponding to platform names and values corresponding to the OS conditions
103
+ */
104
+ export type PlatformsCondition = {[key in PlatformNames]?: OSCondition} & {anyPlatform?: OSCondition};
105
+
106
+ /*
107
+ * @internal
108
+ * Represents the returned data by the getBot function
109
+ */
110
+ export interface BotData extends VersionData {
111
+
112
+ /*
113
+ * Unique name of the bot
114
+ */
115
+ name: BotNames;
116
+ }
117
+
118
+ /*
119
+ * @internal
120
+ * Represents the returned data by the getEnvData function
121
+ */
122
+ export interface EnvData extends VersionData {
123
+
124
+ /*
125
+ * Unique name of the platform, OS, browser or browser engine
126
+ */
127
+ name: PlatformNames | OSNames | EngineNames | BrowserNames;
128
+ }
129
+
130
+ /*
131
+ * @internal
132
+ * Represents the test type to test for compliance
133
+ */
134
+ export type EnvTest = string | RegExp | (() => boolean);
135
+
136
+ /*
137
+ * @internal
138
+ * Represents a group of tests
139
+ */
140
+ export type EnvTestGroup = EnvTest | EnvTest[];
141
+
142
+ /*
143
+ * @internal
144
+ * Represents a set of tests and template for retrieving a version
145
+ */
146
+ export type EnvCondition = string | [string, EnvTestGroup] | [string, EnvTestGroup, string | RegExp];
@@ -0,0 +1,29 @@
1
+ import {resetBrowser} from '../get-browser/get-browser';
2
+ import {resetEngine} from '../get-engine/get-engine';
3
+ import {resetOS} from '../get-os/get-os';
4
+ import {resetPlatform} from '../get-platform/get-platform';
5
+ import {resetBot} from '../private/private';
6
+
7
+ let agent = typeof navigator === 'object' ? navigator.userAgent : '';
8
+
9
+ /**
10
+ * Returns user agent
11
+ */
12
+ export function getUserAgent(): string {
13
+ return agent;
14
+ }
15
+
16
+ /**
17
+ * If the global object is not a window, you can use this function to set up a stub user agent
18
+ * @param userAgent - any string with user agent data
19
+ */
20
+ export function setUserAgent(userAgent: string): void {
21
+ if (agent !== userAgent) {
22
+ resetBot();
23
+ resetOS();
24
+ resetEngine();
25
+ resetPlatform();
26
+ resetBrowser();
27
+ agent = userAgent;
28
+ }
29
+ }
package/src/index.ts ADDED
@@ -0,0 +1,7 @@
1
+ export * from './common/index';
2
+ export * from './num/index';
3
+ export * from './str/index';
4
+ export * from './obj/index';
5
+ export * from './arr/index';
6
+ export * from './dom/index';
7
+ export * from './env/index';
@@ -0,0 +1,54 @@
1
+ import {isNumber, Nullish} from '../../common';
2
+ import {round} from '../';
3
+
4
+ /**
5
+ * Represents options type for the inRange function
6
+ */
7
+ export interface InRangeOptions {
8
+
9
+ /**
10
+ * If the minimum is specified and the value is less than the minimum,
11
+ * the value will be replaced with the minimum
12
+ */
13
+ min?: number;
14
+
15
+ /**
16
+ * If the maximum is specified and the value is greater than the maximum,
17
+ * the value will be replaced with the maximum
18
+ */
19
+ max?: number;
20
+
21
+ /**
22
+ * If the precision is specified, the value will be rounded to the number of decimal places
23
+ */
24
+ precision?: number;
25
+
26
+ /**
27
+ * If true, the empty value will be replaced with
28
+ * either the defined minimum or defined maximum if the maximum is less than 0 or 0
29
+ */
30
+ required?: boolean;
31
+ }
32
+
33
+ /**
34
+ * Converts the numeric value to a new number according to the options
35
+ * @param value - numeric value
36
+ * @param options - options for converting the numeric value
37
+ */
38
+ export function inRange(value: number | Nullish, options: InRangeOptions = {}): number | null {
39
+ let newValue = isNumber(value) ? (isNumber(options.precision) ? round(value, options.precision) : value) : null;
40
+
41
+ if (isNumber(newValue)) {
42
+ if (isNumber(options.min) && newValue < options.min) {
43
+ newValue = options.min;
44
+ }
45
+
46
+ if (isNumber(options.max) && newValue > options.max) {
47
+ newValue = options.max;
48
+ }
49
+ } else if (options.required) {
50
+ newValue = options.min || (isNumber(options.max) && options.max < 0 ? options.max : 0);
51
+ }
52
+
53
+ return newValue;
54
+ }
@@ -0,0 +1,2 @@
1
+ export {round} from './round/round';
2
+ export {inRange, InRangeOptions} from './in-range/in-range';
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Rounds a numeric value to a number with a specified number of decimal places
3
+ * and replaces NaN and Infinity with 0
4
+ * @param value - numeric value
5
+ * @param precision - number of decimal places, default 0
6
+ */
7
+ export function round(value: number, precision = 0): number {
8
+ const num = Number(value.toFixed(precision));
9
+ return isFinite(num) ? num : 0;
10
+ }
@@ -0,0 +1,9 @@
1
+ import {Obj} from '../../common';
2
+
3
+ /**
4
+ * Makes an object read-only
5
+ * @param obj - any object
6
+ */
7
+ export function constant<T extends Obj>(obj: T): Readonly<T> {
8
+ return Object.freeze(obj);
9
+ }
@@ -0,0 +1,20 @@
1
+ import {isObject, Obj} from '../../common';
2
+ import {constant} from '../';
3
+
4
+ /**
5
+ * Makes an object and its nested objects read-only
6
+ * @param obj - any object
7
+ */
8
+ export function deepConstant<T extends Obj>(obj: T): Readonly<T> {
9
+ // Gets fields of enumerable and non-enumerable own properties
10
+ const fields = Object.getOwnPropertyNames(obj);
11
+
12
+ // Makes nested objects read-only
13
+ fields.forEach(key => {
14
+ if (isObject(obj[key])) {
15
+ deepConstant(obj[key]);
16
+ }
17
+ });
18
+
19
+ return constant(obj);
20
+ }
@@ -0,0 +1,87 @@
1
+ import {equals, isDefined, isUndefined, Obj} from '../../common';
2
+ import {forEachObj} from '../';
3
+
4
+ /**
5
+ * Represents response of the diffObj function
6
+ */
7
+ export interface ObjDiff<T extends Obj> {
8
+
9
+ /**
10
+ * Contains equal fields for object 1 and object 2
11
+ */
12
+ equal: Partial<T>;
13
+
14
+ /**
15
+ * Contains fields that are only in object 1 or are not equal to the fields of object 2
16
+ */
17
+ notEqual1: Partial<T>;
18
+
19
+ /**
20
+ * Contains fields that are only in object 2 or are not equal to the fields of object 1
21
+ */
22
+ notEqual2: Partial<T>;
23
+
24
+ /**
25
+ * Contains fields that are only in object 1
26
+ */
27
+ only1: Partial<T>;
28
+
29
+ /**
30
+ * Contains fields that are only in object 2
31
+ */
32
+ only2: Partial<T>;
33
+
34
+ /**
35
+ * True if notEqual1 and notEqual2 are empty, otherwise false
36
+ */
37
+ isEqual: boolean;
38
+ }
39
+
40
+ /**
41
+ * Returns the difference between two objects
42
+ * @param obj1 - any object 1
43
+ * @param obj2 - any object 2
44
+ * @param sortFn - if added, arrays and sets will be sorted before comparison
45
+ */
46
+ export function diffObj<T1 extends Obj, T2 extends Obj>(obj1: T1, obj2: T2,
47
+ sortFn?: (a: any, b: any) => number): ObjDiff<T1 & T2> {
48
+ let isEqual = true;
49
+ const equal: Partial<T1 & T2> = {};
50
+ const notEqual1: Partial<T1 & T2> = {};
51
+ const notEqual2: Partial<T1 & T2> = {};
52
+ const only1: Partial<T1 & T2> = {};
53
+ const only2: Partial<T1 & T2> = {};
54
+
55
+ forEachObj(obj1, (value, key) => {
56
+ if (isDefined(value)) {
57
+ if (equals(value, obj2[key], sortFn)) {
58
+ equal[key] = value;
59
+ } else {
60
+ isEqual = false;
61
+ notEqual1[key] = value;
62
+
63
+ if (isDefined(obj2[key])) {
64
+ notEqual2[key] = obj2[key];
65
+ } else {
66
+ only1[key] = notEqual1[key];
67
+ }
68
+ }
69
+ }
70
+ });
71
+
72
+ forEachObj(obj2, (value, key) => {
73
+ if (isDefined(value) && isUndefined(equal[key]) && isUndefined(notEqual1[key])) {
74
+ isEqual = false;
75
+ notEqual2[key] = only2[key] = value;
76
+ }
77
+ });
78
+
79
+ return {
80
+ equal,
81
+ notEqual1,
82
+ notEqual2,
83
+ only1,
84
+ only2,
85
+ isEqual,
86
+ };
87
+ }
@@ -0,0 +1,18 @@
1
+ import {isDefined, Obj} from '../../common';
2
+ import {forEachObj} from '../';
3
+
4
+ /**
5
+ * Returns a new object with the fields of the passed object, excluding the specified set of fields
6
+ * @param obj - any object
7
+ * @param fields - set of fields to be excluded
8
+ */
9
+ export function exclude<T extends Obj, K extends keyof T>(obj: T, ...fields: K[]): Omit<T, K> {
10
+ const result = <Omit<T, K>>{};
11
+ forEachObj(obj, (value, key) => {
12
+ if (isDefined(value) && !fields.includes(<K>key)) {
13
+ // @ts-ignore
14
+ result[key] = value;
15
+ }
16
+ });
17
+ return result;
18
+ }
@@ -0,0 +1,54 @@
1
+ import {copy, isDefined, isUsualObject, Obj, ValueIntersection} from '../../common';
2
+ import {forEachObj} from '../';
3
+
4
+ /**
5
+ * Copies all enumerable own properties from one or more source objects to a target object.
6
+ * It returns the modified target object
7
+ * @param target - target object
8
+ * @param sources - source objects
9
+ */
10
+ export function extend<T extends Obj, U extends Obj[]>(target: T,
11
+ ...sources: U): T & ValueIntersection<typeof sources> {
12
+ return _extend(target, sources, false, new Map<any, true>());
13
+ }
14
+
15
+ /**
16
+ * Copies all enumerable own properties from one or more source objects to a target object
17
+ * and copies enumerable properties from nested source objects to nested target objects
18
+ * It returns the modified target object
19
+ * @param target - target object
20
+ * @param sources - source objects
21
+ */
22
+ export function extendAll<T extends Obj, U extends Obj[]>(target: T,
23
+ ...sources: U): T & ValueIntersection<typeof sources> {
24
+ return _extend(target, sources, true, new Map<any, true>());
25
+ }
26
+
27
+ function _extend<T extends Obj, U extends Obj[]>(target: T, sources: U, deep: boolean,
28
+ visited: Map<any, true>): T & ValueIntersection<typeof sources> {
29
+ sources.forEach(obj => {
30
+ if (obj !== target && !visited.has(obj) && isUsualObject(obj)) {
31
+ visited.set(obj, true);
32
+
33
+ forEachObj(obj, (value, key) => {
34
+ const descriptor = Object.getOwnPropertyDescriptor(obj, key);
35
+
36
+ if (descriptor?.get || descriptor?.set) {
37
+ Object.defineProperty(target, key, descriptor);
38
+ } else if (isDefined(value)) {
39
+ if (deep) {
40
+ if (isUsualObject(target[key]) && isUsualObject(obj[key])) {
41
+ (<any>target)[key] = _extend(target[key], [obj[key]], true, visited);
42
+ } else {
43
+ (<any>target)[key] = copy(obj[key]);
44
+ }
45
+ } else {
46
+ (<any>target)[key] = obj[key];
47
+ }
48
+ }
49
+ });
50
+ }
51
+ });
52
+
53
+ return <T & ValueIntersection<typeof sources>>target;
54
+ }
@@ -0,0 +1,17 @@
1
+ import {Obj, INTERRUPT, ValueUnion} from '../../common';
2
+ import {hasOwn} from '../';
3
+
4
+ /**
5
+ * Iterates through all the fields of an object and calls a handler for each field
6
+ * If the handler returns INTERRUPT, the loop will be interrupted
7
+ * @param obj - any object
8
+ * @param handler - function called for each field
9
+ */
10
+ export function forEachObj<T extends Obj, K extends keyof T>(obj: T,
11
+ handler: (value: ValueUnion<T>, key: K, obj: T) => any): void {
12
+ for (const key in obj) {
13
+ if (hasOwn(obj, key) && handler(obj[key], <Extract<K, string>>key, obj) === INTERRUPT) {
14
+ return;
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,12 @@
1
+ import {Obj, NumStrSym} from '../../common';
2
+
3
+ /**
4
+ * Returns true if the object has the indicated property as its own property.
5
+ * If the property is inherited, or does not exist, the method returns false
6
+ * @param obj - any object
7
+ * @param property
8
+ */
9
+ export function hasOwn(obj: Obj, property: NumStrSym): boolean {
10
+ // todo: change on 'Object.hasOwn' with ES2022
11
+ return Object.prototype.hasOwnProperty.call(obj, property);
12
+ }
@@ -0,0 +1,17 @@
1
+ import {isDefined, Obj} from '../../common';
2
+ import {hasOwn} from '../';
3
+
4
+ /**
5
+ * Returns a new object with the specified set of fields
6
+ * @param obj - any object
7
+ * @param fields - set of fields to be included
8
+ */
9
+ export function include<T extends Obj, K extends keyof T>(obj: T, ...fields: K[]): Pick<T, K> {
10
+ const result = <Pick<T, K>>{};
11
+ fields.forEach(key => {
12
+ if (hasOwn(obj, key) && isDefined(obj[key])) {
13
+ result[key] = obj[key];
14
+ }
15
+ });
16
+ return result;
17
+ }
@@ -0,0 +1,12 @@
1
+ export {hasOwn} from './has-own/has-own';
2
+ export {forEachObj} from './for-each-obj/for-each-obj';
3
+ export {keys} from './keys/keys';
4
+ export {values} from './values/values';
5
+ export {include} from './include/include';
6
+ export {exclude} from './exclude/exclude';
7
+ export {constant} from './constant/constant';
8
+ export {deepConstant} from './deep-constant/deep-constant';
9
+ export {mapObj} from './map-obj/map-obj';
10
+ export {mapObjToArr} from './map-obj-to-arr/map-obj-to-arr';
11
+ export {diffObj, ObjDiff} from './diff-obj/diff-obj';
12
+ export {extend, extendAll} from './extend/extend';
@@ -0,0 +1,9 @@
1
+ import {Obj} from '../../common';
2
+
3
+ /**
4
+ * Returns an array of the object's own enumerable property names
5
+ * @param obj - any object
6
+ */
7
+ export function keys<T extends Obj>(obj: T): (keyof T)[] {
8
+ return Object.keys(obj);
9
+ }
@@ -0,0 +1,14 @@
1
+ import {Obj, ValueUnion} from '../../common';
2
+ import {forEachObj} from '../';
3
+
4
+ /**
5
+ * Returns a new object, which has the mapped values of object fields
6
+ * @param obj - any object
7
+ * @param handler - function called for each field
8
+ */
9
+ export function mapObj<T extends Obj, K extends keyof T, R>(obj: T,
10
+ handler: (value: ValueUnion<T>, key: K, obj: T) => R): Record<K, R> {
11
+ const result = <Record<K, R>>{};
12
+ forEachObj(obj, (value, key) => result[<K>key] = handler(value, <K>key, obj));
13
+ return result;
14
+ }
@@ -0,0 +1,14 @@
1
+ import {Obj, ValueUnion} from '../../common';
2
+ import {forEachObj} from '../';
3
+
4
+ /**
5
+ * Returns an array, which has the mapped values of object fields
6
+ * @param obj - any object
7
+ * @param handler - function called for each field
8
+ */
9
+ export function mapObjToArr<T extends Obj, K extends keyof T, R>(obj: T,
10
+ handler: (value: ValueUnion<T>, key: K, obj: T) => R): R[] {
11
+ const result: R[] = [];
12
+ forEachObj(obj, (value, key) => result.push(handler(value, <K>key, obj)));
13
+ return result;
14
+ }
@@ -0,0 +1,12 @@
1
+ import {Obj} from '../../common';
2
+ import {forEachObj} from '../';
3
+
4
+ /**
5
+ * Returns an array of values for each object's own enumerable property
6
+ * @param obj - any object
7
+ */
8
+ export function values<T>(obj: Obj<T>): T[] {
9
+ const result: T[] = [];
10
+ forEachObj(obj, value => result.push(value));
11
+ return result;
12
+ }
@@ -0,0 +1,3 @@
1
+ export {withCapital} from './with-capital/with-capital';
2
+ export {toCamelCase} from './to-camel-case/to-camel-case';
3
+ export {toHash} from './to-hash/to-hash';
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Converts a given string into camelCase format.
3
+ * CamelCase is a convention where a multi-word identifier is formed by joining words together,
4
+ * each starting with a capital letter except for the initial word.
5
+ * This function takes a string as input, which may be in various formats such as snake_case,
6
+ * kebab-case, or space-separated words, and transforms it into camelCase.
7
+ * @param str - the input string that needs to be converted to camelCase
8
+ * @param separators - an array of any separators, default '-', '_', ' '
9
+ */
10
+ export function toCamelCase(str: string, separators: string[] = ['-', '_', ' ']): string {
11
+ return separators.reduce((acc: string, separator: string) => {
12
+ const reg = new RegExp(separator + '([\\da-z])', 'gi');
13
+ return acc.replace(reg, (all: string, letter: string) => {
14
+ return letter.toUpperCase();
15
+ });
16
+ }, str);
17
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Generates a hash value for a given input string for insecure purposes
3
+ * Hash functions are commonly used to convert input data into a fixed-length string of characters,
4
+ * providing a unique representation of the input
5
+ * @param str - The input string to be hashed
6
+ */
7
+ export function toHash(str: string): string {
8
+ if (str) {
9
+ let hash = 0;
10
+
11
+ for (let i = 0; i < str.length; i++) {
12
+ const char = str.charCodeAt(i);
13
+ hash = ((hash << 5) - hash) + char;
14
+ hash = hash & hash;
15
+ }
16
+
17
+ return hash < 0 ? 'hn' + Math.abs(hash) : 'hp' + hash;
18
+ } else {
19
+ return '';
20
+ }
21
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Takes a string as input and returns a new string with the initial letter in uppercase,
3
+ * while preserving the rest of the string
4
+ * @param str - The input string whose first letter needs to be capitalized
5
+ */
6
+ export function withCapital(str: string): string {
7
+ return str.charAt(0).toUpperCase() + str.substring(1);
8
+ }
package/arr/at/at.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"at.js","sourceRoot":"","sources":["../../../../package/src/arr/at/at.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,EAAE,CAAI,GAAQ,EAAE,KAAa;IAC3C,yCAAyC;IACzC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cnd.js","sourceRoot":"","sources":["../../../../package/src/arr/cnd/cnd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAC,MAAM,QAAQ,CAAC;AAChG,OAAO,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AAGjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,MAAM,UAAU,GAAG,CAAC,UAA2B;IAC7C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE;QAC1B,OAAO,UAAU,CAAC;KACnB;SAAM,IAAI,IAAI,IAAI,UAAU,EAAE;QAC7B,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;KAC5C;SAAM,IAAI,IAAI,IAAI,UAAU,EAAE;QAC7B,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;KACrG;SAAM,IAAI,KAAK,IAAI,UAAU,EAAE;QAC9B,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;KACxG;SAAM,IAAI,OAAO,IAAI,UAAU,EAAE;QAChC,OAAO,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;KAC9C;SAAM,IAAI,SAAS,IAAI,UAAU,EAAE;QAClC,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;KAC9G;SAAM,IAAI,UAAU,IAAI,UAAU,EAAE;QACnC,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;KACjH;SAAM;QACL,OAAO,GAAG,CAAC,EAAE;YACX,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACjB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;oBAC5B,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE;wBAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;wBACvB,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;wBAElC,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;4BACvB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;gCAC1B,OAAO,KAAK,CAAC;6BACd;yBACF;6BAAM,IAAI,IAAI,IAAI,SAAS,EAAE;4BAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE;gCAC9B,OAAO,KAAK,CAAC;6BACd;yBACF;6BAAM,IAAI,IAAI,IAAI,SAAS,EAAE;4BAC5B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE;gCACjD,OAAO,KAAK,CAAC;6BACd;yBACF;6BAAM,IAAI,KAAK,IAAI,SAAS,EAAE;4BAC7B,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE;gCACjD,OAAO,KAAK,CAAC;6BACd;yBACF;6BAAM,IAAI,OAAO,IAAI,SAAS,EAAE;4BAC/B,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;gCAChC,OAAO,KAAK,CAAC;6BACd;yBACF;6BAAM,IAAI,SAAS,IAAI,SAAS,EAAE;4BACjC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE;gCACrD,OAAO,KAAK,CAAC;6BACd;yBACF;6BAAM,IAAI,UAAU,IAAI,SAAS,EAAE;4BAClC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE;gCACrD,OAAO,KAAK,CAAC;6BACd;yBACF;qBACF;iBACF;gBAED,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,OAAO,KAAK,CAAC;aACd;QACH,CAAC,CAAC;KACH;AACH,CAAC;AAED,SAAS,GAAG,CAAC,SAAc,EAAE,KAAU;IACrC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnG,CAAC;AAED,SAAS,MAAM;IACb,MAAM,IAAI,OAAO,CAAC,wDAAwD,EAAE,EAAC,IAAI,EAAE,oBAAoB,EAAC,CAAC,CAAC;AAC5G,CAAC"}
@@ -1,10 +0,0 @@
1
- import { NumStr } from '../../';
2
- import { ArrDiff } from '../';
3
- /**
4
- * Returns the difference between two arrays
5
- * Strict comparison of array items is applied
6
- * The order doesn't matter
7
- * @param arr1 - array 1
8
- * @param arr2 - array 2
9
- */
10
- export declare function diffArr<T extends NumStr>(arr1: T[], arr2: T[]): ArrDiff<T>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"diff-arr.js","sourceRoot":"","sources":["../../../../package/src/arr/diff-arr/diff-arr.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAmB,IAAS,EAAE,IAAS;IAC5D,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEvD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;QAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACpB,OAAO,GAAG,KAAK,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnB;aAAM;YACL,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnB;KACF;IAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE;QAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YACpB,OAAO,GAAG,KAAK,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnB;KACF;IAED,OAAO;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fill.js","sourceRoot":"","sources":["../../../../package/src/arr/fill/fill.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,IAAI,CAAI,QAAgB,EAAE,OAAkD,EAAE,MAAM,GAAG,CAAC;IACtG,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AACzF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"for-each-arr.js","sourceRoot":"","sources":["../../../../package/src/arr/for-each-arr/for-each-arr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,SAAS,EAAa,MAAM,QAAQ,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAyC,GAAM,EACvE,OAAiD,EAAE,OAAiB;IACpE,IAAI,OAAO,EAAE;QACX,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,SAAS,EAAE;gBACzC,OAAO;aACR;SACF;KACF;SAAM;QACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,SAAS,EAAE;gBACzC,OAAO;aACR;SACF;KACF;AACH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-by.js","sourceRoot":"","sources":["../../../../package/src/arr/index-by/index-by.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAa,MAAM,QAAQ,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAgB,GAAQ,EAAE,SAAyC;IACxF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACjB,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,GAAG,EAAE;YACP,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;SACpB;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}