@jjlmoya/utils-finance 1.10.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@jjlmoya/utils-finance",
3
- "version": "1.10.0",
3
+ "version": "1.12.0",
4
4
  "type": "module",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
7
7
  "exports": {
8
8
  ".": "./src/index.ts",
9
- "./data": "./src/data.ts"
9
+ "./data": "./src/data.ts",
10
+ "./entries": "./src/entries.ts"
10
11
  },
11
12
  "files": [
12
13
  "src"
@@ -1,16 +1,16 @@
1
1
  import type { FinanceCategoryEntry } from '../types';
2
- import { compoundInterest } from '../tool/compoundInterest';
3
- import { mortgage } from '../tool/mortgage';
4
- import { inflation } from '../tool/inflation';
5
- import { percentageCalculator } from '../tool/percentageCalculator';
6
- import { lateInterest } from '../tool/lateInterest';
7
- import { ibanBicSwift } from '../tool/ibanBicSwiftConverter';
8
- import { rentIncrease } from '../tool/rentIncreaseCalculator';
9
- import { lotteryOptimizer } from '../tool/lotteryOptimizer';
10
- import { courtFeeCalculator } from '../tool/courtFeeCalculator';
11
- import { legalInterestRate } from '../tool/legalInterestRate';
12
- import { fireCalculator } from '../tool/fireCalculator';
13
- import { debtSnowball } from '../tool/debtSnowball';
2
+ import { compoundInterest } from '../tool/compoundInterest/entry';
3
+ import { mortgage } from '../tool/mortgage/entry';
4
+ import { inflation } from '../tool/inflation/entry';
5
+ import { percentageCalculator } from '../tool/percentageCalculator/entry';
6
+ import { lateInterest } from '../tool/lateInterest/entry';
7
+ import { ibanBicSwift } from '../tool/ibanBicSwiftConverter/entry';
8
+ import { rentIncrease } from '../tool/rentIncreaseCalculator/entry';
9
+ import { lotteryOptimizer } from '../tool/lotteryOptimizer/entry';
10
+ import { courtFeeCalculator } from '../tool/courtFeeCalculator/entry';
11
+ import { legalInterestRate } from '../tool/legalInterestRate/entry';
12
+ import { fireCalculator } from '../tool/fireCalculator/entry';
13
+ import { debtSnowball } from '../tool/debtSnowball/entry';
14
14
 
15
15
  export const financeCategory: FinanceCategoryEntry = {
16
16
  icon: 'mdi:finance',
package/src/entries.ts ADDED
@@ -0,0 +1,38 @@
1
+ export { compoundInterest } from './tool/compoundInterest/entry';
2
+ export type { CompoundInterestLocaleContent } from './tool/compoundInterest/entry';
3
+ export { courtFeeCalculator } from './tool/courtFeeCalculator/entry';
4
+ export type { CourtFeeCalculatorLocaleContent } from './tool/courtFeeCalculator/entry';
5
+ export { debtSnowball } from './tool/debtSnowball/entry';
6
+ export type { DebtSnowballLocaleContent } from './tool/debtSnowball/entry';
7
+ export { fireCalculator } from './tool/fireCalculator/entry';
8
+ export type { FIRECalculatorLocaleContent } from './tool/fireCalculator/entry';
9
+ export { ibanBicSwift } from './tool/ibanBicSwiftConverter/entry';
10
+ export type { IBANBICSwiftLocaleContent } from './tool/ibanBicSwiftConverter/entry';
11
+ export { inflation } from './tool/inflation/entry';
12
+ export type { InflationLocaleContent } from './tool/inflation/entry';
13
+ export { lateInterest } from './tool/lateInterest/entry';
14
+ export type { LateInterestLocaleContent } from './tool/lateInterest/entry';
15
+ export { legalInterestRate } from './tool/legalInterestRate/entry';
16
+ export type { LegalInterestRateLocaleContent } from './tool/legalInterestRate/entry';
17
+ export { lotteryOptimizer } from './tool/lotteryOptimizer/entry';
18
+ export type { LotteryOptimizerLocaleContent } from './tool/lotteryOptimizer/entry';
19
+ export { mortgage } from './tool/mortgage/entry';
20
+ export type { MortgageLocaleContent } from './tool/mortgage/entry';
21
+ export { percentageCalculator } from './tool/percentageCalculator/entry';
22
+ export type { PercentageCalculatorLocaleContent } from './tool/percentageCalculator/entry';
23
+ export { rentIncrease } from './tool/rentIncreaseCalculator/entry';
24
+ export type { RentIncreaseLocaleContent } from './tool/rentIncreaseCalculator/entry';
25
+ export { financeCategory } from './category';
26
+ import { compoundInterest } from './tool/compoundInterest/entry';
27
+ import { courtFeeCalculator } from './tool/courtFeeCalculator/entry';
28
+ import { debtSnowball } from './tool/debtSnowball/entry';
29
+ import { fireCalculator } from './tool/fireCalculator/entry';
30
+ import { ibanBicSwift } from './tool/ibanBicSwiftConverter/entry';
31
+ import { inflation } from './tool/inflation/entry';
32
+ import { lateInterest } from './tool/lateInterest/entry';
33
+ import { legalInterestRate } from './tool/legalInterestRate/entry';
34
+ import { lotteryOptimizer } from './tool/lotteryOptimizer/entry';
35
+ import { mortgage } from './tool/mortgage/entry';
36
+ import { percentageCalculator } from './tool/percentageCalculator/entry';
37
+ import { rentIncrease } from './tool/rentIncreaseCalculator/entry';
38
+ export const ALL_ENTRIES = [compoundInterest, courtFeeCalculator, debtSnowball, fireCalculator, ibanBicSwift, inflation, lateInterest, legalInterestRate, lotteryOptimizer, mortgage, percentageCalculator, rentIncrease];
@@ -0,0 +1,30 @@
1
+ import type { FinanceToolEntry, ToolLocaleContent } from '../../types';
2
+
3
+ import type { CompoundInterestUI } from './ui';
4
+
5
+ export type CompoundInterestLocaleContent = ToolLocaleContent<CompoundInterestUI>;
6
+
7
+ export const compoundInterest: FinanceToolEntry<CompoundInterestUI> = {
8
+ id: 'interes-compuesto',
9
+ icons: {
10
+ bg: 'mdi:chart-line',
11
+ fg: 'mdi:trending-up',
12
+ },
13
+ i18n: {
14
+ de: () => import('./i18n/de').then((m) => m.content),
15
+ en: () => import('./i18n/en').then((m) => m.content),
16
+ es: () => import('./i18n/es').then((m) => m.content),
17
+ fr: () => import('./i18n/fr').then((m) => m.content),
18
+ id: () => import('./i18n/id').then((m) => m.content),
19
+ it: () => import('./i18n/it').then((m) => m.content),
20
+ ja: () => import('./i18n/ja').then((m) => m.content),
21
+ ko: () => import('./i18n/ko').then((m) => m.content),
22
+ nl: () => import('./i18n/nl').then((m) => m.content),
23
+ pl: () => import('./i18n/pl').then((m) => m.content),
24
+ pt: () => import('./i18n/pt').then((m) => m.content),
25
+ ru: () => import('./i18n/ru').then((m) => m.content),
26
+ sv: () => import('./i18n/sv').then((m) => m.content),
27
+ tr: () => import('./i18n/tr').then((m) => m.content),
28
+ zh: () => import('./i18n/zh').then((m) => m.content),
29
+ },
30
+ };
@@ -1,35 +1,5 @@
1
- import type { FinanceToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
-
3
- import type { CompoundInterestUI } from './ui';
4
-
5
- export type CompoundInterestLocaleContent = ToolLocaleContent<CompoundInterestUI>;
6
-
7
- export const compoundInterest: FinanceToolEntry<CompoundInterestUI> = {
8
- id: 'interes-compuesto',
9
- icons: {
10
- bg: 'mdi:chart-line',
11
- fg: 'mdi:trending-up',
12
- },
13
- i18n: {
14
- de: () => import('./i18n/de').then((m) => m.content),
15
- en: () => import('./i18n/en').then((m) => m.content),
16
- es: () => import('./i18n/es').then((m) => m.content),
17
- fr: () => import('./i18n/fr').then((m) => m.content),
18
- id: () => import('./i18n/id').then((m) => m.content),
19
- it: () => import('./i18n/it').then((m) => m.content),
20
- ja: () => import('./i18n/ja').then((m) => m.content),
21
- ko: () => import('./i18n/ko').then((m) => m.content),
22
- nl: () => import('./i18n/nl').then((m) => m.content),
23
- pl: () => import('./i18n/pl').then((m) => m.content),
24
- pt: () => import('./i18n/pt').then((m) => m.content),
25
- ru: () => import('./i18n/ru').then((m) => m.content),
26
- sv: () => import('./i18n/sv').then((m) => m.content),
27
- tr: () => import('./i18n/tr').then((m) => m.content),
28
- zh: () => import('./i18n/zh').then((m) => m.content),
29
- },
30
- };
31
-
32
-
1
+ import { compoundInterest } from './entry';
2
+ export * from './entry';
33
3
  export const COMPOUND_INTEREST_TOOL: ToolDefinition = {
34
4
  entry: compoundInterest,
35
5
  Component: () => import('./component.astro'),
@@ -0,0 +1,29 @@
1
+ import type { FinanceToolEntry, ToolLocaleContent } from '../../types';
2
+ import type { CourtFeeCalculatorUI } from './ui';
3
+
4
+ export type CourtFeeCalculatorLocaleContent = ToolLocaleContent<CourtFeeCalculatorUI>;
5
+
6
+ export const courtFeeCalculator: FinanceToolEntry<CourtFeeCalculatorUI> = {
7
+ id: 'calculadora-tasas-judiciales',
8
+ icons: {
9
+ bg: 'mdi:gavel',
10
+ fg: 'mdi:scale-balance',
11
+ },
12
+ i18n: {
13
+ de: () => import('./i18n/de').then((m) => m.content),
14
+ en: () => import('./i18n/en').then((m) => m.content),
15
+ es: () => import('./i18n/es').then((m) => m.content),
16
+ fr: () => import('./i18n/fr').then((m) => m.content),
17
+ id: () => import('./i18n/id').then((m) => m.content),
18
+ it: () => import('./i18n/it').then((m) => m.content),
19
+ ja: () => import('./i18n/ja').then((m) => m.content),
20
+ ko: () => import('./i18n/ko').then((m) => m.content),
21
+ nl: () => import('./i18n/nl').then((m) => m.content),
22
+ pl: () => import('./i18n/pl').then((m) => m.content),
23
+ pt: () => import('./i18n/pt').then((m) => m.content),
24
+ ru: () => import('./i18n/ru').then((m) => m.content),
25
+ sv: () => import('./i18n/sv').then((m) => m.content),
26
+ tr: () => import('./i18n/tr').then((m) => m.content),
27
+ zh: () => import('./i18n/zh').then((m) => m.content),
28
+ },
29
+ };
@@ -1,34 +1,5 @@
1
- import type { FinanceToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
- import type { CourtFeeCalculatorUI } from './ui';
3
-
4
- export type CourtFeeCalculatorLocaleContent = ToolLocaleContent<CourtFeeCalculatorUI>;
5
-
6
- export const courtFeeCalculator: FinanceToolEntry<CourtFeeCalculatorUI> = {
7
- id: 'calculadora-tasas-judiciales',
8
- icons: {
9
- bg: 'mdi:gavel',
10
- fg: 'mdi:scale-balance',
11
- },
12
- i18n: {
13
- de: () => import('./i18n/de').then((m) => m.content),
14
- en: () => import('./i18n/en').then((m) => m.content),
15
- es: () => import('./i18n/es').then((m) => m.content),
16
- fr: () => import('./i18n/fr').then((m) => m.content),
17
- id: () => import('./i18n/id').then((m) => m.content),
18
- it: () => import('./i18n/it').then((m) => m.content),
19
- ja: () => import('./i18n/ja').then((m) => m.content),
20
- ko: () => import('./i18n/ko').then((m) => m.content),
21
- nl: () => import('./i18n/nl').then((m) => m.content),
22
- pl: () => import('./i18n/pl').then((m) => m.content),
23
- pt: () => import('./i18n/pt').then((m) => m.content),
24
- ru: () => import('./i18n/ru').then((m) => m.content),
25
- sv: () => import('./i18n/sv').then((m) => m.content),
26
- tr: () => import('./i18n/tr').then((m) => m.content),
27
- zh: () => import('./i18n/zh').then((m) => m.content),
28
- },
29
- };
30
-
31
-
1
+ import { courtFeeCalculator } from './entry';
2
+ export * from './entry';
32
3
  export const COURT_FEE_CALCULATOR_TOOL: ToolDefinition = {
33
4
  entry: courtFeeCalculator,
34
5
  Component: () => import('./component.astro'),
@@ -0,0 +1,31 @@
1
+ import type { FinanceToolEntry, ToolLocaleContent } from '../../types';
2
+ import type { DebtSnowballUI } from './ui';
3
+ import type { Debt, SimulationResult, ProjectionMonth } from './logic';
4
+
5
+ export type DebtSnowballLocaleContent = ToolLocaleContent<DebtSnowballUI>;
6
+ export type { Debt, SimulationResult, ProjectionMonth };
7
+
8
+ export const debtSnowball: FinanceToolEntry<DebtSnowballUI> = {
9
+ id: 'bola-nieve-deuda',
10
+ icons: {
11
+ bg: 'mdi:snowflake',
12
+ fg: 'mdi:trending-down',
13
+ },
14
+ i18n: {
15
+ de: () => import('./i18n/de').then((m) => m.content),
16
+ en: () => import('./i18n/en').then((m) => m.content),
17
+ es: () => import('./i18n/es').then((m) => m.content),
18
+ fr: () => import('./i18n/fr').then((m) => m.content),
19
+ id: () => import('./i18n/id').then((m) => m.content),
20
+ it: () => import('./i18n/it').then((m) => m.content),
21
+ ja: () => import('./i18n/ja').then((m) => m.content),
22
+ ko: () => import('./i18n/ko').then((m) => m.content),
23
+ nl: () => import('./i18n/nl').then((m) => m.content),
24
+ pl: () => import('./i18n/pl').then((m) => m.content),
25
+ pt: () => import('./i18n/pt').then((m) => m.content),
26
+ ru: () => import('./i18n/ru').then((m) => m.content),
27
+ sv: () => import('./i18n/sv').then((m) => m.content),
28
+ tr: () => import('./i18n/tr').then((m) => m.content),
29
+ zh: () => import('./i18n/zh').then((m) => m.content),
30
+ },
31
+ };
@@ -1,36 +1,6 @@
1
- import type { FinanceToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
- import type { DebtSnowballUI } from './ui';
3
- import { DebtSnowballLogic, type Debt, type SimulationResult, type ProjectionMonth } from './logic';
4
-
5
- export type DebtSnowballLocaleContent = ToolLocaleContent<DebtSnowballUI>;
6
- export type { Debt, SimulationResult, ProjectionMonth };
7
-
8
- export const debtSnowball: FinanceToolEntry<DebtSnowballUI> = {
9
- id: 'bola-nieve-deuda',
10
- icons: {
11
- bg: 'mdi:snowflake',
12
- fg: 'mdi:trending-down',
13
- },
14
- i18n: {
15
- de: () => import('./i18n/de').then((m) => m.content),
16
- en: () => import('./i18n/en').then((m) => m.content),
17
- es: () => import('./i18n/es').then((m) => m.content),
18
- fr: () => import('./i18n/fr').then((m) => m.content),
19
- id: () => import('./i18n/id').then((m) => m.content),
20
- it: () => import('./i18n/it').then((m) => m.content),
21
- ja: () => import('./i18n/ja').then((m) => m.content),
22
- ko: () => import('./i18n/ko').then((m) => m.content),
23
- nl: () => import('./i18n/nl').then((m) => m.content),
24
- pl: () => import('./i18n/pl').then((m) => m.content),
25
- pt: () => import('./i18n/pt').then((m) => m.content),
26
- ru: () => import('./i18n/ru').then((m) => m.content),
27
- sv: () => import('./i18n/sv').then((m) => m.content),
28
- tr: () => import('./i18n/tr').then((m) => m.content),
29
- zh: () => import('./i18n/zh').then((m) => m.content),
30
- },
31
- };
32
-
33
-
1
+ import { debtSnowball } from './entry';
2
+ import { DebtSnowballLogic } from './logic';
3
+ export * from './entry';
34
4
  export const DEBT_SNOWBALL_TOOL: ToolDefinition = {
35
5
  entry: debtSnowball,
36
6
  Component: () => import('./component.astro'),
@@ -0,0 +1,29 @@
1
+ import type { FinanceToolEntry, ToolLocaleContent } from '../../types';
2
+ import type { FIRECalculatorUI } from './ui';
3
+
4
+ export type FIRECalculatorLocaleContent = ToolLocaleContent<FIRECalculatorUI>;
5
+
6
+ export const fireCalculator: FinanceToolEntry<FIRECalculatorUI> = {
7
+ id: 'calculadora-regla-4-por-ciento-fire',
8
+ icons: {
9
+ bg: 'mdi:chart-line',
10
+ fg: 'mdi:trending-up',
11
+ },
12
+ i18n: {
13
+ de: () => import('./i18n/de').then((m) => m.content),
14
+ en: () => import('./i18n/en').then((m) => m.content),
15
+ es: () => import('./i18n/es').then((m) => m.content),
16
+ fr: () => import('./i18n/fr').then((m) => m.content),
17
+ id: () => import('./i18n/id').then((m) => m.content),
18
+ it: () => import('./i18n/it').then((m) => m.content),
19
+ ja: () => import('./i18n/ja').then((m) => m.content),
20
+ ko: () => import('./i18n/ko').then((m) => m.content),
21
+ nl: () => import('./i18n/nl').then((m) => m.content),
22
+ pl: () => import('./i18n/pl').then((m) => m.content),
23
+ pt: () => import('./i18n/pt').then((m) => m.content),
24
+ ru: () => import('./i18n/ru').then((m) => m.content),
25
+ sv: () => import('./i18n/sv').then((m) => m.content),
26
+ tr: () => import('./i18n/tr').then((m) => m.content),
27
+ zh: () => import('./i18n/zh').then((m) => m.content),
28
+ },
29
+ };
@@ -1,34 +1,5 @@
1
- import type { FinanceToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
- import type { FIRECalculatorUI } from './ui';
3
-
4
- export type FIRECalculatorLocaleContent = ToolLocaleContent<FIRECalculatorUI>;
5
-
6
- export const fireCalculator: FinanceToolEntry<FIRECalculatorUI> = {
7
- id: 'calculadora-regla-4-por-ciento-fire',
8
- icons: {
9
- bg: 'mdi:chart-line',
10
- fg: 'mdi:trending-up',
11
- },
12
- i18n: {
13
- de: () => import('./i18n/de').then((m) => m.content),
14
- en: () => import('./i18n/en').then((m) => m.content),
15
- es: () => import('./i18n/es').then((m) => m.content),
16
- fr: () => import('./i18n/fr').then((m) => m.content),
17
- id: () => import('./i18n/id').then((m) => m.content),
18
- it: () => import('./i18n/it').then((m) => m.content),
19
- ja: () => import('./i18n/ja').then((m) => m.content),
20
- ko: () => import('./i18n/ko').then((m) => m.content),
21
- nl: () => import('./i18n/nl').then((m) => m.content),
22
- pl: () => import('./i18n/pl').then((m) => m.content),
23
- pt: () => import('./i18n/pt').then((m) => m.content),
24
- ru: () => import('./i18n/ru').then((m) => m.content),
25
- sv: () => import('./i18n/sv').then((m) => m.content),
26
- tr: () => import('./i18n/tr').then((m) => m.content),
27
- zh: () => import('./i18n/zh').then((m) => m.content),
28
- },
29
- };
30
-
31
-
1
+ import { fireCalculator } from './entry';
2
+ export * from './entry';
32
3
  export const FIRE_CALCULATOR_TOOL: ToolDefinition = {
33
4
  entry: fireCalculator,
34
5
  Component: () => import('./component.astro'),
@@ -0,0 +1,29 @@
1
+ import type { FinanceToolEntry, ToolLocaleContent } from '../../types';
2
+ import type { IBANBICSwiftUI } from './ui';
3
+
4
+ export type IBANBICSwiftLocaleContent = ToolLocaleContent<IBANBICSwiftUI>;
5
+
6
+ export const ibanBicSwift: FinanceToolEntry<IBANBICSwiftUI> = {
7
+ id: 'conversor-iban-bic-swift',
8
+ icons: {
9
+ bg: 'mdi:bank-outline',
10
+ fg: 'mdi:credit-card-chip-outline',
11
+ },
12
+ i18n: {
13
+ de: () => import('./i18n/de').then((m) => m.content),
14
+ en: () => import('./i18n/en').then((m) => m.content),
15
+ es: () => import('./i18n/es').then((m) => m.content),
16
+ fr: () => import('./i18n/fr').then((m) => m.content),
17
+ id: () => import('./i18n/id').then((m) => m.content),
18
+ it: () => import('./i18n/it').then((m) => m.content),
19
+ ja: () => import('./i18n/ja').then((m) => m.content),
20
+ ko: () => import('./i18n/ko').then((m) => m.content),
21
+ nl: () => import('./i18n/nl').then((m) => m.content),
22
+ pl: () => import('./i18n/pl').then((m) => m.content),
23
+ pt: () => import('./i18n/pt').then((m) => m.content),
24
+ ru: () => import('./i18n/ru').then((m) => m.content),
25
+ sv: () => import('./i18n/sv').then((m) => m.content),
26
+ tr: () => import('./i18n/tr').then((m) => m.content),
27
+ zh: () => import('./i18n/zh').then((m) => m.content),
28
+ },
29
+ };
@@ -1,34 +1,5 @@
1
- import type { FinanceToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
- import type { IBANBICSwiftUI } from './ui';
3
-
4
- export type IBANBICSwiftLocaleContent = ToolLocaleContent<IBANBICSwiftUI>;
5
-
6
- export const ibanBicSwift: FinanceToolEntry<IBANBICSwiftUI> = {
7
- id: 'conversor-iban-bic-swift',
8
- icons: {
9
- bg: 'mdi:bank-outline',
10
- fg: 'mdi:credit-card-chip-outline',
11
- },
12
- i18n: {
13
- de: () => import('./i18n/de').then((m) => m.content),
14
- en: () => import('./i18n/en').then((m) => m.content),
15
- es: () => import('./i18n/es').then((m) => m.content),
16
- fr: () => import('./i18n/fr').then((m) => m.content),
17
- id: () => import('./i18n/id').then((m) => m.content),
18
- it: () => import('./i18n/it').then((m) => m.content),
19
- ja: () => import('./i18n/ja').then((m) => m.content),
20
- ko: () => import('./i18n/ko').then((m) => m.content),
21
- nl: () => import('./i18n/nl').then((m) => m.content),
22
- pl: () => import('./i18n/pl').then((m) => m.content),
23
- pt: () => import('./i18n/pt').then((m) => m.content),
24
- ru: () => import('./i18n/ru').then((m) => m.content),
25
- sv: () => import('./i18n/sv').then((m) => m.content),
26
- tr: () => import('./i18n/tr').then((m) => m.content),
27
- zh: () => import('./i18n/zh').then((m) => m.content),
28
- },
29
- };
30
-
31
-
1
+ import { ibanBicSwift } from './entry';
2
+ export * from './entry';
32
3
  export const IBAN_BIC_SWIFT_TOOL: ToolDefinition = {
33
4
  entry: ibanBicSwift,
34
5
  Component: () => import('./component.astro'),
@@ -0,0 +1,30 @@
1
+ import type { FinanceToolEntry, ToolLocaleContent } from '../../types';
2
+
3
+ import type { InflationUI } from './ui';
4
+
5
+ export type InflationLocaleContent = ToolLocaleContent<InflationUI>;
6
+
7
+ export const inflation: FinanceToolEntry<InflationUI> = {
8
+ id: 'inflacion',
9
+ icons: {
10
+ bg: 'mdi:chart-timeline-variant',
11
+ fg: 'mdi:currency-eur-off',
12
+ },
13
+ i18n: {
14
+ de: () => import('./i18n/de').then((m) => m.content),
15
+ en: () => import('./i18n/en').then((m) => m.content),
16
+ es: () => import('./i18n/es').then((m) => m.content),
17
+ fr: () => import('./i18n/fr').then((m) => m.content),
18
+ id: () => import('./i18n/id').then((m) => m.content),
19
+ it: () => import('./i18n/it').then((m) => m.content),
20
+ ja: () => import('./i18n/ja').then((m) => m.content),
21
+ ko: () => import('./i18n/ko').then((m) => m.content),
22
+ nl: () => import('./i18n/nl').then((m) => m.content),
23
+ pl: () => import('./i18n/pl').then((m) => m.content),
24
+ pt: () => import('./i18n/pt').then((m) => m.content),
25
+ ru: () => import('./i18n/ru').then((m) => m.content),
26
+ sv: () => import('./i18n/sv').then((m) => m.content),
27
+ tr: () => import('./i18n/tr').then((m) => m.content),
28
+ zh: () => import('./i18n/zh').then((m) => m.content),
29
+ },
30
+ };
@@ -1,35 +1,5 @@
1
- import type { FinanceToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
-
3
- import type { InflationUI } from './ui';
4
-
5
- export type InflationLocaleContent = ToolLocaleContent<InflationUI>;
6
-
7
- export const inflation: FinanceToolEntry<InflationUI> = {
8
- id: 'inflacion',
9
- icons: {
10
- bg: 'mdi:chart-timeline-variant',
11
- fg: 'mdi:currency-eur-off',
12
- },
13
- i18n: {
14
- de: () => import('./i18n/de').then((m) => m.content),
15
- en: () => import('./i18n/en').then((m) => m.content),
16
- es: () => import('./i18n/es').then((m) => m.content),
17
- fr: () => import('./i18n/fr').then((m) => m.content),
18
- id: () => import('./i18n/id').then((m) => m.content),
19
- it: () => import('./i18n/it').then((m) => m.content),
20
- ja: () => import('./i18n/ja').then((m) => m.content),
21
- ko: () => import('./i18n/ko').then((m) => m.content),
22
- nl: () => import('./i18n/nl').then((m) => m.content),
23
- pl: () => import('./i18n/pl').then((m) => m.content),
24
- pt: () => import('./i18n/pt').then((m) => m.content),
25
- ru: () => import('./i18n/ru').then((m) => m.content),
26
- sv: () => import('./i18n/sv').then((m) => m.content),
27
- tr: () => import('./i18n/tr').then((m) => m.content),
28
- zh: () => import('./i18n/zh').then((m) => m.content),
29
- },
30
- };
31
-
32
-
1
+ import { inflation } from './entry';
2
+ export * from './entry';
33
3
  export const INFLATION_TOOL: ToolDefinition = {
34
4
  entry: inflation,
35
5
  Component: () => import('./component.astro'),
@@ -0,0 +1,30 @@
1
+ import type { FinanceToolEntry, ToolLocaleContent } from '../../types';
2
+
3
+ import type { LateInterestUI } from './ui';
4
+
5
+ export type LateInterestLocaleContent = ToolLocaleContent<LateInterestUI>;
6
+
7
+ export const lateInterest: FinanceToolEntry<LateInterestUI> = {
8
+ id: 'intereses-demora',
9
+ icons: {
10
+ bg: 'mdi:clock-alert-outline',
11
+ fg: 'mdi:cash-fast',
12
+ },
13
+ i18n: {
14
+ de: () => import('./i18n/de').then((m) => m.content),
15
+ en: () => import('./i18n/en').then((m) => m.content),
16
+ es: () => import('./i18n/es').then((m) => m.content),
17
+ fr: () => import('./i18n/fr').then((m) => m.content),
18
+ id: () => import('./i18n/id').then((m) => m.content),
19
+ it: () => import('./i18n/it').then((m) => m.content),
20
+ ja: () => import('./i18n/ja').then((m) => m.content),
21
+ ko: () => import('./i18n/ko').then((m) => m.content),
22
+ nl: () => import('./i18n/nl').then((m) => m.content),
23
+ pl: () => import('./i18n/pl').then((m) => m.content),
24
+ pt: () => import('./i18n/pt').then((m) => m.content),
25
+ ru: () => import('./i18n/ru').then((m) => m.content),
26
+ sv: () => import('./i18n/sv').then((m) => m.content),
27
+ tr: () => import('./i18n/tr').then((m) => m.content),
28
+ zh: () => import('./i18n/zh').then((m) => m.content),
29
+ },
30
+ };
@@ -1,35 +1,5 @@
1
- import type { FinanceToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
-
3
- import type { LateInterestUI } from './ui';
4
-
5
- export type LateInterestLocaleContent = ToolLocaleContent<LateInterestUI>;
6
-
7
- export const lateInterest: FinanceToolEntry<LateInterestUI> = {
8
- id: 'intereses-demora',
9
- icons: {
10
- bg: 'mdi:clock-alert-outline',
11
- fg: 'mdi:cash-fast',
12
- },
13
- i18n: {
14
- de: () => import('./i18n/de').then((m) => m.content),
15
- en: () => import('./i18n/en').then((m) => m.content),
16
- es: () => import('./i18n/es').then((m) => m.content),
17
- fr: () => import('./i18n/fr').then((m) => m.content),
18
- id: () => import('./i18n/id').then((m) => m.content),
19
- it: () => import('./i18n/it').then((m) => m.content),
20
- ja: () => import('./i18n/ja').then((m) => m.content),
21
- ko: () => import('./i18n/ko').then((m) => m.content),
22
- nl: () => import('./i18n/nl').then((m) => m.content),
23
- pl: () => import('./i18n/pl').then((m) => m.content),
24
- pt: () => import('./i18n/pt').then((m) => m.content),
25
- ru: () => import('./i18n/ru').then((m) => m.content),
26
- sv: () => import('./i18n/sv').then((m) => m.content),
27
- tr: () => import('./i18n/tr').then((m) => m.content),
28
- zh: () => import('./i18n/zh').then((m) => m.content),
29
- },
30
- };
31
-
32
-
1
+ import { lateInterest } from './entry';
2
+ export * from './entry';
33
3
  export const LATE_INTEREST_TOOL: ToolDefinition = {
34
4
  entry: lateInterest,
35
5
  Component: () => import('./component.astro'),
@@ -0,0 +1,29 @@
1
+ import type { FinanceToolEntry, ToolLocaleContent } from '../../types';
2
+ import type { LegalInterestRateUI } from './ui';
3
+
4
+ export type LegalInterestRateLocaleContent = ToolLocaleContent<LegalInterestRateUI>;
5
+
6
+ export const legalInterestRate: FinanceToolEntry<LegalInterestRateUI> = {
7
+ id: 'interes-legal-dinero-2026',
8
+ icons: {
9
+ bg: 'mdi:gavel',
10
+ fg: 'mdi:scale-balance',
11
+ },
12
+ i18n: {
13
+ de: () => import('./i18n/de').then((m) => m.content),
14
+ en: () => import('./i18n/en').then((m) => m.content),
15
+ es: () => import('./i18n/es').then((m) => m.content),
16
+ fr: () => import('./i18n/fr').then((m) => m.content),
17
+ id: () => import('./i18n/id').then((m) => m.content),
18
+ it: () => import('./i18n/it').then((m) => m.content),
19
+ ja: () => import('./i18n/ja').then((m) => m.content),
20
+ ko: () => import('./i18n/ko').then((m) => m.content),
21
+ nl: () => import('./i18n/nl').then((m) => m.content),
22
+ pl: () => import('./i18n/pl').then((m) => m.content),
23
+ pt: () => import('./i18n/pt').then((m) => m.content),
24
+ ru: () => import('./i18n/ru').then((m) => m.content),
25
+ sv: () => import('./i18n/sv').then((m) => m.content),
26
+ tr: () => import('./i18n/tr').then((m) => m.content),
27
+ zh: () => import('./i18n/zh').then((m) => m.content),
28
+ },
29
+ };
@@ -1,34 +1,5 @@
1
- import type { FinanceToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
- import type { LegalInterestRateUI } from './ui';
3
-
4
- export type LegalInterestRateLocaleContent = ToolLocaleContent<LegalInterestRateUI>;
5
-
6
- export const legalInterestRate: FinanceToolEntry<LegalInterestRateUI> = {
7
- id: 'interes-legal-dinero-2026',
8
- icons: {
9
- bg: 'mdi:gavel',
10
- fg: 'mdi:scale-balance',
11
- },
12
- i18n: {
13
- de: () => import('./i18n/de').then((m) => m.content),
14
- en: () => import('./i18n/en').then((m) => m.content),
15
- es: () => import('./i18n/es').then((m) => m.content),
16
- fr: () => import('./i18n/fr').then((m) => m.content),
17
- id: () => import('./i18n/id').then((m) => m.content),
18
- it: () => import('./i18n/it').then((m) => m.content),
19
- ja: () => import('./i18n/ja').then((m) => m.content),
20
- ko: () => import('./i18n/ko').then((m) => m.content),
21
- nl: () => import('./i18n/nl').then((m) => m.content),
22
- pl: () => import('./i18n/pl').then((m) => m.content),
23
- pt: () => import('./i18n/pt').then((m) => m.content),
24
- ru: () => import('./i18n/ru').then((m) => m.content),
25
- sv: () => import('./i18n/sv').then((m) => m.content),
26
- tr: () => import('./i18n/tr').then((m) => m.content),
27
- zh: () => import('./i18n/zh').then((m) => m.content),
28
- },
29
- };
30
-
31
-
1
+ import { legalInterestRate } from './entry';
2
+ export * from './entry';
32
3
  export const LEGAL_INTEREST_RATE_TOOL: ToolDefinition = {
33
4
  entry: legalInterestRate,
34
5
  Component: () => import('./component.astro'),
@@ -0,0 +1,29 @@
1
+ import type { FinanceToolEntry, ToolLocaleContent } from '../../types';
2
+ import type { LotteryOptimizerUI } from './ui';
3
+
4
+ export type LotteryOptimizerLocaleContent = ToolLocaleContent<LotteryOptimizerUI>;
5
+
6
+ export const lotteryOptimizer: FinanceToolEntry<LotteryOptimizerUI> = {
7
+ id: 'optimizador-loterias',
8
+ icons: {
9
+ bg: 'mdi:chart-scatter-plot',
10
+ fg: 'mdi:ticket-percent-outline',
11
+ },
12
+ i18n: {
13
+ de: () => import('./i18n/de').then((m) => m.content),
14
+ en: () => import('./i18n/en').then((m) => m.content),
15
+ es: () => import('./i18n/es').then((m) => m.content),
16
+ fr: () => import('./i18n/fr').then((m) => m.content),
17
+ id: () => import('./i18n/id').then((m) => m.content),
18
+ it: () => import('./i18n/it').then((m) => m.content),
19
+ ja: () => import('./i18n/ja').then((m) => m.content),
20
+ ko: () => import('./i18n/ko').then((m) => m.content),
21
+ nl: () => import('./i18n/nl').then((m) => m.content),
22
+ pl: () => import('./i18n/pl').then((m) => m.content),
23
+ pt: () => import('./i18n/pt').then((m) => m.content),
24
+ ru: () => import('./i18n/ru').then((m) => m.content),
25
+ sv: () => import('./i18n/sv').then((m) => m.content),
26
+ tr: () => import('./i18n/tr').then((m) => m.content),
27
+ zh: () => import('./i18n/zh').then((m) => m.content),
28
+ },
29
+ };
@@ -1,34 +1,5 @@
1
- import type { FinanceToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
- import type { LotteryOptimizerUI } from './ui';
3
-
4
- export type LotteryOptimizerLocaleContent = ToolLocaleContent<LotteryOptimizerUI>;
5
-
6
- export const lotteryOptimizer: FinanceToolEntry<LotteryOptimizerUI> = {
7
- id: 'optimizador-loterias',
8
- icons: {
9
- bg: 'mdi:chart-scatter-plot',
10
- fg: 'mdi:ticket-percent-outline',
11
- },
12
- i18n: {
13
- de: () => import('./i18n/de').then((m) => m.content),
14
- en: () => import('./i18n/en').then((m) => m.content),
15
- es: () => import('./i18n/es').then((m) => m.content),
16
- fr: () => import('./i18n/fr').then((m) => m.content),
17
- id: () => import('./i18n/id').then((m) => m.content),
18
- it: () => import('./i18n/it').then((m) => m.content),
19
- ja: () => import('./i18n/ja').then((m) => m.content),
20
- ko: () => import('./i18n/ko').then((m) => m.content),
21
- nl: () => import('./i18n/nl').then((m) => m.content),
22
- pl: () => import('./i18n/pl').then((m) => m.content),
23
- pt: () => import('./i18n/pt').then((m) => m.content),
24
- ru: () => import('./i18n/ru').then((m) => m.content),
25
- sv: () => import('./i18n/sv').then((m) => m.content),
26
- tr: () => import('./i18n/tr').then((m) => m.content),
27
- zh: () => import('./i18n/zh').then((m) => m.content),
28
- },
29
- };
30
-
31
-
1
+ import { lotteryOptimizer } from './entry';
2
+ export * from './entry';
32
3
  export const LOTTERY_OPTIMIZER_TOOL: ToolDefinition = {
33
4
  entry: lotteryOptimizer,
34
5
  Component: () => import('./component.astro'),
@@ -0,0 +1,30 @@
1
+ import type { FinanceToolEntry, ToolLocaleContent } from '../../types';
2
+
3
+ import type { MortgageUI } from './ui';
4
+
5
+ export type MortgageLocaleContent = ToolLocaleContent<MortgageUI>;
6
+
7
+ export const mortgage: FinanceToolEntry<MortgageUI> = {
8
+ id: 'hipoteca',
9
+ icons: {
10
+ bg: 'mdi:home-percent',
11
+ fg: 'mdi:percent',
12
+ },
13
+ i18n: {
14
+ de: () => import('./i18n/de').then((m) => m.content),
15
+ en: () => import('./i18n/en').then((m) => m.content),
16
+ es: () => import('./i18n/es').then((m) => m.content),
17
+ fr: () => import('./i18n/fr').then((m) => m.content),
18
+ id: () => import('./i18n/id').then((m) => m.content),
19
+ it: () => import('./i18n/it').then((m) => m.content),
20
+ ja: () => import('./i18n/ja').then((m) => m.content),
21
+ ko: () => import('./i18n/ko').then((m) => m.content),
22
+ nl: () => import('./i18n/nl').then((m) => m.content),
23
+ pl: () => import('./i18n/pl').then((m) => m.content),
24
+ pt: () => import('./i18n/pt').then((m) => m.content),
25
+ ru: () => import('./i18n/ru').then((m) => m.content),
26
+ sv: () => import('./i18n/sv').then((m) => m.content),
27
+ tr: () => import('./i18n/tr').then((m) => m.content),
28
+ zh: () => import('./i18n/zh').then((m) => m.content),
29
+ },
30
+ };
@@ -1,35 +1,5 @@
1
- import type { FinanceToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
-
3
- import type { MortgageUI } from './ui';
4
-
5
- export type MortgageLocaleContent = ToolLocaleContent<MortgageUI>;
6
-
7
- export const mortgage: FinanceToolEntry<MortgageUI> = {
8
- id: 'hipoteca',
9
- icons: {
10
- bg: 'mdi:home-percent',
11
- fg: 'mdi:percent',
12
- },
13
- i18n: {
14
- de: () => import('./i18n/de').then((m) => m.content),
15
- en: () => import('./i18n/en').then((m) => m.content),
16
- es: () => import('./i18n/es').then((m) => m.content),
17
- fr: () => import('./i18n/fr').then((m) => m.content),
18
- id: () => import('./i18n/id').then((m) => m.content),
19
- it: () => import('./i18n/it').then((m) => m.content),
20
- ja: () => import('./i18n/ja').then((m) => m.content),
21
- ko: () => import('./i18n/ko').then((m) => m.content),
22
- nl: () => import('./i18n/nl').then((m) => m.content),
23
- pl: () => import('./i18n/pl').then((m) => m.content),
24
- pt: () => import('./i18n/pt').then((m) => m.content),
25
- ru: () => import('./i18n/ru').then((m) => m.content),
26
- sv: () => import('./i18n/sv').then((m) => m.content),
27
- tr: () => import('./i18n/tr').then((m) => m.content),
28
- zh: () => import('./i18n/zh').then((m) => m.content),
29
- },
30
- };
31
-
32
-
1
+ import { mortgage } from './entry';
2
+ export * from './entry';
33
3
  export const MORTGAGE_TOOL: ToolDefinition = {
34
4
  entry: mortgage,
35
5
  Component: () => import('./component.astro'),
@@ -0,0 +1,30 @@
1
+ import type { FinanceToolEntry, ToolLocaleContent } from '../../types';
2
+
3
+ import type { PercentageCalculatorUI } from './ui';
4
+
5
+ export type PercentageCalculatorLocaleContent = ToolLocaleContent<PercentageCalculatorUI>;
6
+
7
+ export const percentageCalculator: FinanceToolEntry<PercentageCalculatorUI> = {
8
+ id: 'calculadora-porcentajes',
9
+ icons: {
10
+ bg: 'mdi:percent',
11
+ fg: 'mdi:calculator',
12
+ },
13
+ i18n: {
14
+ de: () => import('./i18n/de').then((m) => m.content),
15
+ en: () => import('./i18n/en').then((m) => m.content),
16
+ es: () => import('./i18n/es').then((m) => m.content),
17
+ fr: () => import('./i18n/fr').then((m) => m.content),
18
+ id: () => import('./i18n/id').then((m) => m.content),
19
+ it: () => import('./i18n/it').then((m) => m.content),
20
+ ja: () => import('./i18n/ja').then((m) => m.content),
21
+ ko: () => import('./i18n/ko').then((m) => m.content),
22
+ nl: () => import('./i18n/nl').then((m) => m.content),
23
+ pl: () => import('./i18n/pl').then((m) => m.content),
24
+ pt: () => import('./i18n/pt').then((m) => m.content),
25
+ ru: () => import('./i18n/ru').then((m) => m.content),
26
+ sv: () => import('./i18n/sv').then((m) => m.content),
27
+ tr: () => import('./i18n/tr').then((m) => m.content),
28
+ zh: () => import('./i18n/zh').then((m) => m.content),
29
+ },
30
+ };
@@ -1,35 +1,5 @@
1
- import type { FinanceToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
-
3
- import type { PercentageCalculatorUI } from './ui';
4
-
5
- export type PercentageCalculatorLocaleContent = ToolLocaleContent<PercentageCalculatorUI>;
6
-
7
- export const percentageCalculator: FinanceToolEntry<PercentageCalculatorUI> = {
8
- id: 'calculadora-porcentajes',
9
- icons: {
10
- bg: 'mdi:percent',
11
- fg: 'mdi:calculator',
12
- },
13
- i18n: {
14
- de: () => import('./i18n/de').then((m) => m.content),
15
- en: () => import('./i18n/en').then((m) => m.content),
16
- es: () => import('./i18n/es').then((m) => m.content),
17
- fr: () => import('./i18n/fr').then((m) => m.content),
18
- id: () => import('./i18n/id').then((m) => m.content),
19
- it: () => import('./i18n/it').then((m) => m.content),
20
- ja: () => import('./i18n/ja').then((m) => m.content),
21
- ko: () => import('./i18n/ko').then((m) => m.content),
22
- nl: () => import('./i18n/nl').then((m) => m.content),
23
- pl: () => import('./i18n/pl').then((m) => m.content),
24
- pt: () => import('./i18n/pt').then((m) => m.content),
25
- ru: () => import('./i18n/ru').then((m) => m.content),
26
- sv: () => import('./i18n/sv').then((m) => m.content),
27
- tr: () => import('./i18n/tr').then((m) => m.content),
28
- zh: () => import('./i18n/zh').then((m) => m.content),
29
- },
30
- };
31
-
32
-
1
+ import { percentageCalculator } from './entry';
2
+ export * from './entry';
33
3
  export const PERCENTAGE_CALCULATOR_TOOL: ToolDefinition = {
34
4
  entry: percentageCalculator,
35
5
  Component: () => import('./component.astro'),
@@ -0,0 +1,29 @@
1
+ import type { FinanceToolEntry, ToolLocaleContent } from '../../types';
2
+ import type { RentIncreaseUI } from './ui';
3
+
4
+ export type RentIncreaseLocaleContent = ToolLocaleContent<RentIncreaseUI>;
5
+
6
+ export const rentIncrease: FinanceToolEntry<RentIncreaseUI> = {
7
+ id: 'calculadora-subida-alquiler-ipc',
8
+ icons: {
9
+ bg: 'mdi:home-city',
10
+ fg: 'mdi:chart-bell-curve-cumulative',
11
+ },
12
+ i18n: {
13
+ de: () => import('./i18n/de').then((m) => m.content),
14
+ en: () => import('./i18n/en').then((m) => m.content),
15
+ es: () => import('./i18n/es').then((m) => m.content),
16
+ fr: () => import('./i18n/fr').then((m) => m.content),
17
+ id: () => import('./i18n/id').then((m) => m.content),
18
+ it: () => import('./i18n/it').then((m) => m.content),
19
+ ja: () => import('./i18n/ja').then((m) => m.content),
20
+ ko: () => import('./i18n/ko').then((m) => m.content),
21
+ nl: () => import('./i18n/nl').then((m) => m.content),
22
+ pl: () => import('./i18n/pl').then((m) => m.content),
23
+ pt: () => import('./i18n/pt').then((m) => m.content),
24
+ ru: () => import('./i18n/ru').then((m) => m.content),
25
+ sv: () => import('./i18n/sv').then((m) => m.content),
26
+ tr: () => import('./i18n/tr').then((m) => m.content),
27
+ zh: () => import('./i18n/zh').then((m) => m.content),
28
+ },
29
+ };
@@ -1,34 +1,5 @@
1
- import type { FinanceToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
2
- import type { RentIncreaseUI } from './ui';
3
-
4
- export type RentIncreaseLocaleContent = ToolLocaleContent<RentIncreaseUI>;
5
-
6
- export const rentIncrease: FinanceToolEntry<RentIncreaseUI> = {
7
- id: 'calculadora-subida-alquiler-ipc',
8
- icons: {
9
- bg: 'mdi:home-city',
10
- fg: 'mdi:chart-bell-curve-cumulative',
11
- },
12
- i18n: {
13
- de: () => import('./i18n/de').then((m) => m.content),
14
- en: () => import('./i18n/en').then((m) => m.content),
15
- es: () => import('./i18n/es').then((m) => m.content),
16
- fr: () => import('./i18n/fr').then((m) => m.content),
17
- id: () => import('./i18n/id').then((m) => m.content),
18
- it: () => import('./i18n/it').then((m) => m.content),
19
- ja: () => import('./i18n/ja').then((m) => m.content),
20
- ko: () => import('./i18n/ko').then((m) => m.content),
21
- nl: () => import('./i18n/nl').then((m) => m.content),
22
- pl: () => import('./i18n/pl').then((m) => m.content),
23
- pt: () => import('./i18n/pt').then((m) => m.content),
24
- ru: () => import('./i18n/ru').then((m) => m.content),
25
- sv: () => import('./i18n/sv').then((m) => m.content),
26
- tr: () => import('./i18n/tr').then((m) => m.content),
27
- zh: () => import('./i18n/zh').then((m) => m.content),
28
- },
29
- };
30
-
31
-
1
+ import { rentIncrease } from './entry';
2
+ export * from './entry';
32
3
  export const RENT_INCREASE_TOOL: ToolDefinition = {
33
4
  entry: rentIncrease,
34
5
  Component: () => import('./component.astro'),
package/src/tools.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { ALL_ENTRIES } from './entries';
1
2
  import type { ToolDefinition } from './types';
2
3
  import { COMPOUND_INTEREST_TOOL } from './tool/compoundInterest';
3
4
  import { MORTGAGE_TOOL } from './tool/mortgage';
@@ -15,4 +16,3 @@ import { DEBT_SNOWBALL_TOOL } from './tool/debtSnowball';
15
16
  export const ALL_TOOLS: ToolDefinition[] = [COMPOUND_INTEREST_TOOL, MORTGAGE_TOOL, INFLATION_TOOL, PERCENTAGE_CALCULATOR_TOOL, LATE_INTEREST_TOOL, IBAN_BIC_SWIFT_TOOL, RENT_INCREASE_TOOL, LOTTERY_OPTIMIZER_TOOL, COURT_FEE_CALCULATOR_TOOL, LEGAL_INTEREST_RATE_TOOL, FIRE_CALCULATOR_TOOL, DEBT_SNOWBALL_TOOL];
16
17
 
17
18
 
18
- export const ALL_ENTRIES = ALL_TOOLS.map(t => t.entry);