@wener/utils 1.1.31 → 1.1.33

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 (317) hide show
  1. package/dist/LICENSE.txt +1 -0
  2. package/dist/cjs/index.cjs +21 -0
  3. package/dist/cjs/index.cjs.map +1 -0
  4. package/dist/esm/index.js +21 -0
  5. package/dist/esm/index.js.map +1 -0
  6. package/dist/system/index.js +21 -0
  7. package/dist/system/index.js.map +1 -0
  8. package/package.json +37 -69
  9. package/src/asyncs/nextOfAsyncIterator.ts +13 -1
  10. package/src/asyncs/timeout.ts +15 -12
  11. package/src/cn/index.ts +1 -0
  12. package/src/cn/parseChineseNumber.test.ts +24 -0
  13. package/src/cn/parseChineseNumber.ts +97 -0
  14. package/src/crypto/getRandomValues.ts +5 -3
  15. package/src/crypto/hashing.test.ts +1 -1
  16. package/src/errors/Errors.test.ts +22 -0
  17. package/src/errors/Errors.ts +1 -4
  18. package/src/index.ts +2 -0
  19. package/src/io/Bytes.ts +64 -0
  20. package/src/isomorphics/structuredClone.ts +0 -3
  21. package/src/langs/AsyncCloser.ts +45 -0
  22. package/src/langs/Closer.ts +39 -0
  23. package/src/server/index.ts +6 -0
  24. package/src/{servers → server}/polyfill/polyfillWebSocket.ts +5 -0
  25. package/src/{types/index.d.ts → types.d.ts} +12 -0
  26. package/tsconfig.json +7 -5
  27. package/index.ts +0 -1
  28. package/lib/arrays/MaybeArray.js +0 -41
  29. package/lib/arrays/MaybeArray.js.map +0 -1
  30. package/lib/arrays/arrayFromAsync.js +0 -7
  31. package/lib/arrays/arrayFromAsync.js.map +0 -1
  32. package/lib/asyncs/AsyncInterval.js +0 -14
  33. package/lib/asyncs/AsyncInterval.js.map +0 -1
  34. package/lib/asyncs/MaybePromise.js +0 -3
  35. package/lib/asyncs/MaybePromise.js.map +0 -1
  36. package/lib/asyncs/createAsyncIterator.js +0 -41
  37. package/lib/asyncs/createAsyncIterator.js.map +0 -1
  38. package/lib/asyncs/createLazyPromise.js +0 -65
  39. package/lib/asyncs/createLazyPromise.js.map +0 -1
  40. package/lib/asyncs/firstOfAsyncIterator.js +0 -11
  41. package/lib/asyncs/firstOfAsyncIterator.js.map +0 -1
  42. package/lib/asyncs/generatorOfStream.js +0 -16
  43. package/lib/asyncs/generatorOfStream.js.map +0 -1
  44. package/lib/asyncs/isIterator.js +0 -5
  45. package/lib/asyncs/isIterator.js.map +0 -1
  46. package/lib/asyncs/isPromise.js +0 -5
  47. package/lib/asyncs/isPromise.js.map +0 -1
  48. package/lib/asyncs/isThenable.js +0 -6
  49. package/lib/asyncs/isThenable.js.map +0 -1
  50. package/lib/asyncs/nextOfAsyncIterator.js +0 -25
  51. package/lib/asyncs/nextOfAsyncIterator.js.map +0 -1
  52. package/lib/asyncs/promiseOfCallback.js +0 -17
  53. package/lib/asyncs/promiseOfCallback.js.map +0 -1
  54. package/lib/asyncs/sleep.js +0 -3
  55. package/lib/asyncs/sleep.js.map +0 -1
  56. package/lib/asyncs/timeout.js +0 -25
  57. package/lib/asyncs/timeout.js.map +0 -1
  58. package/lib/browsers/copy.js +0 -53
  59. package/lib/browsers/copy.js.map +0 -1
  60. package/lib/browsers/download.js +0 -41
  61. package/lib/browsers/download.js.map +0 -1
  62. package/lib/browsers/getFileFromDataTransfer.js +0 -45
  63. package/lib/browsers/getFileFromDataTransfer.js.map +0 -1
  64. package/lib/browsers/loaders.js +0 -49
  65. package/lib/browsers/loaders.js.map +0 -1
  66. package/lib/crypto/base.js +0 -7
  67. package/lib/crypto/base.js.map +0 -1
  68. package/lib/crypto/getNodeCrypto.js +0 -18
  69. package/lib/crypto/getNodeCrypto.js.map +0 -1
  70. package/lib/crypto/getRandomValues.js +0 -29
  71. package/lib/crypto/getRandomValues.js.map +0 -1
  72. package/lib/crypto/hashing.js +0 -57
  73. package/lib/crypto/hashing.js.map +0 -1
  74. package/lib/crypto/md5.bench.js +0 -21
  75. package/lib/crypto/md5.bench.js.map +0 -1
  76. package/lib/crypto/md5.d.js +0 -3
  77. package/lib/crypto/md5.d.js.map +0 -1
  78. package/lib/crypto/md5.js +0 -121
  79. package/lib/crypto/md5.js.map +0 -1
  80. package/lib/crypto/pem/pem.js +0 -35
  81. package/lib/crypto/pem/pem.js.map +0 -1
  82. package/lib/crypto/randomUUID.js +0 -16
  83. package/lib/crypto/randomUUID.js.map +0 -1
  84. package/lib/crypto/ulid.js +0 -153
  85. package/lib/crypto/ulid.js.map +0 -1
  86. package/lib/errors/Errors.js +0 -181
  87. package/lib/errors/Errors.js.map +0 -1
  88. package/lib/fetch/createFetchWith.js +0 -23
  89. package/lib/fetch/createFetchWith.js.map +0 -1
  90. package/lib/fetch/createFetchWithLogging.js +0 -25
  91. package/lib/fetch/createFetchWithLogging.js.map +0 -1
  92. package/lib/fetch/createFetchWithRetry.js +0 -66
  93. package/lib/fetch/createFetchWithRetry.js.map +0 -1
  94. package/lib/fetch/dumpRequest.js +0 -45
  95. package/lib/fetch/dumpRequest.js.map +0 -1
  96. package/lib/fetch/dumpResponse.js +0 -16
  97. package/lib/fetch/dumpResponse.js.map +0 -1
  98. package/lib/fetch/index.js +0 -7
  99. package/lib/fetch/index.js.map +0 -1
  100. package/lib/fetch/types.js +0 -3
  101. package/lib/fetch/types.js.map +0 -1
  102. package/lib/http/HttpStatus.js +0 -94
  103. package/lib/http/HttpStatus.js.map +0 -1
  104. package/lib/i18n/createTranslate.js +0 -54
  105. package/lib/i18n/createTranslate.js.map +0 -1
  106. package/lib/index.js +0 -80
  107. package/lib/index.js.map +0 -1
  108. package/lib/io/AbstractEncoding.js +0 -7
  109. package/lib/io/AbstractEncoding.js.map +0 -1
  110. package/lib/io/ArrayBuffer.test-d.js +0 -7
  111. package/lib/io/ArrayBuffer.test-d.js.map +0 -1
  112. package/lib/io/ArrayBuffers.js +0 -210
  113. package/lib/io/ArrayBuffers.js.map +0 -1
  114. package/lib/io/Buffer.js +0 -25
  115. package/lib/io/Buffer.js.map +0 -1
  116. package/lib/io/base64.js +0 -54
  117. package/lib/io/base64.js.map +0 -1
  118. package/lib/io/isBuffer.js +0 -9
  119. package/lib/io/isBuffer.js.map +0 -1
  120. package/lib/io/isTransferable.js +0 -30
  121. package/lib/io/isTransferable.js.map +0 -1
  122. package/lib/isomorphics/getGlobalThis.js +0 -19
  123. package/lib/isomorphics/getGlobalThis.js.map +0 -1
  124. package/lib/isomorphics/structuredClone.js +0 -80
  125. package/lib/isomorphics/structuredClone.js.map +0 -1
  126. package/lib/langs/MaybeFunction.js +0 -9
  127. package/lib/langs/MaybeFunction.js.map +0 -1
  128. package/lib/langs/classOf.js +0 -5
  129. package/lib/langs/classOf.js.map +0 -1
  130. package/lib/langs/deepEqual.js +0 -87
  131. package/lib/langs/deepEqual.js.map +0 -1
  132. package/lib/langs/deepFreeze.js +0 -20
  133. package/lib/langs/deepFreeze.js.map +0 -1
  134. package/lib/langs/hashCode.ignored.js +0 -112
  135. package/lib/langs/hashCode.ignored.js.map +0 -1
  136. package/lib/langs/isClass.js +0 -5
  137. package/lib/langs/isClass.js.map +0 -1
  138. package/lib/langs/isDefined.js +0 -5
  139. package/lib/langs/isDefined.js.map +0 -1
  140. package/lib/langs/isEmptyObject.js +0 -6
  141. package/lib/langs/isEmptyObject.js.map +0 -1
  142. package/lib/langs/isFunction.js +0 -5
  143. package/lib/langs/isFunction.js.map +0 -1
  144. package/lib/langs/isPlainObject.js +0 -10
  145. package/lib/langs/isPlainObject.js.map +0 -1
  146. package/lib/langs/memoize.js +0 -22
  147. package/lib/langs/memoize.js.map +0 -1
  148. package/lib/langs/parseBoolean.js +0 -30
  149. package/lib/langs/parseBoolean.js.map +0 -1
  150. package/lib/langs/shallowClone.js +0 -15
  151. package/lib/langs/shallowClone.js.map +0 -1
  152. package/lib/langs/shallowEqual.js +0 -24
  153. package/lib/langs/shallowEqual.js.map +0 -1
  154. package/lib/libs/ms.js +0 -137
  155. package/lib/libs/ms.js.map +0 -1
  156. package/lib/logging/Logger.js +0 -5
  157. package/lib/logging/Logger.js.map +0 -1
  158. package/lib/logging/createChildLogger.js +0 -16
  159. package/lib/logging/createChildLogger.js.map +0 -1
  160. package/lib/logging/createLogger.js +0 -63
  161. package/lib/logging/createLogger.js.map +0 -1
  162. package/lib/logging/createNoopLogger.js +0 -13
  163. package/lib/logging/createNoopLogger.js.map +0 -1
  164. package/lib/logging/slog.js +0 -143
  165. package/lib/logging/slog.js.map +0 -1
  166. package/lib/maths/clamp.js +0 -21
  167. package/lib/maths/clamp.js.map +0 -1
  168. package/lib/maths/random.js +0 -17
  169. package/lib/maths/random.js.map +0 -1
  170. package/lib/modules/isModule.js +0 -7
  171. package/lib/modules/isModule.js.map +0 -1
  172. package/lib/modules/parseModuleId.js +0 -39
  173. package/lib/modules/parseModuleId.js.map +0 -1
  174. package/lib/objects/get.js +0 -16
  175. package/lib/objects/get.js.map +0 -1
  176. package/lib/objects/get.test-d.js +0 -33
  177. package/lib/objects/get.test-d.js.map +0 -1
  178. package/lib/objects/merge/index.js +0 -3
  179. package/lib/objects/merge/index.js.map +0 -1
  180. package/lib/objects/merge/isMergeableObject.js +0 -19
  181. package/lib/objects/merge/isMergeableObject.js.map +0 -1
  182. package/lib/objects/merge/merge.js +0 -89
  183. package/lib/objects/merge/merge.js.map +0 -1
  184. package/lib/objects/parseObjectPath.js +0 -39
  185. package/lib/objects/parseObjectPath.js.map +0 -1
  186. package/lib/objects/set.js +0 -38
  187. package/lib/objects/set.js.map +0 -1
  188. package/lib/schema/typebox/gen/codegen/common/encoder.js +0 -100
  189. package/lib/schema/typebox/gen/codegen/common/encoder.js.map +0 -1
  190. package/lib/schema/typebox/gen/codegen/common/formatter.js +0 -33
  191. package/lib/schema/typebox/gen/codegen/common/formatter.js.map +0 -1
  192. package/lib/schema/typebox/gen/codegen/common/index.js +0 -5
  193. package/lib/schema/typebox/gen/codegen/common/index.js.map +0 -1
  194. package/lib/schema/typebox/gen/codegen/common/jsdoc.js +0 -117
  195. package/lib/schema/typebox/gen/codegen/common/jsdoc.js.map +0 -1
  196. package/lib/schema/typebox/gen/codegen/expression/compiler.js +0 -367
  197. package/lib/schema/typebox/gen/codegen/expression/compiler.js.map +0 -1
  198. package/lib/schema/typebox/gen/codegen/expression/errors.js +0 -259
  199. package/lib/schema/typebox/gen/codegen/expression/errors.js.map +0 -1
  200. package/lib/schema/typebox/gen/codegen/expression/evaluator.js +0 -254
  201. package/lib/schema/typebox/gen/codegen/expression/evaluator.js.map +0 -1
  202. package/lib/schema/typebox/gen/codegen/expression/expression.js +0 -384
  203. package/lib/schema/typebox/gen/codegen/expression/expression.js.map +0 -1
  204. package/lib/schema/typebox/gen/codegen/expression/index.js +0 -6
  205. package/lib/schema/typebox/gen/codegen/expression/index.js.map +0 -1
  206. package/lib/schema/typebox/gen/codegen/index.js +0 -5
  207. package/lib/schema/typebox/gen/codegen/index.js.map +0 -1
  208. package/lib/schema/typebox/gen/codegen/model/index.js +0 -16
  209. package/lib/schema/typebox/gen/codegen/model/index.js.map +0 -1
  210. package/lib/schema/typebox/gen/codegen/model/model-to-arktype.js +0 -239
  211. package/lib/schema/typebox/gen/codegen/model/model-to-arktype.js.map +0 -1
  212. package/lib/schema/typebox/gen/codegen/model/model-to-expression.js +0 -359
  213. package/lib/schema/typebox/gen/codegen/model/model-to-expression.js.map +0 -1
  214. package/lib/schema/typebox/gen/codegen/model/model-to-grpc.js +0 -217
  215. package/lib/schema/typebox/gen/codegen/model/model-to-grpc.js.map +0 -1
  216. package/lib/schema/typebox/gen/codegen/model/model-to-io-ts.js +0 -253
  217. package/lib/schema/typebox/gen/codegen/model/model-to-io-ts.js.map +0 -1
  218. package/lib/schema/typebox/gen/codegen/model/model-to-javascript.js +0 -47
  219. package/lib/schema/typebox/gen/codegen/model/model-to-javascript.js.map +0 -1
  220. package/lib/schema/typebox/gen/codegen/model/model-to-json-schema.js +0 -171
  221. package/lib/schema/typebox/gen/codegen/model/model-to-json-schema.js.map +0 -1
  222. package/lib/schema/typebox/gen/codegen/model/model-to-typebox.js +0 -33
  223. package/lib/schema/typebox/gen/codegen/model/model-to-typebox.js.map +0 -1
  224. package/lib/schema/typebox/gen/codegen/model/model-to-typescript.js +0 -164
  225. package/lib/schema/typebox/gen/codegen/model/model-to-typescript.js.map +0 -1
  226. package/lib/schema/typebox/gen/codegen/model/model-to-valibot.js +0 -218
  227. package/lib/schema/typebox/gen/codegen/model/model-to-valibot.js.map +0 -1
  228. package/lib/schema/typebox/gen/codegen/model/model-to-value.js +0 -43
  229. package/lib/schema/typebox/gen/codegen/model/model-to-value.js.map +0 -1
  230. package/lib/schema/typebox/gen/codegen/model/model-to-yrel.js +0 -206
  231. package/lib/schema/typebox/gen/codegen/model/model-to-yrel.js.map +0 -1
  232. package/lib/schema/typebox/gen/codegen/model/model-to-yup.js +0 -204
  233. package/lib/schema/typebox/gen/codegen/model/model-to-yup.js.map +0 -1
  234. package/lib/schema/typebox/gen/codegen/model/model-to-zod.js +0 -227
  235. package/lib/schema/typebox/gen/codegen/model/model-to-zod.js.map +0 -1
  236. package/lib/schema/typebox/gen/codegen/model/model.js +0 -27
  237. package/lib/schema/typebox/gen/codegen/model/model.js.map +0 -1
  238. package/lib/schema/typebox/gen/codegen/typescript/index.js +0 -4
  239. package/lib/schema/typebox/gen/codegen/typescript/index.js.map +0 -1
  240. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-model.js +0 -48
  241. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-model.js.map +0 -1
  242. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-typebox.js +0 -596
  243. package/lib/schema/typebox/gen/codegen/typescript/typescript-to-typebox.js.map +0 -1
  244. package/lib/schema/typebox/gen/index.js +0 -3
  245. package/lib/schema/typebox/gen/index.js.map +0 -1
  246. package/lib/schema/typebox/index.js +0 -3
  247. package/lib/schema/typebox/index.js.map +0 -1
  248. package/lib/schema/typebox/typebox.js +0 -23
  249. package/lib/schema/typebox/typebox.js.map +0 -1
  250. package/lib/server.js +0 -7
  251. package/lib/server.js.map +0 -1
  252. package/lib/servers/crypto/md5.js +0 -6
  253. package/lib/servers/crypto/md5.js.map +0 -1
  254. package/lib/servers/fetch/createFetchWithProxy.js +0 -4
  255. package/lib/servers/fetch/createFetchWithProxy.js.map +0 -1
  256. package/lib/servers/fetch/createFetchWithProxyByNodeFetch.js +0 -38
  257. package/lib/servers/fetch/createFetchWithProxyByNodeFetch.js.map +0 -1
  258. package/lib/servers/fetch/createFetchWithProxyByUndici.js +0 -64
  259. package/lib/servers/fetch/createFetchWithProxyByUndici.js.map +0 -1
  260. package/lib/servers/getPackageDir.js +0 -16
  261. package/lib/servers/getPackageDir.js.map +0 -1
  262. package/lib/servers/jsdom.js +0 -3
  263. package/lib/servers/jsdom.js.map +0 -1
  264. package/lib/servers/node-fetch.js +0 -4
  265. package/lib/servers/node-fetch.js.map +0 -1
  266. package/lib/servers/polyfill/polyfillBrowser.js +0 -17
  267. package/lib/servers/polyfill/polyfillBrowser.js.map +0 -1
  268. package/lib/servers/polyfill/polyfillCrypto.js +0 -11
  269. package/lib/servers/polyfill/polyfillCrypto.js.map +0 -1
  270. package/lib/servers/polyfill/polyfillFetch.js +0 -25
  271. package/lib/servers/polyfill/polyfillFetch.js.map +0 -1
  272. package/lib/servers/polyfill/polyfillJsDom.js +0 -64
  273. package/lib/servers/polyfill/polyfillJsDom.js.map +0 -1
  274. package/lib/servers/polyfill/polyfillWebSocket.js +0 -16
  275. package/lib/servers/polyfill/polyfillWebSocket.js.map +0 -1
  276. package/lib/servers/ws.js +0 -3
  277. package/lib/servers/ws.js.map +0 -1
  278. package/lib/strings/camelCase.js +0 -58
  279. package/lib/strings/camelCase.js.map +0 -1
  280. package/lib/strings/formatBytes.js +0 -43
  281. package/lib/strings/formatBytes.js.map +0 -1
  282. package/lib/strings/renderTemplate.js +0 -32
  283. package/lib/strings/renderTemplate.js.map +0 -1
  284. package/lib/typedoc.js +0 -4
  285. package/lib/typedoc.js.map +0 -1
  286. package/lib/types/global.d.js +0 -2
  287. package/lib/types/global.d.js.map +0 -1
  288. package/lib/types/index.d.js +0 -6
  289. package/lib/types/index.d.js.map +0 -1
  290. package/lib/validations/asserts.js +0 -14
  291. package/lib/validations/asserts.js.map +0 -1
  292. package/lib/validations/isUUID.js +0 -5
  293. package/lib/validations/isUUID.js.map +0 -1
  294. package/lib/validations/parseTimestamp.js +0 -29
  295. package/lib/validations/parseTimestamp.js.map +0 -1
  296. package/schema/typebox/gen/index.ts +0 -1
  297. package/schema/typebox/index.ts +0 -1
  298. package/server/jsdom.ts +0 -1
  299. package/server/node-fetch.ts +0 -1
  300. package/server/ws.ts +0 -1
  301. package/server.ts +0 -1
  302. package/src/server.ts +0 -6
  303. package/src/types/global.d.ts +0 -11
  304. package/types.d.ts +0 -1
  305. /package/src/{servers → server}/crypto/md5.ts +0 -0
  306. /package/src/{servers → server}/fetch/createFetchWithProxy.ts +0 -0
  307. /package/src/{servers → server}/fetch/createFetchWithProxyByNodeFetch.ts +0 -0
  308. /package/src/{servers → server}/fetch/createFetchWithProxyByUndici.ts +0 -0
  309. /package/src/{servers → server}/getPackageDir.ts +0 -0
  310. /package/src/{servers → server}/jsdom.ts +0 -0
  311. /package/src/{servers → server}/node-fetch.ts +0 -0
  312. /package/src/{servers → server}/polyfill/polyfillBrowser.test.ts +0 -0
  313. /package/src/{servers → server}/polyfill/polyfillBrowser.ts +0 -0
  314. /package/src/{servers → server}/polyfill/polyfillCrypto.ts +0 -0
  315. /package/src/{servers → server}/polyfill/polyfillFetch.ts +0 -0
  316. /package/src/{servers → server}/polyfill/polyfillJsDom.ts +0 -0
  317. /package/src/{servers → server}/ws.ts +0 -0
