@wener/utils 1.1.50 → 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 (506) 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 +75 -75
  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 +276 -0
  75. package/lib/langs/Closer.js +100 -0
  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 +19 -7
  82. package/lib/langs/getObjectId.js +4 -6
  83. package/lib/langs/ifPresent.js +3 -0
  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 -76
  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/{runtime → web}/getGlobalThis.js +3 -4
  152. package/lib/web/getRandomValues.js +44 -0
  153. package/lib/web/randomUUID.js +15 -0
  154. package/lib/web/requestIdleCallback.js +17 -0
  155. package/lib/{runtime → web}/structuredClone.js +35 -28
  156. package/lib/web/structuredClone.test.js +81 -0
  157. package/package.json +10 -18
  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 +34 -34
  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 +3 -3
  178. package/src/crypto/hashing.test.ts +34 -48
  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 +32 -32
  185. package/src/crypto/ulid.ts +117 -117
  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 +27 -27
  193. package/src/fetch/createFetchWithLogging.ts +13 -16
  194. package/src/fetch/createFetchWithRetry.ts +80 -80
  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 +26 -27
  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 +30 -30
  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 +45 -0
  226. package/src/langs/Closer.ts +39 -0
  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 +21 -11
  233. package/src/langs/getObjectId.ts +10 -13
  234. package/src/langs/ifPresent.ts +3 -0
  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 +82 -80
  272. package/src/server/crypto/md5.ts +1 -1
  273. package/src/server/fetch/createFetchWithProxyByNodeFetch.ts +30 -33
  274. package/src/server/fetch/createFetchWithProxyByUndici.ts +64 -70
  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 +7 -7
  279. package/src/server/polyfill/polyfillFetch.ts +11 -21
  280. package/src/server/polyfill/polyfillJsDom.ts +60 -72
  281. package/src/server/polyfill/polyfillWebSocket.ts +15 -15
  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 +9 -9
  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/{runtime → web}/getGlobalThis.ts +6 -6
  295. package/src/web/getRandomValues.ts +41 -0
  296. package/src/web/randomUUID.ts +19 -0
  297. package/src/web/requestIdleCallback.ts +11 -0
  298. package/src/{runtime → web}/structuredClone.test.ts +8 -8
  299. package/src/web/structuredClone.ts +88 -0
  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 -209
  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/getRandomValues.js +0 -36
  358. package/lib/crypto/getRandomValues.js.map +0 -1
  359. package/lib/crypto/hashing.js.map +0 -1
  360. package/lib/crypto/md5.bench.js.map +0 -1
  361. package/lib/crypto/md5.d.js.map +0 -1
  362. package/lib/crypto/md5.js.map +0 -1
  363. package/lib/crypto/pem/pem.js.map +0 -1
  364. package/lib/crypto/randomUUID.js +0 -16
  365. package/lib/crypto/randomUUID.js.map +0 -1
  366. package/lib/crypto/randomUUIDv7.js.map +0 -1
  367. package/lib/crypto/ulid.js.map +0 -1
  368. package/lib/emitter/types.js.map +0 -1
  369. package/lib/errors/Errors.js.map +0 -1
  370. package/lib/fetch/HttpStatus.js.map +0 -1
  371. package/lib/fetch/createFetchWith.js.map +0 -1
  372. package/lib/fetch/createFetchWithLogging.js.map +0 -1
  373. package/lib/fetch/createFetchWithRetry.js.map +0 -1
  374. package/lib/fetch/dumpRequest.js.map +0 -1
  375. package/lib/fetch/dumpResponse.js.map +0 -1
  376. package/lib/fetch/http.types.js.map +0 -1
  377. package/lib/fetch/index.js.map +0 -1
  378. package/lib/fetch/types.js.map +0 -1
  379. package/lib/i18n/createTranslate.js.map +0 -1
  380. package/lib/index.js.map +0 -1
  381. package/lib/io/AbstractEncoding.js.map +0 -1
  382. package/lib/io/ArrayBuffer.test-d.js.map +0 -1
  383. package/lib/io/ArrayBuffers.js.map +0 -1
  384. package/lib/io/Buffer.js.map +0 -1
  385. package/lib/io/ByteBuffer.js.map +0 -1
  386. package/lib/io/base64.js.map +0 -1
  387. package/lib/io/dump.js.map +0 -1
  388. package/lib/io/isBuffer.js.map +0 -1
  389. package/lib/io/isTransferable.js.map +0 -1
  390. package/lib/io/parseDataUri.js.map +0 -1
  391. package/lib/langs/MaybeFunction.js.map +0 -1
  392. package/lib/langs/classOf.js.map +0 -1
  393. package/lib/langs/deepEqual.js.map +0 -1
  394. package/lib/langs/deepFreeze.js.map +0 -1
  395. package/lib/langs/getGlobalStates.js.map +0 -1
  396. package/lib/langs/getObjectId.js.map +0 -1
  397. package/lib/langs/isClass.js.map +0 -1
  398. package/lib/langs/isDefined.js.map +0 -1
  399. package/lib/langs/isEmptyObject.js.map +0 -1
  400. package/lib/langs/isFunction.js.map +0 -1
  401. package/lib/langs/isNullish.js +0 -5
  402. package/lib/langs/isNullish.js.map +0 -1
  403. package/lib/langs/isPlainObject.js.map +0 -1
  404. package/lib/langs/memoize.js.map +0 -1
  405. package/lib/langs/mixin.js.map +0 -1
  406. package/lib/langs/parseBoolean.js.map +0 -1
  407. package/lib/langs/shallowClone.js.map +0 -1
  408. package/lib/langs/shallowEqual.js.map +0 -1
  409. package/lib/libs/ms.js.map +0 -1
  410. package/lib/logging/Logger.js +0 -5
  411. package/lib/logging/Logger.js.map +0 -1
  412. package/lib/logging/createChildLogger.js +0 -16
  413. package/lib/logging/createChildLogger.js.map +0 -1
  414. package/lib/logging/createLogger.js +0 -63
  415. package/lib/logging/createLogger.js.map +0 -1
  416. package/lib/logging/createNoopLogger.js +0 -13
  417. package/lib/logging/createNoopLogger.js.map +0 -1
  418. package/lib/logging/slog.js +0 -143
  419. package/lib/logging/slog.js.map +0 -1
  420. package/lib/maths/clamp.js.map +0 -1
  421. package/lib/maths/random.js.map +0 -1
  422. package/lib/mitt/index.js +0 -77
  423. package/lib/mitt/index.js.map +0 -1
  424. package/lib/modules/isModule.js.map +0 -1
  425. package/lib/modules/parseModuleId.js.map +0 -1
  426. package/lib/objects/computeIfAbsent.js.map +0 -1
  427. package/lib/objects/get.js.map +0 -1
  428. package/lib/objects/get.test-d.js.map +0 -1
  429. package/lib/objects/merge/index.js.map +0 -1
  430. package/lib/objects/merge/isMergeableObject.js.map +0 -1
  431. package/lib/objects/merge/merge.js.map +0 -1
  432. package/lib/objects/parseObjectPath.js.map +0 -1
  433. package/lib/objects/set.js.map +0 -1
  434. package/lib/runtime/AsyncCloser.js +0 -40
  435. package/lib/runtime/AsyncCloser.js.map +0 -1
  436. package/lib/runtime/Closer.js +0 -34
  437. package/lib/runtime/Closer.js.map +0 -1
  438. package/lib/runtime/getGlobalThis.js.map +0 -1
  439. package/lib/runtime/structuredClone.js.map +0 -1
  440. package/lib/schema/typebox/index.js.map +0 -1
  441. package/lib/schema/typebox/typebox.js.map +0 -1
  442. package/lib/scripts/getGenerateContext.js.map +0 -1
  443. package/lib/server/crypto/md5.js.map +0 -1
  444. package/lib/server/fetch/createFetchWithProxy.js.map +0 -1
  445. package/lib/server/fetch/createFetchWithProxyByNodeFetch.js.map +0 -1
  446. package/lib/server/fetch/createFetchWithProxyByUndici.js.map +0 -1
  447. package/lib/server/getPackageDir.js.map +0 -1
  448. package/lib/server/index.js.map +0 -1
  449. package/lib/server/jsdom.js.map +0 -1
  450. package/lib/server/node-fetch.js.map +0 -1
  451. package/lib/server/polyfill/polyfillBrowser.js.map +0 -1
  452. package/lib/server/polyfill/polyfillCrypto.js.map +0 -1
  453. package/lib/server/polyfill/polyfillFetch.js.map +0 -1
  454. package/lib/server/polyfill/polyfillJsDom.js.map +0 -1
  455. package/lib/server/polyfill/polyfillWebSocket.js.map +0 -1
  456. package/lib/server/ws.js.map +0 -1
  457. package/lib/strings/camelCase.js.map +0 -1
  458. package/lib/strings/formatBytes.js.map +0 -1
  459. package/lib/strings/renderTemplate.js.map +0 -1
  460. package/lib/typedoc.js.map +0 -1
  461. package/lib/types.d.js.map +0 -1
  462. package/lib/validations/asserts.js.map +0 -1
  463. package/lib/validations/isUUID.js.map +0 -1
  464. package/lib/validations/parseTimestamp.js.map +0 -1
  465. package/src/cn/README.md +0 -3
  466. package/src/cn/division/DivisionCode.ts +0 -155
  467. package/src/cn/division/binarySearch.test.ts +0 -64
  468. package/src/cn/division/binarySearch.ts +0 -25
  469. package/src/cn/division/division.test.ts +0 -6
  470. package/src/cn/formatChineseAmount.ts +0 -61
  471. package/src/cn/id/Mod11.ts +0 -26
  472. package/src/cn/id/ResidentIdNumber.ts +0 -126
  473. package/src/cn/id/id.test.ts +0 -20
  474. package/src/cn/id/types.ts +0 -26
  475. package/src/cn/index.ts +0 -17
  476. package/src/cn/parseChineseNumber.test.ts +0 -159
  477. package/src/cn/parseChineseNumber.ts +0 -97
  478. package/src/cn/pinyin/cartesianProduct.test.ts +0 -64
  479. package/src/cn/pinyin/cartesianProduct.ts +0 -24
  480. package/src/cn/pinyin/data.json +0 -413
  481. package/src/cn/pinyin/loader.ts +0 -12
  482. package/src/cn/pinyin/preload.ts +0 -3
  483. package/src/cn/pinyin/toPinyin.test.ts +0 -12
  484. package/src/cn/pinyin/toPinyinPure.ts +0 -43
  485. package/src/cn/pinyin/transform.ts +0 -12
  486. package/src/cn/scripts/gen.test.ts +0 -131
  487. package/src/cn/types.ts +0 -11
  488. package/src/cn/uscc/Mod31.ts +0 -38
  489. package/src/cn/uscc/USCC.ts +0 -94
  490. package/src/cn/uscc/isUSCC.ts +0 -8
  491. package/src/cn/uscc/uscc.test.ts +0 -16
  492. package/src/crypto/getRandomValues.ts +0 -41
  493. package/src/crypto/randomUUID.ts +0 -19
  494. package/src/langs/isNullish.ts +0 -3
  495. package/src/logging/Logger.ts +0 -25
  496. package/src/logging/createChildLogger.ts +0 -16
  497. package/src/logging/createLogger.ts +0 -50
  498. package/src/logging/createNoopLogger.ts +0 -13
  499. package/src/logging/logger.test.ts +0 -36
  500. package/src/logging/slog.test.ts +0 -8
  501. package/src/logging/slog.ts +0 -221
  502. package/src/mitt/README.md +0 -1
  503. package/src/mitt/index.ts +0 -114
  504. package/src/runtime/AsyncCloser.ts +0 -45
  505. package/src/runtime/Closer.ts +0 -39
  506. package/src/runtime/structuredClone.ts +0 -88
