@rtorcato/js-common 4.0.0 → 6.0.0

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 (78) hide show
  1. package/AGENTS.md +21 -20
  2. package/README.md +42 -32
  3. package/dist/abortController/index.d.ts +3 -2
  4. package/dist/abortController/index.d.ts.map +1 -1
  5. package/dist/abortController/index.js +1 -1
  6. package/dist/arrays/arrays.test-d.js +1 -1
  7. package/dist/arrays/index.d.ts +52 -0
  8. package/dist/arrays/index.d.ts.map +1 -1
  9. package/dist/arrays/index.js +1 -1
  10. package/dist/chunks/chunk-6FGK7LS2.js +1 -0
  11. package/dist/chunks/chunk-NEODDZIS.js +1 -0
  12. package/dist/chunks/chunk-U2F5TMN2.js +1 -0
  13. package/dist/chunks/chunk-VSTXGIC3.js +1 -0
  14. package/dist/cli/index.mjs +7 -10
  15. package/dist/crypto/index.d.ts +15 -10
  16. package/dist/crypto/index.d.ts.map +1 -1
  17. package/dist/crypto/index.js +1 -1
  18. package/dist/currency/currencies.d.ts.map +1 -1
  19. package/dist/currency/index.d.ts.map +1 -1
  20. package/dist/date/index.d.ts +22 -2
  21. package/dist/date/index.d.ts.map +1 -1
  22. package/dist/date/index.js +1 -1
  23. package/dist/env/index.d.ts +1 -1
  24. package/dist/env/index.d.ts.map +1 -1
  25. package/dist/env/index.js +3 -1
  26. package/dist/fetch/index.d.ts +6 -3
  27. package/dist/fetch/index.d.ts.map +1 -1
  28. package/dist/fetch/index.js +1 -1
  29. package/dist/logger/index.d.ts.map +1 -1
  30. package/dist/logger/index.js +1 -1
  31. package/dist/mime-types/db.d.ts +1839 -1839
  32. package/dist/mime-types/db.d.ts.map +1 -1
  33. package/dist/mime-types/index.d.ts +1 -1
  34. package/dist/node/index.d.ts.map +1 -1
  35. package/dist/numbers/index.d.ts +96 -3
  36. package/dist/numbers/index.d.ts.map +1 -1
  37. package/dist/numbers/index.js +1 -1
  38. package/dist/os/index.d.ts +0 -11
  39. package/dist/os/index.d.ts.map +1 -1
  40. package/dist/os/index.js +1 -1
  41. package/dist/promises/index.d.ts +51 -0
  42. package/dist/promises/index.d.ts.map +1 -1
  43. package/dist/promises/index.js +1 -1
  44. package/dist/promises/promises.test-d.js +1 -1
  45. package/dist/regex/index.d.ts +7 -0
  46. package/dist/regex/index.d.ts.map +1 -1
  47. package/dist/regex/index.js +1 -1
  48. package/dist/security/index.d.ts +0 -13
  49. package/dist/security/index.d.ts.map +1 -1
  50. package/dist/security/index.js +1 -1
  51. package/dist/sleep/index.d.ts +3 -2
  52. package/dist/sleep/index.d.ts.map +1 -1
  53. package/dist/sleep/index.js +1 -1
  54. package/dist/strings/index.d.ts +3 -2
  55. package/dist/strings/index.d.ts.map +1 -1
  56. package/dist/strings/index.js +1 -1
  57. package/dist/system/index.d.ts +22 -3
  58. package/dist/system/index.d.ts.map +1 -1
  59. package/dist/system/index.js +1 -1
  60. package/dist/try/index.d.ts +12 -0
  61. package/dist/try/index.d.ts.map +1 -1
  62. package/dist/try/index.js +1 -1
  63. package/dist/try/trycatch.test-d.js +1 -1
  64. package/dist/url/index.d.ts.map +1 -1
  65. package/dist/url/index.js +1 -1
  66. package/dist/uuid/index.d.ts.map +1 -1
  67. package/dist/validation/index.d.ts +0 -12
  68. package/dist/validation/index.d.ts.map +1 -1
  69. package/dist/validation/index.js +1 -1
  70. package/package.json +77 -44
  71. package/CHANGELOG.md +0 -258
  72. package/dist/chunks/chunk-AVPQVYSA.js +0 -1
  73. package/dist/chunks/chunk-FBDKWWIQ.js +0 -3
  74. package/dist/chunks/chunk-J4C2KNK5.js +0 -1
  75. package/dist/chunks/chunk-UQBVI52L.js +0 -1
  76. package/dist/index.d.ts +0 -2
  77. package/dist/index.d.ts.map +0 -1
  78. package/dist/index.js +0 -0
@@ -35,17 +35,4 @@ export declare function stripScriptish(str: string): string;
35
35
  * @returns True if the password is strong, false otherwise.
36
36
  */
37
37
  export declare function isStrongPassword(password: string): boolean;
