@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
package/types.d.ts ADDED
@@ -0,0 +1,62 @@
1
+ import type { BN } from './bn/bn.js';
2
+ /** An interface that defines an actual JS class */
3
+ export interface Class<T = any, A extends unknown[] = any[]> {
4
+ prototype: T;
5
+ new (...args: A): T;
6
+ hasOwnProperty(prop: string): boolean;
7
+ isPrototypeOf(other: unknown): boolean;
8
+ }
9
+ export type Constructor<T = any, A extends unknown[] = any[]> = Class<T, A>;
10
+ export interface ToBigInt {
11
+ toBigInt: () => bigint;
12
+ }
13
+ export interface ToBn {
14
+ toBn: () => BN;
15
+ }
16
+ export interface SiDef {
17
+ power: number;
18
+ text: string;
19
+ value: string;
20
+ }
21
+ export interface Logger {
22
+ debug: (...values: unknown[]) => void;
23
+ error: (...values: unknown[]) => void;
24
+ log: (...values: unknown[]) => void;
25
+ noop: (...values: unknown[]) => void;
26
+ warn: (...values: unknown[]) => void;
27
+ }
28
+ export interface ToBnOptions {
29
+ /** Convert in LE format */
30
+ isLe?: boolean;
31
+ /** Number is signed, apply two's complement */
32
+ isNegative?: boolean;
33
+ }
34
+ export interface NumberOptions extends ToBnOptions {
35
+ /** Limit to the specified bitLength, despite input length */
36
+ bitLength?: number;
37
+ }
38
+ export interface Time {
39
+ days: number;
40
+ hours: number;
41
+ minutes: number;
42
+ seconds: number;
43
+ milliseconds: number;
44
+ }
45
+ export type Memoized<F> = F & {
46
+ unmemoize: (...args: unknown[]) => void;
47
+ };
48
+ export type AnyString = string | String;
49
+ export type HexDigit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'a' | 'b' | 'c' | 'd' | 'e' | 'f';
50
+ export type HexString = `0x${string}`;
51
+ export interface BufferObject extends Uint8Array {
52
+ equals: (otherBuffer: Uint8Array) => boolean;
53
+ readDoubleLE: (offset?: number) => number;
54
+ }
55
+ export interface BufferClass extends Class<BufferObject> {
56
+ from: <T = BufferObject>(value: unknown) => T;
57
+ isBuffer: (value: unknown) => boolean;
58
+ }
59
+ export type U8aLike = number[] | Uint8Array | AnyString;
60
+ export interface Observable {
61
+ next: (...params: unknown[]) => unknown;
62
+ }
package/types.js ADDED
@@ -0,0 +1 @@
1
+ export {};
package/u8a/cmp.d.ts ADDED
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @name u8aCmp
3
+ * @summary Compares two Uint8Arrays for sorting.
4
+ * @description
5
+ * For `UInt8Array` (or hex string) input values returning -1, 0 or +1
6
+ * @example
7
+ * <BR>
8
+ *
9
+ * ```javascript
10
+ * import { u8aCmp } from '@pezkuwi/util';
11
+ *
12
+ * u8aCmp(new Uint8Array([0x67, 0x65]), new Uint8Array([0x68, 0x65])); // -1
13
+ * u8aCmp(new Uint8Array([0x68, 0x65]), new Uint8Array([0x68, 0x65])); // 0
14
+ * u8aCmp(new Uint8Array([0x69, 0x65]), new Uint8Array([0x68, 0x65])); // +1
15
+ * ```
16
+ */
17
+ export declare function u8aCmp(a: string | Uint8Array, b: string | Uint8Array): number;
package/u8a/cmp.js ADDED
@@ -0,0 +1,46 @@
1
+ import { u8aToU8a } from './toU8a.js';
2
+ /**
3
+ * @name u8aCmp
4
+ * @summary Compares two Uint8Arrays for sorting.
5
+ * @description
6
+ * For `UInt8Array` (or hex string) input values returning -1, 0 or +1
7
+ * @example
8
+ * <BR>
9
+ *
10
+ * ```javascript
11
+ * import { u8aCmp } from '@pezkuwi/util';
12
+ *
13
+ * u8aCmp(new Uint8Array([0x67, 0x65]), new Uint8Array([0x68, 0x65])); // -1
14
+ * u8aCmp(new Uint8Array([0x68, 0x65]), new Uint8Array([0x68, 0x65])); // 0
15
+ * u8aCmp(new Uint8Array([0x69, 0x65]), new Uint8Array([0x68, 0x65])); // +1
16
+ * ```
17
+ */
18
+ export function u8aCmp(a, b) {
19
+ const u8aa = u8aToU8a(a);
20
+ const u8ab = u8aToU8a(b);
21
+ let i = 0;
22
+ while (true) {
23
+ const overA = i >= u8aa.length;
24
+ const overB = i >= u8ab.length;
25
+ if (overA && overB) {
26
+ // both ends reached
27
+ return 0;
28
+ }
29
+ else if (overA) {
30
+ // a has no more data, b has data
31
+ return -1;
32
+ }
33
+ else if (overB) {
34
+ // b has no more data, a has data
35
+ return 1;
36
+ }
37
+ else if (u8aa[i] !== u8ab[i]) {
38
+ // the number in this index doesn't match
39
+ // (we don't use u8aa[i] - u8ab[i] since that doesn't match with localeCompare)
40
+ return u8aa[i] > u8ab[i]
41
+ ? 1
42
+ : -1;
43
+ }
44
+ i++;
45
+ }
46
+ }
@@ -0,0 +1,24 @@
1
+ import type { U8aLike } from '../types.js';
2
+ /**
3
+ * @name u8aConcat
4
+ * @summary Creates a concatenated Uint8Array from the inputs.
5
+ * @description
6
+ * Concatenates the input arrays into a single `UInt8Array`.
7
+ * @example
8
+ * <BR>
9
+ *
10
+ * ```javascript
11
+ * import { { u8aConcat } from '@pezkuwi/util';
12
+ *
13
+ * u8aConcat(
14
+ * new Uint8Array([1, 2, 3]),
15
+ * new Uint8Array([4, 5, 6])
16
+ * ); // [1, 2, 3, 4, 5, 6]
17
+ * ```
18
+ */
19
+ export declare function u8aConcat(...list: readonly U8aLike[]): Uint8Array;
20
+ /**
21
+ * @name u8aConcatStrict
22
+ * @description A strict version of [[u8aConcat]], accepting only Uint8Array inputs
23
+ */
24
+ export declare function u8aConcatStrict(u8as: readonly Uint8Array[], length?: number): Uint8Array;
package/u8a/concat.js ADDED
@@ -0,0 +1,47 @@
1
+ import { u8aToU8a } from './toU8a.js';
2
+ /**
3
+ * @name u8aConcat
4
+ * @summary Creates a concatenated Uint8Array from the inputs.
5
+ * @description
6
+ * Concatenates the input arrays into a single `UInt8Array`.
7
+ * @example
8
+ * <BR>
9
+ *
10
+ * ```javascript
11
+ * import { { u8aConcat } from '@pezkuwi/util';
12
+ *
13
+ * u8aConcat(
14
+ * new Uint8Array([1, 2, 3]),
15
+ * new Uint8Array([4, 5, 6])
16
+ * ); // [1, 2, 3, 4, 5, 6]
17
+ * ```
18
+ */
19
+ export function u8aConcat(...list) {
20
+ const count = list.length;
21
+ const u8as = new Array(count);
22
+ let length = 0;
23
+ for (let i = 0; i < count; i++) {
24
+ u8as[i] = u8aToU8a(list[i]);
25
+ length += u8as[i].length;
26
+ }
27
+ return u8aConcatStrict(u8as, length);
28
+ }
29
+ /**
30
+ * @name u8aConcatStrict
31
+ * @description A strict version of [[u8aConcat]], accepting only Uint8Array inputs
32
+ */
33
+ export function u8aConcatStrict(u8as, length = 0) {
34
+ const count = u8as.length;
35
+ let offset = 0;
36
+ if (!length) {
37
+ for (let i = 0; i < count; i++) {
38
+ length += u8as[i].length;
39
+ }
40
+ }
41
+ const result = new Uint8Array(length);
42
+ for (let i = 0; i < count; i++) {
43
+ result.set(u8as[i], offset);
44
+ offset += u8as[i].length;
45
+ }
46
+ return result;
47
+ }
@@ -0,0 +1,19 @@
1
+ import type { U8aLike } from '../types.js';
2
+ /**
3
+ * @name u8aConcat
4
+ * @summary Creates a concatenated Uint8Array from the inputs.
5
+ * @description
6
+ * Concatenates the input arrays into a single `UInt8Array`.
7
+ * @example
8
+ * <BR>
9
+ *
10
+ * ```javascript
11
+ * import { { u8aConcat } from '@pezkuwi/util';
12
+ *
13
+ * u8aConcat(
14
+ * new Uint8Array([1, 2, 3]),
15
+ * new Uint8Array([4, 5, 6])
16
+ * ); // [1, 2, 3, 4, 5, 6]
17
+ * ```
18
+ */
19
+ export declare function u8aConcat(...list: readonly U8aLike[]): Uint8Array;
@@ -0,0 +1,26 @@
1
+ import { u8aToU8a } from './toU8a.js';
2
+ /**
3
+ * @name u8aConcat
4
+ * @summary Creates a concatenated Uint8Array from the inputs.
5
+ * @description
6
+ * Concatenates the input arrays into a single `UInt8Array`.
7
+ * @example
8
+ * <BR>
9
+ *
10
+ * ```javascript
11
+ * import { { u8aConcat } from '@pezkuwi/util';
12
+ *
13
+ * u8aConcat(
14
+ * new Uint8Array([1, 2, 3]),
15
+ * new Uint8Array([4, 5, 6])
16
+ * ); // [1, 2, 3, 4, 5, 6]
17
+ * ```
18
+ */
19
+ export function u8aConcat(...list) {
20
+ const count = list.length;
21
+ const u8as = new Array(count);
22
+ for (let i = 0; i < count; i++) {
23
+ u8as[i] = u8aToU8a(list[i]);
24
+ }
25
+ return Uint8Array.from(Buffer.concat(u8as));
26
+ }
package/u8a/empty.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @name u8aEmpty
3
+ * @summary Tests for a `Uint8Array` for emptyness
4
+ * @description
5
+ * Checks to see if the input `Uint8Array` has zero length or contains all 0 values.
6
+ */
7
+ export declare function u8aEmpty(value: Uint8Array): boolean;
package/u8a/empty.js ADDED
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @name u8aEmpty
3
+ * @summary Tests for a `Uint8Array` for emptyness
4
+ * @description
5
+ * Checks to see if the input `Uint8Array` has zero length or contains all 0 values.
6
+ */
7
+ export function u8aEmpty(value) {
8
+ const len = value.length | 0;
9
+ // on smaller sizes, the byte-by-byte compare is faster than allocating
10
+ // another object for DataView (on very large arrays the DataView is faster)
11
+ for (let i = 0; i < len; i++) {
12
+ if (value[i] | 0) {
13
+ return false;
14
+ }
15
+ }
16
+ return true;
17
+ }
package/u8a/eq.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @name u8aEq
3
+ * @summary Compares two Uint8Arrays for equality.
4
+ * @description
5
+ * For `UInt8Array` (or hex string) input values true if there is a match.
6
+ * @example
7
+ * <BR>
8
+ *
9
+ * ```javascript
10
+ * import { u8aEq } from '@pezkuwi/util';
11
+ *
12
+ * u8aEq(new Uint8Array([0x68, 0x65]), new Uint8Array([0x68, 0x65])); // true
13
+ * ```
14
+ */
15
+ export declare function u8aEq(a: string | Uint8Array, b: string | Uint8Array): boolean;
package/u8a/eq.js ADDED
@@ -0,0 +1,37 @@
1
+ import { u8aToU8a } from './toU8a.js';
2
+ /**
3
+ * @name u8aEq
4
+ * @summary Compares two Uint8Arrays for equality.
5
+ * @description
6
+ * For `UInt8Array` (or hex string) input values true if there is a match.
7
+ * @example
8
+ * <BR>
9
+ *
10
+ * ```javascript
11
+ * import { u8aEq } from '@pezkuwi/util';
12
+ *
13
+ * u8aEq(new Uint8Array([0x68, 0x65]), new Uint8Array([0x68, 0x65])); // true
14
+ * ```
15
+ */
16
+ export function u8aEq(a, b) {
17
+ const u8aa = u8aToU8a(a);
18
+ const u8ab = u8aToU8a(b);
19
+ if (u8aa.length === u8ab.length) {
20
+ const dvA = new DataView(u8aa.buffer, u8aa.byteOffset);
21
+ const dvB = new DataView(u8ab.buffer, u8ab.byteOffset);
22
+ const mod = (u8aa.length % 4) | 0;
23
+ const length = (u8aa.length - mod) | 0;
24
+ for (let i = 0; i < length; i += 4) {
25
+ if (dvA.getUint32(i) !== dvB.getUint32(i)) {
26
+ return false;
27
+ }
28
+ }
29
+ for (let i = length, count = u8aa.length; i < count; i++) {
30
+ if (u8aa[i] !== u8ab[i]) {
31
+ return false;
32
+ }
33
+ }
34
+ return true;
35
+ }
36
+ return false;
37
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @name u8aFixLength
3
+ * @summary Shifts a Uint8Array to a specific bitLength
4
+ * @description
5
+ * Returns a uint8Array with the specified number of bits contained in the return value. (If bitLength is -1, length checking is not done). Values with more bits are trimmed to the specified length.
6
+ * @example
7
+ * <BR>
8
+ *
9
+ * ```javascript
10
+ * import { u8aFixLength } from '@pezkuwi/util';
11
+ *
12
+ * u8aFixLength('0x12') // => 0x12
13
+ * u8aFixLength('0x12', 16) // => 0x0012
14
+ * u8aFixLength('0x1234', 8) // => 0x12
15
+ * ```
16
+ */
17
+ export declare function u8aFixLength(value: Uint8Array, bitLength?: number, atStart?: boolean): Uint8Array;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @name u8aFixLength
3
+ * @summary Shifts a Uint8Array to a specific bitLength
4
+ * @description
5
+ * Returns a uint8Array with the specified number of bits contained in the return value. (If bitLength is -1, length checking is not done). Values with more bits are trimmed to the specified length.
6
+ * @example
7
+ * <BR>
8
+ *
9
+ * ```javascript
10
+ * import { u8aFixLength } from '@pezkuwi/util';
11
+ *
12
+ * u8aFixLength('0x12') // => 0x12
13
+ * u8aFixLength('0x12', 16) // => 0x0012
14
+ * u8aFixLength('0x1234', 8) // => 0x12
15
+ * ```
16
+ */
17
+ export function u8aFixLength(value, bitLength = -1, atStart = false) {
18
+ const byteLength = Math.ceil(bitLength / 8);
19
+ if (bitLength === -1 || value.length === byteLength) {
20
+ return value;
21
+ }
22
+ else if (value.length > byteLength) {
23
+ return value.subarray(0, byteLength);
24
+ }
25
+ const result = new Uint8Array(byteLength);
26
+ result.set(value, atStart ? 0 : (byteLength - value.length));
27
+ return result;
28
+ }
package/u8a/index.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @summary Utility methods to convert to and from `Uint8Array` objects
3
+ */
4
+ export { u8aCmp } from './cmp.js';
5
+ export { u8aConcat, u8aConcatStrict } from './concat.js';
6
+ export { u8aEmpty } from './empty.js';
7
+ export { u8aEq } from './eq.js';
8
+ export { u8aFixLength } from './fixLength.js';
9
+ export { u8aSorted } from './sorted.js';
10
+ export { u8aToBigInt } from './toBigInt.js';
11
+ export { u8aToBn } from './toBn.js';
12
+ export { u8aToBuffer } from './toBuffer.js';
13
+ export { u8aToFloat } from './toFloat.js';
14
+ export { u8aToHex } from './toHex.js';
15
+ export { u8aToNumber } from './toNumber.js';
16
+ export { u8aToString } from './toString.js';
17
+ export { u8aToU8a } from './toU8a.js';
18
+ export { U8A_WRAP_ETHEREUM, U8A_WRAP_POSTFIX, U8A_WRAP_PREFIX, u8aIsWrapped, u8aUnwrapBytes, u8aWrapBytes } from './wrap.js';
package/u8a/index.js ADDED
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @summary Utility methods to convert to and from `Uint8Array` objects
3
+ */
4
+ export { u8aCmp } from './cmp.js';
5
+ export { u8aConcat, u8aConcatStrict } from './concat.js';
6
+ export { u8aEmpty } from './empty.js';
7
+ export { u8aEq } from './eq.js';
8
+ export { u8aFixLength } from './fixLength.js';
9
+ export { u8aSorted } from './sorted.js';
10
+ export { u8aToBigInt } from './toBigInt.js';
11
+ export { u8aToBn } from './toBn.js';
12
+ export { u8aToBuffer } from './toBuffer.js';
13
+ export { u8aToFloat } from './toFloat.js';
14
+ export { u8aToHex } from './toHex.js';
15
+ export { u8aToNumber } from './toNumber.js';
16
+ export { u8aToString } from './toString.js';
17
+ export { u8aToU8a } from './toU8a.js';
18
+ export { U8A_WRAP_ETHEREUM, U8A_WRAP_POSTFIX, U8A_WRAP_PREFIX, u8aIsWrapped, u8aUnwrapBytes, u8aWrapBytes } from './wrap.js';
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @name u8aSorted
3
+ * @summary Sorts an array of Uint8Arrays
4
+ * @description
5
+ * For input `UInt8Array[]` return the sorted result
6
+ * @example
7
+ * <BR>
8
+ *
9
+ * ```javascript
10
+ * import { u8aSorted} from '@pezkuwi/util';
11
+ *
12
+ * u8aSorted([new Uint8Array([0x69]), new Uint8Array([0x68])]); // [0x68, 0x69]
13
+ * ```
14
+ */
15
+ export declare function u8aSorted(u8as: Uint8Array[]): Uint8Array[];
package/u8a/sorted.js ADDED
@@ -0,0 +1,18 @@
1
+ import { u8aCmp } from './cmp.js';
2
+ /**
3
+ * @name u8aSorted
4
+ * @summary Sorts an array of Uint8Arrays
5
+ * @description
6
+ * For input `UInt8Array[]` return the sorted result
7
+ * @example
8
+ * <BR>
9
+ *
10
+ * ```javascript
11
+ * import { u8aSorted} from '@pezkuwi/util';
12
+ *
13
+ * u8aSorted([new Uint8Array([0x69]), new Uint8Array([0x68])]); // [0x68, 0x69]
14
+ * ```
15
+ */
16
+ export function u8aSorted(u8as) {
17
+ return u8as.sort(u8aCmp);
18
+ }
@@ -0,0 +1,6 @@
1
+ import type { ToBnOptions } from '../types.js';
2
+ /**
3
+ * @name u8aToBigInt
4
+ * @summary Creates a BigInt from a Uint8Array object.
5
+ */
6
+ export declare function u8aToBigInt(value: Uint8Array, { isLe, isNegative }?: ToBnOptions): bigint;
@@ -0,0 +1,70 @@
1
+ import { BigInt } from '@pezkuwi/x-bigint';
2
+ import { _1n } from '../bi/consts.js';
3
+ const U8_MAX = BigInt(256);
4
+ const U16_MAX = BigInt(256 * 256);
5
+ const U64_MAX = BigInt('0x10000000000000000');
6
+ /**
7
+ * @name u8aToBigInt
8
+ * @summary Creates a BigInt from a Uint8Array object.
9
+ */
10
+ export function u8aToBigInt(value, { isLe = true, isNegative = false } = {}) {
11
+ // slice + reverse is expensive, however SCALE is LE by default so this is the path
12
+ // we are most interested in (the BE is added for the sake of being comprehensive)
13
+ if (!isLe) {
14
+ value = value.slice().reverse();
15
+ }
16
+ const count = value.length;
17
+ if (isNegative && count && (value[count - 1] & 0x80)) {
18
+ switch (count) {
19
+ case 0:
20
+ return BigInt(0);
21
+ case 1:
22
+ return BigInt(((value[0] ^ 0x0000_00ff) * -1) - 1);
23
+ case 2:
24
+ return BigInt((((value[0] + (value[1] << 8)) ^ 0x0000_ffff) * -1) - 1);
25
+ case 4:
26
+ return BigInt((((value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 0x1_00_00_00)) ^ 0xffff_ffff) * -1) - 1);
27
+ }
28
+ const dvI = new DataView(value.buffer, value.byteOffset);
29
+ if (count === 8) {
30
+ return dvI.getBigInt64(0, true);
31
+ }
32
+ let result = BigInt(0);
33
+ const mod = count % 2;
34
+ for (let i = count - 2; i >= mod; i -= 2) {
35
+ result = (result * U16_MAX) + BigInt(dvI.getUint16(i, true) ^ 0xffff);
36
+ }
37
+ if (mod) {
38
+ result = (result * U8_MAX) + BigInt(value[0] ^ 0xff);
39
+ }
40
+ return (result * -_1n) - _1n;
41
+ }
42
+ switch (count) {
43
+ case 0:
44
+ return BigInt(0);
45
+ case 1:
46
+ return BigInt(value[0]);
47
+ case 2:
48
+ return BigInt(value[0] + (value[1] << 8));
49
+ case 4:
50
+ return BigInt(value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 0x1_00_00_00));
51
+ }
52
+ const dvI = new DataView(value.buffer, value.byteOffset);
53
+ switch (count) {
54
+ case 8:
55
+ return dvI.getBigUint64(0, true);
56
+ case 16:
57
+ return (dvI.getBigUint64(8, true) * U64_MAX) + dvI.getBigUint64(0, true);
58
+ default: {
59
+ let result = BigInt(0);
60
+ const mod = count % 2;
61
+ for (let i = count - 2; i >= mod; i -= 2) {
62
+ result = (result * U16_MAX) + BigInt(dvI.getUint16(i, true));
63
+ }
64
+ if (mod) {
65
+ result = (result * U8_MAX) + BigInt(value[0]);
66
+ }
67
+ return result;
68
+ }
69
+ }
70
+ }
package/u8a/toBn.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ import type { ToBnOptions } from '../types.js';
2
+ import { BN } from '../bn/bn.js';
3
+ /**
4
+ * @name u8aToBn
5
+ * @summary Creates a BN from a Uint8Array object.
6
+ * @description
7
+ * `UInt8Array` input values return the actual BN. `null` or `undefined` values returns an `0x0` value.
8
+ * @param value The value to convert
9
+ * @param options Options to pass while converting
10
+ * @param options.isLe Convert using Little Endian (default)
11
+ * @param options.isNegative Convert using two's complement
12
+ * @example
13
+ * <BR>
14
+ *
15
+ * ```javascript
16
+ * import { u8aToBn } from '@pezkuwi/util';
17
+ *
18
+ * u8aToHex(new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0xf])); // 0x68656c0f
19
+ * ```
20
+ */
21
+ export declare function u8aToBn(value: Uint8Array, { isLe, isNegative }?: ToBnOptions): BN;
package/u8a/toBn.js ADDED
@@ -0,0 +1,78 @@
1
+ import { BN } from '../bn/bn.js';
2
+ /**
3
+ * @name u8aToBn
4
+ * @summary Creates a BN from a Uint8Array object.
5
+ * @description
6
+ * `UInt8Array` input values return the actual BN. `null` or `undefined` values returns an `0x0` value.
7
+ * @param value The value to convert
8
+ * @param options Options to pass while converting
9
+ * @param options.isLe Convert using Little Endian (default)
10
+ * @param options.isNegative Convert using two's complement
11
+ * @example
12
+ * <BR>
13
+ *
14
+ * ```javascript
15
+ * import { u8aToBn } from '@pezkuwi/util';
16
+ *
17
+ * u8aToHex(new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0xf])); // 0x68656c0f
18
+ * ```
19
+ */
20
+ export function u8aToBn(value, { isLe = true, isNegative = false } = {}) {
21
+ // slice + reverse is expensive, however SCALE is LE by default so this is the path
22
+ // we are most interested in (the BE is added for the sake of being comprehensive)
23
+ if (!isLe) {
24
+ value = value.slice().reverse();
25
+ }
26
+ const count = value.length;
27
+ // shortcut for <= u48 values - in this case the manual conversion
28
+ // here seems to be more efficient than passing the full array
29
+ if (isNegative && count && (value[count - 1] & 0x80)) {
30
+ // Most common case i{8, 16, 32} default LE SCALE-encoded
31
+ // For <= 32, we also optimize the xor to a single op
32
+ switch (count) {
33
+ case 0:
34
+ return new BN(0);
35
+ case 1:
36
+ return new BN(((value[0] ^ 0x0000_00ff) * -1) - 1);
37
+ case 2:
38
+ return new BN((((value[0] + (value[1] << 8)) ^ 0x0000_ffff) * -1) - 1);
39
+ case 3:
40
+ return new BN((((value[0] + (value[1] << 8) + (value[2] << 16)) ^ 0x00ff_ffff) * -1) - 1);
41
+ case 4:
42
+ // for the 3rd byte, we don't << 24 - since JS converts all bitwise operators to
43
+ // 32-bit, in the case where the top-most bit is set this yields a negative value
44
+ return new BN((((value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 0x1_00_00_00)) ^ 0xffff_ffff) * -1) - 1);
45
+ case 5:
46
+ return new BN(((((value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 0x1_00_00_00)) ^ 0xffff_ffff) + ((value[4] ^ 0xff) * 0x1_00_00_00_00)) * -1) - 1);
47
+ case 6:
48
+ return new BN(((((value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 0x1_00_00_00)) ^ 0xffff_ffff) + (((value[4] + (value[5] << 8)) ^ 0x0000_ffff) * 0x1_00_00_00_00)) * -1) - 1);
49
+ default:
50
+ return new BN(value, 'le').fromTwos(count * 8);
51
+ }
52
+ }
53
+ // Most common case - u{8, 16, 32} default LE SCALE-encoded
54
+ //
55
+ // There are some slight benefits in unrolling this specific loop,
56
+ // however it comes with diminishing returns since here the actual
57
+ // `new BN` does seem to take up the bulk of the time
58
+ switch (count) {
59
+ case 0:
60
+ return new BN(0);
61
+ case 1:
62
+ return new BN(value[0]);
63
+ case 2:
64
+ return new BN(value[0] + (value[1] << 8));
65
+ case 3:
66
+ return new BN(value[0] + (value[1] << 8) + (value[2] << 16));
67
+ case 4:
68
+ // for the 3rd byte, we don't << 24 - since JS converts all bitwise operators to
69
+ // 32-bit, in the case where the top-most bit is set this yields a negative value
70
+ return new BN(value[0] + (value[1] << 8) + (value[2] << 16) + (value[3] * 0x1_00_00_00));
71
+ case 5:
72
+ return new BN(value[0] + (value[1] << 8) + (value[2] << 16) + ((value[3] + (value[4] << 8)) * 0x1_00_00_00));
73
+ case 6:
74
+ return new BN(value[0] + (value[1] << 8) + (value[2] << 16) + ((value[3] + (value[4] << 8) + (value[5] << 16)) * 0x1_00_00_00));
75
+ default:
76
+ return new BN(value, 'le');
77
+ }
78
+ }
@@ -0,0 +1,16 @@
1
+ import type { BufferObject } from '../types.js';
2
+ /**
3
+ * @name u8aToBuffer
4
+ * @summary Creates a Buffer object from a hex string.
5
+ * @description
6
+ * `null` inputs returns an empty `Buffer` result. `UInt8Array` input values return the actual bytes value converted to a `Buffer`. Anything that is not a `UInt8Array` throws an error.
7
+ * @example
8
+ * <BR>
9
+ *
10
+ * ```javascript
11
+ * import { u8aToBuffer } from '@pezkuwi/util';
12
+ *
13
+ * console.log('Buffer', u8aToBuffer(new Uint8Array([1, 2, 3])));
14
+ * ```
15
+ */
16
+ export declare function u8aToBuffer<T = BufferObject>(value?: Uint8Array | null): T;
@@ -0,0 +1,21 @@
1
+ import { xglobal } from '@pezkuwi/x-global';
2
+ import { hasBuffer } from '../has.js';
3
+ /**
4
+ * @name u8aToBuffer
5
+ * @summary Creates a Buffer object from a hex string.
6
+ * @description
7
+ * `null` inputs returns an empty `Buffer` result. `UInt8Array` input values return the actual bytes value converted to a `Buffer`. Anything that is not a `UInt8Array` throws an error.
8
+ * @example
9
+ * <BR>
10
+ *
11
+ * ```javascript
12
+ * import { u8aToBuffer } from '@pezkuwi/util';
13
+ *
14
+ * console.log('Buffer', u8aToBuffer(new Uint8Array([1, 2, 3])));
15
+ * ```
16
+ */
17
+ export function u8aToBuffer(value) {
18
+ return hasBuffer
19
+ ? xglobal.Buffer.from(value || [])
20
+ : new Uint8Array(value || []);
21
+ }