@jjlmoya/utils-astronomy 1.16.0 → 1.17.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 (105) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -1
  3. package/src/data.ts +2 -0
  4. package/src/entries.ts +4 -1
  5. package/src/pages/[locale]/[slug].astro +30 -14
  6. package/src/tests/locale_completeness.test.ts +1 -34
  7. package/src/tests/tool_validation.test.ts +4 -3
  8. package/src/tool/bortleVisualizer/bibliography.ts +8 -0
  9. package/src/tool/bortleVisualizer/entry.ts +2 -0
  10. package/src/tool/bortleVisualizer/i18n/de.ts +1 -9
  11. package/src/tool/bortleVisualizer/i18n/en.ts +1 -9
  12. package/src/tool/bortleVisualizer/i18n/es.ts +1 -9
  13. package/src/tool/bortleVisualizer/i18n/fr.ts +1 -9
  14. package/src/tool/bortleVisualizer/i18n/id.ts +1 -9
  15. package/src/tool/bortleVisualizer/i18n/it.ts +1 -9
  16. package/src/tool/bortleVisualizer/i18n/ja.ts +1 -9
  17. package/src/tool/bortleVisualizer/i18n/ko.ts +1 -9
  18. package/src/tool/bortleVisualizer/i18n/nl.ts +1 -9
  19. package/src/tool/bortleVisualizer/i18n/pl.ts +1 -9
  20. package/src/tool/bortleVisualizer/i18n/pt.ts +1 -9
  21. package/src/tool/bortleVisualizer/i18n/ru.ts +1 -9
  22. package/src/tool/bortleVisualizer/i18n/sv.ts +1 -9
  23. package/src/tool/bortleVisualizer/i18n/tr.ts +1 -9
  24. package/src/tool/bortleVisualizer/i18n/zh.ts +1 -9
  25. package/src/tool/bortleVisualizer/seo.astro +2 -48
  26. package/src/tool/deepSpaceScope/bibliography.ts +6 -0
  27. package/src/tool/deepSpaceScope/entry.ts +2 -0
  28. package/src/tool/deepSpaceScope/i18n/de.ts +1 -7
  29. package/src/tool/deepSpaceScope/i18n/en.ts +1 -7
  30. package/src/tool/deepSpaceScope/i18n/es.ts +1 -7
  31. package/src/tool/deepSpaceScope/i18n/fr.ts +1 -7
  32. package/src/tool/deepSpaceScope/i18n/id.ts +1 -7
  33. package/src/tool/deepSpaceScope/i18n/it.ts +1 -7
  34. package/src/tool/deepSpaceScope/i18n/ja.ts +1 -7
  35. package/src/tool/deepSpaceScope/i18n/ko.ts +1 -7
  36. package/src/tool/deepSpaceScope/i18n/nl.ts +1 -7
  37. package/src/tool/deepSpaceScope/i18n/pl.ts +1 -7
  38. package/src/tool/deepSpaceScope/i18n/pt.ts +1 -7
  39. package/src/tool/deepSpaceScope/i18n/ru.ts +1 -7
  40. package/src/tool/deepSpaceScope/i18n/sv.ts +1 -7
  41. package/src/tool/deepSpaceScope/i18n/tr.ts +1 -7
  42. package/src/tool/deepSpaceScope/i18n/zh.ts +1 -7
  43. package/src/tool/deepSpaceScope/seo.astro +2 -48
  44. package/src/tool/smartEyepieceCalculator/app.ts +327 -0
  45. package/src/tool/smartEyepieceCalculator/bibliography.astro +14 -0
  46. package/src/tool/smartEyepieceCalculator/bibliography.ts +6 -0
  47. package/src/tool/smartEyepieceCalculator/component.astro +125 -0
  48. package/src/tool/smartEyepieceCalculator/entry.ts +67 -0
  49. package/src/tool/smartEyepieceCalculator/i18n/de.ts +165 -0
  50. package/src/tool/smartEyepieceCalculator/i18n/en.ts +165 -0
  51. package/src/tool/smartEyepieceCalculator/i18n/es.ts +165 -0
  52. package/src/tool/smartEyepieceCalculator/i18n/fr.ts +165 -0
  53. package/src/tool/smartEyepieceCalculator/i18n/id.ts +165 -0
  54. package/src/tool/smartEyepieceCalculator/i18n/it.ts +165 -0
  55. package/src/tool/smartEyepieceCalculator/i18n/ja.ts +165 -0
  56. package/src/tool/smartEyepieceCalculator/i18n/ko.ts +165 -0
  57. package/src/tool/smartEyepieceCalculator/i18n/nl.ts +165 -0
  58. package/src/tool/smartEyepieceCalculator/i18n/pl.ts +165 -0
  59. package/src/tool/smartEyepieceCalculator/i18n/pt.ts +165 -0
  60. package/src/tool/smartEyepieceCalculator/i18n/ru.ts +165 -0
  61. package/src/tool/smartEyepieceCalculator/i18n/sv.ts +165 -0
  62. package/src/tool/smartEyepieceCalculator/i18n/tr.ts +165 -0
  63. package/src/tool/smartEyepieceCalculator/i18n/zh.ts +165 -0
  64. package/src/tool/smartEyepieceCalculator/index.ts +16 -0
  65. package/src/tool/smartEyepieceCalculator/logic.ts +67 -0
  66. package/src/tool/smartEyepieceCalculator/seo.astro +15 -0
  67. package/src/tool/smartEyepieceCalculator/smart-eyepiece-calculator.css +393 -0
  68. package/src/tool/starExposureCalculator/bibliography.ts +7 -0
  69. package/src/tool/starExposureCalculator/entry.ts +2 -0
  70. package/src/tool/starExposureCalculator/i18n/de.ts +1 -8
  71. package/src/tool/starExposureCalculator/i18n/en.ts +1 -8
  72. package/src/tool/starExposureCalculator/i18n/es.ts +1 -8
  73. package/src/tool/starExposureCalculator/i18n/fr.ts +1 -8
  74. package/src/tool/starExposureCalculator/i18n/id.ts +1 -8
  75. package/src/tool/starExposureCalculator/i18n/it.ts +1 -8
  76. package/src/tool/starExposureCalculator/i18n/ja.ts +1 -8
  77. package/src/tool/starExposureCalculator/i18n/ko.ts +1 -8
  78. package/src/tool/starExposureCalculator/i18n/nl.ts +1 -8
  79. package/src/tool/starExposureCalculator/i18n/pl.ts +1 -8
  80. package/src/tool/starExposureCalculator/i18n/pt.ts +1 -8
  81. package/src/tool/starExposureCalculator/i18n/ru.ts +1 -8
  82. package/src/tool/starExposureCalculator/i18n/sv.ts +1 -8
  83. package/src/tool/starExposureCalculator/i18n/tr.ts +1 -8
  84. package/src/tool/starExposureCalculator/i18n/zh.ts +1 -8
  85. package/src/tool/starExposureCalculator/seo.astro +2 -48
  86. package/src/tool/telescopeResolution/bibliography.ts +7 -0
  87. package/src/tool/telescopeResolution/entry.ts +2 -0
  88. package/src/tool/telescopeResolution/i18n/de.ts +1 -8
  89. package/src/tool/telescopeResolution/i18n/en.ts +1 -8
  90. package/src/tool/telescopeResolution/i18n/es.ts +1 -8
  91. package/src/tool/telescopeResolution/i18n/fr.ts +1 -8
  92. package/src/tool/telescopeResolution/i18n/id.ts +1 -8
  93. package/src/tool/telescopeResolution/i18n/it.ts +1 -8
  94. package/src/tool/telescopeResolution/i18n/ja.ts +1 -8
  95. package/src/tool/telescopeResolution/i18n/ko.ts +1 -8
  96. package/src/tool/telescopeResolution/i18n/nl.ts +1 -8
  97. package/src/tool/telescopeResolution/i18n/pl.ts +1 -8
  98. package/src/tool/telescopeResolution/i18n/pt.ts +1 -8
  99. package/src/tool/telescopeResolution/i18n/ru.ts +1 -8
  100. package/src/tool/telescopeResolution/i18n/sv.ts +1 -8
  101. package/src/tool/telescopeResolution/i18n/tr.ts +1 -8
  102. package/src/tool/telescopeResolution/i18n/zh.ts +1 -8
  103. package/src/tool/telescopeResolution/seo.astro +2 -48
  104. package/src/tools.ts +3 -0
  105. package/src/types.ts +1 -5