38
- /**
39
- * Generates a cryptographically secure random token (hex string).
40
- *
41
- * @example
42
- * ```typescript
43
- * generateSecureToken() // 64 hex chars (32 bytes)
44
- * generateSecureToken(8) // 'c1f0a4e29b73d518'
45
- * ```
46
- *
47
- * @param length The number of bytes (not hex chars).
48
- * @returns A random hex string.
49
- */
50
- export declare function generateSecureToken(length?: number): string;
51
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgBlD;AAgDD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAI1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,SAAK,GAAG,MAAM,CAEvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgBlD;AAgDD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAI1D"}
@@ -1 +1 @@
1
- import"../chunks/chunk-ANN5UYCF.js";import{randomBytes as a}from"node:crypto";function u(t){let e=d(t),n;do n=e,e=e.replace(/[\s/]on\w+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]*)/gi,"");while(e!==n);return e}function d(t){let e=t.toLowerCase(),n="",i=0,s=0;for(;;){let r=e.indexOf("<script",s);if(r===-1)break;let o=e[r+7];if(o!==void 0&&o!==">"&&o!=="/"&&!/\s/.test(o)){s=r+7;continue}let c=e.indexOf(">",r);if(c===-1)break;let f=e.indexOf("</script",c);if(f===-1)break;let l=e.indexOf(">",f);if(l===-1)break;n+=t.slice(i,r),i=l+1,s=i}return n+t.slice(i)}function g(t){return/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]).{8,}$/.test(t)}function x(t=32){return a(t).toString("hex")}export{x as generateSecureToken,g as isStrongPassword,u as stripScriptish};
1
+ import"../chunks/chunk-ANN5UYCF.js";function a(t){let e=d(t),n;do n=e,e=e.replace(/[\s/]on\w+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]*)/gi,"");while(e!==n);return e}function d(t){let e=t.toLowerCase(),n="",s=0,r=0;for(;;){let i=e.indexOf("<script",r);if(i===-1)break;let o=e[i+7];if(o!==void 0&&o!==">"&&o!=="/"&&!/\s/.test(o)){r=i+7;continue}let c=e.indexOf(">",i);if(c===-1)break;let f=e.indexOf("</script",c);if(f===-1)break;let l=e.indexOf(">",f);if(l===-1)break;n+=t.slice(s,i),s=l+1,r=s}return n+t.slice(s)}function p(t){return/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]).{8,}$/.test(t)}export{p as isStrongPassword,a as stripScriptish};
@@ -38,10 +38,11 @@ export declare function sleepSync(ms: number): void;
38
38
  */
39
39
  export declare function sleepRandom(min: number, max: number): Promise<void>;
40
40
  /**
41
- * Returns a promise that resolves after ms, or rejects if aborted via AbortSignal.
41
+ * Returns a promise that resolves after ms, or rejects with `signal.reason` if aborted.
42
+ * An already-aborted signal rejects immediately.
42
43
  * @param ms Milliseconds to sleep.
43
44
  * @param signal Optional AbortSignal to cancel the sleep.
44
- * @returns Promise that resolves after ms or rejects if aborted.
45
+ * @returns Promise that resolves after ms or rejects with `signal.reason` if aborted.
45
46
  */
46
47
  export declare function sleepWithAbort(ms: number, signal?: AbortSignal): Promise<void>;
47
48
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sleep/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,KAAK,GAAI,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CACG,CAAA;AAElD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAG1C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAU9E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sleep/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,KAAK,OAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CACG,CAAA;AAElD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAG1C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB9E"}
@@ -1 +1 @@
1
- import"../chunks/chunk-ANN5UYCF.js";var i=e=>new Promise(o=>setTimeout(o,e));function m(e){let o=Date.now()+e;for(;Date.now()<o;);}function s(e,o){let t=Math.floor(Math.random()*(o-e+1))+e;return new Promise(r=>setTimeout(r,t))}function u(e,o){return new Promise((t,r)=>{let n=setTimeout(t,e);o&&o.addEventListener("abort",()=>{clearTimeout(n),r(new Error("Sleep aborted"))})})}export{i as sleep,s as sleepRandom,m as sleepSync,u as sleepWithAbort};
1
+ import{a,b,c,d}from"../chunks/chunk-VSTXGIC3.js";import"../chunks/chunk-ANN5UYCF.js";export{a as sleep,c as sleepRandom,b as sleepSync,d as sleepWithAbort};
@@ -74,13 +74,14 @@ export declare function kebabCase(str: string): string;
74
74
  export declare function snakeCase(str: string): string;
75
75
  /**
76
76
  * Truncates a string to a maximum length, adding ellipsis if needed.
77
+ * Length is counted in graphemes, so emoji and combining marks are never split.
77
78
  * @param str The string to truncate.
78
- * @param maxLength The maximum length.
79
+ * @param maxLength The maximum length in graphemes, ellipsis included. `<= 0` returns `''`.
79
80
  * @returns The truncated string.
80
81
  */
