@wener/utils 1.1.51 → 1.1.54

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 (497) hide show
  1. package/lib/arrays/MaybeArray.js +58 -8
  2. package/lib/arrays/arrayFromAsync.js +254 -6
  3. package/lib/asyncs/AsyncInterval.js +145 -9
  4. package/lib/asyncs/MaybePromise.js +0 -2
  5. package/lib/asyncs/Promises.js +95 -48
  6. package/lib/asyncs/createAsyncIterator.js +313 -23
  7. package/lib/asyncs/createLazyPromise.js +72 -31
  8. package/lib/asyncs/createLazyPromise.test.js +367 -0
  9. package/lib/asyncs/firstOfAsyncIterator.js +6 -6
  10. package/lib/asyncs/generatorOfStream.js +125 -14
  11. package/lib/asyncs/isIterator.js +1 -3
  12. package/lib/asyncs/isPromise.js +2 -4
  13. package/lib/asyncs/isThenable.js +0 -2
  14. package/lib/asyncs/nextOfAsyncIterator.js +15 -9
  15. package/lib/asyncs/promiseOfCallback.js +2 -4
  16. package/lib/asyncs/timeout.js +122 -13
  17. package/lib/browsers/copy.js +7 -8
  18. package/lib/browsers/download.js +215 -40
  19. package/lib/browsers/getFileFromDataTransfer.js +17 -14
  20. package/lib/browsers/loaders.js +251 -18
  21. package/lib/crypto/base.js +3 -3
  22. package/lib/crypto/getNodeCrypto.js +3 -5
  23. package/lib/crypto/hashing.js +236 -30
  24. package/lib/crypto/hashing.test.js +323 -0
  25. package/lib/crypto/md5.bench.js +11 -11
  26. package/lib/crypto/md5.d.js +0 -2
  27. package/lib/crypto/md5.js +0 -2
  28. package/lib/crypto/md5.test.js +7 -0
  29. package/lib/crypto/pem/pem.js +197 -35
  30. package/lib/crypto/pem/pem.test.js +104 -0
  31. package/lib/crypto/randomUUIDv7.js +0 -2
  32. package/lib/crypto/ulid.js +84 -48
  33. package/lib/crypto/ulid.test.js +115 -0
  34. package/lib/emitter/types.js +0 -2
  35. package/lib/errors/DetailError.js +297 -0
  36. package/lib/errors/Errors.js +136 -137
  37. package/lib/errors/Errors.test.js +24 -0
  38. package/lib/fetch/HttpStatus.js +1 -3
  39. package/lib/fetch/createFetchWith.js +188 -19
  40. package/lib/fetch/createFetchWithLogging.js +17 -16
  41. package/lib/fetch/createFetchWithRetry.js +40 -24
  42. package/lib/fetch/dumpRequest.js +467 -41
  43. package/lib/fetch/dumpRequest.test.js +384 -0
  44. package/lib/fetch/dumpResponse.js +271 -16
  45. package/lib/fetch/dumpResponse.test.js +393 -0
  46. package/lib/fetch/http.types.js +0 -2
  47. package/lib/fetch/index.js +5 -7
  48. package/lib/fetch/isTextContentType.js +5 -0
  49. package/lib/fetch/resolveRequest.js +7 -0
  50. package/lib/fetch/types.js +0 -2
  51. package/lib/i18n/createTranslate.js +40 -20
  52. package/lib/i18n/createTranslate.test.js +177 -0
  53. package/lib/index.js +75 -76
  54. package/lib/io/AbstractEncoding.js +0 -2
  55. package/lib/io/ArrayBuffer.test-d.js +4 -6
  56. package/lib/io/ArrayBuffers.base64.test.js +60 -0
  57. package/lib/io/ArrayBuffers.js +396 -171
  58. package/lib/io/ArrayBuffers.test.js +77 -0
  59. package/lib/io/Buffer.js +190 -20
  60. package/lib/io/Buffer.test.js +22 -0
  61. package/lib/io/ByteBuffer.js +752 -441
  62. package/lib/io/ByteBuffer.test.js +184 -0
  63. package/lib/io/base64.js +17 -19
  64. package/lib/io/dump.js +16 -16
  65. package/lib/io/isBuffer.js +2 -3
  66. package/lib/io/isBuffer.test.js +8 -0
  67. package/lib/io/isTransferable.js +16 -8
  68. package/lib/io/isTransferable.test.js +17 -0
  69. package/lib/io/parseDataUri.js +288 -40
  70. package/lib/io/parseDataUri.test.js +286 -0
  71. package/lib/io/types.js +1 -0
  72. package/lib/langs/AsyncCloser.js +270 -34
  73. package/lib/langs/Closer.js +95 -29
  74. package/lib/langs/MaybeFunction.js +38 -5
  75. package/lib/langs/classOf.js +0 -2
  76. package/lib/langs/deepEqual.js +82 -22
  77. package/lib/langs/deepEqual.test.js +11 -0
  78. package/lib/langs/deepFreeze.js +28 -9
  79. package/lib/langs/getGlobalStates.js +14 -10
  80. package/lib/langs/getObjectId.js +4 -6
  81. package/lib/langs/ifPresent.js +0 -2
  82. package/lib/langs/isClass.js +0 -2
  83. package/lib/langs/isDefined.js +0 -2
  84. package/lib/langs/isEmptyObject.js +1 -3
  85. package/lib/langs/isFunction.js +0 -2
  86. package/lib/langs/isNil.js +3 -0
  87. package/lib/langs/isPlainObject.js +2 -4
  88. package/lib/langs/langs.test.js +126 -0
  89. package/lib/langs/memoize.js +11 -7
  90. package/lib/langs/mixin.js +7 -4
  91. package/lib/langs/mixin.test.js +135 -0
  92. package/lib/langs/parseBoolean.js +11 -8
  93. package/lib/langs/parseDate.js +20 -0
  94. package/lib/langs/shallowClone.js +5 -3
  95. package/lib/langs/shallowEqual.js +8 -6
  96. package/lib/libs/ms.js +28 -26
  97. package/lib/libs/ms.test.js +301 -0
  98. package/lib/logger/const.js +15 -0
  99. package/lib/logger/index.js +1 -0
  100. package/lib/logger/types.js +1 -0
  101. package/lib/maths/clamp.js +81 -12
  102. package/lib/maths/clamp.test.js +186 -0
  103. package/lib/maths/createRandom.test.js +36 -0
  104. package/lib/maths/random.js +162 -13
  105. package/lib/modules/isModule.js +0 -2
  106. package/lib/modules/parseModuleId.js +14 -15
  107. package/lib/modules/parseModuleId.test.js +153 -0
  108. package/lib/objects/computeIfAbsent.js +8 -3
  109. package/lib/objects/get.js +26 -8
  110. package/lib/objects/get.test-d.js +23 -25
  111. package/lib/objects/merge/index.js +1 -3
  112. package/lib/objects/merge/isMergeableObject.js +5 -3
  113. package/lib/objects/merge/merge.js +82 -26
  114. package/lib/objects/merge/merge.test.js +1397 -0
  115. package/lib/objects/parseObjectPath.js +47 -15
  116. package/lib/objects/parseObjectPath.test.js +138 -0
  117. package/lib/objects/set.js +25 -19
  118. package/lib/objects/set.test.js +522 -0
  119. package/lib/schema/typebox/index.js +2 -3
  120. package/lib/schema/typebox/typebox.js +6 -6
  121. package/lib/scripts/getGenerateContext.js +386 -77
  122. package/lib/server/crypto/md5.js +0 -2
  123. package/lib/server/fetch/createFetchWithProxy.js +2 -4
  124. package/lib/server/fetch/createFetchWithProxyByNodeFetch.js +258 -31
  125. package/lib/server/fetch/createFetchWithProxyByUndici.js +307 -49
  126. package/lib/server/getPackageDir.js +2 -3
  127. package/lib/server/index.js +5 -7
  128. package/lib/server/jsdom.js +1 -3
  129. package/lib/server/node-fetch.js +2 -4
  130. package/lib/server/polyfill/polyfillBrowser.js +163 -9
  131. package/lib/server/polyfill/polyfillBrowser.test.js +164 -0
  132. package/lib/server/polyfill/polyfillCrypto.js +157 -9
  133. package/lib/server/polyfill/polyfillFetch.js +13 -13
  134. package/lib/server/polyfill/polyfillJsDom.js +264 -58
  135. package/lib/server/polyfill/polyfillWebSocket.js +11 -11
  136. package/lib/server/ws.js +1 -3
  137. package/lib/strings/bytes.test.js +327 -0
  138. package/lib/strings/camelCase.js +23 -14
  139. package/lib/strings/formatBytes.js +29 -20
  140. package/lib/strings/parseBytes.js +54 -0
  141. package/lib/strings/renderTemplate.js +17 -12
  142. package/lib/strings/renderTemplate.test.js +104 -0
  143. package/lib/typedoc.js +2 -4
  144. package/lib/types.d.js +0 -2
  145. package/lib/validations/asserts.js +0 -2
  146. package/lib/validations/isUUID.js +0 -2
  147. package/lib/validations/isUUID.test.js +87 -0
  148. package/lib/validations/parseTimestamp.js +12 -7
  149. package/lib/validations/parseTimestamp.test.js +6 -0
  150. package/lib/web/getGlobalThis.js +3 -4
  151. package/lib/web/getRandomValues.js +28 -20
  152. package/lib/web/randomUUID.js +7 -8
  153. package/lib/web/requestIdleCallback.js +13 -9
  154. package/lib/web/structuredClone.js +35 -28
  155. package/lib/web/structuredClone.test.js +81 -0
  156. package/package.json +9 -14
  157. package/src/arrays/MaybeArray.ts +22 -22
  158. package/src/arrays/arrayFromAsync.ts +3 -3
  159. package/src/asyncs/AsyncInterval.ts +8 -8
  160. package/src/asyncs/Promises.ts +51 -51
  161. package/src/asyncs/createAsyncIterator.ts +33 -33
  162. package/src/asyncs/createLazyPromise.test.ts +73 -73
  163. package/src/asyncs/createLazyPromise.ts +68 -73
  164. package/src/asyncs/firstOfAsyncIterator.ts +5 -5
  165. package/src/asyncs/generatorOfStream.ts +12 -12
  166. package/src/asyncs/isIterator.ts +1 -1
  167. package/src/asyncs/isThenable.ts +2 -2
  168. package/src/asyncs/nextOfAsyncIterator.ts +20 -20
  169. package/src/asyncs/promiseOfCallback.ts +13 -13
  170. package/src/asyncs/timeout.ts +23 -23
  171. package/src/browsers/copy.ts +48 -48
  172. package/src/browsers/download.ts +38 -36
  173. package/src/browsers/getFileFromDataTransfer.ts +35 -35
  174. package/src/browsers/loaders.ts +49 -49
  175. package/src/crypto/base.ts +3 -3
  176. package/src/crypto/getNodeCrypto.ts +2 -2
  177. package/src/crypto/hashing.test.ts +33 -47
  178. package/src/crypto/hashing.ts +67 -67
  179. package/src/crypto/md5.bench.ts +20 -24
  180. package/src/crypto/md5.test.ts +3 -3
  181. package/src/crypto/pem/pem.test.ts +26 -42
  182. package/src/crypto/pem/pem.ts +65 -65
  183. package/src/crypto/ulid.test.ts +31 -31
  184. package/src/crypto/ulid.ts +116 -116
  185. package/src/emitter/types.ts +6 -6
  186. package/src/errors/DetailError.ts +151 -0
  187. package/src/errors/Errors.test.ts +15 -15
  188. package/src/errors/Errors.ts +97 -238
  189. package/src/fetch/HttpStatus.ts +77 -77
  190. package/src/fetch/createFetchWith.ts +25 -25
  191. package/src/fetch/createFetchWithLogging.ts +12 -15
  192. package/src/fetch/createFetchWithRetry.ts +79 -79
  193. package/src/fetch/dumpRequest.test.ts +176 -0
  194. package/src/fetch/dumpRequest.ts +149 -52
  195. package/src/fetch/dumpResponse.test.ts +160 -0
  196. package/src/fetch/dumpResponse.ts +48 -20
  197. package/src/fetch/http.types.ts +35 -35
  198. package/src/fetch/isTextContentType.ts +12 -0
  199. package/src/fetch/resolveRequest.ts +1 -0
  200. package/src/fetch/types.ts +2 -2
  201. package/src/i18n/createTranslate.test.ts +90 -113
  202. package/src/i18n/createTranslate.ts +55 -55
  203. package/src/index.ts +26 -26
  204. package/src/io/AbstractEncoding.ts +12 -12
  205. package/src/io/ArrayBuffer.test-d.ts +1 -1
  206. package/src/io/ArrayBuffers.base64.test.ts +52 -52
  207. package/src/io/ArrayBuffers.test.ts +14 -14
  208. package/src/io/ArrayBuffers.ts +645 -415
  209. package/src/io/Buffer.test.ts +17 -17
  210. package/src/io/Buffer.ts +17 -17
  211. package/src/io/ByteBuffer.test.ts +37 -37
  212. package/src/io/ByteBuffer.ts +574 -566
  213. package/src/io/base64.ts +46 -44
  214. package/src/io/dump.ts +22 -22
  215. package/src/io/isBuffer.test.ts +2 -2
  216. package/src/io/isBuffer.ts +1 -1
  217. package/src/io/isTransferable.test.ts +4 -4
  218. package/src/io/isTransferable.ts +29 -29
  219. package/src/io/parseDataUri.test.ts +22 -27
  220. package/src/io/parseDataUri.ts +57 -57
  221. package/src/io/types.ts +13 -0
  222. package/src/langs/AsyncCloser.ts +34 -34
  223. package/src/langs/Closer.ts +28 -28
  224. package/src/langs/MaybeFunction.ts +5 -5
  225. package/src/langs/classOf.ts +1 -1
  226. package/src/langs/deepEqual.test.ts +1 -12
  227. package/src/langs/deepEqual.ts +82 -82
  228. package/src/langs/deepFreeze.ts +11 -11
  229. package/src/langs/getGlobalStates.ts +16 -16
  230. package/src/langs/getObjectId.ts +10 -13
  231. package/src/langs/ifPresent.ts +2 -2
  232. package/src/langs/isClass.ts +1 -1
  233. package/src/langs/isDefined.ts +1 -1
  234. package/src/langs/isEmptyObject.ts +1 -1
  235. package/src/langs/isFunction.ts +1 -1
  236. package/src/langs/isNil.ts +3 -0
  237. package/src/langs/isPlainObject.ts +4 -4
  238. package/src/langs/langs.test.ts +18 -18
  239. package/src/langs/memoize.ts +21 -21
  240. package/src/langs/mixin.test.ts +22 -26
  241. package/src/langs/mixin.ts +6 -9
  242. package/src/langs/parseBoolean.ts +30 -26
  243. package/src/langs/parseDate.ts +13 -0
  244. package/src/langs/shallowClone.ts +11 -11
  245. package/src/langs/shallowEqual.ts +19 -19
  246. package/src/libs/ms.test.ts +274 -274
  247. package/src/libs/ms.ts +137 -137
  248. package/src/logger/const.ts +18 -0
  249. package/src/logger/index.ts +2 -0
  250. package/src/logger/types.ts +10 -0
  251. package/src/maths/clamp.test.ts +18 -18
  252. package/src/maths/clamp.ts +17 -17
  253. package/src/maths/createRandom.test.ts +12 -0
  254. package/src/maths/random.ts +50 -14
  255. package/src/modules/isModule.ts +4 -4
  256. package/src/modules/parseModuleId.test.ts +61 -68
  257. package/src/modules/parseModuleId.ts +29 -43
  258. package/src/objects/computeIfAbsent.ts +10 -10
  259. package/src/objects/get.test-d.ts +33 -51
  260. package/src/objects/get.ts +31 -31
  261. package/src/objects/merge/isMergeableObject.ts +5 -5
  262. package/src/objects/merge/merge.test.ts +658 -880
  263. package/src/objects/merge/merge.ts +84 -84
  264. package/src/objects/parseObjectPath.test.ts +13 -13
  265. package/src/objects/parseObjectPath.ts +25 -25
  266. package/src/objects/set.test.ts +271 -366
  267. package/src/objects/set.ts +36 -36
  268. package/src/schema/typebox/typebox.ts +20 -26
  269. package/src/scripts/getGenerateContext.ts +79 -79
  270. package/src/server/crypto/md5.ts +1 -1
  271. package/src/server/fetch/createFetchWithProxyByNodeFetch.ts +28 -31
  272. package/src/server/fetch/createFetchWithProxyByUndici.ts +63 -69
  273. package/src/server/getPackageDir.ts +7 -7
  274. package/src/server/polyfill/polyfillBrowser.test.ts +10 -10
  275. package/src/server/polyfill/polyfillBrowser.ts +3 -3
  276. package/src/server/polyfill/polyfillCrypto.ts +6 -6
  277. package/src/server/polyfill/polyfillFetch.ts +11 -21
  278. package/src/server/polyfill/polyfillJsDom.ts +59 -71
  279. package/src/server/polyfill/polyfillWebSocket.ts +14 -14
  280. package/src/strings/bytes.test.ts +69 -0
  281. package/src/strings/camelCase.ts +58 -63
  282. package/src/strings/formatBytes.ts +50 -29
  283. package/src/strings/parseBytes.ts +66 -0
  284. package/src/strings/renderTemplate.test.ts +10 -17
  285. package/src/strings/renderTemplate.ts +19 -22
  286. package/src/types.d.ts +9 -9
  287. package/src/validations/asserts.ts +8 -8
  288. package/src/validations/isUUID.test.ts +8 -8
  289. package/src/validations/isUUID.ts +1 -1
  290. package/src/validations/parseTimestamp.test.ts +2 -2
  291. package/src/validations/parseTimestamp.ts +21 -21
  292. package/src/web/getGlobalThis.ts +6 -6
  293. package/src/web/getRandomValues.ts +29 -29
  294. package/src/web/randomUUID.ts +5 -5
  295. package/src/web/requestIdleCallback.ts +7 -10
  296. package/src/web/structuredClone.test.ts +8 -8
  297. package/src/web/structuredClone.ts +62 -62
  298. package/tsconfig.json +26 -34
  299. package/lib/arrays/MaybeArray.js.map +0 -1
  300. package/lib/arrays/arrayFromAsync.js.map +0 -1
  301. package/lib/asyncs/AsyncInterval.js.map +0 -1
  302. package/lib/asyncs/MaybePromise.js.map +0 -1
  303. package/lib/asyncs/Promises.js.map +0 -1
  304. package/lib/asyncs/createAsyncIterator.js.map +0 -1
  305. package/lib/asyncs/createLazyPromise.js.map +0 -1
  306. package/lib/asyncs/firstOfAsyncIterator.js.map +0 -1
  307. package/lib/asyncs/generatorOfStream.js.map +0 -1
  308. package/lib/asyncs/isIterator.js.map +0 -1
  309. package/lib/asyncs/isPromise.js.map +0 -1
  310. package/lib/asyncs/isThenable.js.map +0 -1
  311. package/lib/asyncs/nextOfAsyncIterator.js.map +0 -1
  312. package/lib/asyncs/promiseOfCallback.js.map +0 -1
  313. package/lib/asyncs/timeout.js.map +0 -1
  314. package/lib/browsers/copy.js.map +0 -1
  315. package/lib/browsers/download.js.map +0 -1
  316. package/lib/browsers/getFileFromDataTransfer.js.map +0 -1
  317. package/lib/browsers/loaders.js.map +0 -1
  318. package/lib/cn/division/DivisionCode.js +0 -215
  319. package/lib/cn/division/DivisionCode.js.map +0 -1
  320. package/lib/cn/division/binarySearch.js +0 -27
  321. package/lib/cn/division/binarySearch.js.map +0 -1
  322. package/lib/cn/formatChineseAmount.js +0 -77
  323. package/lib/cn/formatChineseAmount.js.map +0 -1
  324. package/lib/cn/id/Mod11.js +0 -43
  325. package/lib/cn/id/Mod11.js.map +0 -1
  326. package/lib/cn/id/ResidentIdNumber.js +0 -98
  327. package/lib/cn/id/ResidentIdNumber.js.map +0 -1
  328. package/lib/cn/id/types.js +0 -8
  329. package/lib/cn/id/types.js.map +0 -1
  330. package/lib/cn/index.js +0 -14
  331. package/lib/cn/index.js.map +0 -1
  332. package/lib/cn/parseChineseNumber.js +0 -94
  333. package/lib/cn/parseChineseNumber.js.map +0 -1
  334. package/lib/cn/pinyin/cartesianProduct.js +0 -22
  335. package/lib/cn/pinyin/cartesianProduct.js.map +0 -1
  336. package/lib/cn/pinyin/data.json +0 -413
  337. package/lib/cn/pinyin/loader.js +0 -15
  338. package/lib/cn/pinyin/loader.js.map +0 -1
  339. package/lib/cn/pinyin/preload.js +0 -4
  340. package/lib/cn/pinyin/preload.js.map +0 -1
  341. package/lib/cn/pinyin/toPinyinPure.js +0 -32
  342. package/lib/cn/pinyin/toPinyinPure.js.map +0 -1
  343. package/lib/cn/pinyin/transform.js +0 -14
  344. package/lib/cn/pinyin/transform.js.map +0 -1
  345. package/lib/cn/types.js +0 -3
  346. package/lib/cn/types.js.map +0 -1
  347. package/lib/cn/uscc/Mod31.js +0 -49
  348. package/lib/cn/uscc/Mod31.js.map +0 -1
  349. package/lib/cn/uscc/USCC.js +0 -94
  350. package/lib/cn/uscc/USCC.js.map +0 -1
  351. package/lib/cn/uscc/isUSCC.js +0 -8
  352. package/lib/cn/uscc/isUSCC.js.map +0 -1
  353. package/lib/crypto/base.js.map +0 -1
  354. package/lib/crypto/getNodeCrypto.js.map +0 -1
  355. package/lib/crypto/hashing.js.map +0 -1
  356. package/lib/crypto/md5.bench.js.map +0 -1
  357. package/lib/crypto/md5.d.js.map +0 -1
  358. package/lib/crypto/md5.js.map +0 -1
  359. package/lib/crypto/pem/pem.js.map +0 -1
  360. package/lib/crypto/randomUUIDv7.js.map +0 -1
  361. package/lib/crypto/ulid.js.map +0 -1
  362. package/lib/emitter/types.js.map +0 -1
  363. package/lib/errors/Errors.js.map +0 -1
  364. package/lib/fetch/HttpStatus.js.map +0 -1
  365. package/lib/fetch/createFetchWith.js.map +0 -1
  366. package/lib/fetch/createFetchWithLogging.js.map +0 -1
  367. package/lib/fetch/createFetchWithRetry.js.map +0 -1
  368. package/lib/fetch/dumpRequest.js.map +0 -1
  369. package/lib/fetch/dumpResponse.js.map +0 -1
  370. package/lib/fetch/http.types.js.map +0 -1
  371. package/lib/fetch/index.js.map +0 -1
  372. package/lib/fetch/types.js.map +0 -1
  373. package/lib/i18n/createTranslate.js.map +0 -1
  374. package/lib/index.js.map +0 -1
  375. package/lib/io/AbstractEncoding.js.map +0 -1
  376. package/lib/io/ArrayBuffer.test-d.js.map +0 -1
  377. package/lib/io/ArrayBuffers.js.map +0 -1
  378. package/lib/io/Buffer.js.map +0 -1
  379. package/lib/io/ByteBuffer.js.map +0 -1
  380. package/lib/io/base64.js.map +0 -1
  381. package/lib/io/dump.js.map +0 -1
  382. package/lib/io/isBuffer.js.map +0 -1
  383. package/lib/io/isTransferable.js.map +0 -1
  384. package/lib/io/parseDataUri.js.map +0 -1
  385. package/lib/langs/AsyncCloser.js.map +0 -1
  386. package/lib/langs/Closer.js.map +0 -1
  387. package/lib/langs/MaybeFunction.js.map +0 -1
  388. package/lib/langs/classOf.js.map +0 -1
  389. package/lib/langs/deepEqual.js.map +0 -1
  390. package/lib/langs/deepFreeze.js.map +0 -1
  391. package/lib/langs/getGlobalStates.js.map +0 -1
  392. package/lib/langs/getObjectId.js.map +0 -1
  393. package/lib/langs/ifPresent.js.map +0 -1
  394. package/lib/langs/isClass.js.map +0 -1
  395. package/lib/langs/isDefined.js.map +0 -1
  396. package/lib/langs/isEmptyObject.js.map +0 -1
  397. package/lib/langs/isFunction.js.map +0 -1
  398. package/lib/langs/isNullish.js +0 -5
  399. package/lib/langs/isNullish.js.map +0 -1
  400. package/lib/langs/isPlainObject.js.map +0 -1
  401. package/lib/langs/memoize.js.map +0 -1
  402. package/lib/langs/mixin.js.map +0 -1
  403. package/lib/langs/parseBoolean.js.map +0 -1
  404. package/lib/langs/shallowClone.js.map +0 -1
  405. package/lib/langs/shallowEqual.js.map +0 -1
  406. package/lib/libs/ms.js.map +0 -1
  407. package/lib/logging/Logger.js +0 -5
  408. package/lib/logging/Logger.js.map +0 -1
  409. package/lib/logging/createChildLogger.js +0 -16
  410. package/lib/logging/createChildLogger.js.map +0 -1
  411. package/lib/logging/createLogger.js +0 -63
  412. package/lib/logging/createLogger.js.map +0 -1
  413. package/lib/logging/createNoopLogger.js +0 -13
  414. package/lib/logging/createNoopLogger.js.map +0 -1
  415. package/lib/logging/slog.js +0 -143
  416. package/lib/logging/slog.js.map +0 -1
  417. package/lib/maths/clamp.js.map +0 -1
  418. package/lib/maths/random.js.map +0 -1
  419. package/lib/mitt/index.js +0 -77
  420. package/lib/mitt/index.js.map +0 -1
  421. package/lib/modules/isModule.js.map +0 -1
  422. package/lib/modules/parseModuleId.js.map +0 -1
  423. package/lib/objects/computeIfAbsent.js.map +0 -1
  424. package/lib/objects/get.js.map +0 -1
  425. package/lib/objects/get.test-d.js.map +0 -1
  426. package/lib/objects/merge/index.js.map +0 -1
  427. package/lib/objects/merge/isMergeableObject.js.map +0 -1
  428. package/lib/objects/merge/merge.js.map +0 -1
  429. package/lib/objects/parseObjectPath.js.map +0 -1
  430. package/lib/objects/set.js.map +0 -1
  431. package/lib/schema/typebox/index.js.map +0 -1
  432. package/lib/schema/typebox/typebox.js.map +0 -1
  433. package/lib/scripts/getGenerateContext.js.map +0 -1
  434. package/lib/server/crypto/md5.js.map +0 -1
  435. package/lib/server/fetch/createFetchWithProxy.js.map +0 -1
  436. package/lib/server/fetch/createFetchWithProxyByNodeFetch.js.map +0 -1
  437. package/lib/server/fetch/createFetchWithProxyByUndici.js.map +0 -1
  438. package/lib/server/getPackageDir.js.map +0 -1
  439. package/lib/server/index.js.map +0 -1
  440. package/lib/server/jsdom.js.map +0 -1
  441. package/lib/server/node-fetch.js.map +0 -1
  442. package/lib/server/polyfill/polyfillBrowser.js.map +0 -1
  443. package/lib/server/polyfill/polyfillCrypto.js.map +0 -1
  444. package/lib/server/polyfill/polyfillFetch.js.map +0 -1
  445. package/lib/server/polyfill/polyfillJsDom.js.map +0 -1
  446. package/lib/server/polyfill/polyfillWebSocket.js.map +0 -1
  447. package/lib/server/ws.js.map +0 -1
  448. package/lib/strings/camelCase.js.map +0 -1
  449. package/lib/strings/formatBytes.js.map +0 -1
  450. package/lib/strings/renderTemplate.js.map +0 -1
  451. package/lib/typedoc.js.map +0 -1
  452. package/lib/types.d.js.map +0 -1
  453. package/lib/validations/asserts.js.map +0 -1
  454. package/lib/validations/isUUID.js.map +0 -1
  455. package/lib/validations/parseTimestamp.js.map +0 -1
  456. package/lib/web/getGlobalThis.js.map +0 -1
  457. package/lib/web/getRandomValues.js.map +0 -1
  458. package/lib/web/randomUUID.js.map +0 -1
  459. package/lib/web/requestIdleCallback.js.map +0 -1
  460. package/lib/web/structuredClone.js.map +0 -1
  461. package/src/cn/README.md +0 -3
  462. package/src/cn/division/DivisionCode.ts +0 -173
  463. package/src/cn/division/binarySearch.test.ts +0 -64
  464. package/src/cn/division/binarySearch.ts +0 -25
  465. package/src/cn/division/division.test.ts +0 -22
  466. package/src/cn/formatChineseAmount.ts +0 -61
  467. package/src/cn/id/Mod11.ts +0 -26
  468. package/src/cn/id/ResidentIdNumber.ts +0 -126
  469. package/src/cn/id/id.test.ts +0 -20
  470. package/src/cn/id/types.ts +0 -26
  471. package/src/cn/index.ts +0 -17
  472. package/src/cn/parseChineseNumber.test.ts +0 -159
  473. package/src/cn/parseChineseNumber.ts +0 -97
  474. package/src/cn/pinyin/cartesianProduct.test.ts +0 -64
  475. package/src/cn/pinyin/cartesianProduct.ts +0 -24
  476. package/src/cn/pinyin/data.json +0 -413
  477. package/src/cn/pinyin/loader.ts +0 -12
  478. package/src/cn/pinyin/preload.ts +0 -3
  479. package/src/cn/pinyin/toPinyin.test.ts +0 -12
  480. package/src/cn/pinyin/toPinyinPure.ts +0 -43
  481. package/src/cn/pinyin/transform.ts +0 -12
  482. package/src/cn/scripts/gen.test.ts +0 -131
  483. package/src/cn/types.ts +0 -11
  484. package/src/cn/uscc/Mod31.ts +0 -38
  485. package/src/cn/uscc/USCC.ts +0 -94
  486. package/src/cn/uscc/isUSCC.ts +0 -8
  487. package/src/cn/uscc/uscc.test.ts +0 -16
  488. package/src/langs/isNullish.ts +0 -3
  489. package/src/logging/Logger.ts +0 -25
  490. package/src/logging/createChildLogger.ts +0 -16
  491. package/src/logging/createLogger.ts +0 -50
  492. package/src/logging/createNoopLogger.ts +0 -13
  493. package/src/logging/logger.test.ts +0 -36
  494. package/src/logging/slog.test.ts +0 -8
  495. package/src/logging/slog.ts +0 -221
  496. package/src/mitt/README.md +0 -1
  497. package/src/mitt/index.ts +0 -114