@@ -1,16 +1,5 @@
1
1
  ---
2
- import {
3
- SEOTitle,
4
- SEOTable,
5
- SEOTip,
6
- SEOCard,
7
- SEOStats,
8
- SEOGlossary,
9
- SEOProsCons,
10
- SEOSummary,
11
- SEODiagnostic,
12
- SEOArticle
13
- } from '@jjlmoya/utils-shared';
2
+ import { SEORenderer } from '@jjlmoya/utils-shared';
14
3
  import { telescopeResolution } from './index';
15
4
  import type { KnownLocale } from '../../types';
16
5
 
@@ -21,41 +10,6 @@ interface Props {
21
10
  const { locale = 'es' } = Astro.props;
22
11
  const content = await telescopeResolution.i18n[locale]?.();
23
12
  if (!content) return null;
24
-
25
- const { seo } = content;
26
13
  ---
27
14
 
28
- <SEOArticle>
29
- {seo.map((section: any) => {
30
- switch (section.type) {
31
- case 'summary':
32
- return <SEOSummary title={section.title} items={section.items} />;
33
- case 'title':
34
- return <SEOTitle title={section.text} level={section.level || 2} />;
35
- case 'paragraph':
36
- return <p set:html={section.html} />;
37
- case 'stats':
38
- return <SEOStats stats={section.items} columns={section.columns} />;
39
- case 'card':
40
- return <SEOCard title={section.title} icon={section.icon}><Fragment set:html={section.html} /></SEOCard>;
41
- case 'tip':
42
- return <SEOTip title={section.title}><Fragment set:html={section.html} /></SEOTip>;
43
- case 'table':
44
- return (
45
- <SEOTable headers={section.headers}>
46
- {section.rows.map((row: string[]) => (
47
- <tr>{row.map((cell: string) => <td set:html={cell} />)}</tr>
48
- ))}
49
- </SEOTable>
50
- );
51
- case 'proscons':
52
- return <SEOProsCons title={section.title} items={section.items} />;
53
- case 'diagnostic':
54
- return <SEODiagnostic title={section.title} icon={section.icon} type={section.variant} badge={section.badge}><Fragment set:html={section.html} /></SEODiagnostic>;
55
- case 'glossary':
56
- return <SEOGlossary items={section.items} />;
57
- default:
58
- return null;
59
- }
60
- })}
61
- </SEOArticle>
15
+ <SEORenderer content={{ locale, sections: content.seo }} />
package/src/tools.ts CHANGED
@@ -3,6 +3,7 @@ import { BORTLE_VISUALIZER_TOOL } from './tool/bortleVisualizer';
3
3
  import { DEEP_SPACE_SCOPE_TOOL } from './tool/deepSpaceScope';
4
4
  import { STAR_EXPOSURE_CALCULATOR_TOOL } from './tool/starExposureCalculator';
5
5
  import { TELESCOPE_RESOLUTION_TOOL } from './tool/telescopeResolution';
6
+ import { EYEPIECE_CALCULATOR_TOOL } from './tool/smartEyepieceCalculator';
6
7
  import type { ToolDefinition } from './types';
7
8
 
8
9
  export const ALL_TOOLS: ToolDefinition[] = [
@@ -10,6 +11,7 @@ export const ALL_TOOLS: ToolDefinition[] = [
10
11
  DEEP_SPACE_SCOPE_TOOL,
11
12
  STAR_EXPOSURE_CALCULATOR_TOOL,
12
13
  TELESCOPE_RESOLUTION_TOOL,
14
+ EYEPIECE_CALCULATOR_TOOL,
13
15
  ];
14
16
 
15
17
  export {
@@ -17,5 +19,6 @@ export {
17
19
  DEEP_SPACE_SCOPE_TOOL,
18
20
  STAR_EXPOSURE_CALCULATOR_TOOL,
19
21
  TELESCOPE_RESOLUTION_TOOL,
22
+ EYEPIECE_CALCULATOR_TOOL,
20
23
  };
21
24
 
package/src/types.ts CHANGED
@@ -3,9 +3,7 @@ import type { SEOSection } from '@jjlmoya/utils-shared';
3
3
  export type { SEOSection };
4
4
 
5
5
  export type KnownLocale =
6
- | 'ar' | 'da' | 'de' | 'en' | 'es' | 'fi'
7
- | 'fr' | 'it' | 'ja' | 'ko' | 'nb' | 'nl'
8
- | 'pl' | 'pt' | 'ru' | 'sv' | 'tr' | 'zh';
6
+ | 'de' | 'en' | 'es' | 'fr' | 'id' | 'it' | 'ja' | 'ko' | 'nl' | 'pl' | 'pt' | 'ru' | 'sv' | 'tr' | 'zh';
9
7
 
10
8
  export interface FAQItem {
11
9
  question: string;
@@ -30,9 +28,7 @@ export interface ToolLocaleContent<TUI extends Record<string, any> = Record<stri
30
28
  ui: TUI;
31
29
  seo: SEOSection[];
32
30
  faq: FAQItem[];
33
- faqTitle: string;
34
31
  bibliography: BibliographyEntry[];
35
- bibliographyTitle: string;
36
32
  howTo: HowToStep[];
37
33
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
34
  schemas: any[];