@wener/utils 1.0.1 → 1.1.2

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 (409) hide show
  1. package/README.md +5 -3
  2. package/dist/cjs/index.js +579 -0
  3. package/dist/cjs/index.js.map +1 -0
  4. package/dist/esm/index.development.js +545 -0
  5. package/dist/esm/index.development.js.map +1 -0
  6. package/dist/esm/index.min.js +2 -0
  7. package/dist/esm/index.min.js.map +1 -0
  8. package/dist/system/index.development.js +585 -0
  9. package/dist/system/index.development.js.map +1 -0
  10. package/dist/system/index.min.js +2 -0
  11. package/dist/system/index.min.js.map +1 -0
  12. package/lib/esm/arrays/MaybeArray.mjs +30 -0
  13. package/lib/esm/arrays/MaybeArray.mjs.map +1 -0
  14. package/lib/esm/asyncs/AsyncInterval.mjs +15 -0
  15. package/lib/esm/asyncs/AsyncInterval.mjs.map +1 -0
  16. package/lib/{esnext/asyncs/LazyPromise.js → esm/asyncs/LazyPromise.mjs} +10 -8
  17. package/lib/esm/asyncs/LazyPromise.mjs.map +1 -0
  18. package/lib/esm/asyncs/isPromise.mjs +6 -0
  19. package/lib/esm/asyncs/isPromise.mjs.map +1 -0
  20. package/lib/esm/asyncs/sleep.mjs +4 -0
  21. package/lib/esm/asyncs/sleep.mjs.map +1 -0
  22. package/lib/esm/asyncs/timeout.mjs +24 -0
  23. package/lib/esm/asyncs/timeout.mjs.map +1 -0
  24. package/lib/esm/browsers/{clipboard.js → copy.mjs} +16 -11
  25. package/lib/esm/browsers/copy.mjs.map +1 -0
  26. package/lib/esm/browsers/download.mjs +40 -0
  27. package/lib/esm/browsers/download.mjs.map +1 -0
  28. package/lib/esm/browsers/getFileFromDataTransfer.mjs +39 -0
  29. package/lib/esm/browsers/getFileFromDataTransfer.mjs.map +1 -0
  30. package/lib/esm/browsers/loaders.mjs +52 -0
  31. package/lib/esm/browsers/loaders.mjs.map +1 -0
  32. package/lib/esm/crypto/hashing.mjs +25 -0
  33. package/lib/esm/crypto/hashing.mjs.map +1 -0
  34. package/lib/esm/crypto/hex.mjs +8 -0
  35. package/lib/esm/crypto/hex.mjs.map +1 -0
  36. package/lib/esm/crypto/randomUUID.mjs +13 -0
  37. package/lib/esm/crypto/randomUUID.mjs.map +1 -0
  38. package/lib/esm/formats/formatBytes.mjs +29 -0
  39. package/lib/esm/formats/formatBytes.mjs.map +1 -0
  40. package/lib/esm/index.mjs +24 -0
  41. package/lib/esm/index.mjs.map +1 -0
  42. package/lib/esm/io/{isBuffer.js → isBuffer.mjs} +4 -2
  43. package/lib/esm/io/isBuffer.mjs.map +1 -0
  44. package/lib/{esnext/isomorphics/getGlobalThis.js → esm/isomorphics/getGlobalThis.mjs} +6 -8
  45. package/lib/esm/isomorphics/getGlobalThis.mjs.map +1 -0
  46. package/lib/esm/maths/random.mjs +18 -0
  47. package/lib/esm/maths/random.mjs.map +1 -0
  48. package/lib/{esnext/strings/urljoin.js → esm/shim/urljoin.mjs} +23 -15
  49. package/lib/esm/shim/urljoin.mjs.map +1 -0
  50. package/lib/esm/strings/{camelCase.js → camelCase.mjs} +18 -17
  51. package/lib/esm/strings/camelCase.mjs.map +1 -0
  52. package/lib/{esnext/strings/templates.js → esm/strings/templates.mjs} +5 -3
  53. package/lib/esm/strings/templates.mjs.map +1 -0
  54. package/lib/esm/validations/{isClass.js → isClass.mjs} +4 -2
  55. package/lib/esm/validations/isClass.mjs.map +1 -0
  56. package/lib/esm/validations/isDefined.mjs +6 -0
  57. package/lib/esm/validations/isDefined.mjs.map +1 -0
  58. package/lib/esm/validations/{isEmptyObject.js → isEmptyObject.mjs} +4 -2
  59. package/lib/esm/validations/isEmptyObject.mjs.map +1 -0
  60. package/package.json +44 -36
  61. package/src/arrays/MaybeArray.ts +5 -2
  62. package/src/asyncs/timeout.ts +1 -1
  63. package/src/browsers/{clipboard.ts → copy.ts} +7 -3
  64. package/src/browsers/download.ts +7 -0
  65. package/src/browsers/{transfers.ts → getFileFromDataTransfer.ts} +12 -7
  66. package/src/browsers/loaders.ts +32 -7
  67. package/src/crypto/hashing.test.ts +26 -0
  68. package/src/crypto/hashing.ts +27 -0
  69. package/src/crypto/hex.ts +5 -0
  70. package/src/crypto/randomUUID.ts +10 -0
  71. package/src/formats/formatBytes.ts +30 -0
  72. package/src/index.ts +38 -9
  73. package/src/isomorphics/getGlobalThis.ts +2 -4
  74. package/src/maths/random.ts +5 -5
  75. package/src/shim/urljoin.test.ts +6 -0
  76. package/src/{strings → shim}/urljoin.ts +18 -5
  77. package/src/types.d.ts +7 -0
  78. package/tsconfig.json +14 -7
  79. package/dist/wener-utils.cjs +0 -879
  80. package/dist/wener-utils.cjs.map +0 -1
  81. package/dist/wener-utils.esm.js +0 -846
  82. package/dist/wener-utils.esm.js.map +0 -1
  83. package/dist/wener-utils.system.js +0 -882
  84. package/dist/wener-utils.system.js.map +0 -1
  85. package/dist/wener-utils.umd.js +0 -885
  86. package/dist/wener-utils.umd.js.map +0 -1
  87. package/index.d.ts +0 -1
  88. package/index.js +0 -10
  89. package/jest.config.js +0 -16
  90. package/jest.setup.js +0 -1
  91. package/lib/cjs/arrays/MaybeArray.d.ts +0 -5
  92. package/lib/cjs/arrays/MaybeArray.js +0 -40
  93. package/lib/cjs/arrays/MaybeArray.js.map +0 -1
  94. package/lib/cjs/arrays/index.d.ts +0 -1
  95. package/lib/cjs/arrays/index.js +0 -5
  96. package/lib/cjs/arrays/index.js.map +0 -1
  97. package/lib/cjs/asyncs/AsyncInterval.d.ts +0 -3
  98. package/lib/cjs/asyncs/AsyncInterval.js +0 -28
  99. package/lib/cjs/asyncs/AsyncInterval.js.map +0 -1
  100. package/lib/cjs/asyncs/LazyPromise.d.ts +0 -5
  101. package/lib/cjs/asyncs/LazyPromise.js +0 -26
  102. package/lib/cjs/asyncs/LazyPromise.js.map +0 -1
  103. package/lib/cjs/asyncs/MaybePromise.d.ts +0 -1
  104. package/lib/cjs/asyncs/MaybePromise.js +0 -3
  105. package/lib/cjs/asyncs/MaybePromise.js.map +0 -1
  106. package/lib/cjs/asyncs/generatorOfStream.d.ts +0 -1
  107. package/lib/cjs/asyncs/generatorOfStream.js +0 -30
  108. package/lib/cjs/asyncs/generatorOfStream.js.map +0 -1
  109. package/lib/cjs/asyncs/index.d.ts +0 -7
  110. package/lib/cjs/asyncs/index.js +0 -11
  111. package/lib/cjs/asyncs/index.js.map +0 -1
  112. package/lib/cjs/asyncs/isPromise.d.ts +0 -1
  113. package/lib/cjs/asyncs/isPromise.js +0 -8
  114. package/lib/cjs/asyncs/isPromise.js.map +0 -1
  115. package/lib/cjs/asyncs/promiseOfCallback.d.ts +0 -1
  116. package/lib/cjs/asyncs/promiseOfCallback.js +0 -22
  117. package/lib/cjs/asyncs/promiseOfCallback.js.map +0 -1
  118. package/lib/cjs/asyncs/sleep.d.ts +0 -1
  119. package/lib/cjs/asyncs/sleep.js +0 -5
  120. package/lib/cjs/asyncs/sleep.js.map +0 -1
  121. package/lib/cjs/asyncs/timeout.d.ts +0 -4
  122. package/lib/cjs/asyncs/timeout.js +0 -30
  123. package/lib/cjs/asyncs/timeout.js.map +0 -1
  124. package/lib/cjs/browsers/clipboard.d.ts +0 -1
  125. package/lib/cjs/browsers/clipboard.js +0 -56
  126. package/lib/cjs/browsers/clipboard.js.map +0 -1
  127. package/lib/cjs/browsers/download.d.ts +0 -4
  128. package/lib/cjs/browsers/download.js +0 -36
  129. package/lib/cjs/browsers/download.js.map +0 -1
  130. package/lib/cjs/browsers/index.d.ts +0 -4
  131. package/lib/cjs/browsers/index.js +0 -8
  132. package/lib/cjs/browsers/index.js.map +0 -1
  133. package/lib/cjs/browsers/loaders.d.ts +0 -6
  134. package/lib/cjs/browsers/loaders.js +0 -41
  135. package/lib/cjs/browsers/loaders.js.map +0 -1
  136. package/lib/cjs/browsers/transfers.d.ts +0 -4
  137. package/lib/cjs/browsers/transfers.js +0 -38
  138. package/lib/cjs/browsers/transfers.js.map +0 -1
  139. package/lib/cjs/envs/index.d.ts +0 -1
  140. package/lib/cjs/envs/index.js +0 -5
  141. package/lib/cjs/envs/index.js.map +0 -1
  142. package/lib/cjs/envs/isDev.d.ts +0 -1
  143. package/lib/cjs/envs/isDev.js +0 -8
  144. package/lib/cjs/envs/isDev.js.map +0 -1
  145. package/lib/cjs/index.d.ts +0 -9
  146. package/lib/cjs/index.js +0 -13
  147. package/lib/cjs/index.js.map +0 -1
  148. package/lib/cjs/io/index.d.ts +0 -1
  149. package/lib/cjs/io/index.js +0 -5
  150. package/lib/cjs/io/index.js.map +0 -1
  151. package/lib/cjs/io/isBuffer.d.ts +0 -2
  152. package/lib/cjs/io/isBuffer.js +0 -12
  153. package/lib/cjs/io/isBuffer.js.map +0 -1
  154. package/lib/cjs/isomorphics/getGlobalThis.d.ts +0 -9
  155. package/lib/cjs/isomorphics/getGlobalThis.js +0 -28
  156. package/lib/cjs/isomorphics/getGlobalThis.js.map +0 -1
  157. package/lib/cjs/isomorphics/index.d.ts +0 -1
  158. package/lib/cjs/isomorphics/index.js +0 -5
  159. package/lib/cjs/isomorphics/index.js.map +0 -1
  160. package/lib/cjs/maths/index.d.ts +0 -1
  161. package/lib/cjs/maths/index.js +0 -5
  162. package/lib/cjs/maths/index.js.map +0 -1
  163. package/lib/cjs/maths/random.d.ts +0 -3
  164. package/lib/cjs/maths/random.js +0 -21
  165. package/lib/cjs/maths/random.js.map +0 -1
  166. package/lib/cjs/strings/camelCase.d.ts +0 -4
  167. package/lib/cjs/strings/camelCase.js +0 -74
  168. package/lib/cjs/strings/camelCase.js.map +0 -1
  169. package/lib/cjs/strings/index.d.ts +0 -3
  170. package/lib/cjs/strings/index.js +0 -7
  171. package/lib/cjs/strings/index.js.map +0 -1
  172. package/lib/cjs/strings/templates.d.ts +0 -7
  173. package/lib/cjs/strings/templates.js +0 -18
  174. package/lib/cjs/strings/templates.js.map +0 -1
  175. package/lib/cjs/strings/urljoin.d.ts +0 -1
  176. package/lib/cjs/strings/urljoin.js +0 -61
  177. package/lib/cjs/strings/urljoin.js.map +0 -1
  178. package/lib/cjs/strings/urljoin.test.d.ts +0 -1
  179. package/lib/cjs/strings/urljoin.test.js +0 -7
  180. package/lib/cjs/strings/urljoin.test.js.map +0 -1
  181. package/lib/cjs/validations/asserts.d.ts +0 -2
  182. package/lib/cjs/validations/asserts.js +0 -18
  183. package/lib/cjs/validations/asserts.js.map +0 -1
  184. package/lib/cjs/validations/index.d.ts +0 -4
  185. package/lib/cjs/validations/index.js +0 -8
  186. package/lib/cjs/validations/index.js.map +0 -1
  187. package/lib/cjs/validations/isClass.d.ts +0 -1
  188. package/lib/cjs/validations/isClass.js +0 -8
  189. package/lib/cjs/validations/isClass.js.map +0 -1
  190. package/lib/cjs/validations/isDefined.d.ts +0 -1
  191. package/lib/cjs/validations/isDefined.js +0 -8
  192. package/lib/cjs/validations/isDefined.js.map +0 -1
  193. package/lib/cjs/validations/isEmptyObject.d.ts +0 -1
  194. package/lib/cjs/validations/isEmptyObject.js +0 -11
  195. package/lib/cjs/validations/isEmptyObject.js.map +0 -1
  196. package/lib/esm/arrays/MaybeArray.d.ts +0 -5
  197. package/lib/esm/arrays/MaybeArray.js +0 -33
  198. package/lib/esm/arrays/MaybeArray.js.map +0 -1
  199. package/lib/esm/arrays/index.d.ts +0 -1
  200. package/lib/esm/arrays/index.js +0 -2
  201. package/lib/esm/arrays/index.js.map +0 -1
  202. package/lib/esm/asyncs/AsyncInterval.d.ts +0 -3
  203. package/lib/esm/asyncs/AsyncInterval.js +0 -23
  204. package/lib/esm/asyncs/AsyncInterval.js.map +0 -1
  205. package/lib/esm/asyncs/LazyPromise.d.ts +0 -5
  206. package/lib/esm/asyncs/LazyPromise.js +0 -22
  207. package/lib/esm/asyncs/LazyPromise.js.map +0 -1
  208. package/lib/esm/asyncs/MaybePromise.d.ts +0 -1
  209. package/lib/esm/asyncs/MaybePromise.js +0 -1
  210. package/lib/esm/asyncs/MaybePromise.js.map +0 -1
  211. package/lib/esm/asyncs/generatorOfStream.d.ts +0 -1
  212. package/lib/esm/asyncs/generatorOfStream.js +0 -26
  213. package/lib/esm/asyncs/generatorOfStream.js.map +0 -1
  214. package/lib/esm/asyncs/index.d.ts +0 -7
  215. package/lib/esm/asyncs/index.js +0 -8
  216. package/lib/esm/asyncs/index.js.map +0 -1
  217. package/lib/esm/asyncs/isPromise.d.ts +0 -1
  218. package/lib/esm/asyncs/isPromise.js +0 -4
  219. package/lib/esm/asyncs/isPromise.js.map +0 -1
  220. package/lib/esm/asyncs/promiseOfCallback.d.ts +0 -1
  221. package/lib/esm/asyncs/promiseOfCallback.js +0 -18
  222. package/lib/esm/asyncs/promiseOfCallback.js.map +0 -1
  223. package/lib/esm/asyncs/sleep.d.ts +0 -1
  224. package/lib/esm/asyncs/sleep.js +0 -2
  225. package/lib/esm/asyncs/sleep.js.map +0 -1
  226. package/lib/esm/asyncs/timeout.d.ts +0 -4
  227. package/lib/esm/asyncs/timeout.js +0 -26
  228. package/lib/esm/asyncs/timeout.js.map +0 -1
  229. package/lib/esm/browsers/clipboard.d.ts +0 -1
  230. package/lib/esm/browsers/clipboard.js.map +0 -1
  231. package/lib/esm/browsers/download.d.ts +0 -4
  232. package/lib/esm/browsers/download.js +0 -32
  233. package/lib/esm/browsers/download.js.map +0 -1
  234. package/lib/esm/browsers/index.d.ts +0 -4
  235. package/lib/esm/browsers/index.js +0 -5
  236. package/lib/esm/browsers/index.js.map +0 -1
  237. package/lib/esm/browsers/loaders.d.ts +0 -6
  238. package/lib/esm/browsers/loaders.js +0 -36
  239. package/lib/esm/browsers/loaders.js.map +0 -1
  240. package/lib/esm/browsers/transfers.d.ts +0 -4
  241. package/lib/esm/browsers/transfers.js +0 -34
  242. package/lib/esm/browsers/transfers.js.map +0 -1
  243. package/lib/esm/envs/index.d.ts +0 -1
  244. package/lib/esm/envs/index.js +0 -2
  245. package/lib/esm/envs/index.js.map +0 -1
  246. package/lib/esm/envs/isDev.d.ts +0 -1
  247. package/lib/esm/envs/isDev.js +0 -5
  248. package/lib/esm/envs/isDev.js.map +0 -1
  249. package/lib/esm/index.d.ts +0 -9
  250. package/lib/esm/index.js +0 -10
  251. package/lib/esm/index.js.map +0 -1
  252. package/lib/esm/io/index.d.ts +0 -1
  253. package/lib/esm/io/index.js +0 -2
  254. package/lib/esm/io/index.js.map +0 -1
  255. package/lib/esm/io/isBuffer.d.ts +0 -2
  256. package/lib/esm/io/isBuffer.js.map +0 -1
  257. package/lib/esm/isomorphics/getGlobalThis.d.ts +0 -9
  258. package/lib/esm/isomorphics/getGlobalThis.js +0 -25
  259. package/lib/esm/isomorphics/getGlobalThis.js.map +0 -1
  260. package/lib/esm/isomorphics/index.d.ts +0 -1
  261. package/lib/esm/isomorphics/index.js +0 -2
  262. package/lib/esm/isomorphics/index.js.map +0 -1
  263. package/lib/esm/maths/index.d.ts +0 -1
  264. package/lib/esm/maths/index.js +0 -2
  265. package/lib/esm/maths/index.js.map +0 -1
  266. package/lib/esm/maths/random.d.ts +0 -3
  267. package/lib/esm/maths/random.js +0 -17
  268. package/lib/esm/maths/random.js.map +0 -1
  269. package/lib/esm/strings/camelCase.d.ts +0 -4
  270. package/lib/esm/strings/camelCase.js.map +0 -1
  271. package/lib/esm/strings/index.d.ts +0 -3
  272. package/lib/esm/strings/index.js +0 -4
  273. package/lib/esm/strings/index.js.map +0 -1
  274. package/lib/esm/strings/templates.d.ts +0 -7
  275. package/lib/esm/strings/templates.js +0 -14
  276. package/lib/esm/strings/templates.js.map +0 -1
  277. package/lib/esm/strings/urljoin.d.ts +0 -1
  278. package/lib/esm/strings/urljoin.js +0 -57
  279. package/lib/esm/strings/urljoin.js.map +0 -1
  280. package/lib/esm/strings/urljoin.test.d.ts +0 -1
  281. package/lib/esm/strings/urljoin.test.js +0 -5
  282. package/lib/esm/strings/urljoin.test.js.map +0 -1
  283. package/lib/esm/validations/asserts.d.ts +0 -2
  284. package/lib/esm/validations/asserts.js +0 -13
  285. package/lib/esm/validations/asserts.js.map +0 -1
  286. package/lib/esm/validations/index.d.ts +0 -4
  287. package/lib/esm/validations/index.js +0 -5
  288. package/lib/esm/validations/index.js.map +0 -1
  289. package/lib/esm/validations/isClass.d.ts +0 -1
  290. package/lib/esm/validations/isClass.js.map +0 -1
  291. package/lib/esm/validations/isDefined.d.ts +0 -1
  292. package/lib/esm/validations/isDefined.js +0 -4
  293. package/lib/esm/validations/isDefined.js.map +0 -1
  294. package/lib/esm/validations/isEmptyObject.d.ts +0 -1
  295. package/lib/esm/validations/isEmptyObject.js.map +0 -1
  296. package/lib/esnext/arrays/MaybeArray.d.ts +0 -5
  297. package/lib/esnext/arrays/MaybeArray.js +0 -33
  298. package/lib/esnext/arrays/MaybeArray.js.map +0 -1
  299. package/lib/esnext/arrays/index.d.ts +0 -1
  300. package/lib/esnext/arrays/index.js +0 -2
  301. package/lib/esnext/arrays/index.js.map +0 -1
  302. package/lib/esnext/asyncs/AsyncInterval.d.ts +0 -3
  303. package/lib/esnext/asyncs/AsyncInterval.js +0 -23
  304. package/lib/esnext/asyncs/AsyncInterval.js.map +0 -1
  305. package/lib/esnext/asyncs/LazyPromise.d.ts +0 -5
  306. package/lib/esnext/asyncs/LazyPromise.js.map +0 -1
  307. package/lib/esnext/asyncs/MaybePromise.d.ts +0 -1
  308. package/lib/esnext/asyncs/MaybePromise.js +0 -1
  309. package/lib/esnext/asyncs/MaybePromise.js.map +0 -1
  310. package/lib/esnext/asyncs/generatorOfStream.d.ts +0 -1
  311. package/lib/esnext/asyncs/generatorOfStream.js +0 -26
  312. package/lib/esnext/asyncs/generatorOfStream.js.map +0 -1
  313. package/lib/esnext/asyncs/index.d.ts +0 -7
  314. package/lib/esnext/asyncs/index.js +0 -8
  315. package/lib/esnext/asyncs/index.js.map +0 -1
  316. package/lib/esnext/asyncs/isPromise.d.ts +0 -1
  317. package/lib/esnext/asyncs/isPromise.js +0 -4
  318. package/lib/esnext/asyncs/isPromise.js.map +0 -1
  319. package/lib/esnext/asyncs/promiseOfCallback.d.ts +0 -1
  320. package/lib/esnext/asyncs/promiseOfCallback.js +0 -18
  321. package/lib/esnext/asyncs/promiseOfCallback.js.map +0 -1
  322. package/lib/esnext/asyncs/sleep.d.ts +0 -1
  323. package/lib/esnext/asyncs/sleep.js +0 -2
  324. package/lib/esnext/asyncs/sleep.js.map +0 -1
  325. package/lib/esnext/asyncs/timeout.d.ts +0 -4
  326. package/lib/esnext/asyncs/timeout.js +0 -26
  327. package/lib/esnext/asyncs/timeout.js.map +0 -1
  328. package/lib/esnext/browsers/clipboard.d.ts +0 -1
  329. package/lib/esnext/browsers/clipboard.js +0 -52
  330. package/lib/esnext/browsers/clipboard.js.map +0 -1
  331. package/lib/esnext/browsers/download.d.ts +0 -4
  332. package/lib/esnext/browsers/download.js +0 -32
  333. package/lib/esnext/browsers/download.js.map +0 -1
  334. package/lib/esnext/browsers/index.d.ts +0 -4
  335. package/lib/esnext/browsers/index.js +0 -5
  336. package/lib/esnext/browsers/index.js.map +0 -1
  337. package/lib/esnext/browsers/loaders.d.ts +0 -6
  338. package/lib/esnext/browsers/loaders.js +0 -36
  339. package/lib/esnext/browsers/loaders.js.map +0 -1
  340. package/lib/esnext/browsers/transfers.d.ts +0 -4
  341. package/lib/esnext/browsers/transfers.js +0 -34
  342. package/lib/esnext/browsers/transfers.js.map +0 -1
  343. package/lib/esnext/envs/index.d.ts +0 -1
  344. package/lib/esnext/envs/index.js +0 -2
  345. package/lib/esnext/envs/index.js.map +0 -1
  346. package/lib/esnext/envs/isDev.d.ts +0 -1
  347. package/lib/esnext/envs/isDev.js +0 -5
  348. package/lib/esnext/envs/isDev.js.map +0 -1
  349. package/lib/esnext/index.d.ts +0 -9
  350. package/lib/esnext/index.js +0 -10
  351. package/lib/esnext/index.js.map +0 -1
  352. package/lib/esnext/io/index.d.ts +0 -1
  353. package/lib/esnext/io/index.js +0 -2
  354. package/lib/esnext/io/index.js.map +0 -1
  355. package/lib/esnext/io/isBuffer.d.ts +0 -2
  356. package/lib/esnext/io/isBuffer.js +0 -8
  357. package/lib/esnext/io/isBuffer.js.map +0 -1
  358. package/lib/esnext/isomorphics/getGlobalThis.d.ts +0 -9
  359. package/lib/esnext/isomorphics/getGlobalThis.js.map +0 -1
  360. package/lib/esnext/isomorphics/index.d.ts +0 -1
  361. package/lib/esnext/isomorphics/index.js +0 -2
  362. package/lib/esnext/isomorphics/index.js.map +0 -1
  363. package/lib/esnext/maths/index.d.ts +0 -1
  364. package/lib/esnext/maths/index.js +0 -2
  365. package/lib/esnext/maths/index.js.map +0 -1
  366. package/lib/esnext/maths/random.d.ts +0 -3
  367. package/lib/esnext/maths/random.js +0 -17
  368. package/lib/esnext/maths/random.js.map +0 -1
  369. package/lib/esnext/strings/camelCase.d.ts +0 -4
  370. package/lib/esnext/strings/camelCase.js +0 -69
  371. package/lib/esnext/strings/camelCase.js.map +0 -1
  372. package/lib/esnext/strings/index.d.ts +0 -3
  373. package/lib/esnext/strings/index.js +0 -4
  374. package/lib/esnext/strings/index.js.map +0 -1
  375. package/lib/esnext/strings/templates.d.ts +0 -7
  376. package/lib/esnext/strings/templates.js.map +0 -1
  377. package/lib/esnext/strings/urljoin.d.ts +0 -1
  378. package/lib/esnext/strings/urljoin.js.map +0 -1
  379. package/lib/esnext/strings/urljoin.test.d.ts +0 -1
  380. package/lib/esnext/strings/urljoin.test.js +0 -5
  381. package/lib/esnext/strings/urljoin.test.js.map +0 -1
  382. package/lib/esnext/validations/asserts.d.ts +0 -2
  383. package/lib/esnext/validations/asserts.js +0 -13
  384. package/lib/esnext/validations/asserts.js.map +0 -1
  385. package/lib/esnext/validations/index.d.ts +0 -4
  386. package/lib/esnext/validations/index.js +0 -5
  387. package/lib/esnext/validations/index.js.map +0 -1
  388. package/lib/esnext/validations/isClass.d.ts +0 -1
  389. package/lib/esnext/validations/isClass.js +0 -4
  390. package/lib/esnext/validations/isClass.js.map +0 -1
  391. package/lib/esnext/validations/isDefined.d.ts +0 -1
  392. package/lib/esnext/validations/isDefined.js +0 -4
  393. package/lib/esnext/validations/isDefined.js.map +0 -1
  394. package/lib/esnext/validations/isEmptyObject.d.ts +0 -1
  395. package/lib/esnext/validations/isEmptyObject.js +0 -7
  396. package/lib/esnext/validations/isEmptyObject.js.map +0 -1
  397. package/rollup.config.ts +0 -76
  398. package/src/arrays/index.ts +0 -1
  399. package/src/asyncs/index.ts +0 -8
  400. package/src/browsers/index.ts +0 -4
  401. package/src/envs/index.ts +0 -1
  402. package/src/envs/isDev.ts +0 -3
  403. package/src/io/index.ts +0 -1
  404. package/src/isomorphics/index.ts +0 -1
  405. package/src/maths/index.ts +0 -1
  406. package/src/strings/index.ts +0 -3
  407. package/src/strings/urljoin.test.ts +0 -5
  408. package/src/validations/index.ts +0 -4
  409. package/tsconfig.jest.json +0 -7
