@jjlmoya/utils-aquarium 1.69.0 → 1.70.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.
Files changed (39) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +13 -4
  3. package/src/entries.ts +18 -10
  4. package/src/index.ts +2 -0
  5. package/src/tests/mfe_assets_contract.test.ts +3 -1
  6. package/src/tests/tool_validation.test.ts +10 -8
  7. package/src/tool/aquariumNitrateDilutionCalculator/aquarium-nitrate-dilution-calculator.css +887 -0
  8. package/src/tool/aquariumNitrateDilutionCalculator/bibliography.astro +6 -0
  9. package/src/tool/aquariumNitrateDilutionCalculator/bibliography.ts +12 -0
  10. package/src/tool/aquariumNitrateDilutionCalculator/component.astro +120 -0
  11. package/src/tool/aquariumNitrateDilutionCalculator/controller.ts +96 -0
  12. package/src/tool/aquariumNitrateDilutionCalculator/dom-views.ts +151 -0
  13. package/src/tool/aquariumNitrateDilutionCalculator/entry.ts +27 -0
  14. package/src/tool/aquariumNitrateDilutionCalculator/evaluator.ts +17 -0
  15. package/src/tool/aquariumNitrateDilutionCalculator/i18n/de.ts +30 -0
  16. package/src/tool/aquariumNitrateDilutionCalculator/i18n/en.ts +124 -0
  17. package/src/tool/aquariumNitrateDilutionCalculator/i18n/es.ts +30 -0
  18. package/src/tool/aquariumNitrateDilutionCalculator/i18n/fr.ts +30 -0
  19. package/src/tool/aquariumNitrateDilutionCalculator/i18n/id.ts +30 -0
  20. package/src/tool/aquariumNitrateDilutionCalculator/i18n/it.ts +30 -0
  21. package/src/tool/aquariumNitrateDilutionCalculator/i18n/ja.ts +30 -0
  22. package/src/tool/aquariumNitrateDilutionCalculator/i18n/ko.ts +30 -0
  23. package/src/tool/aquariumNitrateDilutionCalculator/i18n/nl.ts +30 -0
  24. package/src/tool/aquariumNitrateDilutionCalculator/i18n/pl.ts +30 -0
  25. package/src/tool/aquariumNitrateDilutionCalculator/i18n/pt.ts +30 -0
  26. package/src/tool/aquariumNitrateDilutionCalculator/i18n/ru.ts +30 -0
  27. package/src/tool/aquariumNitrateDilutionCalculator/i18n/sv.ts +30 -0
  28. package/src/tool/aquariumNitrateDilutionCalculator/i18n/tr.ts +30 -0
  29. package/src/tool/aquariumNitrateDilutionCalculator/i18n/zh.ts +30 -0
  30. package/src/tool/aquariumNitrateDilutionCalculator/index.ts +11 -0
  31. package/src/tool/aquariumNitrateDilutionCalculator/localized-content.ts +138 -0
  32. package/src/tool/aquariumNitrateDilutionCalculator/logic.test.ts +47 -0
  33. package/src/tool/aquariumNitrateDilutionCalculator/logic.ts +122 -0
  34. package/src/tool/aquariumNitrateDilutionCalculator/seo.astro +13 -0
  35. package/src/tool/aquariumNitrateDilutionCalculator/storage.ts +36 -0
  36. package/src/tool/aquariumNitrateDilutionCalculator/ui.ts +53 -0
  37. package/src/tool/aquariumNitrateDilutionCalculator/units.test.ts +17 -0
  38. package/src/tool/aquariumNitrateDilutionCalculator/units.ts +19 -0
  39. package/src/tools.ts +16 -37
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jjlmoya/utils-aquarium",
3
- "version": "1.69.0",
3
+ "version": "1.70.0",
4
4
  "type": "module",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -1,14 +1,23 @@
1
1
  import type { AquariumCategoryEntry } from '../types';
2
- import { aquariumTankVolumeWaterChangeCalculator } from '../tool/aquariumTankVolumeWaterChangeCalculator/entry';
2
+ import { aquariumCalciumAlkalinityDosingCalculator } from '../tool/aquariumCalciumAlkalinityDosingCalculator/entry';
3
+ import { aquariumEvaporationTopOffPlanner } from '../tool/aquariumEvaporationTopOffPlanner/entry';
3
4
  import { aquariumFilterTurnoverStockingPlanner } from '../tool/aquariumFilterTurnoverStockingPlanner/entry';
4
5
  import { aquariumLightingPhotoperiodPlanner } from '../tool/aquariumLightingPhotoperiodPlanner/entry';
