@visulima/humanizer 1.0.18 → 1.0.20

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 (151) hide show
  1. package/dist/index.cjs +12 -1
  2. package/dist/index.mjs +2 -1
  3. package/dist/language/af.cjs +21 -1
  4. package/dist/language/af.mjs +17 -1
  5. package/dist/language/am.cjs +9 -1
  6. package/dist/language/am.mjs +5 -1
  7. package/dist/language/ar.cjs +37 -1
  8. package/dist/language/ar.d.cts +4 -4
  9. package/dist/language/ar.d.mts +4 -4
  10. package/dist/language/ar.d.ts +4 -4
  11. package/dist/language/ar.mjs +33 -1
  12. package/dist/language/bg.cjs +22 -1
  13. package/dist/language/bg.mjs +18 -1
  14. package/dist/language/bn.cjs +9 -1
  15. package/dist/language/bn.mjs +5 -1
  16. package/dist/language/ca.cjs +21 -1
  17. package/dist/language/ca.mjs +17 -1
  18. package/dist/language/ckb.cjs +9 -1
  19. package/dist/language/ckb.mjs +5 -1
  20. package/dist/language/cs.cjs +22 -1
  21. package/dist/language/cs.mjs +18 -1
  22. package/dist/language/cy.cjs +9 -1
  23. package/dist/language/cy.mjs +5 -1
  24. package/dist/language/da.cjs +21 -1
  25. package/dist/language/da.mjs +17 -1
  26. package/dist/language/de.cjs +21 -1
  27. package/dist/language/de.mjs +17 -1
  28. package/dist/language/el.cjs +21 -1
  29. package/dist/language/el.mjs +17 -1
  30. package/dist/language/en.cjs +20 -1
  31. package/dist/language/en.mjs +16 -1
  32. package/dist/language/eo.cjs +21 -1
  33. package/dist/language/eo.mjs +17 -1
  34. package/dist/language/es.cjs +21 -1
  35. package/dist/language/es.mjs +17 -1
  36. package/dist/language/et.cjs +21 -1
  37. package/dist/language/et.mjs +17 -1
  38. package/dist/language/eu.cjs +21 -1
  39. package/dist/language/eu.mjs +17 -1
  40. package/dist/language/fa.cjs +9 -1
  41. package/dist/language/fa.mjs +5 -1
  42. package/dist/language/fi.cjs +21 -1
  43. package/dist/language/fi.mjs +17 -1
  44. package/dist/language/fo.cjs +21 -1
  45. package/dist/language/fo.mjs +17 -1
  46. package/dist/language/fr.cjs +21 -1
  47. package/dist/language/fr.mjs +17 -1
  48. package/dist/language/he.cjs +20 -1
  49. package/dist/language/he.mjs +16 -1
  50. package/dist/language/hi.cjs +20 -1
  51. package/dist/language/hi.mjs +16 -1
  52. package/dist/language/hr.cjs +73 -1
  53. package/dist/language/hr.mjs +69 -1
  54. package/dist/language/hu.cjs +9 -1
  55. package/dist/language/hu.mjs +5 -1
  56. package/dist/language/id.cjs +9 -1
  57. package/dist/language/id.mjs +5 -1
  58. package/dist/language/is.cjs +20 -1
  59. package/dist/language/is.mjs +16 -1
  60. package/dist/language/it.cjs +21 -1
  61. package/dist/language/it.mjs +17 -1
  62. package/dist/language/ja.cjs +9 -1
  63. package/dist/language/ja.mjs +5 -1
  64. package/dist/language/km.cjs +9 -1
  65. package/dist/language/km.mjs +5 -1
  66. package/dist/language/kn.cjs +20 -1
  67. package/dist/language/kn.mjs +16 -1
  68. package/dist/language/ko.cjs +9 -1
  69. package/dist/language/ko.mjs +5 -1
  70. package/dist/language/ku.cjs +9 -1
  71. package/dist/language/ku.mjs +5 -1
  72. package/dist/language/lo.cjs +9 -1
  73. package/dist/language/lo.mjs +5 -1
  74. package/dist/language/lt.cjs +32 -1
  75. package/dist/language/lt.mjs +28 -1
  76. package/dist/language/lv.cjs +24 -1
  77. package/dist/language/lv.mjs +20 -1
  78. package/dist/language/mk.cjs +21 -1
  79. package/dist/language/mk.mjs +17 -1
  80. package/dist/language/mn.cjs +9 -1
  81. package/dist/language/mn.mjs +5 -1
  82. package/dist/language/mr.cjs +20 -1
  83. package/dist/language/mr.mjs +16 -1
  84. package/dist/language/ms.cjs +9 -1
  85. package/dist/language/ms.mjs +5 -1
  86. package/dist/language/nl.cjs +21 -1
  87. package/dist/language/nl.mjs +17 -1
  88. package/dist/language/no.cjs +21 -1
  89. package/dist/language/no.mjs +17 -1
  90. package/dist/language/pl.cjs +35 -1
  91. package/dist/language/pl.mjs +31 -1
  92. package/dist/language/pt.cjs +21 -1
  93. package/dist/language/pt.mjs +17 -1
  94. package/dist/language/ro.cjs +21 -1
  95. package/dist/language/ro.mjs +17 -1
  96. package/dist/language/ru.cjs +22 -1
  97. package/dist/language/ru.mjs +18 -1
  98. package/dist/language/sk.cjs +22 -1
  99. package/dist/language/sk.mjs +18 -1
  100. package/dist/language/sl.cjs +98 -1
  101. package/dist/language/sl.mjs +94 -1
  102. package/dist/language/sq.cjs +21 -1
  103. package/dist/language/sq.mjs +17 -1
  104. package/dist/language/sr.cjs +22 -1
  105. package/dist/language/sr.mjs +18 -1
  106. package/dist/language/sv.cjs +21 -1
  107. package/dist/language/sv.mjs +17 -1
  108. package/dist/language/sw.cjs +23 -1
  109. package/dist/language/sw.d.cts +6 -6
  110. package/dist/language/sw.d.mts +6 -6
  111. package/dist/language/sw.d.ts +6 -6
  112. package/dist/language/sw.mjs +19 -1
  113. package/dist/language/ta.cjs +20 -1
  114. package/dist/language/ta.mjs +16 -1
  115. package/dist/language/te.cjs +20 -1
  116. package/dist/language/te.mjs +16 -1
  117. package/dist/language/th.cjs +9 -1
  118. package/dist/language/th.mjs +5 -1
  119. package/dist/language/tr.cjs +9 -1
  120. package/dist/language/tr.mjs +5 -1
  121. package/dist/language/uk.cjs +22 -1
  122. package/dist/language/uk.mjs +18 -1
  123. package/dist/language/ur.cjs +20 -1
  124. package/dist/language/ur.mjs +16 -1
  125. package/dist/language/util/create-duration-language.cjs +28 -1
  126. package/dist/language/util/create-duration-language.mjs +26 -1
  127. package/dist/language/util/duration/get-czech-or-slovak-form.cjs +18 -1
  128. package/dist/language/util/duration/get-czech-or-slovak-form.mjs +16 -1
  129. package/dist/language/util/duration/get-slavic-form.cjs +21 -1
  130. package/dist/language/util/duration/get-slavic-form.mjs +19 -1
  131. package/dist/language/util/validate-duration-language.cjs +34 -1
  132. package/dist/language/util/validate-duration-language.mjs +32 -1
  133. package/dist/language/uz.cjs +9 -1
  134. package/dist/language/uz.mjs +5 -1
  135. package/dist/language/uz_CYR.cjs +9 -1
  136. package/dist/language/uz_CYR.mjs +5 -1
  137. package/dist/language/vi.cjs +9 -1
  138. package/dist/language/vi.mjs +5 -1
  139. package/dist/language/zh_CN.cjs +9 -1
  140. package/dist/language/zh_CN.mjs +5 -1
  141. package/dist/language/zh_TW.cjs +9 -1
  142. package/dist/language/zh_TW.mjs +5 -1
  143. package/dist/packem_shared/duration-1XAT3kv0.cjs +218 -0
  144. package/dist/packem_shared/duration-CfhZBuZE.mjs +216 -0
  145. package/dist/packem_shared/parseBytes-CUjzg1ll.mjs +121 -0
  146. package/dist/packem_shared/parseBytes-QKt9uy0m.cjs +126 -0
  147. package/package.json +8 -8
  148. package/dist/packem_shared/duration-0OLTwN46.mjs +0 -1
  149. package/dist/packem_shared/duration-CU5vEjtr.cjs +0 -1
  150. package/dist/packem_shared/parseBytes-BMtRQhVC.mjs +0 -1
  151. package/dist/packem_shared/parseBytes-BWae2sJX.cjs +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visulima/humanizer",
