@pezkuwi/util 14.0.10 → 14.0.12

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 (570) hide show
  1. package/array/chunk.d.ts +15 -0
  2. package/array/chunk.js +27 -0
  3. package/array/filter.d.ts +16 -0
  4. package/array/filter.js +19 -0
  5. package/array/flatten.d.ts +15 -0
  6. package/array/flatten.js +39 -0
  7. package/array/index.d.ts +10 -0
  8. package/array/index.js +10 -0
  9. package/array/range.d.ts +16 -0
  10. package/array/range.js +25 -0
  11. package/array/shuffle.d.ts +5 -0
  12. package/array/shuffle.js +19 -0
  13. package/array/unzip.d.ts +5 -0
  14. package/array/unzip.js +13 -0
  15. package/array/zip.d.ts +5 -0
  16. package/array/zip.js +12 -0
  17. package/assert.d.ts +29 -0
  18. package/assert.js +39 -0
  19. package/bi/consts.d.ts +90 -0
  20. package/bi/consts.js +91 -0
  21. package/bi/helpers.d.ts +2 -0
  22. package/bi/helpers.js +16 -0
  23. package/bi/index.d.ts +9 -0
  24. package/bi/index.js +9 -0
  25. package/bi/min.d.ts +10 -0
  26. package/bi/min.js +11 -0
  27. package/bi/sqrt.d.ts +7 -0
  28. package/bi/sqrt.js +29 -0
  29. package/bi/toBigInt.d.ts +7 -0
  30. package/bi/toBigInt.js +25 -0
  31. package/bi/toHex.d.ts +7 -0
  32. package/bi/toHex.js +9 -0
  33. package/bi/toU8a.d.ts +7 -0
  34. package/bi/toU8a.js +49 -0
  35. package/bn/bn.d.ts +2 -0
  36. package/bn/bn.js +2 -0
  37. package/bn/consts.d.ts +91 -0
  38. package/bn/consts.js +91 -0
  39. package/bn/fromHex.d.ts +1 -0
  40. package/bn/fromHex.js +1 -0
  41. package/bn/index.d.ts +11 -0
  42. package/bn/index.js +11 -0
  43. package/bn/min.d.ts +29 -0
  44. package/bn/min.js +29 -0
  45. package/bn/sqrt.d.ts +16 -0
  46. package/bn/sqrt.js +38 -0
  47. package/bn/toBn.d.ts +19 -0
  48. package/bn/toBn.js +37 -0
  49. package/bn/toHex.d.ts +18 -0
  50. package/bn/toHex.js +20 -0
  51. package/bn/toU8a.d.ts +17 -0
  52. package/bn/toU8a.js +33 -0
  53. package/buffer/index.d.ts +4 -0
  54. package/buffer/index.js +4 -0
  55. package/buffer/toU8a.d.ts +15 -0
  56. package/buffer/toU8a.js +17 -0
  57. package/build/bundle-pezkuwi-util.js +148 -127
  58. package/build/cjs/packageInfo.js +1 -1
  59. package/build/cjs/u8a/wrap.d.ts +3 -3
  60. package/build/package.json +8 -8
  61. package/build/packageInfo.js +1 -1
  62. package/build/u8a/wrap.d.ts +3 -3
  63. package/build-deno/packageInfo.ts +1 -1
  64. package/build-tsc/u8a/wrap.d.ts +3 -3
  65. package/build-tsc-cjs/packageInfo.js +1 -1
  66. package/build-tsc-esm/packageInfo.js +1 -1
  67. package/bundle-pezkuwi-util.js +4830 -0
  68. package/bundle.d.ts +28 -0
  69. package/bundle.js +28 -0
  70. package/cjs/array/chunk.d.ts +15 -0
  71. package/cjs/array/chunk.js +30 -0
  72. package/cjs/array/filter.d.ts +16 -0
  73. package/cjs/array/filter.js +22 -0
  74. package/cjs/array/flatten.d.ts +15 -0
  75. package/cjs/array/flatten.js +42 -0
  76. package/cjs/array/index.d.ts +10 -0
  77. package/cjs/array/index.js +20 -0
  78. package/cjs/array/range.d.ts +16 -0
  79. package/cjs/array/range.js +28 -0
  80. package/cjs/array/shuffle.d.ts +5 -0
  81. package/cjs/array/shuffle.js +22 -0
  82. package/cjs/array/unzip.d.ts +5 -0
  83. package/cjs/array/unzip.js +16 -0
  84. package/cjs/array/zip.d.ts +5 -0
  85. package/cjs/array/zip.js +15 -0
  86. package/cjs/assert.d.ts +29 -0
  87. package/cjs/assert.js +44 -0
  88. package/cjs/bi/consts.d.ts +90 -0
  89. package/cjs/bi/consts.js +94 -0
  90. package/cjs/bi/helpers.d.ts +2 -0
  91. package/cjs/bi/helpers.js +19 -0
  92. package/cjs/bi/index.d.ts +9 -0
  93. package/cjs/bi/index.js +19 -0
  94. package/cjs/bi/min.d.ts +10 -0
  95. package/cjs/bi/min.js +14 -0
  96. package/cjs/bi/sqrt.d.ts +7 -0
  97. package/cjs/bi/sqrt.js +32 -0
  98. package/cjs/bi/toBigInt.d.ts +7 -0
  99. package/cjs/bi/toBigInt.js +28 -0
  100. package/cjs/bi/toHex.d.ts +7 -0
  101. package/cjs/bi/toHex.js +12 -0
  102. package/cjs/bi/toU8a.d.ts +7 -0
  103. package/cjs/bi/toU8a.js +52 -0
  104. package/cjs/bn/bn.d.ts +2 -0
  105. package/cjs/bn/bn.js +6 -0
  106. package/cjs/bn/consts.d.ts +91 -0
  107. package/cjs/bn/consts.js +94 -0
  108. package/cjs/bn/fromHex.d.ts +1 -0
  109. package/cjs/bn/fromHex.js +5 -0
  110. package/cjs/bn/index.d.ts +11 -0
  111. package/cjs/bn/index.js +23 -0
  112. package/cjs/bn/min.d.ts +29 -0
  113. package/cjs/bn/min.js +32 -0
  114. package/cjs/bn/sqrt.d.ts +16 -0
  115. package/cjs/bn/sqrt.js +41 -0
  116. package/cjs/bn/toBn.d.ts +19 -0
  117. package/cjs/bn/toBn.js +40 -0
  118. package/cjs/bn/toHex.d.ts +18 -0
  119. package/cjs/bn/toHex.js +23 -0
  120. package/cjs/bn/toU8a.d.ts +17 -0
  121. package/cjs/bn/toU8a.js +36 -0
  122. package/cjs/buffer/index.d.ts +4 -0
  123. package/cjs/buffer/index.js +8 -0
  124. package/cjs/buffer/toU8a.d.ts +15 -0
  125. package/cjs/buffer/toU8a.js +20 -0
  126. package/cjs/bundle.d.ts +28 -0
  127. package/cjs/bundle.js +33 -0
  128. package/cjs/compact/addLength.d.ts +13 -0
  129. package/cjs/compact/addLength.js +23 -0
  130. package/cjs/compact/defaults.d.ts +3 -0
  131. package/cjs/compact/defaults.js +5 -0
  132. package/cjs/compact/fromU8a.d.ts +22 -0
  133. package/cjs/compact/fromU8a.js +92 -0
  134. package/cjs/compact/index.d.ts +24 -0
  135. package/cjs/compact/index.js +32 -0
  136. package/cjs/compact/stripLength.d.ts +13 -0
  137. package/cjs/compact/stripLength.js +24 -0
  138. package/cjs/compact/toU8a.d.ts +14 -0
  139. package/cjs/compact/toU8a.js +48 -0
  140. package/cjs/compact/types.d.ts +1 -0
  141. package/cjs/compact/types.js +2 -0
  142. package/cjs/detectPackage.d.ts +17 -0
  143. package/cjs/detectPackage.js +100 -0
  144. package/cjs/extractTime.d.ts +14 -0
  145. package/cjs/extractTime.js +56 -0
  146. package/cjs/float/index.d.ts +1 -0
  147. package/cjs/float/index.js +5 -0
  148. package/cjs/float/toU8a.d.ts +11 -0
  149. package/cjs/float/toU8a.js +22 -0
  150. package/cjs/format/formatBalance.d.ts +54 -0
  151. package/cjs/format/formatBalance.js +88 -0
  152. package/cjs/format/formatDate.d.ts +5 -0
  153. package/cjs/format/formatDate.js +20 -0
  154. package/cjs/format/formatDecimal.d.ts +5 -0
  155. package/cjs/format/formatDecimal.js +19 -0
  156. package/cjs/format/formatElapsed.d.ts +7 -0
  157. package/cjs/format/formatElapsed.js +30 -0
  158. package/cjs/format/formatNumber.d.ts +14 -0
  159. package/cjs/format/formatNumber.js +14 -0
  160. package/cjs/format/getSeparator.d.ts +9 -0
  161. package/cjs/format/getSeparator.js +14 -0
  162. package/cjs/format/index.d.ts +6 -0
  163. package/cjs/format/index.js +16 -0
  164. package/cjs/format/si.d.ts +9 -0
  165. package/cjs/format/si.js +45 -0
  166. package/cjs/has.d.ts +14 -0
  167. package/cjs/has.js +19 -0
  168. package/cjs/hex/addPrefix.d.ts +16 -0
  169. package/cjs/hex/addPrefix.js +23 -0
  170. package/cjs/hex/fixLength.d.ts +18 -0
  171. package/cjs/hex/fixLength.js +30 -0
  172. package/cjs/hex/hasPrefix.d.ts +16 -0
  173. package/cjs/hex/hasPrefix.js +21 -0
  174. package/cjs/hex/index.d.ts +12 -0
  175. package/cjs/hex/index.js +24 -0
  176. package/cjs/hex/stripPrefix.d.ts +15 -0
  177. package/cjs/hex/stripPrefix.js +30 -0
  178. package/cjs/hex/toBigInt.d.ts +6 -0
  179. package/cjs/hex/toBigInt.js +15 -0
  180. package/cjs/hex/toBn.d.ts +21 -0
  181. package/cjs/hex/toBn.js +35 -0
  182. package/cjs/hex/toNumber.d.ts +15 -0
  183. package/cjs/hex/toNumber.js +23 -0
  184. package/cjs/hex/toString.d.ts +15 -0
  185. package/cjs/hex/toString.js +22 -0
  186. package/cjs/hex/toU8a.d.ts +16 -0
  187. package/cjs/hex/toU8a.js +57 -0
  188. package/cjs/hex/toU8aBuffer.d.ts +16 -0
  189. package/cjs/hex/toU8aBuffer.js +43 -0
  190. package/cjs/index.d.ts +2 -0
  191. package/cjs/index.js +5 -0
  192. package/cjs/is/array.d.ts +5 -0
  193. package/cjs/is/array.js +10 -0
  194. package/cjs/is/ascii.d.ts +8 -0
  195. package/cjs/is/ascii.js +43 -0
  196. package/cjs/is/bigInt.d.ts +15 -0
  197. package/cjs/is/bigInt.js +20 -0
  198. package/cjs/is/bn.d.ts +17 -0
  199. package/cjs/is/bn.js +22 -0
  200. package/cjs/is/boolean.d.ts +15 -0
  201. package/cjs/is/boolean.js +20 -0
  202. package/cjs/is/buffer.d.ts +16 -0
  203. package/cjs/is/buffer.js +24 -0
  204. package/cjs/is/childClass.d.ts +17 -0
  205. package/cjs/is/childClass.js +26 -0
  206. package/cjs/is/class.d.ts +6 -0
  207. package/cjs/is/class.js +9 -0
  208. package/cjs/is/codec.d.ts +12 -0
  209. package/cjs/is/codec.js +9 -0
  210. package/cjs/is/compact.d.ts +13 -0
  211. package/cjs/is/compact.js +9 -0
  212. package/cjs/is/error.d.ts +15 -0
  213. package/cjs/is/error.js +21 -0
  214. package/cjs/is/function.d.ts +17 -0
  215. package/cjs/is/function.js +20 -0
  216. package/cjs/is/helpers.d.ts +3 -0
  217. package/cjs/is/helpers.js +19 -0
  218. package/cjs/is/hex.d.ts +19 -0
  219. package/cjs/is/hex.js +27 -0
  220. package/cjs/is/index.d.ts +33 -0
  221. package/cjs/is/index.js +66 -0
  222. package/cjs/is/instanceOf.d.ts +15 -0
  223. package/cjs/is/instanceOf.js +21 -0
  224. package/cjs/is/ip.d.ts +18 -0
  225. package/cjs/is/ip.js +44 -0
  226. package/cjs/is/jsonObject.d.ts +27 -0
  227. package/cjs/is/jsonObject.js +40 -0
  228. package/cjs/is/null.d.ts +15 -0
  229. package/cjs/is/null.js +20 -0
  230. package/cjs/is/number.d.ts +15 -0
  231. package/cjs/is/number.js +20 -0
  232. package/cjs/is/object.d.ts +18 -0
  233. package/cjs/is/object.js +21 -0
  234. package/cjs/is/observable.d.ts +16 -0
  235. package/cjs/is/observable.js +19 -0
  236. package/cjs/is/promise.d.ts +1 -0
  237. package/cjs/is/promise.js +5 -0
  238. package/cjs/is/riscv.d.ts +7 -0
  239. package/cjs/is/riscv.js +20 -0
  240. package/cjs/is/string.d.ts +16 -0
  241. package/cjs/is/string.js +20 -0
  242. package/cjs/is/testChain.d.ts +1 -0
  243. package/cjs/is/testChain.js +10 -0
  244. package/cjs/is/toBigInt.d.ts +2 -0
  245. package/cjs/is/toBigInt.js +5 -0
  246. package/cjs/is/toBn.d.ts +2 -0
  247. package/cjs/is/toBn.js +5 -0
  248. package/cjs/is/u8a.d.ts +15 -0
  249. package/cjs/is/u8a.js +23 -0
  250. package/cjs/is/undefined.d.ts +15 -0
  251. package/cjs/is/undefined.js +20 -0
  252. package/cjs/is/utf8.d.ts +7 -0
  253. package/cjs/is/utf8.js +200 -0
  254. package/cjs/is/wasm.d.ts +7 -0
  255. package/cjs/is/wasm.js +15 -0
  256. package/cjs/lazy.d.ts +14 -0
  257. package/cjs/lazy.js +55 -0
  258. package/cjs/logger.d.ts +17 -0
  259. package/cjs/logger.js +122 -0
  260. package/cjs/memoize.d.ts +10 -0
  261. package/cjs/memoize.js +33 -0
  262. package/cjs/nextTick.d.ts +5 -0
  263. package/cjs/nextTick.js +27 -0
  264. package/cjs/noop.d.ts +8 -0
  265. package/cjs/noop.js +16 -0
  266. package/cjs/number/index.d.ts +5 -0
  267. package/cjs/number/index.js +10 -0
  268. package/cjs/number/toHex.d.ts +17 -0
  269. package/cjs/number/toHex.js +23 -0
  270. package/cjs/number/toU8a.d.ts +15 -0
  271. package/cjs/number/toU8a.js +22 -0
  272. package/cjs/object/clear.d.ts +5 -0
  273. package/cjs/object/clear.js +14 -0
  274. package/cjs/object/copy.d.ts +5 -0
  275. package/cjs/object/copy.js +11 -0
  276. package/cjs/object/entries.d.ts +9 -0
  277. package/cjs/object/entries.js +10 -0
  278. package/cjs/object/index.d.ts +7 -0
  279. package/cjs/object/index.js +18 -0
  280. package/cjs/object/keys.d.ts +5 -0
  281. package/cjs/object/keys.js +10 -0
  282. package/cjs/object/property.d.ts +10 -0
  283. package/cjs/object/property.js +38 -0
  284. package/cjs/object/spread.d.ts +6 -0
  285. package/cjs/object/spread.js +34 -0
  286. package/cjs/object/values.d.ts +5 -0
  287. package/cjs/object/values.js +10 -0
  288. package/cjs/package.json +3 -0
  289. package/cjs/packageDetect.d.ts +1 -0
  290. package/cjs/packageDetect.js +7 -0
  291. package/cjs/packageInfo.d.ts +6 -0
  292. package/cjs/packageInfo.js +4 -0
  293. package/cjs/promisify.d.ts +16 -0
  294. package/cjs/promisify.js +30 -0
  295. package/cjs/string/camelCase.d.ts +13 -0
  296. package/cjs/string/camelCase.js +62 -0
  297. package/cjs/string/index.d.ts +8 -0
  298. package/cjs/string/index.js +18 -0
  299. package/cjs/string/lowerFirst.d.ts +31 -0
  300. package/cjs/string/lowerFirst.js +40 -0
  301. package/cjs/string/shorten.d.ts +16 -0
  302. package/cjs/string/shorten.js +22 -0
  303. package/cjs/string/toHex.d.ts +16 -0
  304. package/cjs/string/toHex.js +22 -0
  305. package/cjs/string/toU8a.d.ts +16 -0
  306. package/cjs/string/toU8a.js +24 -0
  307. package/cjs/stringify.d.ts +6 -0
  308. package/cjs/stringify.js +18 -0
  309. package/cjs/types.d.ts +62 -0
  310. package/cjs/types.js +2 -0
  311. package/cjs/u8a/cmp.d.ts +17 -0
  312. package/cjs/u8a/cmp.js +49 -0
  313. package/cjs/u8a/concat.d.ts +24 -0
  314. package/cjs/u8a/concat.js +51 -0
  315. package/cjs/u8a/concatBuffer.d.ts +19 -0
  316. package/cjs/u8a/concatBuffer.js +29 -0
  317. package/cjs/u8a/empty.d.ts +7 -0
  318. package/cjs/u8a/empty.js +20 -0
  319. package/cjs/u8a/eq.d.ts +15 -0
  320. package/cjs/u8a/eq.js +40 -0
  321. package/cjs/u8a/fixLength.d.ts +17 -0
  322. package/cjs/u8a/fixLength.js +31 -0
  323. package/cjs/u8a/index.d.ts +18 -0
  324. package/cjs/u8a/index.js +42 -0
  325. package/cjs/u8a/sorted.d.ts +15 -0
  326. package/cjs/u8a/sorted.js +21 -0
  327. package/cjs/u8a/toBigInt.d.ts +6 -0
  328. package/cjs/u8a/toBigInt.js +73 -0
  329. package/cjs/u8a/toBn.d.ts +21 -0
  330. package/cjs/u8a/toBn.js +81 -0
  331. package/cjs/u8a/toBuffer.d.ts +16 -0
  332. package/cjs/u8a/toBuffer.js +24 -0
  333. package/cjs/u8a/toFloat.d.ts +11 -0
  334. package/cjs/u8a/toFloat.js +20 -0
  335. package/cjs/u8a/toHex.d.ts +16 -0
  336. package/cjs/u8a/toHex.js +56 -0
  337. package/cjs/u8a/toHexBuffer.d.ts +16 -0
  338. package/cjs/u8a/toHexBuffer.js +25 -0
  339. package/cjs/u8a/toNumber.d.ts +6 -0
  340. package/cjs/u8a/toNumber.js +61 -0
  341. package/cjs/u8a/toString.d.ts +15 -0
  342. package/cjs/u8a/toString.js +24 -0
  343. package/cjs/u8a/toU8a.d.ts +19 -0
  344. package/cjs/u8a/toU8a.js +42 -0
  345. package/cjs/u8a/wrap.d.ts +22 -0
  346. package/cjs/u8a/wrap.js +49 -0
  347. package/compact/addLength.d.ts +13 -0
  348. package/compact/addLength.js +20 -0
  349. package/compact/defaults.d.ts +3 -0
  350. package/compact/defaults.js +2 -0
  351. package/compact/fromU8a.d.ts +22 -0
  352. package/compact/fromU8a.js +88 -0
  353. package/compact/index.d.ts +24 -0
  354. package/compact/index.js +24 -0
  355. package/compact/stripLength.d.ts +13 -0
  356. package/compact/stripLength.js +21 -0
  357. package/compact/toU8a.d.ts +14 -0
  358. package/compact/toU8a.js +45 -0
  359. package/compact/types.d.ts +1 -0
  360. package/compact/types.js +1 -0
  361. package/detectPackage.d.ts +17 -0
  362. package/detectPackage.js +96 -0
  363. package/extractTime.d.ts +14 -0
  364. package/extractTime.js +53 -0
  365. package/float/index.d.ts +1 -0
  366. package/float/index.js +1 -0
  367. package/float/toU8a.d.ts +11 -0
  368. package/float/toU8a.js +19 -0
  369. package/format/formatBalance.d.ts +54 -0
  370. package/format/formatBalance.js +85 -0
  371. package/format/formatDate.d.ts +5 -0
  372. package/format/formatDate.js +17 -0
  373. package/format/formatDecimal.d.ts +5 -0
  374. package/format/formatDecimal.js +16 -0
  375. package/format/formatElapsed.d.ts +7 -0
  376. package/format/formatElapsed.js +27 -0
  377. package/format/formatNumber.d.ts +14 -0
  378. package/format/formatNumber.js +11 -0
  379. package/format/getSeparator.d.ts +9 -0
  380. package/format/getSeparator.js +11 -0
  381. package/format/index.d.ts +6 -0
  382. package/format/index.js +6 -0
  383. package/format/si.d.ts +9 -0
  384. package/format/si.js +40 -0
  385. package/has.d.ts +14 -0
  386. package/has.js +16 -0
  387. package/hex/addPrefix.d.ts +16 -0
  388. package/hex/addPrefix.js +20 -0
  389. package/hex/fixLength.d.ts +18 -0
  390. package/hex/fixLength.js +27 -0
  391. package/hex/hasPrefix.d.ts +16 -0
  392. package/hex/hasPrefix.js +18 -0
  393. package/hex/index.d.ts +12 -0
  394. package/hex/index.js +12 -0
  395. package/hex/stripPrefix.d.ts +15 -0
  396. package/hex/stripPrefix.js +27 -0
  397. package/hex/toBigInt.d.ts +6 -0
  398. package/hex/toBigInt.js +12 -0
  399. package/hex/toBn.d.ts +21 -0
  400. package/hex/toBn.js +32 -0
  401. package/hex/toNumber.d.ts +15 -0
  402. package/hex/toNumber.js +20 -0
  403. package/hex/toString.d.ts +15 -0
  404. package/hex/toString.js +19 -0
  405. package/hex/toU8a.d.ts +16 -0
  406. package/hex/toU8a.js +54 -0
  407. package/hex/toU8aBuffer.d.ts +16 -0
  408. package/hex/toU8aBuffer.js +40 -0
  409. package/index.d.ts +2 -0
  410. package/index.js +2 -0
  411. package/is/array.d.ts +5 -0
  412. package/is/array.js +7 -0
  413. package/is/ascii.d.ts +8 -0
  414. package/is/ascii.js +40 -0
  415. package/is/bigInt.d.ts +15 -0
  416. package/is/bigInt.js +17 -0
  417. package/is/bn.d.ts +17 -0
  418. package/is/bn.js +19 -0
  419. package/is/boolean.d.ts +15 -0
  420. package/is/boolean.js +17 -0
  421. package/is/buffer.d.ts +16 -0
  422. package/is/buffer.js +21 -0
  423. package/is/childClass.d.ts +17 -0
  424. package/is/childClass.js +23 -0
  425. package/is/class.d.ts +6 -0
  426. package/is/class.js +6 -0
  427. package/is/codec.d.ts +12 -0
  428. package/is/codec.js +6 -0
  429. package/is/compact.d.ts +13 -0
  430. package/is/compact.js +6 -0
  431. package/is/error.d.ts +15 -0
  432. package/is/error.js +18 -0
  433. package/is/function.d.ts +17 -0
  434. package/is/function.js +17 -0
  435. package/is/helpers.d.ts +3 -0
  436. package/is/helpers.js +14 -0
  437. package/is/hex.d.ts +19 -0
  438. package/is/hex.js +23 -0
  439. package/is/index.d.ts +33 -0
  440. package/is/index.js +33 -0
  441. package/is/instanceOf.d.ts +15 -0
  442. package/is/instanceOf.js +18 -0
  443. package/is/ip.d.ts +18 -0
  444. package/is/ip.js +41 -0
  445. package/is/jsonObject.d.ts +27 -0
  446. package/is/jsonObject.js +37 -0
  447. package/is/null.d.ts +15 -0
  448. package/is/null.js +17 -0
  449. package/is/number.d.ts +15 -0
  450. package/is/number.js +17 -0
  451. package/is/object.d.ts +18 -0
  452. package/is/object.js +18 -0
  453. package/is/observable.d.ts +16 -0
  454. package/is/observable.js +16 -0
  455. package/is/promise.d.ts +1 -0
  456. package/is/promise.js +2 -0
  457. package/is/riscv.d.ts +7 -0
  458. package/is/riscv.js +17 -0
  459. package/is/string.d.ts +16 -0
  460. package/is/string.js +17 -0
  461. package/is/testChain.d.ts +1 -0
  462. package/is/testChain.js +7 -0
  463. package/is/toBigInt.d.ts +2 -0
  464. package/is/toBigInt.js +2 -0
  465. package/is/toBn.d.ts +2 -0
  466. package/is/toBn.js +2 -0
  467. package/is/u8a.d.ts +15 -0
  468. package/is/u8a.js +20 -0
  469. package/is/undefined.d.ts +15 -0
  470. package/is/undefined.js +17 -0
  471. package/is/utf8.d.ts +7 -0
  472. package/is/utf8.js +197 -0
  473. package/is/wasm.d.ts +7 -0
  474. package/is/wasm.js +12 -0
  475. package/lazy.d.ts +14 -0
  476. package/lazy.js +51 -0
  477. package/logger.d.ts +17 -0
  478. package/logger.js +118 -0
  479. package/memoize.d.ts +10 -0
  480. package/memoize.js +30 -0
  481. package/nextTick.d.ts +5 -0
  482. package/nextTick.js +24 -0
  483. package/noop.d.ts +8 -0
  484. package/noop.js +12 -0
  485. package/number/index.d.ts +5 -0
  486. package/number/index.js +5 -0
  487. package/number/toHex.d.ts +17 -0
  488. package/number/toHex.js +20 -0
  489. package/number/toU8a.d.ts +15 -0
  490. package/number/toU8a.js +19 -0
  491. package/object/clear.d.ts +5 -0
  492. package/object/clear.js +11 -0
  493. package/object/copy.d.ts +5 -0
  494. package/object/copy.js +8 -0
  495. package/object/entries.d.ts +9 -0
  496. package/object/entries.js +7 -0
  497. package/object/index.d.ts +7 -0
  498. package/object/index.js +7 -0
  499. package/object/keys.d.ts +5 -0
  500. package/object/keys.js +7 -0
  501. package/object/property.d.ts +10 -0
  502. package/object/property.js +34 -0
  503. package/object/spread.d.ts +6 -0
  504. package/object/spread.js +31 -0
  505. package/object/values.d.ts +5 -0
  506. package/object/values.js +7 -0
  507. package/package.json +1958 -11
  508. package/packageDetect.d.ts +1 -0
  509. package/packageDetect.js +5 -0
  510. package/packageInfo.d.ts +6 -0
  511. package/packageInfo.js +1 -0
  512. package/promisify.d.ts +16 -0
  513. package/promisify.js +27 -0
  514. package/src/packageInfo.ts +1 -1
  515. package/src/u8a/toHex.spec.ts +1 -1
  516. package/src/u8a/toHexBuffer.spec.ts +1 -1
  517. package/string/camelCase.d.ts +13 -0
  518. package/string/camelCase.js +59 -0
  519. package/string/index.d.ts +8 -0
  520. package/string/index.js +8 -0
  521. package/string/lowerFirst.d.ts +31 -0
  522. package/string/lowerFirst.js +37 -0
  523. package/string/shorten.d.ts +16 -0
  524. package/string/shorten.js +19 -0
  525. package/string/toHex.d.ts +16 -0
  526. package/string/toHex.js +19 -0
  527. package/string/toU8a.d.ts +16 -0
  528. package/string/toU8a.js +21 -0
  529. package/stringify.d.ts +6 -0
  530. package/stringify.js +15 -0
  531. package/tsconfig.build.tsbuildinfo +1 -1
  532. package/tsconfig.spec.tsbuildinfo +1 -1
  533. package/types.d.ts +62 -0
  534. package/types.js +1 -0
  535. package/u8a/cmp.d.ts +17 -0
  536. package/u8a/cmp.js +46 -0
  537. package/u8a/concat.d.ts +24 -0
  538. package/u8a/concat.js +47 -0
  539. package/u8a/concatBuffer.d.ts +19 -0
  540. package/u8a/concatBuffer.js +26 -0
  541. package/u8a/empty.d.ts +7 -0
  542. package/u8a/empty.js +17 -0
  543. package/u8a/eq.d.ts +15 -0
  544. package/u8a/eq.js +37 -0
  545. package/u8a/fixLength.d.ts +17 -0
  546. package/u8a/fixLength.js +28 -0
  547. package/u8a/index.d.ts +18 -0
  548. package/u8a/index.js +18 -0
  549. package/u8a/sorted.d.ts +15 -0
  550. package/u8a/sorted.js +18 -0
  551. package/u8a/toBigInt.d.ts +6 -0
  552. package/u8a/toBigInt.js +70 -0
  553. package/u8a/toBn.d.ts +21 -0
  554. package/u8a/toBn.js +78 -0
  555. package/u8a/toBuffer.d.ts +16 -0
  556. package/u8a/toBuffer.js +21 -0
  557. package/u8a/toFloat.d.ts +11 -0
  558. package/u8a/toFloat.js +17 -0
  559. package/u8a/toHex.d.ts +16 -0
  560. package/u8a/toHex.js +53 -0
  561. package/u8a/toHexBuffer.d.ts +16 -0
  562. package/u8a/toHexBuffer.js +22 -0
  563. package/u8a/toNumber.d.ts +6 -0
  564. package/u8a/toNumber.js +58 -0
  565. package/u8a/toString.d.ts +15 -0
  566. package/u8a/toString.js +21 -0
  567. package/u8a/toU8a.d.ts +19 -0
  568. package/u8a/toU8a.js +39 -0
  569. package/u8a/wrap.d.ts +22 -0
  570. package/u8a/wrap.js +43 -0
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @name arrayChunk
3
+ * @summary Split T[] into T[][] based on the defind size
4
+ * @description
5
+ * Returns a set ao arrays based on the chunksize
6
+ * @example
7
+ * <BR>
8
+ *
9
+ * ```javascript
10
+ * import { arrayChunk } from '@pezkuwi/util';
11
+ *
12
+ * arrayChunk([1, 2, 3, 4, 5]); // [[1, 2], [3, 4], [5]]
13
+ * ```
14
+ */
15
+ export declare function arrayChunk<T>(array: T[], chunkSize: number): T[][];
package/array/chunk.js ADDED
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @name arrayChunk
3
+ * @summary Split T[] into T[][] based on the defind size
4
+ * @description
5
+ * Returns a set ao arrays based on the chunksize
6
+ * @example
7
+ * <BR>
8
+ *
9
+ * ```javascript
10
+ * import { arrayChunk } from '@pezkuwi/util';
11
+ *
12
+ * arrayChunk([1, 2, 3, 4, 5]); // [[1, 2], [3, 4], [5]]
13
+ * ```
14
+ */
15
+ export function arrayChunk(array, chunkSize) {
16
+ const outputSize = Math.ceil(array.length / chunkSize);
17
+ // shortcut for the single-split case
18
+ if (outputSize === 1) {
19
+ return [array];
20
+ }
21
+ const output = Array(outputSize);
22
+ for (let i = 0; i < outputSize; i++) {
23
+ const offset = i * chunkSize;
24
+ output[i] = array.slice(offset, offset + chunkSize);
25
+ }
26
+ return output;
27
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @name arrayFilter
3
+ * @summary Filters undefined and (optionally) null values from an array
4
+ * @description
5
+ * Returns a new array with all `undefined` values removed. Optionally, when `allowNulls = false`, it removes the `null` values as well
6
+ * @example
7
+ * <BR>
8
+ *
9
+ * ```javascript
10
+ * import { arrayFilter } from '@pezkuwi/util';
11
+ *
12
+ * arrayFilter([0, void 0, true, null, false, '']); // [0, true, null, false, '']
13
+ * arrayFilter([0, void 0, true, null, false, ''], false); // [0, true, false, '']
14
+ * ```
15
+ */
16
+ export declare function arrayFilter<T = unknown>(array: readonly (T | null | undefined)[], allowNulls?: boolean): T[];
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @name arrayFilter
3
+ * @summary Filters undefined and (optionally) null values from an array
4
+ * @description
5
+ * Returns a new array with all `undefined` values removed. Optionally, when `allowNulls = false`, it removes the `null` values as well
6
+ * @example
7
+ * <BR>
8
+ *
9
+ * ```javascript
10
+ * import { arrayFilter } from '@pezkuwi/util';
11
+ *
12
+ * arrayFilter([0, void 0, true, null, false, '']); // [0, true, null, false, '']
13
+ * arrayFilter([0, void 0, true, null, false, ''], false); // [0, true, false, '']
14
+ * ```
15
+ */
16
+ export function arrayFilter(array, allowNulls = true) {
17
+ return array.filter((v) => v !== undefined &&
18
+ (allowNulls || v !== null));
19
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @name arrayFlatten
3
+ * @summary Merge T[][] into T[]
4
+ * @description
5
+ * Returns a new array with all arrays merged into one
6
+ * @example
7
+ * <BR>
8
+ *
9
+ * ```javascript
10
+ * import { arrayFlatten } from '@pezkuwi/util';
11
+ *
12
+ * arrayFlatten([[1, 2], [3, 4], [5]]); // [1, 2, 3, 4, 5]
13
+ * ```
14
+ */
15
+ export declare function arrayFlatten<T>(arrays: readonly T[][]): T[];
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @name arrayFlatten
3
+ * @summary Merge T[][] into T[]
4
+ * @description
5
+ * Returns a new array with all arrays merged into one
6
+ * @example
7
+ * <BR>
8
+ *
9
+ * ```javascript
10
+ * import { arrayFlatten } from '@pezkuwi/util';
11
+ *
12
+ * arrayFlatten([[1, 2], [3, 4], [5]]); // [1, 2, 3, 4, 5]
13
+ * ```
14
+ */
15
+ export function arrayFlatten(arrays) {
16
+ const num = arrays.length;
17
+ // shortcuts for the empty & single-entry case
18
+ if (num === 0) {
19
+ return [];
20
+ }
21
+ else if (num === 1) {
22
+ return arrays[0];
23
+ }
24
+ // pre-allocate based on the combined size
25
+ let size = 0;
26
+ for (let i = 0; i < num; i++) {
27
+ size += arrays[i].length;
28
+ }
29
+ const output = new Array(size);
30
+ let i = -1;
31
+ for (let j = 0; j < num; j++) {
32
+ const a = arrays[j];
33
+ // instead of pushing, we just set the entries
34
+ for (let e = 0, count = a.length; e < count; e++) {
35
+ output[++i] = a[e];
36
+ }
37
+ }
38
+ return output;
39
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @summary Utility methods that operates on arrays
3
+ */
4
+ export { arrayChunk } from './chunk.js';
5
+ export { arrayFilter } from './filter.js';
6
+ export { arrayFlatten } from './flatten.js';
7
+ export { arrayRange } from './range.js';
8
+ export { arrayShuffle } from './shuffle.js';
9
+ export { arrayUnzip } from './unzip.js';
10
+ export { arrayZip } from './zip.js';
package/array/index.js ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @summary Utility methods that operates on arrays
3
+ */
4
+ export { arrayChunk } from './chunk.js';
5
+ export { arrayFilter } from './filter.js';
6
+ export { arrayFlatten } from './flatten.js';
7
+ export { arrayRange } from './range.js';
8
+ export { arrayShuffle } from './shuffle.js';
9
+ export { arrayUnzip } from './unzip.js';
10
+ export { arrayZip } from './zip.js';
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @name arrayRange
3
+ * @summary Returns a range of numbers ith the size and the specified offset
4
+ * @description
5
+ * Returns a new array of numbers with the specific size. Optionally, when `startAt`, is provided, it generates the range to start at a specific value.
6
+ * @example
7
+ * <BR>
8
+ *
9
+ * ```javascript
10
+ * import { arrayRange } from '@pezkuwi/util';
11
+ *
12
+ * arrayRange(5); // [0, 1, 2, 3, 4]
13
+ * arrayRange(3, 5); // [5, 6, 7]
14
+ * ```
15
+ */
16
+ export declare function arrayRange(size: number, startAt?: number): number[];
package/array/range.js ADDED
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @name arrayRange
3
+ * @summary Returns a range of numbers ith the size and the specified offset
4
+ * @description
5
+ * Returns a new array of numbers with the specific size. Optionally, when `startAt`, is provided, it generates the range to start at a specific value.
6
+ * @example
7
+ * <BR>
8
+ *
9
+ * ```javascript
10
+ * import { arrayRange } from '@pezkuwi/util';
11
+ *
12
+ * arrayRange(5); // [0, 1, 2, 3, 4]
13
+ * arrayRange(3, 5); // [5, 6, 7]
14
+ * ```
15
+ */
16
+ export function arrayRange(size, startAt = 0) {
17
+ if (size <= 0) {
18
+ throw new Error('Expected non-zero, positive number as a range size');
19
+ }
20
+ const result = new Array(size);
21
+ for (let i = 0; i < size; i++) {
22
+ result[i] = i + startAt;
23
+ }
24
+ return result;
25
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @name arrayShuffle
3
+ * @description Shuffles the input array (unlike sort, this is not done in-place)
4
+ */
5
+ export declare function arrayShuffle<T>(input: readonly T[]): T[];
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @name arrayShuffle
3
+ * @description Shuffles the input array (unlike sort, this is not done in-place)
4
+ */
5
+ export function arrayShuffle(input) {
6
+ const result = input.slice();
7
+ let curr = result.length;
8
+ // noop for the single entry
9
+ if (curr === 1) {
10
+ return result;
11
+ }
12
+ while (curr !== 0) {
13
+ // ~~ is more performant than Math.floor
14
+ const rand = ~~(Math.random() * curr);
15
+ curr--;
16
+ [result[curr], result[rand]] = [result[rand], result[curr]];
17
+ }
18
+ return result;
19
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @name arrayUnzip
3
+ * @description Splits a single [K, V][] into [K[], V[]]
4
+ */
5
+ export declare function arrayUnzip<K, V>(entries: readonly [K, V][]): [K[], V[]];
package/array/unzip.js ADDED
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @name arrayUnzip
3
+ * @description Splits a single [K, V][] into [K[], V[]]
4
+ */
5
+ export function arrayUnzip(entries) {
6
+ const count = entries.length;
7
+ const keys = new Array(count);
8
+ const values = new Array(count);
9
+ for (let i = 0; i < count; i++) {
10
+ [keys[i], values[i]] = entries[i];
11
+ }
12
+ return [keys, values];
13
+ }
package/array/zip.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @name arrayZip
3
+ * @description Combines 2 distinct key/value arrays into a single [K, V] array
4
+ */
5
+ export declare function arrayZip<K, V>(keys: readonly K[], values: readonly V[]): [K, V][];
package/array/zip.js ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @name arrayZip
3
+ * @description Combines 2 distinct key/value arrays into a single [K, V] array
4
+ */
5
+ export function arrayZip(keys, values) {
6
+ const count = keys.length;
7
+ const result = new Array(count);
8
+ for (let i = 0; i < count; i++) {
9
+ result[i] = [keys[i], values[i]];
10
+ }
11
+ return result;
12
+ }
package/assert.d.ts ADDED
@@ -0,0 +1,29 @@
1
+ type MessageFn = () => string;
2
+ /**
3
+ * @name assert
4
+ * @summary Checks for a valid test, if not Error is thrown.
5
+ * @description
6
+ * Checks that `test` is a truthy value. If value is falsy (`null`, `undefined`, `false`, ...), it throws an Error with the supplied `message`. When `test` passes, `true` is returned.
7
+ * @example
8
+ * <BR>
9
+ *
10
+ * ```javascript
11
+ * const { assert } from '@pezkuwi/util';
12
+ *
13
+ * assert(true, 'True should be true'); // passes
14
+ * assert(false, 'False should not be true'); // Error thrown
15
+ * assert(false, () => 'message'); // Error with 'message'
16
+ * ```
17
+ */
18
+ export declare function assert(condition: unknown, message: string | MessageFn): asserts condition;
19
+ /**
20
+ * @name assertReturn
21
+ * @description Returns when the value is not undefined/null, otherwise throws assertion error
22
+ */
23
+ export declare function assertReturn<T>(value: T | undefined | null, message: string | MessageFn): T;
24
+ /**
25
+ * @name assertUnreachable
26
+ * @description An assertion helper that ensures all codepaths are followed
27
+ */
28
+ export declare function assertUnreachable(x: never): never;
29
+ export {};
package/assert.js ADDED
@@ -0,0 +1,39 @@
1
+ import { isFunction } from './is/function.js';
2
+ /**
3
+ * @name assert
4
+ * @summary Checks for a valid test, if not Error is thrown.
5
+ * @description
6
+ * Checks that `test` is a truthy value. If value is falsy (`null`, `undefined`, `false`, ...), it throws an Error with the supplied `message`. When `test` passes, `true` is returned.
7
+ * @example
8
+ * <BR>
9
+ *
10
+ * ```javascript
11
+ * const { assert } from '@pezkuwi/util';
12
+ *
13
+ * assert(true, 'True should be true'); // passes
14
+ * assert(false, 'False should not be true'); // Error thrown
15
+ * assert(false, () => 'message'); // Error with 'message'
16
+ * ```
17
+ */
18
+ export function assert(condition, message) {
19
+ if (!condition) {
20
+ throw new Error(isFunction(message)
21
+ ? message()
22
+ : message);
23
+ }
24
+ }
25
+ /**
26
+ * @name assertReturn
27
+ * @description Returns when the value is not undefined/null, otherwise throws assertion error
28
+ */
29
+ export function assertReturn(value, message) {
30
+ assert(value !== undefined && value !== null, message);
31
+ return value;
32
+ }
33
+ /**
34
+ * @name assertUnreachable
35
+ * @description An assertion helper that ensures all codepaths are followed
36
+ */
37
+ export function assertUnreachable(x) {
38
+ throw new Error(`This codepath should be unreachable. Unhandled input: ${x}`);
39
+ }
package/bi/consts.d.ts ADDED
@@ -0,0 +1,90 @@
1
+ /**
2
+ * @name _0n
3
+ * @summary BigInt constant for 0.
4
+ */
5
+ export declare const _0n: bigint;
6
+ /**
7
+ * @name _1n
8
+ * @summary BigInt constant for 1.
9
+ */
10
+ export declare const _1n: bigint;
11
+ /**
12
+ * @name _2n
13
+ * @summary BigInt constant for 2.
14
+ */
15
+ export declare const _2n: bigint;
16
+ /**
17
+ * @name _3n
18
+ * @summary BigInt constant for 3.
19
+ */
20
+ export declare const _3n: bigint;
21
+ /**
22
+ * @name _4n
23
+ * @summary BigInt constant for 4.
24
+ */
25
+ export declare const _4n: bigint;
26
+ /**
27
+ * @name _5n
28
+ * @summary BigInt constant for 5.
29
+ */
30
+ export declare const _5n: bigint;
31
+ /**
32
+ * @name _6n
33
+ * @summary BigInt constant for 6.
34
+ */
35
+ export declare const _6n: bigint;
36
+ /**
37
+ * @name _7n
38
+ * @summary BigInt constant for 7.
39
+ */
40
+ export declare const _7n: bigint;
41
+ /**
42
+ * @name _8n
43
+ * @summary BigInt constant for 8.
44
+ */
45
+ export declare const _8n: bigint;
46
+ /**
47
+ * @name _9n
48
+ * @summary BigInt constant for 9.
49
+ */
50
+ export declare const _9n: bigint;
51
+ /**
52
+ * @name _10n
53
+ * @summary BigInt constant for 10.
54
+ */
55
+ export declare const _10n: bigint;
56
+ /**
57
+ * @name _100n
58
+ * @summary BigInt constant for 100.
59
+ */
60
+ export declare const _100n: bigint;
61
+ /**
62
+ * @name _1000n
63
+ * @summary BigInt constant for 1000.
64
+ */
65
+ export declare const _1000n: bigint;
66
+ /**
67
+ * @name _1Mn
68
+ * @summary BigInt constant for 1,000,000 (million).
69
+ */
70
+ export declare const _1Mn: bigint;
71
+ /**
72
+ * @name _1Bn
73
+ * @summary BigInt constant for 1,000,000,000 (billion).
74
+ */
75
+ export declare const _1Bn: bigint;
76
+ /**
77
+ * @name _1Qn
78
+ * @summary BigInt constant for 1,000,000,000,000,000,000 (quitillion).
79
+ */
80
+ export declare const _1Qn: bigint;
81
+ /**
82
+ * @name _2pow53n
83
+ * @summary BigInt constant for MAX_SAFE_INTEGER
84
+ */
85
+ export declare const _2pow53n: bigint;
86
+ /**
87
+ * @name _sqrt2pow53n
88
+ * @summary BigInt constant for Math.sqrt(MAX_SAFE_INTEGER)
89
+ */
90
+ export declare const _sqrt2pow53n: bigint;
package/bi/consts.js ADDED
@@ -0,0 +1,91 @@
1
+ import { BigInt } from '@pezkuwi/x-bigint';
2
+ /**
3
+ * @name _0n
4
+ * @summary BigInt constant for 0.
5
+ */
6
+ export const _0n = /*#__PURE__*/ BigInt(0);
7
+ /**
8
+ * @name _1n
9
+ * @summary BigInt constant for 1.
10
+ */
11
+ export const _1n = /*#__PURE__*/ BigInt(1);
12
+ /**
13
+ * @name _2n
14
+ * @summary BigInt constant for 2.
15
+ */
16
+ export const _2n = /*#__PURE__*/ BigInt(2);
17
+ /**
18
+ * @name _3n
19
+ * @summary BigInt constant for 3.
20
+ */
21
+ export const _3n = /*#__PURE__*/ BigInt(3);
22
+ /**
23
+ * @name _4n
24
+ * @summary BigInt constant for 4.
25
+ */
26
+ export const _4n = /*#__PURE__*/ BigInt(4);
27
+ /**
28
+ * @name _5n
29
+ * @summary BigInt constant for 5.
30
+ */
31
+ export const _5n = /*#__PURE__*/ BigInt(5);
32
+ /**
33
+ * @name _6n
34
+ * @summary BigInt constant for 6.
35
+ */
36
+ export const _6n = /*#__PURE__*/ BigInt(6);
37
+ /**
38
+ * @name _7n
39
+ * @summary BigInt constant for 7.
40
+ */
41
+ export const _7n = /*#__PURE__*/ BigInt(7);
42
+ /**
43
+ * @name _8n
44
+ * @summary BigInt constant for 8.
45
+ */
46
+ export const _8n = /*#__PURE__*/ BigInt(8);
47
+ /**
48
+ * @name _9n
49
+ * @summary BigInt constant for 9.
50
+ */
51
+ export const _9n = /*#__PURE__*/ BigInt(9);
52
+ /**
53
+ * @name _10n
54
+ * @summary BigInt constant for 10.
55
+ */
56
+ export const _10n = /*#__PURE__*/ BigInt(10);
57
+ /**
58
+ * @name _100n
59
+ * @summary BigInt constant for 100.
60
+ */
61
+ export const _100n = /*#__PURE__*/ BigInt(100);
62
+ /**
63
+ * @name _1000n
64
+ * @summary BigInt constant for 1000.
65
+ */
66
+ export const _1000n = /*#__PURE__*/ BigInt(1_000);
67
+ /**
68
+ * @name _1Mn
69
+ * @summary BigInt constant for 1,000,000 (million).
70
+ */
71
+ export const _1Mn = /*#__PURE__*/ BigInt(1_000_000);
72
+ /**
73
+ * @name _1Bn
74
+ * @summary BigInt constant for 1,000,000,000 (billion).
75
+ */
76
+ export const _1Bn = /*#__PURE__*/ BigInt(1_000_000_000);
77
+ /**
78
+ * @name _1Qn
79
+ * @summary BigInt constant for 1,000,000,000,000,000,000 (quitillion).
80
+ */
81
+ export const _1Qn = _1Bn * _1Bn;
82
+ /**
83
+ * @name _2pow53n
84
+ * @summary BigInt constant for MAX_SAFE_INTEGER
85
+ */
86
+ export const _2pow53n = /*#__PURE__*/ BigInt(Number.MAX_SAFE_INTEGER);
87
+ /**
88
+ * @name _sqrt2pow53n
89
+ * @summary BigInt constant for Math.sqrt(MAX_SAFE_INTEGER)
90
+ */
91
+ export const _sqrt2pow53n = /*#__PURE__*/ BigInt(94906265);
@@ -0,0 +1,2 @@
1
+ /** @internal */
2
+ export declare function createCmp<T>(cmp: (a: T, b: T) => boolean): (...items: T[]) => T;
package/bi/helpers.js ADDED
@@ -0,0 +1,16 @@
1
+ /** @internal */
2
+ export function createCmp(cmp) {
3
+ return (...items) => {
4
+ const count = items.length;
5
+ if (count === 0) {
6
+ throw new Error('Must provide one or more arguments');
7
+ }
8
+ let result = items[0];
9
+ for (let i = 1; i < count; i++) {
10
+ if (cmp(items[i], result)) {
11
+ result = items[i];
12
+ }
13
+ }
14
+ return result;
15
+ };
16
+ }
package/bi/index.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @summary Utility methods to convert to and from `bigint` objects
3
+ */
4
+ export { nMax, nMin } from './min.js';
5
+ export { nSqrt } from './sqrt.js';
6
+ export { nToBigInt } from './toBigInt.js';
7
+ export { nToHex } from './toHex.js';
8
+ export { nToU8a } from './toU8a.js';
9
+ export * from './consts.js';
package/bi/index.js ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @summary Utility methods to convert to and from `bigint` objects
3
+ */
4
+ export { nMax, nMin } from './min.js';
5
+ export { nSqrt } from './sqrt.js';
6
+ export { nToBigInt } from './toBigInt.js';
7
+ export { nToHex } from './toHex.js';
8
+ export { nToU8a } from './toU8a.js';
9
+ export * from './consts.js';
package/bi/min.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @name nMax
3
+ * @summary Finds and returns the highest value in an array of bigint.
4
+ */
5
+ export declare const nMax: (...items: bigint[]) => bigint;
6
+ /**
7
+ * @name nMin
8
+ * @summary Finds and returns the lowest value in an array of bigint.
9
+ */
10
+ export declare const nMin: (...items: bigint[]) => bigint;
package/bi/min.js ADDED
@@ -0,0 +1,11 @@
1
+ import { createCmp } from './helpers.js';
2
+ /**
3
+ * @name nMax
4
+ * @summary Finds and returns the highest value in an array of bigint.
5
+ */
6
+ export const nMax = /*#__PURE__*/ createCmp((a, b) => a > b);
7
+ /**
8
+ * @name nMin
9
+ * @summary Finds and returns the lowest value in an array of bigint.
10
+ */
11
+ export const nMin = /*#__PURE__*/ createCmp((a, b) => a < b);
package/bi/sqrt.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import type { BN } from '../bn/index.js';
2
+ import type { ToBigInt, ToBn } from '../types.js';
3
+ /**
4
+ * @name nSqrt
5
+ * @summary Calculates the integer square root of a bigint
6
+ */
7
+ export declare function nSqrt<ExtToBn extends ToBn | ToBigInt>(value: ExtToBn | BN | bigint | string | number | null): bigint;
package/bi/sqrt.js ADDED
@@ -0,0 +1,29 @@
1
+ import { BigInt } from '@pezkuwi/x-bigint';
2
+ import { _0n, _1n, _2pow53n, _sqrt2pow53n } from './consts.js';
3
+ import { nToBigInt } from './toBigInt.js';
4
+ /**
5
+ * @name nSqrt
6
+ * @summary Calculates the integer square root of a bigint
7
+ */
8
+ export function nSqrt(value) {
9
+ const n = nToBigInt(value);
10
+ if (n < _0n) {
11
+ throw new Error('square root of negative numbers is not supported');
12
+ }
13
+ // https://stackoverflow.com/questions/53683995/javascript-big-integer-square-root/
14
+ // shortcut <= 2^53 - 1 to use the JS utils
15
+ if (n <= _2pow53n) {
16
+ // ~~ is more performant that Math.floor
17
+ return BigInt(~~Math.sqrt(Number(n)));
18
+ }
19
+ // Use sqrt(MAX_SAFE_INTEGER) as starting point. since we already know the
20
+ // output will be larger than this, we expect this to be a safe start
21
+ let x0 = _sqrt2pow53n;
22
+ while (true) {
23
+ const x1 = ((n / x0) + x0) >> _1n;
24
+ if (x0 === x1 || (x0 === (x1 - _1n))) {
25
+ return x0;
26
+ }
27
+ x0 = x1;
28
+ }
29
+ }
@@ -0,0 +1,7 @@
1
+ import type { BN } from '../bn/bn.js';
2
+ import type { ToBigInt, ToBn } from '../types.js';
3
+ /**
4
+ * @name nToBigInt
5
+ * @summary Creates a bigInt value from a BN, bigint, string (base 10 or hex) or number input.
6
+ */
7
+ export declare function nToBigInt<ExtToBn extends ToBigInt | ToBn>(value?: ExtToBn | BN | bigint | string | number | null): bigint;
package/bi/toBigInt.js ADDED
@@ -0,0 +1,25 @@
1
+ import { BigInt } from '@pezkuwi/x-bigint';
2
+ import { hexToBigInt } from '../hex/toBigInt.js';
3
+ import { isBn } from '../is/bn.js';
4
+ import { isHex } from '../is/hex.js';
5
+ import { isToBigInt } from '../is/toBigInt.js';
6
+ import { isToBn } from '../is/toBn.js';
7
+ /**
8
+ * @name nToBigInt
9
+ * @summary Creates a bigInt value from a BN, bigint, string (base 10 or hex) or number input.
10
+ */
11
+ export function nToBigInt(value) {
12
+ return typeof value === 'bigint'
13
+ ? value
14
+ : !value
15
+ ? BigInt(0)
16
+ : isHex(value)
17
+ ? hexToBigInt(value.toString())
18
+ : isBn(value)
19
+ ? BigInt(value.toString())
20
+ : isToBigInt(value)
21
+ ? value.toBigInt()
22
+ : isToBn(value)
23
+ ? BigInt(value.toBn().toString())
24
+ : BigInt(value);
25
+ }
package/bi/toHex.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import type { BN } from '../bn/bn.js';
2
+ import type { HexString, NumberOptions, ToBigInt, ToBn } from '../types.js';
3
+ /**
4
+ * @name nToHex
5
+ * @summary Creates a hex value from a bigint object.
6
+ */
7
+ export declare function nToHex<ExtToBn extends ToBn | ToBigInt>(value?: ExtToBn | BN | bigint | number | null, { bitLength, isLe, isNegative }?: NumberOptions): HexString;