katanakit-js 2.2.1 → 2.12.9

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 (148) hide show
  1. package/README.md +72 -437
  2. package/dist/adapters/astro/astro.service.d.ts +103 -15
  3. package/dist/adapters/astro/astro.service.d.ts.map +1 -1
  4. package/dist/adapters/astro/astro.service.js +145 -75
  5. package/dist/adapters/astro/astro.service.js.map +1 -1
  6. package/dist/adapters/astro/index.d.ts +1 -1
  7. package/dist/adapters/astro/index.d.ts.map +1 -1
  8. package/dist/adapters/astro/index.js +1 -1
  9. package/dist/adapters/astro/index.js.map +1 -1
  10. package/dist/adapters/astro/rss.service.d.ts +85 -105
  11. package/dist/adapters/astro/rss.service.d.ts.map +1 -1
  12. package/dist/adapters/astro/rss.service.js +172 -168
  13. package/dist/adapters/astro/rss.service.js.map +1 -1
  14. package/dist/adapters/astro/seo.service.d.ts +10 -0
  15. package/dist/adapters/astro/seo.service.d.ts.map +1 -0
  16. package/dist/adapters/astro/seo.service.js +3 -0
  17. package/dist/adapters/astro/seo.service.js.map +1 -0
  18. package/dist/adapters/express/app.d.ts +30 -1
  19. package/dist/adapters/express/app.d.ts.map +1 -1
  20. package/dist/adapters/express/app.js +31 -3
  21. package/dist/adapters/express/app.js.map +1 -1
  22. package/dist/adapters/express/index.d.ts +2 -2
  23. package/dist/adapters/express/index.d.ts.map +1 -1
  24. package/dist/adapters/express/index.js +2 -2
  25. package/dist/adapters/express/index.js.map +1 -1
  26. package/dist/adapters/express/main.js +2 -2
  27. package/dist/adapters/express/main.js.map +1 -1
  28. package/dist/adapters/express/products.controller.d.ts +67 -8
  29. package/dist/adapters/express/products.controller.d.ts.map +1 -1
  30. package/dist/adapters/express/products.controller.js +105 -49
  31. package/dist/adapters/express/products.controller.js.map +1 -1
  32. package/dist/adapters/express/server.d.ts +37 -13
  33. package/dist/adapters/express/server.d.ts.map +1 -1
  34. package/dist/adapters/express/server.js +118 -53
  35. package/dist/adapters/express/server.js.map +1 -1
  36. package/dist/adapters/nuxt/nuxt.service.d.ts +8 -6
  37. package/dist/adapters/nuxt/nuxt.service.d.ts.map +1 -1
  38. package/dist/adapters/nuxt/nuxt.service.js +34 -10
  39. package/dist/adapters/nuxt/nuxt.service.js.map +1 -1
  40. package/dist/adapters/vue/vue.service.d.ts +5 -2
  41. package/dist/adapters/vue/vue.service.d.ts.map +1 -1
  42. package/dist/adapters/vue/vue.service.js +41 -7
  43. package/dist/adapters/vue/vue.service.js.map +1 -1
  44. package/dist/config/index.d.ts +2 -1
  45. package/dist/config/index.d.ts.map +1 -1
  46. package/dist/config/index.js +1 -1
  47. package/dist/config/index.js.map +1 -1
  48. package/dist/config/seo-meta.types.d.ts +177 -0
  49. package/dist/config/seo-meta.types.d.ts.map +1 -0
  50. package/dist/config/seo-meta.types.js +11 -0
  51. package/dist/config/seo-meta.types.js.map +1 -0
  52. package/dist/config/seo.service.d.ts +41 -58
  53. package/dist/config/seo.service.d.ts.map +1 -1
  54. package/dist/config/seo.service.js +468 -136
  55. package/dist/config/seo.service.js.map +1 -1
  56. package/dist/config/site.config.d.ts +10 -50
  57. package/dist/config/site.config.d.ts.map +1 -1
  58. package/dist/config/site.config.js +8 -36
  59. package/dist/config/site.config.js.map +1 -1
  60. package/dist/core/index.d.ts +1 -3
  61. package/dist/core/index.d.ts.map +1 -1
  62. package/dist/core/index.js +1 -3
  63. package/dist/core/index.js.map +1 -1
  64. package/dist/core/services/dates.service.d.ts +149 -22
  65. package/dist/core/services/dates.service.d.ts.map +1 -1
  66. package/dist/core/services/dates.service.js +201 -54
  67. package/dist/core/services/dates.service.js.map +1 -1
  68. package/dist/core/services/error.service.d.ts +32 -20
  69. package/dist/core/services/error.service.d.ts.map +1 -1
  70. package/dist/core/services/error.service.js +44 -32
  71. package/dist/core/services/error.service.js.map +1 -1
  72. package/dist/core/services/formatter.service.d.ts +245 -35
  73. package/dist/core/services/formatter.service.d.ts.map +1 -1
  74. package/dist/core/services/formatter.service.js +281 -57
  75. package/dist/core/services/formatter.service.js.map +1 -1
  76. package/dist/core/services/generator.service.d.ts +115 -26
  77. package/dist/core/services/generator.service.d.ts.map +1 -1
  78. package/dist/core/services/generator.service.js +191 -56
  79. package/dist/core/services/generator.service.js.map +1 -1
  80. package/dist/core/services/geometry.service.d.ts +369 -39
  81. package/dist/core/services/geometry.service.d.ts.map +1 -1
  82. package/dist/core/services/geometry.service.js +424 -66
  83. package/dist/core/services/geometry.service.js.map +1 -1
  84. package/dist/core/services/http.service.d.ts +244 -21
  85. package/dist/core/services/http.service.d.ts.map +1 -1
  86. package/dist/core/services/http.service.js +419 -98
  87. package/dist/core/services/http.service.js.map +1 -1
  88. package/dist/core/services/logger.service.d.ts +95 -29
  89. package/dist/core/services/logger.service.d.ts.map +1 -1
  90. package/dist/core/services/logger.service.js +167 -41
  91. package/dist/core/services/logger.service.js.map +1 -1
  92. package/dist/core/services/reactive.service.d.ts +146 -19
  93. package/dist/core/services/reactive.service.d.ts.map +1 -1
  94. package/dist/core/services/reactive.service.js +278 -137
  95. package/dist/core/services/reactive.service.js.map +1 -1
  96. package/dist/core/services/timing.service.d.ts +142 -20
  97. package/dist/core/services/timing.service.d.ts.map +1 -1
  98. package/dist/core/services/timing.service.js +324 -185
  99. package/dist/core/services/timing.service.js.map +1 -1
  100. package/dist/core/services/utils.service.d.ts +228 -43
  101. package/dist/core/services/utils.service.d.ts.map +1 -1
  102. package/dist/core/services/utils.service.js +305 -125
  103. package/dist/core/services/utils.service.js.map +1 -1
  104. package/dist/infrastructure/dom/dom.service.d.ts +307 -44
  105. package/dist/infrastructure/dom/dom.service.d.ts.map +1 -1
  106. package/dist/infrastructure/dom/dom.service.js +408 -129
  107. package/dist/infrastructure/dom/dom.service.js.map +1 -1
  108. package/dist/infrastructure/index.d.ts +0 -3
  109. package/dist/infrastructure/index.d.ts.map +1 -1
  110. package/dist/infrastructure/index.js +0 -3
  111. package/dist/infrastructure/index.js.map +1 -1
  112. package/dist/infrastructure/observer/observer.service.d.ts +124 -31
  113. package/dist/infrastructure/observer/observer.service.d.ts.map +1 -1
  114. package/dist/infrastructure/observer/observer.service.js +227 -131
  115. package/dist/infrastructure/observer/observer.service.js.map +1 -1
  116. package/dist/infrastructure/sensors/sensors.service.d.ts +154 -22
  117. package/dist/infrastructure/sensors/sensors.service.d.ts.map +1 -1
  118. package/dist/infrastructure/sensors/sensors.service.js +264 -112
  119. package/dist/infrastructure/sensors/sensors.service.js.map +1 -1
  120. package/dist/infrastructure/storage/storage.service.d.ts +123 -45
  121. package/dist/infrastructure/storage/storage.service.d.ts.map +1 -1
  122. package/dist/infrastructure/storage/storage.service.js +236 -66
  123. package/dist/infrastructure/storage/storage.service.js.map +1 -1
  124. package/dist/infrastructure/theme/theme.service.d.ts +93 -29
  125. package/dist/infrastructure/theme/theme.service.d.ts.map +1 -1
  126. package/dist/infrastructure/theme/theme.service.js +198 -96
  127. package/dist/infrastructure/theme/theme.service.js.map +1 -1
  128. package/dist/infrastructure/viewport/viewport.service.d.ts +233 -35
  129. package/dist/infrastructure/viewport/viewport.service.d.ts.map +1 -1
  130. package/dist/infrastructure/viewport/viewport.service.js +358 -139
  131. package/dist/infrastructure/viewport/viewport.service.js.map +1 -1
  132. package/dist/infrastructure/worker/worker.service.d.ts +84 -38
  133. package/dist/infrastructure/worker/worker.service.d.ts.map +1 -1
  134. package/dist/infrastructure/worker/worker.service.js +234 -133
  135. package/dist/infrastructure/worker/worker.service.js.map +1 -1
  136. package/dist/prisma/index.d.ts +2 -0
  137. package/dist/prisma/index.d.ts.map +1 -0
  138. package/dist/prisma/index.js +2 -0
  139. package/dist/prisma/index.js.map +1 -0
  140. package/dist/prisma/schema.json +11 -33
  141. package/dist/prisma/use-prisma.d.ts +68 -0
  142. package/dist/prisma/use-prisma.d.ts.map +1 -0
  143. package/dist/prisma/use-prisma.js +82 -0
  144. package/dist/prisma/use-prisma.js.map +1 -0
  145. package/dist/types/index.d.ts +20 -12
  146. package/dist/types/index.d.ts.map +1 -1
  147. package/package.json +124 -125
  148. package/CHANGELOG.md +0 -101
