@attrx/role-morphic 0.1.0 → 0.2.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.
- package/README.md +151 -84
- package/dist/cast.d.mts +678 -0
- package/dist/cast.d.ts +678 -0
- package/dist/cast.js +3569 -0
- package/dist/cast.js.map +1 -0
- package/dist/cast.mjs +3536 -0
- package/dist/cast.mjs.map +1 -0
- package/dist/constants-BZdBwuvJ.d.mts +168 -0
- package/dist/constants-BZdBwuvJ.d.ts +168 -0
- package/dist/convert.d.mts +1157 -0
- package/dist/convert.d.ts +1157 -0
- package/dist/convert.js +2244 -0
- package/dist/convert.js.map +1 -0
- package/dist/convert.mjs +2148 -0
- package/dist/convert.mjs.map +1 -0
- package/dist/format-Be15LzfS.d.ts +668 -0
- package/dist/format-o4Y3jPH-.d.mts +668 -0
- package/dist/format.d.mts +3 -0
- package/dist/format.d.ts +3 -0
- package/dist/format.js +2303 -0
- package/dist/format.js.map +1 -0
- package/dist/format.mjs +2286 -0
- package/dist/format.mjs.map +1 -0
- package/dist/index.d.mts +200 -601
- package/dist/index.d.ts +200 -601
- package/dist/index.js +5536 -2493
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5349 -2494
- package/dist/index.mjs.map +1 -1
- package/dist/types-mbeS1e-k.d.mts +312 -0
- package/dist/types-mbeS1e-k.d.ts +312 -0
- package/dist/validate.d.mts +884 -0
- package/dist/validate.d.ts +884 -0
- package/dist/validate.js +713 -0
- package/dist/validate.js.map +1 -0
- package/dist/validate.mjs +669 -0
- package/dist/validate.mjs.map +1 -0
- package/package.json +21 -1
|
@@ -0,0 +1,1157 @@
|
|
|
1
|
+
import { A as AreaUnit, L as LengthUnit, M as MassUnit, V as VolumeUnit, S as SpeedUnit, E as EnergyUnit, P as PowerUnit, b as PressureUnit, F as FrequencyUnit, a as AngleUnit, T as TimeUnit, D as DigitalUnit } from './constants-BZdBwuvJ.js';
|
|
2
|
+
import { T as TemperatureUnit, r as ColorVariant, o as DateVariant } from './types-mbeS1e-k.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Area Role - Convert Pillar
|
|
6
|
+
*
|
|
7
|
+
* Conversão entre unidades de área usando arquitetura hub-and-spoke.
|
|
8
|
+
* Base: square_meter (m²)
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* import { convertArea, toBaseArea, fromBaseArea } from '@attrx/role-morphic/area/convert';
|
|
12
|
+
*
|
|
13
|
+
* convertArea('hectare', 'acre', 1); // 2.47105...
|
|
14
|
+
* toBaseArea('hectare', 1); // 10000
|
|
15
|
+
* fromBaseArea('acre', 10000); // 2.47105...
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
type Result$e<T> = {
|
|
19
|
+
ok: true;
|
|
20
|
+
value: T;
|
|
21
|
+
} | {
|
|
22
|
+
ok: false;
|
|
23
|
+
error: string;
|
|
24
|
+
};
|
|
25
|
+
/** Variante base para conversões */
|
|
26
|
+
declare const AREA_BASE: AreaUnit;
|
|
27
|
+
/**
|
|
28
|
+
* Converte valor para a unidade base (square_meter)
|
|
29
|
+
*
|
|
30
|
+
* @param variant - Unidade de origem
|
|
31
|
+
* @param value - Valor a converter
|
|
32
|
+
* @returns Valor em square_meter
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* toBaseArea('hectare', 1); // 10000
|
|
36
|
+
* toBaseArea('acre', 1); // 4046.8564224
|
|
37
|
+
*/
|
|
38
|
+
declare function toBaseArea(variant: AreaUnit, value: number): number;
|
|
39
|
+
/**
|
|
40
|
+
* Converte valor da unidade base (square_meter) para outra unidade
|
|
41
|
+
*
|
|
42
|
+
* @param variant - Unidade de destino
|
|
43
|
+
* @param baseValue - Valor em square_meter
|
|
44
|
+
* @returns Valor na unidade de destino
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* fromBaseArea('hectare', 10000); // 1
|
|
48
|
+
* fromBaseArea('acre', 4046.86); // ~1
|
|
49
|
+
*/
|
|
50
|
+
declare function fromBaseArea(variant: AreaUnit, baseValue: number): number;
|
|
51
|
+
/**
|
|
52
|
+
* Converte entre duas unidades de área
|
|
53
|
+
*
|
|
54
|
+
* @param from - Unidade de origem
|
|
55
|
+
* @param to - Unidade de destino
|
|
56
|
+
* @param value - Valor a converter
|
|
57
|
+
* @returns Valor convertido
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* convertArea('hectare', 'acre', 1); // 2.47105...
|
|
61
|
+
* convertArea('square_meter', 'hectare', 10000); // 1
|
|
62
|
+
*/
|
|
63
|
+
declare function convertArea(from: AreaUnit, to: AreaUnit, value: number): number;
|
|
64
|
+
/**
|
|
65
|
+
* Versão safe de convertArea que retorna Result
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* tryConvertArea('hectare', 'acre', 1);
|
|
69
|
+
* // { ok: true, value: 2.47105... }
|
|
70
|
+
*
|
|
71
|
+
* tryConvertArea('invalid', 'acre', 1);
|
|
72
|
+
* // { ok: false, error: 'Unknown area variant: invalid' }
|
|
73
|
+
*/
|
|
74
|
+
declare function tryConvertArea(from: AreaUnit, to: AreaUnit, value: number): Result$e<number>;
|
|
75
|
+
/**
|
|
76
|
+
* Verifica se uma variante existe
|
|
77
|
+
*/
|
|
78
|
+
declare function hasAreaVariant(variant: string): variant is AreaUnit;
|
|
79
|
+
/**
|
|
80
|
+
* Lista todas as variantes disponíveis
|
|
81
|
+
*/
|
|
82
|
+
declare function getAreaVariants(): AreaUnit[];
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Length Role - Convert Pillar
|
|
86
|
+
*
|
|
87
|
+
* Conversão entre unidades de comprimento usando arquitetura hub-and-spoke.
|
|
88
|
+
* Base: meter (m)
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* import { convertLength, toBaseLength, fromBaseLength } from '@attrx/role-morphic/length/convert';
|
|
92
|
+
*
|
|
93
|
+
* convertLength('kilometer', 'mile', 1); // 0.621371...
|
|
94
|
+
* toBaseLength('kilometer', 1); // 1000
|
|
95
|
+
* fromBaseLength('mile', 1000); // 0.621371...
|
|
96
|
+
*/
|
|
97
|
+
|
|
98
|
+
type Result$d<T> = {
|
|
99
|
+
ok: true;
|
|
100
|
+
value: T;
|
|
101
|
+
} | {
|
|
102
|
+
ok: false;
|
|
103
|
+
error: string;
|
|
104
|
+
};
|
|
105
|
+
/** Variante base para conversões */
|
|
106
|
+
declare const LENGTH_BASE: LengthUnit;
|
|
107
|
+
/**
|
|
108
|
+
* Converte valor para a unidade base (meter)
|
|
109
|
+
*
|
|
110
|
+
* @param variant - Unidade de origem
|
|
111
|
+
* @param value - Valor a converter
|
|
112
|
+
* @returns Valor em meters
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* toBaseLength('kilometer', 1); // 1000
|
|
116
|
+
* toBaseLength('mile', 1); // 1609.344
|
|
117
|
+
*/
|
|
118
|
+
declare function toBaseLength(variant: LengthUnit, value: number): number;
|
|
119
|
+
/**
|
|
120
|
+
* Converte valor da unidade base (meter) para outra unidade
|
|
121
|
+
*
|
|
122
|
+
* @param variant - Unidade de destino
|
|
123
|
+
* @param baseValue - Valor em meters
|
|
124
|
+
* @returns Valor na unidade de destino
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* fromBaseLength('kilometer', 1000); // 1
|
|
128
|
+
* fromBaseLength('mile', 1609.344); // 1
|
|
129
|
+
*/
|
|
130
|
+
declare function fromBaseLength(variant: LengthUnit, baseValue: number): number;
|
|
131
|
+
/**
|
|
132
|
+
* Converte entre duas unidades de comprimento
|
|
133
|
+
*
|
|
134
|
+
* @param from - Unidade de origem
|
|
135
|
+
* @param to - Unidade de destino
|
|
136
|
+
* @param value - Valor a converter
|
|
137
|
+
* @returns Valor convertido
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* convertLength('kilometer', 'mile', 1); // 0.621371...
|
|
141
|
+
* convertLength('foot', 'meter', 1); // 0.3048
|
|
142
|
+
*/
|
|
143
|
+
declare function convertLength(from: LengthUnit, to: LengthUnit, value: number): number;
|
|
144
|
+
/**
|
|
145
|
+
* Versão safe de convertLength que retorna Result
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* tryConvertLength('kilometer', 'mile', 1);
|
|
149
|
+
* // { ok: true, value: 0.621371... }
|
|
150
|
+
*
|
|
151
|
+
* tryConvertLength('invalid', 'mile', 1);
|
|
152
|
+
* // { ok: false, error: 'Unknown length variant: invalid' }
|
|
153
|
+
*/
|
|
154
|
+
declare function tryConvertLength(from: LengthUnit, to: LengthUnit, value: number): Result$d<number>;
|
|
155
|
+
/**
|
|
156
|
+
* Verifica se uma variante existe
|
|
157
|
+
*/
|
|
158
|
+
declare function hasLengthVariant(variant: string): variant is LengthUnit;
|
|
159
|
+
/**
|
|
160
|
+
* Lista todas as variantes disponíveis
|
|
161
|
+
*/
|
|
162
|
+
declare function getLengthVariants(): LengthUnit[];
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Mass Role - Convert Pillar
|
|
166
|
+
*
|
|
167
|
+
* Conversão entre unidades de massa usando arquitetura hub-and-spoke.
|
|
168
|
+
* Base: kilogram (kg)
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* import { convertMass, toBaseMass, fromBaseMass } from '@attrx/role-morphic/mass/convert';
|
|
172
|
+
*
|
|
173
|
+
* convertMass('kilogram', 'pound', 1); // 2.20462...
|
|
174
|
+
* toBaseMass('pound', 1); // 0.45359237
|
|
175
|
+
* fromBaseMass('pound', 0.45359237); // 1
|
|
176
|
+
*/
|
|
177
|
+
|
|
178
|
+
type Result$c<T> = {
|
|
179
|
+
ok: true;
|
|
180
|
+
value: T;
|
|
181
|
+
} | {
|
|
182
|
+
ok: false;
|
|
183
|
+
error: string;
|
|
184
|
+
};
|
|
185
|
+
/** Variante base para conversões */
|
|
186
|
+
declare const MASS_BASE: MassUnit;
|
|
187
|
+
/**
|
|
188
|
+
* Converte valor para a unidade base (kilogram)
|
|
189
|
+
*
|
|
190
|
+
* @param variant - Unidade de origem
|
|
191
|
+
* @param value - Valor a converter
|
|
192
|
+
* @returns Valor em kilogram
|
|
193
|
+
*
|
|
194
|
+
* @example
|
|
195
|
+
* toBaseMass('pound', 1); // 0.45359237
|
|
196
|
+
* toBaseMass('gram', 1000); // 1
|
|
197
|
+
*/
|
|
198
|
+
declare function toBaseMass(variant: MassUnit, value: number): number;
|
|
199
|
+
/**
|
|
200
|
+
* Converte valor da unidade base (kilogram) para outra unidade
|
|
201
|
+
*
|
|
202
|
+
* @param variant - Unidade de destino
|
|
203
|
+
* @param baseValue - Valor em kilogram
|
|
204
|
+
* @returns Valor na unidade de destino
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* fromBaseMass('pound', 1); // 2.20462...
|
|
208
|
+
* fromBaseMass('gram', 1); // 1000
|
|
209
|
+
*/
|
|
210
|
+
declare function fromBaseMass(variant: MassUnit, baseValue: number): number;
|
|
211
|
+
/**
|
|
212
|
+
* Converte entre duas unidades de massa
|
|
213
|
+
*
|
|
214
|
+
* @param from - Unidade de origem
|
|
215
|
+
* @param to - Unidade de destino
|
|
216
|
+
* @param value - Valor a converter
|
|
217
|
+
* @returns Valor convertido
|
|
218
|
+
*
|
|
219
|
+
* @example
|
|
220
|
+
* convertMass('kilogram', 'pound', 1); // 2.20462...
|
|
221
|
+
* convertMass('pound', 'kilogram', 2.2); // ~1
|
|
222
|
+
* convertMass('gram', 'milligram', 1); // 1000
|
|
223
|
+
*/
|
|
224
|
+
declare function convertMass(from: MassUnit, to: MassUnit, value: number): number;
|
|
225
|
+
/**
|
|
226
|
+
* Versão safe de convertMass que retorna Result
|
|
227
|
+
*
|
|
228
|
+
* @example
|
|
229
|
+
* tryConvertMass('kilogram', 'pound', 1);
|
|
230
|
+
* // { ok: true, value: 2.20462... }
|
|
231
|
+
*
|
|
232
|
+
* tryConvertMass('invalid', 'pound', 1);
|
|
233
|
+
* // { ok: false, error: 'Unknown mass variant: invalid' }
|
|
234
|
+
*/
|
|
235
|
+
declare function tryConvertMass(from: MassUnit, to: MassUnit, value: number): Result$c<number>;
|
|
236
|
+
/**
|
|
237
|
+
* Verifica se uma variante existe
|
|
238
|
+
*/
|
|
239
|
+
declare function hasMassVariant(variant: string): variant is MassUnit;
|
|
240
|
+
/**
|
|
241
|
+
* Lista todas as variantes disponíveis
|
|
242
|
+
*/
|
|
243
|
+
declare function getMassVariants(): MassUnit[];
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Temperature Role - Convert Pillar
|
|
247
|
+
*
|
|
248
|
+
* Conversão entre unidades de temperatura usando arquitetura hub-and-spoke.
|
|
249
|
+
* Base: celsius (°C)
|
|
250
|
+
*
|
|
251
|
+
* IMPORTANTE: Diferente de outras roles, temperatura usa FÓRMULAS
|
|
252
|
+
* ao invés de fatores multiplicativos (escalas têm offsets diferentes).
|
|
253
|
+
*
|
|
254
|
+
* Fórmulas de conversão:
|
|
255
|
+
* - Celsius ↔ Fahrenheit: °F = °C × 9/5 + 32
|
|
256
|
+
* - Celsius ↔ Kelvin: K = °C + 273.15
|
|
257
|
+
* - Celsius ↔ Rankine: °R = (°C + 273.15) × 9/5
|
|
258
|
+
*
|
|
259
|
+
* @example
|
|
260
|
+
* import { convertTemperature, toBaseTemperature, fromBaseTemperature } from '@attrx/role-morphic/temperature/convert';
|
|
261
|
+
*
|
|
262
|
+
* convertTemperature('celsius', 'fahrenheit', 0); // 32
|
|
263
|
+
* convertTemperature('celsius', 'kelvin', 0); // 273.15
|
|
264
|
+
* toBaseTemperature('fahrenheit', 32); // 0
|
|
265
|
+
* fromBaseTemperature('kelvin', 0); // 273.15
|
|
266
|
+
*/
|
|
267
|
+
|
|
268
|
+
type Result$b<T> = {
|
|
269
|
+
ok: true;
|
|
270
|
+
value: T;
|
|
271
|
+
} | {
|
|
272
|
+
ok: false;
|
|
273
|
+
error: string;
|
|
274
|
+
};
|
|
275
|
+
/** Variante base para conversões */
|
|
276
|
+
declare const TEMPERATURE_BASE: TemperatureUnit;
|
|
277
|
+
/**
|
|
278
|
+
* Converte valor para a unidade base (celsius)
|
|
279
|
+
*
|
|
280
|
+
* @param variant - Unidade de origem
|
|
281
|
+
* @param value - Valor a converter
|
|
282
|
+
* @returns Valor em celsius
|
|
283
|
+
*
|
|
284
|
+
* @example
|
|
285
|
+
* toBaseTemperature('fahrenheit', 32); // 0
|
|
286
|
+
* toBaseTemperature('kelvin', 273.15); // 0
|
|
287
|
+
* toBaseTemperature('rankine', 491.67); // 0
|
|
288
|
+
*/
|
|
289
|
+
declare function toBaseTemperature(variant: TemperatureUnit, value: number): number;
|
|
290
|
+
/**
|
|
291
|
+
* Converte valor da unidade base (celsius) para outra unidade
|
|
292
|
+
*
|
|
293
|
+
* @param variant - Unidade de destino
|
|
294
|
+
* @param baseValue - Valor em celsius
|
|
295
|
+
* @returns Valor na unidade de destino
|
|
296
|
+
*
|
|
297
|
+
* @example
|
|
298
|
+
* fromBaseTemperature('fahrenheit', 0); // 32
|
|
299
|
+
* fromBaseTemperature('kelvin', 0); // 273.15
|
|
300
|
+
* fromBaseTemperature('rankine', 0); // 491.67
|
|
301
|
+
*/
|
|
302
|
+
declare function fromBaseTemperature(variant: TemperatureUnit, baseValue: number): number;
|
|
303
|
+
/**
|
|
304
|
+
* Converte entre duas unidades de temperatura
|
|
305
|
+
*
|
|
306
|
+
* @param from - Unidade de origem
|
|
307
|
+
* @param to - Unidade de destino
|
|
308
|
+
* @param value - Valor a converter
|
|
309
|
+
* @returns Valor convertido
|
|
310
|
+
*
|
|
311
|
+
* @example
|
|
312
|
+
* convertTemperature('celsius', 'fahrenheit', 0); // 32
|
|
313
|
+
* convertTemperature('celsius', 'fahrenheit', 100); // 212
|
|
314
|
+
* convertTemperature('fahrenheit', 'celsius', 32); // 0
|
|
315
|
+
* convertTemperature('celsius', 'kelvin', 0); // 273.15
|
|
316
|
+
* convertTemperature('kelvin', 'rankine', 0); // 0
|
|
317
|
+
*/
|
|
318
|
+
declare function convertTemperature(from: TemperatureUnit, to: TemperatureUnit, value: number): number;
|
|
319
|
+
/**
|
|
320
|
+
* Versão safe de convertTemperature que retorna Result
|
|
321
|
+
*
|
|
322
|
+
* @example
|
|
323
|
+
* tryConvertTemperature('celsius', 'fahrenheit', 0);
|
|
324
|
+
* // { ok: true, value: 32 }
|
|
325
|
+
*
|
|
326
|
+
* tryConvertTemperature('invalid', 'fahrenheit', 0);
|
|
327
|
+
* // { ok: false, error: 'Unknown temperature variant: invalid' }
|
|
328
|
+
*/
|
|
329
|
+
declare function tryConvertTemperature(from: TemperatureUnit, to: TemperatureUnit, value: number): Result$b<number>;
|
|
330
|
+
/**
|
|
331
|
+
* Verifica se uma variante existe
|
|
332
|
+
*/
|
|
333
|
+
declare function hasTemperatureVariant(variant: string): variant is TemperatureUnit;
|
|
334
|
+
/**
|
|
335
|
+
* Lista todas as variantes disponíveis
|
|
336
|
+
*/
|
|
337
|
+
declare function getTemperatureVariants(): TemperatureUnit[];
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* Volume Role - Convert Pillar
|
|
341
|
+
*
|
|
342
|
+
* Conversão entre unidades de volume usando arquitetura hub-and-spoke.
|
|
343
|
+
* Base: liter (L)
|
|
344
|
+
*
|
|
345
|
+
* @example
|
|
346
|
+
* import { convertVolume, toBaseVolume, fromBaseVolume } from '@attrx/role-morphic/volume/convert';
|
|
347
|
+
*
|
|
348
|
+
* convertVolume('gallon_us', 'liter', 1); // 3.785411784
|
|
349
|
+
* toBaseVolume('milliliter', 500); // 0.5
|
|
350
|
+
* fromBaseVolume('gallon_us', 3.785411784); // 1
|
|
351
|
+
*/
|
|
352
|
+
|
|
353
|
+
type Result$a<T> = {
|
|
354
|
+
ok: true;
|
|
355
|
+
value: T;
|
|
356
|
+
} | {
|
|
357
|
+
ok: false;
|
|
358
|
+
error: string;
|
|
359
|
+
};
|
|
360
|
+
/** Variante base para conversões */
|
|
361
|
+
declare const VOLUME_BASE: VolumeUnit;
|
|
362
|
+
/**
|
|
363
|
+
* Converte valor para a unidade base (liter)
|
|
364
|
+
*
|
|
365
|
+
* @param variant - Unidade de origem
|
|
366
|
+
* @param value - Valor a converter
|
|
367
|
+
* @returns Valor em liter
|
|
368
|
+
*
|
|
369
|
+
* @example
|
|
370
|
+
* toBaseVolume('milliliter', 500); // 0.5
|
|
371
|
+
* toBaseVolume('gallon_us', 1); // 3.785411784
|
|
372
|
+
*/
|
|
373
|
+
declare function toBaseVolume(variant: VolumeUnit, value: number): number;
|
|
374
|
+
/**
|
|
375
|
+
* Converte valor da unidade base (liter) para outra unidade
|
|
376
|
+
*
|
|
377
|
+
* @param variant - Unidade de destino
|
|
378
|
+
* @param baseValue - Valor em liter
|
|
379
|
+
* @returns Valor na unidade de destino
|
|
380
|
+
*
|
|
381
|
+
* @example
|
|
382
|
+
* fromBaseVolume('milliliter', 0.5); // 500
|
|
383
|
+
* fromBaseVolume('gallon_us', 3.785411784); // 1
|
|
384
|
+
*/
|
|
385
|
+
declare function fromBaseVolume(variant: VolumeUnit, baseValue: number): number;
|
|
386
|
+
/**
|
|
387
|
+
* Converte entre duas unidades de volume
|
|
388
|
+
*
|
|
389
|
+
* @param from - Unidade de origem
|
|
390
|
+
* @param to - Unidade de destino
|
|
391
|
+
* @param value - Valor a converter
|
|
392
|
+
* @returns Valor convertido
|
|
393
|
+
*
|
|
394
|
+
* @example
|
|
395
|
+
* convertVolume('gallon_us', 'liter', 1); // 3.785411784
|
|
396
|
+
* convertVolume('milliliter', 'liter', 500); // 0.5
|
|
397
|
+
* convertVolume('cup_us', 'tablespoon_us', 1); // 16
|
|
398
|
+
*/
|
|
399
|
+
declare function convertVolume(from: VolumeUnit, to: VolumeUnit, value: number): number;
|
|
400
|
+
/**
|
|
401
|
+
* Versão safe de convertVolume que retorna Result
|
|
402
|
+
*
|
|
403
|
+
* @example
|
|
404
|
+
* tryConvertVolume('gallon_us', 'liter', 1);
|
|
405
|
+
* // { ok: true, value: 3.785411784 }
|
|
406
|
+
*
|
|
407
|
+
* tryConvertVolume('invalid', 'liter', 1);
|
|
408
|
+
* // { ok: false, error: 'Unknown volume variant: invalid' }
|
|
409
|
+
*/
|
|
410
|
+
declare function tryConvertVolume(from: VolumeUnit, to: VolumeUnit, value: number): Result$a<number>;
|
|
411
|
+
/**
|
|
412
|
+
* Verifica se uma variante existe
|
|
413
|
+
*/
|
|
414
|
+
declare function hasVolumeVariant(variant: string): variant is VolumeUnit;
|
|
415
|
+
/**
|
|
416
|
+
* Lista todas as variantes disponíveis
|
|
417
|
+
*/
|
|
418
|
+
declare function getVolumeVariants(): VolumeUnit[];
|
|
419
|
+
|
|
420
|
+
/**
|
|
421
|
+
* Speed Role - Convert Pillar
|
|
422
|
+
*
|
|
423
|
+
* Conversão entre unidades de velocidade usando arquitetura hub-and-spoke.
|
|
424
|
+
* Base: meter_per_second (m/s)
|
|
425
|
+
*
|
|
426
|
+
* @example
|
|
427
|
+
* import { convertSpeed, toBaseSpeed, fromBaseSpeed } from '@attrx/role-morphic/speed/convert';
|
|
428
|
+
*
|
|
429
|
+
* convertSpeed('kilometer_per_hour', 'mile_per_hour', 100); // 62.1371...
|
|
430
|
+
* toBaseSpeed('kilometer_per_hour', 100); // 27.7778...
|
|
431
|
+
* fromBaseSpeed('mile_per_hour', 27.7778); // ~62.14
|
|
432
|
+
*/
|
|
433
|
+
|
|
434
|
+
type Result$9<T> = {
|
|
435
|
+
ok: true;
|
|
436
|
+
value: T;
|
|
437
|
+
} | {
|
|
438
|
+
ok: false;
|
|
439
|
+
error: string;
|
|
440
|
+
};
|
|
441
|
+
/** Variante base para conversões */
|
|
442
|
+
declare const SPEED_BASE: SpeedUnit;
|
|
443
|
+
/**
|
|
444
|
+
* Converte valor para a unidade base (meter_per_second)
|
|
445
|
+
*
|
|
446
|
+
* @param variant - Unidade de origem
|
|
447
|
+
* @param value - Valor a converter
|
|
448
|
+
* @returns Valor em meter_per_second
|
|
449
|
+
*
|
|
450
|
+
* @example
|
|
451
|
+
* toBaseSpeed('kilometer_per_hour', 100); // 27.7778...
|
|
452
|
+
* toBaseSpeed('mile_per_hour', 60); // 26.8224
|
|
453
|
+
*/
|
|
454
|
+
declare function toBaseSpeed(variant: SpeedUnit, value: number): number;
|
|
455
|
+
/**
|
|
456
|
+
* Converte valor da unidade base (meter_per_second) para outra unidade
|
|
457
|
+
*
|
|
458
|
+
* @param variant - Unidade de destino
|
|
459
|
+
* @param baseValue - Valor em meter_per_second
|
|
460
|
+
* @returns Valor na unidade de destino
|
|
461
|
+
*
|
|
462
|
+
* @example
|
|
463
|
+
* fromBaseSpeed('kilometer_per_hour', 27.7778); // ~100
|
|
464
|
+
* fromBaseSpeed('mile_per_hour', 26.8224); // ~60
|
|
465
|
+
*/
|
|
466
|
+
declare function fromBaseSpeed(variant: SpeedUnit, baseValue: number): number;
|
|
467
|
+
/**
|
|
468
|
+
* Converte entre duas unidades de velocidade
|
|
469
|
+
*
|
|
470
|
+
* @param from - Unidade de origem
|
|
471
|
+
* @param to - Unidade de destino
|
|
472
|
+
* @param value - Valor a converter
|
|
473
|
+
* @returns Valor convertido
|
|
474
|
+
*
|
|
475
|
+
* @example
|
|
476
|
+
* convertSpeed('kilometer_per_hour', 'mile_per_hour', 100); // 62.1371...
|
|
477
|
+
* convertSpeed('knot', 'kilometer_per_hour', 1); // 1.852
|
|
478
|
+
* convertSpeed('mach', 'kilometer_per_hour', 1); // 1225.044
|
|
479
|
+
*/
|
|
480
|
+
declare function convertSpeed(from: SpeedUnit, to: SpeedUnit, value: number): number;
|
|
481
|
+
/**
|
|
482
|
+
* Versão safe de convertSpeed que retorna Result
|
|
483
|
+
*
|
|
484
|
+
* @example
|
|
485
|
+
* tryConvertSpeed('kilometer_per_hour', 'mile_per_hour', 100);
|
|
486
|
+
* // { ok: true, value: 62.1371... }
|
|
487
|
+
*
|
|
488
|
+
* tryConvertSpeed('invalid', 'mile_per_hour', 100);
|
|
489
|
+
* // { ok: false, error: 'Unknown speed variant: invalid' }
|
|
490
|
+
*/
|
|
491
|
+
declare function tryConvertSpeed(from: SpeedUnit, to: SpeedUnit, value: number): Result$9<number>;
|
|
492
|
+
/**
|
|
493
|
+
* Verifica se uma variante existe
|
|
494
|
+
*/
|
|
495
|
+
declare function hasSpeedVariant(variant: string): variant is SpeedUnit;
|
|
496
|
+
/**
|
|
497
|
+
* Lista todas as variantes disponíveis
|
|
498
|
+
*/
|
|
499
|
+
declare function getSpeedVariants(): SpeedUnit[];
|
|
500
|
+
|
|
501
|
+
/**
|
|
502
|
+
* Energy Role - Convert Pillar
|
|
503
|
+
*
|
|
504
|
+
* Conversão entre unidades de energia usando arquitetura hub-and-spoke.
|
|
505
|
+
* Base: joule (J)
|
|
506
|
+
*
|
|
507
|
+
* @example
|
|
508
|
+
* import { convertEnergy, toBaseEnergy, fromBaseEnergy } from '@attrx/role-morphic/energy/convert';
|
|
509
|
+
*
|
|
510
|
+
* convertEnergy('kilocalorie', 'kilojoule', 1); // 4.1868
|
|
511
|
+
* toBaseEnergy('kilowatt_hour', 1); // 3600000
|
|
512
|
+
* fromBaseEnergy('btu', 1055.06); // ~1
|
|
513
|
+
*/
|
|
514
|
+
|
|
515
|
+
type Result$8<T> = {
|
|
516
|
+
ok: true;
|
|
517
|
+
value: T;
|
|
518
|
+
} | {
|
|
519
|
+
ok: false;
|
|
520
|
+
error: string;
|
|
521
|
+
};
|
|
522
|
+
/** Variante base para conversões */
|
|
523
|
+
declare const ENERGY_BASE: EnergyUnit;
|
|
524
|
+
/**
|
|
525
|
+
* Converte valor para a unidade base (joule)
|
|
526
|
+
*
|
|
527
|
+
* @param variant - Unidade de origem
|
|
528
|
+
* @param value - Valor a converter
|
|
529
|
+
* @returns Valor em joule
|
|
530
|
+
*
|
|
531
|
+
* @example
|
|
532
|
+
* toBaseEnergy('kilowatt_hour', 1); // 3600000
|
|
533
|
+
* toBaseEnergy('kilocalorie', 1); // 4186.8
|
|
534
|
+
*/
|
|
535
|
+
declare function toBaseEnergy(variant: EnergyUnit, value: number): number;
|
|
536
|
+
/**
|
|
537
|
+
* Converte valor da unidade base (joule) para outra unidade
|
|
538
|
+
*
|
|
539
|
+
* @param variant - Unidade de destino
|
|
540
|
+
* @param baseValue - Valor em joule
|
|
541
|
+
* @returns Valor na unidade de destino
|
|
542
|
+
*
|
|
543
|
+
* @example
|
|
544
|
+
* fromBaseEnergy('kilowatt_hour', 3600000); // 1
|
|
545
|
+
* fromBaseEnergy('kilocalorie', 4186.8); // 1
|
|
546
|
+
*/
|
|
547
|
+
declare function fromBaseEnergy(variant: EnergyUnit, baseValue: number): number;
|
|
548
|
+
/**
|
|
549
|
+
* Converte entre duas unidades de energia
|
|
550
|
+
*
|
|
551
|
+
* @param from - Unidade de origem
|
|
552
|
+
* @param to - Unidade de destino
|
|
553
|
+
* @param value - Valor a converter
|
|
554
|
+
* @returns Valor convertido
|
|
555
|
+
*
|
|
556
|
+
* @example
|
|
557
|
+
* convertEnergy('kilocalorie', 'kilojoule', 1); // 4.1868
|
|
558
|
+
* convertEnergy('kilowatt_hour', 'megajoule', 1); // 3.6
|
|
559
|
+
* convertEnergy('btu', 'joule', 1); // 1055.056...
|
|
560
|
+
*/
|
|
561
|
+
declare function convertEnergy(from: EnergyUnit, to: EnergyUnit, value: number): number;
|
|
562
|
+
/**
|
|
563
|
+
* Versão safe de convertEnergy que retorna Result
|
|
564
|
+
*
|
|
565
|
+
* @example
|
|
566
|
+
* tryConvertEnergy('kilocalorie', 'kilojoule', 1);
|
|
567
|
+
* // { ok: true, value: 4.1868 }
|
|
568
|
+
*
|
|
569
|
+
* tryConvertEnergy('invalid', 'joule', 1);
|
|
570
|
+
* // { ok: false, error: 'Unknown energy variant: invalid' }
|
|
571
|
+
*/
|
|
572
|
+
declare function tryConvertEnergy(from: EnergyUnit, to: EnergyUnit, value: number): Result$8<number>;
|
|
573
|
+
/**
|
|
574
|
+
* Verifica se uma variante existe
|
|
575
|
+
*/
|
|
576
|
+
declare function hasEnergyVariant(variant: string): variant is EnergyUnit;
|
|
577
|
+
/**
|
|
578
|
+
* Lista todas as variantes disponíveis
|
|
579
|
+
*/
|
|
580
|
+
declare function getEnergyVariants(): EnergyUnit[];
|
|
581
|
+
|
|
582
|
+
/**
|
|
583
|
+
* Power Role - Convert Pillar
|
|
584
|
+
*
|
|
585
|
+
* Conversão entre unidades de potência usando hub-and-spoke (via watt).
|
|
586
|
+
*
|
|
587
|
+
* @example
|
|
588
|
+
* import { convertPower, toBasePower, fromBasePower } from '@attrx/role-morphic/power/convert';
|
|
589
|
+
*
|
|
590
|
+
* convertPower('horsepower_mechanical', 'kilowatt', 1); // 0.7457
|
|
591
|
+
* toBasePower('kilowatt', 2.5); // 2500 (watts)
|
|
592
|
+
* fromBasePower('kilowatt', 2500); // 2.5
|
|
593
|
+
*/
|
|
594
|
+
|
|
595
|
+
type Result$7<T> = {
|
|
596
|
+
ok: true;
|
|
597
|
+
value: T;
|
|
598
|
+
} | {
|
|
599
|
+
ok: false;
|
|
600
|
+
error: string;
|
|
601
|
+
};
|
|
602
|
+
/** Unidade base para conversões (hub) */
|
|
603
|
+
declare const POWER_BASE: PowerUnit;
|
|
604
|
+
/**
|
|
605
|
+
* Converte valor para a unidade base (watt)
|
|
606
|
+
*
|
|
607
|
+
* @param variant - Unidade de origem
|
|
608
|
+
* @param value - Valor a converter
|
|
609
|
+
* @returns Valor em watts
|
|
610
|
+
*
|
|
611
|
+
* @example
|
|
612
|
+
* toBasePower('kilowatt', 2.5); // 2500
|
|
613
|
+
* toBasePower('horsepower_mechanical', 1); // 745.7
|
|
614
|
+
*/
|
|
615
|
+
declare function toBasePower(variant: PowerUnit, value: number): number;
|
|
616
|
+
/**
|
|
617
|
+
* Converte valor da unidade base (watt) para outra unidade
|
|
618
|
+
*
|
|
619
|
+
* @param variant - Unidade de destino
|
|
620
|
+
* @param baseValue - Valor em watts
|
|
621
|
+
* @returns Valor na unidade de destino
|
|
622
|
+
*
|
|
623
|
+
* @example
|
|
624
|
+
* fromBasePower('kilowatt', 2500); // 2.5
|
|
625
|
+
* fromBasePower('watt', 100); // 100
|
|
626
|
+
*/
|
|
627
|
+
declare function fromBasePower(variant: PowerUnit, baseValue: number): number;
|
|
628
|
+
/**
|
|
629
|
+
* Converte entre duas unidades de potência
|
|
630
|
+
*
|
|
631
|
+
* @param from - Unidade de origem
|
|
632
|
+
* @param to - Unidade de destino
|
|
633
|
+
* @param value - Valor a converter
|
|
634
|
+
* @returns Valor convertido
|
|
635
|
+
*
|
|
636
|
+
* @example
|
|
637
|
+
* convertPower('horsepower_mechanical', 'kilowatt', 1); // 0.7457
|
|
638
|
+
* convertPower('kilowatt', 'watt', 2.5); // 2500
|
|
639
|
+
*/
|
|
640
|
+
declare function convertPower(from: PowerUnit, to: PowerUnit, value: number): number;
|
|
641
|
+
/**
|
|
642
|
+
* Versão safe de convertPower que retorna Result
|
|
643
|
+
*
|
|
644
|
+
* @example
|
|
645
|
+
* tryConvertPower('kilowatt', 'watt', 1); // { ok: true, value: 1000 }
|
|
646
|
+
* tryConvertPower('invalid', 'watt', 1); // { ok: false, error: '...' }
|
|
647
|
+
*/
|
|
648
|
+
declare function tryConvertPower(from: PowerUnit, to: PowerUnit, value: number): Result$7<number>;
|
|
649
|
+
/**
|
|
650
|
+
* Verifica se uma variante existe
|
|
651
|
+
*
|
|
652
|
+
* @example
|
|
653
|
+
* hasPowerVariant('kilowatt'); // true
|
|
654
|
+
* hasPowerVariant('invalid'); // false
|
|
655
|
+
*/
|
|
656
|
+
declare function hasPowerVariant(variant: string): variant is PowerUnit;
|
|
657
|
+
/**
|
|
658
|
+
* Retorna lista de todas as variantes disponíveis
|
|
659
|
+
*
|
|
660
|
+
* @example
|
|
661
|
+
* getPowerVariants(); // ['gigawatt', 'megawatt', 'kilowatt', ...]
|
|
662
|
+
*/
|
|
663
|
+
declare function getPowerVariants(): PowerUnit[];
|
|
664
|
+
|
|
665
|
+
/**
|
|
666
|
+
* Pressure Role - Convert Pillar
|
|
667
|
+
*
|
|
668
|
+
* Conversão entre unidades de pressão usando hub-and-spoke (via pascal).
|
|
669
|
+
*
|
|
670
|
+
* @example
|
|
671
|
+
* import { convertPressure, toBasePressure, fromBasePressure } from '@attrx/role-morphic/pressure/convert';
|
|
672
|
+
*
|
|
673
|
+
* convertPressure('bar', 'pascal', 1); // 100000
|
|
674
|
+
* toBasePressure('bar', 2.5); // 250000 (pascals)
|
|
675
|
+
* fromBasePressure('bar', 250000); // 2.5
|
|
676
|
+
*/
|
|
677
|
+
|
|
678
|
+
type Result$6<T> = {
|
|
679
|
+
ok: true;
|
|
680
|
+
value: T;
|
|
681
|
+
} | {
|
|
682
|
+
ok: false;
|
|
683
|
+
error: string;
|
|
684
|
+
};
|
|
685
|
+
/** Unidade base para conversões (hub) */
|
|
686
|
+
declare const PRESSURE_BASE: PressureUnit;
|
|
687
|
+
/**
|
|
688
|
+
* Converte valor para a unidade base (pascal)
|
|
689
|
+
*
|
|
690
|
+
* @param variant - Unidade de origem
|
|
691
|
+
* @param value - Valor a converter
|
|
692
|
+
* @returns Valor em pascals
|
|
693
|
+
*
|
|
694
|
+
* @example
|
|
695
|
+
* toBasePressure('bar', 2.5); // 250000
|
|
696
|
+
* toBasePressure('atmosphere', 1); // 101325
|
|
697
|
+
*/
|
|
698
|
+
declare function toBasePressure(variant: PressureUnit, value: number): number;
|
|
699
|
+
/**
|
|
700
|
+
* Converte valor da unidade base (pascal) para outra unidade
|
|
701
|
+
*
|
|
702
|
+
* @param variant - Unidade de destino
|
|
703
|
+
* @param baseValue - Valor em pascals
|
|
704
|
+
* @returns Valor na unidade de destino
|
|
705
|
+
*
|
|
706
|
+
* @example
|
|
707
|
+
* fromBasePressure('bar', 250000); // 2.5
|
|
708
|
+
* fromBasePressure('atmosphere', 101325); // 1
|
|
709
|
+
*/
|
|
710
|
+
declare function fromBasePressure(variant: PressureUnit, baseValue: number): number;
|
|
711
|
+
/**
|
|
712
|
+
* Converte entre duas unidades de pressão
|
|
713
|
+
*
|
|
714
|
+
* @param from - Unidade de origem
|
|
715
|
+
* @param to - Unidade de destino
|
|
716
|
+
* @param value - Valor a converter
|
|
717
|
+
* @returns Valor convertido
|
|
718
|
+
*
|
|
719
|
+
* @example
|
|
720
|
+
* convertPressure('bar', 'pascal', 1); // 100000
|
|
721
|
+
* convertPressure('atmosphere', 'psi', 1); // 14.696
|
|
722
|
+
*/
|
|
723
|
+
declare function convertPressure(from: PressureUnit, to: PressureUnit, value: number): number;
|
|
724
|
+
/**
|
|
725
|
+
* Versão safe de convertPressure que retorna Result
|
|
726
|
+
*
|
|
727
|
+
* @example
|
|
728
|
+
* tryConvertPressure('bar', 'pascal', 1); // { ok: true, value: 100000 }
|
|
729
|
+
* tryConvertPressure('invalid', 'pascal', 1); // { ok: false, error: '...' }
|
|
730
|
+
*/
|
|
731
|
+
declare function tryConvertPressure(from: PressureUnit, to: PressureUnit, value: number): Result$6<number>;
|
|
732
|
+
/**
|
|
733
|
+
* Verifica se uma variante existe
|
|
734
|
+
*
|
|
735
|
+
* @example
|
|
736
|
+
* hasPressureVariant('bar'); // true
|
|
737
|
+
* hasPressureVariant('invalid'); // false
|
|
738
|
+
*/
|
|
739
|
+
declare function hasPressureVariant(variant: string): variant is PressureUnit;
|
|
740
|
+
/**
|
|
741
|
+
* Retorna lista de todas as variantes disponíveis
|
|
742
|
+
*
|
|
743
|
+
* @example
|
|
744
|
+
* getPressureVariants(); // ['megapascal', 'kilopascal', 'hectopascal', ...]
|
|
745
|
+
*/
|
|
746
|
+
declare function getPressureVariants(): PressureUnit[];
|
|
747
|
+
|
|
748
|
+
/**
|
|
749
|
+
* Frequency Role - Convert Pillar
|
|
750
|
+
*
|
|
751
|
+
* Conversão entre unidades de frequência usando hub-and-spoke (via hertz).
|
|
752
|
+
*
|
|
753
|
+
* @example
|
|
754
|
+
* import { convertFrequency, toBaseFrequency, fromBaseFrequency } from '@attrx/role-morphic/frequency/convert';
|
|
755
|
+
*
|
|
756
|
+
* convertFrequency('megahertz', 'hertz', 1); // 1000000
|
|
757
|
+
* toBaseFrequency('megahertz', 2.4); // 2400000 (hertz)
|
|
758
|
+
* fromBaseFrequency('megahertz', 2400000); // 2.4
|
|
759
|
+
*/
|
|
760
|
+
|
|
761
|
+
type Result$5<T> = {
|
|
762
|
+
ok: true;
|
|
763
|
+
value: T;
|
|
764
|
+
} | {
|
|
765
|
+
ok: false;
|
|
766
|
+
error: string;
|
|
767
|
+
};
|
|
768
|
+
/** Unidade base para conversões (hub) */
|
|
769
|
+
declare const FREQUENCY_BASE: FrequencyUnit;
|
|
770
|
+
/**
|
|
771
|
+
* Converte valor para a unidade base (hertz)
|
|
772
|
+
*
|
|
773
|
+
* @param variant - Unidade de origem
|
|
774
|
+
* @param value - Valor a converter
|
|
775
|
+
* @returns Valor em hertz
|
|
776
|
+
*
|
|
777
|
+
* @example
|
|
778
|
+
* toBaseFrequency('megahertz', 2.4); // 2400000
|
|
779
|
+
* toBaseFrequency('rpm', 60); // 1
|
|
780
|
+
*/
|
|
781
|
+
declare function toBaseFrequency(variant: FrequencyUnit, value: number): number;
|
|
782
|
+
/**
|
|
783
|
+
* Converte valor da unidade base (hertz) para outra unidade
|
|
784
|
+
*
|
|
785
|
+
* @param variant - Unidade de destino
|
|
786
|
+
* @param baseValue - Valor em hertz
|
|
787
|
+
* @returns Valor na unidade de destino
|
|
788
|
+
*
|
|
789
|
+
* @example
|
|
790
|
+
* fromBaseFrequency('megahertz', 2400000); // 2.4
|
|
791
|
+
* fromBaseFrequency('rpm', 1); // 60
|
|
792
|
+
*/
|
|
793
|
+
declare function fromBaseFrequency(variant: FrequencyUnit, baseValue: number): number;
|
|
794
|
+
/**
|
|
795
|
+
* Converte entre duas unidades de frequência
|
|
796
|
+
*
|
|
797
|
+
* @param from - Unidade de origem
|
|
798
|
+
* @param to - Unidade de destino
|
|
799
|
+
* @param value - Valor a converter
|
|
800
|
+
* @returns Valor convertido
|
|
801
|
+
*
|
|
802
|
+
* @example
|
|
803
|
+
* convertFrequency('megahertz', 'hertz', 1); // 1000000
|
|
804
|
+
* convertFrequency('rpm', 'hertz', 60); // 1
|
|
805
|
+
*/
|
|
806
|
+
declare function convertFrequency(from: FrequencyUnit, to: FrequencyUnit, value: number): number;
|
|
807
|
+
/**
|
|
808
|
+
* Versão safe de convertFrequency que retorna Result
|
|
809
|
+
*
|
|
810
|
+
* @example
|
|
811
|
+
* tryConvertFrequency('megahertz', 'hertz', 1); // { ok: true, value: 1000000 }
|
|
812
|
+
* tryConvertFrequency('invalid', 'hertz', 1); // { ok: false, error: '...' }
|
|
813
|
+
*/
|
|
814
|
+
declare function tryConvertFrequency(from: FrequencyUnit, to: FrequencyUnit, value: number): Result$5<number>;
|
|
815
|
+
/**
|
|
816
|
+
* Verifica se uma variante existe
|
|
817
|
+
*
|
|
818
|
+
* @example
|
|
819
|
+
* hasFrequencyVariant('hertz'); // true
|
|
820
|
+
* hasFrequencyVariant('invalid'); // false
|
|
821
|
+
*/
|
|
822
|
+
declare function hasFrequencyVariant(variant: string): variant is FrequencyUnit;
|
|
823
|
+
/**
|
|
824
|
+
* Retorna lista de todas as variantes disponíveis
|
|
825
|
+
*
|
|
826
|
+
* @example
|
|
827
|
+
* getFrequencyVariants(); // ['terahertz', 'gigahertz', 'megahertz', ...]
|
|
828
|
+
*/
|
|
829
|
+
declare function getFrequencyVariants(): FrequencyUnit[];
|
|
830
|
+
|
|
831
|
+
/**
|
|
832
|
+
* Angle Role - Convert Pillar
|
|
833
|
+
*
|
|
834
|
+
* Conversão entre unidades de ângulo usando hub-and-spoke (via degree).
|
|
835
|
+
*
|
|
836
|
+
* @example
|
|
837
|
+
* import { convertAngle, toBaseAngle, fromBaseAngle } from '@attrx/role-morphic/angle/convert';
|
|
838
|
+
*
|
|
839
|
+
* convertAngle('degree', 'radian', 180); // π ≈ 3.14159
|
|
840
|
+
* toBaseAngle('turn', 1); // 360 (degrees)
|
|
841
|
+
* fromBaseAngle('radian', 180); // π ≈ 3.14159
|
|
842
|
+
*/
|
|
843
|
+
|
|
844
|
+
type Result$4<T> = {
|
|
845
|
+
ok: true;
|
|
846
|
+
value: T;
|
|
847
|
+
} | {
|
|
848
|
+
ok: false;
|
|
849
|
+
error: string;
|
|
850
|
+
};
|
|
851
|
+
/** Unidade base para conversões (hub) */
|
|
852
|
+
declare const ANGLE_BASE: AngleUnit;
|
|
853
|
+
/**
|
|
854
|
+
* Converte valor para a unidade base (degree)
|
|
855
|
+
*
|
|
856
|
+
* @param variant - Unidade de origem
|
|
857
|
+
* @param value - Valor a converter
|
|
858
|
+
* @returns Valor em degrees
|
|
859
|
+
*
|
|
860
|
+
* @example
|
|
861
|
+
* toBaseAngle('turn', 1); // 360
|
|
862
|
+
* toBaseAngle('radian', Math.PI); // 180
|
|
863
|
+
*/
|
|
864
|
+
declare function toBaseAngle(variant: AngleUnit, value: number): number;
|
|
865
|
+
/**
|
|
866
|
+
* Converte valor da unidade base (degree) para outra unidade
|
|
867
|
+
*
|
|
868
|
+
* @param variant - Unidade de destino
|
|
869
|
+
* @param baseValue - Valor em degrees
|
|
870
|
+
* @returns Valor na unidade de destino
|
|
871
|
+
*
|
|
872
|
+
* @example
|
|
873
|
+
* fromBaseAngle('radian', 180); // π ≈ 3.14159
|
|
874
|
+
* fromBaseAngle('turn', 360); // 1
|
|
875
|
+
*/
|
|
876
|
+
declare function fromBaseAngle(variant: AngleUnit, baseValue: number): number;
|
|
877
|
+
/**
|
|
878
|
+
* Converte entre duas unidades de ângulo
|
|
879
|
+
*
|
|
880
|
+
* @param from - Unidade de origem
|
|
881
|
+
* @param to - Unidade de destino
|
|
882
|
+
* @param value - Valor a converter
|
|
883
|
+
* @returns Valor convertido
|
|
884
|
+
*
|
|
885
|
+
* @example
|
|
886
|
+
* convertAngle('degree', 'radian', 180); // π ≈ 3.14159
|
|
887
|
+
* convertAngle('turn', 'degree', 1); // 360
|
|
888
|
+
*/
|
|
889
|
+
declare function convertAngle(from: AngleUnit, to: AngleUnit, value: number): number;
|
|
890
|
+
/**
|
|
891
|
+
* Versão safe de convertAngle que retorna Result
|
|
892
|
+
*
|
|
893
|
+
* @example
|
|
894
|
+
* tryConvertAngle('degree', 'radian', 180); // { ok: true, value: π }
|
|
895
|
+
* tryConvertAngle('invalid', 'radian', 180); // { ok: false, error: '...' }
|
|
896
|
+
*/
|
|
897
|
+
declare function tryConvertAngle(from: AngleUnit, to: AngleUnit, value: number): Result$4<number>;
|
|
898
|
+
/**
|
|
899
|
+
* Verifica se uma variante existe
|
|
900
|
+
*
|
|
901
|
+
* @example
|
|
902
|
+
* hasAngleVariant('degree'); // true
|
|
903
|
+
* hasAngleVariant('invalid'); // false
|
|
904
|
+
*/
|
|
905
|
+
declare function hasAngleVariant(variant: string): variant is AngleUnit;
|
|
906
|
+
/**
|
|
907
|
+
* Retorna lista de todas as variantes disponíveis
|
|
908
|
+
*
|
|
909
|
+
* @example
|
|
910
|
+
* getAngleVariants(); // ['turn', 'degree', 'arcminute', ...]
|
|
911
|
+
*/
|
|
912
|
+
declare function getAngleVariants(): AngleUnit[];
|
|
913
|
+
|
|
914
|
+
/**
|
|
915
|
+
* Time Role - Convert Pillar
|
|
916
|
+
*
|
|
917
|
+
* Conversão entre unidades de tempo usando hub-and-spoke (via second).
|
|
918
|
+
*
|
|
919
|
+
* @example
|
|
920
|
+
* import { convertTime, toBaseTime, fromBaseTime } from '@attrx/role-morphic/time/convert';
|
|
921
|
+
*
|
|
922
|
+
* convertTime('hour', 'minute', 1); // 60
|
|
923
|
+
* toBaseTime('minute', 5); // 300 (seconds)
|
|
924
|
+
* fromBaseTime('hour', 3600); // 1
|
|
925
|
+
*/
|
|
926
|
+
|
|
927
|
+
type Result$3<T> = {
|
|
928
|
+
ok: true;
|
|
929
|
+
value: T;
|
|
930
|
+
} | {
|
|
931
|
+
ok: false;
|
|
932
|
+
error: string;
|
|
933
|
+
};
|
|
934
|
+
/** Unidade base para conversões (hub) */
|
|
935
|
+
declare const TIME_BASE: TimeUnit;
|
|
936
|
+
/**
|
|
937
|
+
* Converte valor para a unidade base (second)
|
|
938
|
+
*
|
|
939
|
+
* @param variant - Unidade de origem
|
|
940
|
+
* @param value - Valor a converter
|
|
941
|
+
* @returns Valor em seconds
|
|
942
|
+
*
|
|
943
|
+
* @example
|
|
944
|
+
* toBaseTime('minute', 5); // 300
|
|
945
|
+
* toBaseTime('hour', 1); // 3600
|
|
946
|
+
*/
|
|
947
|
+
declare function toBaseTime(variant: TimeUnit, value: number): number;
|
|
948
|
+
/**
|
|
949
|
+
* Converte valor da unidade base (second) para outra unidade
|
|
950
|
+
*
|
|
951
|
+
* @param variant - Unidade de destino
|
|
952
|
+
* @param baseValue - Valor em seconds
|
|
953
|
+
* @returns Valor na unidade de destino
|
|
954
|
+
*
|
|
955
|
+
* @example
|
|
956
|
+
* fromBaseTime('minute', 300); // 5
|
|
957
|
+
* fromBaseTime('hour', 3600); // 1
|
|
958
|
+
*/
|
|
959
|
+
declare function fromBaseTime(variant: TimeUnit, baseValue: number): number;
|
|
960
|
+
/**
|
|
961
|
+
* Converte entre duas unidades de tempo
|
|
962
|
+
*
|
|
963
|
+
* @param from - Unidade de origem
|
|
964
|
+
* @param to - Unidade de destino
|
|
965
|
+
* @param value - Valor a converter
|
|
966
|
+
* @returns Valor convertido
|
|
967
|
+
*
|
|
968
|
+
* @example
|
|
969
|
+
* convertTime('hour', 'minute', 1); // 60
|
|
970
|
+
* convertTime('day', 'hour', 1); // 24
|
|
971
|
+
*/
|
|
972
|
+
declare function convertTime(from: TimeUnit, to: TimeUnit, value: number): number;
|
|
973
|
+
/**
|
|
974
|
+
* Versão safe de convertTime que retorna Result
|
|
975
|
+
*
|
|
976
|
+
* @example
|
|
977
|
+
* tryConvertTime('hour', 'minute', 1); // { ok: true, value: 60 }
|
|
978
|
+
* tryConvertTime('invalid', 'minute', 1); // { ok: false, error: '...' }
|
|
979
|
+
*/
|
|
980
|
+
declare function tryConvertTime(from: TimeUnit, to: TimeUnit, value: number): Result$3<number>;
|
|
981
|
+
/**
|
|
982
|
+
* Verifica se uma variante existe
|
|
983
|
+
*
|
|
984
|
+
* @example
|
|
985
|
+
* hasTimeVariant('second'); // true
|
|
986
|
+
* hasTimeVariant('invalid'); // false
|
|
987
|
+
*/
|
|
988
|
+
declare function hasTimeVariant(variant: string): variant is TimeUnit;
|
|
989
|
+
/**
|
|
990
|
+
* Retorna lista de todas as variantes disponíveis
|
|
991
|
+
*
|
|
992
|
+
* @example
|
|
993
|
+
* getTimeVariants(); // ['nanosecond', 'microsecond', 'millisecond', ...]
|
|
994
|
+
*/
|
|
995
|
+
declare function getTimeVariants(): TimeUnit[];
|
|
996
|
+
|
|
997
|
+
/**
|
|
998
|
+
* Digital Role - Convert Pillar
|
|
999
|
+
*
|
|
1000
|
+
* Conversão entre unidades de armazenamento digital usando hub-and-spoke (via byte).
|
|
1001
|
+
*
|
|
1002
|
+
* @example
|
|
1003
|
+
* import { convertDigital, toBaseDigital, fromBaseDigital } from '@attrx/role-morphic/digital/convert';
|
|
1004
|
+
*
|
|
1005
|
+
* convertDigital('kilobyte', 'byte', 1); // 1000
|
|
1006
|
+
* convertDigital('kibibyte', 'byte', 1); // 1024
|
|
1007
|
+
* toBaseDigital('megabyte', 1); // 1000000 (bytes)
|
|
1008
|
+
* fromBaseDigital('mebibyte', 1048576); // 1
|
|
1009
|
+
*/
|
|
1010
|
+
|
|
1011
|
+
type Result$2<T> = {
|
|
1012
|
+
ok: true;
|
|
1013
|
+
value: T;
|
|
1014
|
+
} | {
|
|
1015
|
+
ok: false;
|
|
1016
|
+
error: string;
|
|
1017
|
+
};
|
|
1018
|
+
/** Unidade base para conversões (hub) */
|
|
1019
|
+
declare const DIGITAL_BASE: DigitalUnit;
|
|
1020
|
+
/**
|
|
1021
|
+
* Converte valor para a unidade base (byte)
|
|
1022
|
+
*
|
|
1023
|
+
* @param variant - Unidade de origem
|
|
1024
|
+
* @param value - Valor a converter
|
|
1025
|
+
* @returns Valor em bytes
|
|
1026
|
+
*
|
|
1027
|
+
* @example
|
|
1028
|
+
* toBaseDigital('kilobyte', 1); // 1000
|
|
1029
|
+
* toBaseDigital('kibibyte', 1); // 1024
|
|
1030
|
+
*/
|
|
1031
|
+
declare function toBaseDigital(variant: DigitalUnit, value: number): number;
|
|
1032
|
+
/**
|
|
1033
|
+
* Converte valor da unidade base (byte) para outra unidade
|
|
1034
|
+
*
|
|
1035
|
+
* @param variant - Unidade de destino
|
|
1036
|
+
* @param baseValue - Valor em bytes
|
|
1037
|
+
* @returns Valor na unidade de destino
|
|
1038
|
+
*
|
|
1039
|
+
* @example
|
|
1040
|
+
* fromBaseDigital('kilobyte', 1000); // 1
|
|
1041
|
+
* fromBaseDigital('kibibyte', 1024); // 1
|
|
1042
|
+
*/
|
|
1043
|
+
declare function fromBaseDigital(variant: DigitalUnit, baseValue: number): number;
|
|
1044
|
+
/**
|
|
1045
|
+
* Converte entre duas unidades de armazenamento digital
|
|
1046
|
+
*
|
|
1047
|
+
* @param from - Unidade de origem
|
|
1048
|
+
* @param to - Unidade de destino
|
|
1049
|
+
* @param value - Valor a converter
|
|
1050
|
+
* @returns Valor convertido
|
|
1051
|
+
*
|
|
1052
|
+
* @example
|
|
1053
|
+
* convertDigital('kilobyte', 'byte', 1); // 1000
|
|
1054
|
+
* convertDigital('kibibyte', 'byte', 1); // 1024
|
|
1055
|
+
* convertDigital('gigabyte', 'gibibyte', 1); // ~0.931
|
|
1056
|
+
*/
|
|
1057
|
+
declare function convertDigital(from: DigitalUnit, to: DigitalUnit, value: number): number;
|
|
1058
|
+
/**
|
|
1059
|
+
* Versão safe de convertDigital que retorna Result
|
|
1060
|
+
*
|
|
1061
|
+
* @example
|
|
1062
|
+
* tryConvertDigital('kilobyte', 'byte', 1); // { ok: true, value: 1000 }
|
|
1063
|
+
* tryConvertDigital('invalid', 'byte', 1); // { ok: false, error: '...' }
|
|
1064
|
+
*/
|
|
1065
|
+
declare function tryConvertDigital(from: DigitalUnit, to: DigitalUnit, value: number): Result$2<number>;
|
|
1066
|
+
/**
|
|
1067
|
+
* Verifica se uma variante existe
|
|
1068
|
+
*
|
|
1069
|
+
* @example
|
|
1070
|
+
* hasDigitalVariant('byte'); // true
|
|
1071
|
+
* hasDigitalVariant('invalid'); // false
|
|
1072
|
+
*/
|
|
1073
|
+
declare function hasDigitalVariant(variant: string): variant is DigitalUnit;
|
|
1074
|
+
/**
|
|
1075
|
+
* Retorna lista de todas as variantes disponíveis
|
|
1076
|
+
*
|
|
1077
|
+
* @example
|
|
1078
|
+
* getDigitalVariants(); // ['bit', 'byte', 'kibibyte', ...]
|
|
1079
|
+
*/
|
|
1080
|
+
declare function getDigitalVariants(): DigitalUnit[];
|
|
1081
|
+
|
|
1082
|
+
/**
|
|
1083
|
+
* Color Role - Convert Pillar
|
|
1084
|
+
*
|
|
1085
|
+
* Conversão entre variantes de cor usando hub-and-spoke (via rgb_object/RGBA).
|
|
1086
|
+
*
|
|
1087
|
+
* @example
|
|
1088
|
+
* import { convertColor, hexToRgba, rgbaToHex } from '@attrx/role-morphic/color/convert';
|
|
1089
|
+
*
|
|
1090
|
+
* convertColor('hex', 'rgb_object', '#ff0000'); // { r: 255, g: 0, b: 0, a: 1 }
|
|
1091
|
+
* convertColor('rgb_object', 'hsl_string', { r: 255, g: 0, b: 0 }); // "hsl(0, 100%, 50%)"
|
|
1092
|
+
*/
|
|
1093
|
+
|
|
1094
|
+
type Result$1<T> = {
|
|
1095
|
+
ok: true;
|
|
1096
|
+
value: T;
|
|
1097
|
+
} | {
|
|
1098
|
+
ok: false;
|
|
1099
|
+
error: string;
|
|
1100
|
+
};
|
|
1101
|
+
/**
|
|
1102
|
+
* Converte entre duas variantes de cor
|
|
1103
|
+
*
|
|
1104
|
+
* @param from - Variante de origem
|
|
1105
|
+
* @param to - Variante de destino
|
|
1106
|
+
* @param value - Valor a converter
|
|
1107
|
+
* @returns Valor convertido
|
|
1108
|
+
*
|
|
1109
|
+
* @example
|
|
1110
|
+
* convertColor('hex', 'rgb_object', '#ff0000');
|
|
1111
|
+
* // { r: 255, g: 0, b: 0 }
|
|
1112
|
+
*/
|
|
1113
|
+
declare function convertColor<TFrom = unknown, TTo = unknown>(from: ColorVariant, to: ColorVariant, value: TFrom): TTo;
|
|
1114
|
+
/**
|
|
1115
|
+
* Versão safe de convertColor que retorna Result
|
|
1116
|
+
*/
|
|
1117
|
+
declare function tryConvertColor<TFrom = unknown, TTo = unknown>(from: ColorVariant, to: ColorVariant, value: TFrom): Result$1<TTo>;
|
|
1118
|
+
|
|
1119
|
+
/**
|
|
1120
|
+
* Date Role - Convert Pillar
|
|
1121
|
+
*
|
|
1122
|
+
* Conversão entre variantes de data usando hub-and-spoke (via timestamp).
|
|
1123
|
+
*
|
|
1124
|
+
* @example
|
|
1125
|
+
* import { convertDate, isoToTimestamp, epochToIso } from '@attrx/role-morphic/date/convert';
|
|
1126
|
+
*
|
|
1127
|
+
* convertDate('iso', 'epoch', '2024-12-05T19:30:00.000Z'); // 1733425800
|
|
1128
|
+
* convertDate('epoch', 'iso', 1733425800); // '2024-12-05T19:30:00.000Z'
|
|
1129
|
+
* isoToTimestamp('2024-12-05T19:30:00.000Z'); // 1733425800000
|
|
1130
|
+
*/
|
|
1131
|
+
|
|
1132
|
+
type Result<T> = {
|
|
1133
|
+
ok: true;
|
|
1134
|
+
value: T;
|
|
1135
|
+
} | {
|
|
1136
|
+
ok: false;
|
|
1137
|
+
error: string;
|
|
1138
|
+
};
|
|
1139
|
+
/**
|
|
1140
|
+
* Converte entre duas variantes de data
|
|
1141
|
+
*
|
|
1142
|
+
* @param from - Variante de origem
|
|
1143
|
+
* @param to - Variante de destino
|
|
1144
|
+
* @param value - Valor a converter
|
|
1145
|
+
* @returns Valor convertido
|
|
1146
|
+
*
|
|
1147
|
+
* @example
|
|
1148
|
+
* convertDate('iso', 'epoch', '2024-12-05T19:30:00.000Z'); // 1733425800
|
|
1149
|
+
* convertDate('epoch', 'iso', 1733425800); // '2024-12-05T19:30:00.000Z'
|
|
1150
|
+
*/
|
|
1151
|
+
declare function convertDate<TFrom = unknown, TTo = unknown>(from: DateVariant, to: DateVariant, value: TFrom): TTo;
|
|
1152
|
+
/**
|
|
1153
|
+
* Versão safe de convertDate que retorna Result
|
|
1154
|
+
*/
|
|
1155
|
+
declare function tryConvertDate<TFrom = unknown, TTo = unknown>(from: DateVariant, to: DateVariant, value: TFrom): Result<TTo>;
|
|
1156
|
+
|
|
1157
|
+
export { ANGLE_BASE, AREA_BASE, DIGITAL_BASE, ENERGY_BASE, FREQUENCY_BASE, LENGTH_BASE, MASS_BASE, POWER_BASE, PRESSURE_BASE, SPEED_BASE, TEMPERATURE_BASE, TIME_BASE, VOLUME_BASE, convertAngle, convertArea, convertColor, convertDate, convertDigital, convertEnergy, convertFrequency, convertLength, convertMass, convertPower, convertPressure, convertSpeed, convertTemperature, convertTime, convertVolume, fromBaseAngle, fromBaseArea, fromBaseDigital, fromBaseEnergy, fromBaseFrequency, fromBaseLength, fromBaseMass, fromBasePower, fromBasePressure, fromBaseSpeed, fromBaseTemperature, fromBaseTime, fromBaseVolume, getAngleVariants, getAreaVariants, getDigitalVariants, getEnergyVariants, getFrequencyVariants, getLengthVariants, getMassVariants, getPowerVariants, getPressureVariants, getSpeedVariants, getTemperatureVariants, getTimeVariants, getVolumeVariants, hasAngleVariant, hasAreaVariant, hasDigitalVariant, hasEnergyVariant, hasFrequencyVariant, hasLengthVariant, hasMassVariant, hasPowerVariant, hasPressureVariant, hasSpeedVariant, hasTemperatureVariant, hasTimeVariant, hasVolumeVariant, toBaseAngle, toBaseArea, toBaseDigital, toBaseEnergy, toBaseFrequency, toBaseLength, toBaseMass, toBasePower, toBasePressure, toBaseSpeed, toBaseTemperature, toBaseTime, toBaseVolume, tryConvertAngle, tryConvertArea, tryConvertColor, tryConvertDate, tryConvertDigital, tryConvertEnergy, tryConvertFrequency, tryConvertLength, tryConvertMass, tryConvertPower, tryConvertPressure, tryConvertSpeed, tryConvertTemperature, tryConvertTime, tryConvertVolume };
|