81
82
  export declare function truncate(str: string, maxLength: number): string;
82
83
  /**
83
- * Reverses a string.
84
+ * Reverses a string by grapheme, so emoji sequences, flags and combining marks stay intact.
84
85
  *
85
86
  * @example
86
87
  * ```typescript
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/strings/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAU3C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAO3C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAmB9C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE5C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,SAAM,GAAG,MAAM,CAOhF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAI3E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/strings/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK7C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK7C;AAQD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAI/D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAU3C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAO3C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAmB9C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE5C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,SAAM,GAAG,MAAM,CAOhF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAI3E"}
@@ -1 +1 @@
1
- import"../chunks/chunk-ANN5UYCF.js";function s(e){return e.replace(/\w\S*/g,r=>r.charAt(0).toUpperCase()+r.slice(1).toLowerCase())}function o(e){return e.length===0?"":(e[0]?.toUpperCase()??"")+e.slice(1)}function a(e){return e.replace(/[-_\s]+(.)?/g,(r,t)=>t?t.toUpperCase():"").replace(/^(.)/,r=>r.toLowerCase())}function g(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[_\s]+/g,"-").toLowerCase()}function c(e){return e.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/[-\s]+/g,"_").toLowerCase()}function u(e,r){return e.length>r?`${e.slice(0,r-1)}\u2026`:e}function l(e){return[...e].reverse().join("")}function p(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().trim().replace(/[^a-z0-9\s-]/g,"").replace(/[\s_]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function f(e){return e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[-_]+/g," ").trim().split(/\s+/).filter(Boolean)}function $(e){let r=e.trim();return r===""?0:r.split(/\s+/).length}function x(e,r,t){return r===1?e:t??`${e}s`}function C(e){let r=Math.abs(e),t=r%100,n=r%10;if(t>=11&&t<=13)return`${e}th`;switch(n){case 1:return`${e}st`;case 2:return`${e}nd`;case 3:return`${e}rd`;default:return`${e}th`}}function b(e){return e.trim().length===0}function w(e,r,t,n="*"){if(r<0&&(r=0),t>e.length&&(t=e.length),r>=t)return e;let i=n.repeat(t-r);return e.slice(0,r)+i+e.slice(t)}function h(e,r){return e.replace(/\$\{(\w+)\}/g,(t,n)=>Object.hasOwn(r,n)?String(r[n]):t)}export{a as camelCase,o as capitalize,b as isBlank,g as kebabCase,w as mask,C as ordinalize,x as pluralize,l as reverse,p as slugify,c as snakeCase,h as template,s as titleCase,u as truncate,$ as wordCount,f as words};
1
+ import"../chunks/chunk-ANN5UYCF.js";function g(e){return e.replace(/\w\S*/g,r=>r.charAt(0).toUpperCase()+r.slice(1).toLowerCase())}function a(e){return e.length===0?"":(e[0]?.toUpperCase()??"")+e.slice(1)}function c(e){return e.replace(/[-_\s]+(.)?/g,(r,t)=>t?t.toUpperCase():"").replace(/^(.)/,r=>r.toLowerCase())}function u(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[_\s]+/g,"-").toLowerCase()}function l(e){return e.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/[-\s]+/g,"_").toLowerCase()}var o=new Intl.Segmenter(void 0,{granularity:"grapheme"});function i(e){return Array.from(o.segment(e),r=>r.segment)}function p(e,r){if(r<=0)return"";let t=i(e);return t.length>r?`${t.slice(0,r-1).join("")}\u2026`:e}function f(e){return i(e).reverse().join("")}function m(e){return e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().trim().replace(/[^a-z0-9\s-]/g,"").replace(/[\s_]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function $(e){return e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[-_]+/g," ").trim().split(/\s+/).filter(Boolean)}function h(e){let r=e.trim();return r===""?0:r.split(/\s+/).length}function w(e,r,t){return r===1?e:t??`${e}s`}function C(e){let r=Math.abs(e),t=r%100,n=r%10;if(t>=11&&t<=13)return`${e}th`;switch(n){case 1:return`${e}st`;case 2:return`${e}nd`;case 3:return`${e}rd`;default:return`${e}th`}}function b(e){return e.trim().length===0}function x(e,r,t,n="*"){if(r<0&&(r=0),t>e.length&&(t=e.length),r>=t)return e;let s=n.repeat(t-r);return e.slice(0,r)+s+e.slice(t)}function z(e,r){return e.replace(/\$\{(\w+)\}/g,(t,n)=>Object.hasOwn(r,n)?String(r[n]):t)}export{c as camelCase,a as capitalize,b as isBlank,u as kebabCase,x as mask,C as ordinalize,w as pluralize,f as reverse,m as slugify,l as snakeCase,z as template,g as titleCase,p as truncate,h as wordCount,$ as words};
@@ -1,6 +1,10 @@
1
1
  /**
2
2
  * Checks if the current OS is macOS.
3
3
  *
4
+ * The user-agent branch is deprecated — browser detection belongs to
5
+ * `@rtorcato/browser-common` and will be removed in the next major. In Node this
6
+ * reads `process.platform` and stays.
7
+ *
4
8
  * @example
5
9
  * ```typescript
6
10
  * isMacOs() // true on macOS (via process.platform in Node, userAgent in the browser)
@@ -12,6 +16,10 @@ export declare function isMacOs(): boolean;
12
16
  /**
13
17
  * Checks if the current OS is Windows.
14
18
  *
19
+ * The user-agent branch is deprecated — browser detection belongs to
20
+ * `@rtorcato/browser-common` and will be removed in the next major. In Node this
21
+ * reads `process.platform` and stays.
22
+ *
15
23
  * @example
16
24
  * ```typescript
17
25
  * isWindows() // true when process.platform === 'win32'
@@ -23,6 +31,10 @@ export declare function isWindows(): boolean;
23
31
  /**
24
32
  * Checks if the current OS is Linux.
25
33
  *
34
+ * The user-agent branch is deprecated — browser detection belongs to
35
+ * `@rtorcato/browser-common` and will be removed in the next major. In Node this
36
+ * reads `process.platform` and stays.
37
+ *
26
38
  * @example
27
39
  * ```typescript
28
40
  * isLinux() // true when process.platform === 'linux'
@@ -32,22 +44,29 @@ export declare function isWindows(): boolean;
32
44
  */
33
45
  export declare function isLinux(): boolean;
34
46
  /**
35
- * Checks if the device is running iOS.
47
+ * Checks if the device is running iOS. Always `false` in Node.
48
+ * @deprecated Browser detection belongs to `@rtorcato/browser-common`; removed in the next major.
36
49
  * @returns {boolean} True if iOS, false otherwise.
37
50
  */
38
51
  export declare function isIOS(): boolean;
39
52
  /**
40
- * Checks if the device is running Android.
53
+ * Checks if the device is running Android. Always `false` in Node.
54
+ * @deprecated Browser detection belongs to `@rtorcato/browser-common`; removed in the next major.
41
55
  * @returns {boolean} True if Android, false otherwise.
42
56
  */
43
57
  export declare function isAndroid(): boolean;
44
58
  /**
45
59
  * Returns a string representing the detected platform.
60
+ *
61
+ * The user-agent branch is deprecated — browser detection belongs to
62
+ * `@rtorcato/browser-common` and will be removed in the next major. In Node this
63
+ * reads `process.platform` and stays.
46
64
  * @returns {string} The platform name (e.g., 'macos', 'windows', 'linux', 'ios', 'android', or 'unknown').
47
65
  */
48
66
  export declare function getPlatform(): string;
49
67
  /**
50
- * Checks if the device supports touch events.
68
+ * Checks if the device supports touch events. Always `false` in Node.
69
+ * @deprecated Browser detection belongs to `@rtorcato/browser-common`; removed in the next major.
51
70
  * @returns {boolean} True if touch is supported, false otherwise.
52
71
  */
53
72
  export declare function isTouchDevice(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/system/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,OAAO,IAAI,OAAO,CAQjC;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAQnC;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,IAAI,OAAO,CAQjC;AAED;;;GAGG;AACH,wBAAgB,KAAK,IAAI,OAAO,CAK/B;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAKnC;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAOpC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAMvC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/system/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,IAAI,OAAO,CAUjC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAQnC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,IAAI,OAAO,CASjC;AAED;;;;GAIG;AACH,wBAAgB,KAAK,IAAI,OAAO,CAK/B;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAKnC;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAQpC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAMvC"}
@@ -1 +1 @@
1
- import"../chunks/chunk-ANN5UYCF.js";function n(){return typeof window<"u"?window.navigator.userAgent.includes("Mac"):typeof process<"u"&&process.platform?process.platform==="darwin":!1}function e(){return typeof window<"u"?window.navigator.userAgent.includes("Windows"):typeof process<"u"&&process.platform?process.platform==="win32":!1}function o(){return typeof window<"u"?window.navigator.userAgent.includes("Linux"):typeof process<"u"&&process.platform?process.platform==="linux":!1}function r(){return typeof window<"u"?/iPad|iPhone|iPod/.test(window.navigator.userAgent)&&!window.MSStream:!1}function i(){return typeof window<"u"?window.navigator.userAgent.includes("Android"):!1}function t(){return n()?"macos":e()?"windows":o()?"linux":r()?"ios":i()?"android":"unknown"}function u(){return typeof window>"u"?!1:"ontouchstart"in window||typeof navigator.maxTouchPoints=="number"&&navigator.maxTouchPoints>0}export{t as getPlatform,i as isAndroid,r as isIOS,o as isLinux,n as isMacOs,u as isTouchDevice,e as isWindows};
1
+ import"../chunks/chunk-ANN5UYCF.js";var e=/iPad|iPhone|iPod/;function o(){if(typeof window<"u"){let n=window.navigator.userAgent;return n.includes("Mac")&&!e.test(n)}return typeof process<"u"&&process.platform?process.platform==="darwin":!1}function r(){return typeof window<"u"?window.navigator.userAgent.includes("Windows"):typeof process<"u"&&process.platform?process.platform==="win32":!1}function i(){if(typeof window<"u"){let n=window.navigator.userAgent;return n.includes("Linux")&&!n.includes("Android")}return typeof process<"u"&&process.platform?process.platform==="linux":!1}function t(){return typeof window<"u"?e.test(window.navigator.userAgent)&&!window.MSStream:!1}function u(){return typeof window<"u"?window.navigator.userAgent.includes("Android"):!1}function s(){return t()?"ios":u()?"android":o()?"macos":r()?"windows":i()?"linux":"unknown"}function f(){return typeof window>"u"?!1:"ontouchstart"in window||typeof navigator.maxTouchPoints=="number"&&navigator.maxTouchPoints>0}export{s as getPlatform,u as isAndroid,t as isIOS,i as isLinux,o as isMacOs,f as isTouchDevice,r as isWindows};
@@ -50,4 +50,16 @@ export declare function isSuccess<T, E>(result: Result<T, E>): result is Success
50
50
  * ```
51
51
  */
52
52
  export declare function tryCatch<T, E = Error>(fn: () => Promise<T>): Promise<Result<T, E>>;
53
+ /**
54
+ * Synchronous counterpart to {@link tryCatch} — run a function and capture any thrown
55
+ * error into a `Result`, so `Result` is usable outside async boundaries.
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * const { data, error } = tryCatchSync(() => JSON.parse(raw) as Config)
60
+ * if (error) return defaults
61
+ * console.log(data.port)
62
+ * ```
63
+ */
64
+ export declare function tryCatchSync<T, E = Error>(fn: () => T): Result<T, E>;
53
65
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/try/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,CAAA;AAEjD;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAA;AAEjD;;;;;;;;;GASG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAE1D;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAE1E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAOxF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/try/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,IAAI,CAAA;CAAE,CAAA;AAEjD;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAA;AAEjD;;;;;;;;;GASG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAE1D;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAE1E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAOxF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAMpE"}
package/dist/try/index.js CHANGED
@@ -1 +1 @@
1
- import{a,b}from"../chunks/chunk-J4C2KNK5.js";import"../chunks/chunk-ANN5UYCF.js";export{a as isSuccess,b as tryCatch};
1
+ import{a,b,c}from"../chunks/chunk-6FGK7LS2.js";import"../chunks/chunk-ANN5UYCF.js";export{a as isSuccess,b as tryCatch,c as tryCatchSync};
@@ -1 +1 @@
1
- import{a as u,b as t}from"../chunks/chunk-J4C2KNK5.js";import"../chunks/chunk-ANN5UYCF.js";import{describe as l,expectTypeOf as e,it as s}from"vitest";l("try \u2014 types",()=>{s("Result<T,E> is the union of Success<T> and Failure<E>",()=>{e().toEqualTypeOf(),e().toEqualTypeOf()}),s("isSuccess narrows Result to Success in the true branch",()=>{let r={data:1,error:null};u(r)?(e(r).toEqualTypeOf(),e(r.data).toEqualTypeOf(),e(r.error).toEqualTypeOf()):e(r).toEqualTypeOf()}),s("tryCatch returns Promise<Result<T, E>> with the resolved type",async()=>{let r=t(async()=>42);e(r).toEqualTypeOf();let o=t(async()=>"x");e(o).toEqualTypeOf()})});
1
+ import{a as o,b as s,c as u}from"../chunks/chunk-6FGK7LS2.js";import"../chunks/chunk-ANN5UYCF.js";import{describe as l,expectTypeOf as r,it as t}from"vitest";l("try \u2014 types",()=>{t("Result<T,E> is the union of Success<T> and Failure<E>",()=>{r().toEqualTypeOf(),r().toEqualTypeOf()}),t("isSuccess narrows Result to Success in the true branch",()=>{let e={data:1,error:null};o(e)?(r(e).toEqualTypeOf(),r(e.data).toEqualTypeOf(),r(e.error).toEqualTypeOf()):r(e).toEqualTypeOf()}),t("tryCatch returns Promise<Result<T, E>> with the resolved type",async()=>{let e=s(async()=>42);r(e).toEqualTypeOf();let y=s(async()=>"x");r(y).toEqualTypeOf()})});l("tryCatchSync \u2014 types",()=>{t("returns Result<T, E> directly, not a promise",()=>{r(u(()=>42)).toEqualTypeOf(),r(u(()=>"x")).toEqualTypeOf()})});
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/url/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWlE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ7E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAQjE;AAgBD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAKlD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM/C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/url/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWlE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ7E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAQjE;AAgBD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAKlD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM/C"}
package/dist/url/index.js CHANGED
@@ -1 +1 @@
1
- import"../chunks/chunk-ANN5UYCF.js";function o(r){try{return new URL(r),!0}catch{return!1}}function a(r){try{let e=new URL(r).searchParams,t={};return e.forEach((n,s)=>{t[s]=n}),t}catch{return{}}}function c(r,e,t){try{let n=new URL(r);return n.searchParams.set(e,t),n.toString()}catch{return r}}function g(r,e){try{let t=new URL(r);return t.searchParams.delete(e),t.toString()}catch{return r}}function i(r,e){let t=0,n=r.length;if(e)for(;t<n&&r[t]==="/";)t++;for(;n>t&&r[n-1]==="/";)n--;return r.slice(t,n)}function u(...r){return r.map((e,t)=>i(e,t>0)).filter(Boolean).join("/")}function l(r){try{return new URL(r).hostname}catch{return""}}export{l as getHostname,a as getQueryParams,o as isValidUrl,u as joinUrl,g as removeQueryParam,c as setQueryParam};
1
+ import"../chunks/chunk-ANN5UYCF.js";function o(r){return URL.canParse(r)}function a(r){try{let e=new URL(r).searchParams,t={};return e.forEach((n,s)=>{t[s]=n}),t}catch{return{}}}function c(r,e,t){try{let n=new URL(r);return n.searchParams.set(e,t),n.toString()}catch{return r}}function g(r,e){try{let t=new URL(r);return t.searchParams.delete(e),t.toString()}catch{return r}}function i(r,e){let t=0,n=r.length;if(e)for(;t<n&&r[t]==="/";)t++;for(;n>t&&r[n-1]==="/";)n--;return r.slice(t,n)}function u(...r){return r.map((e,t)=>i(e,t>0)).filter(Boolean).join("/")}function l(r){try{return new URL(r).hostname}catch{return""}}export{l as getHostname,a as getQueryParams,o as isValidUrl,u as joinUrl,g as removeQueryParam,c as setQueryParam};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/uuid/index.ts"],"names":[],"mappings":"AAYA;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,QAAO,MAE5B,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,QAAO,MAE/B,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,MAE1C,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,MAE7C,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,KAAG,OAA2B,CAAA;AAE/D;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,IAAI,MAAM,KAAG,OAAoD,CAAA;AAE1F;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,GAAI,IAAI,MAAM,KAAG,OAA0B,CAAA;AAEjE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,GAAI,IAAI,MAAM,KAAG,MAK3C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,QAAO,MAAkB,CAAA;AAEhD;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,KAAG,UAA2B,CAAA;AAEpE;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,UAAU,KAAG,MAA8B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/uuid/index.ts"],"names":[],"mappings":"AAYA;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,QAAO,MAE5B,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,QAAO,MAE/B,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,SAAU,MAAM,KAAG,MAE1C,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,UAAW,MAAM,KAAG,MAE7C,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,OAAQ,MAAM,KAAG,OAA2B,CAAA;AAE/D;;;;GAIG;AACH,eAAO,MAAM,QAAQ,OAAQ,MAAM,KAAG,OAAoD,CAAA;AAE1F;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,OAAQ,MAAM,KAAG,OAA0B,CAAA;AAEjE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,OAAQ,MAAM,KAAG,MAK3C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,QAAO,MAAkB,CAAA;AAEhD;;;;GAIG;AACH,eAAO,MAAM,WAAW,OAAQ,MAAM,KAAG,UAA2B,CAAA;AAEpE;;;;GAIG;AACH,eAAO,MAAM,WAAW,UAAW,UAAU,KAAG,MAA8B,CAAA"}
@@ -59,16 +59,4 @@ export declare function isArray(value: unknown): value is unknown[];
59
59
  * @returns {boolean}
60
60
  */
61
61
  export declare function isObject(value: unknown): value is object;
62
- /**
63
- * Checks if a string is a valid email address (simple regex).
64
- * @param str The string to check.
65
- * @returns {boolean}
66
- */
67
- export declare function isEmail(str: string): boolean;
68
- /**
69
- * Checks if a string is a valid URL.
70
- * @param str The string to check.
71
- * @returns {boolean}
72
- */
73
- export declare function isUrl(str: string): boolean;
74
62
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,CAAC,CAEpE;AAED;;;;;;;;;;;;GAYG;AAEH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAED;;;;;;;;;;;;GAYG;AAEH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAED;;;;GAIG;AAEH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D;AAED;;;;GAIG;AAEH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,EAAE,CAE1D;AAED;;;;GAIG;AAEH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAI5C;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO1C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/validation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,KAAK,IAAI,CAAC,CAEpE;AAED;;;;;;;;;;;;GAYG;AAEH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAED;;;;;;;;;;;;GAYG;AAEH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD;AAED;;;;GAIG;AAEH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAE1D;AAED;;;;GAIG;AAEH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,EAAE,CAE1D;AAED;;;;GAIG;AAEH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAExD"}
@@ -1 +1 @@
1
- import"../chunks/chunk-ANN5UYCF.js";function r(n){return n!=null}function e(n){return typeof n=="string"}function t(n){return typeof n=="number"&&!Number.isNaN(n)}function o(n){return typeof n=="boolean"}function u(n){return Array.isArray(n)}function i(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function s(n){return/^[^\s@]+@[^\s@.]+(?:\.[^\s@.]+)+$/.test(n)}function a(n){try{return new URL(n),!0}catch{return!1}}export{u as isArray,o as isBoolean,r as isDefined,s as isEmail,t as isNumber,i as isObject,e as isString,a as isUrl};
1
+ import"../chunks/chunk-ANN5UYCF.js";function r(n){return n!=null}function e(n){return typeof n=="string"}function o(n){return typeof n=="number"&&!Number.isNaN(n)}function u(n){return typeof n=="boolean"}function t(n){return Array.isArray(n)}function i(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}export{t as isArray,u as isBoolean,r as isDefined,o as isNumber,i as isObject,e as isString};
package/package.json CHANGED
@@ -1,12 +1,9 @@
1
1
  {
2
2
  "name": "@rtorcato/js-common",
3
- "version": "4.0.0",
3
+ "version": "6.0.0",
4
4
  "description": "JavaScript and TypeScript common code",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@11.17.0",
7
- "main": "dist/index.js",
8
- "module": "dist/index.js",
9
- "types": "dist/index.d.ts",
10
7
  "bin": {
11
8
  "js-common": "dist/cli/index.mjs"
12
9
  },
@@ -24,11 +21,11 @@
24
21
  "bugs": {
25
22
  "url": "https://github.com/rtorcato/js-common/issues"
26
23
  },
27
- "homepage": "https://github.com/rtorcato/js-common#readme",
24
+ "homepage": "https://docs.torcato.dev/js-common/",
28
25
  "sideEffects": false,
29
26
  "scripts": {
30
- "build-dev": "rimraf ./dist tsconfig.build.tsbuildinfo && cross-env NODE_ENV=development node build.mjs && tsc --emitDeclarationOnly --project tsconfig.build.json && node scripts/copy-types.mjs && npm run build-cli",
31
- "build-prod": "rimraf ./dist tsconfig.build.tsbuildinfo && cross-env NODE_ENV=production node build.mjs && tsc --emitDeclarationOnly --project tsconfig.build.json && node scripts/copy-types.mjs && npm run build-cli",
27
+ "build-dev": "node build.mjs && tsc --emitDeclarationOnly --project tsconfig.build.json && node scripts/copy-types.mjs && npm run build-cli",
28
+ "build-prod": "node build.mjs --prod && tsc --emitDeclarationOnly --project tsconfig.build.json && node scripts/copy-types.mjs && npm run build-cli",
32
29
  "build-cli": "tsc src/cli/bootstrap.ts src/cli/cli.ts --ignoreConfig --types node --outDir dist/cli --target ES2022 --module ES2022 --moduleResolution bundler --allowImportingTsExtensions false --esModuleInterop --skipLibCheck && echo '#!/usr/bin/env node' > dist/cli/index.mjs && cat dist/cli/bootstrap.js >> dist/cli/index.mjs && rm dist/cli/bootstrap.js && mv dist/cli/cli.js dist/cli/cli.mjs && sed -i.bak \"s|'./cli.js'|'./cli.mjs'|g\" dist/cli/index.mjs && rm dist/cli/index.mjs.bak && chmod +x dist/cli/index.mjs",
33
30
  "prepublishOnly": "npm run build-prod",
34
31
  "==================== Common ====================": "",
@@ -42,7 +39,6 @@
42
39
  "test:watch": "vitest --watch",
43
40
  "coverage": "vitest run --coverage",
44
41
  "size": "size-limit",
45
- "benchmark": "node scripts/benchmark.mjs",
46
42
  "docs:generate": "node scripts/generate-module-docs.mjs",
47
43
  "sync:agents": "node scripts/sync-agents.mjs",
48
44
  "check:readme": "node scripts/check-readme-exports.mjs --check",
@@ -52,17 +48,12 @@
52
48
  },
53
49
  "files": [
54
50
  "AGENTS.md",
55
- "CHANGELOG.md",
56
51
  "CONTRIBUTORS.md",
57
52
  "dist",
58
53
  "LICENSE",
59
54
  "README.md"
60
55
  ],
61
56
  "exports": {
62
- ".": {
63
- "import": "./dist/index.js",
64
- "types": "./dist/index.d.ts"
65
- },
66
57
  "./abortController": {
67
58
  "import": "./dist/abortController/index.js",
68
59
  "types": "./dist/abortController/index.d.ts"
@@ -232,47 +223,89 @@
232
223
  }
233
224
  },
234
225
  "devDependencies": {
235
- "@biomejs/biome": "^2.5.0",
236
- "@commitlint/cli": "^21.2.1",
237
- "@commitlint/config-conventional": "^21.2.0",
238
- "@rtorcato/repo-tooling": "^3.11.0",
239
- "@semantic-release/changelog": "^7.0.0",
226
+ "@biomejs/biome": "^2.5.15",
227
+ "@commitlint/cli": "^21.2.3",
228
+ "@commitlint/config-conventional": "^21.2.3",
229
+ "@inquirer/prompts": "^8.7.2",
230
+ "@rtorcato/repo-ai": "^3.5.1",
231
+ "@rtorcato/repo-tooling": "^6.0.0",
240
232
  "@semantic-release/commit-analyzer": "^13.0.1",
241
- "@semantic-release/git": "^11.0.1",
242
- "@semantic-release/github": "^12.0.0",
243
- "@semantic-release/npm": "^13.1.1",
233
+ "@semantic-release/github": "^12.0.10",
234
+ "@semantic-release/npm": "^13.2.0",
244
235
  "@semantic-release/release-notes-generator": "^14.1.0",
245
- "@size-limit/preset-small-lib": "^13.0.3",
236
+ "@size-limit/preset-small-lib": "^14.0.0",
246
237
  "@types/chalk-animation": "^1.6.3",
247
238
  "@types/figlet": "^1.7.0",
248
- "@types/node": "^26.1.2",
249
- "@vitest/coverage-v8": "^4.0.17",
250
- "cross-env": "^10.1.0",
251
- "esbuild": "^0.28.1",
252
- "fast-check": "^4.8.0",
239
+ "@types/node": "^26.6.4",
240
+ "@vitest/coverage-v8": "^5.0.1",
241
+ "chalk": "^6.0.1",
242
+ "chalk-animation": "^2.0.3",
243
+ "commander": "^15.0.0",
244
+ "esbuild": "^0.28.2",
245
+ "esbuild-node-externals": "^1.23.1",
246
+ "fast-check": "^4.10.2",
247
+ "figlet": "^1.12.0",
248
+ "gradient-string": "^3.0.0",
253
249
  "husky": "^9.1.7",
254
- "jsdom": "^30.0.1",
255
- "knip": "^6.14.2",
256
- "rimraf": "^6.0.1",
250
+ "jsdom": "^30.1.1",
251
+ "knip": "^6.39.0",
252
+ "pino": "^10.4.0",
253
+ "pino-pretty": "^13.0.0",
257
254
  "semantic-release": "^25.0.1",
258
- "size-limit": "^13.0.3",
259
- "typescript": "^6.0.2",
260
- "vitest": "^4.0.17"
261
- },
262
- "dependencies": {
263
- "pino": "^10.1.0",
264
255
  "short-uuid": "^6.0.3",
265
- "uuid": "^14.0.1",
266
- "zod": "^4.1.12"
256
+ "size-limit": "^14.0.0",
257
+ "typescript": "^7.0.2",
258
+ "uuid": "^14.0.2",
259
+ "vitest": "^5.0.1",
260
+ "zod": "^4.6.5"
267
261
  },
268
- "optionalDependencies": {
269
- "@inquirer/prompts": "^8.5.0",
270
- "chalk": "^6.0.0",
262
+ "peerDependencies": {
263
+ "@inquirer/prompts": "^8.7.2",
264
+ "chalk": "^6.0.1",
271
265
  "chalk-animation": "^2.0.3",
272
266
  "commander": "^15.0.0",
273
- "figlet": "^1.9.3",
267
+ "figlet": "^1.12.0",
274
268
  "gradient-string": "^3.0.0",
275
- "pino-pretty": "^13.0.0"
269
+ "pino": "^10.1.0",
270
+ "pino-pretty": "^13.0.0",
271
+ "short-uuid": "^6.0.3",
272
+ "uuid": "^14.0.2",
273
+ "zod": "^4.6.5"
274
+ },
275
+ "peerDependenciesMeta": {
276
+ "@inquirer/prompts": {
277
+ "optional": true
278
+ },
279
+ "chalk": {
280
+ "optional": true
281
+ },
282
+ "chalk-animation": {
283
+ "optional": true
284
+ },
285
+ "commander": {
286
+ "optional": true
287
+ },
288
+ "figlet": {
289
+ "optional": true
290
+ },
291
+ "gradient-string": {
292
+ "optional": true
293
+ },
294
+ "pino": {
295
+ "optional": true
296
+ },
297
+ "pino-pretty": {
298
+ "optional": true
299
+ },
300
+ "short-uuid": {
301
+ "optional": true
302
+ },
303
+ "uuid": {
304
+ "optional": true
305
+ },
306
+ "zod": {
307
+ "optional": true
308
+ }
276
309
  },
277
310
  "config": {
278
311
  "commitizen": {
@@ -283,6 +316,6 @@
283
316
  "access": "public"
284
317
  },
285
318
  "engines": {
286
- "node": ">=22"
319
+ "node": ">=24"
287
320
  }
288
321
  }