@@ -1,18 +1,39 @@
1
- import { classOf } from '../langs/classOf.js';
2
- import { getGlobalThis } from '../web/getGlobalThis.js';
3
- import { decodeBase64ToUint8Array, encodeArrayBufferToBase64 } from './base64.js';
4
- import { isBuffer } from './isBuffer.js';
5
- export var ArrayBuffers;
6
- (function(ArrayBuffers) {
7
- let nativeBufferAllowed = true;
8
- let isBufferAvailable;
1
+ function _instanceof(left, right) {
2
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
3
+ return !!right[Symbol.hasInstance](left);
4
+ }
5
+ else {
6
+ return left instanceof right;
7
+ }
8
+ }
9
+ import { classOf } from "../langs/classOf.js";
10
+ import { getGlobalThis } from "../web/getGlobalThis.js";
11
+ import { decodeBase64ToUint8Array, encodeArrayBufferToBase64 } from "./base64.js";
12
+ import { isBuffer } from "./isBuffer.js";
13
+ (function (ArrayBuffers) {
14
+ var nativeBufferAllowed = true;
15
+ var isBufferAvailable;
16
+ var textEncoder;
17
+ var textDecoder;
18
+ function decode(v) {
19
+ // need icu full data
20
+ // if (encoding) return new TextDecoder(encoding).decode(v);
21
+ return (textDecoder || (textDecoder = new TextDecoder())).decode(v);
22
+ }
23
+ function encode(v) {
24
+ if (typeof v === "string") {
25
+ return (textEncoder || (textEncoder = new TextEncoder())).encode(v);
26
+ }
27
+ return v;
28
+ }
9
29
  function isNativeBufferAvailable() {
30
+ var _getGlobalThis_Buffer_isPollyfill, _getGlobalThis_Buffer;
10
31
  // eslint-disable-next-line no-return-assign
11
- return isBufferAvailable ??= !getGlobalThis().Buffer?.isPollyfill?.();
32
+ return isBufferAvailable !== null && isBufferAvailable !== void 0 ? isBufferAvailable : isBufferAvailable = !((_getGlobalThis_Buffer = getGlobalThis().Buffer) === null || _getGlobalThis_Buffer === void 0 ? void 0 : (_getGlobalThis_Buffer_isPollyfill = _getGlobalThis_Buffer.isPollyfill) === null || _getGlobalThis_Buffer_isPollyfill === void 0 ? void 0 : _getGlobalThis_Buffer_isPollyfill.call(_getGlobalThis_Buffer));
12
33
  }
13
34
  /**
14
- * isNativeBufferAvailable check if the native {@link Buffer} is available
15
- */ ArrayBuffers.isNativeBufferAvailable = isNativeBufferAvailable;
35
+ * isNativeBufferAvailable check if the native {@link Buffer} is available
36
+ */ ArrayBuffers.isNativeBufferAvailable = isNativeBufferAvailable;
16
37
  function isNativeBufferAllowed() {
17
38
  return Boolean(nativeBufferAllowed && isBufferAvailable);
18
39
  }
@@ -22,11 +43,9 @@ export var ArrayBuffers;
22
43
  }
23
44
  ArrayBuffers.setNativeBufferAllowed = setNativeBufferAllowed;
24
45
  function isArrayBuffer(v) {
25
- return v instanceof ArrayBuffer;
46
+ return _instanceof(v, ArrayBuffer);
26
47
  }
27
- /**
28
- * isArrayBuffer check if the given value is an {@link ArrayBuffer}
29
- */ ArrayBuffers.isArrayBuffer = isArrayBuffer;
48
+ ArrayBuffers.isArrayBuffer = isArrayBuffer;
30
49
  function slice(o, start, end) {
31
50
  // NodeJS Buffer slice is not the same as UInt8Array slice
32
51
  // https://nodejs.org/api/buffer.html#bufslicestart-end
@@ -36,12 +55,12 @@ export var ArrayBuffers;
36
55
  return o.slice(start, end);
37
56
  }
38
57
  /**
39
- * slice the given view with the given offset and length, will handle the {@link Buffer} as well
40
- *
41
- * @see {@link https://nodejs.org/api/buffer.html#bufslicestart-end Buffer.slice}
42
- */ ArrayBuffers.slice = slice;
58
+ * slice the given view with the given offset and length, will handle the {@link Buffer} as well
59
+ *
60
+ * @see {@link https://nodejs.org/api/buffer.html#bufslicestart-end Buffer.slice}
61
+ */ ArrayBuffers.slice = slice;
43
62
  function asView(TypedArray, v, byteOffset, byteLength) {
44
- if (v instanceof TypedArray && (byteOffset ?? 0) === 0 && byteLength === undefined) {
63
+ if (_instanceof(v, TypedArray) && (byteOffset !== null && byteOffset !== void 0 ? byteOffset : 0) === 0 && byteLength === undefined) {
45
64
  return v;
46
65
  }
47
66
  if (ArrayBuffer.isView(v) || isBuffer(v)) {
@@ -49,95 +68,86 @@ export var ArrayBuffers;
49
68
  // new Buffer() is deprecated
50
69
  return Buffer.from(v.buffer, byteOffset, byteLength);
51
70
  }
52
- return new TypedArray(v.buffer, v.byteOffset + (byteOffset ?? 0), byteLength ?? v.byteLength);
71
+ return new TypedArray(v.buffer, v.byteOffset + (byteOffset !== null && byteOffset !== void 0 ? byteOffset : 0), byteLength !== null && byteLength !== void 0 ? byteLength : v.byteLength);
53
72
  }
54
73
  return new TypedArray(v, byteOffset, byteLength);
55
74
  }
56
75
  /**
57
- * asView convert the given value to given {@link TypedArray} view
58
- *
59
- * TypedArray can be {@link Buffer}, will avoid copy
60
- */ ArrayBuffers.asView = asView;
61
- function toString(source, encoding = 'utf8') {
62
- // 'ascii' 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'
63
- if (typeof source === 'string') {
64
- switch(encoding){
65
- case 'base64':
76
+ * asView convert the given value to given {@link TypedArray} view
77
+ *
78
+ * TypedArray can be {@link Buffer}, will avoid copy
79
+ */ ArrayBuffers.asView = asView;
80
+ function toString(source) {
81
+ var encoding = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "utf8";
82
+ if (typeof source === "string") {
83
+ switch (encoding) {
84
+ case "base64":
66
85
  return btoa(source);
67
- case 'utf-8':
68
- case 'utf8':
86
+ case "utf-8":
87
+ case "utf8":
69
88
  return source;
70
89
  default:
71
- throw new Error(`[ArrayBuffers.toString] Unsupported encoding for string: ${encoding}`);
90
+ throw new Error("[ArrayBuffers.toString] Unsupported encoding for string: ".concat(encoding));
72
91
  }
73
92
  }
74
- let u8 = asView(Uint8Array, source);
93
+ var u8 = asView(Uint8Array, source);
75
94
  if (isNativeBufferAllowed()) {
76
95
  return Buffer.from(u8).toString(encoding);
77
96
  }
78
- // reference
79
- // https://github.com/feross/buffer/blob/master/index.js
80
- switch(encoding){
81
- case 'hex':
97
+ // reference: https://github.com/feross/buffer/blob/master/index.js
98
+ switch (encoding) {
99
+ case "hex":
82
100
  {
83
- return [
84
- ...u8
85
- ].map((b)=>hexLookupTable[b]).join('');
101
+ return toHexString(u8);
86
102
  }
87
- case 'base64':
103
+ case "base64":
88
104
  {
89
- return encodeArrayBufferToBase64(u8);
105
+ return toBase64(u8);
90
106
  }
91
- case 'utf8':
92
- // falls through
93
- case 'utf-8':
94
- return new TextDecoder().decode(source);
95
- case 'ascii':
107
+ case "utf8":
108
+ case "utf-8":
109
+ return decode(source);
110
+ case "ascii":
96
111
  {
97
- return String.fromCharCode(...u8.map((v)=>v & 0x7f));
112
+ return toAsciiString(u8);
98
113
  }
99
- case 'latin1':
100
- // falls through
101
- case 'binary':
114
+ case "latin1":
115
+ case "binary":
102
116
  {
103
- return String.fromCharCode(...u8);
117
+ return toLatin1String(u8);
104
118
  }
105
- case 'ucs2':
106
- // falls through
107
- case 'ucs-2':
108
- // case 'utf-16le':
109
- // falls through
110
- case 'utf16le':
119
+ case "ucs2":
120
+ case "ucs-2":
121
+ case "utf16le":
111
122
  {
112
- let res = '';
113
- // If length is odd, the last 8 bits must be ignored (same as node.js)
114
- for(let i = 0; i < u8.length - 1; i += 2){
115
- res += String.fromCharCode(u8[i] + u8[i + 1] * 256);
116
- }
117
- return res;
123
+ return toUtf16LeString(u8);
118
124
  }
119
125
  default:
120
- throw new Error(`[ArrayBuffers.toString] Unknown encoding: ${encoding}`);
126
+ throw new Error("[ArrayBuffers.toString] Unknown encoding: ".concat(encoding));
121
127
  }
122
128
  }
123
129
  /**
124
- * toString convert the given {@link BufferSource} to string
125
- */ ArrayBuffers.toString = toString;
126
- function normalizeEncoding(encoding) {
127
- switch(encoding?.toLowerCase()){
128
- case 'utf-8':
129
- case 'utf8':
130
- return 'utf8';
131
- case 'utf-16le':
132
- case 'ucs2':
133
- case 'ucs-2':
134
- return 'utf16le';
135
- case 'hex':
136
- case 'ascii':
137
- case 'latin1':
138
- case 'binary':
139
- case 'base64':
140
- case 'utf16le':
130
+ * toString convert the given {@link BufferSource} to string
131
+ */ ArrayBuffers.toString = toString;
132
+ /**
133
+ * Normalize encoding string to standard form
134
+ * @param encoding - The encoding string to normalize
135
+ * @returns Normalized encoding or undefined if invalid
136
+ */ function normalizeEncoding(encoding) {
137
+ switch (encoding === null || encoding === void 0 ? void 0 : encoding.toLowerCase()) {
138
+ case "utf-8":
139
+ case "utf8":
140
+ return "utf8";
141
+ case "utf-16le":
142
+ case "ucs2":
143
+ case "ucs-2":
144
+ return "utf16le";
145
+ case "hex":
146
+ case "ascii":
147
+ case "latin1":
148
+ case "binary":
149
+ case "base64":
150
+ case "utf16le":
141
151
  return encoding;
142
152
  default:
143
153
  return undefined;
@@ -147,13 +157,16 @@ export var ArrayBuffers;
147
157
  return normalizeEncoding(v) !== undefined;
148
158
  }
149
159
  /**
150
- * Returns true if encoding is the name of a supported character encoding, or false otherwise.
151
- */ ArrayBuffers.isEncoding = isEncoding;
160
+ * Check if the given string is a supported character encoding
161
+ * @param v - The string to check
162
+ * @returns True if the encoding is supported, false otherwise
163
+ */ ArrayBuffers.isEncoding = isEncoding;
152
164
  function toJSON(v, reviver) {
153
165
  return JSON.parse(toString(v), reviver);
154
166
  }
155
167
  ArrayBuffers.toJSON = toJSON;
156
- function from(src, encoding = 'utf8', view) {
168
+ function from(src) {
169
+ var encoding = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "utf8", view = arguments.length > 2 ? arguments[2] : void 0;
157
170
  if (!src) {
158
171
  return new (view || ArrayBuffer)(0);
159
172
  }
@@ -161,139 +174,179 @@ export var ArrayBuffers;
161
174
  return view ? asView(view, src) : src;
162
175
  }
163
176
  // Array<number> | Iterable<number>
164
- if (typeof src !== 'string' && isIterable(src) || Array.isArray(src)) {
177
+ if (typeof src !== "string" && isIterable(src) || Array.isArray(src)) {
165
178
  return (view || Uint8Array).from(src);
166
179
  }
167
180
  if (view) {
168
181
  return asView(view, from(src, encoding));
169
182
  }
170
- if (typeof src === 'string') {
171
- // is string
183
+ if (typeof src === "string") {
172
184
  if (isNativeBufferAllowed()) {
173
185
  return Buffer.from(src, encoding);
174
186
  }
175
- switch(encoding){
176
- case 'utf-8':
177
- // falls through
178
- case 'utf8':
179
- return new TextEncoder().encode(src).buffer;
180
- case 'base64':
181
- // replaceAll need higher version of nodejs
182
- // return decodeBase64ToArrayBuffer(v.replace(/[^0-9a-zA-Z=+/_]/g, ''));
187
+ switch (encoding) {
188
+ case "utf-8":
189
+ case "utf8":
190
+ return encode(src).buffer;
191
+ case "base64":
183
192
  return fromBase64(src);
184
- case 'hex':
185
- // return new Uint8Array(v.match(/.{1,2}/g)!.map((byte) => parseInt(byte, 16))).buffer;
193
+ case "hex":
186
194
  return fromHex(src);
187
195
  default:
188
- throw new Error(`ArrayBuffers.from unsupported encoding: ${encoding}`);
196
+ throw new Error("ArrayBuffers.from unsupported encoding: ".concat(encoding));
189
197
  }
190
198
  }
191
- const type = classOf(src);
192
- throw new TypeError(`ArrayBuffers.from unsupported type ${type}`);
199
+ var type = classOf(src);
200
+ throw new TypeError("ArrayBuffers.from unsupported type ".concat(type));
193
201
  }
194
202
  ArrayBuffers.from = from;
195
- function concat(buffers, result, offset = 0) {
196
- // https://stackoverflow.com/questions/10786128/appending-arraybuffers
197
- const length = buffers.reduce((a, b)=>a + b.byteLength, 0);
198
- const r = result ? new Uint8Array(result) : new Uint8Array(length);
199
- for (const buffer of buffers){
200
- if (!buffer?.byteLength) continue;
201
- let n;
202
- if (buffer instanceof ArrayBuffer) {
203
- n = new Uint8Array(buffer);
204
- } else if (ArrayBuffer.isView(buffer)) {
205
- n = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
206
- } else {
207
- throw new Error(`ArrayBuffers.concat unsupported type ${classOf(buffer)}`);
203
+ function concat(buffers, result) {
204
+ var offset = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
205
+ if (!Array.isArray(buffers) || buffers.length === 0) {
206
+ return new ArrayBuffer(0);
207
+ }
208
+ var length = buffers.reduce(function (a, b) {
209
+ var _b_byteLength;
210
+ return a + ((_b_byteLength = b === null || b === void 0 ? void 0 : b.byteLength) !== null && _b_byteLength !== void 0 ? _b_byteLength : 0);
211
+ }, 0);
212
+ var r = result ? new Uint8Array(result) : new Uint8Array(length);
213
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
214
+ try {
215
+ for (var _iterator = buffers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
216
+ var buffer = _step.value;
217
+ if (!(buffer === null || buffer === void 0 ? void 0 : buffer.byteLength))
218
+ continue;
219
+ var n = void 0;
220
+ if (_instanceof(buffer, ArrayBuffer)) {
221
+ n = new Uint8Array(buffer);
222
+ }
223
+ else if (ArrayBuffer.isView(buffer)) {
224
+ n = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
225
+ }
226
+ else {
227
+ throw new Error("ArrayBuffers.concat unsupported type ".concat(classOf(buffer)));
228
+ }
229
+ r.set(n, offset);
230
+ offset += buffer.byteLength;
231
+ }
232
+ }
233
+ catch (err) {
234
+ _didIteratorError = true;
235
+ _iteratorError = err;
236
+ }
237
+ finally {
238
+ try {
239
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
240
+ _iterator.return();
241
+ }
242
+ }
243
+ finally {
244
+ if (_didIteratorError) {
245
+ throw _iteratorError;
246
+ }
208
247
  }
209
- r.set(n, offset);
210
- offset += buffer.byteLength;
211
248
  }
212
249
  return r.buffer;
213
250
  }
214
251
  /**
215
- * concat the given {@link BufferSource} to a new {@link ArrayBuffer}
216
- */ ArrayBuffers.concat = concat;
217
- function fromBase64(v) {
218
- if ('fromBase64' in Uint8Array) {
252
+ * concat the given {@link BufferSource} to a new {@link ArrayBuffer}
253
+ */ ArrayBuffers.concat = concat;
254
+ function fromBase64(v, encoding) {
255
+ if (encoding) {
256
+ return toString(fromBase64(v), encoding);
257
+ }
258
+ if ("fromBase64" in Uint8Array && typeof Uint8Array.fromBase64 === "function") {
219
259
  return Uint8Array.fromBase64(v);
220
260
  }
221
261
  if (isNativeBufferAllowed()) {
222
- return Buffer.from(v, 'base64');
262
+ return Buffer.from(v, "base64");
223
263
  }
224
- return decodeBase64ToUint8Array(v.replace(/[^0-9a-zA-Z=+/_]/g, ''));
264
+ // Clean the base64 string by removing invalid characters
265
+ return decodeBase64ToUint8Array(v.replace(/[^0-9a-zA-Z=+/_]/g, ""));
225
266
  }
226
267
  ArrayBuffers.fromBase64 = fromBase64;
227
- function fromHex(v) {
228
- if ('fromHex' in Uint8Array) {
268
+ function fromHex(v, encoding) {
269
+ if (encoding) {
270
+ return toString(fromHex(v), encoding);
271
+ }
272
+ if ("fromHex" in Uint8Array && typeof Uint8Array.fromHex === "function") {
229
273
  return Uint8Array.fromHex(v);
230
274
  }
231
275
  if (isNativeBufferAllowed()) {
232
- return Buffer.from(v, 'hex');
276
+ return Buffer.from(v, "hex");
233
277
  }
234
- return new Uint8Array(v.match(/.{1,2}/g).map((byte)=>parseInt(byte, 16)));
278
+ // Handle odd-length hex strings by padding with leading zero
279
+ var cleanHex = v.length % 2 === 1 ? "0" + v : v;
280
+ var matches = cleanHex.match(/.{1,2}/g);
281
+ if (!matches) {
282
+ throw new Error("Invalid hex string");
283
+ }
284
+ var num = matches.map(function (byte) {
285
+ return parseInt(byte, 16);
286
+ });
287
+ return new Uint8Array(num);
235
288
  }
236
289
  ArrayBuffers.fromHex = fromHex;
237
290
  function toBase64(source) {
238
- if (typeof source === 'string') {
239
- source = new TextEncoder().encode(source);
240
- }
241
- if ('toBase64' in Uint8Array.prototype) {
291
+ source = encode(source);
292
+ if ("toBase64" in Uint8Array.prototype) {
242
293
  return toUint8Array(source).toBase64();
243
294
  }
244
295
  if (isNativeBufferAllowed()) {
245
- return Buffer.from(asView(Uint8Array, source)).toString('base64');
296
+ return Buffer.from(asView(Uint8Array, source)).toString("base64");
246
297
  }
247
298
  return encodeArrayBufferToBase64(toArrayBuffer(source));
248
299
  }
249
300
  /**
250
- * toBase64 convert the given {@link BufferSource} to base64 string
251
- * @param source if string, will be encoded as utf8
252
- */ ArrayBuffers.toBase64 = toBase64;
301
+ * toBase64 convert the given {@link BufferSource} to base64 string
302
+ * @param source if string, will be encoded as utf8
303
+ */ ArrayBuffers.toBase64 = toBase64;
253
304
  function toHex(v) {
254
- if ('toHex' in Uint8Array.prototype) {
305
+ v = encode(v);
306
+ if ("toHex" in Uint8Array.prototype) {
255
307
  return toUint8Array(v).toHex();
256
308
  }
257
309
  if (isNativeBufferAllowed()) {
258
- return Buffer.from(asView(Uint8Array, v)).toString('hex');
310
+ return Buffer.from(asView(Uint8Array, v)).toString("hex");
259
311
  }
260
- return toString(v, 'hex');
312
+ return toString(v, "hex");
261
313
  }
262
314
  ArrayBuffers.toHex = toHex;
263
315
  function resize(v, newByteLength, maxByteLength) {
264
316
  if (newByteLength === undefined || newByteLength === null) {
265
317
  return v;
266
318
  }
267
- // Chrome 111, Nodejs 20
268
- if ('resize' in v && typeof v.resize === 'function') {
269
- if ('resizable' in v && v.resizable) {
270
- if ('maxByteLength' in v && typeof v.maxByteLength === 'number' && v.maxByteLength >= newByteLength) {
319
+ // Chrome 111, Nodejs 20 - use native resize if available
320
+ if ("resize" in v && typeof v.resize === "function") {
321
+ if ("resizable" in v && v.resizable) {
322
+ if ("maxByteLength" in v && typeof v.maxByteLength === "number" && v.maxByteLength >= newByteLength) {
271
323
  v.resize(newByteLength);
272
324
  return v;
273
325
  }
274
326
  }
275
327
  }
276
- const old = v;
277
- const newBuf = new ArrayBuffer(newByteLength, {
328
+ // Fallback: create new buffer and copy data
329
+ var old = v;
330
+ var newBuf = new ArrayBuffer(newByteLength, {
278
331
  maxByteLength: maxByteLength
279
332
  });
280
- const oldView = new Uint8Array(old);
281
- const newView = new Uint8Array(newBuf);
333
+ var oldView = new Uint8Array(old);
334
+ var newView = new Uint8Array(newBuf);
282
335
  newView.set(oldView);
283
336
  return newBuf;
284
337
  }
285
338
  ArrayBuffers.resize = resize;
286
339
  function toArrayBuffer(v) {
287
- if (v instanceof ArrayBuffer) {
340
+ if (_instanceof(v, ArrayBuffer)) {
288
341
  return v;
289
342
  }
290
343
  if (ArrayBuffer.isView(v)) {
291
344
  if (v.byteOffset > 0) {
292
- throw new Error('ArrayBuffers.toArrayBuffer do not support view with offset');
345
+ throw new Error("ArrayBuffers.toArrayBuffer does not support view with offset");
293
346
  }
294
347
  return v.buffer;
295
348
  }
296
- throw new Error(`ArrayBuffers.toArrayBuffer unsupported type ${classOf(v)}`);
349
+ throw new Error("ArrayBuffers.toArrayBuffer unsupported type ".concat(classOf(v)));
297
350
  }
298
351
  ArrayBuffers.toArrayBuffer = toArrayBuffer;
299
352
  function toUint8Array(v) {
@@ -302,33 +355,205 @@ export var ArrayBuffers;
302
355
  ArrayBuffers.toUint8Array = toUint8Array;
303
356
  function alloc(size, fill, encoding) {
304
357
  if (fill !== undefined) {
305
- if (typeof fill === 'number') {
358
+ if (typeof fill === "number") {
306
359
  return new Uint8Array(size).fill(fill);
307
360
  }
308
- // as cast
361
+ // Convert string to buffer and slice to size
309
362
  // https://stackoverflow.com/questions/73994091
310
363
  return asView(Uint8Array, from(fill, encoding)).slice(0, size);
311
364
  }
312
365
  return new ArrayBuffer(size);
313
366
  }
314
- ArrayBuffers.alloc = alloc;
367
+ /**
368
+ * Allocate a new ArrayBuffer or Uint8Array with optional fill value
369
+ * @param size - The size in bytes to allocate
370
+ * @param fill - Optional fill value (number or string)
371
+ * @param encoding - Encoding for string fill value (default: 'utf8')
372
+ * @returns ArrayBuffer or Uint8Array
373
+ */ ArrayBuffers.alloc = alloc;
374
+ // Helper functions for string conversion
375
+ /**
376
+ * Convert Uint8Array to hex string efficiently
377
+ * @param u8 - The Uint8Array to convert
378
+ * @returns Hex string representation
379
+ */ function toHexString(u8) {
380
+ var result = "";
381
+ for (var i = 0; i < u8.length; i++) {
382
+ result += hexLookupTable[u8[i]];
383
+ }
384
+ return result;
385
+ }
386
+ /**
387
+ * Convert Uint8Array to ASCII string
388
+ * @param u8 - The Uint8Array to convert
389
+ * @returns ASCII string representation
390
+ */ function toAsciiString(u8) {
391
+ var result = "";
392
+ for (var i = 0; i < u8.length; i++) {
393
+ result += String.fromCharCode(u8[i] & 127);
394
+ }
395
+ return result;
396
+ }
397
+ /**
398
+ * Convert Uint8Array to Latin1 string
399
+ * @param u8 - The Uint8Array to convert
400
+ * @returns Latin1 string representation
401
+ */ function toLatin1String(u8) {
402
+ var result = "";
403
+ for (var i = 0; i < u8.length; i++) {
404
+ result += String.fromCharCode(u8[i]);
405
+ }
406
+ return result;
407
+ }
408
+ /**
409
+ * Convert Uint8Array to UTF-16LE string
410
+ * @param u8 - The Uint8Array to convert
411
+ * @returns UTF-16LE string representation
412
+ */ function toUtf16LeString(u8) {
413
+ var result = "";
414
+ // If length is odd, the last 8 bits must be ignored (same as node.js)
415
+ for (var i = 0; i < u8.length - 1; i += 2) {
416
+ result += String.fromCharCode(u8[i] + u8[i + 1] * 256);
417
+ }
418
+ return result;
419
+ }
420
+ // base16 lookup table for efficient hex conversion
421
+ var hexLookupTable = function () {
422
+ var alphabet = "0123456789abcdef";
423
+ var table = new Array(256);
424
+ for (var i = 0; i < 16; ++i) {
425
+ var i16 = i * 16;
426
+ for (var j = 0; j < 16; ++j) {
427
+ table[i16 + j] = alphabet[i] + alphabet[j];
428
+ }
429
+ }
430
+ return table;
431
+ }();
432
+ // Helper functions for internal use
433
+ function isIterable(obj) {
434
+ return obj != null && typeof (obj === null || obj === void 0 ? void 0 : obj[Symbol.iterator]) === "function";
435
+ }
436
+ function isBufferSource(value) {
437
+ return ArrayBuffer.isView(value) || _instanceof(value, ArrayBuffer);
438
+ }
439
+ function equals(a, b) {
440
+ if (a === b)
441
+ return true;
442
+ var aView = asView(Uint8Array, a);
443
+ var bView = asView(Uint8Array, b);
444
+ if (aView.length !== bView.length) {
445
+ return false;
446
+ }
447
+ for (var i = 0; i < aView.length; i++) {
448
+ if (aView[i] !== bView[i]) {
449
+ return false;
450
+ }
451
+ }
452
+ return true;
453
+ }
454
+ /**
455
+ * Check if two BufferSources are equal
456
+ * @param a - First buffer source
457
+ * @param b - Second buffer source
458
+ * @returns True if buffers are equal, false otherwise
459
+ */ ArrayBuffers.equals = equals;
460
+ function compare(a, b) {
461
+ if (a === b)
462
+ return 0;
463
+ var aView = asView(Uint8Array, a);
464
+ var bView = asView(Uint8Array, b);
465
+ var minLength = Math.min(aView.length, bView.length);
466
+ for (var i = 0; i < minLength; i++) {
467
+ if (aView[i] < bView[i])
468
+ return -1;
469
+ if (aView[i] > bView[i])
470
+ return 1;
471
+ }
472
+ return aView.length - bView.length;
473
+ }
474
+ /**
475
+ * Compare two BufferSources lexicographically
476
+ * @param a - First buffer source
477
+ * @param b - Second buffer source
478
+ * @returns -1 if a < b, 0 if a === b, 1 if a > b
479
+ */ ArrayBuffers.compare = compare;
480
+ function startsWith(buffer, prefix) {
481
+ var bufferView = asView(Uint8Array, buffer);
482
+ var prefixView = asView(Uint8Array, prefix);
483
+ if (prefixView.length > bufferView.length) {
484
+ return false;
485
+ }
486
+ for (var i = 0; i < prefixView.length; i++) {
487
+ if (bufferView[i] !== prefixView[i]) {
488
+ return false;
489
+ }
490
+ }
491
+ return true;
492
+ }
493
+ /**
494
+ * Check if a BufferSource starts with another BufferSource
495
+ * @param buffer - The buffer to check
496
+ * @param prefix - The prefix to check for
497
+ * @returns True if buffer starts with prefix, false otherwise
498
+ */ ArrayBuffers.startsWith = startsWith;
499
+ function endsWith(buffer, suffix) {
500
+ var bufferView = asView(Uint8Array, buffer);
501
+ var suffixView = asView(Uint8Array, suffix);
502
+ if (suffixView.length > bufferView.length) {
503
+ return false;
504
+ }
505
+ var offset = bufferView.length - suffixView.length;
506
+ for (var i = 0; i < suffixView.length; i++) {
507
+ if (bufferView[offset + i] !== suffixView[i]) {
508
+ return false;
509
+ }
510
+ }
511
+ return true;
512
+ }
513
+ /**
514
+ * Check if a BufferSource ends with another BufferSource
515
+ * @param buffer - The buffer to check
516
+ * @param suffix - The suffix to check for
517
+ * @returns True if buffer ends with suffix, false otherwise
518
+ */ ArrayBuffers.endsWith = endsWith;
519
+ function indexOf(buffer, search) {
520
+ var startIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
521
+ var bufferView = asView(Uint8Array, buffer);
522
+ var searchView = asView(Uint8Array, search);
523
+ if (searchView.length === 0)
524
+ return startIndex;
525
+ if (searchView.length > bufferView.length)
526
+ return -1;
527
+ for (var i = startIndex; i <= bufferView.length - searchView.length; i++) {
528
+ var found = true;
529
+ for (var j = 0; j < searchView.length; j++) {
530
+ if (bufferView[i + j] !== searchView[j]) {
531
+ found = false;
532
+ break;
533
+ }
534
+ }
535
+ if (found)
536
+ return i;
537
+ }
538
+ return -1;
539
+ }
540
+ /**
541
+ * Find the index of a sub-buffer within a buffer
542
+ * @param buffer - The buffer to search in
543
+ * @param search - The sub-buffer to search for
544
+ * @param startIndex - Starting index for search (default: 0)
545
+ * @returns Index of first occurrence, or -1 if not found
546
+ */ ArrayBuffers.indexOf = indexOf;
547
+ function subarray(buffer, start, end) {
548
+ var view = asView(Uint8Array, buffer);
549
+ return view.subarray(start, end);
550
+ }
551
+ /**
552
+ * Get a sub-buffer from a buffer
553
+ * @param buffer - The source buffer
554
+ * @param start - Start index (inclusive)
555
+ * @param end - End index (exclusive, optional)
556
+ * @returns New Uint8Array containing the sub-buffer
557
+ */ ArrayBuffers.subarray = subarray;
315
558
  })(ArrayBuffers || (ArrayBuffers = {}));
316
- const hexLookupTable = function() {
317
- const alphabet = '0123456789abcdef';
318
- const table = new Array(256);
319
- for(let i = 0; i < 16; ++i){
320
- const i16 = i * 16;
321
- for(let j = 0; j < 16; ++j){
322
- table[i16 + j] = alphabet[i] + alphabet[j];
323
- }
324
- }
325
- return table;
326
- }();
327
- function isIterable(obj) {
328
- return typeof obj?.[Symbol.iterator] === 'function';
329
- }
330
- function isBufferSource(v) {
331
- return ArrayBuffer.isView(v) || v instanceof ArrayBuffer;
332
- }
333
-
334
- //# sourceMappingURL=ArrayBuffers.js.map
559
+ export var ArrayBuffers;