@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
@@ -1 +1 @@
1
- import"../chunks/chunk-ANN5UYCF.js";function n(t){return typeof t=="string"?s(t):new Date(t)}function c(){return new Date().toISOString().slice(0,10)}function s(t){return new Date(`${t}T00:00:00`)}function f(t){return t.toISOString().slice(0,10)}function M(t,e){return Math.floor((n(e).getTime()-n(t).getTime())/864e5)}function d(t,e){return Math.floor((n(e).getTime()-n(t).getTime())/36e5)}function _(t,e){return Math.floor((n(e).getTime()-n(t).getTime())/6e4)}function m(t){let e=t instanceof Date?t.getUTCFullYear():t;return e%4===0&&e%100!==0||e%400===0}function u(t,e){let r=n(t);return r.setDate(r.getDate()+e),r}function p(t,e){return u(t,-e)}function S(t,e){let r=n(t);return r.setMonth(r.getMonth()+e),r}function D(t){return n(t).getDay()}function i(t){let e=n(t);return e.setHours(0,0,0,0),e}function x(t){let e=n(t);return e.setHours(23,59,59,999),e}function y(t){let e=D(t);return e===0||e===6}function g(t,e){let r=n(t),a=n(e);return r.getFullYear()===a.getFullYear()&&r.getMonth()===a.getMonth()&&r.getDate()===a.getDate()}function E(t){return g(n(t),new Date)}function b(t,e=new Date){let r=i(n(t)),a=i(e),o=Math.round((r.getTime()-a.getTime())/864e5);return o===0?"today":o===1?"tomorrow":o===-1?"yesterday":o>0?`in ${o} days`:`${-o} days ago`}export{u as addDays,S as addMonths,M as daysBetween,d as diffInHours,_ as diffInMinutes,x as endOfDay,f as formatDate,b as formatRelative,D as getDayOfWeek,m as isLeapYear,g as isSameDay,E as isToday,y as isWeekend,s as parseDate,i as startOfDay,p as subDays,c as today};
1
+ import"../chunks/chunk-ANN5UYCF.js";function r(t){return typeof t=="string"?i(t):new Date(t)}function f(){return new Date().toISOString().slice(0,10)}function i(t){return new Date(`${t}T00:00:00`)}function M(t){return t.toISOString().slice(0,10)}function _(t,e){let n=o=>o.getTime()-o.getTimezoneOffset()*6e4;return Math.floor((n(r(e))-n(r(t)))/864e5)}function d(t,e){return Math.floor((r(e).getTime()-r(t).getTime())/36e5)}function l(t,e){return Math.floor((r(e).getTime()-r(t).getTime())/6e4)}function m(t){let e=t instanceof Date?t.getUTCFullYear():t;return e%4===0&&e%100!==0||e%400===0}function D(t,e){let n=r(t);return n.setDate(n.getDate()+e),n}function p(t,e){return D(t,-e)}function y(t,e){let n=r(t),o=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+e);let a=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(o,a)),n}function u(t){return r(t).getDay()}function s(t){let e=r(t);return e.setHours(0,0,0,0),e}function S(t){let e=r(t);return e.setHours(23,59,59,999),e}function g(t){let e=u(t);return e===0||e===6}function x(t){return!g(t)}function c(t,e){let n=r(t),o=r(e);return n.getFullYear()===o.getFullYear()&&n.getMonth()===o.getMonth()&&n.getDate()===o.getDate()}function E(t){return c(r(t),new Date)}function b(t,e=new Date){let n=s(r(t)),o=s(e),a=Math.round((n.getTime()-o.getTime())/864e5);return a===0?"today":a===1?"tomorrow":a===-1?"yesterday":a>0?`in ${a} days`:`${-a} days ago`}export{D as addDays,y as addMonths,_ as daysBetween,d as diffInHours,l as diffInMinutes,S as endOfDay,M as formatDate,b as formatRelative,u as getDayOfWeek,m as isLeapYear,c as isSameDay,E as isToday,x as isWeekday,g as isWeekend,i as parseDate,s as startOfDay,p as subDays,f as today};
@@ -77,9 +77,9 @@ export declare const RootApiEnvSchema: z.ZodObject<{
77
77
  }>>;
