@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 +0,0 @@
1
- {"version":3,"sources":["../../src/logging/slog.ts"],"sourcesContent":["import type { Logger, LogLevel } from './Logger';\n\nenum Level {\n trace = -8,\n debug = -4,\n info = 0,\n warn = 4,\n error = 8,\n}\n\ninterface LogRecord {\n time?: Date;\n message: string;\n level?: 'info' | 'debug' | 'warn' | 'error' | 'trace';\n attrs?: Record<string, any>;\n\n source?: {\n func?: string;\n file?: string;\n line?: number;\n };\n\n // https://cs.opensource.google/go/x/exp/+/d63ba01a:slog/record.go\n}\n\ntype LogFunc =\n | ((message: string) => void)\n | ((message: string, attrs: Record<string, any>) => void)\n | ((message: string, key: string, value: any, ...attrs: any[]) => void);\n\nfunction createLogFunc(opts: {\n onRecord: (rec: LogRecord) => void;\n attrs?: Record<string, any>;\n level?: LogLevel;\n}): LogFunc {\n return (msg: string, ...args: any[]) => {\n const rec = {\n message: String(msg),\n level: opts.level,\n attrs: Object.assign({}, opts.attrs),\n };\n\n if (args[0] && typeof args[0] === 'object') {\n rec.attrs = Object.assign(rec.attrs, args[0]);\n } else {\n for (let i = 0; i < args.length; i += 2) {\n rec.attrs[String(args[i])] = args[i + 1];\n }\n }\n\n opts.onRecord(rec);\n };\n}\n\nfunction stringify(rec: LogRecord, opts: { level?: boolean } = {}) {\n const sb = [];\n if (rec.time) {\n sb.push(rec.time.toJSON());\n }\n rec.level && opts.level !== false && sb.push(rec.level.toUpperCase().padStart(5, ' '));\n sb.push(rec.message);\n\n if (rec.attrs) {\n for (let [key, value] of Object.entries(rec.attrs)) {\n sb.push(`${key}=${JSON.stringify(value)}`);\n }\n }\n return sb.join(' ');\n}\n\nexport function createLogger(\n opts: { writer?: (record: LogRecord) => void; level?: LogLevel; time?: boolean } = {},\n): Logger {\n opts.time ??= typeof window === 'undefined';\n const onRecord = (record: LogRecord) => {\n // can change options after create\n const { writer = createLogger.writer, level, time } = opts;\n if (level) {\n if (Level[level] < Level[record.level!]) {\n return;\n }\n }\n if (time) {\n record.time = new Date();\n }\n writer(record);\n };\n return {\n trace: createLogFunc({ onRecord, level: 'trace' }),\n debug: createLogFunc({ onRecord, level: 'debug' }),\n info: createLogFunc({ onRecord, level: 'info' }),\n warn: createLogFunc({ onRecord, level: 'warn' }),\n error: createLogFunc({ onRecord, level: 'error' }),\n };\n}\n\ncreateLogger.writer = (record: LogRecord) => {\n const { level } = record;\n console[level || 'info'](stringify(record));\n};\n\n// https://github.com/alexeyraspopov/picocolors/blob/main/picocolors.js\n/*\nMDN: Styling console output\nhttps://developer.mozilla.org/en-US/docs/Web/API/console#Usage\n\nChrome: Console API Reference\nhttps://developers.google.com/web/tools/chrome-devtools/console/console-write#styling_console_output_with_css\n\nWebKit: Console Object API\nhttps://webkit.org/web-inspector/console-object-api/\n\nhttps://stackoverflow.com/questions/7505623\n\nconsole.log('\\x1b[36m Hello \\x1b[34m Colored \\x1b[35m World!');\nconsole.log('\\x1B[31mHello\\x1B[34m World');\nconsole.log('\\x1b[43mHighlighted');\n\n\nNestJS Formatter\nhttps://github.com/nestjs/nest/blob/d4bda940fc10238eb18f14ebf66d66b7ef8bff41/packages/common/services/console-logger.service.ts#L201-L227\n\n */\n\nexport type Formatter = (input: string | number | null | undefined) => string;\n\nexport interface Colors {\n isColorSupported: boolean;\n reset: Formatter;\n bold: Formatter;\n dim: Formatter;\n italic: Formatter;\n underline: Formatter;\n inverse: Formatter;\n hidden: Formatter;\n strikethrough: Formatter;\n black: Formatter;\n red: Formatter;\n green: Formatter;\n yellow: Formatter;\n blue: Formatter;\n magenta: Formatter;\n cyan: Formatter;\n white: Formatter;\n gray: Formatter;\n bgBlack: Formatter;\n bgRed: Formatter;\n bgGreen: Formatter;\n bgYellow: Formatter;\n bgBlue: Formatter;\n bgMagenta: Formatter;\n bgCyan: Formatter;\n bgWhite: Formatter;\n}\n\nlet formatter =\n (open: string, close: string, replace: string = open) =>\n (input: string) => {\n let string = '' + input;\n let index = string.indexOf(close, open.length);\n return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;\n };\n\nlet replaceClose = (string: string, close: string, replace: string, index: number): string => {\n let start = string.substring(0, index) + replace;\n let end = string.substring(index + close.length);\n let nextIndex = end.indexOf(close);\n return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end;\n};\n\nfunction getEnv(): Record<string, string | undefined> {\n if (typeof process === 'object') {\n return process.env;\n }\n return {};\n}\n\nfunction isColorSupported() {\n if (typeof window === 'object') {\n return true;\n }\n const env = getEnv();\n if ('NO_COLOR' in env) {\n return false;\n }\n if ('FORCE_COLOR' in env || 'CI' in env) {\n return true;\n }\n return false;\n}\n\nexport function createConsoleColors(enabled = isColorSupported()) {\n return {\n isColorSupported: enabled,\n reset: enabled ? (s: string) => `\\x1b[0m${s}\\x1b[0m` : String,\n bold: enabled ? formatter('\\x1b[1m', '\\x1b[22m', '\\x1b[22m\\x1b[1m') : String,\n dim: enabled ? formatter('\\x1b[2m', '\\x1b[22m', '\\x1b[22m\\x1b[2m') : String,\n italic: enabled ? formatter('\\x1b[3m', '\\x1b[23m') : String,\n underline: enabled ? formatter('\\x1b[4m', '\\x1b[24m') : String,\n inverse: enabled ? formatter('\\x1b[7m', '\\x1b[27m') : String,\n hidden: enabled ? formatter('\\x1b[8m', '\\x1b[28m') : String,\n strikethrough: enabled ? formatter('\\x1b[9m', '\\x1b[29m') : String,\n black: enabled ? formatter('\\x1b[30m', '\\x1b[39m') : String,\n red: enabled ? formatter('\\x1b[31m', '\\x1b[39m') : String,\n green: enabled ? formatter('\\x1b[32m', '\\x1b[39m') : String,\n yellow: enabled ? formatter('\\x1b[33m', '\\x1b[39m') : String,\n blue: enabled ? formatter('\\x1b[34m', '\\x1b[39m') : String,\n magenta: enabled ? formatter('\\x1b[35m', '\\x1b[39m') : String,\n cyan: enabled ? formatter('\\x1b[36m', '\\x1b[39m') : String,\n white: enabled ? formatter('\\x1b[37m', '\\x1b[39m') : String,\n gray: enabled ? formatter('\\x1b[90m', '\\x1b[39m') : String,\n bgBlack: enabled ? formatter('\\x1b[40m', '\\x1b[49m') : String,\n bgRed: enabled ? formatter('\\x1b[41m', '\\x1b[49m') : String,\n bgGreen: enabled ? formatter('\\x1b[42m', '\\x1b[49m') : String,\n bgYellow: enabled ? formatter('\\x1b[43m', '\\x1b[49m') : String,\n bgBlue: enabled ? formatter('\\x1b[44m', '\\x1b[49m') : String,\n bgMagenta: enabled ? formatter('\\x1b[45m', '\\x1b[49m') : String,\n bgCyan: enabled ? formatter('\\x1b[46m', '\\x1b[49m') : String,\n bgWhite: enabled ? formatter('\\x1b[47m', '\\x1b[49m') : String,\n };\n}\n"],"names":["Level","createLogFunc","opts","msg","args","rec","message","String","level","attrs","Object","assign","i","length","onRecord","stringify","sb","time","push","toJSON","toUpperCase","padStart","key","value","entries","JSON","join","createLogger","window","record","writer","Date","trace","debug","info","warn","error","console","formatter","open","close","replace","input","string","index","indexOf","replaceClose","start","substring","end","nextIndex","getEnv","process","env","isColorSupported","createConsoleColors","enabled","reset","s","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/maths/clamp.ts"],"sourcesContent":["import { isDefined } from '../langs/isDefined';\nimport { isNullish } from '../langs/isNullish';\n\n// export function clamp<T>(value: T | null | undefined, opts: { min?: T; max?: T; default?: T }): T;\nexport function clamp<T>(value: T | null | undefined, min: T, max: T, def?: T): T;\nexport function clamp<T>(value: T | null | undefined, ...o: any[]): T {\n let min: T, max: T, def: T;\n if (o.length === 1 && o[0] && typeof o[0] === 'object') {\n ({ min, max, default: def = min! } = o[0]);\n } else {\n [min, max, def = min!] = o;\n }\n if (isNullish(value)) {\n return def;\n }\n if (isDefined(min) && value < min) {\n return min;\n }\n if (isDefined(max) && value > max) {\n return max;\n }\n return value;\n}\n"],"names":["isDefined","isNullish","clamp","value","o","min","max","def","length","default"],"mappings":"AAAA,SAASA,SAAS,QAAQ,qBAAqB;AAC/C,SAASC,SAAS,QAAQ,qBAAqB;AAI/C,OAAO,SAASC,MAASC,KAA2B,EAAE,GAAGC,CAAQ;IAC/D,IAAIC,KAAQC,KAAQC;IACpB,IAAIH,EAAEI,MAAM,KAAK,KAAKJ,CAAC,CAAC,EAAE,IAAI,OAAOA,CAAC,CAAC,EAAE,KAAK,UAAU;QACrD,CAAA,EAAEC,GAAG,EAAEC,GAAG,EAAEG,SAASF,MAAMF,GAAI,EAAE,GAAGD,CAAC,CAAC,EAAE,AAAD;IAC1C,OAAO;QACL,CAACC,KAAKC,KAAKC,MAAMF,GAAI,CAAC,GAAGD;IAC3B;IACA,IAAIH,UAAUE,QAAQ;QACpB,OAAOI;IACT;IACA,IAAIP,UAAUK,QAAQF,QAAQE,KAAK;QACjC,OAAOA;IACT;IACA,IAAIL,UAAUM,QAAQH,QAAQG,KAAK;QACjC,OAAOA;IACT;IACA,OAAOH;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/maths/random.ts"],"sourcesContent":["/// javascript pseudo random\nexport function createRandom(o: { seed?: string | number } = {}) {\n let seed = typeof o.seed === 'string' ? 0 : (o.seed ?? 0);\n if (typeof o.seed === 'string') {\n let sum = 0;\n for (let i = 0; i < o.seed.length; i++) {\n sum += o.seed.charCodeAt(i);\n }\n seed = sum;\n }\n\n return () => {\n const x = Math.sin(seed++) * 10000;\n return x - Math.floor(x);\n };\n}\n"],"names":["createRandom","o","seed","sum","i","length","charCodeAt","x","Math","sin","floor"],"mappings":"AAAA,4BAA4B;AAC5B,OAAO,SAASA,aAAaC,IAAgC,CAAC,CAAC;IAC7D,IAAIC,OAAO,OAAOD,EAAEC,IAAI,KAAK,WAAW,IAAKD,EAAEC,IAAI,IAAI;IACvD,IAAI,OAAOD,EAAEC,IAAI,KAAK,UAAU;QAC9B,IAAIC,MAAM;QACV,IAAK,IAAIC,IAAI,GAAGA,IAAIH,EAAEC,IAAI,CAACG,MAAM,EAAED,IAAK;YACtCD,OAAOF,EAAEC,IAAI,CAACI,UAAU,CAACF;QAC3B;QACAF,OAAOC;IACT;IAEA,OAAO;QACL,MAAMI,IAAIC,KAAKC,GAAG,CAACP,UAAU;QAC7B,OAAOK,IAAIC,KAAKE,KAAK,CAACH;IACxB;AACF"}
package/lib/mitt/index.js DELETED
@@ -1,77 +0,0 @@
1
- /**
2
- * Mitt: Tiny (~200b) functional event emitter / pubsub.
3
- * @name createEmitter
4
- * @returns {Emitter}
5
- */ export default function createEmitter(all) {
6
- all = all || new Map();
7
- let evt;
8
- return evt = {
9
- /**
10
- * A Map of event names to registered handler functions.
11
- */ all,
12
- on (type, handler) {
13
- const handlers = all.get(type);
14
- if (handlers) {
15
- handlers.push(handler);
16
- } else {
17
- all.set(type, [
18
- handler
19
- ]);
20
- }
21
- },
22
- once (type, handler) {
23
- let fn = handler;
24
- handler = (...args)=>{
25
- evt.off(type, fn);
26
- fn(...args);
27
- };
28
- const handlers = all.get(type);
29
- if (handlers) {
30
- handlers.push(handler);
31
- } else {
32
- all.set(type, [
33
- handler
34
- ]);
35
- }
36
- },
37
- off (type, handler) {
38
- const handlers = all.get(type);
39
- if (handlers) {
40
- if (handler) {
41
- handlers.splice(handlers.indexOf(handler) >>> 0, 1);
42
- } else {
43
- all.set(type, []);
44
- }
45
- }
46
- },
47
- /**
48
- * Invoke all handlers for the given type.
49
- * If present, `'*'` handlers are invoked after type-matched handlers.
50
- *
51
- * Note: Manually firing '*' handlers is not supported.
52
- *
53
- * @param {string|symbol} type The event type to invoke
54
- * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler
55
- * @memberOf createEmitter
56
- */ emit (type, evt) {
57
- let handlers = all.get(type);
58
- let ctx = {
59
- type,
60
- event: evt
61
- };
62
- if (handlers) {
63
- handlers.slice().map((handler)=>{
64
- handler(ctx);
65
- });
66
- }
67
- handlers = all.get('*');
68
- if (handlers) {
69
- handlers.slice().map((handler)=>{
70
- handler(ctx);
71
- });
72
- }
73
- }
74
- };
75
- }
76
-
77
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/mitt/index.ts"],"sourcesContent":["export type EventType = string | symbol;\n\ntype EventPayload<T = EventType, E = unknown> = { type: T; event: E };\n\nexport type Handler<T = EventType, E = unknown> = (evt: { type: T; event: E }) => void;\n\n// An array of all currently registered event handlers for a type\nexport type EventHandlerList<T = unknown> = Array<Handler<EventType, T>>;\n\n// A map of event types and their corresponding event handlers.\nexport type EventHandlerMap<Events extends Record<EventType, unknown>> = Map<\n keyof Events | '*',\n EventHandlerList<Events[keyof Events]>\n>;\n\nexport interface Emitter<Events extends Record<EventType, unknown>> {\n all: EventHandlerMap<Events>;\n\n on<Key extends keyof Events>(type: Key, handler: Handler<Key, Events[Key]>): void;\n\n on(type: '*', handler: Handler<Events>): void;\n\n once<Key extends keyof Events>(type: Key, handler: Handler<Key, Events[Key]>): void;\n\n once(type: '*', handler: Handler<Events>): void;\n\n off<Key extends keyof Events>(type: Key, handler?: Handler<Key, Events[Key]>): void;\n\n off(type: '*', handler: Handler<Events>): void;\n\n emit<Key extends keyof Events>(type: Key, event: Events[Key]): void;\n\n emit<Key extends keyof Events>(type: undefined extends Events[Key] ? Key : never): void;\n}\n\n/**\n * Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name createEmitter\n * @returns {Emitter}\n */\nexport default function createEmitter<Events extends Record<EventType, unknown>>(\n all?: EventHandlerMap<Events>,\n): Emitter<Events> {\n type GenericEventHandler = Handler<EventType, Events[keyof Events]>;\n all = all || new Map();\n let evt: Emitter<Events>;\n return (evt = {\n /**\n * A Map of event names to registered handler functions.\n */\n all,\n\n on(type: EventType, handler: GenericEventHandler) {\n const handlers: Array<GenericEventHandler> | undefined = all!.get(type);\n if (handlers) {\n handlers.push(handler);\n } else {\n all!.set(type, [handler]);\n }\n },\n\n once(type: EventType, handler: GenericEventHandler) {\n let fn = handler;\n handler = (...args) => {\n evt.off(type, fn);\n fn(...args);\n };\n const handlers: Array<GenericEventHandler> | undefined = all!.get(type);\n if (handlers) {\n handlers.push(handler);\n } else {\n all!.set(type, [handler]);\n }\n },\n\n off(type: EventType, handler?: GenericEventHandler) {\n const handlers: Array<GenericEventHandler> | undefined = all!.get(type);\n if (handlers) {\n if (handler) {\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n } else {\n all!.set(type, []);\n }\n }\n },\n\n /**\n * Invoke all handlers for the given type.\n * If present, `'*'` handlers are invoked after type-matched handlers.\n *\n * Note: Manually firing '*' handlers is not supported.\n *\n * @param {string|symbol} type The event type to invoke\n * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n * @memberOf createEmitter\n */\n emit(type: EventType, evt?: any) {\n let handlers = all!.get(type);\n let ctx: EventPayload = { type, event: evt };\n if (handlers) {\n (handlers as EventHandlerList).slice().map((handler) => {\n handler(ctx);\n });\n }\n\n handlers = all!.get('*');\n if (handlers) {\n (handlers as EventHandlerList).slice().map((handler) => {\n handler(ctx);\n });\n }\n },\n } as Emitter<Events>);\n}\n"],"names":["createEmitter","all","Map","evt","on","type","handler","handlers","get","push","set","once","fn","args","off","splice","indexOf","emit","ctx","event","slice","map"],"mappings":"AAmCA;;;;CAIC,GACD,eAAe,SAASA,cACtBC,GAA6B;IAG7BA,MAAMA,OAAO,IAAIC;IACjB,IAAIC;IACJ,OAAQA,MAAM;QACZ;;KAEC,GACDF;QAEAG,IAAGC,IAAe,EAAEC,OAA4B;YAC9C,MAAMC,WAAmDN,IAAKO,GAAG,CAACH;YAClE,IAAIE,UAAU;gBACZA,SAASE,IAAI,CAACH;YAChB,OAAO;gBACLL,IAAKS,GAAG,CAACL,MAAM;oBAACC;iBAAQ;YAC1B;QACF;QAEAK,MAAKN,IAAe,EAAEC,OAA4B;YAChD,IAAIM,KAAKN;YACTA,UAAU,CAAC,GAAGO;gBACZV,IAAIW,GAAG,CAACT,MAAMO;gBACdA,MAAMC;YACR;YACA,MAAMN,WAAmDN,IAAKO,GAAG,CAACH;YAClE,IAAIE,UAAU;gBACZA,SAASE,IAAI,CAACH;YAChB,OAAO;gBACLL,IAAKS,GAAG,CAACL,MAAM;oBAACC;iBAAQ;YAC1B;QACF;QAEAQ,KAAIT,IAAe,EAAEC,OAA6B;YAChD,MAAMC,WAAmDN,IAAKO,GAAG,CAACH;YAClE,IAAIE,UAAU;gBACZ,IAAID,SAAS;oBACXC,SAASQ,MAAM,CAACR,SAASS,OAAO,CAACV,aAAa,GAAG;gBACnD,OAAO;oBACLL,IAAKS,GAAG,CAACL,MAAM,EAAE;gBACnB;YACF;QACF;QAEA;;;;;;;;;KASC,GACDY,MAAKZ,IAAe,EAAEF,GAAS;YAC7B,IAAII,WAAWN,IAAKO,GAAG,CAACH;YACxB,IAAIa,MAAoB;gBAAEb;gBAAMc,OAAOhB;YAAI;YAC3C,IAAII,UAAU;gBACXA,SAA8Ba,KAAK,GAAGC,GAAG,CAAC,CAACf;oBAC1CA,QAAQY;gBACV;YACF;YAEAX,WAAWN,IAAKO,GAAG,CAAC;YACpB,IAAID,UAAU;gBACXA,SAA8Ba,KAAK,GAAGC,GAAG,CAAC,CAACf;oBAC1CA,QAAQY;gBACV;YACF;QACF;IACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/modules/isModule.ts"],"sourcesContent":["/**\n * Check is ESM Module\n */\nexport function isModule(o: any): o is Module {\n return o && o[Symbol.toStringTag] === 'Module';\n}\n\nexport interface Module {\n [Symbol.toStringTag]: 'Module';\n default?: any;\n\n [k: string | symbol]: any;\n}\n"],"names":["isModule","o","Symbol","toStringTag"],"mappings":"AAAA;;CAEC,GACD,OAAO,SAASA,SAASC,CAAM;IAC7B,OAAOA,KAAKA,CAAC,CAACC,OAAOC,WAAW,CAAC,KAAK;AACxC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/modules/parseModuleId.ts"],"sourcesContent":["// https://regex101.com/r/eMcXQ9/1\nconst regModuleId =\n /^(?<n>(?:@(?<org>[a-z0-9-~][a-z0-9-._~]*)\\/)?(?<pkg>[a-z0-9-~][a-z0-9-._~]*))(?:@(?<v>[-a-z0-9><=_.^~]+))?(?<p>\\/[^\\r\\n]*)?$/;\n\nexport type ParsedModuleId = {\n id: string; // name@version\n name: string; // @org/pkg, pkg\n version?: string; // 1.1.1\n range: string; // version, tag, range\n pkg: string;\n path?: string;\n org?: string;\n versioned: boolean; // is module id contain a version specifier\n} & (\n | { scoped: false }\n | {\n scoped: true;\n org: string;\n }\n);\n\n/**\n * Parse NPM module id\n *\n * @example\n * parseModuleId('@wener/reaction@latest/index.js')\n * // { id: '@wener/reaction@latest', name: '@wener/reaction', version: 'latest', range: 'latest', pkg: 'reaction', path: '/index.js', scoped: true, org: 'wener' }\n */\nexport function parseModuleId(s: string): ParsedModuleId | undefined {\n const groups = s.match(regModuleId)?.groups;\n if (!groups) {\n return undefined;\n }\n const { n: name, v: version, p: path, org, pkg } = groups;\n const scoped = Boolean(org);\n const v = /^\\d+\\.\\d+\\.\\d+/.test(version) ? version : undefined;\n const range = version || 'latest';\n const o: ParsedModuleId = {\n id: `${name}@${range}`,\n name,\n range,\n scoped,\n pkg,\n org,\n versioned: Boolean(version),\n };\n if (v) {\n o.version = v;\n }\n if (path) {\n o.path = path;\n }\n if (!o.scoped) {\n delete o.org;\n }\n return o;\n}\n"],"names":["regModuleId","parseModuleId","s","groups","match","undefined","n","name","v","version","p","path","org","pkg","scoped","Boolean","test","range","o","id","versioned"],"mappings":"AAAA,kCAAkC;AAClC,MAAMA,cACJ;AAmBF;;;;;;CAMC,GACD,OAAO,SAASC,cAAcC,CAAS;IACrC,MAAMC,SAASD,EAAEE,KAAK,CAACJ,cAAcG;IACrC,IAAI,CAACA,QAAQ;QACX,OAAOE;IACT;IACA,MAAM,EAAEC,GAAGC,IAAI,EAAEC,GAAGC,OAAO,EAAEC,GAAGC,IAAI,EAAEC,GAAG,EAAEC,GAAG,EAAE,GAAGV;IACnD,MAAMW,SAASC,QAAQH;IACvB,MAAMJ,IAAI,iBAAiBQ,IAAI,CAACP,WAAWA,UAAUJ;IACrD,MAAMY,QAAQR,WAAW;IACzB,MAAMS,IAAoB;QACxBC,IAAI,GAAGZ,KAAK,CAAC,EAAEU,OAAO;QACtBV;QACAU;QACAH;QACAD;QACAD;QACAQ,WAAWL,QAAQN;IACrB;IACA,IAAID,GAAG;QACLU,EAAET,OAAO,GAAGD;IACd;IACA,IAAIG,MAAM;QACRO,EAAEP,IAAI,GAAGA;IACX;IACA,IAAI,CAACO,EAAEJ,MAAM,EAAE;QACb,OAAOI,EAAEN,GAAG;IACd;IACA,OAAOM;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/objects/computeIfAbsent.ts"],"sourcesContent":["export function computeIfAbsent<K extends WeakKey, V>(map: WeakMap<K, V>, key: K, fn: () => V): V;\nexport function computeIfAbsent<K, V>(map: Map<K, V>, key: K, fn: () => V): V;\nexport function computeIfAbsent<K extends string | symbol | number, V>(map: Record<K, V>, key: K, fn: () => V): V;\nexport function computeIfAbsent(map: any, key: any, fn: () => any): any {\n if (map instanceof Map || map instanceof WeakMap) {\n if (!map.has(key)) {\n map.set(key, fn());\n }\n return map.get(key)!;\n }\n\n if (!map[key]) {\n map[key] = fn();\n }\n return map[key];\n}\n"],"names":["computeIfAbsent","map","key","fn","Map","WeakMap","has","set","get"],"mappings":"AAGA,OAAO,SAASA,gBAAgBC,GAAQ,EAAEC,GAAQ,EAAEC,EAAa;IAC/D,IAAIF,eAAeG,OAAOH,eAAeI,SAAS;QAChD,IAAI,CAACJ,IAAIK,GAAG,CAACJ,MAAM;YACjBD,IAAIM,GAAG,CAACL,KAAKC;QACf;QACA,OAAOF,IAAIO,GAAG,CAACN;IACjB;IAEA,IAAI,CAACD,GAAG,CAACC,IAAI,EAAE;QACbD,GAAG,CAACC,IAAI,GAAGC;IACb;IACA,OAAOF,GAAG,CAACC,IAAI;AACjB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/objects/get.ts"],"sourcesContent":["import { parseObjectPath, type ObjectKey } from './parseObjectPath';\n\n/**\n * get by path\n *\n * {@link https://github.com/developit/dlv dlv}\n */\nexport function get<O extends object, P extends ObjectKey, OrElse extends unknown>(\n obj: O,\n key: P | P[],\n def?: OrElse,\n): ResolveObjectPathType<O, P, OrElse> {\n const undef = undefined;\n const path = parseObjectPath(key);\n let out: any = obj;\n for (const i of path) {\n out = out ? out[i] : undef;\n }\n return out === undef ? def : out;\n}\n\n/**\n * It tries to resolve the path of the given object, otherwise it will return OrElse\n *\n * {@link https://github.com/Pouja/typescript-deep-path-safe typescript-deep-path-safe}\n */\nexport type ResolveObjectPathType<\n ObjectType,\n Path extends string | symbol | number,\n OrElse,\n> = Path extends keyof ObjectType\n ? ObjectType[Path]\n : Path extends `${infer LeftSide}.${infer RightSide}`\n ? LeftSide extends keyof ObjectType\n ? ResolveObjectPathType<ObjectType[LeftSide], RightSide, OrElse>\n : Path extends `${infer LeftSide}[${number}].${infer RightSide}`\n ? LeftSide extends keyof ObjectType\n ? ObjectType[LeftSide] extends Array<infer U>\n ? ResolveObjectPathType<U, RightSide, OrElse>\n : OrElse\n : OrElse\n : OrElse\n : Path extends `${infer LeftSide}[${number}]`\n ? LeftSide extends keyof ObjectType\n ? ObjectType[LeftSide] extends Array<infer U>\n ? U\n : OrElse\n : OrElse\n : OrElse;\n"],"names":["parseObjectPath","get","obj","key","def","undef","undefined","path","out","i"],"mappings":"AAAA,SAASA,eAAe,QAAwB,oBAAoB;AAEpE;;;;CAIC,GACD,OAAO,SAASC,IACdC,GAAM,EACNC,GAAY,EACZC,GAAY;IAEZ,MAAMC,QAAQC;IACd,MAAMC,OAAOP,gBAAgBG;IAC7B,IAAIK,MAAWN;IACf,KAAK,MAAMO,KAAKF,KAAM;QACpBC,MAAMA,MAAMA,GAAG,CAACC,EAAE,GAAGJ;IACvB;IACA,OAAOG,QAAQH,QAAQD,MAAMI;AAC/B"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/objects/get.test-d.ts"],"sourcesContent":["import { expectTypeOf, test } from 'vitest';\nimport { get } from './get';\n\ninterface TestClass {\n normal: string;\n nested: {\n a: number;\n b: {\n c: boolean;\n };\n };\n arr: number[];\n nestedArr: {\n sum: number;\n other: null;\n }[];\n deep: {\n arr: string[];\n };\n deeplvl1: {\n deeplvl2: {\n deeplvl3: {\n deeplvl4: {\n value: RegExp;\n };\n }[];\n };\n }[];\n}\n\ntest('get typing', () => {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const obj = {} as TestClass;\n expectTypeOf(get(obj, 'nested.a', null)).toMatchTypeOf<number>();\n expectTypeOf(get(obj, 'normal', null)).toMatchTypeOf<string>();\n expectTypeOf(get(obj, 'nested.a')).toMatchTypeOf<number>();\n expectTypeOf(get(obj, 'nested.b.c')).toMatchTypeOf<boolean>();\n expectTypeOf(get(obj, 'arr')).toMatchTypeOf<number[]>();\n expectTypeOf(get(obj, 'arr[13]')).toMatchTypeOf<number>();\n // @ts-ignore\n expectTypeOf(get(obj, 'arr.13')).toMatchTypeOf<number>();\n expectTypeOf(get(obj, 'nestedArr[3].other')).toMatchTypeOf<null>();\n // @ts-ignore\n expectTypeOf(get(obj, 'deep.deep')).toMatchTypeOf<string[]>();\n expectTypeOf(get(obj, 'deep.arr[333]')).toMatchTypeOf<string>();\n expectTypeOf(get(obj, 'deep.arr[333].length')).toMatchTypeOf<number>();\n // @ts-ignore\n expectTypeOf(get(obj, 'nested[\"b\"][\"c\"]')).toMatchTypeOf<boolean>();\n // @ts-ignore\n expectTypeOf(get(obj, '')).toMatchTypeOf<never>();\n expectTypeOf(get(obj, '', 3)).toMatchTypeOf<number>();\n // @ts-ignore\n expectTypeOf(get(obj, 'nested.asdfasdf')).toMatchTypeOf<never>();\n expectTypeOf(get(obj, 'deeplvl1[1].deeplvl2.deeplvl3[88].deeplvl4.value')).toMatchTypeOf<RegExp>();\n // @ts-ignore\n expectTypeOf(get(obj, 'deeplvl1[1].deeplvl2.deeplvl1[88].deeplvl4.value')).toMatchTypeOf<never>();\n expectTypeOf(get(obj, 'deeplvl1[1].deeplvl2.deeplvl1[88].deeplvl4.value', obj)).toMatchTypeOf<TestClass>();\n expectTypeOf(get(obj, 'nested[\"dd\"]', '')).toMatchTypeOf<string>();\n});\n"],"names":["expectTypeOf","test","get","obj","toMatchTypeOf"],"mappings":"AAAA,SAASA,YAAY,EAAEC,IAAI,QAAQ,SAAS;AAC5C,SAASC,GAAG,QAAQ,QAAQ;AA6B5BD,KAAK,cAAc;IACjB,yEAAyE;IACzE,MAAME,MAAM,CAAC;IACbH,aAAaE,IAAIC,KAAK,YAAY,OAAOC,aAAa;IACtDJ,aAAaE,IAAIC,KAAK,UAAU,OAAOC,aAAa;IACpDJ,aAAaE,IAAIC,KAAK,aAAaC,aAAa;IAChDJ,aAAaE,IAAIC,KAAK,eAAeC,aAAa;IAClDJ,aAAaE,IAAIC,KAAK,QAAQC,aAAa;IAC3CJ,aAAaE,IAAIC,KAAK,YAAYC,aAAa;IAC/C,aAAa;IACbJ,aAAaE,IAAIC,KAAK,WAAWC,aAAa;IAC9CJ,aAAaE,IAAIC,KAAK,uBAAuBC,aAAa;IAC1D,aAAa;IACbJ,aAAaE,IAAIC,KAAK,cAAcC,aAAa;IACjDJ,aAAaE,IAAIC,KAAK,kBAAkBC,aAAa;IACrDJ,aAAaE,IAAIC,KAAK,yBAAyBC,aAAa;IAC5D,aAAa;IACbJ,aAAaE,IAAIC,KAAK,qBAAqBC,aAAa;IACxD,aAAa;IACbJ,aAAaE,IAAIC,KAAK,KAAKC,aAAa;IACxCJ,aAAaE,IAAIC,KAAK,IAAI,IAAIC,aAAa;IAC3C,aAAa;IACbJ,aAAaE,IAAIC,KAAK,oBAAoBC,aAAa;IACvDJ,aAAaE,IAAIC,KAAK,qDAAqDC,aAAa;IACxF,aAAa;IACbJ,aAAaE,IAAIC,KAAK,qDAAqDC,aAAa;IACxFJ,aAAaE,IAAIC,KAAK,oDAAoDA,MAAMC,aAAa;IAC7FJ,aAAaE,IAAIC,KAAK,gBAAgB,KAAKC,aAAa;AAC1D"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/objects/merge/index.ts"],"sourcesContent":["export { merge, type MergeOptions } from './merge';\n"],"names":["merge"],"mappings":"AAAA,SAASA,KAAK,QAA2B,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/objects/merge/isMergeableObject.ts"],"sourcesContent":["// https://github.com/TehShrike/is-mergeable-object/blob/master/index.js\n\nexport function isMergeableObject(value: any) {\n return isNonNullObject(value) && !isSpecial(value);\n}\n\nfunction isNonNullObject(value: any) {\n return !!value && typeof value === 'object';\n}\n\nfunction isSpecial(value: any) {\n var stringValue = Object.prototype.toString.call(value);\n\n return stringValue === '[object RegExp]' || stringValue === '[object Date]' || isReactElement(value);\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value: any) {\n return value.$$typeof === REACT_ELEMENT_TYPE;\n}\n"],"names":["isMergeableObject","value","isNonNullObject","isSpecial","stringValue","Object","prototype","toString","call","isReactElement","canUseSymbol","Symbol","for","REACT_ELEMENT_TYPE","$$typeof"],"mappings":"AAAA,wEAAwE;AAExE,OAAO,SAASA,kBAAkBC,KAAU;IAC1C,OAAOC,gBAAgBD,UAAU,CAACE,UAAUF;AAC9C;AAEA,SAASC,gBAAgBD,KAAU;IACjC,OAAO,CAAC,CAACA,SAAS,OAAOA,UAAU;AACrC;AAEA,SAASE,UAAUF,KAAU;IAC3B,IAAIG,cAAcC,OAAOC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACP;IAEjD,OAAOG,gBAAgB,qBAAqBA,gBAAgB,mBAAmBK,eAAeR;AAChG;AAEA,6IAA6I;AAC7I,IAAIS,eAAe,OAAOC,WAAW,cAAcA,OAAOC,GAAG;AAC7D,IAAIC,qBAAqBH,eAAeC,OAAOC,GAAG,CAAC,mBAAmB;AAEtE,SAASH,eAAeR,KAAU;IAChC,OAAOA,MAAMa,QAAQ,KAAKD;AAC5B"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/objects/merge/merge.ts"],"sourcesContent":["// https://github.com/TehShrike/deepmerge/blob/master/index.js\nimport { isMergeableObject as defaultIsMergeableObject } from './isMergeableObject';\n\nfunction emptyTarget(val: any) {\n return Array.isArray(val) ? [] : {};\n}\n\nfunction cloneUnlessOtherwiseSpecified(value: any, options: Options) {\n return options.clone !== false && options.isMergeableObject(value)\n ? merge(emptyTarget(value), value, options)\n : value;\n}\n\nfunction defaultArrayMerge(target: any, source: any, options: Options) {\n return target.concat(source).map(function (element: any) {\n return cloneUnlessOtherwiseSpecified(element, options);\n });\n}\n\ntype Merger = (x: any, y: any, options: Options) => any;\n\nfunction getMergeFunction(key: any, options: Options): Merger {\n if (!options.customMerge) {\n return merge;\n }\n var customMerge = options.customMerge(key);\n return typeof customMerge === 'function' ? customMerge : merge;\n}\n\nfunction getEnumerableOwnPropertySymbols(target: any): any {\n return Object.getOwnPropertySymbols\n ? Object.getOwnPropertySymbols(target).filter(function (symbol) {\n return Object.propertyIsEnumerable.call(target, symbol);\n })\n : [];\n}\n\nfunction getKeys(target: any) {\n return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));\n}\n\nfunction propertyIsOnObject(object: any, property: any) {\n try {\n return property in object;\n } catch (_) {\n return false;\n }\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target: any, key: string) {\n return (\n propertyIsOnObject(target, key) && // Properties are safe to merge if they don't exist in the target yet,\n !(\n Object.hasOwnProperty.call(target, key) && // unsafe if they exist up the prototype chain,\n Object.propertyIsEnumerable.call(target, key)\n )\n ); // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target: any, source: any, options: Options) {\n const destination: Record<string, any> = {};\n if (options.isMergeableObject(target)) {\n getKeys(target).forEach((key) => {\n destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n });\n }\n getKeys(source).forEach((key) => {\n if (propertyIsUnsafe(target, key)) {\n return;\n }\n\n if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n destination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n } else {\n destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n }\n });\n return destination;\n}\n\nexport function merge<T1, T2>(x: Partial<T1>, y: Partial<T2>, options?: MergeOptions): T1 & T2;\nexport function merge<T>(x: Partial<T>, y: Partial<T>, options?: MergeOptions): T;\n\nexport function merge(target: any, source: any, opts?: any): any {\n const options = {\n arrayMerge: defaultArrayMerge,\n isMergeableObject: defaultIsMergeableObject,\n ...opts,\n // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n // implementations can use it. The caller may not replace it.\n cloneUnlessOtherwiseSpecified,\n } as Options & ArrayMergeOptions;\n\n let sourceIsArray = Array.isArray(source);\n let targetIsArray = Array.isArray(target);\n let sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified(source, options);\n } else if (sourceIsArray) {\n return options.arrayMerge(target, source, options);\n } else {\n return mergeObject(target, source, options);\n }\n}\n\nmerge.all = function deepmergeAll(array: any[], options?: MergeOptions) {\n if (!Array.isArray(array)) {\n throw new Error('first argument should be an array');\n }\n\n return array.reduce(function (prev, next) {\n return merge(prev, next, options);\n }, {});\n};\n\nexport interface MergeOptions {\n arrayMerge?(target: any[], source: any[], options?: ArrayMergeOptions): any[];\n\n clone?: boolean;\n customMerge?: (key: string, options?: MergeOptions) => ((x: any, y: any) => any) | undefined;\n\n isMergeableObject?(value: object): boolean;\n}\n\ninterface Options {\n arrayMerge(target: any[], source: any[], options?: ArrayMergeOptions): any[];\n\n clone: boolean;\n customMerge: (key: string, options?: MergeOptions) => ((x: any, y: any) => any) | undefined;\n\n isMergeableObject(value: object): boolean;\n}\n\nexport interface ArrayMergeOptions {\n isMergeableObject(value: object): boolean;\n\n cloneUnlessOtherwiseSpecified(value: object, options?: MergeOptions): object;\n}\n"],"names":["isMergeableObject","defaultIsMergeableObject","emptyTarget","val","Array","isArray","cloneUnlessOtherwiseSpecified","value","options","clone","merge","defaultArrayMerge","target","source","concat","map","element","getMergeFunction","key","customMerge","getEnumerableOwnPropertySymbols","Object","getOwnPropertySymbols","filter","symbol","propertyIsEnumerable","call","getKeys","keys","propertyIsOnObject","object","property","_","propertyIsUnsafe","hasOwnProperty","mergeObject","destination","forEach","opts","arrayMerge","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","all","deepmergeAll","array","Error","reduce","prev","next"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/objects/parseObjectPath.ts"],"sourcesContent":["export type ObjectKey = string | symbol | number;\nexport type ObjectPath = Array<ObjectKey>;\nexport type ObjectPathLike = ObjectKey | ObjectPath;\n\n/**\n * Parse object path\n *\n * @example\n * parseObjectPath('a.b.c') // => ['a', 'b', 'c']\n * parseObjectPath('a[0].b') // => ['a', 0, 'b']\n * parseObjectPath('a[0][1]') // => ['a', 0, 1]\n *\n */\nexport function parseObjectPath(s: ObjectPathLike): ObjectPath {\n if (typeof s !== 'string') {\n return Array.isArray(s) ? s : [s];\n }\n const parts = s.split('.');\n // fast path\n if (!s.includes('[')) {\n return parts;\n }\n\n const result = [];\n for (const part of parts) {\n if (!part.endsWith(']')) {\n result.push(part);\n } else {\n // a[0][1]\n // try parseInt can extend to support a[-1] to use .at access\n const s = part.split('[');\n for (let sub of s) {\n if (sub.endsWith(']')) {\n sub = sub.slice(0, -1);\n }\n result.push(sub);\n }\n }\n }\n return result;\n}\n"],"names":["parseObjectPath","s","Array","isArray","parts","split","includes","result","part","endsWith","push","sub","slice"],"mappings":"AAIA;;;;;;;;CAQC,GACD,OAAO,SAASA,gBAAgBC,CAAiB;IAC/C,IAAI,OAAOA,MAAM,UAAU;QACzB,OAAOC,MAAMC,OAAO,CAACF,KAAKA,IAAI;YAACA;SAAE;IACnC;IACA,MAAMG,QAAQH,EAAEI,KAAK,CAAC;IACtB,YAAY;IACZ,IAAI,CAACJ,EAAEK,QAAQ,CAAC,MAAM;QACpB,OAAOF;IACT;IAEA,MAAMG,SAAS,EAAE;IACjB,KAAK,MAAMC,QAAQJ,MAAO;QACxB,IAAI,CAACI,KAAKC,QAAQ,CAAC,MAAM;YACvBF,OAAOG,IAAI,CAACF;QACd,OAAO;YACL,UAAU;YACV,6DAA6D;YAC7D,MAAMP,IAAIO,KAAKH,KAAK,CAAC;YACrB,KAAK,IAAIM,OAAOV,EAAG;gBACjB,IAAIU,IAAIF,QAAQ,CAAC,MAAM;oBACrBE,MAAMA,IAAIC,KAAK,CAAC,GAAG,CAAC;gBACtB;gBACAL,OAAOG,IAAI,CAACC;YACd;QACF;IACF;IACA,OAAOJ;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/objects/set.ts"],"sourcesContent":["import { parseObjectPath, type ObjectKey, type ObjectPath } from './parseObjectPath';\n\n/**\n * Deep set\n *\n * {@link https://github.com/lukeed/dset dset}\n */\nexport function set<T extends object, V>(obj: T, key: ObjectKey | ObjectPath, val: V, merging = true) {\n const path = parseObjectPath(key);\n let i = 0;\n const len = path.length;\n let current: any = obj;\n let x, k;\n while (i < len) {\n k = path[i++];\n if (k === '__proto__' || k === 'constructor' || k === 'prototype') break;\n // noinspection PointlessArithmeticExpressionJS\n current = current[k] =\n i === len\n ? merging\n ? merge(current[k], val)\n : val\n : typeof (x = current[k]) === typeof path\n ? x\n : // @ts-expect-error hacky type check\n path[i] * 0 !== 0 || !!~('' + path[i]).indexOf('.') // eslint-disable-line\n ? {}\n : [];\n }\n}\n\nexport function merge(a: any, b: any) {\n let k;\n if (typeof a === 'object' && typeof b === 'object') {\n if (Array.isArray(a) && Array.isArray(b)) {\n for (k = 0; k < b.length; k++) {\n a[k] = merge(a[k], b[k]);\n }\n } else {\n for (k in b) {\n if (k === '__proto__' || k === 'constructor' || k === 'prototype') break;\n a[k] = merge(a[k], b[k]);\n }\n }\n return a;\n }\n return b;\n}\n"],"names":["parseObjectPath","set","obj","key","val","merging","path","i","len","length","current","x","k","merge","indexOf","a","b","Array","isArray"],"mappings":"AAAA,SAASA,eAAe,QAAyC,oBAAoB;AAErF;;;;CAIC,GACD,OAAO,SAASC,IAAyBC,GAAM,EAAEC,GAA2B,EAAEC,GAAM,EAAEC,UAAU,IAAI;IAClG,MAAMC,OAAON,gBAAgBG;IAC7B,IAAII,IAAI;IACR,MAAMC,MAAMF,KAAKG,MAAM;IACvB,IAAIC,UAAeR;IACnB,IAAIS,GAAGC;IACP,MAAOL,IAAIC,IAAK;QACdI,IAAIN,IAAI,CAACC,IAAI;QACb,IAAIK,MAAM,eAAeA,MAAM,iBAAiBA,MAAM,aAAa;QACnE,+CAA+C;QAC/CF,UAAUA,OAAO,CAACE,EAAE,GAClBL,MAAMC,MACFH,UACEQ,MAAMH,OAAO,CAACE,EAAE,EAAER,OAClBA,MACF,OAAQO,CAAAA,IAAID,OAAO,CAACE,EAAE,AAAD,MAAO,OAAON,OACjCK,IAEAL,IAAI,CAACC,EAAE,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,AAAC,CAAA,KAAKD,IAAI,CAACC,EAAE,AAAD,EAAGO,OAAO,CAAC,KAAK,sBAAsB;WACxE,CAAC,IACD,EAAE;IACd;AACF;AAEA,OAAO,SAASD,MAAME,CAAM,EAAEC,CAAM;IAClC,IAAIJ;IACJ,IAAI,OAAOG,MAAM,YAAY,OAAOC,MAAM,UAAU;QAClD,IAAIC,MAAMC,OAAO,CAACH,MAAME,MAAMC,OAAO,CAACF,IAAI;YACxC,IAAKJ,IAAI,GAAGA,IAAII,EAAEP,MAAM,EAAEG,IAAK;gBAC7BG,CAAC,CAACH,EAAE,GAAGC,MAAME,CAAC,CAACH,EAAE,EAAEI,CAAC,CAACJ,EAAE;YACzB;QACF,OAAO;YACL,IAAKA,KAAKI,EAAG;gBACX,IAAIJ,MAAM,eAAeA,MAAM,iBAAiBA,MAAM,aAAa;gBACnEG,CAAC,CAACH,EAAE,GAAGC,MAAME,CAAC,CAACH,EAAE,EAAEI,CAAC,CAACJ,EAAE;YACzB;QACF;QACA,OAAOG;IACT;IACA,OAAOC;AACT"}
@@ -1,40 +0,0 @@
1
- /**
2
- * @see AsyncDisposableStack
3
- */ export class AsyncCloser {
4
- closers = [];
5
- defer(closer) {
6
- if (!closer) {
7
- return;
8
- }
9
- this.closers.push(closer);
10
- }
11
- add(closer) {
12
- if (!closer) {
13
- return closer;
14
- }
15
- this.closers.push(closer);
16
- return closer;
17
- }
18
- async [Symbol.asyncDispose]() {
19
- for (let closer of this.closers){
20
- let o;
21
- if (typeof closer === 'function') {
22
- o = closer();
23
- } else if (Symbol.asyncDispose in closer) {
24
- o = closer[Symbol.asyncDispose]();
25
- } else if (Symbol.dispose in closer) {
26
- closer[Symbol.dispose]();
27
- } else {
28
- o = closer.close();
29
- }
30
- if (o && typeof o.then === 'function') {
31
- await o;
32
- }
33
- }
34
- }
35
- close() {
36
- return this[Symbol.asyncDispose]();
37
- }
38
- }
39
-
40
- //# sourceMappingURL=AsyncCloser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/runtime/AsyncCloser.ts"],"sourcesContent":["type AsyncClosable = { close(): void | Promise<void> } | (() => void | Promise<void>) | AsyncDisposable | Disposable;\n\n/**\n * @see AsyncDisposableStack\n */\nexport class AsyncCloser implements AsyncDisposable {\n closers: Array<AsyncClosable> = [];\n\n defer(closer: AsyncClosable | null | undefined) {\n if (!closer) {\n return;\n }\n this.closers.push(closer);\n }\n\n add<T extends AsyncClosable | null | undefined>(closer: T): T {\n if (!closer) {\n return closer;\n }\n this.closers.push(closer);\n return closer;\n }\n\n async [Symbol.asyncDispose]() {\n for (let closer of this.closers) {\n let o;\n if (typeof closer === 'function') {\n o = closer();\n } else if (Symbol.asyncDispose in closer) {\n o = closer[Symbol.asyncDispose]();\n } else if (Symbol.dispose in closer) {\n closer[Symbol.dispose]();\n } else {\n o = closer.close();\n }\n if (o && typeof o.then === 'function') {\n await o;\n }\n }\n }\n\n close() {\n return this[Symbol.asyncDispose]();\n }\n}\n"],"names":["AsyncCloser","closers","defer","closer","push","add","Symbol","asyncDispose","o","dispose","close","then"],"mappings":"AAEA;;CAEC,GACD,OAAO,MAAMA;IACXC,UAAgC,EAAE,CAAC;IAEnCC,MAAMC,MAAwC,EAAE;QAC9C,IAAI,CAACA,QAAQ;YACX;QACF;QACA,IAAI,CAACF,OAAO,CAACG,IAAI,CAACD;IACpB;IAEAE,IAAgDF,MAAS,EAAK;QAC5D,IAAI,CAACA,QAAQ;YACX,OAAOA;QACT;QACA,IAAI,CAACF,OAAO,CAACG,IAAI,CAACD;QAClB,OAAOA;IACT;IAEA,MAAM,CAACG,OAAOC,YAAY,CAAC,GAAG;QAC5B,KAAK,IAAIJ,UAAU,IAAI,CAACF,OAAO,CAAE;YAC/B,IAAIO;YACJ,IAAI,OAAOL,WAAW,YAAY;gBAChCK,IAAIL;YACN,OAAO,IAAIG,OAAOC,YAAY,IAAIJ,QAAQ;gBACxCK,IAAIL,MAAM,CAACG,OAAOC,YAAY,CAAC;YACjC,OAAO,IAAID,OAAOG,OAAO,IAAIN,QAAQ;gBACnCA,MAAM,CAACG,OAAOG,OAAO,CAAC;YACxB,OAAO;gBACLD,IAAIL,OAAOO,KAAK;YAClB;YACA,IAAIF,KAAK,OAAOA,EAAEG,IAAI,KAAK,YAAY;gBACrC,MAAMH;YACR;QACF;IACF;IAEAE,QAAQ;QACN,OAAO,IAAI,CAACJ,OAAOC,YAAY,CAAC;IAClC;AACF"}
@@ -1,34 +0,0 @@
1
- /**
2
- * @see DisposableStack
3
- */ export class Closer {
4
- closers = [];
5
- defer(closer) {
6
- if (!closer) {
7
- return;
8
- }
9
- this.closers.push(closer);
10
- }
11
- add(closer) {
12
- if (!closer) {
13
- return closer;
14
- }
15
- this.closers.push(closer);
16
- return closer;
17
- }
18
- [Symbol.dispose]() {
19
- for (let closer of this.closers){
20
- if (typeof closer === 'function') {
21
- closer();
22
- } else if (Symbol.dispose in closer) {
23
- closer[Symbol.dispose]();
24
- } else {
25
- closer.close();
26
- }
27
- }
28
- }
29
- close() {
30
- this[Symbol.dispose]();
31
- }
32
- }
33
-
34
- //# sourceMappingURL=Closer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/runtime/Closer.ts"],"sourcesContent":["type Closable = { close(): void } | (() => void) | Disposable;\n\n/**\n * @see DisposableStack\n */\nexport class Closer implements Disposable {\n closers: Array<Closable> = [];\n\n defer(closer: Closable | null | undefined) {\n if (!closer) {\n return;\n }\n this.closers.push(closer);\n }\n\n add<T extends Closable | null | undefined>(closer: T): T {\n if (!closer) {\n return closer;\n }\n this.closers.push(closer);\n return closer;\n }\n\n [Symbol.dispose]() {\n for (let closer of this.closers) {\n if (typeof closer === 'function') {\n closer();\n } else if (Symbol.dispose in closer) {\n closer[Symbol.dispose]();\n } else {\n closer.close();\n }\n }\n }\n\n close() {\n this[Symbol.dispose]();\n }\n}\n"],"names":["Closer","closers","defer","closer","push","add","Symbol","dispose","close"],"mappings":"AAEA;;CAEC,GACD,OAAO,MAAMA;IACXC,UAA2B,EAAE,CAAC;IAE9BC,MAAMC,MAAmC,EAAE;QACzC,IAAI,CAACA,QAAQ;YACX;QACF;QACA,IAAI,CAACF,OAAO,CAACG,IAAI,CAACD;IACpB;IAEAE,IAA2CF,MAAS,EAAK;QACvD,IAAI,CAACA,QAAQ;YACX,OAAOA;QACT;QACA,IAAI,CAACF,OAAO,CAACG,IAAI,CAACD;QAClB,OAAOA;IACT;IAEA,CAACG,OAAOC,OAAO,CAAC,GAAG;QACjB,KAAK,IAAIJ,UAAU,IAAI,CAACF,OAAO,CAAE;YAC/B,IAAI,OAAOE,WAAW,YAAY;gBAChCA;YACF,OAAO,IAAIG,OAAOC,OAAO,IAAIJ,QAAQ;gBACnCA,MAAM,CAACG,OAAOC,OAAO,CAAC;YACxB,OAAO;gBACLJ,OAAOK,KAAK;YACd;QACF;IACF;IAEAA,QAAQ;QACN,IAAI,CAACF,OAAOC,OAAO,CAAC;IACtB;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/runtime/getGlobalThis.ts"],"sourcesContent":["declare const global: typeof globalThis;\n\n/**\n * isomorphic globalThis\n *\n * globalThis supported by ff 65, Chrome 71, Node 12, babel\n *\n * non-standard globalThis supported for Alipay Miniprogram\n *\n * @see https://caniuse.com/#search=globalThis\n * @see https://v8.dev/features/globalthis\n */\nexport const getGlobalThis = (): typeof globalThis => {\n if (typeof globalThis !== 'undefined') return globalThis;\n if (typeof self !== 'undefined') return self;\n if (typeof window !== 'undefined') return window;\n if (typeof global !== 'undefined') return global as any;\n if (typeof this !== 'undefined') return this as any;\n throw new Error('Unable to locate global `this`');\n};\n"],"names":["getGlobalThis","globalThis","self","window","global","Error"],"mappings":"AAEA;;;;;;;;;CASC,GACD,OAAO,MAAMA,gBAAgB;IAC3B,IAAI,OAAOC,eAAe,aAAa,OAAOA;IAC9C,IAAI,OAAOC,SAAS,aAAa,OAAOA;IACxC,IAAI,OAAOC,WAAW,aAAa,OAAOA;IAC1C,IAAI,OAAOC,WAAW,aAAa,OAAOA;IAC1C,IAAI,OAAO,IAAI,KAAK,aAAa,OAAO,IAAI;IAC5C,MAAM,IAAIC,MAAM;AAClB,EAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/runtime/structuredClone.ts"],"sourcesContent":["/* eslint no-proto:0 */\nimport { classOf } from '../langs/classOf';\n\n/**\n * Clone an object using structured cloning algorithm\n *\n * - Chrome 98, Safari 15.4, NodeJS 17\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/structuredClone structuredClone}\n * @see {@link https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.structured-clone.js core-js}\n */\nexport const structuredClone: <T>(value: T, options?: StructuredSerializeOptions) => T =\n globalThis.structuredClone || _clone;\n\nfunction set(obj: any, key: any, val: any) {\n if (typeof val.value === 'object') val.value = _clone(val.value);\n if (!val.enumerable || val.get || val.set || !val.configurable || !val.writable || key === '__proto__') {\n Object.defineProperty(obj, key, val);\n } else obj[key] = val.value;\n}\n\n/**\n * @see {@link https://github.com/lukeed/klona/blob/master/src/full.js klona}\n */\nexport function _clone(x: any): any {\n // too complex\n // https://github.com/zloirock/core-js/blob/master/packages/core-js/modules/web.structured-clone.js\n\n if (typeof x !== 'object') return x;\n\n let i = 0;\n let k;\n let list;\n let tmp: any;\n const str = classOf(x);\n switch (str) {\n case 'Array':\n tmp = Array(x.length);\n break;\n case 'Object':\n tmp = Object.create(x.__proto__ || null);\n break;\n case 'Set':\n tmp = new Set();\n x.forEach(function (val: any) {\n tmp.add(_clone(val));\n });\n break;\n case 'Map':\n tmp = new Map();\n x.forEach(function (val: any, key: any) {\n tmp.set(_clone(key), _clone(val));\n });\n break;\n case 'Date':\n tmp = new Date(+x);\n break;\n case 'RegExp':\n tmp = new RegExp(x.source, x.flags);\n break;\n case 'DataView':\n tmp = new x.constructor(_clone(x.buffer));\n break;\n case 'ArrayBuffer':\n tmp = x.slice(0);\n break;\n default:\n // typed arrays\n if (str.endsWith('Array')) {\n // ArrayBuffer.isView(x)\n // ~> `new` bcuz `Buffer.slice` => ref\n tmp = new x.constructor(x);\n }\n }\n\n if (tmp) {\n for (list = Object.getOwnPropertySymbols(x); i < list.length; i++) {\n set(tmp, list[i], Object.getOwnPropertyDescriptor(x, list[i]));\n }\n\n for (i = 0, list = Object.getOwnPropertyNames(x); i < list.length; i++) {\n if (Object.hasOwnProperty.call(tmp, (k = list[i])) && tmp[k] === x[k]) continue;\n set(tmp, k, Object.getOwnPropertyDescriptor(x, k));\n }\n }\n\n return tmp || x;\n}\n"],"names":["classOf","structuredClone","globalThis","_clone","set","obj","key","val","value","enumerable","get","configurable","writable","Object","defineProperty","x","i","k","list","tmp","str","Array","length","create","__proto__","Set","forEach","add","Map","Date","RegExp","source","flags","constructor","buffer","slice","endsWith","getOwnPropertySymbols","getOwnPropertyDescriptor","getOwnPropertyNames","hasOwnProperty","call"],"mappings":"AAAA,qBAAqB,GACrB,SAASA,OAAO,QAAQ,mBAAmB;AAE3C;;;;;;;CAOC,GACD,OAAO,MAAMC,kBACXC,WAAWD,eAAe,IAAIE,OAAO;AAEvC,SAASC,IAAIC,GAAQ,EAAEC,GAAQ,EAAEC,GAAQ;IACvC,IAAI,OAAOA,IAAIC,KAAK,KAAK,UAAUD,IAAIC,KAAK,GAAGL,OAAOI,IAAIC,KAAK;IAC/D,IAAI,CAACD,IAAIE,UAAU,IAAIF,IAAIG,GAAG,IAAIH,IAAIH,GAAG,IAAI,CAACG,IAAII,YAAY,IAAI,CAACJ,IAAIK,QAAQ,IAAIN,QAAQ,aAAa;QACtGO,OAAOC,cAAc,CAACT,KAAKC,KAAKC;IAClC,OAAOF,GAAG,CAACC,IAAI,GAAGC,IAAIC,KAAK;AAC7B;AAEA;;CAEC,GACD,OAAO,SAASL,OAAOY,CAAM;IAC3B,cAAc;IACd,mGAAmG;IAEnG,IAAI,OAAOA,MAAM,UAAU,OAAOA;IAElC,IAAIC,IAAI;IACR,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IACJ,MAAMC,MAAMpB,QAAQe;IACpB,OAAQK;QACN,KAAK;YACHD,MAAME,MAAMN,EAAEO,MAAM;YACpB;QACF,KAAK;YACHH,MAAMN,OAAOU,MAAM,CAACR,EAAES,SAAS,IAAI;YACnC;QACF,KAAK;YACHL,MAAM,IAAIM;YACVV,EAAEW,OAAO,CAAC,SAAUnB,GAAQ;gBAC1BY,IAAIQ,GAAG,CAACxB,OAAOI;YACjB;YACA;QACF,KAAK;YACHY,MAAM,IAAIS;YACVb,EAAEW,OAAO,CAAC,SAAUnB,GAAQ,EAAED,GAAQ;gBACpCa,IAAIf,GAAG,CAACD,OAAOG,MAAMH,OAAOI;YAC9B;YACA;QACF,KAAK;YACHY,MAAM,IAAIU,KAAK,CAACd;YAChB;QACF,KAAK;YACHI,MAAM,IAAIW,OAAOf,EAAEgB,MAAM,EAAEhB,EAAEiB,KAAK;YAClC;QACF,KAAK;YACHb,MAAM,IAAIJ,EAAEkB,WAAW,CAAC9B,OAAOY,EAAEmB,MAAM;YACvC;QACF,KAAK;YACHf,MAAMJ,EAAEoB,KAAK,CAAC;YACd;QACF;YACE,eAAe;YACf,IAAIf,IAAIgB,QAAQ,CAAC,UAAU;gBACzB,wBAAwB;gBACxB,sCAAsC;gBACtCjB,MAAM,IAAIJ,EAAEkB,WAAW,CAAClB;YAC1B;IACJ;IAEA,IAAII,KAAK;QACP,IAAKD,OAAOL,OAAOwB,qBAAqB,CAACtB,IAAIC,IAAIE,KAAKI,MAAM,EAAEN,IAAK;YACjEZ,IAAIe,KAAKD,IAAI,CAACF,EAAE,EAAEH,OAAOyB,wBAAwB,CAACvB,GAAGG,IAAI,CAACF,EAAE;QAC9D;QAEA,IAAKA,IAAI,GAAGE,OAAOL,OAAO0B,mBAAmB,CAACxB,IAAIC,IAAIE,KAAKI,MAAM,EAAEN,IAAK;YACtE,IAAIH,OAAO2B,cAAc,CAACC,IAAI,CAACtB,KAAMF,IAAIC,IAAI,CAACF,EAAE,KAAMG,GAAG,CAACF,EAAE,KAAKF,CAAC,CAACE,EAAE,EAAE;YACvEb,IAAIe,KAAKF,GAAGJ,OAAOyB,wBAAwB,CAACvB,GAAGE;QACjD;IACF;IAEA,OAAOE,OAAOJ;AAChB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/schema/typebox/index.ts"],"sourcesContent":["export * as TypeBox from './typebox';\n"],"names":["TypeBox"],"mappings":"AAAA,OAAO,KAAKA,OAAO,MAAM,YAAY"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/schema/typebox/typebox.ts"],"sourcesContent":["import type { TSchema } from '@sinclair/typebox';\nimport { Value } from '@sinclair/typebox/value';\n\n// works like zod parse\nexport const Parse = <T extends TSchema>(T: T, value: unknown) =>\n // run transform, get T\n Value.Decode(\n T,\n // remove additional\n Value.Clean(\n T,\n // add missing\n Value.Default(\n T,\n // '1' -> 1\n Value.Convert(T, value),\n ),\n ),\n );\n\nexport const SafeParse = <T extends TSchema>(T: T, value: unknown) => {\n let out = Value.Clean(T, Value.Default(T, Value.Convert(T, value)));\n if (Value.Check(T, out)) {\n // decode 也会 check\n return {\n data: Value.Decode(T, out),\n success: true,\n };\n }\n return {\n errors: Array.from(Value.Errors(T, [], value)),\n success: false,\n };\n};\n"],"names":["Value","Parse","T","value","Decode","Clean","Default","Convert","SafeParse","out","Check","data","success","errors","Array","from","Errors"],"mappings":"AACA,SAASA,KAAK,QAAQ,0BAA0B;AAEhD,uBAAuB;AACvB,OAAO,MAAMC,QAAQ,CAAoBC,GAAMC,QAC7C,uBAAuB;IACvBH,MAAMI,MAAM,CACVF,GACA,oBAAoB;IACpBF,MAAMK,KAAK,CACTH,GACA,cAAc;IACdF,MAAMM,OAAO,CACXJ,GACA,WAAW;IACXF,MAAMO,OAAO,CAACL,GAAGC,UAGrB;AAEJ,OAAO,MAAMK,YAAY,CAAoBN,GAAMC;IACjD,IAAIM,MAAMT,MAAMK,KAAK,CAACH,GAAGF,MAAMM,OAAO,CAACJ,GAAGF,MAAMO,OAAO,CAACL,GAAGC;IAC3D,IAAIH,MAAMU,KAAK,CAACR,GAAGO,MAAM;QACvB,kBAAkB;QAClB,OAAO;YACLE,MAAMX,MAAMI,MAAM,CAACF,GAAGO;YACtBG,SAAS;QACX;IACF;IACA,OAAO;QACLC,QAAQC,MAAMC,IAAI,CAACf,MAAMgB,MAAM,CAACd,GAAG,EAAE,EAAEC;QACvCS,SAAS;IACX;AACF,EAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/scripts/getGenerateContext.ts"],"sourcesContent":["import fs from 'node:fs/promises';\nimport path from 'node:path';\nimport { Errors, formatBytes, type MaybePromise } from '@wener/utils';\nimport { getPackageDir } from '../server';\n\nlet _root: GenerateContext;\n\nexport interface GenerateContext {\n pkgDir: string;\n rootDataDir: string;\n rootCacheDir: string;\n dataDir: string;\n cacheDir: string;\n srcDir: string;\n cache: (url: string) => Promise<string>;\n writeData: (path: string, content: string) => Promise<void>;\n writeSrc: (path: string, content: string) => Promise<void>;\n}\n\nasync function cache(dir: string, url: string): Promise<string> {\n const key = path.basename(url);\n await fs.mkdir(path.join(dir), { recursive: true });\n const file = path.join(dir, key);\n try {\n await fs.stat(file);\n console.info('[cache] hit', url);\n return await fs.readFile(file, 'utf-8');\n } catch (e) {}\n console.info('[cache] miss', url);\n const text = await fetch(url).then((v) => {\n if (v.status >= 300) {\n throw new Error(`[cache] fetch ${url} ${v.status} ${v.statusText}`);\n }\n return v.text();\n });\n const size = new Blob([text]).size;\n console.info(`[cache] write ${file} ${formatBytes(size)} (${size})`);\n await fs.writeFile(file, text);\n return text;\n}\n\nexport function getGenerateContext(prefix?: string): MaybePromise<GenerateContext> {\n if (prefix) {\n return Promise.resolve(getGenerateContext()).then((c) => {\n const cacheDir = path.resolve(c.cacheDir, prefix);\n const dataDir = path.resolve(c.dataDir, prefix);\n const srcDir = path.resolve(c.srcDir, prefix);\n return {\n ...c,\n dataDir,\n cacheDir,\n srcDir,\n cache: (url: string) => cache(cacheDir, url),\n writeData: (file: string, content: string) => write(dataDir, file, content),\n writeSrc: (file: string, content: string) => write(srcDir, file, content),\n };\n });\n }\n return (\n _root ||\n Promise.resolve().then(async () => {\n const pkgDir = await getPackageDir();\n Errors.BadRequest.check(pkgDir, 'pkgDir not found');\n const dataDir = path.resolve(pkgDir, 'data');\n const cacheDir = path.resolve(pkgDir, 'cache');\n const srcDir = path.resolve(pkgDir, 'src');\n await fs.mkdir(cacheDir, { recursive: true });\n await fs.mkdir(dataDir, { recursive: true });\n return (_root = Object.freeze({\n pkgDir,\n dataDir,\n cacheDir,\n srcDir,\n rootCacheDir: cacheDir,\n rootDataDir: dataDir,\n cache: (url: string) => cache(cacheDir, url),\n writeData: (file: string, content: string) => write(dataDir, file, content),\n writeSrc: (file: string, content: string) => write(srcDir, file, content),\n }));\n })\n );\n}\n\nasync function write(dir: string, file: string, content: string) {\n const size = new Blob([content]).size;\n const dst = path.join(dir, file);\n let last;\n try {\n last = (await fs.stat(dst)).size;\n } catch {}\n console.info(\n `[write] ${path.relative(_root.pkgDir, dir)} ${file} ${\n last ? (last !== size ? `${formatBytes(last)} (${last}) -> ` : 'SAME SIZE ') : ''\n }${formatBytes(size)} (${size})`,\n );\n await fs.writeFile(dst, content);\n}\n"],"names":["fs","path","Errors","formatBytes","getPackageDir","_root","cache","dir","url","key","basename","mkdir","join","recursive","file","stat","console","info","readFile","e","text","fetch","then","v","status","Error","statusText","size","Blob","writeFile","getGenerateContext","prefix","Promise","resolve","c","cacheDir","dataDir","srcDir","writeData","content","write","writeSrc","pkgDir","BadRequest","check","Object","freeze","rootCacheDir","rootDataDir","dst","last","relative"],"mappings":"AAAA,OAAOA,QAAQ,mBAAmB;AAClC,OAAOC,UAAU,YAAY;AAC7B,SAASC,MAAM,EAAEC,WAAW,QAA2B,eAAe;AACtE,SAASC,aAAa,QAAQ,YAAY;AAE1C,IAAIC;AAcJ,eAAeC,MAAMC,GAAW,EAAEC,GAAW;IAC3C,MAAMC,MAAMR,KAAKS,QAAQ,CAACF;IAC1B,MAAMR,GAAGW,KAAK,CAACV,KAAKW,IAAI,CAACL,MAAM;QAAEM,WAAW;IAAK;IACjD,MAAMC,OAAOb,KAAKW,IAAI,CAACL,KAAKE;IAC5B,IAAI;QACF,MAAMT,GAAGe,IAAI,CAACD;QACdE,QAAQC,IAAI,CAAC,eAAeT;QAC5B,OAAO,MAAMR,GAAGkB,QAAQ,CAACJ,MAAM;IACjC,EAAE,OAAOK,GAAG,CAAC;IACbH,QAAQC,IAAI,CAAC,gBAAgBT;IAC7B,MAAMY,OAAO,MAAMC,MAAMb,KAAKc,IAAI,CAAC,CAACC;QAClC,IAAIA,EAAEC,MAAM,IAAI,KAAK;YACnB,MAAM,IAAIC,MAAM,CAAC,cAAc,EAAEjB,IAAI,CAAC,EAAEe,EAAEC,MAAM,CAAC,CAAC,EAAED,EAAEG,UAAU,EAAE;QACpE;QACA,OAAOH,EAAEH,IAAI;IACf;IACA,MAAMO,OAAO,IAAIC,KAAK;QAACR;KAAK,EAAEO,IAAI;IAClCX,QAAQC,IAAI,CAAC,CAAC,cAAc,EAAEH,KAAK,CAAC,EAAEX,YAAYwB,MAAM,EAAE,EAAEA,KAAK,CAAC,CAAC;IACnE,MAAM3B,GAAG6B,SAAS,CAACf,MAAMM;IACzB,OAAOA;AACT;AAEA,OAAO,SAASU,mBAAmBC,MAAe;IAChD,IAAIA,QAAQ;QACV,OAAOC,QAAQC,OAAO,CAACH,sBAAsBR,IAAI,CAAC,CAACY;YACjD,MAAMC,WAAWlC,KAAKgC,OAAO,CAACC,EAAEC,QAAQ,EAAEJ;YAC1C,MAAMK,UAAUnC,KAAKgC,OAAO,CAACC,EAAEE,OAAO,EAAEL;YACxC,MAAMM,SAASpC,KAAKgC,OAAO,CAACC,EAAEG,MAAM,EAAEN;YACtC,OAAO;gBACL,GAAGG,CAAC;gBACJE;gBACAD;gBACAE;gBACA/B,OAAO,CAACE,MAAgBF,MAAM6B,UAAU3B;gBACxC8B,WAAW,CAACxB,MAAcyB,UAAoBC,MAAMJ,SAAStB,MAAMyB;gBACnEE,UAAU,CAAC3B,MAAcyB,UAAoBC,MAAMH,QAAQvB,MAAMyB;YACnE;QACF;IACF;IACA,OACElC,SACA2B,QAAQC,OAAO,GAAGX,IAAI,CAAC;QACrB,MAAMoB,SAAS,MAAMtC;QACrBF,OAAOyC,UAAU,CAACC,KAAK,CAACF,QAAQ;QAChC,MAAMN,UAAUnC,KAAKgC,OAAO,CAACS,QAAQ;QACrC,MAAMP,WAAWlC,KAAKgC,OAAO,CAACS,QAAQ;QACtC,MAAML,SAASpC,KAAKgC,OAAO,CAACS,QAAQ;QACpC,MAAM1C,GAAGW,KAAK,CAACwB,UAAU;YAAEtB,WAAW;QAAK;QAC3C,MAAMb,GAAGW,KAAK,CAACyB,SAAS;YAAEvB,WAAW;QAAK;QAC1C,OAAQR,QAAQwC,OAAOC,MAAM,CAAC;YAC5BJ;YACAN;YACAD;YACAE;YACAU,cAAcZ;YACda,aAAaZ;YACb9B,OAAO,CAACE,MAAgBF,MAAM6B,UAAU3B;YACxC8B,WAAW,CAACxB,MAAcyB,UAAoBC,MAAMJ,SAAStB,MAAMyB;YACnEE,UAAU,CAAC3B,MAAcyB,UAAoBC,MAAMH,QAAQvB,MAAMyB;QACnE;IACF;AAEJ;AAEA,eAAeC,MAAMjC,GAAW,EAAEO,IAAY,EAAEyB,OAAe;IAC7D,MAAMZ,OAAO,IAAIC,KAAK;QAACW;KAAQ,EAAEZ,IAAI;IACrC,MAAMsB,MAAMhD,KAAKW,IAAI,CAACL,KAAKO;IAC3B,IAAIoC;IACJ,IAAI;QACFA,OAAO,AAAC,CAAA,MAAMlD,GAAGe,IAAI,CAACkC,IAAG,EAAGtB,IAAI;IAClC,EAAE,OAAM,CAAC;IACTX,QAAQC,IAAI,CACV,CAAC,QAAQ,EAAEhB,KAAKkD,QAAQ,CAAC9C,MAAMqC,MAAM,EAAEnC,KAAK,CAAC,EAAEO,KAAK,CAAC,EACnDoC,OAAQA,SAASvB,OAAO,GAAGxB,YAAY+C,MAAM,EAAE,EAAEA,KAAK,KAAK,CAAC,GAAG,eAAgB,KAC9E/C,YAAYwB,MAAM,EAAE,EAAEA,KAAK,CAAC,CAAC;IAElC,MAAM3B,GAAG6B,SAAS,CAACoB,KAAKV;AAC1B"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/server/crypto/md5.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\n\nexport function md5(input: Buffer | string) {\n return createHash('md5').update(input).digest('hex') as string;\n}\n"],"names":["createHash","md5","input","update","digest"],"mappings":"AAAA,SAASA,UAAU,QAAQ,cAAc;AAEzC,OAAO,SAASC,IAAIC,KAAsB;IACxC,OAAOF,WAAW,OAAOG,MAAM,CAACD,OAAOE,MAAM,CAAC;AAChD"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/server/fetch/createFetchWithProxy.ts"],"sourcesContent":["import { createFetchWithProxyByUndici } from './createFetchWithProxyByUndici';\n\nexport const createFetchWithProxy = createFetchWithProxyByUndici;\n"],"names":["createFetchWithProxyByUndici","createFetchWithProxy"],"mappings":"AAAA,SAASA,4BAA4B,QAAQ,iCAAiC;AAE9E,OAAO,MAAMC,uBAAuBD,6BAA6B"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/server/fetch/createFetchWithProxyByNodeFetch.ts"],"sourcesContent":["import { type FetchLike } from '../../fetch';\nimport { getGlobalThis } from '../../runtime/getGlobalThis';\n\nexport function createFetchWithProxyByNodeFetch({\n proxy,\n fetch,\n}: { proxy?: string; fetch?: FetchLike } = {}): FetchLike {\n const globalThis = getGlobalThis();\n if (!proxy) {\n return fetch || globalThis.fetch;\n }\n\n let agent: any;\n const Request = globalThis.Request;\n let NodeRequest: any;\n let NodeFetch: any;\n return async (url, init?: RequestInit) => {\n if (!agent) {\n const { default: createHttpsProxyAgent } = await import('https-proxy-agent');\n agent = (createHttpsProxyAgent as any)(proxy);\n }\n\n // node-fetch 才可以,node v18 fetch 不支持\n if (!NodeRequest) {\n ({ Request: NodeRequest, default: NodeFetch } = await import('node-fetch'));\n }\n\n fetch ||= NodeFetch;\n\n if (url instanceof Request) {\n return (fetch as any)(new Request(url, { agent } as any));\n }\n if ((url as any) instanceof NodeRequest) {\n return (fetch as any)(new NodeRequest(url, { agent } as any));\n }\n return (fetch as any)(url, {\n ...init,\n agent,\n } as any);\n };\n}\n"],"names":["getGlobalThis","createFetchWithProxyByNodeFetch","proxy","fetch","globalThis","agent","Request","NodeRequest","NodeFetch","url","init","default","createHttpsProxyAgent"],"mappings":"AACA,SAASA,aAAa,QAAQ,8BAA8B;AAE5D,OAAO,SAASC,gCAAgC,EAC9CC,KAAK,EACLC,KAAK,EACiC,GAAG,CAAC,CAAC;IAC3C,MAAMC,aAAaJ;IACnB,IAAI,CAACE,OAAO;QACV,OAAOC,SAASC,WAAWD,KAAK;IAClC;IAEA,IAAIE;IACJ,MAAMC,UAAUF,WAAWE,OAAO;IAClC,IAAIC;IACJ,IAAIC;IACJ,OAAO,OAAOC,KAAKC;QACjB,IAAI,CAACL,OAAO;YACV,MAAM,EAAEM,SAASC,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC;YACxDP,QAAQ,AAACO,sBAA8BV;QACzC;QAEA,oCAAoC;QACpC,IAAI,CAACK,aAAa;YACf,CAAA,EAAED,SAASC,WAAW,EAAEI,SAASH,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,aAAY;QAC3E;QAEAL,UAAUK;QAEV,IAAIC,eAAeH,SAAS;YAC1B,OAAO,AAACH,MAAc,IAAIG,QAAQG,KAAK;gBAAEJ;YAAM;QACjD;QACA,IAAI,AAACI,eAAuBF,aAAa;YACvC,OAAO,AAACJ,MAAc,IAAII,YAAYE,KAAK;gBAAEJ;YAAM;QACrD;QACA,OAAO,AAACF,MAAcM,KAAK;YACzB,GAAGC,IAAI;YACPL;QACF;IACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/server/fetch/createFetchWithProxyByUndici.ts"],"sourcesContent":["import type { MaybePromise } from '../../asyncs/MaybePromise';\nimport { createFetchWith, type FetchLike } from '../../fetch';\nimport { getGlobalThis } from '../../runtime/getGlobalThis';\n\nexport function createFetchWithProxyByUndici({\n proxy,\n token: _token,\n fetch,\n undici,\n}: {\n proxy?: string;\n token?: string;\n fetch?: FetchLike;\n undici?: MaybePromise<{ fetch: any; ProxyAgent: any }>;\n} = {}): FetchLike {\n if (!proxy) {\n return fetch || globalThis.fetch;\n }\n\n if ((getGlobalThis() as any).Bun) {\n return createFetchWith({\n fetch,\n onRequest: ({ url, req, next }) => {\n return next(url, {\n ...req,\n // https://github.com/oven-sh/bun/issues/1829\n proxy,\n } as RequestInit);\n },\n });\n }\n\n let agent: any;\n // https://github.com/nodejs/undici/blob/main/docs/best-practices/proxy.md\n return async (...args) => {\n const init = (args[1] ||= {}) as RequestInit & {\n duplex?: string;\n dispatcher?: any;\n };\n {\n const body = init.body;\n if (typeof body === 'object' && body && (body instanceof ReadableStream || Symbol.asyncIterator in body)) {\n // request.duplex must be set if request.body is ReadableStream or Async Iterables\n init.duplex ||= 'half';\n }\n }\n if (!agent) {\n let uri = proxy;\n let token = _token;\n {\n let u: URL | undefined;\n try {\n u = new URL(proxy);\n } catch (e) {}\n if (!token && u && (u.username || u.password)) {\n token = `Basic ${btoa(`${u.username || ''}:${u.password}`)}`;\n u.username = '';\n u.password = '';\n uri = u.toString();\n }\n }\n // if in next use 'next/dist/compiled/undici'\n undici ||= import('undici');\n const mod = await undici;\n const ProxyAgent = mod.ProxyAgent as new (_: any) => any;\n fetch ||= mod.fetch as FetchLike;\n // https://github.com/nodejs/undici/blob/main/docs/api/ProxyAgent.md\n agent = new ProxyAgent({\n uri,\n token,\n });\n // https://github.com/nodejs/node/issues/43187#issuecomment-1134634174\n // (global as any)[Symbol.for('undici.globalDispatcher.1')] = agent;\n // fixme should unwrap error https://github.com/nodejs/undici/issues/1248\n }\n init.dispatcher = agent;\n return await fetch!(...args);\n };\n}\n"],"names":["createFetchWith","getGlobalThis","createFetchWithProxyByUndici","proxy","token","_token","fetch","undici","globalThis","Bun","onRequest","url","req","next","agent","args","init","body","ReadableStream","Symbol","asyncIterator","duplex","uri","u","URL","e","username","password","btoa","toString","mod","ProxyAgent","dispatcher"],"mappings":"AACA,SAASA,eAAe,QAAwB,cAAc;AAC9D,SAASC,aAAa,QAAQ,8BAA8B;AAE5D,OAAO,SAASC,6BAA6B,EAC3CC,KAAK,EACLC,OAAOC,MAAM,EACbC,KAAK,EACLC,MAAM,EAMP,GAAG,CAAC,CAAC;IACJ,IAAI,CAACJ,OAAO;QACV,OAAOG,SAASE,WAAWF,KAAK;IAClC;IAEA,IAAI,AAACL,gBAAwBQ,GAAG,EAAE;QAChC,OAAOT,gBAAgB;YACrBM;YACAI,WAAW,CAAC,EAAEC,GAAG,EAAEC,GAAG,EAAEC,IAAI,EAAE;gBAC5B,OAAOA,KAAKF,KAAK;oBACf,GAAGC,GAAG;oBACN,6CAA6C;oBAC7CT;gBACF;YACF;QACF;IACF;IAEA,IAAIW;IACJ,0EAA0E;IAC1E,OAAO,OAAO,GAAGC;QACf,MAAMC,OAAQD,IAAI,CAAC,EAAE,KAAK,CAAC;QAI3B;YACE,MAAME,OAAOD,KAAKC,IAAI;YACtB,IAAI,OAAOA,SAAS,YAAYA,QAASA,CAAAA,gBAAgBC,kBAAkBC,OAAOC,aAAa,IAAIH,IAAG,GAAI;gBACxG,kFAAkF;gBAClFD,KAAKK,MAAM,KAAK;YAClB;QACF;QACA,IAAI,CAACP,OAAO;YACV,IAAIQ,MAAMnB;YACV,IAAIC,QAAQC;YACZ;gBACE,IAAIkB;gBACJ,IAAI;oBACFA,IAAI,IAAIC,IAAIrB;gBACd,EAAE,OAAOsB,GAAG,CAAC;gBACb,IAAI,CAACrB,SAASmB,KAAMA,CAAAA,EAAEG,QAAQ,IAAIH,EAAEI,QAAQ,AAAD,GAAI;oBAC7CvB,QAAQ,CAAC,MAAM,EAAEwB,KAAK,GAAGL,EAAEG,QAAQ,IAAI,GAAG,CAAC,EAAEH,EAAEI,QAAQ,EAAE,GAAG;oBAC5DJ,EAAEG,QAAQ,GAAG;oBACbH,EAAEI,QAAQ,GAAG;oBACbL,MAAMC,EAAEM,QAAQ;gBAClB;YACF;YACA,6CAA6C;YAC7CtB,WAAW,MAAM,CAAC;YAClB,MAAMuB,MAAM,MAAMvB;YAClB,MAAMwB,aAAaD,IAAIC,UAAU;YACjCzB,UAAUwB,IAAIxB,KAAK;YACnB,oEAAoE;YACpEQ,QAAQ,IAAIiB,WAAW;gBACrBT;gBACAlB;YACF;QACA,sEAAsE;QACtE,oEAAoE;QACpE,yEAAyE;QAC3E;QACAY,KAAKgB,UAAU,GAAGlB;QAClB,OAAO,MAAMR,SAAUS;IACzB;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/server/getPackageDir.ts"],"sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\n\n// import { fileURLToPath } from 'node:url';\n// const __filename = fileURLToPath(import.meta.url);\n// const __dirname = path.dirname(__filename);\n\nexport function getPackageDir(currentDir: string = process.cwd()) {\n while (!fs.existsSync(path.join(currentDir, 'package.json'))) {\n currentDir = path.resolve(currentDir, '..');\n if (currentDir === '/') {\n return undefined;\n }\n }\n return currentDir;\n}\n\nfunction findUp() {}\n"],"names":["fs","path","getPackageDir","currentDir","process","cwd","existsSync","join","resolve","undefined","findUp"],"mappings":"AAAA,OAAOA,QAAQ,UAAU;AACzB,OAAOC,UAAU,YAAY;AAE7B,4CAA4C;AAC5C,qDAAqD;AACrD,8CAA8C;AAE9C,OAAO,SAASC,cAAcC,aAAqBC,QAAQC,GAAG,EAAE;IAC9D,MAAO,CAACL,GAAGM,UAAU,CAACL,KAAKM,IAAI,CAACJ,YAAY,iBAAkB;QAC5DA,aAAaF,KAAKO,OAAO,CAACL,YAAY;QACtC,IAAIA,eAAe,KAAK;YACtB,OAAOM;QACT;IACF;IACA,OAAON;AACT;AAEA,SAASO,UAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/server/index.ts"],"sourcesContent":["export { polyfillCrypto } from './polyfill/polyfillCrypto';\nexport { createFetchWithProxyByUndici } from './fetch/createFetchWithProxyByUndici';\nexport { createFetchWithProxy } from './fetch/createFetchWithProxy';\n\nexport { md5 } from './crypto/md5';\nexport { getPackageDir } from './getPackageDir';\n"],"names":["polyfillCrypto","createFetchWithProxyByUndici","createFetchWithProxy","md5","getPackageDir"],"mappings":"AAAA,SAASA,cAAc,QAAQ,4BAA4B;AAC3D,SAASC,4BAA4B,QAAQ,uCAAuC;AACpF,SAASC,oBAAoB,QAAQ,+BAA+B;AAEpE,SAASC,GAAG,QAAQ,eAAe;AACnC,SAASC,aAAa,QAAQ,kBAAkB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/server/jsdom.ts"],"sourcesContent":["export * from './polyfill/polyfillJsDom';\n"],"names":[],"mappings":"AAAA,cAAc,2BAA2B"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/server/node-fetch.ts"],"sourcesContent":["export * from './polyfill/polyfillFetch';\nexport * from './fetch/createFetchWithProxyByNodeFetch';\n"],"names":[],"mappings":"AAAA,cAAc,2BAA2B;AACzC,cAAc,0CAA0C"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/server/polyfill/polyfillBrowser.ts"],"sourcesContent":["import { polyfillCrypto } from './polyfillCrypto';\nimport { polyfillFetch } from './polyfillFetch';\nimport { polyfillJsDom } from './polyfillJsDom';\n\n/**\n * Polyfills the browser environment with the necessary APIs for the server.\n * Currently, this includes:\n * - `window`\n * - `document`\n * - `fetch`\n * - `crypto`\n */\nexport async function polyfillBrowser() {\n await polyfillCrypto();\n await polyfillFetch();\n await polyfillJsDom();\n}\n"],"names":["polyfillCrypto","polyfillFetch","polyfillJsDom","polyfillBrowser"],"mappings":"AAAA,SAASA,cAAc,QAAQ,mBAAmB;AAClD,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,aAAa,QAAQ,kBAAkB;AAEhD;;;;;;;CAOC,GACD,OAAO,eAAeC;IACpB,MAAMH;IACN,MAAMC;IACN,MAAMC;AACR"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/server/polyfill/polyfillCrypto.ts"],"sourcesContent":["import { getGlobalThis } from '../../runtime/getGlobalThis';\n\nexport async function polyfillCrypto() {\n const globalThis = getGlobalThis();\n if ('crypto' in globalThis) {\n return false;\n }\n (globalThis as any).crypto = (await import('node:crypto')).webcrypto as Crypto;\n return true;\n}\n"],"names":["getGlobalThis","polyfillCrypto","globalThis","crypto","webcrypto"],"mappings":"AAAA,SAASA,aAAa,QAAQ,8BAA8B;AAE5D,OAAO,eAAeC;IACpB,MAAMC,aAAaF;IACnB,IAAI,YAAYE,YAAY;QAC1B,OAAO;IACT;IACCA,WAAmBC,MAAM,GAAG,AAAC,CAAA,MAAM,MAAM,CAAC,cAAa,EAAGC,SAAS;IACpE,OAAO;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/server/polyfill/polyfillFetch.ts"],"sourcesContent":["import type { MaybePromise } from '../../asyncs/MaybePromise';\n\nexport function polyfillFetch(nodeFetch: typeof import('node-fetch')): boolean;\nexport function polyfillFetch(nodeFetch?: undefined): Promise<boolean>;\nexport function polyfillFetch(nodeFetch?: typeof import('node-fetch')): MaybePromise<boolean> {\n if ('fetch' in globalThis) {\n return false;\n }\n // sync mode\n if (nodeFetch) {\n const { default: fetch, Response, Headers, Request, AbortError, FetchError, FormData, Blob, File } = nodeFetch;\n Object.assign(globalThis, {\n fetch,\n Response,\n Headers,\n Request,\n AbortError,\n FetchError,\n FormData,\n Blob,\n File,\n });\n // abort controller\n return true;\n }\n return import('node-fetch').then((v) => polyfillFetch(v));\n}\n"],"names":["polyfillFetch","nodeFetch","globalThis","default","fetch","Response","Headers","Request","AbortError","FetchError","FormData","Blob","File","Object","assign","then","v"],"mappings":"AAIA,OAAO,SAASA,cAAcC,SAAuC;IACnE,IAAI,WAAWC,YAAY;QACzB,OAAO;IACT;IACA,YAAY;IACZ,IAAID,WAAW;QACb,MAAM,EAAEE,SAASC,KAAK,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,EAAEC,UAAU,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,IAAI,EAAE,GAAGX;QACrGY,OAAOC,MAAM,CAACZ,YAAY;YACxBE;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;QACF;QACA,mBAAmB;QACnB,OAAO;IACT;IACA,OAAO,MAAM,CAAC,cAAcG,IAAI,CAAC,CAACC,IAAMhB,cAAcgB;AACxD"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/server/polyfill/polyfillJsDom.ts"],"sourcesContent":["import type { ConstructorOptions, ResourceLoaderConstructorOptions } from 'jsdom';\nimport { getGlobalThis } from '../../runtime/getGlobalThis';\n\nexport async function polyfillJsDom() {\n if (typeof window !== 'undefined') {\n return false;\n }\n\n const globalThis = getGlobalThis();\n\n const { ResourceLoader, JSDOM } = await import('jsdom');\n\n // https://github.com/lukechilds/window/blob/master/src/index.js\n // eslint-disable-next-line @typescript-eslint/no-extraneous-class\n class Window {\n constructor(opts: ResourceLoaderConstructorOptions & ConstructorOptions = {}) {\n const { proxy, strictSSL, userAgent, ...jsdomOpts } = opts;\n const resources = new ResourceLoader({\n proxy,\n strictSSL,\n userAgent,\n });\n return new JSDOM(\n '',\n Object.assign(jsdomOpts, {\n resources,\n }),\n ).window;\n }\n }\n\n // https://github.com/lukechilds/browser-env/blob/master/src/index.js\n // Default jsdom config.\n // These settings must override any custom settings to make sure we can iterate\n // over the window object.\n const defaultJsdomConfig = {\n // features: {\n // FetchExternalResources: false,\n // ProcessExternalResources: false,\n // },\n };\n // IIFE executed on import to return an array of global Node.js properties that\n // conflict with global browser properties.\n const protectedProperties = (() =>\n Object.getOwnPropertyNames(new Window(defaultJsdomConfig)).filter(\n (prop) => typeof globalThis[prop as keyof typeof globalThis] !== 'undefined',\n ))();\n\n function installEnv(...args: any[]) {\n // Sets up global browser environment\n // Extract options from args\n const properties = args.filter((arg: any) => Array.isArray(arg))[0];\n const userJsdomConfig = args.filter((arg: any) => !Array.isArray(arg))[0];\n\n // Create window object\n const window = new Window(Object.assign({}, userJsdomConfig, defaultJsdomConfig));\n\n // Get all global browser properties\n Object.getOwnPropertyNames(window)\n\n // Remove protected properties\n .filter((prop) => !protectedProperties.includes(prop))\n\n // If we're only applying specific required properties remove everything else\n .filter((prop) => !(properties && properties.indexOf(prop) === -1))\n .filter((prop) => {\n switch (prop) {\n case 'undefined':\n return false;\n }\n return true;\n })\n\n // Copy what's left to the Node.js global scope\n .forEach((prop) => {\n // console.debug(`define globalThis.${prop}`);\n Object.defineProperty(globalThis, prop, {\n configurable: true,\n get: () => window[prop as keyof Window] as any,\n });\n });\n\n return window;\n }\n\n installEnv({ url: 'http://localhost' });\n return true;\n}\n"],"names":["getGlobalThis","polyfillJsDom","window","globalThis","ResourceLoader","JSDOM","Window","constructor","opts","proxy","strictSSL","userAgent","jsdomOpts","resources","Object","assign","defaultJsdomConfig","protectedProperties","getOwnPropertyNames","filter","prop","installEnv","args","properties","arg","Array","isArray","userJsdomConfig","includes","indexOf","forEach","defineProperty","configurable","get","url"],"mappings":"AACA,SAASA,aAAa,QAAQ,8BAA8B;AAE5D,OAAO,eAAeC;IACpB,IAAI,OAAOC,WAAW,aAAa;QACjC,OAAO;IACT;IAEA,MAAMC,aAAaH;IAEnB,MAAM,EAAEI,cAAc,EAAEC,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC;IAE/C,gEAAgE;IAChE,kEAAkE;IAClE,IAAA,AAAMC,SAAN,MAAMA;QACJC,YAAYC,OAA8D,CAAC,CAAC,CAAE;YAC5E,MAAM,EAAEC,KAAK,EAAEC,SAAS,EAAEC,SAAS,EAAE,GAAGC,WAAW,GAAGJ;YACtD,MAAMK,YAAY,IAAIT,eAAe;gBACnCK;gBACAC;gBACAC;YACF;YACA,OAAO,IAAIN,MACT,IACAS,OAAOC,MAAM,CAACH,WAAW;gBACvBC;YACF,IACAX,MAAM;QACV;IACF;IAEA,qEAAqE;IACrE,wBAAwB;IACxB,+EAA+E;IAC/E,0BAA0B;IAC1B,MAAMc,qBAAqB;IAK3B;IACA,+EAA+E;IAC/E,2CAA2C;IAC3C,MAAMC,sBAAsB,AAAC,CAAA,IAC3BH,OAAOI,mBAAmB,CAAC,IAAIZ,OAAOU,qBAAqBG,MAAM,CAC/D,CAACC,OAAS,OAAOjB,UAAU,CAACiB,KAAgC,KAAK,YACnE;IAEF,SAASC,WAAW,GAAGC,IAAW;QAChC,qCAAqC;QACrC,4BAA4B;QAC5B,MAAMC,aAAaD,KAAKH,MAAM,CAAC,CAACK,MAAaC,MAAMC,OAAO,CAACF,KAAK,CAAC,EAAE;QACnE,MAAMG,kBAAkBL,KAAKH,MAAM,CAAC,CAACK,MAAa,CAACC,MAAMC,OAAO,CAACF,KAAK,CAAC,EAAE;QAEzE,uBAAuB;QACvB,MAAMtB,UAAS,IAAII,OAAOQ,OAAOC,MAAM,CAAC,CAAC,GAAGY,iBAAiBX;QAE7D,oCAAoC;QACpCF,OAAOI,mBAAmB,CAAChB,QAEzB,8BAA8B;SAC7BiB,MAAM,CAAC,CAACC,OAAS,CAACH,oBAAoBW,QAAQ,CAACR,MAEhD,6EAA6E;SAC5ED,MAAM,CAAC,CAACC,OAAS,CAAEG,CAAAA,cAAcA,WAAWM,OAAO,CAACT,UAAU,CAAC,CAAA,GAC/DD,MAAM,CAAC,CAACC;YACP,OAAQA;gBACN,KAAK;oBACH,OAAO;YACX;YACA,OAAO;QACT,EAEA,+CAA+C;SAC9CU,OAAO,CAAC,CAACV;YACR,8CAA8C;YAC9CN,OAAOiB,cAAc,CAAC5B,YAAYiB,MAAM;gBACtCY,cAAc;gBACdC,KAAK,IAAM/B,OAAM,CAACkB,KAAqB;YACzC;QACF;QAEF,OAAOlB;IACT;IAEAmB,WAAW;QAAEa,KAAK;IAAmB;IACrC,OAAO;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/server/polyfill/polyfillWebSocket.ts"],"sourcesContent":["import type { MaybePromise } from '../../asyncs/MaybePromise';\nimport { getGlobalThis } from '../../runtime/getGlobalThis';\n\nexport function polyfillWebSocket(ws: any): boolean;\nexport function polyfillWebSocket(ws?: undefined): Promise<boolean>;\nexport function polyfillWebSocket(ws?: any): MaybePromise<boolean> {\n const globalThis = getGlobalThis();\n if ('WebSocket' in globalThis) {\n return false;\n }\n if (ws && 'then' in ws) {\n return ws.then((v: any) => {\n return polyfillWebSocket(v?.default || v);\n });\n }\n if (ws) {\n const { WebSocket } = ws;\n Object.assign(globalThis, { WebSocket });\n }\n return import('ws').then((ws) => polyfillWebSocket(ws));\n}\n"],"names":["getGlobalThis","polyfillWebSocket","ws","globalThis","then","v","default","WebSocket","Object","assign"],"mappings":"AACA,SAASA,aAAa,QAAQ,8BAA8B;AAI5D,OAAO,SAASC,kBAAkBC,EAAQ;IACxC,MAAMC,aAAaH;IACnB,IAAI,eAAeG,YAAY;QAC7B,OAAO;IACT;IACA,IAAID,MAAM,UAAUA,IAAI;QACtB,OAAOA,GAAGE,IAAI,CAAC,CAACC;YACd,OAAOJ,kBAAkBI,GAAGC,WAAWD;QACzC;IACF;IACA,IAAIH,IAAI;QACN,MAAM,EAAEK,SAAS,EAAE,GAAGL;QACtBM,OAAOC,MAAM,CAACN,YAAY;YAAEI;QAAU;IACxC;IACA,OAAO,MAAM,CAAC,MAAMH,IAAI,CAAC,CAACF,KAAOD,kBAAkBC;AACrD"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/server/ws.ts"],"sourcesContent":["export * from './polyfill/polyfillWebSocket';\n"],"names":[],"mappings":"AAAA,cAAc,+BAA+B"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/strings/camelCase.ts"],"sourcesContent":["// https://github.com/sindresorhus/camelcase/blob/master/index.js\n\nfunction preserveCamelCase(string: string) {\n let isLastCharLower = false;\n let isLastCharUpper = false;\n let isLastLastCharUpper = false;\n\n for (let i = 0; i < string.length; i++) {\n const character = string[i];\n\n if (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) {\n string = string.slice(0, i) + '-' + string.slice(i);\n isLastCharLower = false;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = true;\n i++;\n } else if (\n isLastCharUpper &&\n isLastLastCharUpper &&\n /[a-zA-Z]/.test(character) &&\n character.toLowerCase() === character\n ) {\n string = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = false;\n isLastCharLower = true;\n } else {\n isLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;\n }\n }\n\n return string;\n}\n\nexport function pascalCase(input: string | string[]) {\n return camelCase(input, { pascalCase: true });\n}\n\nexport function camelCase(\n input: string | string[],\n options: { pascalCase: boolean } = {\n pascalCase: false,\n },\n) {\n if (!(typeof input === 'string' || Array.isArray(input))) {\n throw new TypeError('Expected the input to be `string | string[]`');\n }\n\n const postProcess = (x: string) => (options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x);\n\n if (Array.isArray(input)) {\n input = input\n .map((x) => x.trim())\n .filter((x) => x.length)\n .join('-');\n } else {\n input = input.trim();\n }\n\n if (input.length === 0) {\n return '';\n }\n\n if (input.length === 1) {\n return options.pascalCase ? input.toUpperCase() : input.toLowerCase();\n }\n\n const hasUpperCase = input !== input.toLowerCase();\n\n if (hasUpperCase) {\n input = preserveCamelCase(input);\n }\n\n input = input\n .replace(/^[_.\\- ]+/, '')\n .toLowerCase()\n .replace(/[_.\\- ]+(\\w|$)/g, (_, p1) => p1.toUpperCase())\n .replace(/\\d+(\\w|$)/g, (m) => m.toUpperCase());\n\n return postProcess(input);\n}\n"],"names":["preserveCamelCase","string","isLastCharLower","isLastCharUpper","isLastLastCharUpper","i","length","character","test","toUpperCase","slice","toLowerCase","pascalCase","input","camelCase","options","Array","isArray","TypeError","postProcess","x","charAt","map","trim","filter","join","hasUpperCase","replace","_","p1","m"],"mappings":"AAAA,iEAAiE;AAEjE,SAASA,kBAAkBC,MAAc;IACvC,IAAIC,kBAAkB;IACtB,IAAIC,kBAAkB;IACtB,IAAIC,sBAAsB;IAE1B,IAAK,IAAIC,IAAI,GAAGA,IAAIJ,OAAOK,MAAM,EAAED,IAAK;QACtC,MAAME,YAAYN,MAAM,CAACI,EAAE;QAE3B,IAAIH,mBAAmB,WAAWM,IAAI,CAACD,cAAcA,UAAUE,WAAW,OAAOF,WAAW;YAC1FN,SAASA,OAAOS,KAAK,CAAC,GAAGL,KAAK,MAAMJ,OAAOS,KAAK,CAACL;YACjDH,kBAAkB;YAClBE,sBAAsBD;YACtBA,kBAAkB;YAClBE;QACF,OAAO,IACLF,mBACAC,uBACA,WAAWI,IAAI,CAACD,cAChBA,UAAUI,WAAW,OAAOJ,WAC5B;YACAN,SAASA,OAAOS,KAAK,CAAC,GAAGL,IAAI,KAAK,MAAMJ,OAAOS,KAAK,CAACL,IAAI;YACzDD,sBAAsBD;YACtBA,kBAAkB;YAClBD,kBAAkB;QACpB,OAAO;YACLA,kBAAkBK,UAAUI,WAAW,OAAOJ,aAAaA,UAAUE,WAAW,OAAOF;YACvFH,sBAAsBD;YACtBA,kBAAkBI,UAAUE,WAAW,OAAOF,aAAaA,UAAUI,WAAW,OAAOJ;QACzF;IACF;IAEA,OAAON;AACT;AAEA,OAAO,SAASW,WAAWC,KAAwB;IACjD,OAAOC,UAAUD,OAAO;QAAED,YAAY;IAAK;AAC7C;AAEA,OAAO,SAASE,UACdD,KAAwB,EACxBE,UAAmC;IACjCH,YAAY;AACd,CAAC;IAED,IAAI,CAAE,CAAA,OAAOC,UAAU,YAAYG,MAAMC,OAAO,CAACJ,MAAK,GAAI;QACxD,MAAM,IAAIK,UAAU;IACtB;IAEA,MAAMC,cAAc,CAACC,IAAeL,QAAQH,UAAU,GAAGQ,EAAEC,MAAM,CAAC,GAAGZ,WAAW,KAAKW,EAAEV,KAAK,CAAC,KAAKU;IAElG,IAAIJ,MAAMC,OAAO,CAACJ,QAAQ;QACxBA,QAAQA,MACLS,GAAG,CAAC,CAACF,IAAMA,EAAEG,IAAI,IACjBC,MAAM,CAAC,CAACJ,IAAMA,EAAEd,MAAM,EACtBmB,IAAI,CAAC;IACV,OAAO;QACLZ,QAAQA,MAAMU,IAAI;IACpB;IAEA,IAAIV,MAAMP,MAAM,KAAK,GAAG;QACtB,OAAO;IACT;IAEA,IAAIO,MAAMP,MAAM,KAAK,GAAG;QACtB,OAAOS,QAAQH,UAAU,GAAGC,MAAMJ,WAAW,KAAKI,MAAMF,WAAW;IACrE;IAEA,MAAMe,eAAeb,UAAUA,MAAMF,WAAW;IAEhD,IAAIe,cAAc;QAChBb,QAAQb,kBAAkBa;IAC5B;IAEAA,QAAQA,MACLc,OAAO,CAAC,aAAa,IACrBhB,WAAW,GACXgB,OAAO,CAAC,mBAAmB,CAACC,GAAGC,KAAOA,GAAGpB,WAAW,IACpDkB,OAAO,CAAC,cAAc,CAACG,IAAMA,EAAErB,WAAW;IAE7C,OAAOU,YAAYN;AACrB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/strings/formatBytes.ts"],"sourcesContent":["/**\n * Format bytes as human-readable text.\n *\n * @param bytes Number of bytes.\n * @param si True to use metric (SI) units, aka powers of 1000. False to use\n * binary (IEC), aka powers of 1024.\n * @param dp Number of decimal places to display.\n *\n * @return Formatted string.\n */\nexport function formatBytes(bytes: number, si = false, dp = 1) {\n const thresh = si ? 1000 : 1024;\n\n if (Math.abs(bytes) < thresh) {\n return `${bytes} B`;\n }\n\n const units = si\n ? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n : ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];\n let u = -1;\n const r = 10 ** dp;\n\n do {\n bytes /= thresh;\n ++u;\n } while (Math.round(Math.abs(bytes) * r) / r >= thresh && u < units.length - 1);\n\n return bytes.toFixed(dp) + ' ' + units[u];\n}\n"],"names":["formatBytes","bytes","si","dp","thresh","Math","abs","units","u","r","round","length","toFixed"],"mappings":"AAAA;;;;;;;;;CASC,GACD,OAAO,SAASA,YAAYC,KAAa,EAAEC,KAAK,KAAK,EAAEC,KAAK,CAAC;IAC3D,MAAMC,SAASF,KAAK,OAAO;IAE3B,IAAIG,KAAKC,GAAG,CAACL,SAASG,QAAQ;QAC5B,OAAO,GAAGH,MAAM,EAAE,CAAC;IACrB;IAEA,MAAMM,QAAQL,KACV;QAAC;QAAM;QAAM;QAAM;QAAM;QAAM;QAAM;QAAM;KAAK,GAChD;QAAC;QAAO;QAAO;QAAO;QAAO;QAAO;QAAO;QAAO;KAAM;IAC5D,IAAIM,IAAI,CAAC;IACT,MAAMC,IAAI,MAAMN;IAEhB,GAAG;QACDF,SAASG;QACT,EAAEI;IACJ,QAASH,KAAKK,KAAK,CAACL,KAAKC,GAAG,CAACL,SAASQ,KAAKA,KAAKL,UAAUI,IAAID,MAAMI,MAAM,GAAG,EAAG;IAEhF,OAAOV,MAAMW,OAAO,CAACT,MAAM,MAAMI,KAAK,CAACC,EAAE;AAC3C"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/strings/renderTemplate.ts"],"sourcesContent":["import { get } from '../objects/get';\n\n/**\n * render template like js template string\n *\n * @example\n * renderTemplate('My name is ${name}',{name:'wener'})\n * // 'My name is wener'\n *\n * @param match `js` for `${name}`, common for `{{name}}`\n */\nexport function renderTemplate(\n template: string,\n data: ((v: string) => any) | object | undefined,\n match: 'js' | 'common' | RegExp = 'js',\n) {\n let getter: Function;\n if (!data) {\n // todo warning in dev\n getter = () => '';\n } else if (typeof data === 'function') {\n getter = data;\n } else {\n getter = (v: string) => get(data, v);\n }\n if (typeof match === 'string') {\n match = Matches[match] || Matches.js;\n }\n return template.replace(match, (_, g) => {\n return getter(g.trim());\n });\n}\n\nconst Matches: Record<string, RegExp> = {\n js: /\\${(.*?)}/g,\n common: /{{(.*?)}}/g,\n};\n"],"names":["get","renderTemplate","template","data","match","getter","v","Matches","js","replace","_","g","trim","common"],"mappings":"AAAA,SAASA,GAAG,QAAQ,iBAAiB;AAErC;;;;;;;;CAQC,GACD,OAAO,SAASC,eACdC,QAAgB,EAChBC,IAA+C,EAC/CC,QAAkC,IAAI;IAEtC,IAAIC;IACJ,IAAI,CAACF,MAAM;QACT,sBAAsB;QACtBE,SAAS,IAAM;IACjB,OAAO,IAAI,OAAOF,SAAS,YAAY;QACrCE,SAASF;IACX,OAAO;QACLE,SAAS,CAACC,IAAcN,IAAIG,MAAMG;IACpC;IACA,IAAI,OAAOF,UAAU,UAAU;QAC7BA,QAAQG,OAAO,CAACH,MAAM,IAAIG,QAAQC,EAAE;IACtC;IACA,OAAON,SAASO,OAAO,CAACL,OAAO,CAACM,GAAGC;QACjC,OAAON,OAAOM,EAAEC,IAAI;IACtB;AACF;AAEA,MAAML,UAAkC;IACtCC,IAAI;IACJK,QAAQ;AACV"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/typedoc.ts"],"sourcesContent":["export * from './index';\n// fixme md5 conflict\n// export * from './server';\n"],"names":[],"mappings":"AAAA,cAAc,UAAU,CACxB,qBAAqB;CACrB,4BAA4B"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/types.d.ts"],"sourcesContent":["declare var __DEV__: boolean;\n\nnamespace NodeJS {\n interface Process {\n // webpack check\n readonly browser?: boolean;\n }\n interface ProcessEnv {\n readonly NODE_ENV: 'development' | 'production' | 'test';\n }\n}\n\nexport type AbstractConstructor<T = {}> = abstract new (...args: any[]) => T;\nexport type Constructor<T = {}> = new (...args: any[]) => T;\nexport type Optional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\nexport type PartialRequired<T, K extends keyof T> = Partial<Omit<T, K>> & Required<Pick<T, K>>;\n\n/*\nhttps://github.com/total-typescript/ts-reset/blob/main/src/entrypoints/filter-boolean.d.ts\nhttps://github.com/sindresorhus/type-fest\n */\n"],"names":[],"mappings":"AAeA,WAA+F,CAE/F;;;CAGC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/validations/asserts.ts"],"sourcesContent":["export function assert(condition: any, msg?: string): asserts condition {\n // if (!condition) {\n // throw new AssertionError(msg);\n // }\n console.assert(!condition, msg);\n}\n\nexport function assertIsDefined<T>(val: T): asserts val is NonNullable<T> {\n // if (val === undefined || val === null) {\n // throw new AssertionError(`Expected 'val' to be defined, but received ${val}`);\n // }\n console.assert(val === undefined || val === null, 'Expected defined');\n}\n"],"names":["assert","condition","msg","console","assertIsDefined","val","undefined"],"mappings":"AAAA,OAAO,SAASA,OAAOC,SAAc,EAAEC,GAAY;IACjD,oBAAoB;IACpB,mCAAmC;IACnC,IAAI;IACJC,QAAQH,MAAM,CAAC,CAACC,WAAWC;AAC7B;AAEA,OAAO,SAASE,gBAAmBC,GAAM;IACvC,2CAA2C;IAC3C,mFAAmF;IACnF,IAAI;IACJF,QAAQH,MAAM,CAACK,QAAQC,aAAaD,QAAQ,MAAM;AACpD"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/validations/isUUID.ts"],"sourcesContent":["export function isUUID(str: string | undefined | null) {\n return Boolean(str) && /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(String(str));\n}\n"],"names":["isUUID","str","Boolean","test","String"],"mappings":"AAAA,OAAO,SAASA,OAAOC,GAA8B;IACnD,OAAOC,QAAQD,QAAQ,yEAAyEE,IAAI,CAACC,OAAOH;AAC9G"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/validations/parseTimestamp.ts"],"sourcesContent":["export function parseTimestamp(raw?: string | number | Date): Date | undefined {\n if (!raw) {\n return undefined;\n }\n if (raw instanceof Date) {\n return raw;\n }\n\n if (typeof raw === 'string' && /^[0-9.]+$/.test(raw)) {\n let n = parseFloat(raw);\n const len = Math.floor(n).toString().length;\n /*\n 最常见的是 10 位和 13 位\n 9999999999 - 10*9 - 1970-04-26\n 99999999999 - 11*9 - 1973\n 999999999999 - 12*9 - 2001\n */\n if (len <= 11) {\n n *= 1000;\n }\n return new Date(n);\n } else if (typeof raw === 'string') {\n const date = new Date(raw);\n if (!isNaN(+date)) {\n return date;\n }\n }\n throw new Error(`parseTimestamp: invalid \"${raw}\"`);\n}\n"],"names":["parseTimestamp","raw","undefined","Date","test","n","parseFloat","len","Math","floor","toString","length","date","isNaN","Error"],"mappings":"AAAA,OAAO,SAASA,eAAeC,GAA4B;IACzD,IAAI,CAACA,KAAK;QACR,OAAOC;IACT;IACA,IAAID,eAAeE,MAAM;QACvB,OAAOF;IACT;IAEA,IAAI,OAAOA,QAAQ,YAAY,YAAYG,IAAI,CAACH,MAAM;QACpD,IAAII,IAAIC,WAAWL;QACnB,MAAMM,MAAMC,KAAKC,KAAK,CAACJ,GAAGK,QAAQ,GAAGC,MAAM;QAC3C;;;;;KAKC,GACD,IAAIJ,OAAO,IAAI;YACbF,KAAK;QACP;QACA,OAAO,IAAIF,KAAKE;IAClB,OAAO,IAAI,OAAOJ,QAAQ,UAAU;QAClC,MAAMW,OAAO,IAAIT,KAAKF;QACtB,IAAI,CAACY,MAAM,CAACD,OAAO;YACjB,OAAOA;QACT;IACF;IACA,MAAM,IAAIE,MAAM,CAAC,yBAAyB,EAAEb,IAAI,CAAC,CAAC;AACpD"}
package/src/cn/README.md DELETED
@@ -1,3 +0,0 @@
1
- - id
2
- - https://zh.wikipedia.org/wiki/中华人民共和国外国人永久居留身份证
3
- - https://learn.microsoft.com/en-us/purview/sit-defn-china-resident-identity-card-number