@@ -1,10 +1,16 @@
1
- /// see https://github.com/jfromaniello/url-join
2
- export function urljoin() {
3
- var strArray = [];
4
- for (var _i = 0; _i < arguments.length; _i++) {
5
- strArray[_i] = arguments[_i];
1
+ /**
2
+ * @see {@link https://github.com/jfromaniello/url-join}
3
+ */
4
+ function urljoin(...args) {
5
+ if (Array.isArray(args[0])) {
6
+ return normalize(args[0]);
6
7
  }
7
- var resultArray = [];
8
+ else {
9
+ return normalize(args);
10
+ }
11
+ }
12
+ function normalize(strArray) {
13
+ const resultArray = [];
8
14
  if (strArray.length === 0) {
9
15
  return '';
10
16
  }
@@ -13,7 +19,7 @@ export function urljoin() {
13
19
  }
14
20
  // If the first part is a plain protocol, we combine it with the next part.
15
21
  if (strArray[0].match(/^[^/:]+:\/*$/) && strArray.length > 1) {
16
- var first = strArray.shift();
22
+ const first = strArray.shift();
17
23
  strArray[0] = first + strArray[0];
18
24
  }
19
25
  // There must be two or three slashes in the file protocol, two slashes in anything else.
@@ -23,8 +29,8 @@ export function urljoin() {
23
29
  else {
24
30
  strArray[0] = strArray[0].replace(/^([^/:]+):\/*/, '$1://');
25
31
  }
26
- for (var i = 0; i < strArray.length; i++) {
27
- var component = strArray[i];
32
+ for (let i = 0; i < strArray.length; i++) {
33
+ let component = strArray[i];
28
34
  if (typeof component !== 'string') {
29
35
  throw new TypeError('Url must be a string. Received ' + component);
30
36
  }
@@ -33,25 +39,27 @@ export function urljoin() {
33
39
  }
34
40
  if (i > 0) {
35
41
  // Removing the starting slashes for each component but the first.
36
- component = component.replace(/^[/]+/, '');
42
+ component = component.replace(/^[\/]+/, '');
37
43
  }
38
44
  if (i < strArray.length - 1) {
39
45
  // Removing the ending slashes for each component but the last.
40
- component = component.replace(/[/]+$/, '');
46
+ component = component.replace(/[\/]+$/, '');
41
47
  }
42
48
  else {
43
49
  // For the last component we will combine multiple slashes to a single one.
44
- component = component.replace(/[/]+$/, '/');
50
+ component = component.replace(/[\/]+$/, '/');
45
51
  }
46
52
  resultArray.push(component);
47
53
  }
48
- var str = resultArray.join('/');
54
+ let str = resultArray.join('/');
49
55
  // Each input component is now separated by a single slash except the possible first plain protocol part.
50
56
  // remove trailing slash before parameters or hash
51
57
  str = str.replace(/\/(\?|&|#[^!])/g, '$1');
52
58
  // replace ? in parameters with &
53
- var parts = str.split('?');
59
+ const parts = str.split('?');
54
60
  str = parts.shift() + (parts.length > 0 ? '?' : '') + parts.join('&');
55
61
  return str;
56
62
  }
57
- //# sourceMappingURL=urljoin.js.map
63
+
64
+ export { urljoin };
65
+ //# sourceMappingURL=urljoin.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urljoin.mjs","sources":["../../../src/shim/urljoin.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  // https://github.com/sindresorhus/camelcase/blob/master/index.js
2
2
  function preserveCamelCase(string) {
3
- var isLastCharLower = false;
4
- var isLastCharUpper = false;
5
- var isLastLastCharUpper = false;
6
- for (var i = 0; i < string.length; i++) {
7
- var character = string[i];
3
+ let isLastCharLower = false;
4
+ let isLastCharUpper = false;
5
+ let isLastLastCharUpper = false;
6
+ for (let i = 0; i < string.length; i++) {
7
+ const character = string[i];
8
8
  if (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) {
9
9
  string = string.slice(0, i) + '-' + string.slice(i);
10
10
  isLastCharLower = false;
@@ -29,21 +29,20 @@ function preserveCamelCase(string) {
29
29
  }
30
30
  return string;
31
31
  }
32
- export function pascalCase(input) {
32
+ function pascalCase(input) {
33
33
  return camelCase(input, { pascalCase: true });
34
34
  }
35
- export function camelCase(input, options) {
36
- if (options === void 0) { options = {
37
- pascalCase: false,
38
- }; }
35
+ function camelCase(input, options = {
36
+ pascalCase: false,
37
+ }) {
39
38
  if (!(typeof input === 'string' || Array.isArray(input))) {
40
39
  throw new TypeError('Expected the input to be `string | string[]`');
41
40
  }
42
- var postProcess = function (x) { return (options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x); };
41
+ const postProcess = (x) => (options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x);
43
42
  if (Array.isArray(input)) {
44
43
  input = input
45
- .map(function (x) { return x.trim(); })
46
- .filter(function (x) { return x.length; })
44
+ .map((x) => x.trim())
45
+ .filter((x) => x.length)
47
46
  .join('-');
48
47
  }
49
48
  else {
@@ -55,15 +54,17 @@ export function camelCase(input, options) {
55
54
  if (input.length === 1) {
56
55
  return options.pascalCase ? input.toUpperCase() : input.toLowerCase();
57
56
  }
58
- var hasUpperCase = input !== input.toLowerCase();
57
+ const hasUpperCase = input !== input.toLowerCase();
59
58
  if (hasUpperCase) {
60
59
  input = preserveCamelCase(input);
61
60
  }
62
61
  input = input
63
62
  .replace(/^[_.\- ]+/, '')
64
63
  .toLowerCase()
65
- .replace(/[_.\- ]+(\w|$)/g, function (_, p1) { return p1.toUpperCase(); })
66
- .replace(/\d+(\w|$)/g, function (m) { return m.toUpperCase(); });
64
+ .replace(/[_.\- ]+(\w|$)/g, (_, p1) => p1.toUpperCase())
65
+ .replace(/\d+(\w|$)/g, (m) => m.toUpperCase());
67
66
  return postProcess(input);
68
67
  }
69
- //# sourceMappingURL=camelCase.js.map
68
+
69
+ export { camelCase, pascalCase };
70
+ //# sourceMappingURL=camelCase.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camelCase.mjs","sources":["../../../src/strings/camelCase.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -4,11 +4,13 @@
4
4
  * @example
5
5
  * templateString('My name is ${name}',{name:'wener'})
6
6
  */
7
- export function templateString(template, getter) {
8
- return template.replace(/\${(.*?)}/g, function (_, g) {
7
+ function templateString(template, getter) {
8
+ return template.replace(/\${(.*?)}/g, (_, g) => {
9
9
  // variables[g.trim()]
10
10
  // 支持路径 - 例如 a.b[0]
11
11
  return getter(g.trim());
12
12
  });
13
13
  }
14
- //# sourceMappingURL=templates.js.map
14
+
15
+ export { templateString };
16
+ //# sourceMappingURL=templates.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.mjs","sources":["../../../src/strings/templates.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;AAKG;AACa,SAAA,cAAc,CAAC,QAAgB,EAAE,MAA0B,EAAA;IACzE,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,KAAI;;;AAG7C,QAAA,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1B,KAAC,CAAC,CAAC;AACL;;;;"}
@@ -1,4 +1,6 @@
1
- export function isClass(func) {
1
+ function isClass(func) {
2
2
  return typeof func === 'function' && /^class\s/.test(Function.prototype.toString.call(func));
3
3
  }
4
- //# sourceMappingURL=isClass.js.map
4
+
5
+ export { isClass };
6
+ //# sourceMappingURL=isClass.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isClass.mjs","sources":["../../../src/validations/isClass.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAM,SAAU,OAAO,CAAC,IAAS,EAAA;IAC/B,OAAO,OAAO,IAAI,KAAK,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/F;;;;"}
@@ -0,0 +1,6 @@
1
+ function isDefined(v) {
2
+ return v !== null && v !== undefined;
3
+ }
4
+
5
+ export { isDefined };
6
+ //# sourceMappingURL=isDefined.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isDefined.mjs","sources":["../../../src/validations/isDefined.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAM,SAAU,SAAS,CAAU,CAAI,EAAA;AACrC,IAAA,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC;AACvC;;;;"}
@@ -1,7 +1,9 @@
1
- export function isEmptyObject(o) {
1
+ function isEmptyObject(o) {
2
2
  if (o === null || o === undefined) {
3
3
  return true;
4
4
  }
5
5
  return o.constructor === Object && Object.keys(o).length === 0;
6
6
  }
7
- //# sourceMappingURL=isEmptyObject.js.map
7
+
8
+ export { isEmptyObject };
9
+ //# sourceMappingURL=isEmptyObject.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isEmptyObject.mjs","sources":["../../../src/validations/isEmptyObject.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAM,SAAU,aAAa,CAAC,CAAM,EAAA;AAClC,IAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,EAAE;AACjC,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AACD,IAAA,OAAO,CAAC,CAAC,WAAW,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AACjE;;;;"}
package/package.json CHANGED
@@ -1,7 +1,9 @@
1
1
  {
2
2
  "name": "@wener/utils",
3
- "version": "1.0.1",
3
+ "version": "1.1.2",
4
4
  "description": "Utils for daily use",
5
+ "type": "module",
6
+ "sideEffects": false,
5
7
  "keywords": [
6
8
  "utils",
7
9
  "core library",
@@ -9,25 +11,30 @@
9
11
  ],
10
12
  "repository": {
11
13
  "type": "git",
12
- "url": "git+https://github.com/wener/apis.git"
14
+ "url": "git+https://github.com/wener/wode.git"
13
15
  },
14
16
  "license": "MIT",
15
17
  "author": "wener",
16
- "main": "lib/cjs/index.js",
17
- "module": "lib/esm/index.js",
18
- "typings": "lib/esm/index.d.ts",
19
- "esnext": "lib/esnext/index.js",
20
- "umd:main": "dist/wener-utils.umd.js",
21
- "unpkg": "dist/wener-utils.umd.js",
22
- "jsdelivr": "dist/wener-utils.umd.js",
23
- "jsnext:main": "dist/wener-utils.esm.js",
24
18
  "exports": {
25
19
  ".": {
26
- "import": "./dist/wener-utils.esm.js",
27
- "require": "./dist/wener-utils.cjs"
28
- }
20
+ "types": "./src/index.ts",
21
+ "import": "./lib/esm/index.mjs",
22
+ "system": {
23
+ "development": "./dist/system/index.development.js",
24
+ "default": "./dist/system/index.min.js"
25
+ },
26
+ "require": "./dist/cjs/index.js"
27
+ },
28
+ "./types": {
29
+ "types": "./src/types.d.ts"
30
+ },
31
+ "./src/*": "./src/*",
32
+ "./package.json": "./package.json"
29
33
  },
30
- "homepage": "https://github.com/wenerme/apis#readme",
34
+ "main": "dist/cjs/index.js",
35
+ "import": "lib/esm/index.mjs",
36
+ "types": "src/index.ts",
37
+ "homepage": "https://github.com/wenerme/wode#readme",
31
38
  "files": [
32
39
  "index.js",
33
40
  "index.d.ts",
@@ -42,34 +49,35 @@
42
49
  "tsconfig.jest.json",
43
50
  "tsconfig.json"
44
51
  ],
45
- "scripts": {
46
- "build": "make compile",
47
- "clean": "make clean",
48
- "test": "jest"
49
- },
50
52
  "devDependencies": {
51
- "@babel/core": "^7",
52
- "@babel/preset-env": "^7.10.4",
53
- "@babel/preset-typescript": "^7.10.4",
54
- "@rollup/plugin-babel": "^5",
55
- "@rollup/plugin-node-resolve": "^8.4.0",
56
- "@rollup/plugin-typescript": "^5",
57
- "@types/babel__core": "^7",
58
- "@types/babel__preset-env": "^7",
59
- "@types/jest": "^25",
60
53
  "@types/lodash": "^4",
61
- "@types/node": "^12",
62
- "dotenv": "^8",
63
- "jest": "^26",
54
+ "@types/node": "^16",
55
+ "ava": "^4.3.3",
56
+ "dotenv": "^16",
57
+ "esbuild": "^0.14",
64
58
  "lodash": "^4",
65
- "rollup": "^2",
66
- "rollup-plugin-terser": "^6",
67
- "ts-jest": "^26",
68
59
  "tslib": "^2",
69
- "typedoc": "^0",
70
60
  "typescript": "^4"
71
61
  },
72
62
  "publishConfig": {
73
63
  "access": "public"
64
+ },
65
+ "engines": {
66
+ "node": "16",
67
+ "npm": "8"
68
+ },
69
+ "ava": {
70
+ "extensions": {
71
+ "ts": "module"
72
+ },
73
+ "nodeArguments": [
74
+ "--loader=tsx"
75
+ ]
76
+ },
77
+ "scripts": {
78
+ "build": "make prepublish",
79
+ "clean": "make clean",
80
+ "dev": "make dev",
81
+ "test": "make test"
74
82
  }
75
- }
83
+ }
@@ -3,13 +3,16 @@ export type MaybeArray<T> = T | T[];
3
3
  export function objectOfMaybeArray<T = any>(
4
4
  o: Record<string, MaybeArray<T>>,
5
5
  keys: string[] | null = null,
6
- picker = firstOfMaybeArray,
6
+ picker = firstOfMaybeArray
7
7
  ): Record<string, T> {
8
8
  if (keys === null) {
9
- return Object.fromEntries(Object.entries(o).map(([k, v]) => [k, picker(v)]));
9
+ return Object.fromEntries(
10
+ Object.entries(o).map(([k, v]) => [k, picker(v)])
11
+ );
10
12
  }
11
13
  return Object.fromEntries(keys.map((v) => [v, picker(v)])) as any;
12
14
  }
15
+
13
16
  export function firstOfMaybeArray<T>(v: MaybeArray<T>): T {
14
17
  if (Array.isArray(v)) {
15
18
  return v[0];
@@ -3,7 +3,7 @@ export function timeout<T = any>(v: Promise<T>, ms: number): Promise<T> {
3
3
  let timeout: any;
4
4
  return Promise.race([
5
5
  v,
6
- new Promise((resolve, reject) => {
6
+ new Promise((_, reject) => {
7
7
  timeout = setTimeout(() => reject(error), ms);
8
8
  }),
9
9
  ]).then(
@@ -45,13 +45,17 @@ function initCopy() {
45
45
  };
46
46
  }
47
47
 
48
- export function copy(text: string) {
48
+ /**
49
+ * Write text to clipboard
50
+ * @param content content
51
+ */
52
+ export function copy(content: string) {
49
53
  if (window.navigator?.clipboard?.writeText) {
50
- window.navigator.clipboard.writeText(text);
54
+ window.navigator.clipboard.writeText(content);
51
55
  return;
52
56
  }
53
57
  if (!_copy) {
54
58
  initCopy();
55
59
  }
56
- _copy(text);
60
+ _copy(content);
57
61
  }
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Trigger browser download
3
+ * @param filename download as filename
4
+ * @param data data or url to download
5
+ * @param type content type
6
+ * @param raw if true, data is treated as raw data, not url
7
+ */
1
8
  export function download(filename: string, data: any, { type = 'application/octet-stream', raw = false } = {}) {
2
9
  const a = document.createElement('a');
3
10
  let closer: () => void = () => null;
@@ -1,12 +1,17 @@
1
- export function getFile(dataTransfer: DataTransfer): { file: File; filename: string } | null {
2
- const items: DataTransferItemList = dataTransfer?.items ?? ([] as any);
1
+ export function getFileFromDataTransfer(dataTransfer?: DataTransfer | null): { file?: File; name?: string } {
2
+ if (!dataTransfer) {
3
+ return {};
4
+ }
5
+
6
+ const items: DataTransferItemList = dataTransfer.items ?? [];
3
7
 
4
8
  if (items.length >= 2 && items[0].kind === 'string' && items[1].kind === 'file') {
9
+ // name, file
5
10
  const text = dataTransfer.getData('text');
6
11
  const file = items[1].getAsFile() ?? dataTransfer.files?.item(0);
7
12
  if (!file) {
8
13
  console.error(`no file ${text}`, items[1]);
9
- return null;
14
+ return {};
10
15
  }
11
16
 
12
17
  // let type = file.type;
@@ -18,19 +23,19 @@ export function getFile(dataTransfer: DataTransfer): { file: File; filename: str
18
23
  // file = new File([blob], text, {type});
19
24
  // }
20
25
 
21
- return { file, filename: text };
26
+ return { file, name: text };
22
27
  } else if (items[0].kind === 'file') {
23
28
  const file = items[0].getAsFile();
24
29
  if (!file) {
25
30
  console.error(`no file`, items[0]);
26
- return null;
31
+ return {};
27
32
  }
28
- return { file, filename: file.name };
33
+ return { file, name: file.name };
29
34
  } else {
30
35
  console.debug(
31
36
  `file item not match`,
32
37
  Array.from(items).map((v) => ({ type: v.type, kind: v.kind })),
33
38
  );
34
39
  }
35
- return null;
40
+ return {};
36
41
  }
@@ -4,7 +4,7 @@ function load(
4
4
  reject: (v: any) => void,
5
5
  options: { attributes: Record<string, string> } | undefined,
6
6
  ) {
7
- el.onload = resolve;
7
+ el.onload = () => resolve(el);
8
8
  el.onerror = (e) => {
9
9
  el.remove();
10
10
  reject(e);
@@ -15,10 +15,34 @@ function load(
15
15
  document.head.appendChild(el);
16
16
  }
17
17
 
18
- export function loadScripts(src: string, options?: { attributes: Record<string, string> }) {
18
+ export function loadScripts(
19
+ src: string[],
20
+ options?: { attributes: Record<string, string> },
21
+ ): Promise<HTMLScriptElement[]>;
22
+ export function loadScripts(src: string, options?: { attributes: Record<string, string> }): Promise<HTMLScriptElement>;
23
+
24
+ export function loadScripts(
25
+ src: string | string[],
26
+ options?: { attributes: Record<string, string> },
27
+ ): Promise<HTMLScriptElement | HTMLScriptElement[]> {
28
+ if (Array.isArray(src)) {
29
+ return new Promise(async (resolve, reject) => {
30
+ const all = [];
31
+ try {
32
+ for (let s of src) {
33
+ all.push(await loadScripts(s));
34
+ }
35
+ } catch (e) {
36
+ reject(e);
37
+ return;
38
+ }
39
+ resolve(all);
40
+ });
41
+ }
19
42
  // todo quote ?
20
- if (document.querySelector(`script[src="${src}"]`)) {
21
- return Promise.resolve();
43
+ let $ele = document.querySelector(`script[src="${src}"]`) as HTMLScriptElement;
44
+ if ($ele) {
45
+ return Promise.resolve($ele);
22
46
  }
23
47
  return new Promise((resolve, reject) => {
24
48
  const el = document.createElement('script');
@@ -27,9 +51,10 @@ export function loadScripts(src: string, options?: { attributes: Record<string,
27
51
  });
28
52
  }
29
53
 
30
- export function loadStyles(href: string, options?: { attributes: Record<string, string> }) {
31
- if (document.querySelector(`link[href="${href}"]`)) {
32
- return Promise.resolve();
54
+ export function loadStyles(href: string, options?: { attributes: Record<string, string> }): Promise<HTMLLinkElement> {
55
+ let $ele = document.querySelector(`link[href="${href}"]`) as HTMLLinkElement;
56
+ if ($ele) {
57
+ return Promise.resolve($ele);
33
58
  }
34
59
 
35
60
  return new Promise((resolve, reject) => {
@@ -0,0 +1,26 @@
1
+ import test from 'ava';
2
+ import { sha1, sha256, sha384, sha512 } from './hashing';
3
+ import { hex } from './hex';
4
+ import { randomUUID } from './randomUUID';
5
+
6
+ test.before(async (t) => {
7
+ if (!('crypto' in globalThis)) {
8
+ (globalThis as any).crypto = (await import('node:crypto')).webcrypto;
9
+ t.log(`load node:crypto`);
10
+ }
11
+ });
12
+
13
+ test('sha', async (t) => {
14
+ t.is(hex(await sha1('')), 'da39a3ee5e6b4b0d3255bfef95601890afd80709');
15
+ t.is(hex(await sha1('abc')), 'a9993e364706816aba3e25717850c26c9cd0d89d');
16
+ t.is(hex(await sha256('')), 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855');
17
+ t.is(
18
+ hex(await sha384('')),
19
+ '38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b',
20
+ );
21
+ t.is(
22
+ hex(await sha512('')),
23
+ 'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e',
24
+ );
25
+ t.regex(randomUUID(), /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/);
26
+ });
@@ -0,0 +1,27 @@
1
+ export async function sha1(s: string | BufferSource) {
2
+ return digestOf('SHA-1', s);
3
+ }
4
+
5
+ export async function sha256(s: string | BufferSource) {
6
+ return digestOf('SHA-256', s);
7
+ }
8
+
9
+ export async function sha384(s: string | BufferSource) {
10
+ return digestOf('SHA-384', s);
11
+ }
12
+
13
+ export async function sha512(s: string | BufferSource) {
14
+ return digestOf('SHA-512', s);
15
+ }
16
+
17
+ function digestOf(a: string, s: string | BufferSource) {
18
+ return crypto.subtle.digest(a, bufferOf(s));
19
+ }
20
+
21
+ function bufferOf(s: string | BufferSource) {
22
+ // ArrayBuffer, TypedArray, DataView
23
+ if (typeof s === 'string') {
24
+ return new TextEncoder().encode(s);
25
+ }
26
+ return s;
27
+ }
@@ -0,0 +1,5 @@
1
+ export function hex(s: Uint8Array | ArrayBuffer) {
2
+ return Array.from(new Uint8Array(s))
3
+ .map((v) => v.toString(16).padStart(2, '0'))
4
+ .join('');
5
+ }
@@ -0,0 +1,10 @@
1
+ export function randomUUID() {
2
+ if ('randomUUID' in crypto) {
3
+ return crypto.randomUUID();
4
+ }
5
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
6
+ const r = (Math.random() * 16) | 0;
7
+ const v = c === 'x' ? r : (r & 0x3) | 0x8;
8
+ return v.toString(16);
9
+ });
10
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Format bytes as human-readable text.
3
+ *
4
+ * @param bytes Number of bytes.
5
+ * @param si True to use metric (SI) units, aka powers of 1000. False to use
6
+ * binary (IEC), aka powers of 1024.
7
+ * @param dp Number of decimal places to display.
8
+ *
9
+ * @return Formatted string.
10
+ */
11
+ export function formatBytes(bytes: number, si = false, dp = 1) {
12
+ const thresh = si ? 1000 : 1024;
13
+
14
+ if (Math.abs(bytes) < thresh) {
15
+ return bytes + ' B';
16
+ }
17
+
18
+ const units = si
19
+ ? ['kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']
20
+ : ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB'];
21
+ let u = -1;
22
+ const r = 10 ** dp;
23
+
24
+ do {
25
+ bytes /= thresh;
26
+ ++u;
27
+ } while (Math.round(Math.abs(bytes) * r) / r >= thresh && u < units.length - 1);
28
+
29
+ return bytes.toFixed(dp) + ' ' + units[u];
30
+ }