78
78
  LOG_LEVEL: z.ZodDefault<z.ZodEnum<{
79
79
  debug: "debug";
80
+ error: "error";
80
81
  info: "info";
81
82
  warn: "warn";
82
- error: "error";
83
83
  }>>;
84
84
  PORT: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
85
85
  }, z.core.$strip>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/env/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,MAAM,GAAI,KAAK,MAAM,EAAE,eAAe,MAAM,WAUxD,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,KAAK,QAAO,OAExB,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,MAAM,QAAO,OAEzB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,QAAO,OAEzB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAO,MAE7B,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAC/C,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACzB,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,oCAc1D;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;iBAI3B,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/env/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,MAAM,QAAS,MAAM,iBAAiB,MAAM,WAUxD,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,KAAK,QAAO,OAExB,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,MAAM,QAAO,OAEzB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,QAAO,OAEzB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,UAAU,QAAO,MAE7B,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAC/C,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EACzB,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,oCAc1D;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;iBAI3B,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA"}
package/dist/env/index.js CHANGED
@@ -1 +1,3 @@
1
- import{a,b,c,d,e,f,g}from"../chunks/chunk-FBDKWWIQ.js";import"../chunks/chunk-ANN5UYCF.js";export{g as RootApiEnvSchema,f as checkEnv,a as getENV,e as getNodeEnv,b as isDev,c as isProd,d as isTest};
1
+ import"../chunks/chunk-ANN5UYCF.js";import{z as n}from"zod";var c=(r,o)=>{let e=process.env[r.toString()];if(e===void 0&&o!==void 0)return o;if(e===void 0){let t=`Undefined ENV variable - ${r.toString()}`;throw new Error(t)}return e},d=()=>process.env.NODE_ENV==="development",p=()=>process.env.NODE_ENV==="production",E=()=>process.env.NODE_ENV==="test",u=()=>process.env.NODE_ENV||"development";function a(r,o=process.env){try{return r.parse(o)}catch(e){if(e instanceof n.ZodError){let t=`Missing required values in .env:
2
+ `;t+=Object.keys(e.flatten().fieldErrors).join(`
3
+ `);let s=new Error(t);throw s.stack="",s}throw e}}var f=n.object({NODE_ENV:n.enum(["development","test","production"]).default("development"),LOG_LEVEL:n.enum(["debug","info","warn","error"]).default("info"),PORT:n.coerce.number().default(3e3)});export{f as RootApiEnvSchema,a as checkEnv,c as getENV,u as getNodeEnv,d as isDev,p as isProd,E as isTest};
@@ -5,11 +5,14 @@
5
5
  * ```typescript
6
6
  * await fetchWithTimeout('https://api.example.com/health') // { status: 'ok' }
7
7
  * await fetchWithTimeout('https://slow.example.com', {}, 500)
8
- * // rejects with AbortError after 500ms
8
+ * // rejects with a TimeoutError DOMException after 500ms (covers the body read too)
9
+ * const controller = new AbortController()
10
+ * await fetchWithTimeout('https://api.example.com', { signal: controller.signal })
11
+ * // controller.abort() rejects with AbortError
9
12
  * ```
10
13
  *
11
14
  * @param url The URL to fetch.
12
- * @param options Fetch options.
15
+ * @param options Fetch options. A caller `signal` is honoured alongside the timeout.
13
16
  * @param timeout Timeout in milliseconds (default: 8000).
14
17
  * @returns The parsed JSON response.
15
18
  */
