@wener/utils 1.1.51 → 1.1.53

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