@jjlmoya/utils-forensic-science 1.12.0 → 1.14.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 (169) hide show
  1. package/package.json +2 -1
  2. package/src/category/index.ts +63 -59
  3. package/src/category/seo.astro +1 -1
  4. package/src/components/PreviewNavSidebar.astro +1 -1
  5. package/src/components/PreviewToolbar.astro +1 -1
  6. package/src/data.ts +1 -1
  7. package/src/entries.ts +74 -68
  8. package/src/env.d.ts +1 -1
  9. package/src/index.ts +33 -31
  10. package/src/pages/[locale]/[slug].astro +161 -159
  11. package/src/pages/[locale].astro +8 -5
  12. package/src/pages/index.astro +1 -1
  13. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  14. package/src/tests/diacritics_density.test.ts +1 -1
  15. package/src/tests/faq_count.test.ts +19 -19
  16. package/src/tests/i18n_coverage.test.ts +36 -36
  17. package/src/tests/inverted_punctuation.test.ts +1 -1
  18. package/src/tests/locale_completeness.test.ts +2 -2
  19. package/src/tests/mocks/astro_mock.js +1 -1
  20. package/src/tests/no_h1_in_components.test.ts +1 -1
  21. package/src/tests/script_density.test.ts +94 -94
  22. package/src/tests/seo_length.test.ts +46 -46
  23. package/src/tests/seo_parity.test.ts +2 -7
  24. package/src/tests/seo_translation_completeness.test.ts +68 -0
  25. package/src/tests/seo_wellformed_export.test.ts +65 -0
  26. package/src/tests/tool_validation.test.ts +2 -2
  27. package/src/tests/translation_copy.test.ts +23 -24
  28. package/src/tool/bloodstain-pattern-origin-analyzer/component.astro +9 -9
  29. package/src/tool/bloodstain-pattern-origin-analyzer/i18n/zh.ts +1 -1
  30. package/src/tool/dna-profile-match-probability-lab/bibliography.astro +14 -0
  31. package/src/tool/dna-profile-match-probability-lab/bibliography.ts +16 -0
  32. package/src/tool/dna-profile-match-probability-lab/component.astro +121 -0
  33. package/src/tool/dna-profile-match-probability-lab/controller.ts +159 -0
  34. package/src/tool/dna-profile-match-probability-lab/dna-profile-match-probability-lab.css +485 -0
  35. package/src/tool/dna-profile-match-probability-lab/dom-views.ts +93 -0
  36. package/src/tool/dna-profile-match-probability-lab/entry.ts +29 -0
  37. package/src/tool/dna-profile-match-probability-lab/evaluator.ts +19 -0
  38. package/src/tool/dna-profile-match-probability-lab/i18n/de.ts +43 -0
  39. package/src/tool/dna-profile-match-probability-lab/i18n/en.ts +196 -0
  40. package/src/tool/dna-profile-match-probability-lab/i18n/es.ts +40 -0
  41. package/src/tool/dna-profile-match-probability-lab/i18n/fr.ts +10 -0
  42. package/src/tool/dna-profile-match-probability-lab/i18n/id.ts +41 -0
  43. package/src/tool/dna-profile-match-probability-lab/i18n/it.ts +10 -0
  44. package/src/tool/dna-profile-match-probability-lab/i18n/ja.ts +40 -0
  45. package/src/tool/dna-profile-match-probability-lab/i18n/ko.ts +40 -0
  46. package/src/tool/dna-profile-match-probability-lab/i18n/nl.ts +29 -0
  47. package/src/tool/dna-profile-match-probability-lab/i18n/pl.ts +10 -0
  48. package/src/tool/dna-profile-match-probability-lab/i18n/pt.ts +41 -0
  49. package/src/tool/dna-profile-match-probability-lab/i18n/ru.ts +29 -0
  50. package/src/tool/dna-profile-match-probability-lab/i18n/sv.ts +41 -0
  51. package/src/tool/dna-profile-match-probability-lab/i18n/tr.ts +10 -0
  52. package/src/tool/dna-profile-match-probability-lab/i18n/zh.ts +29 -0
  53. package/src/tool/dna-profile-match-probability-lab/index.ts +11 -0
  54. package/src/tool/dna-profile-match-probability-lab/localize.ts +107 -0
  55. package/src/tool/dna-profile-match-probability-lab/logic.test.ts +56 -0
  56. package/src/tool/dna-profile-match-probability-lab/logic.ts +139 -0
  57. package/src/tool/dna-profile-match-probability-lab/seo.astro +15 -0
  58. package/src/tool/dna-profile-match-probability-lab/storage.ts +26 -0
  59. package/src/tool/dna-profile-match-probability-lab/ui.ts +3 -0
  60. package/src/tool/fire-pattern-origin-analyzer/component.astro +1 -1
  61. package/src/tool/fire-pattern-origin-analyzer/i18n/zh.ts +5 -1
  62. package/src/tool/fire-pattern-origin-analyzer/logic.ts +9 -2
  63. package/src/tool/fire-pattern-origin-analyzer/view-bindings.ts +8 -4
  64. package/src/tool/fire-pattern-origin-analyzer/view-model.ts +6 -2
  65. package/src/tool/forensic-age-estimator/bibliography.astro +1 -1
  66. package/src/tool/forensic-age-estimator/component.astro +1 -1
  67. package/src/tool/forensic-age-estimator/entry.ts +17 -17
  68. package/src/tool/forensic-age-estimator/i18n/de.ts +244 -244
  69. package/src/tool/forensic-age-estimator/i18n/en.ts +244 -244
  70. package/src/tool/forensic-age-estimator/i18n/es.ts +244 -244
  71. package/src/tool/forensic-age-estimator/i18n/fr.ts +244 -244
  72. package/src/tool/forensic-age-estimator/i18n/id.ts +244 -244
  73. package/src/tool/forensic-age-estimator/i18n/it.ts +244 -244
  74. package/src/tool/forensic-age-estimator/i18n/nl.ts +244 -244
  75. package/src/tool/forensic-age-estimator/i18n/pl.ts +244 -244
  76. package/src/tool/forensic-age-estimator/i18n/pt.ts +244 -244
  77. package/src/tool/forensic-age-estimator/i18n/ru.ts +244 -244
  78. package/src/tool/forensic-age-estimator/i18n/sv.ts +244 -244
  79. package/src/tool/forensic-age-estimator/i18n/tr.ts +244 -244
  80. package/src/tool/forensic-age-estimator/i18n/zh.ts +245 -245
  81. package/src/tool/forensic-age-estimator/index.ts +1 -1
  82. package/src/tool/forensic-age-estimator/seo.astro +1 -1
  83. package/src/tool/forensic-blood-test-simulator/component.astro +1 -1
  84. package/src/tool/forensic-fiber-comparison-microscope/component.astro +1 -1
  85. package/src/tool/forensic-fiber-comparison-microscope/render.ts +1 -1
  86. package/src/tool/forensic-fiber-comparison-microscope/view.ts +1 -1
  87. package/src/tool/forensic-fingerprint-minutiae-identifier/component.astro +2 -2
  88. package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/ja.ts +2 -1
  89. package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/zh.ts +2 -0
  90. package/src/tool/forensic-fingerprint-minutiae-identifier/renderer.ts +9 -8
  91. package/src/tool/forensic-glass-becke-line-simulator/component.astro +1 -1
  92. package/src/tool/forensic-glass-becke-line-simulator/view.ts +8 -6
  93. package/src/tool/forensic-image-authenticity-analyzer/component.astro +1 -1
  94. package/src/tool/forensic-image-authenticity-analyzer/i18n/de.ts +105 -105
  95. package/src/tool/forensic-image-authenticity-analyzer/i18n/en.ts +105 -105
  96. package/src/tool/forensic-image-authenticity-analyzer/i18n/es.ts +105 -105
  97. package/src/tool/forensic-image-authenticity-analyzer/i18n/fr.ts +105 -105
  98. package/src/tool/forensic-image-authenticity-analyzer/i18n/id.ts +95 -90
  99. package/src/tool/forensic-image-authenticity-analyzer/i18n/it.ts +105 -105
  100. package/src/tool/forensic-image-authenticity-analyzer/i18n/ja.ts +7 -2
  101. package/src/tool/forensic-image-authenticity-analyzer/i18n/ko.ts +4 -1
  102. package/src/tool/forensic-image-authenticity-analyzer/i18n/nl.ts +95 -92
  103. package/src/tool/forensic-image-authenticity-analyzer/i18n/pl.ts +95 -92
  104. package/src/tool/forensic-image-authenticity-analyzer/i18n/pt.ts +105 -105
  105. package/src/tool/forensic-image-authenticity-analyzer/i18n/ru.ts +97 -92
  106. package/src/tool/forensic-image-authenticity-analyzer/i18n/sv.ts +97 -93
  107. package/src/tool/forensic-image-authenticity-analyzer/i18n/tr.ts +98 -93
  108. package/src/tool/forensic-image-authenticity-analyzer/i18n/zh.ts +11 -0
  109. package/src/tool/forensic-microcrystal-drug-simulator/component.astro +1 -1
  110. package/src/tool/forensic-sex-determinator/component.astro +3 -2
  111. package/src/tool/forensic-stature-estimator/component.astro +1 -1
  112. package/src/tool/forensic-stature-estimator/i18n/id.ts +4 -0
  113. package/src/tool/forensic-stature-estimator/i18n/nl.ts +4 -0
  114. package/src/tool/forensic-stature-estimator/i18n/ru.ts +4 -0
  115. package/src/tool/forensic-tlc-ink-simulator/component.astro +1 -1
  116. package/src/tool/forensic-tlc-ink-simulator/i18n/zh.ts +1 -0
  117. package/src/tool/forensic-toolmark-striation-matcher/component.astro +1 -1
  118. package/src/tool/forensic-toolmark-striation-matcher/logic.ts +1 -1
  119. package/src/tool/forensic-toolmark-striation-matcher/renderer.ts +7 -6
  120. package/src/tool/forensic-toolmark-striation-matcher/view.ts +19 -20
  121. package/src/tool/gsr-dispersion-calculator/component.astro +1 -1
  122. package/src/tool/gsr-dispersion-calculator/logic.ts +1 -1
  123. package/src/tool/time-of-death-algor-mortis-calculator/entry.ts +2 -0
  124. package/src/tool/voice-spectrogram-analyzer/audio-runtime.ts +75 -0
  125. package/src/tool/voice-spectrogram-analyzer/bibliography.astro +14 -0
  126. package/src/tool/voice-spectrogram-analyzer/bibliography.ts +16 -0
  127. package/src/tool/voice-spectrogram-analyzer/component.astro +116 -0
  128. package/src/tool/voice-spectrogram-analyzer/controller.ts +219 -0
  129. package/src/tool/voice-spectrogram-analyzer/dom-views.ts +204 -0
  130. package/src/tool/voice-spectrogram-analyzer/entry.ts +31 -0
  131. package/src/tool/voice-spectrogram-analyzer/evaluator.ts +13 -0
  132. package/src/tool/voice-spectrogram-analyzer/fft.ts +64 -0
  133. package/src/tool/voice-spectrogram-analyzer/i18n/de.ts +135 -0
  134. package/src/tool/voice-spectrogram-analyzer/i18n/en.ts +122 -0
  135. package/src/tool/voice-spectrogram-analyzer/i18n/es.ts +122 -0
  136. package/src/tool/voice-spectrogram-analyzer/i18n/fr.ts +135 -0
  137. package/src/tool/voice-spectrogram-analyzer/i18n/id.ts +136 -0
  138. package/src/tool/voice-spectrogram-analyzer/i18n/it.ts +135 -0
  139. package/src/tool/voice-spectrogram-analyzer/i18n/ja.ts +135 -0
  140. package/src/tool/voice-spectrogram-analyzer/i18n/ko.ts +135 -0
  141. package/src/tool/voice-spectrogram-analyzer/i18n/nl.ts +136 -0
  142. package/src/tool/voice-spectrogram-analyzer/i18n/pl.ts +136 -0
  143. package/src/tool/voice-spectrogram-analyzer/i18n/pt.ts +135 -0
  144. package/src/tool/voice-spectrogram-analyzer/i18n/ru.ts +136 -0
  145. package/src/tool/voice-spectrogram-analyzer/i18n/sv.ts +136 -0
  146. package/src/tool/voice-spectrogram-analyzer/i18n/tr.ts +136 -0
  147. package/src/tool/voice-spectrogram-analyzer/i18n/zh.ts +135 -0
  148. package/src/tool/voice-spectrogram-analyzer/index.ts +11 -0
  149. package/src/tool/voice-spectrogram-analyzer/logic.test.ts +46 -0
  150. package/src/tool/voice-spectrogram-analyzer/logic.ts +163 -0
  151. package/src/tool/voice-spectrogram-analyzer/seo.astro +15 -0
  152. package/src/tool/voice-spectrogram-analyzer/storage.ts +33 -0
  153. package/src/tool/voice-spectrogram-analyzer/ui.ts +49 -0
  154. package/src/tool/voice-spectrogram-analyzer/voice-spectrogram-analyzer.css +547 -0
  155. package/src/tool/widmark-alcohol-simulator/component.astro +1 -1
  156. package/src/tool/widmark-alcohol-simulator/i18n/de.ts +5 -0
  157. package/src/tool/widmark-alcohol-simulator/i18n/fr.ts +2 -1
  158. package/src/tool/widmark-alcohol-simulator/i18n/id.ts +1 -0
  159. package/src/tool/widmark-alcohol-simulator/i18n/it.ts +4 -1
  160. package/src/tool/widmark-alcohol-simulator/i18n/ja.ts +4 -1
  161. package/src/tool/widmark-alcohol-simulator/i18n/nl.ts +5 -1
  162. package/src/tool/widmark-alcohol-simulator/i18n/pl.ts +5 -1
  163. package/src/tool/widmark-alcohol-simulator/i18n/pt.ts +5 -1
  164. package/src/tool/widmark-alcohol-simulator/i18n/ru.ts +4 -1
  165. package/src/tool/widmark-alcohol-simulator/i18n/sv.ts +5 -1
  166. package/src/tool/widmark-alcohol-simulator/i18n/tr.ts +4 -1
  167. package/src/tool/widmark-alcohol-simulator/i18n/zh.ts +4 -1
  168. package/src/tools.ts +39 -35
  169. package/src/types.ts +4 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jjlmoya/utils-forensic-science",