3
- "version": "1.0.18",
3
+ "version": "1.0.20",
4
4
  "description": "Humanizer is a library for humanizing data in a human-readable form.",
5
5
  "keywords": [
6
6
  "visulima",
@@ -106,14 +106,14 @@
106
106
  "@secretlint/secretlint-rule-preset-recommend": "^9.0.0",
107
107
  "@types/ms": "^0.7.34",
108
108
  "@types/node": "18.19.15",
109
- "@visulima/packem": "1.9.2",
110
- "@visulima/path": "1.3.1",
109
+ "@visulima/packem": "1.10.7",
110
+ "@visulima/path": "1.3.3",
111
111
  "@vitest/coverage-v8": "^2.1.8",
112
112
  "@vitest/ui": "^2.1.8",
113
113
  "conventional-changelog-conventionalcommits": "8.0.0",
114
114
  "cross-env": "^7.0.3",
115
115
  "csv-parse": "^5.6.0",
116
- "esbuild": "0.24.0",
116
+ "esbuild": "0.24.2",
117
117
  "eslint": "8.57.0",
118
118
  "eslint-plugin-deprecation": "^3.0.0",
119
119
  "eslint-plugin-etc": "^2.0.3",
@@ -123,10 +123,10 @@
123
123
  "eslint-plugin-vitest-globals": "^1.5.0",
124
124
  "ms": "^2.1.3",
125
125
  "prettier": "^3.4.2",
126
- "rimraf": "5.0.9",
127
- "secretlint": "8.2.4",
128
- "semantic-release": "24.0.0",
129
- "typescript": "5.4.5",
126
+ "rimraf": "6.0.1",
127
+ "secretlint": "9.0.0",
128
+ "semantic-release": "24.2.1",
129
+ "typescript": "5.7.3",
130
130
  "vitest": "^2.1.8"
131
131
  },