@@ -1,36 +1,246 @@
1
- import type { CurrencyFormatOptions, IConverterService, IFormatterService, Locale } from "../../types/index.js";
2
- /**
3
- * Number/currency/string formatter (Adapter + Singleton) over `Intl`.
4
- */
5
- export declare class FormatterService implements IFormatterService {
6
- private static instance;
7
- private constructor();
8
- static getInstance(): FormatterService;
9
- useFormatNumber: (value: number, locale?: Locale, digits?: number) => string;
10
- useUpperCase: (text: string, locale?: Locale) => string;
11
- useLowerCase: (text: string, locale?: Locale) => string;
12
- useCapitalize: (text: string, locale?: Locale) => string;
13
- useFormatCurrency: (options: CurrencyFormatOptions) => string;
14
- useJsonStringify: (data: unknown) => string;
15
- useJsonParse: <T = unknown>(json: string) => T;
16
- }
17
- /**
18
- * Unit converter facade (Facade + Adapter + Singleton) built on FormatterService.
19
- */
20
- export declare class ConverterService implements IConverterService {
21
- private static instance;
22
- private readonly formatter;
23
- private constructor();
24
- static getInstance(): ConverterService;
25
- useToCelsius: (fahrenheit: number, locale?: Locale, digits?: number) => string;
26
- useToFahrenheit: (celsius: number, locale?: Locale, digits?: number) => string;
27
- useToKilometers: (miles: number, locale?: Locale, digits?: number) => string;
28
- useToMiles: (km: number, locale?: Locale, digits?: number) => string;
29
- useToInches: (cm: number, locale?: Locale, digits?: number) => string;
30
- useToCm: (inches: number, locale?: Locale, digits?: number) => string;
31
- useToKilos: (pounds: number, locale?: Locale, digits?: number) => string;
32
- useToPounds: (kilos: number, locale?: Locale, digits?: number) => string;
33
- }
34
- export declare const useToCelsius: (fahrenheit: number, locale?: Locale, digits?: number) => string, useToFahrenheit: (celsius: number, locale?: Locale, digits?: number) => string, useToKilometers: (miles: number, locale?: Locale, digits?: number) => string, useToMiles: (km: number, locale?: Locale, digits?: number) => string, useToInches: (cm: number, locale?: Locale, digits?: number) => string, useToCm: (inches: number, locale?: Locale, digits?: number) => string, useToKilos: (pounds: number, locale?: Locale, digits?: number) => string, useToPounds: (kilos: number, locale?: Locale, digits?: number) => string;
35
- export declare const useFormatCurrency: (options: CurrencyFormatOptions) => string, useFormatNumber: (value: number, locale?: Locale, digits?: number) => string, useJsonStringify: (data: unknown) => string, useJsonParse: <T = unknown>(json: string) => T, useUpperCase: (text: string, locale?: Locale) => string, useLowerCase: (text: string, locale?: Locale) => string, useCapitalize: (text: string, locale?: Locale) => string;
1
+ import type { CurrencyFormatOptions, Locale } from "../../types/index.js";
2
+ /**
3
+ * Pure number formatter over `Intl.NumberFormat`.
4
+ * Stateless — safe to call from any environment.
5
+ *
6
+ * @param value - The number to format.
7
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
8
+ * @param digits - Maximum and minimum fraction digits. Defaults to `2`.
9
+ * @returns The formatted number string.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * import { useFormatNumber } from "katanakit-js";
14
+ *
15
+ * useFormatNumber(1234.5, "en", 2); // "1,234.50"
16
+ * useFormatNumber(1234.5, "de", 2); // "1.234,50"
17
+ * ```
18
+ */
19
+ export declare function useFormatNumber(value: number, locale?: Locale, digits?: number): string;
20
+ /**
21
+ * Pure: locale-aware upper case (trims whitespace).
22
+ *
23
+ * @param text - The string to transform.
24
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
25
+ * @returns The upper-cased, trimmed string.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * import { useUpperCase } from "katanakit-js";
30
+ *
31
+ * useUpperCase("hello"); // "HELLO"
32
+ * useUpperCase("straße", "de"); // "STRASSE"
33
+ * ```
34
+ */
35
+ export declare function useUpperCase(text: string, locale?: Locale): string;
36
+ /**
37
+ * Pure: locale-aware lower case (trims whitespace).
38
+ *
39
+ * @param text - The string to transform.
40
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
41
+ * @returns The lower-cased, trimmed string.
42
+ *
43
+ * @example
44
+ * ```ts
45
+ * import { useLowerCase } from "katanakit-js";
46
+ *
47
+ * useLowerCase("HELLO"); // "hello"
48
+ * ```
49
+ */
50
+ export declare function useLowerCase(text: string, locale?: Locale): string;
51
+ /**
52
+ * Pure: capitalizes the first character; leaves the rest unchanged.
53
+ *
54
+ * @param text - The string to capitalize.
55
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
56
+ * @returns The string with its first character upper-cased.
57
+ *
58
+ * @example
59
+ * ```ts
60
+ * import { useCapitalize } from "katanakit-js";
61
+ *
62
+ * useCapitalize("hello world"); // "Hello world"
63
+ * ```
64
+ */
65
+ export declare function useCapitalize(text: string, locale?: Locale): string;
66
+ /**
67
+ * Pure: formats an amount as currency.
68
+ *
69
+ * `taxes` accepts either a percentage (`21` → 21%) or a decimal fraction
70
+ * (`0.21` → 21%). Values `> 1` are treated as percentages; values in `(0, 1]`
71
+ * as fractions. Prefer an explicit fraction when you need a rate ≤ 1%.
72
+ *
73
+ * @param options - Currency formatting options.
74
+ * @returns The formatted currency string.
75
+ *
76
+ * @example
77
+ * ```ts
78
+ * import { useFormatCurrency } from "katanakit-js";
79
+ *
80
+ * useFormatCurrency({ amount: 100, currency: "USD" }); // "$100.00"
81
+ * useFormatCurrency({ amount: 100, taxes: 21 }); // "$121.00"
82
+ * useFormatCurrency({ amount: 100, taxes: 0.21, locale: "es" }); // "121,00 €"
83
+ * ```
84
+ */
85
+ export declare function useFormatCurrency(options: CurrencyFormatOptions): string;
86
+ /**
87
+ * Pure: pretty-print JSON (3-space indent).
88
+ *
89
+ * @param data - The value to serialize.
90
+ * @returns The indented JSON string.
91
+ *
92
+ * @example
93
+ * ```ts
94
+ * import { useJsonStringify } from "katanakit-js";
95
+ *
96
+ * useJsonStringify({ a: 1 });
97
+ * // '{\n "a": 1\n}'
98
+ * ```
99
+ */
100
+ export declare function useJsonStringify(data: unknown): string;
101
+ /**
102
+ * Pure: parse JSON (throws on invalid input — same as `JSON.parse`).
103
+ *
104
+ * @param json - The JSON string to parse.
105
+ * @returns The parsed value typed as `T`.
106
+ *
107
+ * @example
108
+ * ```ts
109
+ * import { useJsonParse } from "katanakit-js";
110
+ *
111
+ * const obj = useJsonParse<{ a: number }>('{"a":1}');
112
+ * // { a: 1 }
113
+ * ```
114
+ */
115
+ export declare function useJsonParse<T = unknown>(json: string): T;
116
+ /**
117
+ * Pure: °F → °C (formatted).
118
+ *
119
+ * @param fahrenheit - Temperature in Fahrenheit.
120
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
121
+ * @param digits - Fraction digits. Defaults to `2`.
122
+ * @returns The formatted Celsius string.
123
+ *
124
+ * @example
125
+ * ```ts
126
+ * import { useToCelsius } from "katanakit-js";
127
+ *
128
+ * useToCelsius(212); // "100.00"
129
+ * useToCelsius(32); // "0.00"
130
+ * ```
131
+ */
132
+ export declare function useToCelsius(fahrenheit: number, locale?: Locale, digits?: number): string;
133
+ /**
134
+ * Pure: °C → °F (formatted).
135
+ *
136
+ * @param celsius - Temperature in Celsius.
137
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
138
+ * @param digits - Fraction digits. Defaults to `2`.
139
+ * @returns The formatted Fahrenheit string.
140
+ *
141
+ * @example
142
+ * ```ts
143
+ * import { useToFahrenheit } from "katanakit-js";
144
+ *
145
+ * useToFahrenheit(100); // "212.00"
146
+ * useToFahrenheit(0); // "32.00"
147
+ * ```
148
+ */
149
+ export declare function useToFahrenheit(celsius: number, locale?: Locale, digits?: number): string;
150
+ /**
151
+ * Pure: miles → kilometers (formatted). Round-trips with `useToMiles`.
152
+ *
153
+ * @param miles - Distance in miles.
154
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
155
+ * @param digits - Fraction digits. Defaults to `2`.
156
+ * @returns The formatted kilometer string.
157
+ *
158
+ * @example
159
+ * ```ts
160
+ * import { useToKilometers } from "katanakit-js";
161
+ *
162
+ * useToKilometers(1); // "1.61"
163
+ * ```
164
+ */
165
+ export declare function useToKilometers(miles: number, locale?: Locale, digits?: number): string;
166
+ /**
167
+ * Pure: kilometers → miles (formatted). Round-trips with `useToKilometers`.
168
+ *
169
+ * @param km - Distance in kilometers.
170
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
171
+ * @param digits - Fraction digits. Defaults to `2`.
172
+ * @returns The formatted mile string.
173
+ *
174
+ * @example
175
+ * ```ts
176
+ * import { useToMiles } from "katanakit-js";
177
+ *
178
+ * useToMiles(1.60934); // "1.00"
179
+ * ```
180
+ */
181
+ export declare function useToMiles(km: number, locale?: Locale, digits?: number): string;
182
+ /**
183
+ * Pure: centimeters → inches (formatted).
184
+ *
185
+ * @param cm - Length in centimeters.
186
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
187
+ * @param digits - Fraction digits. Defaults to `2`.
188
+ * @returns The formatted inch string.
189
+ *
190
+ * @example
191
+ * ```ts
192
+ * import { useToInches } from "katanakit-js";
193
+ *
194
+ * useToInches(2.54); // "1.00"
195
+ * ```
196
+ */
197
+ export declare function useToInches(cm: number, locale?: Locale, digits?: number): string;
198
+ /**
199
+ * Pure: inches → centimeters (formatted).
200
+ *
201
+ * @param inches - Length in inches.
202
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
203
+ * @param digits - Fraction digits. Defaults to `2`.
204
+ * @returns The formatted centimeter string.
205
+ *
206
+ * @example
207
+ * ```ts
208
+ * import { useToCm } from "katanakit-js";
209
+ *
210
+ * useToCm(1); // "2.54"
211
+ * ```
212
+ */
213
+ export declare function useToCm(inches: number, locale?: Locale, digits?: number): string;
214
+ /**
215
+ * Pure: pounds → kilograms (formatted).
216
+ *
217
+ * @param pounds - Weight in pounds.
218
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
219
+ * @param digits - Fraction digits. Defaults to `2`.
220
+ * @returns The formatted kilogram string.
221
+ *
222
+ * @example
223
+ * ```ts
224
+ * import { useToKilos } from "katanakit-js";
225
+ *
226
+ * useToKilos(1); // "0.45"
227
+ * ```
228
+ */
229
+ export declare function useToKilos(pounds: number, locale?: Locale, digits?: number): string;
230
+ /**
231
+ * Pure: kilograms → pounds (formatted).
232
+ *
233
+ * @param kilos - Weight in kilograms.
234
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
235
+ * @param digits - Fraction digits. Defaults to `2`.
236
+ * @returns The formatted pound string.
237
+ *
238
+ * @example
239
+ * ```ts
240
+ * import { useToPounds } from "katanakit-js";
241
+ *
242
+ * useToPounds(1); // "2.20"
243
+ * ```
244
+ */
245
+ export declare function useToPounds(kilos: number, locale?: Locale, digits?: number): string;
36
246
  //# sourceMappingURL=formatter.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/formatter.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,EACN,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAE1C,OAAO,eAAiB;IAExB,OAAc,WAAW,IAAI,gBAAgB,CAK5C;IAEM,eAAe,UAAW,MAAM,WAAU,MAAM,sBAAsB,MAAM,CAKjF;IAEK,YAAY,SAAU,MAAM,WAAU,MAAM,KAAU,MAAM,CAC5B;IAEhC,YAAY,SAAU,MAAM,WAAU,MAAM,KAAU,MAAM,CAC5B;IAEhC,aAAa,SAAU,MAAM,WAAU,MAAM,KAAU,MAAM,CAIlE;IAEK,iBAAiB,YAAa,qBAAqB,KAAG,MAAM,CAOjE;IAEK,gBAAgB,SAAU,OAAO,KAAG,MAAM,CAAkC;IAE5E,YAAY,GAAI,CAAC,GAAG,OAAO,QAAQ,MAAM,KAAG,CAAC,CAA0B;CAC9E;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAE7C,OAAO,eAEN;IAED,OAAc,WAAW,IAAI,gBAAgB,CAK5C;IAEM,YAAY,eAAgB,MAAM,WAAU,MAAM,sBAAsB,MAAM,CACZ;IAElE,eAAe,YAAa,MAAM,WAAU,MAAM,sBAAsB,MAAM,CACjB;IAE7D,eAAe,UAAW,MAAM,WAAU,MAAM,sBAAsB,MAAM,CAClB;IAE1D,UAAU,OAAQ,MAAM,WAAU,MAAM,sBAAsB,MAAM,CACb;IAEvD,WAAW,OAAQ,MAAM,WAAU,MAAM,sBAAsB,MAAM,CACjB;IAEpD,OAAO,WAAY,MAAM,WAAU,MAAM,sBAAsB,MAAM,CACb;IAExD,UAAU,WAAY,MAAM,WAAU,MAAM,sBAAsB,MAAM,CACZ;IAE5D,WAAW,UAAW,MAAM,WAAU,MAAM,sBAAsB,MAAM,CACb;CAClE;AAGD,eAAO,MACN,YAAY,eA3BuB,MAAM,WAAU,MAAM,sBAAsB,MAAM,EA4BrF,eAAe,YAzBoB,MAAM,WAAU,MAAM,sBAAsB,MAAM,EA0BrF,eAAe,UAvBkB,MAAM,WAAU,MAAM,sBAAsB,MAAM,EAwBnF,UAAU,OArBe,MAAM,WAAU,MAAM,sBAAsB,MAAM,EAsB3E,WAAW,OAnBe,MAAM,WAAU,MAAM,sBAAsB,MAAM,EAoB5E,OAAO,WAjBmB,MAAM,WAAU,MAAM,sBAAsB,MAAM,EAkB5E,UAAU,WAfmB,MAAM,WAAU,MAAM,sBAAsB,MAAM,EAgB/E,WAAW,UAbkB,MAAM,WAAU,MAAM,sBAAsB,MActB,CAAC;AAErD,eAAO,MACN,iBAAiB,YAtEoB,qBAAqB,KAAG,MAAM,EAuEnE,eAAe,UA1FkB,MAAM,WAAU,MAAM,sBAAsB,MAAM,EA2FnF,gBAAgB,SA/DiB,OAAO,KAAG,MAAM,EAgEjD,YAAY,GA9DW,CAAC,kBAAkB,MAAM,QA+DhD,YAAY,SAtFiB,MAAM,WAAU,MAAM,KAAU,MAAM,EAuFnE,YAAY,SApFiB,MAAM,WAAU,MAAM,KAAU,MAAM,EAqFnE,aAAa,SAlFiB,MAAM,WAAU,MAAM,KAAU,MAmFX,CAAC"}