5
- import { aquariumEvaporationTopOffPlanner } from '../tool/aquariumEvaporationTopOffPlanner/entry';
6
+ import { aquariumNitrateDilutionCalculator } from '../tool/aquariumNitrateDilutionCalculator/entry';
6
7
  import { aquariumSaltDosingCalculator } from '../tool/aquariumSaltDosingCalculator/entry';
7
- import { aquariumCalciumAlkalinityDosingCalculator } from '../tool/aquariumCalciumAlkalinityDosingCalculator/entry';
8
+ import { aquariumTankVolumeWaterChangeCalculator } from '../tool/aquariumTankVolumeWaterChangeCalculator/entry';
8
9
 
9
10
  export const aquariumCategory: AquariumCategoryEntry = {
10
11
  icon: 'mdi:fishbowl-outline',
11
- tools: [aquariumTankVolumeWaterChangeCalculator, aquariumFilterTurnoverStockingPlanner, aquariumLightingPhotoperiodPlanner, aquariumEvaporationTopOffPlanner, aquariumSaltDosingCalculator, aquariumCalciumAlkalinityDosingCalculator],
12
+ tools: [
13
+ aquariumCalciumAlkalinityDosingCalculator,
14
+ aquariumEvaporationTopOffPlanner,
15
+ aquariumFilterTurnoverStockingPlanner,
16
+ aquariumLightingPhotoperiodPlanner,
17
+ aquariumNitrateDilutionCalculator,
18
+ aquariumSaltDosingCalculator,
19
+ aquariumTankVolumeWaterChangeCalculator,
20
+ ],
12
21
  i18n: {
13
22
  en: () => import('./i18n/en').then((m) => m.content),
14
23
  es: () => import('./i18n/es').then((m) => m.content),
package/src/entries.ts CHANGED
@@ -1,18 +1,26 @@
1
- export { aquariumTankVolumeWaterChangeCalculator } from './tool/aquariumTankVolumeWaterChangeCalculator/entry';
2
- export type { AquariumTankVolumeWaterChangeCalculatorLocaleContent } from './tool/aquariumTankVolumeWaterChangeCalculator/entry';
1
+ export { aquariumCalciumAlkalinityDosingCalculator } from './tool/aquariumCalciumAlkalinityDosingCalculator/entry';
2
+ export { aquariumEvaporationTopOffPlanner } from './tool/aquariumEvaporationTopOffPlanner/entry';
3
3
  export { aquariumFilterTurnoverStockingPlanner } from './tool/aquariumFilterTurnoverStockingPlanner/entry';
4
- export type { AquariumFilterTurnoverStockingPlannerLocaleContent } from './tool/aquariumFilterTurnoverStockingPlanner/entry';
5
4
  export { aquariumLightingPhotoperiodPlanner } from './tool/aquariumLightingPhotoperiodPlanner/entry';
6
- export type { AquariumLightingPhotoperiodPlannerLocaleContent } from './tool/aquariumLightingPhotoperiodPlanner/entry';
7
- export { aquariumEvaporationTopOffPlanner } from './tool/aquariumEvaporationTopOffPlanner/entry';
8
- export type { AquariumEvaporationTopOffPlannerLocaleContent } from './tool/aquariumEvaporationTopOffPlanner/entry';
5
+ export { aquariumNitrateDilutionCalculator } from './tool/aquariumNitrateDilutionCalculator/entry';
6
+ export { aquariumSaltDosingCalculator } from './tool/aquariumSaltDosingCalculator/entry';
7
+ export { aquariumTankVolumeWaterChangeCalculator } from './tool/aquariumTankVolumeWaterChangeCalculator/entry';
9
8
  export { aquariumCategory } from './category';
10
9
 
11
- import { aquariumTankVolumeWaterChangeCalculator } from './tool/aquariumTankVolumeWaterChangeCalculator/entry';
10
+ import { aquariumCalciumAlkalinityDosingCalculator } from './tool/aquariumCalciumAlkalinityDosingCalculator/entry';
11
+ import { aquariumEvaporationTopOffPlanner } from './tool/aquariumEvaporationTopOffPlanner/entry';
12
12
  import { aquariumFilterTurnoverStockingPlanner } from './tool/aquariumFilterTurnoverStockingPlanner/entry';
13
13
  import { aquariumLightingPhotoperiodPlanner } from './tool/aquariumLightingPhotoperiodPlanner/entry';
14
- import { aquariumEvaporationTopOffPlanner } from './tool/aquariumEvaporationTopOffPlanner/entry';
14
+ import { aquariumNitrateDilutionCalculator } from './tool/aquariumNitrateDilutionCalculator/entry';
15
15
  import { aquariumSaltDosingCalculator } from './tool/aquariumSaltDosingCalculator/entry';
16
- import { aquariumCalciumAlkalinityDosingCalculator } from './tool/aquariumCalciumAlkalinityDosingCalculator/entry';
16
+ import { aquariumTankVolumeWaterChangeCalculator } from './tool/aquariumTankVolumeWaterChangeCalculator/entry';
17
17
 
18
- export const ALL_ENTRIES = [aquariumTankVolumeWaterChangeCalculator, aquariumFilterTurnoverStockingPlanner, aquariumLightingPhotoperiodPlanner, aquariumEvaporationTopOffPlanner, aquariumSaltDosingCalculator, aquariumCalciumAlkalinityDosingCalculator];
18
+ export const ALL_ENTRIES = [
19
+ aquariumCalciumAlkalinityDosingCalculator,
20
+ aquariumEvaporationTopOffPlanner,
21
+ aquariumFilterTurnoverStockingPlanner,
22
+ aquariumLightingPhotoperiodPlanner,
23
+ aquariumNitrateDilutionCalculator,
24
+ aquariumSaltDosingCalculator,
25
+ aquariumTankVolumeWaterChangeCalculator,
26
+ ];
package/src/index.ts CHANGED
@@ -24,3 +24,5 @@ export { AQUARIUM_EVAPORATION_TOP_OFF_PLANNER_TOOL, aquariumEvaporationTopOffPla
24
24
  export type { AquariumEvaporationTopOffPlannerUI, AquariumEvaporationTopOffPlannerLocaleContent } from './tool/aquariumEvaporationTopOffPlanner/index';
25
25
  export { AQUARIUM_CALCIUM_ALKALINITY_DOSING_CALCULATOR_TOOL, aquariumCalciumAlkalinityDosingCalculator } from './tool/aquariumCalciumAlkalinityDosingCalculator/index';
26
26
  export type { AquariumCalciumAlkalinityDosingCalculatorUI, AquariumCalciumAlkalinityDosingCalculatorLocaleContent } from './tool/aquariumCalciumAlkalinityDosingCalculator/index';
27
+ export { AQUARIUM_NITRATE_DILUTION_CALCULATOR_TOOL, aquariumNitrateDilutionCalculator } from './tool/aquariumNitrateDilutionCalculator/index';
28
+ export type { AquariumNitrateDilutionCalculatorUI, AquariumNitrateDilutionCalculatorLocaleContent } from './tool/aquariumNitrateDilutionCalculator/index';
@@ -12,7 +12,9 @@ if (!categoryImageMatch) {
12
12
  throw new Error(`Unexpected CATEGORY_OG_IMAGE format: ${CATEGORY_OG_IMAGE}`);
13
13
  }
14
14
 
15
- const [, imageUrlRoot, categoryImage, assetVersion] = categoryImageMatch;
15
+ const imageUrlRoot = categoryImageMatch[1] ?? '';
16
+ const categoryImage = categoryImageMatch[2] ?? '';
17
+ const assetVersion = categoryImageMatch[3] ?? '';
16
18
  const assetRoot = join(process.cwd(), 'public', imageUrlRoot.slice(1));
17
19
  const categorySlug = basename(categoryImage, '.webp');
18
20
 
@@ -3,16 +3,18 @@ import { ALL_TOOLS } from '../tools';
3
3
  import { aquariumCategory } from '../data';
4
4
 
5
5
  describe('Tool Validation Suite', () => {
6
- it('registers exactly six aquarium production tools', () => {
7
- expect(ALL_TOOLS.length).toBe(6);
8
- expect(aquariumCategory.tools).toHaveLength(6);
9
- expect(aquariumCategory.tools.map((tool) => tool.id)).toEqual([
10
- 'aquarium-tank-volume-water-change-calculator',
6
+ it('registers the aquarium production tools', () => {
7
+ const expectedIds = [
8
+ 'aquarium-calcium-alkalinity-dosing-calculator',
9
+ 'aquarium-evaporation-top-off-planner',
11
10
  'aquarium-filter-turnover-stocking-planner',
12
11
  'aquarium-lighting-photoperiod-schedule-planner',
13
- 'aquarium-evaporation-top-off-planner',
12
+ 'aquarium-nitrate-dilution-calculator',
14
13
  'aquarium-salt-dosing-calculator',
15
- 'aquarium-calcium-alkalinity-dosing-calculator',
16
- ]);
14
+ 'aquarium-tank-volume-water-change-calculator',
15
+ ];
16
+
17
+ expect(ALL_TOOLS.map(({ entry }) => entry.id)).toEqual(expectedIds);
18
+ expect(aquariumCategory.tools.map((tool) => tool.id)).toEqual(expectedIds);
17
19
  });
18
20
  });