@choksheak/ts-utils 0.3.5 → 0.3.6

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 (258) hide show
  1. package/arrayBuffer.cjs +10 -39
  2. package/arrayBuffer.min.cjs +1 -1
  3. package/arrayBuffer.min.cjs.map +1 -1
  4. package/arrayBuffer.min.mjs +1 -1
  5. package/arrayBuffer.min.mjs.map +1 -1
  6. package/arrayBuffer.mjs +7 -10
  7. package/asNumber.cjs +6 -38
  8. package/asNumber.min.cjs +1 -1
  9. package/asNumber.min.cjs.map +1 -1
  10. package/asNumber.min.mjs +1 -1
  11. package/asNumber.min.mjs.map +1 -1
  12. package/asNumber.mjs +4 -11
  13. package/assert.cjs +4 -27
  14. package/assert.min.cjs +1 -1
  15. package/assert.min.cjs.map +1 -1
  16. package/assert.min.mjs +1 -1
  17. package/assert.min.mjs.map +1 -1
  18. package/assert.mjs +2 -0
  19. package/base64Url.cjs +5 -29
  20. package/base64Url.min.cjs +1 -1
  21. package/base64Url.min.cjs.map +1 -1
  22. package/base64Url.min.mjs +1 -1
  23. package/base64Url.min.mjs.map +1 -1
  24. package/base64Url.mjs +2 -0
  25. package/capLength.cjs +7 -71
  26. package/capLength.min.cjs +1 -5
  27. package/capLength.min.cjs.map +1 -1
  28. package/capLength.min.mjs +1 -5
  29. package/capLength.min.mjs.map +1 -1
  30. package/capLength.mjs +4 -41
  31. package/chunk-22JDWCOS.min.cjs +2 -0
  32. package/chunk-22JDWCOS.min.cjs.map +1 -0
  33. package/chunk-244NBT4Q.min.mjs +2 -0
  34. package/chunk-244NBT4Q.min.mjs.map +1 -0
  35. package/chunk-27MBP3ES.min.cjs +2 -0
  36. package/chunk-27MBP3ES.min.cjs.map +1 -0
  37. package/chunk-34ENP2B3.min.mjs +438 -0
  38. package/chunk-34ENP2B3.min.mjs.map +1 -0
  39. package/chunk-3EBQ2GO2.min.cjs +2 -0
  40. package/chunk-3EBQ2GO2.min.cjs.map +1 -0
  41. package/chunk-4GLOLTJ5.cjs +167 -0
  42. package/chunk-6TQBMXTL.min.cjs +2 -0
  43. package/chunk-6TQBMXTL.min.cjs.map +1 -0
  44. package/chunk-AWZBCFMG.min.cjs +2 -0
  45. package/chunk-AWZBCFMG.min.cjs.map +1 -0
  46. package/chunk-AXNETZET.cjs +20 -0
  47. package/chunk-BKZM6NWX.min.cjs +2 -0
  48. package/chunk-BKZM6NWX.min.cjs.map +1 -0
  49. package/chunk-BZKQXX3A.cjs +40 -0
  50. package/chunk-CERFUU5I.cjs +93 -0
  51. package/chunk-CSTKFJ6G.mjs +239 -0
  52. package/chunk-DUN4UY2Q.cjs +239 -0
  53. package/chunk-EDJJUP4K.min.cjs +6 -0
  54. package/chunk-EDJJUP4K.min.cjs.map +1 -0
  55. package/chunk-FFNQBZH5.cjs +14 -0
  56. package/chunk-FZZRSHSH.min.mjs +6 -0
  57. package/chunk-FZZRSHSH.min.mjs.map +1 -0
  58. package/chunk-GAP2HS5M.min.cjs +2 -0
  59. package/chunk-GAP2HS5M.min.cjs.map +1 -0
  60. package/chunk-GLYMAPS4.min.mjs +2 -0
  61. package/chunk-GLYMAPS4.min.mjs.map +1 -0
  62. package/chunk-I65KPVMO.min.cjs +438 -0
  63. package/chunk-I65KPVMO.min.cjs.map +1 -0
  64. package/chunk-ILGTU46T.cjs +39 -0
  65. package/chunk-IOKRXHKE.min.mjs +2 -0
  66. package/chunk-IOKRXHKE.min.mjs.map +1 -0
  67. package/chunk-ISP4SMRC.min.cjs +2 -0
  68. package/chunk-ISP4SMRC.min.cjs.map +1 -0
  69. package/chunk-KETP5HBF.cjs +24 -0
  70. package/chunk-KLHNGJ4Y.min.mjs +2 -0
  71. package/chunk-KLHNGJ4Y.min.mjs.map +1 -0
  72. package/chunk-KMNTU3DJ.mjs +45 -0
  73. package/chunk-LDVEXETI.cjs +45 -0
  74. package/chunk-LZENHV35.min.cjs +2 -0
  75. package/chunk-LZENHV35.min.cjs.map +1 -0
  76. package/chunk-M5PIM2HB.mjs +42 -0
  77. package/chunk-M6PYQYOX.mjs +39 -0
  78. package/chunk-MN5EYNZN.min.mjs +2 -0
  79. package/chunk-MN5EYNZN.min.mjs.map +1 -0
  80. package/chunk-NRIBJ2OJ.mjs +16031 -0
  81. package/chunk-NVLYXWLX.cjs +32 -0
  82. package/chunk-O352F2MT.mjs +24 -0
  83. package/chunk-O6B2TKFK.min.mjs +2 -0
  84. package/chunk-O6B2TKFK.min.mjs.map +1 -0
  85. package/chunk-OGF34H4T.min.cjs +2 -0
  86. package/chunk-OGF34H4T.min.cjs.map +1 -0
  87. package/chunk-OXSWWWOM.min.mjs +2 -0
  88. package/chunk-OXSWWWOM.min.mjs.map +1 -0
  89. package/chunk-PRUGHVRT.mjs +14 -0
  90. package/chunk-Q4WCMSOW.min.mjs +2 -0
  91. package/chunk-Q4WCMSOW.min.mjs.map +1 -0
  92. package/chunk-QH74JZCK.mjs +9 -0
  93. package/chunk-QNNJNLGK.min.cjs +2 -0
  94. package/chunk-QNNJNLGK.min.cjs.map +1 -0
  95. package/chunk-QWCFN7ZM.mjs +15 -0
  96. package/chunk-SDM2OPT6.mjs +32 -0
  97. package/chunk-SHKRZCF2.cjs +16031 -0
  98. package/chunk-SJDJDNDN.min.cjs +2 -0
  99. package/chunk-SJDJDNDN.min.cjs.map +1 -0
  100. package/chunk-SULNMALN.cjs +328 -0
  101. package/chunk-SV35RBZ7.min.mjs +2 -0
  102. package/chunk-SV35RBZ7.min.mjs.map +1 -0
  103. package/chunk-TJFYGFOW.mjs +328 -0
  104. package/chunk-UHRYBUUX.min.mjs +2 -0
  105. package/chunk-UHRYBUUX.min.mjs.map +1 -0
  106. package/chunk-UOU6IP3S.min.mjs +2 -0
  107. package/chunk-UOU6IP3S.min.mjs.map +1 -0
  108. package/chunk-V76XVNZ5.mjs +20 -0
  109. package/chunk-VFYQ7I5V.min.mjs +2 -0
  110. package/chunk-VFYQ7I5V.min.mjs.map +1 -0
  111. package/chunk-VG7VV7J2.mjs +167 -0
  112. package/chunk-VJCV56DO.cjs +15 -0
  113. package/chunk-VREA6AKG.cjs +9 -0
  114. package/chunk-W5I6Y5FK.min.mjs +2 -0
  115. package/chunk-W5I6Y5FK.min.mjs.map +1 -0
  116. package/chunk-Y7MC73BZ.cjs +42 -0
  117. package/chunk-YVWROQKU.mjs +40 -0
  118. package/chunk-ZKIZ5SWK.min.cjs +2 -0
  119. package/chunk-ZKIZ5SWK.min.cjs.map +1 -0
  120. package/chunk-ZZZB7NJX.mjs +93 -0
  121. package/concatIterators.cjs +4 -27
  122. package/concatIterators.min.cjs +1 -1
  123. package/concatIterators.min.cjs.map +1 -1
  124. package/concatIterators.min.mjs +1 -1
  125. package/concatIterators.min.mjs.map +1 -1
  126. package/concatIterators.mjs +2 -0
  127. package/dateTimeStr.cjs +31 -119
  128. package/dateTimeStr.min.cjs +1 -1
  129. package/dateTimeStr.min.cjs.map +1 -1
  130. package/dateTimeStr.min.mjs +1 -1
  131. package/dateTimeStr.min.mjs.map +1 -1
  132. package/dateTimeStr.mjs +17 -69
  133. package/duration.cjs +24 -188
  134. package/duration.min.cjs +1 -1
  135. package/duration.min.cjs.map +1 -1
  136. package/duration.min.mjs +1 -1
  137. package/duration.min.mjs.map +1 -1
  138. package/duration.mjs +14 -144
  139. package/getEnv.cjs +20 -0
  140. package/getEnv.d.mts +11 -0
  141. package/getEnv.d.ts +11 -0
  142. package/getEnv.min.cjs +2 -0
  143. package/getEnv.min.cjs.map +1 -0
  144. package/getEnv.min.mjs +2 -0
  145. package/getEnv.min.mjs.map +1 -0
  146. package/getEnv.mjs +20 -0
  147. package/isEmpty.cjs +8 -46
  148. package/isEmpty.min.cjs +1 -1
  149. package/isEmpty.min.cjs.map +1 -1
  150. package/isEmpty.min.mjs +1 -1
  151. package/isEmpty.min.mjs.map +1 -1
  152. package/isEmpty.mjs +6 -19
  153. package/isPromise.cjs +5 -29
  154. package/isPromise.min.cjs +1 -1
  155. package/isPromise.min.cjs.map +1 -1
  156. package/isPromise.min.mjs +1 -1
  157. package/isPromise.min.mjs.map +1 -1
  158. package/isPromise.mjs +2 -0
  159. package/kvStore.cjs +15 -353
  160. package/kvStore.min.cjs +1 -1
  161. package/kvStore.min.cjs.map +1 -1
  162. package/kvStore.min.mjs +1 -1
  163. package/kvStore.min.mjs.map +1 -1
  164. package/kvStore.mjs +12 -319
  165. package/localStore.cjs +15 -264
  166. package/localStore.min.cjs +1 -1
  167. package/localStore.min.cjs.map +1 -1
  168. package/localStore.min.mjs +1 -1
  169. package/localStore.min.mjs.map +1 -1
  170. package/localStore.mjs +12 -230
  171. package/magic-string.es-4UY437WL.min.mjs +14 -0
  172. package/magic-string.es-4UY437WL.min.mjs.map +1 -0
  173. package/magic-string.es-OAQWZQTY.mjs +1323 -0
  174. package/magic-string.es-UE2UVQEL.cjs +1323 -0
  175. package/magic-string.es-X6DNUB6Y.min.cjs +14 -0
  176. package/magic-string.es-X6DNUB6Y.min.cjs.map +1 -0
  177. package/mean.cjs +8 -48
  178. package/mean.min.cjs +1 -1
  179. package/mean.min.cjs.map +1 -1
  180. package/mean.min.mjs +1 -1
  181. package/mean.min.mjs.map +1 -1
  182. package/mean.mjs +5 -18
  183. package/median.cjs +7 -41
  184. package/median.min.cjs +1 -1
  185. package/median.min.cjs.map +1 -1
  186. package/median.min.mjs +1 -1
  187. package/median.min.mjs.map +1 -1
  188. package/median.mjs +4 -11
  189. package/nonEmpty.cjs +8 -48
  190. package/nonEmpty.min.cjs +1 -1
  191. package/nonEmpty.min.cjs.map +1 -1
  192. package/nonEmpty.min.mjs +1 -1
  193. package/nonEmpty.min.mjs.map +1 -1
  194. package/nonEmpty.mjs +6 -19
  195. package/nonNil.cjs +4 -27
  196. package/nonNil.min.cjs +1 -1
  197. package/nonNil.min.cjs.map +1 -1
  198. package/nonNil.min.mjs +1 -1
  199. package/nonNil.min.mjs.map +1 -1
  200. package/nonNil.mjs +2 -0
  201. package/package.json +273 -1
  202. package/round.cjs +6 -32
  203. package/round.min.cjs +1 -1
  204. package/round.min.cjs.map +1 -1
  205. package/round.min.mjs +1 -1
  206. package/round.min.mjs.map +1 -1
  207. package/round.mjs +4 -5
  208. package/roundToString.cjs +7 -35
  209. package/roundToString.min.cjs +1 -1
  210. package/roundToString.min.cjs.map +1 -1
  211. package/roundToString.min.mjs +1 -1
  212. package/roundToString.min.mjs.map +1 -1
  213. package/roundToString.mjs +4 -5
  214. package/safeBtoa.cjs +4 -27
  215. package/safeBtoa.min.cjs +1 -1
  216. package/safeBtoa.min.cjs.map +1 -1
  217. package/safeBtoa.min.mjs +1 -1
  218. package/safeBtoa.min.mjs.map +1 -1
  219. package/safeBtoa.mjs +2 -0
  220. package/sha256.cjs +8 -34
  221. package/sha256.min.cjs +1 -1
  222. package/sha256.min.cjs.map +1 -1
  223. package/sha256.min.mjs +1 -1
  224. package/sha256.min.mjs.map +1 -1
  225. package/sha256.mjs +6 -7
  226. package/sleep.cjs +4 -27
  227. package/sleep.min.cjs +1 -1
  228. package/sleep.min.cjs.map +1 -1
  229. package/sleep.min.mjs +1 -1
  230. package/sleep.min.mjs.map +1 -1
  231. package/sleep.mjs +2 -0
  232. package/storageAdapter.cjs +1 -18
  233. package/storageAdapter.min.cjs +1 -2
  234. package/storageAdapter.min.cjs.map +1 -1
  235. package/sum.cjs +5 -45
  236. package/sum.min.cjs +1 -1
  237. package/sum.min.cjs.map +1 -1
  238. package/sum.min.mjs +1 -1
  239. package/sum.min.mjs.map +1 -1
  240. package/sum.mjs +5 -18
  241. package/timeConstants.cjs +35 -69
  242. package/timeConstants.min.cjs +1 -1
  243. package/timeConstants.min.cjs.map +1 -1
  244. package/timeConstants.min.mjs +1 -1
  245. package/timeConstants.min.mjs.map +1 -1
  246. package/timeConstants.mjs +19 -15
  247. package/timer.cjs +7 -180
  248. package/timer.min.cjs +1 -1
  249. package/timer.min.cjs.map +1 -1
  250. package/timer.min.mjs +1 -1
  251. package/timer.min.mjs.map +1 -1
  252. package/timer.mjs +8 -154
  253. package/toReadableString.cjs +6 -68
  254. package/toReadableString.min.cjs +1 -5
  255. package/toReadableString.min.cjs.map +1 -1
  256. package/toReadableString.min.mjs +1 -5
  257. package/toReadableString.min.mjs.map +1 -1
  258. package/toReadableString.mjs +4 -41
