@visulima/humanizer 1.0.20 → 1.1.1

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 (207) hide show
  1. package/README.md +1 -1
  2. package/dist/index.cjs +1 -1
  3. package/dist/index.d.cts +117 -31
  4. package/dist/index.d.mts +117 -31
  5. package/dist/index.d.ts +117 -31
  6. package/dist/index.mjs +1 -1
  7. package/dist/language/af.d.cts +1 -1
  8. package/dist/language/af.d.mts +1 -1
  9. package/dist/language/af.d.ts +1 -1
  10. package/dist/language/am.d.cts +1 -1
  11. package/dist/language/am.d.mts +1 -1
  12. package/dist/language/am.d.ts +1 -1
  13. package/dist/language/ar.d.cts +1 -1
  14. package/dist/language/ar.d.mts +1 -1
  15. package/dist/language/ar.d.ts +1 -1
  16. package/dist/language/bg.d.cts +1 -1
  17. package/dist/language/bg.d.mts +1 -1
  18. package/dist/language/bg.d.ts +1 -1
  19. package/dist/language/bn.d.cts +1 -1
  20. package/dist/language/bn.d.mts +1 -1
  21. package/dist/language/bn.d.ts +1 -1
  22. package/dist/language/ca.d.cts +1 -1
  23. package/dist/language/ca.d.mts +1 -1
  24. package/dist/language/ca.d.ts +1 -1
  25. package/dist/language/ckb.d.cts +1 -1
  26. package/dist/language/ckb.d.mts +1 -1
  27. package/dist/language/ckb.d.ts +1 -1
  28. package/dist/language/cs.d.cts +1 -1
  29. package/dist/language/cs.d.mts +1 -1
  30. package/dist/language/cs.d.ts +1 -1
  31. package/dist/language/cy.d.cts +1 -1
  32. package/dist/language/cy.d.mts +1 -1
  33. package/dist/language/cy.d.ts +1 -1
  34. package/dist/language/da.d.cts +1 -1
  35. package/dist/language/da.d.mts +1 -1
  36. package/dist/language/da.d.ts +1 -1
  37. package/dist/language/de.d.cts +1 -1
  38. package/dist/language/de.d.mts +1 -1
  39. package/dist/language/de.d.ts +1 -1
  40. package/dist/language/el.d.cts +1 -1
  41. package/dist/language/el.d.mts +1 -1
  42. package/dist/language/el.d.ts +1 -1
  43. package/dist/language/en.d.cts +1 -1
  44. package/dist/language/en.d.mts +1 -1
  45. package/dist/language/en.d.ts +1 -1
  46. package/dist/language/eo.d.cts +1 -1
  47. package/dist/language/eo.d.mts +1 -1
  48. package/dist/language/eo.d.ts +1 -1
  49. package/dist/language/es.d.cts +1 -1
  50. package/dist/language/es.d.mts +1 -1
  51. package/dist/language/es.d.ts +1 -1
  52. package/dist/language/et.d.cts +1 -1
  53. package/dist/language/et.d.mts +1 -1
  54. package/dist/language/et.d.ts +1 -1
  55. package/dist/language/eu.d.cts +1 -1
  56. package/dist/language/eu.d.mts +1 -1
  57. package/dist/language/eu.d.ts +1 -1
  58. package/dist/language/fa.d.cts +1 -1
  59. package/dist/language/fa.d.mts +1 -1
  60. package/dist/language/fa.d.ts +1 -1
  61. package/dist/language/fi.d.cts +1 -1
  62. package/dist/language/fi.d.mts +1 -1
  63. package/dist/language/fi.d.ts +1 -1
  64. package/dist/language/fo.d.cts +1 -1
  65. package/dist/language/fo.d.mts +1 -1
  66. package/dist/language/fo.d.ts +1 -1
  67. package/dist/language/fr.d.cts +1 -1
  68. package/dist/language/fr.d.mts +1 -1
  69. package/dist/language/fr.d.ts +1 -1
  70. package/dist/language/he.d.cts +1 -1
  71. package/dist/language/he.d.mts +1 -1
  72. package/dist/language/he.d.ts +1 -1
  73. package/dist/language/hi.d.cts +1 -1
  74. package/dist/language/hi.d.mts +1 -1
  75. package/dist/language/hi.d.ts +1 -1
  76. package/dist/language/hr.d.cts +1 -1
  77. package/dist/language/hr.d.mts +1 -1
  78. package/dist/language/hr.d.ts +1 -1
  79. package/dist/language/hu.d.cts +1 -1
  80. package/dist/language/hu.d.mts +1 -1
  81. package/dist/language/hu.d.ts +1 -1
  82. package/dist/language/id.d.cts +1 -1
  83. package/dist/language/id.d.mts +1 -1
  84. package/dist/language/id.d.ts +1 -1
  85. package/dist/language/is.d.cts +1 -1
  86. package/dist/language/is.d.mts +1 -1
  87. package/dist/language/is.d.ts +1 -1
  88. package/dist/language/it.d.cts +1 -1
  89. package/dist/language/it.d.mts +1 -1
  90. package/dist/language/it.d.ts +1 -1
  91. package/dist/language/ja.d.cts +1 -1
  92. package/dist/language/ja.d.mts +1 -1
  93. package/dist/language/ja.d.ts +1 -1
  94. package/dist/language/km.d.cts +1 -1
  95. package/dist/language/km.d.mts +1 -1
  96. package/dist/language/km.d.ts +1 -1
  97. package/dist/language/kn.d.cts +1 -1
  98. package/dist/language/kn.d.mts +1 -1
  99. package/dist/language/kn.d.ts +1 -1
  100. package/dist/language/ko.d.cts +1 -1
  101. package/dist/language/ko.d.mts +1 -1
  102. package/dist/language/ko.d.ts +1 -1
  103. package/dist/language/ku.d.cts +1 -1
  104. package/dist/language/ku.d.mts +1 -1
  105. package/dist/language/ku.d.ts +1 -1
  106. package/dist/language/lo.d.cts +1 -1
  107. package/dist/language/lo.d.mts +1 -1
  108. package/dist/language/lo.d.ts +1 -1
  109. package/dist/language/lt.d.cts +1 -1
  110. package/dist/language/lt.d.mts +1 -1
  111. package/dist/language/lt.d.ts +1 -1
  112. package/dist/language/lv.d.cts +1 -1
  113. package/dist/language/lv.d.mts +1 -1
  114. package/dist/language/lv.d.ts +1 -1
  115. package/dist/language/mk.d.cts +1 -1
  116. package/dist/language/mk.d.mts +1 -1
  117. package/dist/language/mk.d.ts +1 -1
  118. package/dist/language/mn.d.cts +1 -1
  119. package/dist/language/mn.d.mts +1 -1
  120. package/dist/language/mn.d.ts +1 -1
  121. package/dist/language/mr.d.cts +1 -1
  122. package/dist/language/mr.d.mts +1 -1
  123. package/dist/language/mr.d.ts +1 -1
  124. package/dist/language/ms.d.cts +1 -1
  125. package/dist/language/ms.d.mts +1 -1
  126. package/dist/language/ms.d.ts +1 -1
  127. package/dist/language/nl.d.cts +1 -1
  128. package/dist/language/nl.d.mts +1 -1
  129. package/dist/language/nl.d.ts +1 -1
  130. package/dist/language/no.d.cts +1 -1
  131. package/dist/language/no.d.mts +1 -1
  132. package/dist/language/no.d.ts +1 -1
  133. package/dist/language/pl.d.cts +1 -1
  134. package/dist/language/pl.d.mts +1 -1
  135. package/dist/language/pl.d.ts +1 -1
  136. package/dist/language/pt.d.cts +1 -1
  137. package/dist/language/pt.d.mts +1 -1
  138. package/dist/language/pt.d.ts +1 -1
  139. package/dist/language/ro.d.cts +1 -1
  140. package/dist/language/ro.d.mts +1 -1
  141. package/dist/language/ro.d.ts +1 -1
  142. package/dist/language/ru.d.cts +1 -1
  143. package/dist/language/ru.d.mts +1 -1
  144. package/dist/language/ru.d.ts +1 -1
  145. package/dist/language/sk.d.cts +1 -1
  146. package/dist/language/sk.d.mts +1 -1
  147. package/dist/language/sk.d.ts +1 -1
  148. package/dist/language/sl.d.cts +1 -1
  149. package/dist/language/sl.d.mts +1 -1
  150. package/dist/language/sl.d.ts +1 -1
  151. package/dist/language/sq.d.cts +1 -1
  152. package/dist/language/sq.d.mts +1 -1
  153. package/dist/language/sq.d.ts +1 -1
  154. package/dist/language/sr.d.cts +1 -1
  155. package/dist/language/sr.d.mts +1 -1
  156. package/dist/language/sr.d.ts +1 -1
  157. package/dist/language/sv.d.cts +1 -1
  158. package/dist/language/sv.d.mts +1 -1
  159. package/dist/language/sv.d.ts +1 -1
  160. package/dist/language/sw.d.cts +1 -1
  161. package/dist/language/sw.d.mts +1 -1
  162. package/dist/language/sw.d.ts +1 -1
  163. package/dist/language/ta.d.cts +1 -1
  164. package/dist/language/ta.d.mts +1 -1
  165. package/dist/language/ta.d.ts +1 -1
  166. package/dist/language/te.d.cts +1 -1
  167. package/dist/language/te.d.mts +1 -1
  168. package/dist/language/te.d.ts +1 -1
  169. package/dist/language/th.d.cts +1 -1
  170. package/dist/language/th.d.mts +1 -1
  171. package/dist/language/th.d.ts +1 -1
  172. package/dist/language/tr.d.cts +1 -1
  173. package/dist/language/tr.d.mts +1 -1
  174. package/dist/language/tr.d.ts +1 -1
  175. package/dist/language/uk.d.cts +1 -1
  176. package/dist/language/uk.d.mts +1 -1
  177. package/dist/language/uk.d.ts +1 -1
  178. package/dist/language/ur.d.cts +1 -1
  179. package/dist/language/ur.d.mts +1 -1
  180. package/dist/language/ur.d.ts +1 -1
  181. package/dist/language/util/create-duration-language.d.cts +1 -1
  182. package/dist/language/util/create-duration-language.d.mts +1 -1
  183. package/dist/language/util/create-duration-language.d.ts +1 -1
  184. package/dist/language/util/validate-duration-language.d.cts +1 -1
  185. package/dist/language/util/validate-duration-language.d.mts +1 -1
  186. package/dist/language/util/validate-duration-language.d.ts +1 -1
  187. package/dist/language/uz.d.cts +1 -1
  188. package/dist/language/uz.d.mts +1 -1
  189. package/dist/language/uz.d.ts +1 -1
  190. package/dist/language/uz_CYR.d.cts +1 -1
  191. package/dist/language/uz_CYR.d.mts +1 -1
  192. package/dist/language/uz_CYR.d.ts +1 -1
  193. package/dist/language/vi.d.cts +1 -1
  194. package/dist/language/vi.d.mts +1 -1
  195. package/dist/language/vi.d.ts +1 -1
  196. package/dist/language/zh_CN.d.cts +1 -1
  197. package/dist/language/zh_CN.d.mts +1 -1
  198. package/dist/language/zh_CN.d.ts +1 -1
  199. package/dist/language/zh_TW.d.cts +1 -1
  200. package/dist/language/zh_TW.d.mts +1 -1
  201. package/dist/language/zh_TW.d.ts +1 -1
  202. package/dist/packem_shared/{parseBytes-CUjzg1ll.mjs → parseBytes-C9YuToSz.mjs} +166 -44
  203. package/dist/packem_shared/{parseBytes-QKt9uy0m.cjs → parseBytes-DEYk0hnt.cjs} +166 -44
  204. package/dist/packem_shared/{types-Wuwd0WUC.d.mts → types-4Kt5giRg.d.cts} +1 -0
  205. package/dist/packem_shared/{types-Wuwd0WUC.d.cts → types-4Kt5giRg.d.mjs} +1 -0
  206. package/dist/packem_shared/{types-Wuwd0WUC.d.mjs → types-4Kt5giRg.d.mts} +1 -0
  207. package/package.json +2 -65