132
132
  "engines": {
@@ -1 +0,0 @@
1
- var x=Object.defineProperty;var b=(o,t)=>x(o,"name",{value:t,configurable:!0});import{durationLanguage as M}from"../language/en.mjs";import P from"../language/util/validate-duration-language.mjs";var w=Object.defineProperty,g=b((o,t)=>w(o,"name",{value:t,configurable:!0}),"g");const N=g((o,t)=>{t=t||-1;const e=new RegExp(`^-?\\d+(?:.\\d{0,${t}})?`).exec(o.toString());return e===null?o:Number.parseFloat(e[0])},"toFixed"),v=g(({unitCount:o,unitName:t},e,l)=>{let{spacer:f}=l;const{maxDecimalPoints:s}=l;let r=".";l.decimal!==void 0?r=l.decimal:e.decimal!==void 0&&(r=e.decimal);let n;"digitReplacements"in l?n=l.digitReplacements:"_digitReplacements"in e&&(n=e._digitReplacements);let i,m=o;s!==void 0&&(m=N(o,s));const a=m.toString();if(!e._hideCountIf2||o!==2)if(n){i="";for(const d of a)i+=d==="."?r:n[d]}else i=a.replace(".",r);else i="";const u=e[t];let c=u;return typeof u=="function"&&(c=u(o)),e._hideCountIf2&&o===2&&(f=""),e._numberFirst?c+f+i:i+f+c},"renderPiece"),C=g((o,t)=>{const{units:e}=t;if(e.length===0)return[];const{unitMeasures:l}=t,f=t.largest??Number.POSITIVE_INFINITY,s={};let r,n,i,m=o;for(n=0;n<e.length;n++){r=e[n];const u=l[r];i=n===e.length-1?m/u:Math.floor(m/u),s[r]=i,m-=i*u}if(t.round){let u=f;for(n=0;n<e.length;n++)if(r=e[n],i=s[r],i!==0&&(u--,u===0)){for(let c=n+1;c<e.length;c++){const d=e[c],h=s[d];s[r]+=h*l[d]/l[r],s[d]=0}break}for(n=e.length-1;n>=0;n--){if(r=e[n],i=s[r],i===0)continue;const c=Math.round(i);if(s[r]=c,n===0)break;const d=e[n-1],h=l[d],p=Math.floor(c*l[r]/h);if(p)s[d]+=p,s[r]=0;else break}}const a=[];for(n=0;n<e.length&&a.length<f;n++){if(r=e[n],i=s[r],i&&!t.round&&a.length===f-1){let u,c=0;for(u=n+1,e.length;u<e.length;u++){const d=e[u];c+=s[d]*(t.unitMeasures[d]/t.unitMeasures[r])}i+=c,t.maxDecimalPoints!==void 0&&(i=N(i,t.maxDecimalPoints))}i&&a.push({unitCount:i,unitName:r})}return a},"getPieces"),I=g((o,t,e)=>{const{language:l,units:f}=t;if(o.length===0){const u=f.at(-1);return v({unitCount:0,unitName:u},l,t)}const{conjunction:s,serialComma:r}=t;let n=", ";t.delimiter!==void 0?n=t.delimiter:l.delimiter!==void 0&&(n=l.delimiter);let i="";t.timeAdverb&&e!==0&&(i=l.future??"",e<0&&(i=l.past??""));const m=[];for(const u of o){const c=u;m.push(v(c,l,t))}let a;return!s||o.length===1?a=m.join(n):o.length===2?a=m.join(s):a=m.slice(0,-1).join(n)+(r?",":"")+s+m.at(-1),i&&(a=i.replace("%s",a)),a},"formatPieces"),R=g((o,t)=>{if(Number.isNaN(o))throw new TypeError("Expected a valid number");if(typeof o!="number")throw new TypeError("Expected a number");const e={conjunction:"",language:M,round:!1,serialComma:!0,spacer:" ",timeAdverb:!1,unitMeasures:{d:864e5,h:36e5,m:6e4,mo:2629746e3,ms:1,s:1e3,w:6048e5,y:31556952e3},units:["w","d","h","m","s"],...t};P(e.language);const l=Math.abs(o),f=C(l,e);return I(f,e,o)},"duration");export{R as default};
@@ -1 +0,0 @@
1
- "use strict";var x=Object.defineProperty;var b=(r,t)=>x(r,"name",{value:t,configurable:!0});const M=require("../language/en.cjs"),P=require("../language/util/validate-duration-language.cjs");var _=Object.defineProperty,f=b((r,t)=>_(r,"name",{value:t,configurable:!0}),"g");const N=f((r,t)=>{t=t||-1;const e=new RegExp(`^-?\\d+(?:.\\d{0,${t}})?`).exec(r.toString());return e===null?r:Number.parseFloat(e[0])},"toFixed"),v=f(({unitCount:r,unitName:t},e,u)=>{let{spacer:g}=u;const{maxDecimalPoints:s}=u;let o=".";u.decimal!==void 0?o=u.decimal:e.decimal!==void 0&&(o=e.decimal);let n;"digitReplacements"in u?n=u.digitReplacements:"_digitReplacements"in e&&(n=e._digitReplacements);let i,m=r;s!==void 0&&(m=N(r,s));const c=m.toString();if(!e._hideCountIf2||r!==2)if(n){i="";for(const d of c)i+=d==="."?o:n[d]}else i=c.replace(".",o);else i="";const l=e[t];let a=l;return typeof l=="function"&&(a=l(r)),e._hideCountIf2&&r===2&&(g=""),e._numberFirst?a+g+i:i+g+a},"renderPiece"),w=f((r,t)=>{const{units:e}=t;if(e.length===0)return[];const{unitMeasures:u}=t,g=t.largest??Number.POSITIVE_INFINITY,s={};let o,n,i,m=r;for(n=0;n<e.length;n++){o=e[n];const l=u[o];i=n===e.length-1?m/l:Math.floor(m/l),s[o]=i,m-=i*l}if(t.round){let l=g;for(n=0;n<e.length;n++)if(o=e[n],i=s[o],i!==0&&(l--,l===0)){for(let a=n+1;a<e.length;a++){const d=e[a],h=s[d];s[o]+=h*u[d]/u[o],s[d]=0}break}for(n=e.length-1;n>=0;n--){if(o=e[n],i=s[o],i===0)continue;const a=Math.round(i);if(s[o]=a,n===0)break;const d=e[n-1],h=u[d],p=Math.floor(a*u[o]/h);if(p)s[d]+=p,s[o]=0;else break}}const c=[];for(n=0;n<e.length&&c.length<g;n++){if(o=e[n],i=s[o],i&&!t.round&&c.length===g-1){let l,a=0;for(l=n+1,e.length;l<e.length;l++){const d=e[l];a+=s[d]*(t.unitMeasures[d]/t.unitMeasures[o])}i+=a,t.maxDecimalPoints!==void 0&&(i=N(i,t.maxDecimalPoints))}i&&c.push({unitCount:i,unitName:o})}return c},"getPieces"),C=f((r,t,e)=>{const{language:u,units:g}=t;if(r.length===0){const l=g.at(-1);return v({unitCount:0,unitName:l},u,t)}const{conjunction:s,serialComma:o}=t;let n=", ";t.delimiter!==void 0?n=t.delimiter:u.delimiter!==void 0&&(n=u.delimiter);let i="";t.timeAdverb&&e!==0&&(i=u.future??"",e<0&&(i=u.past??""));const m=[];for(const l of r){const a=l;m.push(v(a,u,t))}let c;return!s||r.length===1?c=m.join(n):r.length===2?c=m.join(s):c=m.slice(0,-1).join(n)+(o?",":"")+s+m.at(-1),i&&(c=i.replace("%s",c)),c},"formatPieces"),I=f((r,t)=>{if(Number.isNaN(r))throw new TypeError("Expected a valid number");if(typeof r!="number")throw new TypeError("Expected a number");const e={conjunction:"",language:M.durationLanguage,round:!1,serialComma:!0,spacer:" ",timeAdverb:!1,unitMeasures:{d:864e5,h:36e5,m:6e4,mo:2629746e3,ms:1,s:1e3,w:6048e5,y:31556952e3},units:["w","d","h","m","s"],...t};P(e.language);const u=Math.abs(r),g=w(u,e);return C(g,e,r)},"duration");module.exports=I;
@@ -1 +0,0 @@
1
- var d=Object.defineProperty;var h=(e,t)=>d(e,"name",{value:t,configurable:!0});var w=Object.defineProperty,l=h((e,t)=>w(e,"name",{value:t,configurable:!0}),"a");const a=[{long:"Bytes",short:"Bytes"},{long:"Kilobytes",short:"KB"},{long:"Megabytes",short:"MB"},{long:"Gigabytes",short:"GB"},{long:"Terabytes",short:"TB"},{long:"Petabytes",short:"PB"},{long:"Exabytes",short:"EB"},{long:"Zettabytes",short:"ZB"},{long:"Yottabytes",short:"YB"}],x=l((e,t)=>{const o=new Intl.NumberFormat(t).format(11111).replaceAll(new RegExp("\\p{Number}","gu"),""),r=new Intl.NumberFormat(t).format(1.1).replaceAll(new RegExp("\\p{Number}","gu"),"");return Number.parseFloat(e.replaceAll(new RegExp(`\\${o}`,"g"),"").replace(new RegExp(`\\${r}`),"."))},"parseLocalizedNumber"),B=l(e=>{if(e===2)return 1024;if(e===10)return 1e3;throw new TypeError("Unsupported base.")},"fromBase"),M=l((e,t)=>{const o={base:2,locale:"en-US",...t};if(typeof e!="string"||e.length===0)throw new TypeError("Value is not a string or is empty.");if(e.length>100)throw new TypeError("Value exceeds the maximum length of 100 characters.");const r=/^(?<value>-?(?:\d+(([.,])\d+)*)?[.,]?\d+) *(?<type>bytes?|b|kb|kib|mb|mib|gb|gib|tb|tib|pb|pib|eb|eib|zb|zib|yb|yib|(kilo|kibi|mega|mebi|giga|gibi|tera|tebi|peta|pebi|exa|exbi|zetta|zebi|yotta|yobi)?bytes)?$/i.exec(e)?.groups;if(!r)return Number.NaN;const i=x(r.value,o.locale),n=(r.type??"Bytes").toUpperCase().replace(/^KIBI/,"KILO").replace(/^MIBI/,"MEGA").replace(/^GIBI/,"GIGA").replace(/^TEBI/,"TERA").replace(/^PEBI/,"PETA").replace(/^EXBI/,"EXA").replace(/^ZEBI/,"ZETTA").replace(/^YIBI/,"YOTTA").replace(/^(.)IB$/,"$1B"),b=a.findIndex(s=>s.short[0].toUpperCase()===n[0]),p=B(o.base);return i*p**b},"parseBytes"),N=l((e,t)=>{if(typeof e!="number"||!Number.isFinite(e))throw new TypeError("Bytesize is not a number.");const{base:o,decimals:r,locale:i,long:n,unit:b,...p}={base:2,decimals:0,locale:"en-US",long:!1,...t},s=B(o),f=Math.abs(e),c=t?.space??!0?" ":"",g=a.findIndex(m=>m.short===b);if(e===0){const m=Math.min(0,Math.max(g,a.length-1));return"0"+c+a[m][n?"long":"short"]}const u=g>=0?g:Math.min(Math.floor(Math.log(f)/Math.log(s)),a.length-1),I=a[u][n?"long":"short"],E=e/s**u,y=r<0?void 0:r;return new Intl.NumberFormat(i,{maximumFractionDigits:y,minimumFractionDigits:y,...p}).format(E)+c+I},"formatBytes");export{N as formatBytes,M as parseBytes};
@@ -1 +0,0 @@
1
- "use strict";var d=Object.defineProperty;var h=(e,t)=>d(e,"name",{value:t,configurable:!0});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var w=Object.defineProperty,l=h((e,t)=>w(e,"name",{value:t,configurable:!0}),"a");const a=[{long:"Bytes",short:"Bytes"},{long:"Kilobytes",short:"KB"},{long:"Megabytes",short:"MB"},{long:"Gigabytes",short:"GB"},{long:"Terabytes",short:"TB"},{long:"Petabytes",short:"PB"},{long:"Exabytes",short:"EB"},{long:"Zettabytes",short:"ZB"},{long:"Yottabytes",short:"YB"}],x=l((e,t)=>{const o=new Intl.NumberFormat(t).format(11111).replaceAll(new RegExp("\\p{Number}","gu"),""),r=new Intl.NumberFormat(t).format(1.1).replaceAll(new RegExp("\\p{Number}","gu"),"");return Number.parseFloat(e.replaceAll(new RegExp(`\\${o}`,"g"),"").replace(new RegExp(`\\${r}`),"."))},"parseLocalizedNumber"),B=l(e=>{if(e===2)return 1024;if(e===10)return 1e3;throw new TypeError("Unsupported base.")},"fromBase"),T=l((e,t)=>{const o={base:2,locale:"en-US",...t};if(typeof e!="string"||e.length===0)throw new TypeError("Value is not a string or is empty.");if(e.length>100)throw new TypeError("Value exceeds the maximum length of 100 characters.");const r=/^(?<value>-?(?:\d+(([.,])\d+)*)?[.,]?\d+) *(?<type>bytes?|b|kb|kib|mb|mib|gb|gib|tb|tib|pb|pib|eb|eib|zb|zib|yb|yib|(kilo|kibi|mega|mebi|giga|gibi|tera|tebi|peta|pebi|exa|exbi|zetta|zebi|yotta|yobi)?bytes)?$/i.exec(e)?.groups;if(!r)return Number.NaN;const i=x(r.value,o.locale),s=(r.type??"Bytes").toUpperCase().replace(/^KIBI/,"KILO").replace(/^MIBI/,"MEGA").replace(/^GIBI/,"GIGA").replace(/^TEBI/,"TERA").replace(/^PEBI/,"PETA").replace(/^EXBI/,"EXA").replace(/^ZEBI/,"ZETTA").replace(/^YIBI/,"YOTTA").replace(/^(.)IB$/,"$1B"),b=a.findIndex(n=>n.short[0].toUpperCase()===s[0]),p=B(o.base);return i*p**b},"parseBytes"),M=l((e,t)=>{if(typeof e!="number"||!Number.isFinite(e))throw new TypeError("Bytesize is not a number.");const{base:o,decimals:r,locale:i,long:s,unit:b,...p}={base:2,decimals:0,locale:"en-US",long:!1,...t},n=B(o),f=Math.abs(e),c=t?.space??!0?" ":"",g=a.findIndex(m=>m.short===b);if(e===0){const m=Math.min(0,Math.max(g,a.length-1));return"0"+c+a[m][s?"long":"short"]}const y=g>=0?g:Math.min(Math.floor(Math.log(f)/Math.log(n)),a.length-1),I=a[y][s?"long":"short"],E=e/n**y,u=r<0?void 0:r;return new Intl.NumberFormat(i,{maximumFractionDigits:u,minimumFractionDigits:u,...p}).format(E)+c+I},"formatBytes");exports.formatBytes=M;exports.parseBytes=T;