package/arrayBuffer.cjs CHANGED
@@ -1,40 +1,11 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
19
2
 
20
- // src/arrayBuffer.ts
21
- var arrayBuffer_exports = {};
22
- __export(arrayBuffer_exports, {
23
- arrayBufferToBase64: () => arrayBufferToBase64,
24
- arrayBufferToHex: () => arrayBufferToHex
25
- });
26
- module.exports = __toCommonJS(arrayBuffer_exports);
27
- function arrayBufferToHex(buffer) {
28
- const byteArray = new Uint8Array(buffer);
29
- return Array.from(byteArray).map((byte) => byte.toString(16).padStart(2, "0")).join("");
30
- }
31
- function arrayBufferToBase64(buffer) {
32
- const byteArray = new Uint8Array(buffer);
33
- const binaryString = Array.from(byteArray).map((byte) => String.fromCodePoint(byte)).join("");
34
- return btoa(binaryString);
35
- }
36
- // Annotate the CommonJS export names for ESM import in node:
37
- 0 && (module.exports = {
38
- arrayBufferToBase64,
39
- arrayBufferToHex
40
- });
3
+
4
+
5
+ var _chunkKETP5HBFcjs = require('./chunk-KETP5HBF.cjs');
6
+ require('./chunk-ILGTU46T.cjs');
7
+ _chunkKETP5HBFcjs.init_arrayBuffer.call(void 0, );
8
+
9
+
10
+
11
+ exports.arrayBufferToBase64 = _chunkKETP5HBFcjs.arrayBufferToBase64; exports.arrayBufferToHex = _chunkKETP5HBFcjs.arrayBufferToHex;
@@ -1,2 +1,2 @@
1
- "use strict";var e=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var u=(t,r)=>{for(var n in r)e(t,n,{get:r[n],enumerable:!0})},A=(t,r,n,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of i(r))!y.call(t,a)&&a!==n&&e(t,a,{get:()=>r[a],enumerable:!(o=f(r,a))||o.enumerable});return t};var s=t=>A(e({},"__esModule",{value:!0}),t);var m={};u(m,{arrayBufferToBase64:()=>g,arrayBufferToHex:()=>c});module.exports=s(m);function c(t){let r=new Uint8Array(t);return Array.from(r).map(n=>n.toString(16).padStart(2,"0")).join("")}function g(t){let r=new Uint8Array(t),n=Array.from(r).map(o=>String.fromCodePoint(o)).join("");return btoa(n)}0&&(module.exports={arrayBufferToBase64,arrayBufferToHex});
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkISP4SMRCmincjs = require('./chunk-ISP4SMRC.min.cjs');require('./chunk-QNNJNLGK.min.cjs');_chunkISP4SMRCmincjs.c.call(void 0, );exports.arrayBufferToBase64 = _chunkISP4SMRCmincjs.b; exports.arrayBufferToHex = _chunkISP4SMRCmincjs.a;
2
2
  //# sourceMappingURL=arrayBuffer.min.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/arrayBuffer.ts"],"sourcesContent":["/**\n * Encode an input ArrayBuffer into a hex string.\n */\nexport function arrayBufferToHex(buffer: ArrayBuffer): string {\n // Create a Uint8Array view of the ArrayBuffer\n const byteArray = new Uint8Array(buffer);\n\n // Convert each byte to a two-character hexadecimal string\n return Array.from(byteArray)\n .map((byte) => byte.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n\n/**\n * Encode an input ArrayBuffer into a base64 string.\n */\nexport function arrayBufferToBase64(buffer: ArrayBuffer): string {\n // Convert the ArrayBuffer to a Uint8Array\n const byteArray = new Uint8Array(buffer);\n\n // Create a binary string from the byte array\n const binaryString = Array.from(byteArray)\n .map((byte) => String.fromCodePoint(byte))\n .join(\"\");\n\n // Encode the binary string to base64. No need to use safeBtoa because we\n // already simplified the binary input above.\n return btoa(binaryString);\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,EAAA,qBAAAC,IAAA,eAAAC,EAAAJ,GAGO,SAASG,EAAiBE,EAA6B,CAE5D,IAAMC,EAAY,IAAI,WAAWD,CAAM,EAGvC,OAAO,MAAM,KAAKC,CAAS,EACxB,IAAKC,GAASA,EAAK,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAAC,EAChD,KAAK,EAAE,CACZ,CAKO,SAASL,EAAoBG,EAA6B,CAE/D,IAAMC,EAAY,IAAI,WAAWD,CAAM,EAGjCG,EAAe,MAAM,KAAKF,CAAS,EACtC,IAAKC,GAAS,OAAO,cAAcA,CAAI,CAAC,EACxC,KAAK,EAAE,EAIV,OAAO,KAAKC,CAAY,CAC1B","names":["arrayBuffer_exports","__export","arrayBufferToBase64","arrayBufferToHex","__toCommonJS","buffer","byteArray","byte","binaryString"]}
1
+ {"version":3,"sources":["/Users/choksheaklau/src/ts-utils/dist/arrayBuffer.min.cjs"],"names":[],"mappings":"AAAA,wIAA2C,oCAAiC,oCAAE,CAAE,CAAC,wGAAsD","file":"/Users/choksheaklau/src/ts-utils/dist/arrayBuffer.min.cjs"}
@@ -1,2 +1,2 @@
1
- function o(r){let t=new Uint8Array(r);return Array.from(t).map(n=>n.toString(16).padStart(2,"0")).join("")}function e(r){let t=new Uint8Array(r),n=Array.from(t).map(a=>String.fromCodePoint(a)).join("");return btoa(n)}export{e as arrayBufferToBase64,o as arrayBufferToHex};
1
+ import{a,b,c}from"./chunk-GLYMAPS4.min.mjs";import"./chunk-UOU6IP3S.min.mjs";c();export{b as arrayBufferToBase64,a as arrayBufferToHex};
2
2
  //# sourceMappingURL=arrayBuffer.min.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/arrayBuffer.ts"],"sourcesContent":["/**\n * Encode an input ArrayBuffer into a hex string.\n */\nexport function arrayBufferToHex(buffer: ArrayBuffer): string {\n // Create a Uint8Array view of the ArrayBuffer\n const byteArray = new Uint8Array(buffer);\n\n // Convert each byte to a two-character hexadecimal string\n return Array.from(byteArray)\n .map((byte) => byte.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n\n/**\n * Encode an input ArrayBuffer into a base64 string.\n */\nexport function arrayBufferToBase64(buffer: ArrayBuffer): string {\n // Convert the ArrayBuffer to a Uint8Array\n const byteArray = new Uint8Array(buffer);\n\n // Create a binary string from the byte array\n const binaryString = Array.from(byteArray)\n .map((byte) => String.fromCodePoint(byte))\n .join(\"\");\n\n // Encode the binary string to base64. No need to use safeBtoa because we\n // already simplified the binary input above.\n return btoa(binaryString);\n}\n"],"mappings":"AAGO,SAASA,EAAiBC,EAA6B,CAE5D,IAAMC,EAAY,IAAI,WAAWD,CAAM,EAGvC,OAAO,MAAM,KAAKC,CAAS,EACxB,IAAKC,GAASA,EAAK,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAAC,EAChD,KAAK,EAAE,CACZ,CAKO,SAASC,EAAoBH,EAA6B,CAE/D,IAAMC,EAAY,IAAI,WAAWD,CAAM,EAGjCI,EAAe,MAAM,KAAKH,CAAS,EACtC,IAAKC,GAAS,OAAO,cAAcA,CAAI,CAAC,EACxC,KAAK,EAAE,EAIV,OAAO,KAAKE,CAAY,CAC1B","names":["arrayBufferToHex","buffer","byteArray","byte","arrayBufferToBase64","binaryString"]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/arrayBuffer.mjs CHANGED