@@ -1,4 +1,4 @@
1
- import { b as DurationLanguage } from '../packem_shared/types-Wuwd0WUC.cjs';
1
+ import { b as DurationLanguage } from '../packem_shared/types-4Kt5giRg.cjs';
2
2
 
3
3
  declare const durationLanguage: DurationLanguage;
4
4
 
@@ -1,4 +1,4 @@
1
- import { b as DurationLanguage } from '../packem_shared/types-Wuwd0WUC.mjs';
1
+ import { b as DurationLanguage } from '../packem_shared/types-4Kt5giRg.mjs';
2
2
 
3
3
  declare const durationLanguage: DurationLanguage;
4
4
 
@@ -1,4 +1,4 @@
1
- import { b as DurationLanguage } from '../packem_shared/types-Wuwd0WUC.d.mjs';
1
+ import { b as DurationLanguage } from '../packem_shared/types-4Kt5giRg.d.mjs';
2
2
 
3
3
  declare const durationLanguage: DurationLanguage;
4
4
 
@@ -1,4 +1,4 @@
1
- import { b as DurationLanguage } from '../packem_shared/types-Wuwd0WUC.cjs';
1
+ import { b as DurationLanguage } from '../packem_shared/types-4Kt5giRg.cjs';
2
2
 
3
3
  declare const durationLanguage: DurationLanguage;
4
4
 
@@ -1,4 +1,4 @@
1
- import { b as DurationLanguage } from '../packem_shared/types-Wuwd0WUC.mjs';
1
+ import { b as DurationLanguage } from '../packem_shared/types-4Kt5giRg.mjs';
2
2
 
3
3
  declare const durationLanguage: DurationLanguage;
4
4
 
@@ -1,4 +1,4 @@
1
- import { b as DurationLanguage } from '../packem_shared/types-Wuwd0WUC.d.mjs';
1
+ import { b as DurationLanguage } from '../packem_shared/types-4Kt5giRg.d.mjs';
2
2
 
3
3
  declare const durationLanguage: DurationLanguage;
4
4
 