@@ -1,64 +1,270 @@
1
- import { getGlobalThis } from '../../runtime/getGlobalThis.js';
2
- export async function polyfillJsDom() {
3
- if (typeof window !== 'undefined') {
4
- return false;
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
+ try {
3
+ var info = gen[key](arg);
4
+ var value = info.value;
5
5
  }
6
- const globalThis = getGlobalThis();
7
- const { ResourceLoader, JSDOM } = await import('jsdom');
8
- // https://github.com/lukechilds/window/blob/master/src/index.js
9
- // eslint-disable-next-line @typescript-eslint/no-extraneous-class
10
- let Window = class Window {
11
- constructor(opts = {}){
12
- const { proxy, strictSSL, userAgent, ...jsdomOpts } = opts;
13
- const resources = new ResourceLoader({
14
- proxy,
15
- strictSSL,
16
- userAgent
17
- });
18
- return new JSDOM('', Object.assign(jsdomOpts, {
19
- resources
20
- })).window;
21
- }
22
- };
23
- // https://github.com/lukechilds/browser-env/blob/master/src/index.js
24
- // Default jsdom config.
25
- // These settings must override any custom settings to make sure we can iterate
26
- // over the window object.
27
- const defaultJsdomConfig = {
6
+ catch (error) {
7
+ reject(error);
8
+ return;
9
+ }
10
+ if (info.done) {
11
+ resolve(value);
12
+ }
13
+ else {
14
+ Promise.resolve(value).then(_next, _throw);
15
+ }
16
+ }
17
+ function _async_to_generator(fn) {
18
+ return function () {
19
+ var self = this, args = arguments;
20
+ return new Promise(function (resolve, reject) {
21
+ var gen = fn.apply(self, args);
22
+ function _next(value) {
23
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
24
+ }
25
+ function _throw(err) {
26
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
27
+ }
28
+ _next(undefined);
29
+ });
28
30
  };
29
- // IIFE executed on import to return an array of global Node.js properties that
30
- // conflict with global browser properties.
31
- const protectedProperties = (()=>Object.getOwnPropertyNames(new Window(defaultJsdomConfig)).filter((prop)=>typeof globalThis[prop] !== 'undefined'))();
32
- function installEnv(...args) {
33
- // Sets up global browser environment
34
- // Extract options from args
35
- const properties = args.filter((arg)=>Array.isArray(arg))[0];
36
- const userJsdomConfig = args.filter((arg)=>!Array.isArray(arg))[0];
37
- // Create window object
38
- const window1 = new Window(Object.assign({}, userJsdomConfig, defaultJsdomConfig));
39
- // Get all global browser properties
40
- Object.getOwnPropertyNames(window1)// Remove protected properties
41
- .filter((prop)=>!protectedProperties.includes(prop))// If we're only applying specific required properties remove everything else
42
- .filter((prop)=>!(properties && properties.indexOf(prop) === -1)).filter((prop)=>{
43
- switch(prop){
44
- case 'undefined':
45
- return false;
31
+ }
32
+ function _class_call_check(instance, Constructor) {
33
+ if (!(instance instanceof Constructor)) {
34
+ throw new TypeError("Cannot call a class as a function");
35
+ }
36
+ }
37
+ function _object_without_properties(source, excluded) {
38
+ if (source == null)
39
+ return {};
40
+ var target = _object_without_properties_loose(source, excluded);
41
+ var key, i;
42
+ if (Object.getOwnPropertySymbols) {
43
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
44
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
45
+ key = sourceSymbolKeys[i];
46
+ if (excluded.indexOf(key) >= 0)
47
+ continue;
48
+ if (!Object.prototype.propertyIsEnumerable.call(source, key))
49
+ continue;
50
+ target[key] = source[key];
51
+ }
52
+ }
53
+ return target;
54
+ }
55
+ function _object_without_properties_loose(source, excluded) {
56
+ if (source == null)
57
+ return {};
58
+ var target = {};
59
+ var sourceKeys = Object.keys(source);
60
+ var key, i;
61
+ for (i = 0; i < sourceKeys.length; i++) {
62
+ key = sourceKeys[i];
63
+ if (excluded.indexOf(key) >= 0)
64
+ continue;
65
+ target[key] = source[key];
66
+ }
67
+ return target;
68
+ }
69
+ function _ts_generator(thisArg, body) {
70
+ var f, y, t, _ = {
71
+ label: 0,
72
+ sent: function () {
73
+ if (t[0] & 1)
74
+ throw t[1];
75
+ return t[1];
76
+ },
77
+ trys: [],
78
+ ops: []
79
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
80
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function () {
81
+ return this;
82
+ }), g;
83
+ function verb(n) {
84
+ return function (v) {
85
+ return step([
86
+ n,
87
+ v
88
+ ]);
89
+ };
90
+ }
91
+ function step(op) {
92
+ if (f)
93
+ throw new TypeError("Generator is already executing.");
94
+ while (g && (g = 0, op[0] && (_ = 0)), _)
95
+ try {
96
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
97
+ return t;
98
+ if (y = 0, t)
99
+ op = [
100
+ op[0] & 2,
101
+ t.value
102
+ ];
103
+ switch (op[0]) {
104
+ case 0:
105
+ case 1:
106
+ t = op;
107
+ break;
108
+ case 4:
109
+ _.label++;
110
+ return {
111
+ value: op[1],
112
+ done: false
113
+ };
114
+ case 5:
115
+ _.label++;
116
+ y = op[1];
117
+ op = [
118
+ 0
119
+ ];
120
+ continue;
121
+ case 7:
122
+ op = _.ops.pop();
123
+ _.trys.pop();
124
+ continue;
125
+ default:
126
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
127
+ _ = 0;
128
+ continue;
129
+ }
130
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
131
+ _.label = op[1];
132
+ break;
133
+ }
134
+ if (op[0] === 6 && _.label < t[1]) {
135
+ _.label = t[1];
136
+ t = op;
137
+ break;
138
+ }
139
+ if (t && _.label < t[2]) {
140
+ _.label = t[2];
141
+ _.ops.push(op);
142
+ break;
143
+ }
144
+ if (t[2])
145
+ _.ops.pop();
146
+ _.trys.pop();
147
+ continue;
148
+ }
149
+ op = body.call(thisArg, _);
150
+ }
151
+ catch (e) {
152
+ op = [
153
+ 6,
154
+ e
155
+ ];
156
+ y = 0;
157
+ }
158
+ finally {
159
+ f = t = 0;
46
160
  }
47
- return true;
48
- })// Copy what's left to the Node.js global scope
49
- .forEach((prop)=>{
50
- // console.debug(`define globalThis.${prop}`);
51
- Object.defineProperty(globalThis, prop, {
52
- configurable: true,
53
- get: ()=>window1[prop]
161
+ if (op[0] & 5)
162
+ throw op[1];
163
+ return {
164
+ value: op[0] ? op[1] : void 0,
165
+ done: true
166
+ };
167
+ }
168
+ }
169
+ import { getGlobalThis } from "../../web/getGlobalThis.js";
170
+ export function polyfillJsDom() {
171
+ return _async_to_generator(function () {
172
+ var globalThis, _ref, ResourceLoader, JSDOM, Window, defaultJsdomConfig, protectedProperties;
173
+ function installEnv() {
174
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
175
+ args[_key] = arguments[_key];
176
+ }
177
+ // Sets up global browser environment
178
+ // Extract options from args
179
+ var properties = args.filter(function (arg) {
180
+ return Array.isArray(arg);
181
+ })[0];
182
+ var userJsdomConfig = args.filter(function (arg) {
183
+ return !Array.isArray(arg);
184
+ })[0];
185
+ // Create window object
186
+ var _$window = new Window(Object.assign({}, userJsdomConfig, defaultJsdomConfig));
187
+ // Get all global browser properties
188
+ Object.getOwnPropertyNames(_$window) // Remove protected properties
189
+ .filter(function (prop) {
190
+ return !protectedProperties.includes(prop);
191
+ }) // If we're only applying specific required properties remove everything else
192
+ .filter(function (prop) {
193
+ return !(properties && properties.indexOf(prop) === -1);
194
+ }).filter(function (prop) {
195
+ switch (prop) {
196
+ case "undefined":
197
+ return false;
198
+ }
199
+ return true;
200
+ }) // Copy what's left to the Node.js global scope
201
+ .forEach(function (prop) {
202
+ // console.debug(`define globalThis.${prop}`);
203
+ Object.defineProperty(globalThis, prop, {
204
+ configurable: true,
205
+ get: function () {
206
+ return _$window[prop];
207
+ }
208
+ });
54
209
  });
210
+ return _$window;
211
+ }
212
+ return _ts_generator(this, function (_state) {
213
+ switch (_state.label) {
214
+ case 0:
215
+ if (typeof window !== "undefined") {
216
+ return [
217
+ 2,
218
+ false
219
+ ];
220
+ }
221
+ globalThis = getGlobalThis();
222
+ return [
223
+ 4,
224
+ import("jsdom")
225
+ ];
226
+ case 1:
227
+ _ref = _state.sent(), ResourceLoader = _ref.ResourceLoader, JSDOM = _ref.JSDOM;
228
+ // https://github.com/lukechilds/window/blob/master/src/index.js
229
+ // eslint-disable-next-line @typescript-eslint/no-extraneous-class
230
+ Window = function Window() {
231
+ "use strict";
232
+ var opts = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
233
+ _class_call_check(this, Window);
234
+ var proxy = opts.proxy, strictSSL = opts.strictSSL, userAgent = opts.userAgent, jsdomOpts = _object_without_properties(opts, [
235
+ "proxy",
236
+ "strictSSL",
237
+ "userAgent"
238
+ ]);
239
+ var resources = new ResourceLoader({
240
+ proxy: proxy,
241
+ strictSSL: strictSSL,
242
+ userAgent: userAgent
243
+ });
244
+ return new JSDOM("", Object.assign(jsdomOpts, {
245
+ resources: resources
246
+ })).window;
247
+ };
248
+ // https://github.com/lukechilds/browser-env/blob/master/src/index.js
249
+ // Default jsdom config.
250
+ // These settings must override any custom settings to make sure we can iterate
251
+ // over the window object.
252
+ defaultJsdomConfig = {};
253
+ // IIFE executed on import to return an array of global Node.js properties that
254
+ // conflict with global browser properties.
255
+ protectedProperties = function () {
256
+ return Object.getOwnPropertyNames(new Window(defaultJsdomConfig)).filter(function (prop) {
257
+ return typeof globalThis[prop] !== "undefined";
258
+ });
259
+ }();
260
+ installEnv({
261
+ url: "http://localhost"
262
+ });
263
+ return [
264
+ 2,
265
+ true
266
+ ];
267
+ }
55
268
  });
56
- return window1;
57
- }
58
- installEnv({
59
- url: 'http://localhost'
60
- });
61
- return true;
269
+ })();
62
270
  }
63
-
64
- //# sourceMappingURL=polyfillJsDom.js.map
@@ -1,21 +1,21 @@
1
- import { getGlobalThis } from '../../runtime/getGlobalThis.js';
1
+ import { getGlobalThis } from "../../web/getGlobalThis.js";
2
2
  export function polyfillWebSocket(ws) {
3
- const globalThis = getGlobalThis();
4
- if ('WebSocket' in globalThis) {
3
+ var globalThis = getGlobalThis();
4
+ if ("WebSocket" in globalThis) {
5
5
  return false;
6
6
  }
7
- if (ws && 'then' in ws) {
8
- return ws.then((v)=>{
9
- return polyfillWebSocket(v?.default || v);
7
+ if (ws && "then" in ws) {
8
+ return ws.then(function (v) {
9
+ return polyfillWebSocket((v === null || v === void 0 ? void 0 : v.default) || v);
10
10
  });
11
11
  }
12
12
  if (ws) {
13
- const { WebSocket } = ws;
13
+ var WebSocket = ws.WebSocket;
14
14
  Object.assign(globalThis, {
15
- WebSocket
15
+ WebSocket: WebSocket
16
16
  });
17
17
  }
18
- return import('ws').then((ws)=>polyfillWebSocket(ws));
18
+ return import("ws").then(function (ws) {
19
+ return polyfillWebSocket(ws);
20
+ });
19
21
  }
20
-
21
- //# sourceMappingURL=polyfillWebSocket.js.map
package/lib/server/ws.js CHANGED
@@ -1,3 +1 @@
1
- export * from './polyfill/polyfillWebSocket.js';
2
-
3
- //# sourceMappingURL=ws.js.map
1
+ export * from "./polyfill/polyfillWebSocket.js";
@@ -0,0 +1,327 @@
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_with_holes(arr) {
9
+ if (Array.isArray(arr))
10
+ return arr;
11
+ }
12
+ function _iterable_to_array_limit(arr, i) {
13
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
14
+ if (_i == null)
15
+ return;
16
+ var _arr = [];
17
+ var _n = true;
18
+ var _d = false;
19
+ var _s, _e;
20
+ try {
21
+ for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
22
+ _arr.push(_s.value);
23
+ if (i && _arr.length === i)
24
+ break;
25
+ }
26
+ }
27
+ catch (err) {
28
+ _d = true;
29
+ _e = err;
30
+ }
31
+ finally {
32
+ try {
33
+ if (!_n && _i["return"] != null)
34
+ _i["return"]();
35
+ }
36
+ finally {
37
+ if (_d)
38
+ throw _e;
39
+ }
40
+ }
41
+ return _arr;
42
+ }
43
+ function _non_iterable_rest() {
44
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
45
+ }
46
+ function _sliced_to_array(arr, i) {
47
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
48
+ }
49
+ function _unsupported_iterable_to_array(o, minLen) {
50
+ if (!o)
51
+ return;
52
+ if (typeof o === "string")
53
+ return _array_like_to_array(o, minLen);
54
+ var n = Object.prototype.toString.call(o).slice(8, -1);
55
+ if (n === "Object" && o.constructor)
56
+ n = o.constructor.name;
57
+ if (n === "Map" || n === "Set")
58
+ return Array.from(n);
59
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
60
+ return _array_like_to_array(o, minLen);
61
+ }
62
+ import { describe, expect, test } from "vitest";
63
+ import { formatBytes } from "./formatBytes.js";
64
+ import { parseBytes } from "./parseBytes.js";
65
+ describe("bytes", function () {
66
+ describe("formatBytes", function () {
67
+ var testCases = [
68
+ // IEC standard by default
69
+ [
70
+ 1024,
71
+ undefined,
72
+ "1.0 KiB"
73
+ ],
74
+ [
75
+ 1024 * 1024,
76
+ undefined,
77
+ "1.0 MiB"
78
+ ],
79
+ [
80
+ 1536,
81
+ undefined,
82
+ "1.5 KiB"
83
+ ],
84
+ // SI standard
85
+ [
86
+ 1000,
87
+ true,
88
+ "1.0 kB"
89
+ ],
90
+ [
91
+ 1000 * 1000,
92
+ true,
93
+ "1.0 MB"
94
+ ],
95
+ [
96
+ 1500,
97
+ true,
98
+ "1.5 kB"
99
+ ],
100
+ // Small byte values
101
+ [
102
+ 100,
103
+ undefined,
104
+ "100 B"
105
+ ],
106
+ [
107
+ 999,
108
+ undefined,
109
+ "999 B"
110
+ ],
111
+ [
112
+ 1023,
113
+ undefined,
114
+ "1023 B"
115
+ ],
116
+ // SI small byte values
117
+ [
118
+ 100,
119
+ true,
120
+ "100 B"
121
+ ],
122
+ [
123
+ 999,
124
+ true,
125
+ "999 B"
126
+ ],
127
+ // Decimal places
128
+ [
129
+ 1536,
130
+ {
131
+ dp: 2
132
+ },
133
+ "1.50 KiB"
134
+ ],
135
+ [
136
+ 1536,
137
+ {
138
+ dp: 3
139
+ },
140
+ "1.500 KiB"
141
+ ],
142
+ // Force unit
143
+ [
144
+ 1024 * 1024,
145
+ {
146
+ unit: "KiB"
147
+ },
148
+ "1024.0 KiB"
149
+ ],
150
+ [
151
+ 1000 * 1000,
152
+ {
153
+ si: true,
154
+ unit: "kB"
155
+ },
156
+ "1000.0 kB"
157
+ ]
158
+ ];
159
+ test("should format bytes correctly", function () {
160
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
161
+ try {
162
+ for (var _iterator = testCases[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
163
+ var _step_value = _sliced_to_array(_step.value, 3), bytes = _step_value[0], options = _step_value[1], expected = _step_value[2];
164
+ expect(formatBytes(bytes, options)).toBe(expected);
165
+ }
166
+ }
167
+ catch (err) {
168
+ _didIteratorError = true;
169
+ _iteratorError = err;
170
+ }
171
+ finally {
172
+ try {
173
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
174
+ _iterator.return();
175
+ }
176
+ }
177
+ finally {
178
+ if (_didIteratorError) {
179
+ throw _iteratorError;
180
+ }
181
+ }
182
+ }
183
+ });
184
+ });
185
+ describe("parseBytes", function () {
186
+ var validTestCases = [
187
+ [
188
+ "1B",
189
+ {
190
+ value: 1,
191
+ unit: "B",
192
+ bytes: 1
193
+ }
194
+ ],
195
+ [
196
+ "1KB",
197
+ {
198
+ value: 1,
199
+ unit: "KB",
200
+ bytes: 1000
201
+ }
202
+ ],
203
+ [
204
+ "1KiB",
205
+ {
206
+ value: 1,
207
+ unit: "KiB",
208
+ bytes: 1024
209
+ }
210
+ ],
211
+ [
212
+ "1.5GB",
213
+ {
214
+ value: 1.5,
215
+ unit: "GB",
216
+ bytes: 1.5 * Math.pow(1000, 3)
217
+ }
218
+ ],
219
+ [
220
+ "2TiB",
221
+ {
222
+ value: 2,
223
+ unit: "TiB",
224
+ bytes: 2 * Math.pow(1024, 4)
225
+ }
226
+ ],
227
+ // single letter
228
+ [
229
+ "1G",
230
+ {
231
+ value: 1,
232
+ unit: "G",
233
+ bytes: Math.pow(1000, 3)
234
+ }
235
+ ],
236
+ [
237
+ "1.5T",
238
+ {
239
+ value: 1.5,
240
+ unit: "T",
241
+ bytes: 1.5 * Math.pow(1000, 4)
242
+ }
243
+ ],
244
+ // case-insensitive
245
+ [
246
+ "1gb",
247
+ {
248
+ value: 1,
249
+ unit: "gb",
250
+ bytes: Math.pow(1000, 3)
251
+ }
252
+ ],
253
+ [
254
+ "1.5 mib",
255
+ {
256
+ value: 1.5,
257
+ unit: "mib",
258
+ bytes: 1.5 * Math.pow(1024, 2)
259
+ }
260
+ ],
261
+ // whitespace
262
+ [
263
+ " 1.5 GB ",
264
+ {
265
+ value: 1.5,
266
+ unit: "GB",
267
+ bytes: 1.5 * Math.pow(1000, 3)
268
+ }
269
+ ]
270
+ ];
271
+ test("should parse valid byte strings", function () {
272
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
273
+ try {
274
+ for (var _iterator = validTestCases[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
275
+ var _step_value = _sliced_to_array(_step.value, 2), str = _step_value[0], expected = _step_value[1];
276
+ expect(parseBytes(str)).toEqual(expected);
277
+ }
278
+ }
279
+ catch (err) {
280
+ _didIteratorError = true;
281
+ _iteratorError = err;
282
+ }
283
+ finally {
284
+ try {
285
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
286
+ _iterator.return();
287
+ }
288
+ }
289
+ finally {
290
+ if (_didIteratorError) {
291
+ throw _iteratorError;
292
+ }
293
+ }
294
+ }
295
+ });
296
+ var invalidTestCases = [
297
+ "abc",
298
+ "1.5XB",
299
+ ""
300
+ ];
301
+ test("should return undefined for invalid strings", function () {
302
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
303
+ try {
304
+ for (var _iterator = invalidTestCases[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
305
+ var str = _step.value;
306
+ expect(parseBytes(str)).toBeUndefined();
307
+ }
308
+ }
309
+ catch (err) {
310
+ _didIteratorError = true;
311
+ _iteratorError = err;
312
+ }
313
+ finally {
314
+ try {
315
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
316
+ _iterator.return();
317
+ }
318
+ }
319
+ finally {
320
+ if (_didIteratorError) {
321
+ throw _iteratorError;
322
+ }
323
+ }
324
+ }
325
+ });
326
+ });
327
+ });