1
+ {"version":3,"file":"formatter.service.d.ts","sourceRoot":"","sources":["../../../src/core/services/formatter.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAO1E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CAKxF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,GAAG,MAAM,CAExE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,GAAG,MAAM,CAExE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,GAAG,MAAM,CAIzE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAMxE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAEtD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAEzD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CAE1F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CAE1F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CAExF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CAEhF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CAEjF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CAEjF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CAEpF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CAEpF"}
@@ -1,64 +1,288 @@
1
+ /** International statute mile in kilometers (shared by both directions). */
2
+ const KM_PER_MILE = 1.60934;
3
+ const KG_PER_POUND = 0.453592;
4
+ const CM_PER_INCH = 2.54;
1
5
  /**
2
- * Number/currency/string formatter (Adapter + Singleton) over `Intl`.
6
+ * Pure number formatter over `Intl.NumberFormat`.
7
+ * Stateless — safe to call from any environment.
8
+ *
9
+ * @param value - The number to format.
10
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
11
+ * @param digits - Maximum and minimum fraction digits. Defaults to `2`.
12
+ * @returns The formatted number string.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import { useFormatNumber } from "katanakit-js";
17
+ *
18
+ * useFormatNumber(1234.5, "en", 2); // "1,234.50"
19
+ * useFormatNumber(1234.5, "de", 2); // "1.234,50"
20
+ * ```
3
21
  */
4
- export class FormatterService {
5
- static instance;
6
- constructor() { }
7
- static getInstance() {
8
- if (!FormatterService.instance) {
9
- FormatterService.instance = new FormatterService();
10
- }
11
- return FormatterService.instance;
12
- }
13
- useFormatNumber = (value, locale = "en", digits = 2) => {
14
- return new Intl.NumberFormat(locale, {
15
- maximumFractionDigits: digits,
16
- minimumFractionDigits: digits,
17
- }).format(value);
18
- };
19
- useUpperCase = (text, locale = "en") => text.toLocaleUpperCase(locale).trim();
20
- useLowerCase = (text, locale = "en") => text.toLocaleLowerCase(locale).trim();
21
- useCapitalize = (text, locale = "en") => {
22
- const trimmed = text.trim();
23
- if (!trimmed)
24
- return "";
25
- return trimmed.charAt(0).toLocaleUpperCase(locale) + trimmed.slice(1);
26
- };
27
- useFormatCurrency = (options) => {
28
- const { amount, currency = "USD", taxes = 0, locale = "en" } = options;
29
- // `taxes` may be a percentage (21) or a decimal fraction (0.21).
30
- const taxRate = taxes > 1 ? taxes / 100 : taxes;
31
- const total = amount * (1 + taxRate);
32
- return new Intl.NumberFormat(locale, { style: "currency", currency }).format(total);
33
- };
34
- useJsonStringify = (data) => JSON.stringify(data, null, 3);
35
- useJsonParse = (json) => JSON.parse(json);
22
+ export function useFormatNumber(value, locale = "en", digits = 2) {
23
+ return new Intl.NumberFormat(locale, {
24
+ maximumFractionDigits: digits,
25
+ minimumFractionDigits: digits,
26
+ }).format(value);
36
27
  }
37
28
  /**
38
- * Unit converter facade (Facade + Adapter + Singleton) built on FormatterService.
29
+ * Pure: locale-aware upper case (trims whitespace).
30
+ *
31
+ * @param text - The string to transform.
32
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
33
+ * @returns The upper-cased, trimmed string.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * import { useUpperCase } from "katanakit-js";
38
+ *
39
+ * useUpperCase("hello"); // "HELLO"
40
+ * useUpperCase("straße", "de"); // "STRASSE"
41
+ * ```
39
42
  */
40
- export class ConverterService {
41
- static instance;
42
- formatter;
43
- constructor() {
44
- this.formatter = FormatterService.getInstance();
45
- }
46
- static getInstance() {
47
- if (!ConverterService.instance) {
48
- ConverterService.instance = new ConverterService();
49
- }
50
- return ConverterService.instance;
51
- }
52
- useToCelsius = (fahrenheit, locale = "en", digits = 2) => this.formatter.useFormatNumber((fahrenheit - 32) / 1.8, locale, digits);
53
- useToFahrenheit = (celsius, locale = "en", digits = 2) => this.formatter.useFormatNumber(celsius * 1.8 + 32, locale, digits);
54
- useToKilometers = (miles, locale = "en", digits = 2) => this.formatter.useFormatNumber(miles / 0.62137, locale, digits);
55
- useToMiles = (km, locale = "en", digits = 2) => this.formatter.useFormatNumber(km * 1.60934, locale, digits);
56
- useToInches = (cm, locale = "en", digits = 2) => this.formatter.useFormatNumber(cm / 2.54, locale, digits);
57
- useToCm = (inches, locale = "en", digits = 2) => this.formatter.useFormatNumber(inches * 2.54, locale, digits);
58
- useToKilos = (pounds, locale = "en", digits = 2) => this.formatter.useFormatNumber(pounds * 0.453592, locale, digits);
59
- useToPounds = (kilos, locale = "en", digits = 2) => this.formatter.useFormatNumber(kilos / 0.453592, locale, digits);
43
+ export function useUpperCase(text, locale = "en") {
44
+ return text.toLocaleUpperCase(locale).trim();
45
+ }
46
+ /**
47
+ * Pure: locale-aware lower case (trims whitespace).
48
+ *
49
+ * @param text - The string to transform.
50
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
51
+ * @returns The lower-cased, trimmed string.
52
+ *
53
+ * @example
54
+ * ```ts
55
+ * import { useLowerCase } from "katanakit-js";
56
+ *
57
+ * useLowerCase("HELLO"); // "hello"
58
+ * ```
59
+ */
60
+ export function useLowerCase(text, locale = "en") {
61
+ return text.toLocaleLowerCase(locale).trim();
62
+ }
63
+ /**
64
+ * Pure: capitalizes the first character; leaves the rest unchanged.
65
+ *
66
+ * @param text - The string to capitalize.
67
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
68
+ * @returns The string with its first character upper-cased.
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * import { useCapitalize } from "katanakit-js";
73
+ *
74
+ * useCapitalize("hello world"); // "Hello world"
75
+ * ```
76
+ */
77
+ export function useCapitalize(text, locale = "en") {
78
+ const trimmed = text.trim();
79
+ if (!trimmed)
80
+ return "";
81
+ return trimmed.charAt(0).toLocaleUpperCase(locale) + trimmed.slice(1);
82
+ }
83
+ /**
84
+ * Pure: formats an amount as currency.
85
+ *
86
+ * `taxes` accepts either a percentage (`21` → 21%) or a decimal fraction
87
+ * (`0.21` → 21%). Values `> 1` are treated as percentages; values in `(0, 1]`
88
+ * as fractions. Prefer an explicit fraction when you need a rate ≤ 1%.
89
+ *
90
+ * @param options - Currency formatting options.
91
+ * @returns The formatted currency string.
92
+ *
93
+ * @example
94
+ * ```ts
95
+ * import { useFormatCurrency } from "katanakit-js";
96
+ *
97
+ * useFormatCurrency({ amount: 100, currency: "USD" }); // "$100.00"
98
+ * useFormatCurrency({ amount: 100, taxes: 21 }); // "$121.00"
99
+ * useFormatCurrency({ amount: 100, taxes: 0.21, locale: "es" }); // "121,00 €"
100
+ * ```
101
+ */
102
+ export function useFormatCurrency(options) {
103
+ const { amount, currency = "USD", taxes = 0, locale = "en" } = options;
104
+ const taxRate = taxes > 1 ? taxes / 100 : taxes;
105
+ const total = amount * (1 + taxRate);
106
+ return new Intl.NumberFormat(locale, { style: "currency", currency }).format(total);
107
+ }
108
+ /**
109
+ * Pure: pretty-print JSON (3-space indent).
110
+ *
111
+ * @param data - The value to serialize.
112
+ * @returns The indented JSON string.
113
+ *
114
+ * @example
115
+ * ```ts
116
+ * import { useJsonStringify } from "katanakit-js";
117
+ *
118
+ * useJsonStringify({ a: 1 });
119
+ * // '{\n "a": 1\n}'
120
+ * ```
121
+ */
122
+ export function useJsonStringify(data) {
123
+ return JSON.stringify(data, null, 3);
124
+ }
125
+ /**
126
+ * Pure: parse JSON (throws on invalid input — same as `JSON.parse`).
127
+ *
128
+ * @param json - The JSON string to parse.
129
+ * @returns The parsed value typed as `T`.
130
+ *
131
+ * @example
132
+ * ```ts
133
+ * import { useJsonParse } from "katanakit-js";
134
+ *
135
+ * const obj = useJsonParse<{ a: number }>('{"a":1}');
136
+ * // { a: 1 }
137
+ * ```
138
+ */
139
+ export function useJsonParse(json) {
140
+ return JSON.parse(json);
141
+ }
142
+ /**
143
+ * Pure: °F → °C (formatted).
144
+ *
145
+ * @param fahrenheit - Temperature in Fahrenheit.
146
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
147
+ * @param digits - Fraction digits. Defaults to `2`.
148
+ * @returns The formatted Celsius string.
149
+ *
150
+ * @example
151
+ * ```ts
152
+ * import { useToCelsius } from "katanakit-js";
153
+ *
154
+ * useToCelsius(212); // "100.00"
155
+ * useToCelsius(32); // "0.00"
156
+ * ```
157
+ */
158
+ export function useToCelsius(fahrenheit, locale = "en", digits = 2) {
159
+ return useFormatNumber((fahrenheit - 32) / 1.8, locale, digits);
160
+ }
161
+ /**
162
+ * Pure: °C → °F (formatted).
163
+ *
164
+ * @param celsius - Temperature in Celsius.
165
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
166
+ * @param digits - Fraction digits. Defaults to `2`.
167
+ * @returns The formatted Fahrenheit string.
168
+ *
169
+ * @example
170
+ * ```ts
171
+ * import { useToFahrenheit } from "katanakit-js";
172
+ *
173
+ * useToFahrenheit(100); // "212.00"
174
+ * useToFahrenheit(0); // "32.00"
175
+ * ```
176
+ */
177
+ export function useToFahrenheit(celsius, locale = "en", digits = 2) {
178
+ return useFormatNumber(celsius * 1.8 + 32, locale, digits);
179
+ }
180
+ /**
181
+ * Pure: miles → kilometers (formatted). Round-trips with `useToMiles`.
182
+ *
183
+ * @param miles - Distance in miles.
184
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
185
+ * @param digits - Fraction digits. Defaults to `2`.
186
+ * @returns The formatted kilometer string.
187
+ *
188
+ * @example
189
+ * ```ts
190
+ * import { useToKilometers } from "katanakit-js";
191
+ *
192
+ * useToKilometers(1); // "1.61"
193
+ * ```
194
+ */
195
+ export function useToKilometers(miles, locale = "en", digits = 2) {
196
+ return useFormatNumber(miles * KM_PER_MILE, locale, digits);
197
+ }
198
+ /**
199
+ * Pure: kilometers → miles (formatted). Round-trips with `useToKilometers`.
200
+ *
201
+ * @param km - Distance in kilometers.
202
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
203
+ * @param digits - Fraction digits. Defaults to `2`.
204
+ * @returns The formatted mile string.
205
+ *
206
+ * @example
207
+ * ```ts
208
+ * import { useToMiles } from "katanakit-js";
209
+ *
210
+ * useToMiles(1.60934); // "1.00"
211
+ * ```
212
+ */
213
+ export function useToMiles(km, locale = "en", digits = 2) {
214
+ return useFormatNumber(km / KM_PER_MILE, locale, digits);
215
+ }
216
+ /**
217
+ * Pure: centimeters → inches (formatted).
218
+ *
219
+ * @param cm - Length in centimeters.
220
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
221
+ * @param digits - Fraction digits. Defaults to `2`.
222
+ * @returns The formatted inch string.
223
+ *
224
+ * @example
225
+ * ```ts
226
+ * import { useToInches } from "katanakit-js";
227
+ *
228
+ * useToInches(2.54); // "1.00"
229
+ * ```
230
+ */
231
+ export function useToInches(cm, locale = "en", digits = 2) {
232
+ return useFormatNumber(cm / CM_PER_INCH, locale, digits);
233
+ }
234
+ /**
235
+ * Pure: inches → centimeters (formatted).
236
+ *
237
+ * @param inches - Length in inches.
238
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
239
+ * @param digits - Fraction digits. Defaults to `2`.
240
+ * @returns The formatted centimeter string.
241
+ *
242
+ * @example
243
+ * ```ts
244
+ * import { useToCm } from "katanakit-js";
245
+ *
246
+ * useToCm(1); // "2.54"
247
+ * ```
248
+ */
249
+ export function useToCm(inches, locale = "en", digits = 2) {
250
+ return useFormatNumber(inches * CM_PER_INCH, locale, digits);
251
+ }
252
+ /**
253
+ * Pure: pounds → kilograms (formatted).
254
+ *
255
+ * @param pounds - Weight in pounds.
256
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
257
+ * @param digits - Fraction digits. Defaults to `2`.
258
+ * @returns The formatted kilogram string.
259
+ *
260
+ * @example
261
+ * ```ts
262
+ * import { useToKilos } from "katanakit-js";
263
+ *
264
+ * useToKilos(1); // "0.45"
265
+ * ```
266
+ */
267
+ export function useToKilos(pounds, locale = "en", digits = 2) {
268
+ return useFormatNumber(pounds * KG_PER_POUND, locale, digits);
269
+ }
270
+ /**
271
+ * Pure: kilograms → pounds (formatted).
272
+ *
273
+ * @param kilos - Weight in kilograms.
274
+ * @param locale - BCP 47 locale tag. Defaults to `"en"`.
275
+ * @param digits - Fraction digits. Defaults to `2`.
276
+ * @returns The formatted pound string.
277
+ *
278
+ * @example
279
+ * ```ts
280
+ * import { useToPounds } from "katanakit-js";
281
+ *
282
+ * useToPounds(1); // "2.20"
283
+ * ```
284
+ */
285
+ export function useToPounds(kilos, locale = "en", digits = 2) {
286
+ return useFormatNumber(kilos / KG_PER_POUND, locale, digits);
60
287
  }
61
- // Singleton instances and destructured exports.
62
- export const { useToCelsius, useToFahrenheit, useToKilometers, useToMiles, useToInches, useToCm, useToKilos, useToPounds, } = ConverterService.getInstance();
63
- export const { useFormatCurrency, useFormatNumber, useJsonStringify, useJsonParse, useUpperCase, useLowerCase, useCapitalize, } = FormatterService.getInstance();
64
288
  //# sourceMappingURL=formatter.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.service.js","sourceRoot":"","sources":["../../../src/core/services/formatter.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatter.service.js","sourceRoot":"","sources":["../../../src/core/services/formatter.service.ts"],"names":[],"mappings":"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"}