@@ -1,18 +0,0 @@
1
- let nodeCrypto;
2
- // globalThis.process?.release?.name
3
- // avoid process.browser
4
- if (typeof window === 'undefined') {
5
- try {
6
- // avoid `node:` UnhandledSchemeError https://github.com/vercel/next.js/issues/28774
7
- if (typeof require === 'undefined') {
8
- void import('crypto').then((v)=>nodeCrypto = v.default);
9
- } else {
10
- nodeCrypto = require('crypto');
11
- }
12
- } catch (e) {}
13
- }
14
- export function getNodeCrypto() {
15
- return nodeCrypto;
16
- }
17
-
18
- //# sourceMappingURL=getNodeCrypto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/crypto/getNodeCrypto.ts"],"sourcesContent":["let nodeCrypto: Awaited<typeof import('node:crypto')>;\n// globalThis.process?.release?.name\n\n// avoid process.browser\nif (typeof window === 'undefined') {\n try {\n // avoid `node:` UnhandledSchemeError https://github.com/vercel/next.js/issues/28774\n if (typeof require === 'undefined') {\n void import('crypto').then((v) => (nodeCrypto = v.default));\n } else {\n nodeCrypto = require('crypto');\n }\n } catch (e) {}\n}\nexport function getNodeCrypto() {\n return nodeCrypto;\n}\n"],"names":["nodeCrypto","window","require","then","v","default","e","getNodeCrypto"],"mappings":"AAAA,IAAIA;AACJ,oCAAoC;AAEpC,wBAAwB;AACxB,IAAI,OAAOC,WAAW,aAAa;IACjC,IAAI;QACF,oFAAoF;QACpF,IAAI,OAAOC,YAAY,aAAa;YAClC,KAAK,MAAM,CAAC,UAAUC,IAAI,CAAC,CAACC,IAAOJ,aAAaI,EAAEC,OAAO;QAC3D,OAAO;YACLL,aAAaE,QAAQ;QACvB;IACF,EAAE,OAAOI,GAAG,CAAC;AACf;AACA,OAAO,SAASC;IACd,OAAOP;AACT"}
@@ -1,29 +0,0 @@
1
- import { getGlobalThis } from '../isomorphics/getGlobalThis.js';
2
- import { getNodeCrypto } from './getNodeCrypto';
3
- const globalThis = getGlobalThis();
4
- export let getRandomValues = globalThis.crypto?.getRandomValues?.bind(globalThis.crypto) || globalThis.msCrypto?.getRandomValues?.bind(globalThis.msCrypto) || _getRandomValues;
5
- function _getRandomValues(buf) {
6
- const nodeCrypto = getNodeCrypto();
7
- if (nodeCrypto?.webcrypto?.getRandomValues) {
8
- getRandomValues = nodeCrypto?.webcrypto?.getRandomValues?.bind(nodeCrypto?.webcrypto);
9
- return nodeCrypto.webcrypto.getRandomValues(buf);
10
- }
11
- if (nodeCrypto?.randomBytes) {
12
- if (!(buf instanceof Uint8Array)) {
13
- throw new TypeError('expected Uint8Array');
14
- }
15
- if (buf.length > 65536) {
16
- const e = new Error();
17
- e.code = 22;
18
- e.message = `Failed to execute 'getRandomValues' on 'Crypto': The ArrayBufferView's byte length (${buf.length}) exceeds the number of bytes of entropy available via this API (65536).`;
19
- e.name = 'QuotaExceededError';
20
- throw e;
21
- }
22
- const bytes = nodeCrypto.randomBytes(buf.length);
23
- buf.set(bytes);
24
- return buf;
25
- }
26
- throw new Error('[getRandomValues]: No secure random number generator available.');
27
- }
28
-
29
- //# sourceMappingURL=getRandomValues.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/crypto/getRandomValues.ts"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport type { TypedArray } from '../io/ArrayBuffers';\nimport { getGlobalThis } from '../isomorphics/getGlobalThis';\nimport { getNodeCrypto } from './getNodeCrypto';\n\nconst globalThis = getGlobalThis();\nexport let getRandomValues: <T extends Exclude<TypedArray, Float32Array | Float64Array>>(typedArray: T) => T =\n globalThis.crypto?.getRandomValues?.bind(globalThis.crypto) ||\n (globalThis as any).msCrypto?.getRandomValues?.bind((globalThis as any).msCrypto) ||\n _getRandomValues;\n\nfunction _getRandomValues<T extends Exclude<TypedArray, Float32Array | Float64Array>>(buf: T) {\n const nodeCrypto = getNodeCrypto();\n if (nodeCrypto?.webcrypto?.getRandomValues) {\n getRandomValues = nodeCrypto?.webcrypto?.getRandomValues?.bind(nodeCrypto?.webcrypto);\n return nodeCrypto.webcrypto.getRandomValues(buf);\n }\n if (nodeCrypto?.randomBytes) {\n if (!(buf instanceof Uint8Array)) {\n throw new TypeError('expected Uint8Array');\n }\n if (buf.length > 65536) {\n const e: any = new Error();\n e.code = 22;\n e.message = `Failed to execute 'getRandomValues' on 'Crypto': The ArrayBufferView's byte length (${buf.length}) exceeds the number of bytes of entropy available via this API (65536).`;\n e.name = 'QuotaExceededError';\n throw e;\n }\n const bytes = nodeCrypto.randomBytes(buf.length);\n buf.set(bytes);\n return buf;\n }\n throw new Error('[getRandomValues]: No secure random number generator available.');\n}\n"],"names":["getGlobalThis","getNodeCrypto","globalThis","getRandomValues","crypto","bind","msCrypto","_getRandomValues","buf","nodeCrypto","webcrypto","randomBytes","Uint8Array","TypeError","length","e","Error","code","message","name","bytes","set"],"mappings":"AAAA,sEAAsE;AAEtE,SAASA,aAAa,QAAQ,+BAA+B;AAC7D,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,MAAMC,aAAaF;AACnB,OAAO,IAAIG,kBACTD,WAAWE,MAAM,EAAED,iBAAiBE,KAAKH,WAAWE,MAAM,KAC1D,AAACF,WAAmBI,QAAQ,EAAEH,iBAAiBE,KAAK,AAACH,WAAmBI,QAAQ,KAChFC,iBAAiB;AAEnB,SAASA,iBAA6EC,GAAM;IAC1F,MAAMC,aAAaR;IACnB,IAAIQ,YAAYC,WAAWP,iBAAiB;QAC1CA,kBAAkBM,YAAYC,WAAWP,iBAAiBE,KAAKI,YAAYC;QAC3E,OAAOD,WAAWC,SAAS,CAACP,eAAe,CAACK;IAC9C;IACA,IAAIC,YAAYE,aAAa;QAC3B,IAAI,CAAEH,CAAAA,eAAeI,UAAS,GAAI;YAChC,MAAM,IAAIC,UAAU;QACtB;QACA,IAAIL,IAAIM,MAAM,GAAG,OAAO;YACtB,MAAMC,IAAS,IAAIC;YACnBD,EAAEE,IAAI,GAAG;YACTF,EAAEG,OAAO,GAAG,CAAC,oFAAoF,EAAEV,IAAIM,MAAM,CAAC,wEAAwE,CAAC;YACvLC,EAAEI,IAAI,GAAG;YACT,MAAMJ;QACR;QACA,MAAMK,QAAQX,WAAWE,WAAW,CAACH,IAAIM,MAAM;QAC/CN,IAAIa,GAAG,CAACD;QACR,OAAOZ;IACT;IACA,MAAM,IAAIQ,MAAM;AAClB"}
@@ -1,57 +0,0 @@
1
- import { ArrayBuffers } from '../io/ArrayBuffers.js';
2
- export function sha1(s, o) {
3
- return digestOf('SHA-1', s, o);
4
- }
5
- export function sha256(s, o) {
6
- return digestOf('SHA-256', s, o);
7
- }
8
- export function sha384(s, o) {
9
- return digestOf('SHA-384', s, o);
10
- }
11
- export function sha512(s, o) {
12
- return digestOf('SHA-512', s, o);
13
- }
14
- function digestOf(a, s, o) {
15
- let buffer = crypto.subtle.digest(a, binaryOf(s));
16
- return o ? buffer.then((v)=>encode(v, o)) : buffer;
17
- }
18
- function binaryOf(s) {
19
- // ArrayBuffer, TypedArray, DataView
20
- if (typeof s === 'string') {
21
- return new TextEncoder().encode(s);
22
- }
23
- // ArrayBuffer, Buffer, TypedArray, DataView
24
- return s;
25
- }
26
- function encode(buf, o) {
27
- if (o) {
28
- switch(o){
29
- case 'hex':
30
- case 'base64':
31
- return ArrayBuffers.toString(buf, o);
32
- }
33
- }
34
- return buf;
35
- }
36
- export async function hmac(hash, key, data, o) {
37
- let ck = key instanceof CryptoKey ? key : await crypto.subtle.importKey('raw', binaryOf(key), {
38
- name: 'HMAC',
39
- hash: {
40
- name: normalizeHash(hash)
41
- }
42
- }, false, [
43
- 'sign'
44
- ]);
45
- let buffer = await crypto.subtle.sign({
46
- name: 'HMAC',
47
- hash: {
48
- name: hash
49
- }
50
- }, ck, binaryOf(data));
51
- return encode(buffer, o);
52
- }
53
- function normalizeHash(hash) {
54
- return hash.replace(/^sha/i, 'SHA-');
55
- }
56
-
57
- //# sourceMappingURL=hashing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/crypto/hashing.ts"],"sourcesContent":["import { ArrayBuffers } from '../io/ArrayBuffers';\n\nexport function sha1(s: BinaryLike, o?: undefined): Promise<Buffer>;\nexport function sha1(s: BinaryLike, o: 'hex' | 'base64'): Promise<string>;\n\nexport function sha1(s: BinaryLike, o?: DigestOptions) {\n return digestOf('SHA-1', s, o);\n}\n\nexport function sha256(s: BinaryLike, o?: undefined): Promise<Buffer>;\nexport function sha256(s: BinaryLike, o: 'hex' | 'base64'): Promise<string>;\n\nexport function sha256(s: BinaryLike, o?: DigestOptions) {\n return digestOf('SHA-256', s, o);\n}\n\nexport function sha384(s: BinaryLike, o?: undefined): Promise<Buffer>;\nexport function sha384(s: BinaryLike, o: 'hex' | 'base64'): Promise<string>;\n\nexport function sha384(s: BinaryLike, o?: DigestOptions) {\n return digestOf('SHA-384', s, o);\n}\n\nexport function sha512(s: BinaryLike, o?: undefined): Promise<Buffer>;\nexport function sha512(s: BinaryLike, o: 'hex' | 'base64'): Promise<string>;\n\nexport function sha512(s: BinaryLike, o?: DigestOptions) {\n return digestOf('SHA-512', s, o);\n}\n\nfunction digestOf(a: string, s: BinaryLike, o?: DigestOptions) {\n let buffer = crypto.subtle.digest(a, binaryOf(s));\n return o ? buffer.then((v) => encode(v, o)) : buffer;\n}\n\nexport type DigestOptions =\n | 'hex'\n | 'base64'\n | {\n encoding: 'hex' | 'base64';\n };\n\ntype BinaryLike = string | BufferSource;\n\nfunction binaryOf(s: BinaryLike) {\n // ArrayBuffer, TypedArray, DataView\n if (typeof s === 'string') {\n return new TextEncoder().encode(s);\n }\n // ArrayBuffer, Buffer, TypedArray, DataView\n return s;\n}\n\nfunction encode(buf: BufferSource, o?: DigestOptions) {\n if (o) {\n switch (o) {\n case 'hex':\n case 'base64':\n return ArrayBuffers.toString(buf, o);\n }\n }\n return buf;\n}\n\ntype StringEncoding = 'hex' | 'base64';\ntype IsStringCoding<T> = T extends StringEncoding ? true : T extends { encoding: StringEncoding } ? true : false;\n\nexport function hmac<O extends DigestOptions>(\n hash: 'SHA-1' | 'SHA-256' | 'SHA-384' | 'SHA-512' | 'sha1' | 'sha256' | 'sha384' | 'sha512',\n key: BinaryLike | CryptoKey,\n data: BinaryLike,\n o?: O,\n): Promise<IsStringCoding<O> extends true ? string : Buffer>;\n\nexport async function hmac(\n hash: 'SHA-1' | 'SHA-256' | 'SHA-384' | 'SHA-512' | 'sha1' | 'sha256' | 'sha384' | 'sha512',\n key: BinaryLike | CryptoKey,\n data: BinaryLike,\n o?: DigestOptions,\n) {\n let ck =\n key instanceof CryptoKey\n ? key\n : await crypto.subtle.importKey(\n 'raw',\n binaryOf(key),\n {\n name: 'HMAC',\n hash: {\n name: normalizeHash(hash),\n },\n },\n false,\n ['sign'],\n );\n let buffer = await crypto.subtle.sign(\n {\n name: 'HMAC',\n hash: {\n name: hash,\n },\n },\n ck,\n binaryOf(data),\n );\n\n return encode(buffer, o);\n}\n\nfunction normalizeHash(hash: string) {\n return hash.replace(/^sha/i, 'SHA-');\n}\n"],"names":["ArrayBuffers","sha1","s","o","digestOf","sha256","sha384","sha512","a","buffer","crypto","subtle","digest","binaryOf","then","v","encode","TextEncoder","buf","toString","hmac","hash","key","data","ck","CryptoKey","importKey","name","normalizeHash","sign","replace"],"mappings":"AAAA,SAASA,YAAY,QAAQ,qBAAqB;AAKlD,OAAO,SAASC,KAAKC,CAAa,EAAEC,CAAiB;IACnD,OAAOC,SAAS,SAASF,GAAGC;AAC9B;AAKA,OAAO,SAASE,OAAOH,CAAa,EAAEC,CAAiB;IACrD,OAAOC,SAAS,WAAWF,GAAGC;AAChC;AAKA,OAAO,SAASG,OAAOJ,CAAa,EAAEC,CAAiB;IACrD,OAAOC,SAAS,WAAWF,GAAGC;AAChC;AAKA,OAAO,SAASI,OAAOL,CAAa,EAAEC,CAAiB;IACrD,OAAOC,SAAS,WAAWF,GAAGC;AAChC;AAEA,SAASC,SAASI,CAAS,EAAEN,CAAa,EAAEC,CAAiB;IAC3D,IAAIM,SAASC,OAAOC,MAAM,CAACC,MAAM,CAACJ,GAAGK,SAASX;IAC9C,OAAOC,IAAIM,OAAOK,IAAI,CAAC,CAACC,IAAMC,OAAOD,GAAGZ,MAAMM;AAChD;AAWA,SAASI,SAASX,CAAa;IAC7B,oCAAoC;IACpC,IAAI,OAAOA,MAAM,UAAU;QACzB,OAAO,IAAIe,cAAcD,MAAM,CAACd;IAClC;IACA,6CAA6C;IAC7C,OAAOA;AACT;AAEA,SAASc,OAAOE,GAAiB,EAAEf,CAAiB;IAClD,IAAIA,GAAG;QACL,OAAQA;YACN,KAAK;YACL,KAAK;gBACH,OAAOH,aAAamB,QAAQ,CAACD,KAAKf;QACtC;IACF;IACA,OAAOe;AACT;AAYA,OAAO,eAAeE,KACpBC,IAA2F,EAC3FC,GAA2B,EAC3BC,IAAgB,EAChBpB,CAAiB;IAEjB,IAAIqB,KACFF,eAAeG,YACXH,MACA,MAAMZ,OAAOC,MAAM,CAACe,SAAS,CAC3B,OACAb,SAASS,MACT;QACEK,MAAM;QACNN,MAAM;YACJM,MAAMC,cAAcP;QACtB;IACF,GACA,OACA;QAAC;KAAO;IAEhB,IAAIZ,SAAS,MAAMC,OAAOC,MAAM,CAACkB,IAAI,CACnC;QACEF,MAAM;QACNN,MAAM;YACJM,MAAMN;QACR;IACF,GACAG,IACAX,SAASU;IAGX,OAAOP,OAAOP,QAAQN;AACxB;AAEA,SAASyB,cAAcP,IAAY;IACjC,OAAOA,KAAKS,OAAO,CAAC,SAAS;AAC/B"}
@@ -1,21 +0,0 @@
1
- import { createHash } from 'node:crypto';
2
- import { bench, describe } from 'vitest';
3
- import { md5 } from './md5.js';
4
- describe('md5', ()=>{
5
- const dataset = new Array(10000).fill(0).map((_, i)=>String(Math.random() * i));
6
- let iterations = 0;
7
- bench('js', function() {
8
- iterations++;
9
- md5(dataset[iterations % dataset.length]);
10
- }, {
11
- iterations: 10000
12
- });
13
- bench('native', function() {
14
- iterations++;
15
- createHash('md5').update(dataset[iterations % dataset.length]).digest('hex');
16
- }, {
17
- iterations: 10000
18
- });
19
- });
20
-
21
- //# sourceMappingURL=md5.bench.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/crypto/md5.bench.ts"],"sourcesContent":["import { createHash } from 'node:crypto';\nimport { bench, describe } from 'vitest';\nimport { md5 } from './md5';\n\ndescribe('md5', () => {\n const dataset = new Array(10000).fill(0).map((_, i) => String(Math.random() * i));\n let iterations = 0;\n bench(\n 'js',\n function () {\n iterations++;\n md5(dataset[iterations % dataset.length]);\n },\n {\n iterations: 10000,\n },\n );\n\n bench(\n 'native',\n function () {\n iterations++;\n createHash('md5')\n .update(dataset[iterations % dataset.length])\n .digest('hex');\n },\n {\n iterations: 10000,\n },\n );\n});\n"],"names":["createHash","bench","describe","md5","dataset","Array","fill","map","_","i","String","Math","random","iterations","length","update","digest"],"mappings":"AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,KAAK,EAAEC,QAAQ,QAAQ,SAAS;AACzC,SAASC,GAAG,QAAQ,QAAQ;AAE5BD,SAAS,OAAO;IACd,MAAME,UAAU,IAAIC,MAAM,OAAOC,IAAI,CAAC,GAAGC,GAAG,CAAC,CAACC,GAAGC,IAAMC,OAAOC,KAAKC,MAAM,KAAKH;IAC9E,IAAII,aAAa;IACjBZ,MACE,MACA;QACEY;QACAV,IAAIC,OAAO,CAACS,aAAaT,QAAQU,MAAM,CAAC;IAC1C,GACA;QACED,YAAY;IACd;IAGFZ,MACE,UACA;QACEY;QACAb,WAAW,OACRe,MAAM,CAACX,OAAO,CAACS,aAAaT,QAAQU,MAAM,CAAC,EAC3CE,MAAM,CAAC;IACZ,GACA;QACEH,YAAY;IACd;AAEJ"}
@@ -1,3 +0,0 @@
1
- export { };
2
-
3
- //# sourceMappingURL=md5.d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/crypto/md5.d.ts"],"sourcesContent":["export function md5(s: string): string;\n"],"names":[],"mappings":"AAAA,WAAuC"}
package/lib/crypto/md5.js DELETED
@@ -1,121 +0,0 @@
1
- // prettier-ignore
2
- export function md5(inputString) {
3
- // https://stackoverflow.com/a/60467595/1870054
4
- var hc = "0123456789abcdef";
5
- function rh(n) {
6
- var j, s = "";
7
- for(j = 0; j <= 3; j++)s += hc.charAt(n >> j * 8 + 4 & 0x0F) + hc.charAt(n >> j * 8 & 0x0F);
8
- return s;
9
- }
10
- function ad(x, y) {
11
- var l = (x & 0xFFFF) + (y & 0xFFFF);
12
- var m = (x >> 16) + (y >> 16) + (l >> 16);
13
- return m << 16 | l & 0xFFFF;
14
- }
15
- function rl(n, c) {
16
- return n << c | n >>> 32 - c;
17
- }
18
- function cm(q, a, b, x, s, t) {
19
- return ad(rl(ad(ad(a, q), ad(x, t)), s), b);
20
- }
21
- function ff(a, b, c, d, x, s, t) {
22
- return cm(b & c | ~b & d, a, b, x, s, t);
23
- }
24
- function gg(a, b, c, d, x, s, t) {
25
- return cm(b & d | c & ~d, a, b, x, s, t);
26
- }
27
- function hh(a, b, c, d, x, s, t) {
28
- return cm(b ^ c ^ d, a, b, x, s, t);
29
- }
30
- function ii(a, b, c, d, x, s, t) {
31
- return cm(c ^ (b | ~d), a, b, x, s, t);
32
- }
33
- function sb(x) {
34
- var i;
35
- var nblk = (x.length + 8 >> 6) + 1;
36
- var blks = new Array(nblk * 16);
37
- for(i = 0; i < nblk * 16; i++)blks[i] = 0;
38
- for(i = 0; i < x.length; i++)blks[i >> 2] |= x.charCodeAt(i) << i % 4 * 8;
39
- blks[i >> 2] |= 0x80 << i % 4 * 8;
40
- blks[nblk * 16 - 2] = x.length * 8;
41
- return blks;
42
- }
43
- var i, x = sb("" + inputString), a = 1732584193, b = -271733879, c = -1732584194, d = 271733878, olda, oldb, oldc, oldd;
44
- for(i = 0; i < x.length; i += 16){
45
- olda = a;
46
- oldb = b;
47
- oldc = c;
48
- oldd = d;
49
- a = ff(a, b, c, d, x[i + 0], 7, -680876936);
50
- d = ff(d, a, b, c, x[i + 1], 12, -389564586);
51
- c = ff(c, d, a, b, x[i + 2], 17, 606105819);
52
- b = ff(b, c, d, a, x[i + 3], 22, -1044525330);
53
- a = ff(a, b, c, d, x[i + 4], 7, -176418897);
54
- d = ff(d, a, b, c, x[i + 5], 12, 1200080426);
55
- c = ff(c, d, a, b, x[i + 6], 17, -1473231341);
56
- b = ff(b, c, d, a, x[i + 7], 22, -45705983);
57
- a = ff(a, b, c, d, x[i + 8], 7, 1770035416);
58
- d = ff(d, a, b, c, x[i + 9], 12, -1958414417);
59
- c = ff(c, d, a, b, x[i + 10], 17, -42063);
60
- b = ff(b, c, d, a, x[i + 11], 22, -1990404162);
61
- a = ff(a, b, c, d, x[i + 12], 7, 1804603682);
62
- d = ff(d, a, b, c, x[i + 13], 12, -40341101);
63
- c = ff(c, d, a, b, x[i + 14], 17, -1502002290);
64
- b = ff(b, c, d, a, x[i + 15], 22, 1236535329);
65
- a = gg(a, b, c, d, x[i + 1], 5, -165796510);
66
- d = gg(d, a, b, c, x[i + 6], 9, -1069501632);
67
- c = gg(c, d, a, b, x[i + 11], 14, 643717713);
68
- b = gg(b, c, d, a, x[i + 0], 20, -373897302);
69
- a = gg(a, b, c, d, x[i + 5], 5, -701558691);
70
- d = gg(d, a, b, c, x[i + 10], 9, 38016083);
71
- c = gg(c, d, a, b, x[i + 15], 14, -660478335);
72
- b = gg(b, c, d, a, x[i + 4], 20, -405537848);
73
- a = gg(a, b, c, d, x[i + 9], 5, 568446438);
74
- d = gg(d, a, b, c, x[i + 14], 9, -1019803690);
75
- c = gg(c, d, a, b, x[i + 3], 14, -187363961);
76
- b = gg(b, c, d, a, x[i + 8], 20, 1163531501);
77
- a = gg(a, b, c, d, x[i + 13], 5, -1444681467);
78
- d = gg(d, a, b, c, x[i + 2], 9, -51403784);
79
- c = gg(c, d, a, b, x[i + 7], 14, 1735328473);
80
- b = gg(b, c, d, a, x[i + 12], 20, -1926607734);
81
- a = hh(a, b, c, d, x[i + 5], 4, -378558);
82
- d = hh(d, a, b, c, x[i + 8], 11, -2022574463);
83
- c = hh(c, d, a, b, x[i + 11], 16, 1839030562);
84
- b = hh(b, c, d, a, x[i + 14], 23, -35309556);
85
- a = hh(a, b, c, d, x[i + 1], 4, -1530992060);
86
- d = hh(d, a, b, c, x[i + 4], 11, 1272893353);
87
- c = hh(c, d, a, b, x[i + 7], 16, -155497632);
88
- b = hh(b, c, d, a, x[i + 10], 23, -1094730640);
89
- a = hh(a, b, c, d, x[i + 13], 4, 681279174);
90
- d = hh(d, a, b, c, x[i + 0], 11, -358537222);
91
- c = hh(c, d, a, b, x[i + 3], 16, -722521979);
92
- b = hh(b, c, d, a, x[i + 6], 23, 76029189);
93
- a = hh(a, b, c, d, x[i + 9], 4, -640364487);
94
- d = hh(d, a, b, c, x[i + 12], 11, -421815835);
95
- c = hh(c, d, a, b, x[i + 15], 16, 530742520);
96
- b = hh(b, c, d, a, x[i + 2], 23, -995338651);
97
- a = ii(a, b, c, d, x[i + 0], 6, -198630844);
98
- d = ii(d, a, b, c, x[i + 7], 10, 1126891415);
99
- c = ii(c, d, a, b, x[i + 14], 15, -1416354905);
100
- b = ii(b, c, d, a, x[i + 5], 21, -57434055);
101
- a = ii(a, b, c, d, x[i + 12], 6, 1700485571);
102
- d = ii(d, a, b, c, x[i + 3], 10, -1894986606);
103
- c = ii(c, d, a, b, x[i + 10], 15, -1051523);
104
- b = ii(b, c, d, a, x[i + 1], 21, -2054922799);
105
- a = ii(a, b, c, d, x[i + 8], 6, 1873313359);
106
- d = ii(d, a, b, c, x[i + 15], 10, -30611744);
107
- c = ii(c, d, a, b, x[i + 6], 15, -1560198380);
108
- b = ii(b, c, d, a, x[i + 13], 21, 1309151649);
109
- a = ii(a, b, c, d, x[i + 4], 6, -145523070);
110
- d = ii(d, a, b, c, x[i + 11], 10, -1120210379);
111
- c = ii(c, d, a, b, x[i + 2], 15, 718787259);
112
- b = ii(b, c, d, a, x[i + 9], 21, -343485551);
113
- a = ad(a, olda);
114
- b = ad(b, oldb);
115
- c = ad(c, oldc);
116
- d = ad(d, oldd);
117
- }
118
- return rh(a) + rh(b) + rh(c) + rh(d);
119
- }
120
-
121
- //# sourceMappingURL=md5.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/crypto/md5.js"],"sourcesContent":["// prettier-ignore\nexport function md5(inputString) {\n // https://stackoverflow.com/a/60467595/1870054\n var hc=\"0123456789abcdef\";\n function rh(n) {var j,s=\"\";for(j=0;j<=3;j++) s+=hc.charAt((n>>(j*8+4))&0x0F)+hc.charAt((n>>(j*8))&0x0F);return s;}\n function ad(x,y) {var l=(x&0xFFFF)+(y&0xFFFF);var m=(x>>16)+(y>>16)+(l>>16);return (m<<16)|(l&0xFFFF);}\n function rl(n,c) {return (n<<c)|(n>>>(32-c));}\n function cm(q,a,b,x,s,t) {return ad(rl(ad(ad(a,q),ad(x,t)),s),b);}\n function ff(a,b,c,d,x,s,t) {return cm((b&c)|((~b)&d),a,b,x,s,t);}\n function gg(a,b,c,d,x,s,t) {return cm((b&d)|(c&(~d)),a,b,x,s,t);}\n function hh(a,b,c,d,x,s,t) {return cm(b^c^d,a,b,x,s,t);}\n function ii(a,b,c,d,x,s,t) {return cm(c^(b|(~d)),a,b,x,s,t);}\n function sb(x) {\n var i;var nblk=((x.length+8)>>6)+1;var blks=new Array(nblk*16);for(i=0;i<nblk*16;i++) blks[i]=0;\n for(i=0;i<x.length;i++) blks[i>>2]|=x.charCodeAt(i)<<((i%4)*8);\n blks[i>>2]|=0x80<<((i%4)*8);blks[nblk*16-2]=x.length*8;return blks;\n }\n var i,x=sb(\"\"+inputString),a=1732584193,b=-271733879,c=-1732584194,d=271733878,olda,oldb,oldc,oldd;\n for(i=0;i<x.length;i+=16) {olda=a;oldb=b;oldc=c;oldd=d;\n a=ff(a,b,c,d,x[i+ 0], 7, -680876936);d=ff(d,a,b,c,x[i+ 1],12, -389564586);c=ff(c,d,a,b,x[i+ 2],17, 606105819);\n b=ff(b,c,d,a,x[i+ 3],22,-1044525330);a=ff(a,b,c,d,x[i+ 4], 7, -176418897);d=ff(d,a,b,c,x[i+ 5],12, 1200080426);\n c=ff(c,d,a,b,x[i+ 6],17,-1473231341);b=ff(b,c,d,a,x[i+ 7],22, -45705983);a=ff(a,b,c,d,x[i+ 8], 7, 1770035416);\n d=ff(d,a,b,c,x[i+ 9],12,-1958414417);c=ff(c,d,a,b,x[i+10],17, -42063);b=ff(b,c,d,a,x[i+11],22,-1990404162);\n a=ff(a,b,c,d,x[i+12], 7, 1804603682);d=ff(d,a,b,c,x[i+13],12, -40341101);c=ff(c,d,a,b,x[i+14],17,-1502002290);\n b=ff(b,c,d,a,x[i+15],22, 1236535329);a=gg(a,b,c,d,x[i+ 1], 5, -165796510);d=gg(d,a,b,c,x[i+ 6], 9,-1069501632);\n c=gg(c,d,a,b,x[i+11],14, 643717713);b=gg(b,c,d,a,x[i+ 0],20, -373897302);a=gg(a,b,c,d,x[i+ 5], 5, -701558691);\n d=gg(d,a,b,c,x[i+10], 9, 38016083);c=gg(c,d,a,b,x[i+15],14, -660478335);b=gg(b,c,d,a,x[i+ 4],20, -405537848);\n a=gg(a,b,c,d,x[i+ 9], 5, 568446438);d=gg(d,a,b,c,x[i+14], 9,-1019803690);c=gg(c,d,a,b,x[i+ 3],14, -187363961);\n b=gg(b,c,d,a,x[i+ 8],20, 1163531501);a=gg(a,b,c,d,x[i+13], 5,-1444681467);d=gg(d,a,b,c,x[i+ 2], 9, -51403784);\n c=gg(c,d,a,b,x[i+ 7],14, 1735328473);b=gg(b,c,d,a,x[i+12],20,-1926607734);a=hh(a,b,c,d,x[i+ 5], 4, -378558);\n d=hh(d,a,b,c,x[i+ 8],11,-2022574463);c=hh(c,d,a,b,x[i+11],16, 1839030562);b=hh(b,c,d,a,x[i+14],23, -35309556);\n a=hh(a,b,c,d,x[i+ 1], 4,-1530992060);d=hh(d,a,b,c,x[i+ 4],11, 1272893353);c=hh(c,d,a,b,x[i+ 7],16, -155497632);\n b=hh(b,c,d,a,x[i+10],23,-1094730640);a=hh(a,b,c,d,x[i+13], 4, 681279174);d=hh(d,a,b,c,x[i+ 0],11, -358537222);\n c=hh(c,d,a,b,x[i+ 3],16, -722521979);b=hh(b,c,d,a,x[i+ 6],23, 76029189);a=hh(a,b,c,d,x[i+ 9], 4, -640364487);\n d=hh(d,a,b,c,x[i+12],11, -421815835);c=hh(c,d,a,b,x[i+15],16, 530742520);b=hh(b,c,d,a,x[i+ 2],23, -995338651);\n a=ii(a,b,c,d,x[i+ 0], 6, -198630844);d=ii(d,a,b,c,x[i+ 7],10, 1126891415);c=ii(c,d,a,b,x[i+14],15,-1416354905);\n b=ii(b,c,d,a,x[i+ 5],21, -57434055);a=ii(a,b,c,d,x[i+12], 6, 1700485571);d=ii(d,a,b,c,x[i+ 3],10,-1894986606);\n c=ii(c,d,a,b,x[i+10],15, -1051523);b=ii(b,c,d,a,x[i+ 1],21,-2054922799);a=ii(a,b,c,d,x[i+ 8], 6, 1873313359);\n d=ii(d,a,b,c,x[i+15],10, -30611744);c=ii(c,d,a,b,x[i+ 6],15,-1560198380);b=ii(b,c,d,a,x[i+13],21, 1309151649);\n a=ii(a,b,c,d,x[i+ 4], 6, -145523070);d=ii(d,a,b,c,x[i+11],10,-1120210379);c=ii(c,d,a,b,x[i+ 2],15, 718787259);\n b=ii(b,c,d,a,x[i+ 9],21, -343485551);a=ad(a,olda);b=ad(b,oldb);c=ad(c,oldc);d=ad(d,oldd);\n }\n return rh(a)+rh(b)+rh(c)+rh(d);\n}\n"],"names":["md5","inputString","hc","rh","n","j","s","charAt","ad","x","y","l","m","rl","c","cm","q","a","b","t","ff","d","gg","hh","ii","sb","i","nblk","length","blks","Array","charCodeAt","olda","oldb","oldc","oldd"],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- import { ArrayBuffers } from '../../io/ArrayBuffers.js';
2
- export class PEM {
3
- static decode(data) {
4
- const match = data.match(/^-----BEGIN (?<type>[^\r\n-]+)-----$\r?\n(?<headers>(^[^:\r\n]+:[^\n\r]+\r?\n)+\r?\n)?(?<data>[a-zA-Z0-9/_=\n\r+]+?)^-----END \1-----$\r?\n?/ms);
5
- if (!match?.groups) throw new Error('Invalid PEM data');
6
- const { type, headers = '', data: b64 } = match.groups;
7
- const header = headers.split('\n').filter((v)=>v.trim()).map((h)=>{
8
- const [k, ...v] = h.split(':');
9
- return [
10
- k.trim(),
11
- v.join(':').trim()
12
- ];
13
- }).reduce((a, [k, v])=>({
14
- ...a,
15
- [k]: v
16
- }), {});
17
- return {
18
- block: {
19
- type,
20
- header,
21
- // avoid replaceAll
22
- bytes: ArrayBuffers.from(b64.replace(/[\r\n]/g, ''), 'base64')
23
- },
24
- head: data.slice(0, match.index || 0),
25
- tail: data.slice((match.index || 0) + match[0].length)
26
- };
27
- }
28
- static encode(block) {
29
- const { type, header, bytes } = block;
30
- const headers = Object.entries(header || {}).map(([k, v])=>`${k}: ${v}`).join('\n');
31
- return `-----BEGIN ${type}-----\n${headers}${headers.length ? '\n\n' : ''}${ArrayBuffers.toString(bytes, 'base64').match(/.{1,64}/g)?.join('\n') || ''}\n-----END ${type}-----\n`;
32
- }
33
- }
34
-
35
- //# sourceMappingURL=pem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/crypto/pem/pem.ts"],"sourcesContent":["import { ArrayBuffers } from '../../io/ArrayBuffers';\n\nexport interface Block {\n /**\n * @see https://github.com/openssl/openssl/blob/master/include/openssl/pem.h#L35-L60 openssl/pem.h\n */\n type:\n | string\n | `${'RSA' | 'DSA'} ${'PRIVATE' | 'PUBLIC'} KEY`\n | `${'X509' | 'TRUSTED'} CERTIFICATE`\n | 'CERTIFICATE'\n | 'X509 CRL'\n | 'CERTIFICATE REQUEST'\n | 'NEW CERTIFICATE REQUEST'\n | 'ANY PRIVATE KEY'\n | 'PUBLIC KEY'\n | 'PKCS7'\n | 'PKCS #7 SIGNED DATA'\n | 'ENCRYPTED PRIVATE KEY'\n | 'PRIVATE KEY'\n | 'DH PARAMETERS'\n | 'X9.42 DH PARAMETERS'\n | 'SSL SESSION PARAMETERS'\n | 'DSA PARAMETERS'\n | 'ECDSA PUBLIC KEY'\n | 'EC PARAMETERS'\n | 'EC PRIVATE KEY'\n | 'PARAMETERS'\n | 'CMS'\n | 'SM2 PARAMETERS';\n\n header: Record<string, string>;\n bytes: BufferSource;\n}\n\nexport class PEM {\n static decode(data: string): { block: Block; tail: string; head: string } {\n const match = data.match(\n /^-----BEGIN (?<type>[^\\r\\n-]+)-----$\\r?\\n(?<headers>(^[^:\\r\\n]+:[^\\n\\r]+\\r?\\n)+\\r?\\n)?(?<data>[a-zA-Z0-9/_=\\n\\r+]+?)^-----END \\1-----$\\r?\\n?/ms,\n );\n if (!match?.groups) throw new Error('Invalid PEM data');\n const { type, headers = '', data: b64 } = match.groups;\n const header = headers\n .split('\\n')\n .filter((v) => v.trim())\n .map((h) => {\n const [k, ...v] = h.split(':');\n return [k.trim(), v.join(':').trim()];\n })\n .reduce((a, [k, v]) => ({ ...a, [k]: v }), {});\n return {\n block: {\n type,\n header,\n // avoid replaceAll\n bytes: ArrayBuffers.from(b64.replace(/[\\r\\n]/g, ''), 'base64'),\n },\n head: data.slice(0, match.index || 0),\n tail: data.slice((match.index || 0) + match[0].length),\n };\n }\n\n static encode(block: { type: string; bytes: string | BufferSource; header?: Record<string, string> }): string {\n const { type, header, bytes } = block;\n const headers = Object.entries(header || {})\n .map(([k, v]) => `${k}: ${v}`)\n .join('\\n');\n return `-----BEGIN ${type}-----\\n${headers}${headers.length ? '\\n\\n' : ''}${\n ArrayBuffers.toString(bytes, 'base64')\n .match(/.{1,64}/g)\n ?.join('\\n') || ''\n }\\n-----END ${type}-----\\n`;\n }\n}\n"],"names":["ArrayBuffers","PEM","decode","data","match","groups","Error","type","headers","b64","header","split","filter","v","trim","map","h","k","join","reduce","a","block","bytes","from","replace","head","slice","index","tail","length","encode","Object","entries","toString"],"mappings":"AAAA,SAASA,YAAY,QAAQ,wBAAwB;AAmCrD,OAAO,MAAMC;IACX,OAAOC,OAAOC,IAAY,EAAgD;QACxE,MAAMC,QAAQD,KAAKC,KAAK,CACtB;QAEF,IAAI,CAACA,OAAOC,QAAQ,MAAM,IAAIC,MAAM;QACpC,MAAM,EAAEC,IAAI,EAAEC,UAAU,EAAE,EAAEL,MAAMM,GAAG,EAAE,GAAGL,MAAMC,MAAM;QACtD,MAAMK,SAASF,QACZG,KAAK,CAAC,MACNC,MAAM,CAAC,CAACC,IAAMA,EAAEC,IAAI,IACpBC,GAAG,CAAC,CAACC;YACJ,MAAM,CAACC,GAAG,GAAGJ,EAAE,GAAGG,EAAEL,KAAK,CAAC;YAC1B,OAAO;gBAACM,EAAEH,IAAI;gBAAID,EAAEK,IAAI,CAAC,KAAKJ,IAAI;aAAG;QACvC,GACCK,MAAM,CAAC,CAACC,GAAG,CAACH,GAAGJ,EAAE,GAAM,CAAA;gBAAE,GAAGO,CAAC;gBAAE,CAACH,EAAE,EAAEJ;YAAE,CAAA,GAAI,CAAC;QAC9C,OAAO;YACLQ,OAAO;gBACLd;gBACAG;gBACA,oBAAoB;gBACpBY,OAAOtB,aAAauB,IAAI,CAACd,IAAIe,OAAO,CAAC,WAAW,KAAK;YACvD;YACAC,MAAMtB,KAAKuB,KAAK,CAAC,GAAGtB,MAAMuB,KAAK,IAAI;YACnCC,MAAMzB,KAAKuB,KAAK,CAAC,AAACtB,CAAAA,MAAMuB,KAAK,IAAI,CAAA,IAAKvB,KAAK,CAAC,EAAE,CAACyB,MAAM;QACvD;IACF;IAEA,OAAOC,OAAOT,KAAsF,EAAU;QAC5G,MAAM,EAAEd,IAAI,EAAEG,MAAM,EAAEY,KAAK,EAAE,GAAGD;QAChC,MAAMb,UAAUuB,OAAOC,OAAO,CAACtB,UAAU,CAAC,GACvCK,GAAG,CAAC,CAAC,CAACE,GAAGJ,EAAE,GAAK,CAAC,EAAEI,EAAE,EAAE,EAAEJ,EAAE,CAAC,EAC5BK,IAAI,CAAC;QACR,OAAO,CAAC,WAAW,EAAEX,KAAK,OAAO,EAAEC,QAAQ,EAAEA,QAAQqB,MAAM,GAAG,SAAS,GAAG,EACxE7B,aAAaiC,QAAQ,CAACX,OAAO,UAC1BlB,KAAK,CAAC,aACLc,KAAK,SAAS,GACnB,WAAW,EAAEX,KAAK,OAAO,CAAC;IAC7B;AACF"}
@@ -1,16 +0,0 @@
1
- import { getGlobalThis } from '../isomorphics/getGlobalThis.js';
2
- const globalThis = getGlobalThis();
3
- /**
4
- * generate random UUIDv4
5
- */ export const randomUUID = globalThis.crypto?.randomUUID?.bind(globalThis.crypto) || _randomUUID;
6
- /**
7
- * @internal
8
- */ export function _randomUUID() {
9
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c)=>{
10
- const r = Math.random() * 16 | 0;
11
- const v = c === 'x' ? r : r & 0x3 | 0x8;
12
- return v.toString(16);
13
- });
14
- }
15
-
16
- //# sourceMappingURL=randomUUID.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/crypto/randomUUID.ts"],"sourcesContent":["import { getGlobalThis } from '../isomorphics/getGlobalThis';\n\nconst globalThis = getGlobalThis();\n\n/**\n * generate random UUIDv4\n */\nexport const randomUUID: () => string = globalThis.crypto?.randomUUID?.bind(globalThis.crypto) || _randomUUID;\n\n/**\n * @internal\n */\nexport function _randomUUID() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n"],"names":["getGlobalThis","globalThis","randomUUID","crypto","bind","_randomUUID","replace","c","r","Math","random","v","toString"],"mappings":"AAAA,SAASA,aAAa,QAAQ,+BAA+B;AAE7D,MAAMC,aAAaD;AAEnB;;CAEC,GACD,OAAO,MAAME,aAA2BD,WAAWE,MAAM,EAAED,YAAYE,KAAKH,WAAWE,MAAM,KAAKE,YAAY;AAE9G;;CAEC,GACD,OAAO,SAASA;IACd,OAAO,uCAAuCC,OAAO,CAAC,SAAS,CAACC;QAC9D,MAAMC,IAAI,AAACC,KAAKC,MAAM,KAAK,KAAM;QACjC,MAAMC,IAAIJ,MAAM,MAAMC,IAAI,AAACA,IAAI,MAAO;QACtC,OAAOG,EAAEC,QAAQ,CAAC;IACpB;AACF"}
@@ -1,153 +0,0 @@
1
- import { getRandomValues } from './getRandomValues.js';
2
- function createError(message) {
3
- const err = new Error(message);
4
- err.source = 'ulid';
5
- return err;
6
- }
7
- // These values should NEVER change. If
8
- // they do, we're no longer making ulids!
9
- const ENCODING = '0123456789ABCDEFGHJKMNPQRSTVWXYZ'; // Crockford's Base32
10
- const ENCODING_LEN = ENCODING.length;
11
- const TIME_MAX = Math.pow(2, 48) - 1;
12
- const TIME_LEN = 10;
13
- const RANDOM_LEN = 16;
14
- /**
15
- * check give {@link str} is a valid ulid
16
- */ export function isULID(str) {
17
- if (!str) {
18
- return false;
19
- }
20
- // ttttttttttrrrrrrrrrrrrrrrr
21
- return str.length === 26 && /^[0-9A-HJKMNP-TV-Z]{26}$/i.test(str);
22
- }
23
- function replaceCharAt(str, index, char) {
24
- if (index > str.length - 1) {
25
- return str;
26
- }
27
- return str.substr(0, index) + char + str.substr(index + 1);
28
- }
29
- function incrementBase32(str) {
30
- let done;
31
- let index = str.length;
32
- let char;
33
- let charIndex;
34
- const maxCharIndex = ENCODING_LEN - 1;
35
- while(!done && index-- >= 0){
36
- char = str[index];
37
- charIndex = ENCODING.indexOf(char);
38
- if (charIndex === -1) {
39
- throw createError('incorrectly encoded string');
40
- }
41
- if (charIndex === maxCharIndex) {
42
- str = replaceCharAt(str, index, ENCODING[0]);
43
- continue;
44
- }
45
- done = replaceCharAt(str, index, ENCODING[charIndex + 1]);
46
- }
47
- if (typeof done === 'string') {
48
- return done;
49
- }
50
- throw createError('cannot increment this string');
51
- }
52
- function randomChar(prng) {
53
- let rand = Math.floor(prng() * ENCODING_LEN);
54
- if (rand === ENCODING_LEN) {
55
- rand = ENCODING_LEN - 1;
56
- }
57
- return ENCODING.charAt(rand);
58
- }
59
- function encodeTime(now, len) {
60
- if (isNaN(now)) {
61
- throw new Error(`${now} must be a number`);
62
- }
63
- if (now > TIME_MAX) {
64
- throw createError(`cannot encode time greater than ${TIME_MAX}`);
65
- }
66
- if (now < 0) {
67
- throw createError('time must be positive');
68
- }
69
- if (!Number.isInteger(now)) {
70
- throw createError('time must be an integer');
71
- }
72
- let mod;
73
- let str = '';
74
- for(; len > 0; len--){
75
- mod = now % ENCODING_LEN;
76
- str = ENCODING.charAt(mod) + str;
77
- now = (now - mod) / ENCODING_LEN;
78
- }
79
- return str;
80
- }
81
- function encodeRandom(len, prng) {
82
- let str = '';
83
- for(; len > 0; len--){
84
- str = randomChar(prng) + str;
85
- }
86
- return str;
87
- }
88
- /**
89
- * extract time & random from ulid
90
- *
91
- * @throws ULIDError
92
- */ export function parseULID(id) {
93
- if (id.length !== TIME_LEN + RANDOM_LEN) {
94
- throw createError('malformed ulid');
95
- }
96
- const time = id.substr(0, TIME_LEN).split('').reverse().reduce((carry, char, index)=>{
97
- const encodingIndex = ENCODING.indexOf(char);
98
- if (encodingIndex === -1) {
99
- throw createError('invalid character found: ' + char);
100
- }
101
- return carry += encodingIndex * Math.pow(ENCODING_LEN, index);
102
- }, 0);
103
- if (time > TIME_MAX) {
104
- throw createError('malformed ulid, timestamp too large');
105
- }
106
- return {
107
- timestamp: time,
108
- random: id.substring(TIME_LEN)
109
- };
110
- }
111
- function createPrng() {
112
- return ()=>{
113
- const buffer = new Uint8Array(1);
114
- getRandomValues(buffer);
115
- return buffer[0] / 0xff;
116
- };
117
- }
118
- /**
119
- * create a ulid generator
120
- */ export function createULID({ monotonic = true, random = createPrng(), now = Date.now } = {}) {
121
- if (!monotonic) {
122
- return function ulid(seedTime) {
123
- seedTime ||= now();
124
- return encodeTime(seedTime, TIME_LEN) + encodeRandom(RANDOM_LEN, random);
125
- };
126
- }
127
- let lastTime = 0;
128
- let lastRandom;
129
- return function ulid(seedTime) {
130
- seedTime ||= now();
131
- if (seedTime <= lastTime && lastRandom) {
132
- const incrementedRandom = lastRandom = incrementBase32(lastRandom);
133
- return encodeTime(lastTime, TIME_LEN) + incrementedRandom;
134
- }
135
- lastTime = seedTime;
136
- const newRandom = lastRandom = encodeRandom(RANDOM_LEN, random);
137
- return encodeTime(seedTime, TIME_LEN) + newRandom;
138
- };
139
- }
140
- /**
141
- * default monotonic ulid generator
142
- */ export let ulid = (...args)=>{
143
- if (_real) {
144
- return _real(...args);
145
- }
146
- // delay initialize crypto
147
- _real = createULID();
148
- ulid = _real;
149
- return _real(...args);
150
- };
151
- let _real;
152
-
153
- //# sourceMappingURL=ulid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/crypto/ulid.ts"],"sourcesContent":["import { getRandomValues } from './getRandomValues';\n\ntype PRNG = () => number;\n\n/**\n * Universally Unique Lexicographically Sortable Identifier\n *\n * @see https://github.com/ulid/spec ulid/spec\n */\nexport type ULID = (seedTime?: number) => string;\n\nexport interface ULIDError extends Error {\n source: string;\n}\n\nfunction createError(message: string): ULIDError {\n const err = new Error(message) as ULIDError;\n err.source = 'ulid';\n return err;\n}\n\n// These values should NEVER change. If\n// they do, we're no longer making ulids!\nconst ENCODING = '0123456789ABCDEFGHJKMNPQRSTVWXYZ'; // Crockford's Base32\nconst ENCODING_LEN = ENCODING.length;\nconst TIME_MAX = Math.pow(2, 48) - 1;\nconst TIME_LEN = 10;\nconst RANDOM_LEN = 16;\n\n/**\n * check give {@link str} is a valid ulid\n */\nexport function isULID(str: string | undefined | null): boolean {\n if (!str) {\n return false;\n }\n // ttttttttttrrrrrrrrrrrrrrrr\n return str.length === 26 && /^[0-9A-HJKMNP-TV-Z]{26}$/i.test(str);\n}\n\nfunction replaceCharAt(str: string, index: number, char: string) {\n if (index > str.length - 1) {\n return str;\n }\n return str.substr(0, index) + char + str.substr(index + 1);\n}\n\nfunction incrementBase32(str: string): string {\n let done;\n let index = str.length;\n let char;\n let charIndex;\n const maxCharIndex = ENCODING_LEN - 1;\n while (!done && index-- >= 0) {\n char = str[index];\n charIndex = ENCODING.indexOf(char);\n if (charIndex === -1) {\n throw createError('incorrectly encoded string');\n }\n if (charIndex === maxCharIndex) {\n str = replaceCharAt(str, index, ENCODING[0]);\n continue;\n }\n done = replaceCharAt(str, index, ENCODING[charIndex + 1]);\n }\n if (typeof done === 'string') {\n return done;\n }\n throw createError('cannot increment this string');\n}\n\nfunction randomChar(prng: PRNG): string {\n let rand = Math.floor(prng() * ENCODING_LEN);\n if (rand === ENCODING_LEN) {\n rand = ENCODING_LEN - 1;\n }\n return ENCODING.charAt(rand);\n}\n\nfunction encodeTime(now: number, len: number): string {\n if (isNaN(now)) {\n throw new Error(`${now} must be a number`);\n }\n if (now > TIME_MAX) {\n throw createError(`cannot encode time greater than ${TIME_MAX}`);\n }\n if (now < 0) {\n throw createError('time must be positive');\n }\n if (!Number.isInteger(now)) {\n throw createError('time must be an integer');\n }\n let mod;\n let str = '';\n for (; len > 0; len--) {\n mod = now % ENCODING_LEN;\n str = ENCODING.charAt(mod) + str;\n now = (now - mod) / ENCODING_LEN;\n }\n return str;\n}\n\nfunction encodeRandom(len: number, prng: PRNG): string {\n let str = '';\n for (; len > 0; len--) {\n str = randomChar(prng) + str;\n }\n return str;\n}\n\n/**\n * extract time & random from ulid\n *\n * @throws ULIDError\n */\nexport function parseULID(id: string): { timestamp: number; random: string } {\n if (id.length !== TIME_LEN + RANDOM_LEN) {\n throw createError('malformed ulid');\n }\n const time = id\n .substr(0, TIME_LEN)\n .split('')\n .reverse()\n .reduce((carry, char, index) => {\n const encodingIndex = ENCODING.indexOf(char);\n if (encodingIndex === -1) {\n throw createError('invalid character found: ' + char);\n }\n return (carry += encodingIndex * Math.pow(ENCODING_LEN, index));\n }, 0);\n if (time > TIME_MAX) {\n throw createError('malformed ulid, timestamp too large');\n }\n return { timestamp: time, random: id.substring(TIME_LEN) };\n}\n\nfunction createPrng(): PRNG {\n return () => {\n const buffer = new Uint8Array(1);\n getRandomValues(buffer);\n return buffer[0] / 0xff;\n };\n}\n\n/**\n * create a ulid generator\n */\nexport function createULID({\n monotonic = true,\n random = createPrng(),\n now = Date.now,\n}: { monotonic?: boolean; now?: () => number; random?: () => number } = {}) {\n if (!monotonic) {\n return function ulid(seedTime?: number): string {\n seedTime ||= now();\n return encodeTime(seedTime, TIME_LEN) + encodeRandom(RANDOM_LEN, random);\n };\n }\n\n let lastTime: number = 0;\n let lastRandom: string;\n return function ulid(seedTime?: number): string {\n seedTime ||= now();\n if (seedTime <= lastTime && lastRandom) {\n const incrementedRandom = (lastRandom = incrementBase32(lastRandom));\n return encodeTime(lastTime, TIME_LEN) + incrementedRandom;\n }\n lastTime = seedTime;\n const newRandom = (lastRandom = encodeRandom(RANDOM_LEN, random));\n return encodeTime(seedTime, TIME_LEN) + newRandom;\n };\n}\n\n/**\n * default monotonic ulid generator\n */\nexport let ulid: ULID = (...args) => {\n if (_real) {\n return _real(...args);\n }\n // delay initialize crypto\n _real = createULID();\n ulid = _real;\n return _real(...args);\n};\nlet _real: ULID;\n"],"names":["getRandomValues","createError","message","err","Error","source","ENCODING","ENCODING_LEN","length","TIME_MAX","Math","pow","TIME_LEN","RANDOM_LEN","isULID","str","test","replaceCharAt","index","char","substr","incrementBase32","done","charIndex","maxCharIndex","indexOf","randomChar","prng","rand","floor","charAt","encodeTime","now","len","isNaN","Number","isInteger","mod","encodeRandom","parseULID","id","time","split","reverse","reduce","carry","encodingIndex","timestamp","random","substring","createPrng","buffer","Uint8Array","createULID","monotonic","Date","ulid","seedTime","lastTime","lastRandom","incrementedRandom","newRandom","args","_real"],"mappings":"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"}