@@ -1,13 +1,10 @@
1
- // src/arrayBuffer.ts
2
- function arrayBufferToHex(buffer) {
3
- const byteArray = new Uint8Array(buffer);
4
- return Array.from(byteArray).map((byte) => byte.toString(16).padStart(2, "0")).join("");
5
- }
6
- function arrayBufferToBase64(buffer) {
7
- const byteArray = new Uint8Array(buffer);
8
- const binaryString = Array.from(byteArray).map((byte) => String.fromCodePoint(byte)).join("");
9
- return btoa(binaryString);
10
- }
1
+ import {
2
+ arrayBufferToBase64,
3
+ arrayBufferToHex,
4
+ init_arrayBuffer
5
+ } from "./chunk-O352F2MT.mjs";
6
+ import "./chunk-M6PYQYOX.mjs";
7
+ init_arrayBuffer();
11
8
  export {
12
9
  arrayBufferToBase64,
13
10
  arrayBufferToHex
package/asNumber.cjs CHANGED
@@ -1,39 +1,7 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
19
2
 
20
- // src/asNumber.ts
21
- var asNumber_exports = {};
22
- __export(asNumber_exports, {
23
- asNumber: () => asNumber
24
- });
25
- module.exports = __toCommonJS(asNumber_exports);
26
- function asNumber(u, defaultValue = 0) {
27
- if (typeof u === "number") {
28
- return isFinite(u) ? u : defaultValue;
29
- }
30
- u = Number(u);
31
- if (typeof u === "number" && isFinite(u)) {
32
- return u;
33
- }
34
- return defaultValue;
35
- }
36
- // Annotate the CommonJS export names for ESM import in node:
37
- 0 && (module.exports = {
38
- asNumber
39
- });
3
+ var _chunkVJCV56DOcjs = require('./chunk-VJCV56DO.cjs');
4
+ require('./chunk-ILGTU46T.cjs');
5
+
6
+
7
+ exports.asNumber = _chunkVJCV56DOcjs.asNumber;
package/asNumber.min.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var t=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var o=Object.getOwnPropertyNames;var f=Object.prototype.hasOwnProperty;var p=(n,r)=>{for(var i in r)t(n,i,{get:r[i],enumerable:!0})},s=(n,r,i,b)=>{if(r&&typeof r=="object"||typeof r=="function")for(let e of o(r))!f.call(n,e)&&e!==i&&t(n,e,{get:()=>r[e],enumerable:!(b=m(r,e))||b.enumerable});return n};var y=n=>s(t({},"__esModule",{value:!0}),n);var N={};p(N,{asNumber:()=>F});module.exports=y(N);function F(n,r=0){return typeof n=="number"?isFinite(n)?n:r:(n=Number(n),typeof n=="number"&&isFinite(n)?n:r)}0&&(module.exports={asNumber});
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkAWZBCFMGmincjs = require('./chunk-AWZBCFMG.min.cjs');require('./chunk-QNNJNLGK.min.cjs');exports.asNumber = _chunkAWZBCFMGmincjs.a;
2
2
  //# sourceMappingURL=asNumber.min.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/asNumber.ts"],"sourcesContent":["/**\n * Coerce `u` into a number if possible, otherwise just return 0.\n */\nexport function asNumber(u: unknown, defaultValue = 0): number {\n // If u is a valid number, return it.\n if (typeof u === \"number\") {\n return isFinite(u) ? u : defaultValue;\n }\n\n // Try to make into a number if not already a number.\n u = Number(u);\n\n // If u is a valid number, return it.\n if (typeof u === \"number\" && isFinite(u)) {\n return u;\n }\n\n // Return `defaultValue` for everything else. This is usually ok if want to\n // just ignore all other noise.\n return defaultValue;\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,cAAAE,IAAA,eAAAC,EAAAH,GAGO,SAASE,EAASE,EAAYC,EAAe,EAAW,CAE7D,OAAI,OAAOD,GAAM,SACR,SAASA,CAAC,EAAIA,EAAIC,GAI3BD,EAAI,OAAOA,CAAC,EAGR,OAAOA,GAAM,UAAY,SAASA,CAAC,EAC9BA,EAKFC,EACT","names":["asNumber_exports","__export","asNumber","__toCommonJS","u","defaultValue"]}
1
+ {"version":3,"sources":["/Users/choksheaklau/src/ts-utils/dist/asNumber.min.cjs"],"names":[],"mappings":"AAAA,wIAAuC,oCAAiC,0CAAsB","file":"/Users/choksheaklau/src/ts-utils/dist/asNumber.min.cjs"}
package/asNumber.min.mjs CHANGED
@@ -1,2 +1,2 @@
1
- function e(n,r=0){return typeof n=="number"?isFinite(n)?n:r:(n=Number(n),typeof n=="number"&&isFinite(n)?n:r)}export{e as asNumber};
1
+ import{a}from"./chunk-KLHNGJ4Y.min.mjs";import"./chunk-UOU6IP3S.min.mjs";export{a as asNumber};
2
2
  //# sourceMappingURL=asNumber.min.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/asNumber.ts"],"sourcesContent":["/**\n * Coerce `u` into a number if possible, otherwise just return 0.\n */\nexport function asNumber(u: unknown, defaultValue = 0): number {\n // If u is a valid number, return it.\n if (typeof u === \"number\") {\n return isFinite(u) ? u : defaultValue;\n }\n\n // Try to make into a number if not already a number.\n u = Number(u);\n\n // If u is a valid number, return it.\n if (typeof u === \"number\" && isFinite(u)) {\n return u;\n }\n\n // Return `defaultValue` for everything else. This is usually ok if want to\n // just ignore all other noise.\n return defaultValue;\n}\n"],"mappings":"AAGO,SAASA,EAASC,EAAYC,EAAe,EAAW,CAE7D,OAAI,OAAOD,GAAM,SACR,SAASA,CAAC,EAAIA,EAAIC,GAI3BD,EAAI,OAAOA,CAAC,EAGR,OAAOA,GAAM,UAAY,SAASA,CAAC,EAC9BA,EAKFC,EACT","names":["asNumber","u","defaultValue"]}
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/asNumber.mjs CHANGED
@@ -1,14 +1,7 @@
1
- // src/asNumber.ts
2
- function asNumber(u, defaultValue = 0) {
3
- if (typeof u === "number") {
4
- return isFinite(u) ? u : defaultValue;
5
- }
6
- u = Number(u);
7
- if (typeof u === "number" && isFinite(u)) {
8
- return u;
9
- }
10
- return defaultValue;
11
- }
1
+ import {
2
+ asNumber
3
+ } from "./chunk-QWCFN7ZM.mjs";
4
+ import "./chunk-M6PYQYOX.mjs";
12
5
  export {
13
6
  asNumber
14
7
  };
package/assert.cjs CHANGED
@@ -1,28 +1,6 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-ILGTU46T.cjs');
19
2
 
20
3
  // src/assert.ts
21
- var assert_exports = {};
22
- __export(assert_exports, {
23
- assert: () => assert
24
- });
25
- module.exports = __toCommonJS(assert_exports);
26
4
  function assert(t, errorMessage) {
27
5
  if (!t) {
28
6
  throw new Error(
@@ -30,7 +8,6 @@ function assert(t, errorMessage) {
30
8
  );
31
9
  }
32
10
  }
33
- // Annotate the CommonJS export names for ESM import in node:
34
- 0 && (module.exports = {
35
- assert
36
- });
11
+
12
+
13
+ exports.assert = assert;
package/assert.min.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var r=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var a=Object.getOwnPropertyNames;var o=Object.prototype.hasOwnProperty;var l=(e,s)=>{for(var n in s)r(e,n,{get:s[n],enumerable:!0})},d=(e,s,n,t)=>{if(s&&typeof s=="object"||typeof s=="function")for(let i of a(s))!o.call(e,i)&&i!==n&&r(e,i,{get:()=>s[i],enumerable:!(t=f(s,i))||t.enumerable});return e};var u=e=>d(r({},"__esModule",{value:!0}),e);var N={};l(N,{assert:()=>y});module.exports=u(N);function y(e,s){if(!e)throw new Error(s||`Assertion failed: ${JSON.stringify(e)} is falsy`)}0&&(module.exports={assert});
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-QNNJNLGK.min.cjs');function i(s,e){if(!s)throw new Error(e||`Assertion failed: ${JSON.stringify(s)} is falsy`)}exports.assert = i;
2
2
  //# sourceMappingURL=assert.min.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/assert.ts"],"sourcesContent":["/**\n * Type asserts that `t` is truthy. Throws an error with `errorMessage` if\n * `t` is falsy.\n */\nexport function assert<T>(\n t: T | null | undefined | \"\" | 0 | -0 | 0n | false | typeof NaN,\n errorMessage?: string,\n): asserts t is T {\n if (!t) {\n throw new Error(\n errorMessage || `Assertion failed: ${JSON.stringify(t)} is falsy`,\n );\n }\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,YAAAE,IAAA,eAAAC,EAAAH,GAIO,SAASE,EACdE,EACAC,EACgB,CAChB,GAAI,CAACD,EACH,MAAM,IAAI,MACRC,GAAgB,qBAAqB,KAAK,UAAUD,CAAC,CAAC,WACxD,CAEJ","names":["assert_exports","__export","assert","__toCommonJS","t","errorMessage"]}
1
+ {"version":3,"sources":["/Users/choksheaklau/src/ts-utils/dist/assert.min.cjs","../src/assert.ts"],"names":["assert","t","errorMessage"],"mappings":"AAAA,6GAAgC,SCIhBA,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CACgB,CAChB,EAAA,CAAI,CAACD,CAAAA,CACH,MAAM,IAAI,KAAA,CACRC,CAAAA,EAAgB,CAAA,kBAAA,EAAqB,IAAA,CAAK,SAAA,CAAUD,CAAC,CAAC,CAAA,SAAA,CACxD,CAEJ,CAAA,mBAAA","file":"/Users/choksheaklau/src/ts-utils/dist/assert.min.cjs","sourcesContent":[null,"/**\n * Type asserts that `t` is truthy. Throws an error with `errorMessage` if\n * `t` is falsy.\n */\nexport function assert<T>(\n t: T | null | undefined | \"\" | 0 | -0 | 0n | false | typeof NaN,\n errorMessage?: string,\n): asserts t is T {\n if (!t) {\n throw new Error(\n errorMessage || `Assertion failed: ${JSON.stringify(t)} is falsy`,\n );\n }\n}\n"]}
package/assert.min.mjs CHANGED
@@ -1,2 +1,2 @@
1
- function i(s,e){if(!s)throw new Error(e||`Assertion failed: ${JSON.stringify(s)} is falsy`)}export{i as assert};
1
+ import"./chunk-UOU6IP3S.min.mjs";function i(s,e){if(!s)throw new Error(e||`Assertion failed: ${JSON.stringify(s)} is falsy`)}export{i as assert};
2
2
  //# sourceMappingURL=assert.min.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/assert.ts"],"sourcesContent":["/**\n * Type asserts that `t` is truthy. Throws an error with `errorMessage` if\n * `t` is falsy.\n */\nexport function assert<T>(\n t: T | null | undefined | \"\" | 0 | -0 | 0n | false | typeof NaN,\n errorMessage?: string,\n): asserts t is T {\n if (!t) {\n throw new Error(\n errorMessage || `Assertion failed: ${JSON.stringify(t)} is falsy`,\n );\n }\n}\n"],"mappings":"AAIO,SAASA,EACdC,EACAC,EACgB,CAChB,GAAI,CAACD,EACH,MAAM,IAAI,MACRC,GAAgB,qBAAqB,KAAK,UAAUD,CAAC,CAAC,WACxD,CAEJ","names":["assert","t","errorMessage"]}
1
+ {"version":3,"sources":["../src/assert.ts"],"sourcesContent":["/**\n * Type asserts that `t` is truthy. Throws an error with `errorMessage` if\n * `t` is falsy.\n */\nexport function assert<T>(\n t: T | null | undefined | \"\" | 0 | -0 | 0n | false | typeof NaN,\n errorMessage?: string,\n): asserts t is T {\n if (!t) {\n throw new Error(\n errorMessage || `Assertion failed: ${JSON.stringify(t)} is falsy`,\n );\n }\n}\n"],"mappings":"iCAIO,SAASA,EACdC,EACAC,EACgB,CAChB,GAAI,CAACD,EACH,MAAM,IAAI,MACRC,GAAgB,qBAAqB,KAAK,UAAUD,CAAC,CAAC,WACxD,CAEJ","names":["assert","t","errorMessage"]}
package/assert.mjs CHANGED
@@ -1,3 +1,5 @@
1
+ import "./chunk-M6PYQYOX.mjs";
2
+
1
3
  // src/assert.ts
2
4
  function assert(t, errorMessage) {
3
5
  if (!t) {
package/base64Url.cjs CHANGED
@@ -1,29 +1,6 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-ILGTU46T.cjs');
19
2
 
20
3
  // src/base64Url.ts
21
- var base64Url_exports = {};
22
- __export(base64Url_exports, {
23
- base64ToBase64URL: () => base64ToBase64URL,
24
- base64UrlToBase64: () => base64UrlToBase64
25
- });
26
- module.exports = __toCommonJS(base64Url_exports);
27
4
  function base64ToBase64URL(base64) {
28
5
  return base64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
29
6
  }
@@ -33,8 +10,7 @@ function base64UrlToBase64(base64Url) {
33
10
  const padLength = (4 - base64.length % 4) % 4;
34
11
  return base64 + "=".repeat(padLength);
35
12
  }
36
- // Annotate the CommonJS export names for ESM import in node:
37
- 0 && (module.exports = {
38
- base64ToBase64URL,
39
- base64UrlToBase64
40
- });
13
+
14
+
15
+
16
+ exports.base64ToBase64URL = base64ToBase64URL; exports.base64UrlToBase64 = base64UrlToBase64;
package/base64Url.min.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var o=(e,r)=>{for(var t in r)a(e,t,{get:r[t],enumerable:!0})},i=(e,r,t,g)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of c(r))!p.call(e,n)&&n!==t&&a(e,n,{get:()=>r[n],enumerable:!(g=s(r,n))||g.enumerable});return e};var l=e=>i(a({},"__esModule",{value:!0}),e);var b={};o(b,{base64ToBase64URL:()=>u,base64UrlToBase64:()=>f});module.exports=l(b);function u(e){return e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function f(e){if(!e)return"";let r=e.replace(/-/g,"+").replace(/_/g,"/"),t=(4-r.length%4)%4;return r+"=".repeat(t)}0&&(module.exports={base64ToBase64URL,base64UrlToBase64});
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-QNNJNLGK.min.cjs');function n(e){return e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function a(e){if(!e)return"";let r=e.replace(/-/g,"+").replace(/_/g,"/"),t=(4-r.length%4)%4;return r+"=".repeat(t)}exports.base64ToBase64URL = n; exports.base64UrlToBase64 = a;
2
2
  //# sourceMappingURL=base64Url.min.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/base64Url.ts"],"sourcesContent":["/**\n * Convert a base64 string to a base64url string.\n */\nexport function base64ToBase64URL(base64: string): string {\n return base64.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\"); // Remove padding\n}\n\n/**\n * Convert a base64url string to a base64 string.\n */\nexport function base64UrlToBase64(base64Url: string): string {\n if (!base64Url) return \"\";\n\n // Replace URL-safe characters\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n\n // Calculate and add padding\n const padLength = (4 - (base64.length % 4)) % 4;\n return base64 + \"=\".repeat(padLength);\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uBAAAE,EAAA,sBAAAC,IAAA,eAAAC,EAAAJ,GAGO,SAASE,EAAkBG,EAAwB,CACxD,OAAOA,EAAO,QAAQ,MAAO,GAAG,EAAE,QAAQ,MAAO,GAAG,EAAE,QAAQ,MAAO,EAAE,CACzE,CAKO,SAASF,EAAkBG,EAA2B,CAC3D,GAAI,CAACA,EAAW,MAAO,GAGvB,IAAMD,EAASC,EAAU,QAAQ,KAAM,GAAG,EAAE,QAAQ,KAAM,GAAG,EAGvDC,GAAa,EAAKF,EAAO,OAAS,GAAM,EAC9C,OAAOA,EAAS,IAAI,OAAOE,CAAS,CACtC","names":["base64Url_exports","__export","base64ToBase64URL","base64UrlToBase64","__toCommonJS","base64","base64Url","padLength"]}
1
+ {"version":3,"sources":["/Users/choksheaklau/src/ts-utils/dist/base64Url.min.cjs","../src/base64Url.ts"],"names":["base64ToBase64URL","base64","base64UrlToBase64","base64Url","padLength"],"mappings":"AAAA,6GAAgC,SCGhBA,CAAAA,CAAkBC,CAAAA,CAAwB,CACxD,OAAOA,CAAAA,CAAO,OAAA,CAAQ,KAAA,CAAO,GAAG,CAAA,CAAE,OAAA,CAAQ,KAAA,CAAO,GAAG,CAAA,CAAE,OAAA,CAAQ,KAAA,CAAO,EAAE,CACzE,CAKO,SAASC,CAAAA,CAAkBC,CAAAA,CAA2B,CAC3D,EAAA,CAAI,CAACA,CAAAA,CAAW,MAAO,EAAA,CAGvB,IAAMF,CAAAA,CAASE,CAAAA,CAAU,OAAA,CAAQ,IAAA,CAAM,GAAG,CAAA,CAAE,OAAA,CAAQ,IAAA,CAAM,GAAG,CAAA,CAGvDC,CAAAA,CAAAA,CAAa,CAAA,CAAKH,CAAAA,CAAO,MAAA,CAAS,CAAA,CAAA,CAAM,CAAA,CAC9C,OAAOA,CAAAA,CAAS,GAAA,CAAI,MAAA,CAAOG,CAAS,CACtC,CAAA,6DAAA","file":"/Users/choksheaklau/src/ts-utils/dist/base64Url.min.cjs","sourcesContent":[null,"/**\n * Convert a base64 string to a base64url string.\n */\nexport function base64ToBase64URL(base64: string): string {\n return base64.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\"); // Remove padding\n}\n\n/**\n * Convert a base64url string to a base64 string.\n */\nexport function base64UrlToBase64(base64Url: string): string {\n if (!base64Url) return \"\";\n\n // Replace URL-safe characters\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n\n // Calculate and add padding\n const padLength = (4 - (base64.length % 4)) % 4;\n return base64 + \"=\".repeat(padLength);\n}\n"]}
package/base64Url.min.mjs CHANGED
@@ -1,2 +1,2 @@
1
- function n(e){return e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function a(e){if(!e)return"";let r=e.replace(/-/g,"+").replace(/_/g,"/"),t=(4-r.length%4)%4;return r+"=".repeat(t)}export{n as base64ToBase64URL,a as base64UrlToBase64};
1
+ import"./chunk-UOU6IP3S.min.mjs";function n(e){return e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function a(e){if(!e)return"";let r=e.replace(/-/g,"+").replace(/_/g,"/"),t=(4-r.length%4)%4;return r+"=".repeat(t)}export{n as base64ToBase64URL,a as base64UrlToBase64};
2
2
  //# sourceMappingURL=base64Url.min.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/base64Url.ts"],"sourcesContent":["/**\n * Convert a base64 string to a base64url string.\n */\nexport function base64ToBase64URL(base64: string): string {\n return base64.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\"); // Remove padding\n}\n\n/**\n * Convert a base64url string to a base64 string.\n */\nexport function base64UrlToBase64(base64Url: string): string {\n if (!base64Url) return \"\";\n\n // Replace URL-safe characters\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n\n // Calculate and add padding\n const padLength = (4 - (base64.length % 4)) % 4;\n return base64 + \"=\".repeat(padLength);\n}\n"],"mappings":"AAGO,SAASA,EAAkBC,EAAwB,CACxD,OAAOA,EAAO,QAAQ,MAAO,GAAG,EAAE,QAAQ,MAAO,GAAG,EAAE,QAAQ,MAAO,EAAE,CACzE,CAKO,SAASC,EAAkBC,EAA2B,CAC3D,GAAI,CAACA,EAAW,MAAO,GAGvB,IAAMF,EAASE,EAAU,QAAQ,KAAM,GAAG,EAAE,QAAQ,KAAM,GAAG,EAGvDC,GAAa,EAAKH,EAAO,OAAS,GAAM,EAC9C,OAAOA,EAAS,IAAI,OAAOG,CAAS,CACtC","names":["base64ToBase64URL","base64","base64UrlToBase64","base64Url","padLength"]}
1
+ {"version":3,"sources":["../src/base64Url.ts"],"sourcesContent":["/**\n * Convert a base64 string to a base64url string.\n */\nexport function base64ToBase64URL(base64: string): string {\n return base64.replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=+$/, \"\"); // Remove padding\n}\n\n/**\n * Convert a base64url string to a base64 string.\n */\nexport function base64UrlToBase64(base64Url: string): string {\n if (!base64Url) return \"\";\n\n // Replace URL-safe characters\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n\n // Calculate and add padding\n const padLength = (4 - (base64.length % 4)) % 4;\n return base64 + \"=\".repeat(padLength);\n}\n"],"mappings":"iCAGO,SAASA,EAAkBC,EAAwB,CACxD,OAAOA,EAAO,QAAQ,MAAO,GAAG,EAAE,QAAQ,MAAO,GAAG,EAAE,QAAQ,MAAO,EAAE,CACzE,CAKO,SAASC,EAAkBC,EAA2B,CAC3D,GAAI,CAACA,EAAW,MAAO,GAGvB,IAAMF,EAASE,EAAU,QAAQ,KAAM,GAAG,EAAE,QAAQ,KAAM,GAAG,EAGvDC,GAAa,EAAKH,EAAO,OAAS,GAAM,EAC9C,OAAOA,EAAS,IAAI,OAAOG,CAAS,CACtC","names":["base64ToBase64URL","base64","base64UrlToBase64","base64Url","padLength"]}
package/base64Url.mjs CHANGED
@@ -1,3 +1,5 @@
1
+ import "./chunk-M6PYQYOX.mjs";
2
+
1
3
  // src/base64Url.ts
2
4
  function base64ToBase64URL(base64) {
3
5
  return base64.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
package/capLength.cjs CHANGED
@@ -1,80 +1,16 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/capLength.ts
21
- var capLength_exports = {};
22
- __export(capLength_exports, {
23
- capLength: () => capLength
24
- });
25
- module.exports = __toCommonJS(capLength_exports);
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
26
2
 
27
- // src/toReadableString.ts
28
- function toReadableString(u, options) {
29
- if (typeof u === "string") {
30
- return u;
31
- }
32
- if (u instanceof Error) {
33
- const error = u;
34
- let result = "";
35
- const errorName = error.name || "Error";
36
- const errorMessage = error.message || "An error occurred with no message provided.";
37
- result += `${errorName}: ${errorMessage}`;
38
- if (options?.includeStack && error.stack) {
39
- const stack = error.stack.replace(new RegExp(`^${errorName}:.*\\n?`), "").trim();
40
- if (stack) {
41
- result += `
42
- Stack Trace:
43
- ${stack}`;
44
- }
45
- }
46
- if (options?.includeErrorProps) {
47
- const customProps = error;
48
- const additionalInfo = Object.keys(customProps).filter(
49
- (key) => key !== "name" && key !== "message" && key !== "stack" && typeof customProps[key] !== "function" && typeof customProps[key] !== "object"
50
- ).map((key) => `
51
- - ${key}: ${customProps[key]}`);
52
- if (additionalInfo.length > 0) {
53
- result += `
54
- Additional Data:${additionalInfo.join("")}`;
55
- }
56
- }
57
- return result;
58
- }
59
- if (u !== null && typeof u === "object" && u.toString !== Object.prototype.toString) {
60
- return u.toString();
61
- }
62
- try {
63
- return JSON.stringify(u);
64
- } catch {
65
- return String(u);
66
- }
67
- }
3
+ var _chunkLDVEXETIcjs = require('./chunk-LDVEXETI.cjs');
4
+ require('./chunk-ILGTU46T.cjs');
68
5
 
69
6
  // src/capLength.ts
70
7
  function capLength(u, maxLength = 400) {
71
- const s = toReadableString(u);
8
+ const s = _chunkLDVEXETIcjs.toReadableString.call(void 0, u);
72
9
  if (s.length <= maxLength) {
73
10
  return s;
74
11
  }
75
12
  return s.slice(0, maxLength) + ` ... (${s.length - maxLength} more)`;
76
13
  }
77
- // Annotate the CommonJS export names for ESM import in node:
78
- 0 && (module.exports = {
79
- capLength
80
- });
14
+
15
+
16
+ exports.capLength = capLength;
package/capLength.min.cjs CHANGED
@@ -1,6 +1,2 @@
1
- "use strict";var s=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var u=(r,t)=>{for(var n in t)s(r,n,{get:t[n],enumerable:!0})},m=(r,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of p(t))!d.call(r,e)&&e!==n&&s(r,e,{get:()=>t[e],enumerable:!(i=g(t,e))||i.enumerable});return r};var S=r=>m(s({},"__esModule",{value:!0}),r);var $={};u($,{capLength:()=>b});module.exports=S($);function f(r,t){if(typeof r=="string")return r;if(r instanceof Error){let n=r,i="",e=n.name||"Error",l=n.message||"An error occurred with no message provided.";if(i+=`${e}: ${l}`,t?.includeStack&&n.stack){let c=n.stack.replace(new RegExp(`^${e}:.*\\n?`),"").trim();c&&(i+=`
2
- Stack Trace:
3
- ${c}`)}if(t?.includeErrorProps){let c=n,a=Object.keys(c).filter(o=>o!=="name"&&o!=="message"&&o!=="stack"&&typeof c[o]!="function"&&typeof c[o]!="object").map(o=>`
4
- - ${o}: ${c[o]}`);a.length>0&&(i+=`
5
- Additional Data:${a.join("")}`)}return i}if(r!==null&&typeof r=="object"&&r.toString!==Object.prototype.toString)return r.toString();try{return JSON.stringify(r)}catch{return String(r)}}function b(r,t=400){let n=f(r);return n.length<=t?n:n.slice(0,t)+` ... (${n.length-t} more)`}0&&(module.exports={capLength});
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkEDJJUP4Kmincjs = require('./chunk-EDJJUP4K.min.cjs');require('./chunk-QNNJNLGK.min.cjs');function i(e,r=400){let n=_chunkEDJJUP4Kmincjs.a.call(void 0, e);return n.length<=r?n:n.slice(0,r)+` ... (${n.length-r} more)`}exports.capLength = i;
6
2
  //# sourceMappingURL=capLength.min.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/capLength.ts","../src/toReadableString.ts"],"sourcesContent":["import { toReadableString } from \"./toReadableString\";\n\nexport function capLength(u: unknown, maxLength = 400): string {\n const s = toReadableString(u);\n\n if (s.length <= maxLength) {\n return s;\n }\n\n return s.slice(0, maxLength) + ` ... (${s.length - maxLength} more)`;\n}\n","/**\n * Make the given argument of unknown type into something human-readable.\n * For Error objects, you can specify options to make the string more verbose.\n */\nexport function toReadableString(\n u: unknown,\n options?: { includeStack?: boolean; includeErrorProps?: boolean },\n): string {\n if (typeof u === \"string\") {\n return u;\n }\n\n if (u instanceof Error) {\n const error = u as Error;\n let result = \"\";\n\n // Always include the name and message\n const errorName = error.name || \"Error\";\n const errorMessage =\n error.message || \"An error occurred with no message provided.\";\n\n result += `${errorName}: ${errorMessage}`;\n\n // Optionally include the stack trace\n if (options?.includeStack && error.stack) {\n // Clean up the stack trace to start on a new line,\n // removing potential duplicate header lines if the browser adds them.\n const stack = error.stack\n // Remove the first line if it duplicates the name/message\n .replace(new RegExp(`^${errorName}:.*\\\\n?`), \"\")\n .trim();\n\n if (stack) {\n result += `\\nStack Trace:\\n${stack}`;\n }\n }\n\n // Add any potential custom error properties (e.g., HTTP status code)\n if (options?.includeErrorProps) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const customProps: { [key: string]: unknown } = error as any;\n\n const additionalInfo = Object.keys(customProps)\n .filter(\n (key) =>\n key !== \"name\" &&\n key !== \"message\" &&\n key !== \"stack\" &&\n typeof customProps[key] !== \"function\" &&\n typeof customProps[key] !== \"object\",\n )\n .map((key) => `\\n- ${key}: ${customProps[key]}`);\n\n if (additionalInfo.length > 0) {\n result += `\\nAdditional Data:${additionalInfo.join(\"\")}`;\n }\n }\n\n return result;\n }\n\n // If the object has a custom toString(), then use it.\n if (\n u !== null &&\n typeof u === \"object\" &&\n u.toString !== Object.prototype.toString\n ) {\n return u.toString();\n }\n\n try {\n // Attempt to JSON stringify the object for inspection.\n return JSON.stringify(u);\n } catch {\n // Fallback if the object cannot be stringified (e.g., circular references).\n return String(u);\n }\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,IAAA,eAAAC,EAAAH,GCIO,SAASI,EACdC,EACAC,EACQ,CACR,GAAI,OAAOD,GAAM,SACf,OAAOA,EAGT,GAAIA,aAAa,MAAO,CACtB,IAAME,EAAQF,EACVG,EAAS,GAGPC,EAAYF,EAAM,MAAQ,QAC1BG,EACJH,EAAM,SAAW,8CAKnB,GAHAC,GAAU,GAAGC,CAAS,KAAKC,CAAY,GAGnCJ,GAAS,cAAgBC,EAAM,MAAO,CAGxC,IAAMI,EAAQJ,EAAM,MAEjB,QAAQ,IAAI,OAAO,IAAIE,CAAS,SAAS,EAAG,EAAE,EAC9C,KAAK,EAEJE,IACFH,GAAU;AAAA;AAAA,EAAmBG,CAAK,GAEtC,CAGA,GAAIL,GAAS,kBAAmB,CAE9B,IAAMM,EAA0CL,EAE1CM,EAAiB,OAAO,KAAKD,CAAW,EAC3C,OACEE,GACCA,IAAQ,QACRA,IAAQ,WACRA,IAAQ,SACR,OAAOF,EAAYE,CAAG,GAAM,YAC5B,OAAOF,EAAYE,CAAG,GAAM,QAChC,EACC,IAAKA,GAAQ;AAAA,IAAOA,CAAG,KAAKF,EAAYE,CAAG,CAAC,EAAE,EAE7CD,EAAe,OAAS,IAC1BL,GAAU;AAAA,kBAAqBK,EAAe,KAAK,EAAE,CAAC,GAE1D,CAEA,OAAOL,CACT,CAGA,GACEH,IAAM,MACN,OAAOA,GAAM,UACbA,EAAE,WAAa,OAAO,UAAU,SAEhC,OAAOA,EAAE,SAAS,EAGpB,GAAI,CAEF,OAAO,KAAK,UAAUA,CAAC,CACzB,MAAQ,CAEN,OAAO,OAAOA,CAAC,CACjB,CACF,CD3EO,SAASU,EAAUC,EAAYC,EAAY,IAAa,CAC7D,IAAMC,EAAIC,EAAiBH,CAAC,EAE5B,OAAIE,EAAE,QAAUD,EACPC,EAGFA,EAAE,MAAM,EAAGD,CAAS,EAAI,SAASC,EAAE,OAASD,CAAS,QAC9D","names":["capLength_exports","__export","capLength","__toCommonJS","toReadableString","u","options","error","result","errorName","errorMessage","stack","customProps","additionalInfo","key","capLength","u","maxLength","s","toReadableString"]}
1
+ {"version":3,"sources":["/Users/choksheaklau/src/ts-utils/dist/capLength.min.cjs","../src/capLength.ts"],"names":["capLength","u","maxLength","s","toReadableString"],"mappings":"AAAA,wIAA4C,oCAAiC,SCE7DA,CAAAA,CAAUC,CAAAA,CAAYC,CAAAA,CAAY,GAAA,CAAa,CAC7D,IAAMC,CAAAA,CAAIC,oCAAAA,CAAkB,CAAA,CAE5B,OAAID,CAAAA,CAAE,MAAA,EAAUD,CAAAA,CACPC,CAAAA,CAGFA,CAAAA,CAAE,KAAA,CAAM,CAAA,CAAGD,CAAS,CAAA,CAAI,CAAA,MAAA,EAASC,CAAAA,CAAE,MAAA,CAASD,CAAS,CAAA,MAAA,CAC9D,CAAA,sBAAA","file":"/Users/choksheaklau/src/ts-utils/dist/capLength.min.cjs","sourcesContent":[null,"import { toReadableString } from \"./toReadableString\";\n\nexport function capLength(u: unknown, maxLength = 400): string {\n const s = toReadableString(u);\n\n if (s.length <= maxLength) {\n return s;\n }\n\n return s.slice(0, maxLength) + ` ... (${s.length - maxLength} more)`;\n}\n"]}
package/capLength.min.mjs CHANGED
@@ -1,6 +1,2 @@
1
- function a(r,o){if(typeof r=="string")return r;if(r instanceof Error){let t=r,i="",c=t.name||"Error",f=t.message||"An error occurred with no message provided.";if(i+=`${c}: ${f}`,o?.includeStack&&t.stack){let e=t.stack.replace(new RegExp(`^${c}:.*\\n?`),"").trim();e&&(i+=`
2
- Stack Trace:
3
- ${e}`)}if(o?.includeErrorProps){let e=t,s=Object.keys(e).filter(n=>n!=="name"&&n!=="message"&&n!=="stack"&&typeof e[n]!="function"&&typeof e[n]!="object").map(n=>`
4
- - ${n}: ${e[n]}`);s.length>0&&(i+=`
5
- Additional Data:${s.join("")}`)}return i}if(r!==null&&typeof r=="object"&&r.toString!==Object.prototype.toString)return r.toString();try{return JSON.stringify(r)}catch{return String(r)}}function p(r,o=400){let t=a(r);return t.length<=o?t:t.slice(0,o)+` ... (${t.length-o} more)`}export{p as capLength};
1
+ import{a as t}from"./chunk-FZZRSHSH.min.mjs";import"./chunk-UOU6IP3S.min.mjs";function i(e,r=400){let n=t(e);return n.length<=r?n:n.slice(0,r)+` ... (${n.length-r} more)`}export{i as capLength};
6
2
  //# sourceMappingURL=capLength.min.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/toReadableString.ts","../src/capLength.ts"],"sourcesContent":["/**\n * Make the given argument of unknown type into something human-readable.\n * For Error objects, you can specify options to make the string more verbose.\n */\nexport function toReadableString(\n u: unknown,\n options?: { includeStack?: boolean; includeErrorProps?: boolean },\n): string {\n if (typeof u === \"string\") {\n return u;\n }\n\n if (u instanceof Error) {\n const error = u as Error;\n let result = \"\";\n\n // Always include the name and message\n const errorName = error.name || \"Error\";\n const errorMessage =\n error.message || \"An error occurred with no message provided.\";\n\n result += `${errorName}: ${errorMessage}`;\n\n // Optionally include the stack trace\n if (options?.includeStack && error.stack) {\n // Clean up the stack trace to start on a new line,\n // removing potential duplicate header lines if the browser adds them.\n const stack = error.stack\n // Remove the first line if it duplicates the name/message\n .replace(new RegExp(`^${errorName}:.*\\\\n?`), \"\")\n .trim();\n\n if (stack) {\n result += `\\nStack Trace:\\n${stack}`;\n }\n }\n\n // Add any potential custom error properties (e.g., HTTP status code)\n if (options?.includeErrorProps) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const customProps: { [key: string]: unknown } = error as any;\n\n const additionalInfo = Object.keys(customProps)\n .filter(\n (key) =>\n key !== \"name\" &&\n key !== \"message\" &&\n key !== \"stack\" &&\n typeof customProps[key] !== \"function\" &&\n typeof customProps[key] !== \"object\",\n )\n .map((key) => `\\n- ${key}: ${customProps[key]}`);\n\n if (additionalInfo.length > 0) {\n result += `\\nAdditional Data:${additionalInfo.join(\"\")}`;\n }\n }\n\n return result;\n }\n\n // If the object has a custom toString(), then use it.\n if (\n u !== null &&\n typeof u === \"object\" &&\n u.toString !== Object.prototype.toString\n ) {\n return u.toString();\n }\n\n try {\n // Attempt to JSON stringify the object for inspection.\n return JSON.stringify(u);\n } catch {\n // Fallback if the object cannot be stringified (e.g., circular references).\n return String(u);\n }\n}\n","import { toReadableString } from \"./toReadableString\";\n\nexport function capLength(u: unknown, maxLength = 400): string {\n const s = toReadableString(u);\n\n if (s.length <= maxLength) {\n return s;\n }\n\n return s.slice(0, maxLength) + ` ... (${s.length - maxLength} more)`;\n}\n"],"mappings":"AAIO,SAASA,EACdC,EACAC,EACQ,CACR,GAAI,OAAOD,GAAM,SACf,OAAOA,EAGT,GAAIA,aAAa,MAAO,CACtB,IAAME,EAAQF,EACVG,EAAS,GAGPC,EAAYF,EAAM,MAAQ,QAC1BG,EACJH,EAAM,SAAW,8CAKnB,GAHAC,GAAU,GAAGC,CAAS,KAAKC,CAAY,GAGnCJ,GAAS,cAAgBC,EAAM,MAAO,CAGxC,IAAMI,EAAQJ,EAAM,MAEjB,QAAQ,IAAI,OAAO,IAAIE,CAAS,SAAS,EAAG,EAAE,EAC9C,KAAK,EAEJE,IACFH,GAAU;AAAA;AAAA,EAAmBG,CAAK,GAEtC,CAGA,GAAIL,GAAS,kBAAmB,CAE9B,IAAMM,EAA0CL,EAE1CM,EAAiB,OAAO,KAAKD,CAAW,EAC3C,OACEE,GACCA,IAAQ,QACRA,IAAQ,WACRA,IAAQ,SACR,OAAOF,EAAYE,CAAG,GAAM,YAC5B,OAAOF,EAAYE,CAAG,GAAM,QAChC,EACC,IAAKA,GAAQ;AAAA,IAAOA,CAAG,KAAKF,EAAYE,CAAG,CAAC,EAAE,EAE7CD,EAAe,OAAS,IAC1BL,GAAU;AAAA,kBAAqBK,EAAe,KAAK,EAAE,CAAC,GAE1D,CAEA,OAAOL,CACT,CAGA,GACEH,IAAM,MACN,OAAOA,GAAM,UACbA,EAAE,WAAa,OAAO,UAAU,SAEhC,OAAOA,EAAE,SAAS,EAGpB,GAAI,CAEF,OAAO,KAAK,UAAUA,CAAC,CACzB,MAAQ,CAEN,OAAO,OAAOA,CAAC,CACjB,CACF,CC3EO,SAASU,EAAUC,EAAYC,EAAY,IAAa,CAC7D,IAAMC,EAAIC,EAAiBH,CAAC,EAE5B,OAAIE,EAAE,QAAUD,EACPC,EAGFA,EAAE,MAAM,EAAGD,CAAS,EAAI,SAASC,EAAE,OAASD,CAAS,QAC9D","names":["toReadableString","u","options","error","result","errorName","errorMessage","stack","customProps","additionalInfo","key","capLength","u","maxLength","s","toReadableString"]}
1
+ {"version":3,"sources":["../src/capLength.ts"],"sourcesContent":["import { toReadableString } from \"./toReadableString\";\n\nexport function capLength(u: unknown, maxLength = 400): string {\n const s = toReadableString(u);\n\n if (s.length <= maxLength) {\n return s;\n }\n\n return s.slice(0, maxLength) + ` ... (${s.length - maxLength} more)`;\n}\n"],"mappings":"8EAEO,SAASA,EAAUC,EAAYC,EAAY,IAAa,CAC7D,IAAMC,EAAIC,EAAiBH,CAAC,EAE5B,OAAIE,EAAE,QAAUD,EACPC,EAGFA,EAAE,MAAM,EAAGD,CAAS,EAAI,SAASC,EAAE,OAASD,CAAS,QAC9D","names":["capLength","u","maxLength","s","toReadableString"]}
package/capLength.mjs CHANGED
@@ -1,44 +1,7 @@
1
- // src/toReadableString.ts
2
- function toReadableString(u, options) {
3
- if (typeof u === "string") {
4
- return u;
5
- }
6
- if (u instanceof Error) {
7
- const error = u;
8
- let result = "";
9
- const errorName = error.name || "Error";
10
- const errorMessage = error.message || "An error occurred with no message provided.";
11
- result += `${errorName}: ${errorMessage}`;
12
- if (options?.includeStack && error.stack) {
13
- const stack = error.stack.replace(new RegExp(`^${errorName}:.*\\n?`), "").trim();
14
- if (stack) {
15
- result += `
16
- Stack Trace:
17
- ${stack}`;
18
- }
19
- }
20
- if (options?.includeErrorProps) {
21
- const customProps = error;
22
- const additionalInfo = Object.keys(customProps).filter(
23
- (key) => key !== "name" && key !== "message" && key !== "stack" && typeof customProps[key] !== "function" && typeof customProps[key] !== "object"
24
- ).map((key) => `
25
- - ${key}: ${customProps[key]}`);
26
- if (additionalInfo.length > 0) {
27
- result += `
28
- Additional Data:${additionalInfo.join("")}`;
29
- }
30
- }
31
- return result;
32
- }
33
- if (u !== null && typeof u === "object" && u.toString !== Object.prototype.toString) {
34
- return u.toString();
35
- }
36
- try {
37
- return JSON.stringify(u);
38
- } catch {
39
- return String(u);
40
- }
41
- }
1
+ import {
2
+ toReadableString
3
+ } from "./chunk-KMNTU3DJ.mjs";
4
+ import "./chunk-M6PYQYOX.mjs";
42
5
 
43
6
  // src/capLength.ts
44
7
  function capLength(u, maxLength = 400) {
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } async function _asyncOptionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = await fn(value); } else if (op === 'call' || op === 'optionalCall') { value = await fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunk27MBP3ESmincjs = require('./chunk-27MBP3ES.min.cjs');var _chunkGAP2HS5Mmincjs = require('./chunk-GAP2HS5M.min.cjs');var _chunkQNNJNLGKmincjs = require('./chunk-QNNJNLGK.min.cjs');function E(r){Object.assign(S,r)}function M(r){if(!(!r||typeof r!="object"||typeof r.key!="string"||r.value===void 0||typeof r.storedMs!="number"||typeof r.expiryMs!="number"||Date.now()>=r.expiryMs))return r}function f(r,i){return r.onerror=c=>{i(c)},r}function P(r,i){let c,g=_nullishCoalesce(_optionalChain([i, 'optionalAccess', _ => _.dbVersion]), () => (S.dbVersion)),v=_nullishCoalesce(_optionalChain([i, 'optionalAccess', _2 => _2.storeName]), () => (S.storeName)),b=_optionalChain([i, 'optionalAccess', _3 => _3.defaultExpiryMs])?_chunk27MBP3ESmincjs.e.call(void 0, i.defaultExpiryMs):S.expiryMs,p=_optionalChain([i, 'optionalAccess', _4 => _4.gcIntervalMs])?_chunk27MBP3ESmincjs.e.call(void 0, i.gcIntervalMs):S.gcIntervalMs,T=`__kvStore:lastGcMs:${r}:v${g}:${v}`;async function D(){return c||(c=await new Promise((e,t)=>{let n=f(indexedDB.open(r,g),t);n.onupgradeneeded=o=>{o.target.result.createObjectStore(v,{keyPath:"key"}).createIndex("key","key",{unique:!0})},n.onsuccess=o=>{let a=o.target.result;e(a)}})),c}async function y(e,t){let n=await D();return await new Promise((o,a)=>{let d=f(n.transaction(v,e),a);d.onabort=l=>{a(l)};let u=d.objectStore(v);t(u,o,a)})}let s={dbName:r,dbVersion:g,storeName:v,defaultExpiryMs:b,gcIntervalMs:p,gcMsStorageKey:T,async set(e,t,n){let o=Date.now(),a={key:e,value:t,storedMs:o,expiryMs:o+_chunk27MBP3ESmincjs.e.call(void 0, _nullishCoalesce(n, () => (b)))};return await y("readwrite",(d,u,l)=>{let x=f(d.put(a),l);x.onsuccess=()=>{u(t),s.gc()}})},async delete(e){return await y("readwrite",(t,n,o)=>{if(t.transaction.oncomplete=()=>{n()},typeof e=="string")f(t.delete(e),o);else for(let a of e)f(t.delete(a),o)})},async getStoredObject(e){let t=await y("readonly",(n,o,a)=>{let d=f(n.get(e),a);d.onsuccess=()=>{o(d.result)}});if(t)try{let n=M(t);if(!n){await s.delete(e),s.gc();return}return n}catch(n){console.error(`Invalid kv value: ${e}=${JSON.stringify(t)}:`,n),await s.delete(e),s.gc();return}},async get(e){returnawait _asyncOptionalChain([(await s.getStoredObject(e)), 'optionalAccess', async _5 => _5.value])},async forEach(e){await y("readonly",(t,n,o)=>{let a=f(t.openCursor(),o);a.onsuccess=async d=>{let u=d.target.result;if(u){if(u.key){let l=M(u.value);l!==void 0&&await e(String(u.key),l.value,l.expiryMs,l.storedMs)}u.continue()}else n()}})},async size(){let e=0;return await s.forEach(()=>{e++}),e},async clear(){await y("readwrite",(e,t,n)=>{let o=f(e.clear(),n);o.onsuccess=()=>{t()}})},async asMap(){let e=new Map;return await s.forEach((t,n,o,a)=>{e.set(t,{value:n,expiryMs:o,storedMs:a})}),e},getLastGcMs(){let e=localStorage.getItem(T);if(!e)return 0;let t=Number(e);return isNaN(t)?0:t},setLastGcMs(e){localStorage.setItem(T,String(e))},async gc(){let e=s.getLastGcMs();if(!e){s.setLastGcMs(Date.now());return}Date.now()<e+p||await s.gcNow()},async gcNow(){console.log(`Starting kvStore GC on ${r} v${g}...`),s.setLastGcMs(Date.now());let e=[];await s.forEach(async(t,n,o)=>{(n===void 0||Date.now()>=o)&&e.push(t)}),e.length&&await s.delete(e),console.log(`Finished kvStore GC on ${r} v${g} - deleted ${e.length} keys`),s.setLastGcMs(Date.now())},asStorageAdapter(){return s}};return s}function G(r,i,c=K){let g=i&&_chunk27MBP3ESmincjs.e.call(void 0, i);return{key:r,defaultExpiryMs:g,store:c,async set(b,p){await c.set(r,b,_nullishCoalesce(p, () => (g)))},async getStoredObject(){return await c.getStoredObject(r)},async get(){return await c.get(r)},async delete(){await c.delete(r)}}}var S,K,j= exports.f =_chunkQNNJNLGKmincjs.a.call(void 0, ()=>{_chunk27MBP3ESmincjs.i.call(void 0, );S= exports.a ={dbName:"KVStore",dbVersion:1,storeName:"kvStore",expiryMs:864e5*30,gcIntervalMs:864e5};K= exports.d =P(S.dbName)});exports.a = S; exports.b = E; exports.c = P; exports.d = K; exports.e = G; exports.f = j;
2
+ //# sourceMappingURL=chunk-22JDWCOS.min.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/choksheaklau/src/ts-utils/dist/chunk-22JDWCOS.min.cjs","../src/kvStore.ts"],"names":["configureKvStore","config","KvStoreConfig","validateStoredObject","obj","withOnError","request","reject","event","createKvStore","dbName","options","db","dbVersion","storeName","defaultExpiryMs","durationOrMsToMs","gcIntervalMs","gcMsStorageKey"],"mappings":"AAAA,2wCAAmD,+DAA6C,+DAA6C,SCsD7HA,CAAAA,CAAiBC,CAAAA,CAAgC,CAC/D,MAAA,CAAO,MAAA,CAAOC,CAAAA,CAAeD,CAAM,CACrC,CAYA,SAASE,CAAAA,CACPC,CAAAA,CAC+B,CAC/B,EAAA,CACE,CAAA,CAAA,CAACA,CAAAA,EACD,OAAOA,CAAAA,EAAQ,QAAA,EACf,OAAOA,CAAAA,CAAI,GAAA,EAAQ,QAAA,EACnBA,CAAAA,CAAI,KAAA,GAAU,KAAA,CAAA,EACd,OAAOA,CAAAA,CAAI,QAAA,EAAa,QAAA,EACxB,OAAOA,CAAAA,CAAI,QAAA,EAAa,QAAA,EACxB,IAAA,CAAK,GAAA,CAAI,CAAA,EAAKA,CAAAA,CAAI,QAAA,CAAA,CAKpB,OAAOA,CACT,CAGA,SAASC,CAAAA,CACPC,CAAAA,CACAC,CAAAA,CACG,CACH,OAAAD,CAAAA,CAAQ,OAAA,CAAWE,CAAAA,EAAU,CAC3BD,CAAAA,CAAOC,CAAK,CACd,CAAA,CAEOF,CACT,CAMO,SAASG,CAAAA,CACdC,CAAAA,CACAC,CAAAA,CAMA,CAEA,IAAIC,CAAAA,CAEEC,CAAAA,kCAAYF,CAAAA,2BAAS,WAAA,SAAaT,CAAAA,CAAc,WAAA,CAChDY,CAAAA,kCAAYH,CAAAA,6BAAS,WAAA,SAAaT,CAAAA,CAAc,WAAA,CAEhDa,CAAAA,iBAAkBJ,CAAAA,6BAAS,iBAAA,CAC7BK,oCAAAA,CAAiBL,CAAQ,eAAe,CAAA,CACxCT,CAAAA,CAAc,QAAA,CAEZe,CAAAA,iBAAeN,CAAAA,6BAAS,cAAA,CAC1BK,oCAAAA,CAAiBL,CAAQ,YAAY,CAAA,CACrCT,CAAAA,CAAc,YAAA,CAEZgB,CAAAA,CAAiB,CAAA,mBAAA,EAAsBR,CAAM,CAAA,EAAA,EAAKG,CAAS,CAAA,CAAA,EAAIC,CAAS,CAAA,CAAA","file":"/Users/choksheaklau/src/ts-utils/dist/chunk-22JDWCOS.min.cjs","sourcesContent":[null,"/**\n * Indexed DB key-value store with support for auto-expirations.\n *\n * Why use this?\n * 1. Extremely simple interface to use indexed DBs.\n * 2. Auto-expirations with GC frees you from worrying about data clean-up.\n * 3. Any serializable data type can be stored (except undefined).\n *\n * How to use?\n * Just use the `kvStore` global constant like the local storage, but with\n * async interface functions as required by indexed DB.\n *\n * Why not use the indexed DB directly?\n * It will require you to write a lot of code to reinvent the wheel.\n */\n\nimport { Duration, durationOrMsToMs } from \"./duration\";\nimport {\n FullStorageAdapter,\n StorageAdapter,\n StoredObject,\n} from \"./storageAdapter\";\nimport { MS_PER_DAY } from \"./timeConstants\";\n\n/** Global defaults can be updated directly. */\nexport const KvStoreConfig = {\n /**\n * Name of the DB in the indexed DB.\n * Updating the DB name will cause all old entries to be gone.\n */\n dbName: \"KVStore\",\n\n /**\n * Version of the DB schema. Most likely you will never want to change this.\n * Updating the version will cause all old entries to be gone.\n */\n dbVersion: 1,\n\n /**\n * Name of the store within the indexed DB. Each DB can have multiple stores.\n * In practice, it doesn't matter what you name this to be.\n */\n storeName: \"kvStore\",\n\n /** 30 days in ms. */\n expiryMs: MS_PER_DAY * 30,\n\n /** Do GC once per day. */\n gcIntervalMs: MS_PER_DAY,\n};\n\nexport type KvStoreConfig = typeof KvStoreConfig;\n\n/** Convenience function to update global defaults. */\nexport function configureKvStore(config: Partial<KvStoreConfig>) {\n Object.assign(KvStoreConfig, config);\n}\n\n/** Type to represent a full object with metadata stored in the store. */\nexport type KvStoredObject<T> = StoredObject<T> & {\n // The key is required by the ObjectStore.\n key: string;\n};\n\n/**\n * Parse a stored value string. Returns undefined if invalid or expired.\n * Throws an error if the string cannot be parsed as JSON.\n */\nfunction validateStoredObject<T>(\n obj: KvStoredObject<T>,\n): KvStoredObject<T> | undefined {\n if (\n !obj ||\n typeof obj !== \"object\" ||\n typeof obj.key !== \"string\" ||\n obj.value === undefined ||\n typeof obj.storedMs !== \"number\" ||\n typeof obj.expiryMs !== \"number\" ||\n Date.now() >= obj.expiryMs\n ) {\n return undefined;\n }\n\n return obj;\n}\n\n/** Add an `onerror` handler to the request. */\nfunction withOnError<T extends IDBRequest | IDBTransaction>(\n request: T,\n reject: (reason?: unknown) => void,\n): T {\n request.onerror = (event) => {\n reject(event);\n };\n\n return request;\n}\n\n/**\n * You can create multiple KvStores if you want, but most likely you will only\n * need to use the default `kvStore` instance.\n */\nexport function createKvStore(\n dbName: string,\n options?: {\n dbVersion?: number;\n storeName?: string;\n defaultExpiryMs?: number | Duration;\n gcIntervalMs?: number | Duration;\n },\n) {\n /** We'll init the DB only on first use. */\n let db: IDBDatabase | undefined;\n\n const dbVersion = options?.dbVersion ?? KvStoreConfig.dbVersion;\n const storeName = options?.storeName ?? KvStoreConfig.storeName;\n\n const defaultExpiryMs = options?.defaultExpiryMs\n ? durationOrMsToMs(options.defaultExpiryMs)\n : KvStoreConfig.expiryMs;\n\n const gcIntervalMs = options?.gcIntervalMs\n ? durationOrMsToMs(options.gcIntervalMs)\n : KvStoreConfig.gcIntervalMs;\n\n const gcMsStorageKey = `__kvStore:lastGcMs:${dbName}:v${dbVersion}:${storeName}`;\n\n async function getOrCreateDb() {\n if (!db) {\n db = await new Promise<IDBDatabase>((resolve, reject) => {\n const request = withOnError(indexedDB.open(dbName, dbVersion), reject);\n\n request.onupgradeneeded = (event) => {\n const db = (event.target as unknown as { result: IDBDatabase })\n .result;\n\n // Create the store on DB init.\n const objectStore = db.createObjectStore(storeName, {\n keyPath: \"key\",\n });\n\n objectStore.createIndex(\"key\", \"key\", {\n unique: true,\n });\n };\n\n request.onsuccess = (event) => {\n const db = (event.target as unknown as { result: IDBDatabase })\n .result;\n resolve(db);\n };\n });\n }\n\n return db;\n }\n\n async function transact<T>(\n mode: IDBTransactionMode,\n callback: (\n objectStore: IDBObjectStore,\n resolve: (t: T) => void,\n reject: (reason?: unknown) => void,\n ) => void,\n ): Promise<T> {\n const db = await getOrCreateDb();\n\n return await new Promise<T>((resolve, reject) => {\n const transaction = withOnError(db.transaction(storeName, mode), reject);\n\n transaction.onabort = (event) => {\n reject(event);\n };\n\n const objectStore = transaction.objectStore(storeName);\n\n callback(objectStore, resolve, reject);\n });\n }\n\n const obj = {\n /** Input name for the DB. */\n dbName,\n\n /** Input version for the DB. */\n dbVersion,\n\n /** Input name for the DB store. */\n storeName,\n\n /** Default expiry to use if not specified in set(). */\n defaultExpiryMs,\n\n /** Time interval for when GC's occur. */\n gcIntervalMs,\n\n /** Local storage key name for the last GC completed timestamp. */\n gcMsStorageKey,\n\n /** Set a value in the store. */\n async set<T>(\n key: string,\n value: T,\n expiryDeltaMs?: number | Duration,\n ): Promise<T> {\n const nowMs = Date.now();\n const stored: KvStoredObject<T> = {\n key,\n value,\n storedMs: nowMs,\n expiryMs: nowMs + durationOrMsToMs(expiryDeltaMs ?? defaultExpiryMs),\n };\n\n return await transact<T>(\"readwrite\", (objectStore, resolve, reject) => {\n const request = withOnError(objectStore.put(stored), reject);\n\n request.onsuccess = () => {\n resolve(value);\n\n obj.gc(); // check GC on every write\n };\n });\n },\n\n /** Delete one or multiple keys. */\n async delete(key: string | string[]): Promise<void> {\n return await transact<void>(\n \"readwrite\",\n (objectStore, resolve, reject) => {\n objectStore.transaction.oncomplete = () => {\n resolve();\n };\n\n if (typeof key === \"string\") {\n withOnError(objectStore.delete(key), reject);\n } else {\n for (const k of key) {\n withOnError(objectStore.delete(k), reject);\n }\n }\n },\n );\n },\n\n /** Mainly used to get the expiration timestamp of an object. */\n async getStoredObject<T>(\n key: string,\n ): Promise<KvStoredObject<T> | undefined> {\n const stored = await transact<KvStoredObject<T> | undefined>(\n \"readonly\",\n (objectStore, resolve, reject) => {\n const request = withOnError(objectStore.get(key), reject);\n\n request.onsuccess = () => {\n resolve(request.result);\n };\n },\n );\n\n if (!stored) {\n return undefined;\n }\n\n try {\n const valid = validateStoredObject(stored);\n if (!valid) {\n await obj.delete(key);\n\n obj.gc(); // check GC on every read of an expired key\n\n return undefined;\n }\n\n return valid;\n } catch (e) {\n console.error(`Invalid kv value: ${key}=${JSON.stringify(stored)}:`, e);\n await obj.delete(key);\n\n obj.gc(); // check GC on every read of an invalid key\n\n return undefined;\n }\n },\n\n /** Get a value by key, or undefined if it does not exist. */\n async get<T>(key: string): Promise<T | undefined> {\n const stored = await obj.getStoredObject<T>(key);\n\n return stored?.value;\n },\n\n /** Generic way to iterate through all entries. */\n async forEach<T>(\n callback: (\n key: string,\n value: T,\n expiryMs: number,\n storedMs: number,\n ) => void | Promise<void>,\n ): Promise<void> {\n await transact<void>(\"readonly\", (objectStore, resolve, reject) => {\n const request = withOnError(objectStore.openCursor(), reject);\n\n request.onsuccess = async (event) => {\n const cursor = (\n event.target as unknown as { result: IDBCursorWithValue }\n ).result;\n\n if (cursor) {\n if (cursor.key) {\n const valid = validateStoredObject(cursor.value);\n if (valid !== undefined) {\n await callback(\n String(cursor.key),\n valid.value as T,\n valid.expiryMs,\n valid.storedMs,\n );\n }\n }\n cursor.continue();\n } else {\n resolve();\n }\n };\n });\n },\n\n /**\n * Returns the number of items in the store. Note that getting the size\n * requires iterating through the entire store because the items could expire\n * at any time, and hence the size is a dynamic number.\n */\n async size(): Promise<number> {\n let count = 0;\n await obj.forEach(() => {\n count++;\n });\n return count;\n },\n\n /** Remove all items from the store. */\n async clear(): Promise<void> {\n await transact<void>(\"readwrite\", (objectStore, resolve, reject) => {\n const request = withOnError(objectStore.clear(), reject);\n\n request.onsuccess = () => {\n resolve();\n };\n });\n },\n\n /**\n * Returns all items as map of key to value, mainly used for debugging dumps.\n * The type T is applied to all values, even though they might not be of type\n * T (in the case when you store different data types in the same store).\n */\n async asMap<T>(): Promise<Map<string, StoredObject<T>>> {\n const map = new Map<string, StoredObject<T>>();\n await obj.forEach((key, value, expiryMs, storedMs) => {\n map.set(key, { value: value as T, expiryMs, storedMs });\n });\n return map;\n },\n\n /** Returns the ms timestamp for the last GC (garbage collection). */\n getLastGcMs(): number {\n const lastGcMsStr = localStorage.getItem(gcMsStorageKey);\n if (!lastGcMsStr) return 0;\n\n const ms = Number(lastGcMsStr);\n return isNaN(ms) ? 0 : ms;\n },\n\n /** Set the ms timestamp for the last GC (garbage collection). */\n setLastGcMs(ms: number) {\n localStorage.setItem(gcMsStorageKey, String(ms));\n },\n\n /** Perform garbage-collection if due, else do nothing. */\n async gc(): Promise<void> {\n const lastGcMs = obj.getLastGcMs();\n\n // Set initial timestamp - no need GC now.\n if (!lastGcMs) {\n obj.setLastGcMs(Date.now());\n return;\n }\n\n if (Date.now() < lastGcMs + gcIntervalMs) {\n return; // not due for next GC yet\n }\n\n // GC is due now, so run it.\n await obj.gcNow();\n },\n\n /**\n * Perform garbage collection immediately without checking whether we are\n * due for the next GC or not.\n */\n async gcNow(): Promise<void> {\n console.log(`Starting kvStore GC on ${dbName} v${dbVersion}...`);\n\n // Prevent concurrent GC runs.\n obj.setLastGcMs(Date.now());\n\n const keysToDelete: string[] = [];\n await obj.forEach(\n async (key: string, value: unknown, expiryMs: number) => {\n if (value === undefined || Date.now() >= expiryMs) {\n keysToDelete.push(key);\n }\n },\n );\n\n if (keysToDelete.length) {\n await obj.delete(keysToDelete);\n }\n\n console.log(\n `Finished kvStore GC on ${dbName} v${dbVersion} ` +\n `- deleted ${keysToDelete.length} keys`,\n );\n\n // Mark the end time as last GC time.\n obj.setLastGcMs(Date.now());\n },\n\n /** Returns `this` casted into a StorageAdapter<T>. */\n asStorageAdapter<T>(): StorageAdapter<T> {\n return obj as StorageAdapter<T>;\n },\n } as const;\n\n // Using `any` because the store could store any type of data for each key,\n // but the caller can specify a more specific type when calling each of the\n // methods.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return obj satisfies FullStorageAdapter<any>;\n}\n\nexport type KvStore = ReturnType<typeof createKvStore>;\n\n/**\n * Default KV store ready for immediate use. You can create new instances if\n * you want, but most likely you will only need one store instance.\n */\nexport const kvStore = createKvStore(KvStoreConfig.dbName);\n\n/** Create a KV store item with a key and a default expiration. */\nexport function kvStoreItem<T>(\n key: string,\n expiryMs?: number | Duration,\n store: KvStore = kvStore,\n) {\n const defaultExpiryMs = expiryMs && durationOrMsToMs(expiryMs);\n\n const obj = {\n key,\n defaultExpiryMs,\n store,\n\n /** Set a value in the store. */\n async set(value: T, expiryDeltaMs?: number | undefined): Promise<void> {\n await store.set(key, value, expiryDeltaMs ?? defaultExpiryMs);\n },\n\n /**\n * Example usage:\n *\n * const { value, storedMs, expiryMs, storedMs } =\n * await myKvItem.getStoredObject();\n */\n async getStoredObject(): Promise<KvStoredObject<T> | undefined> {\n return await store.getStoredObject(key);\n },\n\n /** Get a value by key, or undefined if it does not exist. */\n async get(): Promise<T | undefined> {\n return await store.get(key);\n },\n\n /** Delete this key from the store. */\n async delete(): Promise<void> {\n await store.delete(key);\n },\n } as const;\n\n return obj;\n}\n\n/** Class to represent one key in the store with a default expiration. */\nexport type KvStoreItem<T> = ReturnType<typeof kvStoreItem<T>>;\n"]}
@@ -0,0 +1,2 @@
1
+ import{a as n}from"./chunk-UOU6IP3S.min.mjs";function t(e){if(!e)return!0;if(typeof e!="object")return!1;if("length"in e)return e.length===0;if("size"in e)return e.size===0;for(let i in e)return!1;return!0}var r=n(()=>{});export{t as a,r as b};
2
+ //# sourceMappingURL=chunk-244NBT4Q.min.mjs.map