3
- "version": "1.12.0",
3
+ "version": "1.14.0",
4
4
  "type": "module",
5
5
  "main": "./src/index.ts",
6
6
  "types": "./src/index.ts",
@@ -54,6 +54,7 @@
54
54
  "devDependencies": {
55
55
  "@astrojs/check": "^0.9.8",
56
56
  "@types/leaflet": "^1.9.21",
57
+ "@types/three": "^0.185.4",
57
58
  "eslint": "^9.39.4",
58
59
  "eslint-plugin-astro": "^1.6.0",
59
60
  "eslint-plugin-no-comments": "^1.1.10",
@@ -1,61 +1,65 @@
1
- import type { ScienceCategoryEntry } from '../types';
2
- import { forensicAgeEstimator } from '../tool/forensic-age-estimator/entry';
3
- import { widmarkAlcoholSimulator } from '../tool/widmark-alcohol-simulator/entry';
4
- import { forensicSexDeterminator } from '../tool/forensic-sex-determinator/entry';
5
- import { forensicStatureEstimator } from '../tool/forensic-stature-estimator/entry';
6
- import { forensicBloodTestSimulator } from '../tool/forensic-blood-test-simulator/entry';
7
- import { forensicImageAuthenticityAnalyzer } from '../tool/forensic-image-authenticity-analyzer/entry';
8
- import { gsrDispersionCalculator } from '../tool/gsr-dispersion-calculator/entry';
9
- import { forensicTlcInkSimulator } from '../tool/forensic-tlc-ink-simulator/entry';
10
- import { forensicMicrocrystalDrugSimulator } from '../tool/forensic-microcrystal-drug-simulator/entry';
11
- import { forensicGlassBeckeLineSimulator } from '../tool/forensic-glass-becke-line-simulator/entry';
12
- import { forensicFiberComparisonMicroscope } from '../tool/forensic-fiber-comparison-microscope/entry';
13
- import { bloodstainPatternOriginAnalyzer } from '../tool/bloodstain-pattern-origin-analyzer/entry';
14
- import { forensicFingerprintMinutiaeIdentifier } from '../tool/forensic-fingerprint-minutiae-identifier/entry';
15
- import { firePatternOriginAnalyzer } from '../tool/fire-pattern-origin-analyzer/entry';
16
- import { forensicToolmarkStriationMatcher } from '../tool/forensic-toolmark-striation-matcher/entry';
1
+ import type { ScienceCategoryEntry } from '../types';
2
+ import { forensicAgeEstimator } from '../tool/forensic-age-estimator/entry';
3
+ import { widmarkAlcoholSimulator } from '../tool/widmark-alcohol-simulator/entry';
4
+ import { forensicSexDeterminator } from '../tool/forensic-sex-determinator/entry';
5
+ import { forensicStatureEstimator } from '../tool/forensic-stature-estimator/entry';
6
+ import { forensicBloodTestSimulator } from '../tool/forensic-blood-test-simulator/entry';
7
+ import { forensicImageAuthenticityAnalyzer } from '../tool/forensic-image-authenticity-analyzer/entry';
8
+ import { gsrDispersionCalculator } from '../tool/gsr-dispersion-calculator/entry';
9
+ import { forensicTlcInkSimulator } from '../tool/forensic-tlc-ink-simulator/entry';
10
+ import { forensicMicrocrystalDrugSimulator } from '../tool/forensic-microcrystal-drug-simulator/entry';
11
+ import { forensicGlassBeckeLineSimulator } from '../tool/forensic-glass-becke-line-simulator/entry';
12
+ import { forensicFiberComparisonMicroscope } from '../tool/forensic-fiber-comparison-microscope/entry';
13
+ import { bloodstainPatternOriginAnalyzer } from '../tool/bloodstain-pattern-origin-analyzer/entry';
14
+ import { forensicFingerprintMinutiaeIdentifier } from '../tool/forensic-fingerprint-minutiae-identifier/entry';
15
+ import { firePatternOriginAnalyzer } from '../tool/fire-pattern-origin-analyzer/entry';
16
+ import { forensicToolmarkStriationMatcher } from '../tool/forensic-toolmark-striation-matcher/entry';
17
17
  import { timeOfDeathAlgorMortisCalculator } from '../tool/time-of-death-algor-mortis-calculator/entry';
18
-
19
- export const forensicCategory: ScienceCategoryEntry = {
20
- icon: 'mdi:fingerprint',
21
- tools: [
22
- forensicAgeEstimator,
23
- widmarkAlcoholSimulator,
24
- forensicSexDeterminator,
25
- forensicStatureEstimator,
26
- forensicBloodTestSimulator,
27
- forensicImageAuthenticityAnalyzer,
28
- gsrDispersionCalculator,
29
- forensicTlcInkSimulator,
30
- forensicMicrocrystalDrugSimulator,
31
- forensicGlassBeckeLineSimulator,
32
- forensicFiberComparisonMicroscope,
33
- bloodstainPatternOriginAnalyzer,
34
- forensicFingerprintMinutiaeIdentifier,
35
- firePatternOriginAnalyzer,
36
- forensicToolmarkStriationMatcher,
37
- timeOfDeathAlgorMortisCalculator
18
+ import { voiceSpectrogramAnalyzer } from '../tool/voice-spectrogram-analyzer/entry';
19
+ import { dnaProfileMatchProbabilityLab } from '../tool/dna-profile-match-probability-lab/entry';
20
+
21
+ export const forensicCategory: ScienceCategoryEntry = {
22
+ icon: 'mdi:fingerprint',
23
+ tools: [
24
+ forensicAgeEstimator,
25
+ widmarkAlcoholSimulator,
26
+ forensicSexDeterminator,
27
+ forensicStatureEstimator,
28
+ forensicBloodTestSimulator,
29
+ forensicImageAuthenticityAnalyzer,
30
+ gsrDispersionCalculator,
31
+ forensicTlcInkSimulator,
32
+ forensicMicrocrystalDrugSimulator,
33
+ forensicGlassBeckeLineSimulator,
34
+ forensicFiberComparisonMicroscope,
35
+ bloodstainPatternOriginAnalyzer,
36
+ forensicFingerprintMinutiaeIdentifier,
37
+ firePatternOriginAnalyzer,
38
+ forensicToolmarkStriationMatcher,
39
+ timeOfDeathAlgorMortisCalculator,
40
+ voiceSpectrogramAnalyzer,
41
+ dnaProfileMatchProbabilityLab
38
42
  ],
39
-
40
-
41
-
42
- i18n: {
43
- de: () => import('./i18n/de').then((m) => m.content),
44
- en: () => import('./i18n/en').then((m) => m.content),
45
- es: () => import('./i18n/es').then((m) => m.content),
46
- fr: () => import('./i18n/fr').then((m) => m.content),
47
- id: () => import('./i18n/id').then((m) => m.content),
48
- it: () => import('./i18n/it').then((m) => m.content),
49
- ja: () => import('./i18n/ja').then((m) => m.content),
50
- ko: () => import('./i18n/ko').then((m) => m.content),
51
- nl: () => import('./i18n/nl').then((m) => m.content),
52
- pl: () => import('./i18n/pl').then((m) => m.content),
53
- pt: () => import('./i18n/pt').then((m) => m.content),
54
- ru: () => import('./i18n/ru').then((m) => m.content),
55
- sv: () => import('./i18n/sv').then((m) => m.content),
56
- tr: () => import('./i18n/tr').then((m) => m.content),
57
- zh: () => import('./i18n/zh').then((m) => m.content)
58
- }
59
- };
60
-
61
- export const scienceCategory = forensicCategory;
43
+
44
+
45
+
46
+ i18n: {
47
+ de: () => import('./i18n/de').then((m) => m.content),
48
+ en: () => import('./i18n/en').then((m) => m.content),
49
+ es: () => import('./i18n/es').then((m) => m.content),
50
+ fr: () => import('./i18n/fr').then((m) => m.content),
51
+ id: () => import('./i18n/id').then((m) => m.content),
52
+ it: () => import('./i18n/it').then((m) => m.content),
53
+ ja: () => import('./i18n/ja').then((m) => m.content),
54
+ ko: () => import('./i18n/ko').then((m) => m.content),
55
+ nl: () => import('./i18n/nl').then((m) => m.content),
56
+ pl: () => import('./i18n/pl').then((m) => m.content),
57
+ pt: () => import('./i18n/pt').then((m) => m.content),
58
+ ru: () => import('./i18n/ru').then((m) => m.content),
59
+ sv: () => import('./i18n/sv').then((m) => m.content),
60
+ tr: () => import('./i18n/tr').then((m) => m.content),
61
+ zh: () => import('./i18n/zh').then((m) => m.content)
62
+ }
63
+ };
64
+
65
+ export const scienceCategory = forensicCategory;
@@ -12,4 +12,4 @@ const content = await forensicCategory.i18n[locale]?.();
12
12
  if (!content) return null;
13
13
  ---
14
14
 
15
- {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
@@ -113,4 +113,4 @@ const { categoryTitle, tools = [] } = Astro.props;
113
113
  white-space: nowrap;
114
114
  }
115
115
  </style>
116
-
116
+
@@ -140,4 +140,4 @@ const otherLocales = Object.entries(localeUrls).filter(([l]) => l !== currentLoc
140
140
  box-shadow: inset -4px -2px 0 #1e293b;
141
141
  }
142
142
  </style>
143
-
143
+
package/src/data.ts CHANGED
@@ -7,4 +7,4 @@ export type {
7
7
  LocaleMap,
8
8
  ScienceToolEntry,
9
9
  ScienceCategoryEntry,
10
- } from './types';
10
+ } from './types';
package/src/entries.ts CHANGED
@@ -1,71 +1,77 @@
1
- export { forensicAgeEstimator } from './tool/forensic-age-estimator/entry';
2
- export type { ForensicAgeEstimatorUI, ForensicAgeEstimatorLocaleContent } from './tool/forensic-age-estimator/entry';
3
- export { widmarkAlcoholSimulator } from './tool/widmark-alcohol-simulator/entry';
4
- export type { WidmarkAlcoholSimulatorUI, WidmarkAlcoholSimulatorLocaleContent } from './tool/widmark-alcohol-simulator/entry';
5
- export { forensicSexDeterminator } from './tool/forensic-sex-determinator/entry';
6
- export type { SexDeterminatorUI, SexDeterminatorLocaleContent } from './tool/forensic-sex-determinator/entry';
7
- export { forensicStatureEstimator } from './tool/forensic-stature-estimator/entry';
8
- export type { StatureEstimatorUI, StatureEstimatorLocaleContent } from './tool/forensic-stature-estimator/entry';
9
- export { forensicBloodTestSimulator } from './tool/forensic-blood-test-simulator/entry';
10
- export type { BloodTestUI, BloodTestLocaleContent } from './tool/forensic-blood-test-simulator/entry';
11
- export { forensicImageAuthenticityAnalyzer } from './tool/forensic-image-authenticity-analyzer/entry';
12
- export type { ImageAuthenticityUI, ImageAuthenticityLocaleContent } from './tool/forensic-image-authenticity-analyzer/entry';
13
- export { gsrDispersionCalculator } from './tool/gsr-dispersion-calculator/entry';
14
- export type { GsrDispersionUI, GsrDispersionLocaleContent } from './tool/gsr-dispersion-calculator/entry';
15
- export { forensicTlcInkSimulator } from './tool/forensic-tlc-ink-simulator/entry';
16
- export type { TlcInkSimulatorUI, TlcInkSimulatorLocaleContent } from './tool/forensic-tlc-ink-simulator/entry';
17
- export { forensicMicrocrystalDrugSimulator } from './tool/forensic-microcrystal-drug-simulator/entry';
18
- export type { MicrocrystalDrugSimulatorUI, MicrocrystalDrugSimulatorLocaleContent } from './tool/forensic-microcrystal-drug-simulator/entry';
19
- export { forensicGlassBeckeLineSimulator } from './tool/forensic-glass-becke-line-simulator/entry';
20
- export type { GlassBeckeLineSimulatorUI, GlassBeckeLineSimulatorLocaleContent } from './tool/forensic-glass-becke-line-simulator/entry';
21
- export { forensicFiberComparisonMicroscope } from './tool/forensic-fiber-comparison-microscope/entry';
22
- export type { FiberComparisonMicroscopeUI, FiberComparisonMicroscopeLocaleContent } from './tool/forensic-fiber-comparison-microscope/entry';
23
- export { bloodstainPatternOriginAnalyzer } from './tool/bloodstain-pattern-origin-analyzer/entry';
24
- export type { BloodstainPatternUI, BloodstainPatternLocaleContent } from './tool/bloodstain-pattern-origin-analyzer/entry';
25
- export { forensicFingerprintMinutiaeIdentifier } from './tool/forensic-fingerprint-minutiae-identifier/entry';
26
- export type { FingerprintMinutiaeUI, FingerprintMinutiaeLocaleContent } from './tool/forensic-fingerprint-minutiae-identifier/entry';
27
- export { firePatternOriginAnalyzer } from './tool/fire-pattern-origin-analyzer/entry';
28
- export type { FirePatternOriginAnalyzerUI, FirePatternOriginAnalyzerLocaleContent } from './tool/fire-pattern-origin-analyzer/entry';
29
- export { forensicToolmarkStriationMatcher } from './tool/forensic-toolmark-striation-matcher/entry';
30
- export type { ToolmarkStriationMatcherUI, ToolmarkStriationMatcherLocaleContent } from './tool/forensic-toolmark-striation-matcher/entry';
31
- export { timeOfDeathAlgorMortisCalculator } from './tool/time-of-death-algor-mortis-calculator/entry';
1
+ export { forensicAgeEstimator } from './tool/forensic-age-estimator/entry';
2
+ export type { ForensicAgeEstimatorUI, ForensicAgeEstimatorLocaleContent } from './tool/forensic-age-estimator/entry';
3
+ export { widmarkAlcoholSimulator } from './tool/widmark-alcohol-simulator/entry';
4
+ export type { WidmarkAlcoholSimulatorUI, WidmarkAlcoholSimulatorLocaleContent } from './tool/widmark-alcohol-simulator/entry';
5
+ export { forensicSexDeterminator } from './tool/forensic-sex-determinator/entry';
6
+ export type { SexDeterminatorUI, SexDeterminatorLocaleContent } from './tool/forensic-sex-determinator/entry';
7
+ export { forensicStatureEstimator } from './tool/forensic-stature-estimator/entry';
8
+ export type { StatureEstimatorUI, StatureEstimatorLocaleContent } from './tool/forensic-stature-estimator/entry';
9
+ export { forensicBloodTestSimulator } from './tool/forensic-blood-test-simulator/entry';
10
+ export type { BloodTestUI, BloodTestLocaleContent } from './tool/forensic-blood-test-simulator/entry';
11
+ export { forensicImageAuthenticityAnalyzer } from './tool/forensic-image-authenticity-analyzer/entry';
12
+ export type { ImageAuthenticityUI, ImageAuthenticityLocaleContent } from './tool/forensic-image-authenticity-analyzer/entry';
13
+ export { gsrDispersionCalculator } from './tool/gsr-dispersion-calculator/entry';
14
+ export type { GsrDispersionUI, GsrDispersionLocaleContent } from './tool/gsr-dispersion-calculator/entry';
15
+ export { forensicTlcInkSimulator } from './tool/forensic-tlc-ink-simulator/entry';
16
+ export type { TlcInkSimulatorUI, TlcInkSimulatorLocaleContent } from './tool/forensic-tlc-ink-simulator/entry';
17
+ export { forensicMicrocrystalDrugSimulator } from './tool/forensic-microcrystal-drug-simulator/entry';
18
+ export type { MicrocrystalDrugSimulatorUI, MicrocrystalDrugSimulatorLocaleContent } from './tool/forensic-microcrystal-drug-simulator/entry';
19
+ export { forensicGlassBeckeLineSimulator } from './tool/forensic-glass-becke-line-simulator/entry';
20
+ export type { GlassBeckeLineSimulatorUI, GlassBeckeLineSimulatorLocaleContent } from './tool/forensic-glass-becke-line-simulator/entry';
21
+ export { forensicFiberComparisonMicroscope } from './tool/forensic-fiber-comparison-microscope/entry';
22
+ export type { FiberComparisonMicroscopeUI, FiberComparisonMicroscopeLocaleContent } from './tool/forensic-fiber-comparison-microscope/entry';
23
+ export { bloodstainPatternOriginAnalyzer } from './tool/bloodstain-pattern-origin-analyzer/entry';
24
+ export type { BloodstainPatternUI, BloodstainPatternLocaleContent } from './tool/bloodstain-pattern-origin-analyzer/entry';
25
+ export { forensicFingerprintMinutiaeIdentifier } from './tool/forensic-fingerprint-minutiae-identifier/entry';
26
+ export type { FingerprintMinutiaeUI, FingerprintMinutiaeLocaleContent } from './tool/forensic-fingerprint-minutiae-identifier/entry';
27
+ export { firePatternOriginAnalyzer } from './tool/fire-pattern-origin-analyzer/entry';
28
+ export type { FirePatternOriginAnalyzerUI, FirePatternOriginAnalyzerLocaleContent } from './tool/fire-pattern-origin-analyzer/entry';
29
+ export { forensicToolmarkStriationMatcher } from './tool/forensic-toolmark-striation-matcher/entry';
30
+ export type { ToolmarkStriationMatcherUI, ToolmarkStriationMatcherLocaleContent } from './tool/forensic-toolmark-striation-matcher/entry';
31
+ export { timeOfDeathAlgorMortisCalculator } from './tool/time-of-death-algor-mortis-calculator/entry';
32
32
  export type { TimeOfDeathAlgorMortisUI, TimeOfDeathAlgorMortisLocaleContent } from './tool/time-of-death-algor-mortis-calculator/entry';
33
-
34
- import { forensicAgeEstimator } from './tool/forensic-age-estimator/entry';
35
- import { widmarkAlcoholSimulator } from './tool/widmark-alcohol-simulator/entry';
36
- import { forensicSexDeterminator } from './tool/forensic-sex-determinator/entry';
37
- import { forensicStatureEstimator } from './tool/forensic-stature-estimator/entry';
38
- import { forensicBloodTestSimulator } from './tool/forensic-blood-test-simulator/entry';
39
- import { forensicImageAuthenticityAnalyzer } from './tool/forensic-image-authenticity-analyzer/entry';
40
- import { gsrDispersionCalculator } from './tool/gsr-dispersion-calculator/entry';
41
- import { forensicTlcInkSimulator } from './tool/forensic-tlc-ink-simulator/entry';
42
- import { forensicMicrocrystalDrugSimulator } from './tool/forensic-microcrystal-drug-simulator/entry';
43
- import { forensicGlassBeckeLineSimulator } from './tool/forensic-glass-becke-line-simulator/entry';
44
- import { forensicFiberComparisonMicroscope } from './tool/forensic-fiber-comparison-microscope/entry';
45
- import { bloodstainPatternOriginAnalyzer } from './tool/bloodstain-pattern-origin-analyzer/entry';
46
- import { forensicFingerprintMinutiaeIdentifier } from './tool/forensic-fingerprint-minutiae-identifier/entry';
47
- import { firePatternOriginAnalyzer } from './tool/fire-pattern-origin-analyzer/entry';
48
- import { forensicToolmarkStriationMatcher } from './tool/forensic-toolmark-striation-matcher/entry';
33
+ export { voiceSpectrogramAnalyzer } from './tool/voice-spectrogram-analyzer/entry';
34
+ export type { VoiceSpectrogramUI, VoiceSpectrogramLocaleContent } from './tool/voice-spectrogram-analyzer/entry';
35
+
36
+ import { forensicAgeEstimator } from './tool/forensic-age-estimator/entry';
37
+ import { widmarkAlcoholSimulator } from './tool/widmark-alcohol-simulator/entry';
38
+ import { forensicSexDeterminator } from './tool/forensic-sex-determinator/entry';
39
+ import { forensicStatureEstimator } from './tool/forensic-stature-estimator/entry';
40
+ import { forensicBloodTestSimulator } from './tool/forensic-blood-test-simulator/entry';
41
+ import { forensicImageAuthenticityAnalyzer } from './tool/forensic-image-authenticity-analyzer/entry';
42
+ import { gsrDispersionCalculator } from './tool/gsr-dispersion-calculator/entry';
43
+ import { forensicTlcInkSimulator } from './tool/forensic-tlc-ink-simulator/entry';
44
+ import { forensicMicrocrystalDrugSimulator } from './tool/forensic-microcrystal-drug-simulator/entry';
45
+ import { forensicGlassBeckeLineSimulator } from './tool/forensic-glass-becke-line-simulator/entry';
46
+ import { forensicFiberComparisonMicroscope } from './tool/forensic-fiber-comparison-microscope/entry';
47
+ import { bloodstainPatternOriginAnalyzer } from './tool/bloodstain-pattern-origin-analyzer/entry';
48
+ import { forensicFingerprintMinutiaeIdentifier } from './tool/forensic-fingerprint-minutiae-identifier/entry';
49
+ import { firePatternOriginAnalyzer } from './tool/fire-pattern-origin-analyzer/entry';
50
+ import { forensicToolmarkStriationMatcher } from './tool/forensic-toolmark-striation-matcher/entry';
49
51
  import { timeOfDeathAlgorMortisCalculator } from './tool/time-of-death-algor-mortis-calculator/entry';
50
-
51
- export const ALL_ENTRIES = [
52
- forensicAgeEstimator,
53
- widmarkAlcoholSimulator,
54
- forensicSexDeterminator,
55
- forensicStatureEstimator,
56
- forensicBloodTestSimulator,
57
- forensicImageAuthenticityAnalyzer,
58
- gsrDispersionCalculator,
59
- forensicTlcInkSimulator,
60
- forensicMicrocrystalDrugSimulator,
61
- forensicGlassBeckeLineSimulator,
62
- forensicFiberComparisonMicroscope,
63
- bloodstainPatternOriginAnalyzer,
64
- forensicFingerprintMinutiaeIdentifier,
65
- firePatternOriginAnalyzer,
66
- forensicToolmarkStriationMatcher,
67
- timeOfDeathAlgorMortisCalculator
52
+ import { voiceSpectrogramAnalyzer } from './tool/voice-spectrogram-analyzer/entry';
53
+ import { dnaProfileMatchProbabilityLab } from './tool/dna-profile-match-probability-lab/entry';
54
+
55
+ export const ALL_ENTRIES = [
56
+ forensicAgeEstimator,
57
+ widmarkAlcoholSimulator,
58
+ forensicSexDeterminator,
59
+ forensicStatureEstimator,
60
+ forensicBloodTestSimulator,
61
+ forensicImageAuthenticityAnalyzer,
62
+ gsrDispersionCalculator,
63
+ forensicTlcInkSimulator,
64
+ forensicMicrocrystalDrugSimulator,
65
+ forensicGlassBeckeLineSimulator,
66
+ forensicFiberComparisonMicroscope,
67
+ bloodstainPatternOriginAnalyzer,
68
+ forensicFingerprintMinutiaeIdentifier,
69
+ firePatternOriginAnalyzer,
70
+ forensicToolmarkStriationMatcher,
71
+ timeOfDeathAlgorMortisCalculator,
72
+ voiceSpectrogramAnalyzer,
73
+ dnaProfileMatchProbabilityLab
68
74
  ];
69
-
70
-
71
-
75
+
76
+
77
+
package/src/env.d.ts CHANGED
@@ -2,4 +2,4 @@ declare module '*.astro' {
2
2
  const Component: (_props: Record<string, unknown>) => unknown;
3
3
  export default Component;
4
4
  }
5
-
5
+
package/src/index.ts CHANGED
@@ -1,33 +1,35 @@
1
- export { forensicCategory, forensicCategory as templateCategory } from './category';
2
- export const ForensicCategorySEO = () => import('./category/seo.astro').then((m) => m.default);
3
- export { FORENSIC_AGE_ESTIMATOR_TOOL } from './tool/forensic-age-estimator/index';
4
- export { WIDMARK_ALCOHOL_SIMULATOR_TOOL } from './tool/widmark-alcohol-simulator/index';
5
- export { FORENSIC_SEX_DETERMINATOR_TOOL } from './tool/forensic-sex-determinator/index';
6
- export { FORENSIC_STATURE_ESTIMATOR_TOOL } from './tool/forensic-stature-estimator/index';
7
- export { FORENSIC_BLOOD_TEST_SIMULATOR_TOOL } from './tool/forensic-blood-test-simulator/index';
8
- export { FORENSIC_IMAGE_AUTHENTICITY_ANALYZER_TOOL } from './tool/forensic-image-authenticity-analyzer/index';
9
- export { GSR_DISPERSION_CALCULATOR_TOOL } from './tool/gsr-dispersion-calculator/index';
10
- export { FORENSIC_TLC_INK_SIMULATOR_TOOL } from './tool/forensic-tlc-ink-simulator/index';
11
- export { FORENSIC_MICROCRYSTAL_DRUG_SIMULATOR_TOOL } from './tool/forensic-microcrystal-drug-simulator/index';
12
- export { FORENSIC_GLASS_BECKE_LINE_SIMULATOR_TOOL } from './tool/forensic-glass-becke-line-simulator/index';
13
- export { FORENSIC_FIBER_COMPARISON_MICROSCOPE_TOOL } from './tool/forensic-fiber-comparison-microscope/index';
14
- export { BLOODSTAIN_PATTERN_ORIGIN_ANALYZER_TOOL } from './tool/bloodstain-pattern-origin-analyzer/index';
15
- export { FORENSIC_FINGERPRINT_MINUTIAE_IDENTIFIER_TOOL } from './tool/forensic-fingerprint-minutiae-identifier/index';
1
+ export { forensicCategory, forensicCategory as templateCategory } from './category';
2
+ export const ForensicCategorySEO = () => import('./category/seo.astro').then((m) => m.default);
3
+ export { FORENSIC_AGE_ESTIMATOR_TOOL } from './tool/forensic-age-estimator/index';
4
+ export { WIDMARK_ALCOHOL_SIMULATOR_TOOL } from './tool/widmark-alcohol-simulator/index';
5
+ export { FORENSIC_SEX_DETERMINATOR_TOOL } from './tool/forensic-sex-determinator/index';
6
+ export { FORENSIC_STATURE_ESTIMATOR_TOOL } from './tool/forensic-stature-estimator/index';
7
+ export { FORENSIC_BLOOD_TEST_SIMULATOR_TOOL } from './tool/forensic-blood-test-simulator/index';
8
+ export { FORENSIC_IMAGE_AUTHENTICITY_ANALYZER_TOOL } from './tool/forensic-image-authenticity-analyzer/index';
9
+ export { GSR_DISPERSION_CALCULATOR_TOOL } from './tool/gsr-dispersion-calculator/index';
10
+ export { FORENSIC_TLC_INK_SIMULATOR_TOOL } from './tool/forensic-tlc-ink-simulator/index';
11
+ export { FORENSIC_MICROCRYSTAL_DRUG_SIMULATOR_TOOL } from './tool/forensic-microcrystal-drug-simulator/index';
12
+ export { FORENSIC_GLASS_BECKE_LINE_SIMULATOR_TOOL } from './tool/forensic-glass-becke-line-simulator/index';
13
+ export { FORENSIC_FIBER_COMPARISON_MICROSCOPE_TOOL } from './tool/forensic-fiber-comparison-microscope/index';
14
+ export { BLOODSTAIN_PATTERN_ORIGIN_ANALYZER_TOOL } from './tool/bloodstain-pattern-origin-analyzer/index';
15
+ export { FORENSIC_FINGERPRINT_MINUTIAE_IDENTIFIER_TOOL } from './tool/forensic-fingerprint-minutiae-identifier/index';
16
16
  export { FIRE_PATTERN_ORIGIN_ANALYZER_TOOL } from './tool/fire-pattern-origin-analyzer/index';
17
17
  export { FORENSIC_TOOLMARK_STRIATION_MATCHER_TOOL } from './tool/forensic-toolmark-striation-matcher/index';
18
-
19
- export type {
20
- KnownLocale,
21
- FAQItem,
22
- BibliographyEntry,
23
- HowToStep,
24
- ToolLocaleContent,
25
- CategoryLocaleContent,
26
- LocaleLoader,
27
- LocaleMap,
28
- ScienceToolEntry,
29
- ScienceCategoryEntry,
30
- ToolDefinition,
31
- } from './types';
32
-
33
- export { ALL_ENTRIES, ALL_TOOLS } from './tools';
18
+ export { VOICE_SPECTROGRAM_ANALYZER_TOOL } from './tool/voice-spectrogram-analyzer/index';
19
+ export { DNA_PROFILE_MATCH_PROBABILITY_LAB_TOOL } from './tool/dna-profile-match-probability-lab/index';
20
+
21
+ export type {
22
+ KnownLocale,
23
+ FAQItem,
24
+ BibliographyEntry,
25
+ HowToStep,
26
+ ToolLocaleContent,
27
+ CategoryLocaleContent,
28
+ LocaleLoader,
29
+ LocaleMap,
30
+ ScienceToolEntry,
31
+ ScienceCategoryEntry,
32
+ ToolDefinition,
33
+ } from './types';
34
+
35
+ export { ALL_ENTRIES, ALL_TOOLS } from './tools';