@@ -49,7 +52,7 @@ export declare function getJson<T = unknown>(url: string, options?: RequestInit)
49
52
  /**
50
53
  * Fetches a resource and returns the response as text.
51
54
  * @param url The URL to fetch.
52
- * @param options Fetch options.
55
+ * @param options Fetch options. A caller `signal` is honoured alongside the timeout.
53
56
  * @returns The response as text.
54
57
  */
55
58
  export declare function fetchText(url: string, options?: RequestInit): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fetch/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,EACzB,OAAO,SAAO,GACZ,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EACtD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,EACP,OAAO,GAAE,WAAgB,GACvB,OAAO,CAAC,CAAC,CAAC,CAQZ;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAG7F;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAGvF;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAOrF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fetch/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,gBAAgB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,WAAgB,EACzB,OAAO,SAAO,GACZ,OAAO,CAAC,OAAO,CAAC,CAKlB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EACtD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,EACP,OAAO,GAAE,WAAgB,GACvB,OAAO,CAAC,CAAC,CAAC,CAQZ;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAG7F;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAGvF;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAOrF"}
@@ -1 +1 @@
1
- import"../chunks/chunk-ANN5UYCF.js";async function i(n,t={},e=8e3){let o=new AbortController,r=setTimeout(()=>o.abort(),e);try{let s=await fetch(n,{...t,signal:o.signal});return clearTimeout(r),await s.json()}finally{clearTimeout(r)}}async function a(n,t,e={}){return await(await fetch(n,{method:"POST",headers:{"Content-Type":"application/json",...e.headers||{}},body:JSON.stringify(t),...e})).json()}async function c(n,t={}){return await(await fetch(n,{...t,method:"GET"})).json()}async function u(n,t={}){return await(await fetch(n,t)).text()}async function p(n,t){try{return await n}catch(e){if(t!==void 0)return t;throw e}}export{u as fetchText,i as fetchWithTimeout,c as getJson,p as handleApiError,a as postJson};
1
+ import"../chunks/chunk-ANN5UYCF.js";async function i(t,n={},e=8e3){let s=AbortSignal.timeout(e),o=n.signal?AbortSignal.any([n.signal,s]):s;return await(await fetch(t,{...n,signal:o})).json()}async function a(t,n,e={}){return await(await fetch(t,{method:"POST",headers:{"Content-Type":"application/json",...e.headers||{}},body:JSON.stringify(n),...e})).json()}async function c(t,n={}){return await(await fetch(t,{...n,method:"GET"})).json()}async function u(t,n={}){return await(await fetch(t,n)).text()}async function p(t,n){try{return await t}catch(e){if(n!==void 0)return n;throw e}}export{u as fetchText,i as fetchWithTimeout,c as getJson,p as handleApiError,a as postJson};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAA;AAgBvB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,6BA0BQ,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logger/index.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAA;AAcvB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,MAAM,6BA4BQ,CAAA"}
@@ -1 +1 @@
1
- import{b as e}from"../chunks/chunk-FBDKWWIQ.js";import"../chunks/chunk-ANN5UYCF.js";import{createRequire as t}from"node:module";import r from"pino";function o(){try{return t(import.meta.url).resolve("pino-pretty"),!0}catch{return!1}}var s=e()&&o()?r({level:"debug",transport:{target:"pino-pretty",options:{colorize:!0,ignore:"pid,hostname,time",levelFirst:!1,singleLine:!0,customColors:"err:red,info:blue",translateTime:"HH:MM:ss"}}}):r({level:"info"});export{s as logger};
1
+ import"../chunks/chunk-ANN5UYCF.js";import{createRequire as r}from"node:module";import e from"pino";function t(){try{return r(import.meta.url).resolve("pino-pretty"),!0}catch{return!1}}var i=process.env.NODE_ENV==="development"&&t()?e({level:"debug",transport:{target:"pino-pretty",options:{colorize:!0,ignore:"pid,hostname,time",levelFirst:!1,singleLine:!0,customColors:"err:red,info:blue",translateTime:"HH:MM:ss"}}}):e({level:"info"});export{i as logger};