@@ -1,43 +1,159 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
- const BYTE_SIZES = [
4
- {
5
- long: "Bytes",
6
- short: "Bytes"
7
- },
8
- {
9
- long: "Kilobytes",
10
- short: "KB"
11
- },
12
- {
13
- long: "Megabytes",
14
- short: "MB"
15
- },
16
- {
17
- long: "Gigabytes",
18
- short: "GB"
19
- },
20
- {
21
- long: "Terabytes",
22
- short: "TB"
23
- },
24
- {
25
- long: "Petabytes",
26
- short: "PB"
27
- },
28
- {
29
- long: "Exabytes",
30
- short: "EB"
31
- },
32
- {
33
- long: "Zettabytes",
34
- short: "ZB"
35
- },
36
- {
37
- long: "Yottabytes",
38
- short: "YB"
39
- }
40
- ];
3
+ const BYTE_SIZES = {
4
+ iec: [
5
+ {
6
+ long: "Bytes",
7
+ short: "B"
8
+ },
9
+ {
10
+ long: "Kibibytes",
11
+ short: "KiB"
12
+ },
13
+ {
14
+ long: "Mebibytes",
15
+ short: "MiB"
16
+ },
17
+ {
18
+ long: "Gibibytes",
19
+ short: "GiB"
20
+ },
21
+ {
22
+ long: "Tebibytes",
23
+ short: "TiB"
24
+ },
25
+ {
26
+ long: "Pebibytes",
27
+ short: "PiB"
28
+ },
29
+ {
30
+ long: "Exbibytes",
31
+ short: "EiB"
32
+ },
33
+ {
34
+ long: "Zebibytes",
35
+ short: "ZiB"
36
+ },
37
+ {
38
+ long: "Yobibytes",
39
+ short: "YiB"
40
+ }
41
+ ],
42
+ iec_octet: [
43
+ {
44
+ long: "Octets",
45
+ short: "o"
46
+ },
47
+ {
48
+ long: "Kibioctets",
49
+ short: "Kio"
50
+ },
51
+ {
52
+ long: "Mebioctets",
53
+ short: "Mio"
54
+ },
55
+ {
56
+ long: "Gibioctets",
57
+ short: "Gio"
58
+ },
59
+ {
60
+ long: "Tebioctets",
61
+ short: "Tio"
62
+ },
63
+ {
64
+ long: "Pebioctets",
65
+ short: "Pio"
66
+ },
67
+ {
68
+ long: "Exbioctets",
69
+ short: "Eio"
70
+ },
71
+ {
72
+ long: "Zebioctets",
73
+ short: "Zio"
74
+ },
75
+ {
76
+ long: "Yobioctets",
77
+ short: "Yio"
78
+ }
79
+ ],
80
+ metric: [
81
+ {
82
+ long: "Bytes",
83
+ short: "Bytes"
84
+ },
85
+ {
86
+ long: "Kilobytes",
87
+ short: "KB"
88
+ },
89
+ {
90
+ long: "Megabytes",
91
+ short: "MB"
92
+ },
93
+ {
94
+ long: "Gigabytes",
95
+ short: "GB"
96
+ },
97
+ {
98
+ long: "Terabytes",
99
+ short: "TB"
100
+ },
101
+ {
102
+ long: "Petabytes",
103
+ short: "PB"
104
+ },
105
+ {
106
+ long: "Exabytes",
107
+ short: "EB"
108
+ },
109
+ {
110
+ long: "Zettabytes",
111
+ short: "ZB"
112
+ },
113
+ {
114
+ long: "Yottabytes",
115
+ short: "YB"
116
+ }
117
+ ],
118
+ metric_octet: [
119
+ {
120
+ long: "Octets",
121
+ short: "o"
122
+ },
123
+ {
124
+ long: "Kilo-octets",
125
+ short: "ko"
126
+ },
127
+ {
128
+ long: "Mega-octets",
129
+ short: "Mo"
130
+ },
131
+ {
132
+ long: "Giga-octets",
133
+ short: "Go"
134
+ },
135
+ {
136
+ long: "Tera-octets",
137
+ short: "To"
138
+ },
139
+ {
140
+ long: "Peta-octets",
141
+ short: "Po"
142
+ },
143
+ {
144
+ long: "Exa-octets",
145
+ short: "Eo"
146
+ },
147
+ {
148
+ long: "Zetta-octets",
149
+ short: "Zo"
150
+ },
151
+ {
152
+ long: "Yotta-octets",
153
+ short: "Yo"
154
+ }
155
+ ]
156
+ };
41
157
  const parseLocalizedNumber = /* @__PURE__ */ __name((stringNumber, locale) => {
42
158
  const thousandSeparator = new Intl.NumberFormat(locale).format(11111).replaceAll(new RegExp("\\p{Number}", "gu"), "");
43
159
  const decimalSeparator = new Intl.NumberFormat(locale).format(1.1).replaceAll(new RegExp("\\p{Number}", "gu"), "");
@@ -56,6 +172,7 @@ const parseBytes = /* @__PURE__ */ __name((value, options) => {
56
172
  const config = {
57
173
  base: 2,
58
174
  locale: "en-US",
175
+ units: "metric",
59
176
  ...options
60
177
  };
61
178
  if (typeof value !== "string" || value.length === 0) {
@@ -76,7 +193,7 @@ const parseBytes = /* @__PURE__ */ __name((value, options) => {
76
193
  }
77
194
  const localizedNumber = parseLocalizedNumber(groups.value, config.locale);
78
195
  const type = (groups.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");
79
- const level = BYTE_SIZES.findIndex((unit) => unit.short[0].toUpperCase() === type[0]);
196
+ const level = BYTE_SIZES[config.units].findIndex((unit) => unit.short[0].toUpperCase() === type[0]);
80
197
  const base = fromBase(config.base);
81
198
  return localizedNumber * base ** level;
82
199
  }, "parseBytes");
@@ -90,28 +207,33 @@ const formatBytes = /* @__PURE__ */ __name((bytes, options) => {
90
207
  locale,
91
208
  long,
92
209
  unit: requestedUnit,
210
+ units,
93
211
  ...l10nOptions
94
212
  } = {
95
213
  base: 2,
96
214
  decimals: 0,
97
215
  locale: "en-US",
98
216
  long: false,
217
+ units: "metric",
99
218
  ...options
100
219
  };
101
220
  const base = fromBase(givenBase);
102
221
  const absoluteBytes = Math.abs(bytes);
103
222
  const space = options?.space ?? true ? " " : "";
104
- const requestedUnitIndex = BYTE_SIZES.findIndex((unit2) => unit2.short === requestedUnit);
223
+ const referenceTable = BYTE_SIZES[units];
224
+ const requestedUnitIndex = referenceTable.findIndex((unit2) => unit2.short === requestedUnit);
105
225
  if (bytes === 0) {
106
- const level2 = Math.min(0, Math.max(requestedUnitIndex, BYTE_SIZES.length - 1));
107
- return "0" + space + BYTE_SIZES[level2][long ? "long" : "short"];
226
+ const level2 = Math.min(0, Math.max(requestedUnitIndex, referenceTable.length - 1));
227
+ return "0" + space + referenceTable[level2][long ? "long" : "short"];
108
228
  }
109
- const level = requestedUnitIndex >= 0 ? requestedUnitIndex : Math.min(Math.floor(Math.log(absoluteBytes) / Math.log(base)), BYTE_SIZES.length - 1);
110
- const unit = BYTE_SIZES[level][long ? "long" : "short"];
229
+ const level = requestedUnitIndex >= 0 ? requestedUnitIndex : Math.min(Math.floor(Math.log(absoluteBytes) / Math.log(base)), referenceTable.length - 1);
230
+ const unit = referenceTable[level][long ? "long" : "short"];
111
231
  const value = bytes / base ** level;
112
232
  const fractionDigits = decimals < 0 ? undefined : decimals;
113
233
  const formattedValue = new Intl.NumberFormat(locale, {
234
+ // @ts-expect-error - should be overridden by the options
114
235
  maximumFractionDigits: fractionDigits,
236
+ // @ts-expect-error - should be overridden by the options
115
237
  minimumFractionDigits: fractionDigits,
116
238
  ...l10nOptions
117
239
  }).format(value);
@@ -4,44 +4,160 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
4
4
 
5
5
  var __defProp = Object.defineProperty;
6
6
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
- const BYTE_SIZES = [
8
- {
9
- long: "Bytes",
10
- short: "Bytes"
11
- },
12
- {
13
- long: "Kilobytes",
14
- short: "KB"
15
- },
16
- {
17
- long: "Megabytes",
18
- short: "MB"
19
- },
20
- {
21
- long: "Gigabytes",
22
- short: "GB"
23
- },
24
- {
25
- long: "Terabytes",
26
- short: "TB"
27
- },
28
- {
29
- long: "Petabytes",
30
- short: "PB"
31
- },
32
- {
33
- long: "Exabytes",
34
- short: "EB"
35
- },
36
- {
37
- long: "Zettabytes",
38
- short: "ZB"
39
- },
40
- {
41
- long: "Yottabytes",
42
- short: "YB"
43
- }
44
- ];
7
+ const BYTE_SIZES = {
8
+ iec: [
9
+ {
10
+ long: "Bytes",
11
+ short: "B"
12
+ },
13
+ {
14
+ long: "Kibibytes",
15
+ short: "KiB"
16
+ },
17
+ {
18
+ long: "Mebibytes",
19
+ short: "MiB"
20
+ },
21
+ {
22
+ long: "Gibibytes",
23
+ short: "GiB"
24
+ },
25
+ {
26
+ long: "Tebibytes",
27
+ short: "TiB"
28
+ },
29
+ {
30
+ long: "Pebibytes",
31
+ short: "PiB"
32
+ },
33
+ {
34
+ long: "Exbibytes",
35
+ short: "EiB"
36
+ },
37
+ {
38
+ long: "Zebibytes",
39
+ short: "ZiB"
40
+ },
41
+ {
42
+ long: "Yobibytes",
43
+ short: "YiB"
44
+ }
45
+ ],
46
+ iec_octet: [
47
+ {
48
+ long: "Octets",
49
+ short: "o"
50
+ },
51
+ {
52
+ long: "Kibioctets",
53
+ short: "Kio"
54
+ },
55
+ {
56
+ long: "Mebioctets",
57
+ short: "Mio"
58
+ },
59
+ {
60
+ long: "Gibioctets",
61
+ short: "Gio"
62
+ },
63
+ {
64
+ long: "Tebioctets",
65
+ short: "Tio"
66
+ },
67
+ {
68
+ long: "Pebioctets",
69
+ short: "Pio"
70
+ },
71
+ {
72
+ long: "Exbioctets",
73
+ short: "Eio"
74
+ },
75
+ {
76
+ long: "Zebioctets",
77
+ short: "Zio"
78
+ },
79
+ {
80
+ long: "Yobioctets",
81
+ short: "Yio"
82
+ }
83
+ ],
84
+ metric: [
85
+ {
86
+ long: "Bytes",
87
+ short: "Bytes"
88
+ },
89
+ {
90
+ long: "Kilobytes",
91
+ short: "KB"
92
+ },
93
+ {
94
+ long: "Megabytes",
95
+ short: "MB"
96
+ },
97
+ {
98
+ long: "Gigabytes",
99
+ short: "GB"
100
+ },
101
+ {
102
+ long: "Terabytes",
103
+ short: "TB"
104
+ },
105
+ {
106
+ long: "Petabytes",
107
+ short: "PB"
108
+ },
109
+ {
110
+ long: "Exabytes",
111
+ short: "EB"
112
+ },
113
+ {
114
+ long: "Zettabytes",
115
+ short: "ZB"
116
+ },
117
+ {
118
+ long: "Yottabytes",
119
+ short: "YB"
120
+ }
121
+ ],
122
+ metric_octet: [
123
+ {
124
+ long: "Octets",
125
+ short: "o"
126
+ },
127
+ {
128
+ long: "Kilo-octets",
129
+ short: "ko"
130
+ },
131
+ {
132
+ long: "Mega-octets",
133
+ short: "Mo"
134
+ },
135
+ {
136
+ long: "Giga-octets",
137
+ short: "Go"
138
+ },
139
+ {
140
+ long: "Tera-octets",
141
+ short: "To"
142
+ },
143
+ {
144
+ long: "Peta-octets",
145
+ short: "Po"
146
+ },
147
+ {
148
+ long: "Exa-octets",
149
+ short: "Eo"
150
+ },
151
+ {
152
+ long: "Zetta-octets",
153
+ short: "Zo"
154
+ },
155
+ {
156
+ long: "Yotta-octets",
157
+ short: "Yo"
158
+ }
159
+ ]
160
+ };
45
161
  const parseLocalizedNumber = /* @__PURE__ */ __name((stringNumber, locale) => {
46
162
  const thousandSeparator = new Intl.NumberFormat(locale).format(11111).replaceAll(new RegExp("\\p{Number}", "gu"), "");
47
163
  const decimalSeparator = new Intl.NumberFormat(locale).format(1.1).replaceAll(new RegExp("\\p{Number}", "gu"), "");
@@ -60,6 +176,7 @@ const parseBytes = /* @__PURE__ */ __name((value, options) => {
60
176
  const config = {
61
177
  base: 2,
62
178
  locale: "en-US",
179
+ units: "metric",
63
180
  ...options
64
181
  };
65
182
  if (typeof value !== "string" || value.length === 0) {
@@ -80,7 +197,7 @@ const parseBytes = /* @__PURE__ */ __name((value, options) => {
80
197
  }
81
198
  const localizedNumber = parseLocalizedNumber(groups.value, config.locale);
82
199
  const type = (groups.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");
83
- const level = BYTE_SIZES.findIndex((unit) => unit.short[0].toUpperCase() === type[0]);
200
+ const level = BYTE_SIZES[config.units].findIndex((unit) => unit.short[0].toUpperCase() === type[0]);
84
201
  const base = fromBase(config.base);
85
202
  return localizedNumber * base ** level;
86
203
  }, "parseBytes");
@@ -94,28 +211,33 @@ const formatBytes = /* @__PURE__ */ __name((bytes, options) => {
94
211
  locale,
95
212
  long,
96
213
  unit: requestedUnit,
214
+ units,
97
215
  ...l10nOptions
98
216
  } = {
99
217
  base: 2,
100
218
  decimals: 0,
101
219
  locale: "en-US",
102
220
  long: false,
221
+ units: "metric",
103
222
  ...options
104
223
  };
105
224
  const base = fromBase(givenBase);
106
225
  const absoluteBytes = Math.abs(bytes);
107
226
  const space = options?.space ?? true ? " " : "";
108
- const requestedUnitIndex = BYTE_SIZES.findIndex((unit2) => unit2.short === requestedUnit);
227
+ const referenceTable = BYTE_SIZES[units];
228
+ const requestedUnitIndex = referenceTable.findIndex((unit2) => unit2.short === requestedUnit);
109
229
  if (bytes === 0) {
110
- const level2 = Math.min(0, Math.max(requestedUnitIndex, BYTE_SIZES.length - 1));
111
- return "0" + space + BYTE_SIZES[level2][long ? "long" : "short"];
230
+ const level2 = Math.min(0, Math.max(requestedUnitIndex, referenceTable.length - 1));
231
+ return "0" + space + referenceTable[level2][long ? "long" : "short"];
112
232
  }
113
- const level = requestedUnitIndex >= 0 ? requestedUnitIndex : Math.min(Math.floor(Math.log(absoluteBytes) / Math.log(base)), BYTE_SIZES.length - 1);
114
- const unit = BYTE_SIZES[level][long ? "long" : "short"];
233
+ const level = requestedUnitIndex >= 0 ? requestedUnitIndex : Math.min(Math.floor(Math.log(absoluteBytes) / Math.log(base)), referenceTable.length - 1);
234
+ const unit = referenceTable[level][long ? "long" : "short"];
115
235
  const value = bytes / base ** level;
116
236
  const fractionDigits = decimals < 0 ? undefined : decimals;
117
237
  const formattedValue = new Intl.NumberFormat(locale, {
238
+ // @ts-expect-error - should be overridden by the options
118
239
  maximumFractionDigits: fractionDigits,
240
+ // @ts-expect-error - should be overridden by the options
119
241
  minimumFractionDigits: fractionDigits,
120
242
  ...l10nOptions
121
243
  }).format(value);
@@ -1,6 +1,7 @@
1
1
  interface BytesOptions {
2
2
  base?: 2 | 10;
3
3
  locale?: IntlLocale;
4
+ units?: "iec_octet" | "iec" | "metric_octet" | "metric";
4
5
  }
5
6
  type IntlLocale = "af-NA" | "af" | "agq" | "ak" | "am" | "ar-AE" | "ar-BH" | "ar-DJ" | "ar-DZ" | "ar-EG" | "ar-EH" | "ar-ER" | "ar-IL" | "ar-IQ" | "ar-JO" | "ar-KM" | "ar-KW" | "ar-LB" | "ar-LY" | "ar-MA" | "ar-MR" | "ar-OM" | "ar-PS" | "ar-QA" | "ar-SA" | "ar-SD" | "ar-SO" | "ar-SS" | "ar-SY" | "ar-TD" | "ar-TN" | "ar-YE" | "ar" | "as" | "asa" | "ast" | "az-Cyrl" | "az-Latn" | "az" | "bas" | "be-tarask" | "be" | "bem" | "bez" | "bg" | "bm" | "bn-IN" | "bn" | "bo-IN" | "bo" | "br" | "brx" | "bs-Cyrl" | "bs-Latn" | "bs" | "ca-AD" | "ca-ES-valencia" | "ca-FR" | "ca-IT" | "ca" | "ccp-IN" | "ccp" | "ce" | "ceb" | "cgg" | "chr" | "ckb-IR" | "ckb" | "cs" | "cy" | "da-GL" | "da" | "dav" | "de-AT" | "de-BE" | "de-CH" | "de-IT" | "de-LI" | "de-LU" | "de" | "dje" | "doi" | "dsb" | "dua" | "dyo" | "dz" | "ebu" | "ee-TG" | "ee" | "el-CY" | "el" | "en-001" | "en-150" | "en-AE" | "en-AG" | "en-AI" | "en-AS" | "en-AT" | "en-AU" | "en-BB" | "en-BE" | "en-BI" | "en-BM" | "en-BS" | "en-BW" | "en-BZ" | "en-CA" | "en-CC" | "en-CH" | "en-CK" | "en-CM" | "en-CX" | "en-CY" | "en-DE" | "en-DG" | "en-DK" | "en-DM" | "en-ER" | "en-FI" | "en-FJ" | "en-FK" | "en-FM" | "en-GB" | "en-GD" | "en-GG" | "en-GH" | "en-GI" | "en-GM" | "en-GU" | "en-GY" | "en-HK" | "en-IE" | "en-IL" | "en-IM" | "en-IN" | "en-IO" | "en-JE" | "en-JM" | "en-KE" | "en-KI" | "en-KN" | "en-KY" | "en-LC" | "en-LR" | "en-LS" | "en-MG" | "en-MH" | "en-MO" | "en-MP" | "en-MS" | "en-MT" | "en-MU" | "en-MW" | "en-MY" | "en-NA" | "en-NF" | "en-NG" | "en-NL" | "en-NR" | "en-NU" | "en-NZ" | "en-PG" | "en-PH" | "en-PK" | "en-PN" | "en-PR" | "en-PW" | "en-RW" | "en-SB" | "en-SC" | "en-SD" | "en-SE" | "en-SG" | "en-SH" | "en-SI" | "en-SL" | "en-SS" | "en-SX" | "en-SZ" | "en-TC" | "en-TK" | "en-TO" | "en-TT" | "en-TV" | "en-TZ" | "en-UG" | "en-UM" | "en-VC" | "en-VG" | "en-VI" | "en-VU" | "en-WS" | "en-ZA" | "en-ZM" | "en-ZW" | "en" | "eo" | "es-419" | "es-AR" | "es-BO" | "es-BR" | "es-BZ" | "es-CL" | "es-CO" | "es-CR" | "es-CU" | "es-DO" | "es-EA" | "es-EC" | "es-GQ" | "es-GT" | "es-HN" | "es-IC" | "es-MX" | "es-NI" | "es-PA" | "es-PE" | "es-PH" | "es-PR" | "es-PY" | "es-SV" | "es-US" | "es-UY" | "es-VE" | "es" | "et" | "eu" | "ewo" | "fa-AF" | "fa" | "ff-Adlm-BF" | "ff-Adlm-CM" | "ff-Adlm-GH" | "ff-Adlm-GM" | "ff-Adlm-GW" | "ff-Adlm-LR" | "ff-Adlm-MR" | "ff-Adlm-NE" | "ff-Adlm-NG" | "ff-Adlm-SL" | "ff-Adlm-SN" | "ff-Adlm" | "ff-Latn-BF" | "ff-Latn-CM" | "ff-Latn-GH" | "ff-Latn-GM" | "ff-Latn-GN" | "ff-Latn-GW" | "ff-Latn-LR" | "ff-Latn-MR" | "ff-Latn-NE" | "ff-Latn-NG" | "ff-Latn-SL" | "ff-Latn" | "ff" | "fi" | "fil" | "fo-DK" | "fo" | "fr-BE" | "fr-BF" | "fr-BI" | "fr-BJ" | "fr-BL" | "fr-CA" | "fr-CD" | "fr-CF" | "fr-CG" | "fr-CH" | "fr-CI" | "fr-CM" | "fr-DJ" | "fr-DZ" | "fr-GA" | "fr-GF" | "fr-GN" | "fr-GP" | "fr-GQ" | "fr-HT" | "fr-KM" | "fr-LU" | "fr-MA" | "fr-MC" | "fr-MF" | "fr-MG" | "fr-ML" | "fr-MQ" | "fr-MR" | "fr-MU" | "fr-NC" | "fr-NE" | "fr-PF" | "fr-PM" | "fr-RE" | "fr-RW" | "fr-SC" | "fr-SN" | "fr-SY" | "fr-TD" | "fr-TG" | "fr-TN" | "fr-VU" | "fr-WF" | "fr-YT" | "fr" | "fur" | "fy" | "ga-GB" | "ga" | "gd" | "gl" | "gsw-FR" | "gsw-LI" | "gsw" | "gu" | "guz" | "gv" | "ha-GH" | "ha-NE" | "ha" | "haw" | "he" | "hi" | "hr-BA" | "hr" | "hsb" | "hu" | "hy" | "ia" | "id" | "ig" | "ii" | "is" | "it-CH" | "it-SM" | "it-VA" | "it" | "ja" | "jgo" | "jmc" | "jv" | "ka" | "kab" | "kam" | "kde" | "kea" | "kgp" | "khq" | "ki" | "kk" | "kkj" | "kl" | "kln" | "km" | "kn" | "ko-KP" | "ko" | "kok" | "ks-Arab" | "ks" | "ksb" | "ksf" | "ksh" | "ku" | "kw" | "ky" | "lag" | "lb" | "lg" | "lkt" | "ln-AO" | "ln-CF" | "ln-CG" | "ln" | "lo" | "lrc-IQ" | "lrc" | "lt" | "lu" | "luo" | "luy" | "lv" | "mai" | "mas-TZ" | "mas" | "mer" | "mfe" | "mg" | "mgh" | "mgo" | "mi" | "mk" | "ml" | "mn" | "mni-Beng" | "mni" | "mr" | "ms-BN" | "ms-ID" | "ms-SG" | "ms" | "mt" | "mua" | "my" | "mzn" | "naq" | "nb-SJ" | "nb" | "nd" | "nds-NL" | "nds" | "ne-IN" | "ne" | "nl-AW" | "nl-BE" | "nl-BQ" | "nl-CW" | "nl-SR" | "nl-SX" | "nl" | "nmg" | "nn" | "nnh" | "no" | "nus" | "nyn" | "om-KE" | "om" | "or" | "os-RU" | "os" | "pa-Arab" | "pa-Guru" | "pa" | "pcm" | "pl" | "ps-PK" | "ps" | "pt-AO" | "pt-CH" | "pt-CV" | "pt-GQ" | "pt-GW" | "pt-LU" | "pt-MO" | "pt-MZ" | "pt-PT" | "pt-ST" | "pt-TL" | "pt" | "qu-BO" | "qu-EC" | "qu" | "rm" | "rn" | "ro-MD" | "ro" | "rof" | "ru-BY" | "ru-KG" | "ru-KZ" | "ru-MD" | "ru-UA" | "ru" | "rw" | "rwk" | "sa" | "sah" | "saq" | "sat-Olck" | "sat" | "sbp" | "sc" | "sd-Arab" | "sd-Deva" | "sd" | "se-FI" | "se-SE" | "se" | "seh" | "ses" | "sg" | "shi-Latn" | "shi-Tfng" | "shi" | "si" | "sk" | "sl" | "smn" | "sn" | "so-DJ" | "so-ET" | "so-KE" | "so" | "sq-MK" | "sq-XK" | "sq" | "sr-Cyrl-BA" | "sr-Cyrl-ME" | "sr-Cyrl-XK" | "sr-Cyrl" | "sr-Latn-BA" | "sr-Latn-ME" | "sr-Latn-XK" | "sr-Latn" | "sr" | "su-Latn" | "su" | "sv-AX" | "sv-FI" | "sv" | "sw-CD" | "sw-KE" | "sw-UG" | "sw" | "ta-LK" | "ta-MY" | "ta-SG" | "ta" | "te" | "teo-KE" | "teo" | "tg" | "th" | "ti-ER" | "ti" | "tk" | "to" | "tr-CY" | "tr" | "tt" | "twq" | "tzm" | "ug" | "uk" | "und" | "ur-IN" | "ur" | "uz-Arab" | "uz-Cyrl" | "uz-Latn" | "uz" | "vai-Latn" | "vai-Vaii" | "vai" | "vi" | "vun" | "wae" | "wo" | "xh" | "xog" | "yav" | "yi" | "yo-BJ" | "yo" | "yrl-CO" | "yrl-VE" | "yrl" | "yue-Hans" | "yue-Hant" | "yue" | "zgh" | "zh-Hans-HK" | "zh-Hans-MO" | "zh-Hans-SG" | "zh-Hans" | "zh-Hant-HK" | "zh-Hant-MO" | "zh-Hant" | "zh" | "zu";
6
7
  type DurationUnit = string | ((unitCount: number) => string);
@@ -1,6 +1,7 @@
1
1
  interface BytesOptions {
2
2
  base?: 2 | 10;
3
3
  locale?: IntlLocale;
4
+ units?: "iec_octet" | "iec" | "metric_octet" | "metric";
4
5
  }
5
6
  type IntlLocale = "af-NA" | "af" | "agq" | "ak" | "am" | "ar-AE" | "ar-BH" | "ar-DJ" | "ar-DZ" | "ar-EG" | "ar-EH" | "ar-ER" | "ar-IL" | "ar-IQ" | "ar-JO" | "ar-KM" | "ar-KW" | "ar-LB" | "ar-LY" | "ar-MA" | "ar-MR" | "ar-OM" | "ar-PS" | "ar-QA" | "ar-SA" | "ar-SD" | "ar-SO" | "ar-SS" | "ar-SY" | "ar-TD" | "ar-TN" | "ar-YE" | "ar" | "as" | "asa" | "ast" | "az-Cyrl" | "az-Latn" | "az" | "bas" | "be-tarask" | "be" | "bem" | "bez" | "bg" | "bm" | "bn-IN" | "bn" | "bo-IN" | "bo" | "br" | "brx" | "bs-Cyrl" | "bs-Latn" | "bs" | "ca-AD" | "ca-ES-valencia" | "ca-FR" | "ca-IT" | "ca" | "ccp-IN" | "ccp" | "ce" | "ceb" | "cgg" | "chr" | "ckb-IR" | "ckb" | "cs" | "cy" | "da-GL" | "da" | "dav" | "de-AT" | "de-BE" | "de-CH" | "de-IT" | "de-LI" | "de-LU" | "de" | "dje" | "doi" | "dsb" | "dua" | "dyo" | "dz" | "ebu" | "ee-TG" | "ee" | "el-CY" | "el" | "en-001" | "en-150" | "en-AE" | "en-AG" | "en-AI" | "en-AS" | "en-AT" | "en-AU" | "en-BB" | "en-BE" | "en-BI" | "en-BM" | "en-BS" | "en-BW" | "en-BZ" | "en-CA" | "en-CC" | "en-CH" | "en-CK" | "en-CM" | "en-CX" | "en-CY" | "en-DE" | "en-DG" | "en-DK" | "en-DM" | "en-ER" | "en-FI" | "en-FJ" | "en-FK" | "en-FM" | "en-GB" | "en-GD" | "en-GG" | "en-GH" | "en-GI" | "en-GM" | "en-GU" | "en-GY" | "en-HK" | "en-IE" | "en-IL" | "en-IM" | "en-IN" | "en-IO" | "en-JE" | "en-JM" | "en-KE" | "en-KI" | "en-KN" | "en-KY" | "en-LC" | "en-LR" | "en-LS" | "en-MG" | "en-MH" | "en-MO" | "en-MP" | "en-MS" | "en-MT" | "en-MU" | "en-MW" | "en-MY" | "en-NA" | "en-NF" | "en-NG" | "en-NL" | "en-NR" | "en-NU" | "en-NZ" | "en-PG" | "en-PH" | "en-PK" | "en-PN" | "en-PR" | "en-PW" | "en-RW" | "en-SB" | "en-SC" | "en-SD" | "en-SE" | "en-SG" | "en-SH" | "en-SI" | "en-SL" | "en-SS" | "en-SX" | "en-SZ" | "en-TC" | "en-TK" | "en-TO" | "en-TT" | "en-TV" | "en-TZ" | "en-UG" | "en-UM" | "en-VC" | "en-VG" | "en-VI" | "en-VU" | "en-WS" | "en-ZA" | "en-ZM" | "en-ZW" | "en" | "eo" | "es-419" | "es-AR" | "es-BO" | "es-BR" | "es-BZ" | "es-CL" | "es-CO" | "es-CR" | "es-CU" | "es-DO" | "es-EA" | "es-EC" | "es-GQ" | "es-GT" | "es-HN" | "es-IC" | "es-MX" | "es-NI" | "es-PA" | "es-PE" | "es-PH" | "es-PR" | "es-PY" | "es-SV" | "es-US" | "es-UY" | "es-VE" | "es" | "et" | "eu" | "ewo" | "fa-AF" | "fa" | "ff-Adlm-BF" | "ff-Adlm-CM" | "ff-Adlm-GH" | "ff-Adlm-GM" | "ff-Adlm-GW" | "ff-Adlm-LR" | "ff-Adlm-MR" | "ff-Adlm-NE" | "ff-Adlm-NG" | "ff-Adlm-SL" | "ff-Adlm-SN" | "ff-Adlm" | "ff-Latn-BF" | "ff-Latn-CM" | "ff-Latn-GH" | "ff-Latn-GM" | "ff-Latn-GN" | "ff-Latn-GW" | "ff-Latn-LR" | "ff-Latn-MR" | "ff-Latn-NE" | "ff-Latn-NG" | "ff-Latn-SL" | "ff-Latn" | "ff" | "fi" | "fil" | "fo-DK" | "fo" | "fr-BE" | "fr-BF" | "fr-BI" | "fr-BJ" | "fr-BL" | "fr-CA" | "fr-CD" | "fr-CF" | "fr-CG" | "fr-CH" | "fr-CI" | "fr-CM" | "fr-DJ" | "fr-DZ" | "fr-GA" | "fr-GF" | "fr-GN" | "fr-GP" | "fr-GQ" | "fr-HT" | "fr-KM" | "fr-LU" | "fr-MA" | "fr-MC" | "fr-MF" | "fr-MG" | "fr-ML" | "fr-MQ" | "fr-MR" | "fr-MU" | "fr-NC" | "fr-NE" | "fr-PF" | "fr-PM" | "fr-RE" | "fr-RW" | "fr-SC" | "fr-SN" | "fr-SY" | "fr-TD" | "fr-TG" | "fr-TN" | "fr-VU" | "fr-WF" | "fr-YT" | "fr" | "fur" | "fy" | "ga-GB" | "ga" | "gd" | "gl" | "gsw-FR" | "gsw-LI" | "gsw" | "gu" | "guz" | "gv" | "ha-GH" | "ha-NE" | "ha" | "haw" | "he" | "hi" | "hr-BA" | "hr" | "hsb" | "hu" | "hy" | "ia" | "id" | "ig" | "ii" | "is" | "it-CH" | "it-SM" | "it-VA" | "it" | "ja" | "jgo" | "jmc" | "jv" | "ka" | "kab" | "kam" | "kde" | "kea" | "kgp" | "khq" | "ki" | "kk" | "kkj" | "kl" | "kln" | "km" | "kn" | "ko-KP" | "ko" | "kok" | "ks-Arab" | "ks" | "ksb" | "ksf" | "ksh" | "ku" | "kw" | "ky" | "lag" | "lb" | "lg" | "lkt" | "ln-AO" | "ln-CF" | "ln-CG" | "ln" | "lo" | "lrc-IQ" | "lrc" | "lt" | "lu" | "luo" | "luy" | "lv" | "mai" | "mas-TZ" | "mas" | "mer" | "mfe" | "mg" | "mgh" | "mgo" | "mi" | "mk" | "ml" | "mn" | "mni-Beng" | "mni" | "mr" | "ms-BN" | "ms-ID" | "ms-SG" | "ms" | "mt" | "mua" | "my" | "mzn" | "naq" | "nb-SJ" | "nb" | "nd" | "nds-NL" | "nds" | "ne-IN" | "ne" | "nl-AW" | "nl-BE" | "nl-BQ" | "nl-CW" | "nl-SR" | "nl-SX" | "nl" | "nmg" | "nn" | "nnh" | "no" | "nus" | "nyn" | "om-KE" | "om" | "or" | "os-RU" | "os" | "pa-Arab" | "pa-Guru" | "pa" | "pcm" | "pl" | "ps-PK" | "ps" | "pt-AO" | "pt-CH" | "pt-CV" | "pt-GQ" | "pt-GW" | "pt-LU" | "pt-MO" | "pt-MZ" | "pt-PT" | "pt-ST" | "pt-TL" | "pt" | "qu-BO" | "qu-EC" | "qu" | "rm" | "rn" | "ro-MD" | "ro" | "rof" | "ru-BY" | "ru-KG" | "ru-KZ" | "ru-MD" | "ru-UA" | "ru" | "rw" | "rwk" | "sa" | "sah" | "saq" | "sat-Olck" | "sat" | "sbp" | "sc" | "sd-Arab" | "sd-Deva" | "sd" | "se-FI" | "se-SE" | "se" | "seh" | "ses" | "sg" | "shi-Latn" | "shi-Tfng" | "shi" | "si" | "sk" | "sl" | "smn" | "sn" | "so-DJ" | "so-ET" | "so-KE" | "so" | "sq-MK" | "sq-XK" | "sq" | "sr-Cyrl-BA" | "sr-Cyrl-ME" | "sr-Cyrl-XK" | "sr-Cyrl" | "sr-Latn-BA" | "sr-Latn-ME" | "sr-Latn-XK" | "sr-Latn" | "sr" | "su-Latn" | "su" | "sv-AX" | "sv-FI" | "sv" | "sw-CD" | "sw-KE" | "sw-UG" | "sw" | "ta-LK" | "ta-MY" | "ta-SG" | "ta" | "te" | "teo-KE" | "teo" | "tg" | "th" | "ti-ER" | "ti" | "tk" | "to" | "tr-CY" | "tr" | "tt" | "twq" | "tzm" | "ug" | "uk" | "und" | "ur-IN" | "ur" | "uz-Arab" | "uz-Cyrl" | "uz-Latn" | "uz" | "vai-Latn" | "vai-Vaii" | "vai" | "vi" | "vun" | "wae" | "wo" | "xh" | "xog" | "yav" | "yi" | "yo-BJ" | "yo" | "yrl-CO" | "yrl-VE" | "yrl" | "yue-Hans" | "yue-Hant" | "yue" | "zgh" | "zh-Hans-HK" | "zh-Hans-MO" | "zh-Hans-SG" | "zh-Hans" | "zh-Hant-HK" | "zh-Hant-MO" | "zh-Hant" | "zh" | "zu";
6
7
  type DurationUnit = string | ((unitCount: number) => string);
@@ -1,6 +1,7 @@
1
1
  interface BytesOptions {
2
2
  base?: 2 | 10;
3
3
  locale?: IntlLocale;
4
+ units?: "iec_octet" | "iec" | "metric_octet" | "metric";
4
5
  }
5
6
  type IntlLocale = "af-NA" | "af" | "agq" | "ak" | "am" | "ar-AE" | "ar-BH" | "ar-DJ" | "ar-DZ" | "ar-EG" | "ar-EH" | "ar-ER" | "ar-IL" | "ar-IQ" | "ar-JO" | "ar-KM" | "ar-KW" | "ar-LB" | "ar-LY" | "ar-MA" | "ar-MR" | "ar-OM" | "ar-PS" | "ar-QA" | "ar-SA" | "ar-SD" | "ar-SO" | "ar-SS" | "ar-SY" | "ar-TD" | "ar-TN" | "ar-YE" | "ar" | "as" | "asa" | "ast" | "az-Cyrl" | "az-Latn" | "az" | "bas" | "be-tarask" | "be" | "bem" | "bez" | "bg" | "bm" | "bn-IN" | "bn" | "bo-IN" | "bo" | "br" | "brx" | "bs-Cyrl" | "bs-Latn" | "bs" | "ca-AD" | "ca-ES-valencia" | "ca-FR" | "ca-IT" | "ca" | "ccp-IN" | "ccp" | "ce" | "ceb" | "cgg" | "chr" | "ckb-IR" | "ckb" | "cs" | "cy" | "da-GL" | "da" | "dav" | "de-AT" | "de-BE" | "de-CH" | "de-IT" | "de-LI" | "de-LU" | "de" | "dje" | "doi" | "dsb" | "dua" | "dyo" | "dz" | "ebu" | "ee-TG" | "ee" | "el-CY" | "el" | "en-001" | "en-150" | "en-AE" | "en-AG" | "en-AI" | "en-AS" | "en-AT" | "en-AU" | "en-BB" | "en-BE" | "en-BI" | "en-BM" | "en-BS" | "en-BW" | "en-BZ" | "en-CA" | "en-CC" | "en-CH" | "en-CK" | "en-CM" | "en-CX" | "en-CY" | "en-DE" | "en-DG" | "en-DK" | "en-DM" | "en-ER" | "en-FI" | "en-FJ" | "en-FK" | "en-FM" | "en-GB" | "en-GD" | "en-GG" | "en-GH" | "en-GI" | "en-GM" | "en-GU" | "en-GY" | "en-HK" | "en-IE" | "en-IL" | "en-IM" | "en-IN" | "en-IO" | "en-JE" | "en-JM" | "en-KE" | "en-KI" | "en-KN" | "en-KY" | "en-LC" | "en-LR" | "en-LS" | "en-MG" | "en-MH" | "en-MO" | "en-MP" | "en-MS" | "en-MT" | "en-MU" | "en-MW" | "en-MY" | "en-NA" | "en-NF" | "en-NG" | "en-NL" | "en-NR" | "en-NU" | "en-NZ" | "en-PG" | "en-PH" | "en-PK" | "en-PN" | "en-PR" | "en-PW" | "en-RW" | "en-SB" | "en-SC" | "en-SD" | "en-SE" | "en-SG" | "en-SH" | "en-SI" | "en-SL" | "en-SS" | "en-SX" | "en-SZ" | "en-TC" | "en-TK" | "en-TO" | "en-TT" | "en-TV" | "en-TZ" | "en-UG" | "en-UM" | "en-VC" | "en-VG" | "en-VI" | "en-VU" | "en-WS" | "en-ZA" | "en-ZM" | "en-ZW" | "en" | "eo" | "es-419" | "es-AR" | "es-BO" | "es-BR" | "es-BZ" | "es-CL" | "es-CO" | "es-CR" | "es-CU" | "es-DO" | "es-EA" | "es-EC" | "es-GQ" | "es-GT" | "es-HN" | "es-IC" | "es-MX" | "es-NI" | "es-PA" | "es-PE" | "es-PH" | "es-PR" | "es-PY" | "es-SV" | "es-US" | "es-UY" | "es-VE" | "es" | "et" | "eu" | "ewo" | "fa-AF" | "fa" | "ff-Adlm-BF" | "ff-Adlm-CM" | "ff-Adlm-GH" | "ff-Adlm-GM" | "ff-Adlm-GW" | "ff-Adlm-LR" | "ff-Adlm-MR" | "ff-Adlm-NE" | "ff-Adlm-NG" | "ff-Adlm-SL" | "ff-Adlm-SN" | "ff-Adlm" | "ff-Latn-BF" | "ff-Latn-CM" | "ff-Latn-GH" | "ff-Latn-GM" | "ff-Latn-GN" | "ff-Latn-GW" | "ff-Latn-LR" | "ff-Latn-MR" | "ff-Latn-NE" | "ff-Latn-NG" | "ff-Latn-SL" | "ff-Latn" | "ff" | "fi" | "fil" | "fo-DK" | "fo" | "fr-BE" | "fr-BF" | "fr-BI" | "fr-BJ" | "fr-BL" | "fr-CA" | "fr-CD" | "fr-CF" | "fr-CG" | "fr-CH" | "fr-CI" | "fr-CM" | "fr-DJ" | "fr-DZ" | "fr-GA" | "fr-GF" | "fr-GN" | "fr-GP" | "fr-GQ" | "fr-HT" | "fr-KM" | "fr-LU" | "fr-MA" | "fr-MC" | "fr-MF" | "fr-MG" | "fr-ML" | "fr-MQ" | "fr-MR" | "fr-MU" | "fr-NC" | "fr-NE" | "fr-PF" | "fr-PM" | "fr-RE" | "fr-RW" | "fr-SC" | "fr-SN" | "fr-SY" | "fr-TD" | "fr-TG" | "fr-TN" | "fr-VU" | "fr-WF" | "fr-YT" | "fr" | "fur" | "fy" | "ga-GB" | "ga" | "gd" | "gl" | "gsw-FR" | "gsw-LI" | "gsw" | "gu" | "guz" | "gv" | "ha-GH" | "ha-NE" | "ha" | "haw" | "he" | "hi" | "hr-BA" | "hr" | "hsb" | "hu" | "hy" | "ia" | "id" | "ig" | "ii" | "is" | "it-CH" | "it-SM" | "it-VA" | "it" | "ja" | "jgo" | "jmc" | "jv" | "ka" | "kab" | "kam" | "kde" | "kea" | "kgp" | "khq" | "ki" | "kk" | "kkj" | "kl" | "kln" | "km" | "kn" | "ko-KP" | "ko" | "kok" | "ks-Arab" | "ks" | "ksb" | "ksf" | "ksh" | "ku" | "kw" | "ky" | "lag" | "lb" | "lg" | "lkt" | "ln-AO" | "ln-CF" | "ln-CG" | "ln" | "lo" | "lrc-IQ" | "lrc" | "lt" | "lu" | "luo" | "luy" | "lv" | "mai" | "mas-TZ" | "mas" | "mer" | "mfe" | "mg" | "mgh" | "mgo" | "mi" | "mk" | "ml" | "mn" | "mni-Beng" | "mni" | "mr" | "ms-BN" | "ms-ID" | "ms-SG" | "ms" | "mt" | "mua" | "my" | "mzn" | "naq" | "nb-SJ" | "nb" | "nd" | "nds-NL" | "nds" | "ne-IN" | "ne" | "nl-AW" | "nl-BE" | "nl-BQ" | "nl-CW" | "nl-SR" | "nl-SX" | "nl" | "nmg" | "nn" | "nnh" | "no" | "nus" | "nyn" | "om-KE" | "om" | "or" | "os-RU" | "os" | "pa-Arab" | "pa-Guru" | "pa" | "pcm" | "pl" | "ps-PK" | "ps" | "pt-AO" | "pt-CH" | "pt-CV" | "pt-GQ" | "pt-GW" | "pt-LU" | "pt-MO" | "pt-MZ" | "pt-PT" | "pt-ST" | "pt-TL" | "pt" | "qu-BO" | "qu-EC" | "qu" | "rm" | "rn" | "ro-MD" | "ro" | "rof" | "ru-BY" | "ru-KG" | "ru-KZ" | "ru-MD" | "ru-UA" | "ru" | "rw" | "rwk" | "sa" | "sah" | "saq" | "sat-Olck" | "sat" | "sbp" | "sc" | "sd-Arab" | "sd-Deva" | "sd" | "se-FI" | "se-SE" | "se" | "seh" | "ses" | "sg" | "shi-Latn" | "shi-Tfng" | "shi" | "si" | "sk" | "sl" | "smn" | "sn" | "so-DJ" | "so-ET" | "so-KE" | "so" | "sq-MK" | "sq-XK" | "sq" | "sr-Cyrl-BA" | "sr-Cyrl-ME" | "sr-Cyrl-XK" | "sr-Cyrl" | "sr-Latn-BA" | "sr-Latn-ME" | "sr-Latn-XK" | "sr-Latn" | "sr" | "su-Latn" | "su" | "sv-AX" | "sv-FI" | "sv" | "sw-CD" | "sw-KE" | "sw-UG" | "sw" | "ta-LK" | "ta-MY" | "ta-SG" | "ta" | "te" | "teo-KE" | "teo" | "tg" | "th" | "ti-ER" | "ti" | "tk" | "to" | "tr-CY" | "tr" | "tt" | "twq" | "tzm" | "ug" | "uk" | "und" | "ur-IN" | "ur" | "uz-Arab" | "uz-Cyrl" | "uz-Latn" | "uz" | "vai-Latn" | "vai-Vaii" | "vai" | "vi" | "vun" | "wae" | "wo" | "xh" | "xog" | "yav" | "yi" | "yo-BJ" | "yo" | "yrl-CO" | "yrl-VE" | "yrl" | "yue-Hans" | "yue-Hant" | "yue" | "zgh" | "zh-Hans-HK" | "zh-Hans-MO" | "zh-Hans-SG" | "zh-Hans" | "zh-Hant-HK" | "zh-Hant-MO" | "zh-Hant" | "zh" | "zu";
6
7
  type DurationUnit = string | ((unitCount: number) => string);