euparliamentmonitor 0.8.23 → 0.8.24

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 (81) hide show
  1. package/package.json +5 -4
  2. package/scripts/constants/language-ui.d.ts +20 -0
  3. package/scripts/constants/language-ui.js +171 -0
  4. package/scripts/constants/languages.d.ts +1 -1
  5. package/scripts/constants/languages.js +1 -1
  6. package/scripts/generators/analysis-builders.d.ts +4 -270
  7. package/scripts/generators/analysis-builders.js +5 -2918
  8. package/scripts/generators/breaking-content.js +0 -12
  9. package/scripts/generators/builders/breaking-builders.d.ts +58 -0
  10. package/scripts/generators/builders/breaking-builders.js +499 -0
  11. package/scripts/generators/builders/committee-builders.d.ts +52 -0
  12. package/scripts/generators/builders/committee-builders.js +418 -0
  13. package/scripts/generators/builders/index.d.ts +13 -0
  14. package/scripts/generators/builders/index.js +15 -0
  15. package/scripts/generators/builders/propositions-builders.d.ts +58 -0
  16. package/scripts/generators/builders/propositions-builders.js +598 -0
  17. package/scripts/generators/builders/prospective-builders.d.ts +56 -0
  18. package/scripts/generators/builders/prospective-builders.js +415 -0
  19. package/scripts/generators/builders/shared-builders.d.ts +118 -0
  20. package/scripts/generators/builders/shared-builders.js +286 -0
  21. package/scripts/generators/builders/voting-builders.d.ts +67 -0
  22. package/scripts/generators/builders/voting-builders.js +656 -0
  23. package/scripts/generators/deep-analysis-content.d.ts +1 -2
  24. package/scripts/generators/deep-analysis-content.js +61 -93
  25. package/scripts/generators/motions-content.js +0 -4
  26. package/scripts/generators/news-enhanced.d.ts +24 -0
  27. package/scripts/generators/news-enhanced.js +113 -36
  28. package/scripts/generators/pipeline/analysis-stage.d.ts +29 -75
  29. package/scripts/generators/pipeline/analysis-stage.js +97 -552
  30. package/scripts/generators/pipeline/generate-stage.d.ts +3 -2
  31. package/scripts/generators/pipeline/generate-stage.js +6 -3
  32. package/scripts/generators/propositions-content.d.ts +2 -2
  33. package/scripts/generators/propositions-content.js +2 -12
  34. package/scripts/generators/strategies/article-strategy.js +1 -0
  35. package/scripts/generators/strategies/breaking-news-strategy.js +1 -1
  36. package/scripts/generators/strategies/committee-reports-strategy.js +1 -1
  37. package/scripts/generators/strategies/month-ahead-strategy.js +2 -2
  38. package/scripts/generators/strategies/monthly-review-strategy.js +1 -1
  39. package/scripts/generators/strategies/motions-strategy.js +1 -1
  40. package/scripts/generators/strategies/propositions-strategy.js +1 -1
  41. package/scripts/generators/strategies/week-ahead-strategy.js +1 -1
  42. package/scripts/generators/strategies/weekly-review-strategy.js +1 -1
  43. package/scripts/generators/week-ahead-content.d.ts +1 -1
  44. package/scripts/generators/week-ahead-content.js +2 -9
  45. package/scripts/templates/article-template.d.ts +20 -1
  46. package/scripts/templates/article-template.js +318 -40
  47. package/scripts/templates/section-builders.d.ts +62 -0
  48. package/scripts/templates/section-builders.js +122 -2
  49. package/scripts/types/generation.d.ts +24 -0
  50. package/scripts/types/index.d.ts +4 -4
  51. package/scripts/types/parliament.d.ts +40 -0
  52. package/scripts/types/political-risk.d.ts +65 -0
  53. package/scripts/types/political-threats.d.ts +41 -0
  54. package/scripts/types/quality.d.ts +35 -0
  55. package/scripts/types/significance.d.ts +30 -0
  56. package/scripts/utils/article-quality-scorer.d.ts +20 -1
  57. package/scripts/utils/article-quality-scorer.js +159 -6
  58. package/scripts/utils/content-validator.d.ts +27 -0
  59. package/scripts/utils/content-validator.js +163 -0
  60. package/scripts/utils/file-utils.d.ts +16 -1
  61. package/scripts/utils/file-utils.js +116 -0
  62. package/scripts/utils/intelligence-analysis.d.ts +51 -1
  63. package/scripts/utils/intelligence-analysis.js +257 -0
  64. package/scripts/utils/political-risk-assessment.d.ts +51 -0
  65. package/scripts/utils/political-risk-assessment.js +136 -0
  66. package/scripts/utils/political-threat-assessment.d.ts +38 -1
  67. package/scripts/utils/political-threat-assessment.js +142 -0
  68. package/scripts/utils/retrofit-analysis-links.d.ts +14 -0
  69. package/scripts/utils/retrofit-analysis-links.js +265 -0
  70. package/scripts/utils/significance-scoring.d.ts +44 -1
  71. package/scripts/utils/significance-scoring.js +104 -0
  72. package/scripts/generators/pipeline/analysis-classification.d.ts +0 -49
  73. package/scripts/generators/pipeline/analysis-classification.js +0 -399
  74. package/scripts/generators/pipeline/analysis-existing.d.ts +0 -67
  75. package/scripts/generators/pipeline/analysis-existing.js +0 -599
  76. package/scripts/generators/pipeline/analysis-helpers.d.ts +0 -140
  77. package/scripts/generators/pipeline/analysis-helpers.js +0 -266
  78. package/scripts/generators/pipeline/analysis-risk.d.ts +0 -49
  79. package/scripts/generators/pipeline/analysis-risk.js +0 -417
  80. package/scripts/generators/pipeline/analysis-threats.d.ts +0 -41
  81. package/scripts/generators/pipeline/analysis-threats.js +0 -142
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "euparliamentmonitor",
3
- "version": "0.8.23",
3
+ "version": "0.8.24",
4
4
  "type": "module",
5
5
  "description": "European Parliament Intelligence Platform - Monitor political activity with systematic transparency",
6
6
  "main": "scripts/index.js",
@@ -65,6 +65,7 @@
65
65
  "generate-news-indexes": "node scripts/generators/news-indexes.js",
66
66
  "generate-sitemap": "node scripts/generators/sitemap.js",
67
67
  "fix-articles": "npx tsx src/utils/fix-articles.ts",
68
+ "retrofit-analysis": "npx tsx src/utils/retrofit-analysis-links.ts",
68
69
  "validate-articles": "npx tsx src/utils/validate-articles.ts",
69
70
  "validate-articles:strict": "npx tsx src/utils/validate-articles.ts --strict",
70
71
  "validate-ep-api": "npx tsx src/utils/validate-ep-api.ts",
@@ -138,7 +139,7 @@
138
139
  "@eslint/js": "10.0.1",
139
140
  "@playwright/test": "1.59.1",
140
141
  "@types/d3": "7.4.3",
141
- "@types/node": "25.5.2",
142
+ "@types/node": "25.6.0",
142
143
  "@types/papaparse": "5.5.2",
143
144
  "@typescript-eslint/eslint-plugin": "8.58.1",
144
145
  "@typescript-eslint/parser": "8.58.1",
@@ -155,10 +156,10 @@
155
156
  "happy-dom": "20.8.9",
156
157
  "htmlhint": "1.9.2",
157
158
  "husky": "9.1.7",
158
- "jscpd": "4.0.8",
159
+ "jscpd": "4.0.9",
159
160
  "lint-staged": "16.4.0",
160
161
  "papaparse": "5.5.3",
161
- "prettier": "3.8.1",
162
+ "prettier": "3.8.2",
162
163
  "ts-api-utils": "2.5.0",
163
164
  "tsx": "4.21.0",
164
165
  "typedoc": "0.28.18",
@@ -22,6 +22,20 @@ export declare const READ_TIME_LABELS: LanguageMap<(time: number) => string>;
22
22
  export declare const BACK_TO_NEWS_LABELS: LanguageMap;
23
23
  /** Article navigation aria-label per language */
24
24
  export declare const ARTICLE_NAV_LABELS: LanguageMap;
25
+ /** "Related Articles" heading for cross-article navigation */
26
+ export declare const RELATED_ARTICLES_NAV_LABELS: LanguageMap;
27
+ /** Breadcrumb "Home" label per language */
28
+ export declare const BREADCRUMB_HOME_LABELS: LanguageMap;
29
+ /** Breadcrumb "News" label per language */
30
+ export declare const BREADCRUMB_NEWS_LABELS: LanguageMap;
31
+ /** Localized headings for buildTimelineSection */
32
+ export declare const TIMELINE_HEADINGS: LanguageMap;
33
+ /** Localized "Before" column header for buildComparisonTable */
34
+ export declare const COMPARISON_BEFORE_LABELS: LanguageMap;
35
+ /** Localized "After" column header for buildComparisonTable */
36
+ export declare const COMPARISON_AFTER_LABELS: LanguageMap;
37
+ /** Localized headings for buildKeyFiguresBar */
38
+ export declare const KEY_FIGURES_HEADINGS: LanguageMap;
25
39
  /** AI section interface for structured localized content */
26
40
  export interface AISection {
27
41
  heading: string;
@@ -147,4 +161,10 @@ export declare const COALITION_DYNAMICS_LABELS: LanguageMap;
147
161
  export declare const VOTING_PATTERNS_LABELS: LanguageMap;
148
162
  /** Localized "Cross-Session Intelligence" labels */
149
163
  export declare const CROSS_SESSION_INTELLIGENCE_LABELS: LanguageMap;
164
+ /** Localized "Synthesis Summary" labels */
165
+ export declare const SYNTHESIS_SUMMARY_LABELS: LanguageMap;
166
+ /** Localized "Document Analysis" labels */
167
+ export declare const DOCUMENT_ANALYSIS_LABELS: LanguageMap;
168
+ /** Localized "Significance Scoring" labels */
169
+ export declare const SIGNIFICANCE_SCORING_LABELS: LanguageMap;
150
170
  //# sourceMappingURL=language-ui.d.ts.map
@@ -324,6 +324,126 @@ export const ARTICLE_NAV_LABELS = {
324
324
  ko: '기사 탐색',
325
325
  zh: '文章导航',
326
326
  };
327
+ /** "Related Articles" heading for cross-article navigation */
328
+ export const RELATED_ARTICLES_NAV_LABELS = {
329
+ en: 'Related Articles',
330
+ sv: 'Relaterade artiklar',
331
+ da: 'Relaterede artikler',
332
+ no: 'Relaterte artikler',
333
+ fi: 'Aiheeseen liittyvät artikkelit',
334
+ de: 'Verwandte Artikel',
335
+ fr: 'Articles connexes',
336
+ es: 'Artículos relacionados',
337
+ nl: 'Gerelateerde artikelen',
338
+ ar: 'مقالات ذات صلة',
339
+ he: 'מאמרים קשורים',
340
+ ja: '関連記事',
341
+ ko: '관련 기사',
342
+ zh: '相关文章',
343
+ };
344
+ /** Breadcrumb "Home" label per language */
345
+ export const BREADCRUMB_HOME_LABELS = {
346
+ en: 'Home',
347
+ sv: 'Hem',
348
+ da: 'Hjem',
349
+ no: 'Hjem',
350
+ fi: 'Etusivu',
351
+ de: 'Startseite',
352
+ fr: 'Accueil',
353
+ es: 'Inicio',
354
+ nl: 'Home',
355
+ ar: 'الرئيسية',
356
+ he: 'דף הבית',
357
+ ja: 'ホーム',
358
+ ko: '홈',
359
+ zh: '首页',
360
+ };
361
+ /** Breadcrumb "News" label per language */
362
+ export const BREADCRUMB_NEWS_LABELS = {
363
+ en: 'News',
364
+ sv: 'Nyheter',
365
+ da: 'Nyheder',
366
+ no: 'Nyheter',
367
+ fi: 'Uutiset',
368
+ de: 'Nachrichten',
369
+ fr: 'Actualités',
370
+ es: 'Noticias',
371
+ nl: 'Nieuws',
372
+ ar: 'الأخبار',
373
+ he: 'חדשות',
374
+ ja: 'ニュース',
375
+ ko: '뉴스',
376
+ zh: '新闻',
377
+ };
378
+ /* ─── Section Builder Localized Strings ──────────────────────────── */
379
+ /** Localized headings for buildTimelineSection */
380
+ export const TIMELINE_HEADINGS = {
381
+ en: 'Legislative Timeline',
382
+ sv: 'Lagstiftande tidslinje',
383
+ da: 'Lovgivningstidslinje',
384
+ no: 'Lovgivningstidslinje',
385
+ fi: 'Lainsäädäntöaikajana',
386
+ de: 'Legislativer Zeitplan',
387
+ fr: 'Calendrier législatif',
388
+ es: 'Cronograma legislativo',
389
+ nl: 'Wetgevend tijdpad',
390
+ ar: 'الجدول الزمني التشريعي',
391
+ he: 'ציר הזמן החקיקתי',
392
+ ja: '立法タイムライン',
393
+ ko: '입법 일정',
394
+ zh: '立法时间轴',
395
+ };
396
+ /** Localized "Before" column header for buildComparisonTable */
397
+ export const COMPARISON_BEFORE_LABELS = {
398
+ en: 'Before',
399
+ sv: 'Före',
400
+ da: 'Før',
401
+ no: 'Før',
402
+ fi: 'Ennen',
403
+ de: 'Vorher',
404
+ fr: 'Avant',
405
+ es: 'Antes',
406
+ nl: 'Vóór',
407
+ ar: 'قبل',
408
+ he: 'לפני',
409
+ ja: '前',
410
+ ko: '이전',
411
+ zh: '之前',
412
+ };
413
+ /** Localized "After" column header for buildComparisonTable */
414
+ export const COMPARISON_AFTER_LABELS = {
415
+ en: 'After',
416
+ sv: 'Efter',
417
+ da: 'Efter',
418
+ no: 'Etter',
419
+ fi: 'Jälkeen',
420
+ de: 'Nachher',
421
+ fr: 'Après',
422
+ es: 'Después',
423
+ nl: 'Na',
424
+ ar: 'بعد',
425
+ he: 'אחרי',
426
+ ja: '後',
427
+ ko: '이후',
428
+ zh: '之后',
429
+ };
430
+ /** Localized headings for buildKeyFiguresBar */
431
+ export const KEY_FIGURES_HEADINGS = {
432
+ en: 'Key Figures',
433
+ sv: 'Nyckeltal',
434
+ da: 'Nøgletal',
435
+ no: 'Nøkkeltall',
436
+ fi: 'Avainluvut',
437
+ de: 'Schlüsselzahlen',
438
+ fr: 'Chiffres clés',
439
+ es: 'Cifras clave',
440
+ nl: 'Kerngetallen',
441
+ ar: 'الأرقام الرئيسية',
442
+ he: 'נתונים מרכזיים',
443
+ ja: '主要数値',
444
+ ko: '주요 수치',
445
+ zh: '关键数据',
446
+ };
327
447
  /** AI section localized content for all 14 languages */
328
448
  export const AI_SECTION_CONTENT = {
329
449
  en: {
@@ -1473,4 +1593,55 @@ export const CROSS_SESSION_INTELLIGENCE_LABELS = {
1473
1593
  ko: '세션 간 인텔리전스',
1474
1594
  zh: '跨会期情报分析',
1475
1595
  };
1596
+ /** Localized "Synthesis Summary" labels */
1597
+ export const SYNTHESIS_SUMMARY_LABELS = {
1598
+ en: 'Synthesis Summary',
1599
+ sv: 'Syntessammanfattning',
1600
+ da: 'Synteseoversigt',
1601
+ no: 'Synteseoppsummering',
1602
+ fi: 'Synteesiyhteenveto',
1603
+ de: 'Synthese-Zusammenfassung',
1604
+ fr: 'Synthèse récapitulative',
1605
+ es: 'Resumen de síntesis',
1606
+ nl: 'Syntheseoverzicht',
1607
+ ar: 'ملخص تركيبي',
1608
+ he: 'סיכום סינתזה',
1609
+ ja: '総合要約',
1610
+ ko: '종합 요약',
1611
+ zh: '综合摘要',
1612
+ };
1613
+ /** Localized "Document Analysis" labels */
1614
+ export const DOCUMENT_ANALYSIS_LABELS = {
1615
+ en: 'Document Analysis',
1616
+ sv: 'Dokumentanalys',
1617
+ da: 'Dokumentanalyse',
1618
+ no: 'Dokumentanalyse',
1619
+ fi: 'Asiakirja-analyysi',
1620
+ de: 'Dokumentenanalyse',
1621
+ fr: 'Analyse documentaire',
1622
+ es: 'Análisis documental',
1623
+ nl: 'Documentanalyse',
1624
+ ar: 'تحليل الوثائق',
1625
+ he: 'ניתוח מסמכים',
1626
+ ja: '文書分析',
1627
+ ko: '문서 분석',
1628
+ zh: '文件分析',
1629
+ };
1630
+ /** Localized "Significance Scoring" labels */
1631
+ export const SIGNIFICANCE_SCORING_LABELS = {
1632
+ en: 'Significance Scoring',
1633
+ sv: 'Betydelsepoängsättning',
1634
+ da: 'Betydningsvurdering',
1635
+ no: 'Betydningsvurdering',
1636
+ fi: 'Merkittävyyspisteytys',
1637
+ de: 'Bedeutungsbewertung',
1638
+ fr: 'Évaluation de signification',
1639
+ es: 'Puntuación de significancia',
1640
+ nl: 'Significantiebeoordeling',
1641
+ ar: 'تقييم الأهمية',
1642
+ he: 'דירוג חשיבות',
1643
+ ja: '重要度スコアリング',
1644
+ ko: '중요도 평가',
1645
+ zh: '重要性评分',
1646
+ };
1476
1647
  //# sourceMappingURL=language-ui.js.map
@@ -8,7 +8,7 @@
8
8
  * - **language-articles** — Article-type title generators and body-text strings
9
9
  */
10
10
  export { ALL_LANGUAGES, LANGUAGE_PRESETS, LANGUAGE_FLAGS, LANGUAGE_NAMES, getLocalizedString, isSupportedLanguage, getTextDirection, } from './language-core.js';
11
- export { PAGE_TITLES, PAGE_DESCRIPTIONS, SECTION_HEADINGS, NO_ARTICLES_MESSAGES, SKIP_LINK_TEXTS, ARTICLE_TYPE_LABELS, READ_TIME_LABELS, BACK_TO_NEWS_LABELS, ARTICLE_NAV_LABELS, AI_SECTION_CONTENT, FILTER_LABELS, SOURCES_HEADING_LABELS, HEADER_SUBTITLE_LABELS, THEME_TOGGLE_LABELS, FOOTER_ABOUT_HEADING_LABELS, FOOTER_ABOUT_TEXT_LABELS, FOOTER_QUICK_LINKS_LABELS, FOOTER_BUILT_BY_LABELS, FOOTER_LANGUAGES_LABELS, TOC_ARIA_LABELS, RELATED_ANALYSIS_LABELS, ANALYSIS_TRANSPARENCY_LABELS, ANALYSIS_SUMMARY_LABELS, METHODOLOGY_LABELS, TRANSPARENCY_DISCLOSURE_LABELS, CLASSIFICATION_ANALYSIS_LABELS, THREAT_ASSESSMENT_LABELS, RISK_SCORING_LABELS, DEEP_ANALYSIS_LABELS, VIEW_SOURCE_LABELS, OPEN_SOURCE_NOTE_LABELS, AI_ANALYSIS_GUIDE_LABELS, SWOT_FRAMEWORK_LABELS, RISK_METHODOLOGY_LABELS, THREAT_FRAMEWORK_LABELS, CLASSIFICATION_GUIDE_LABELS, STYLE_GUIDE_LABELS, SIGNIFICANCE_CLASSIFICATION_LABELS, ACTOR_MAPPING_LABELS, FORCES_ANALYSIS_LABELS, IMPACT_MATRIX_LABELS, POLITICAL_THREAT_LANDSCAPE_LABELS, ACTOR_THREAT_PROFILING_LABELS, CONSEQUENCE_TREES_LABELS, LEGISLATIVE_DISRUPTION_LABELS, RISK_MATRIX_LABELS, QUANTITATIVE_SWOT_LABELS, POLITICAL_CAPITAL_RISK_LABELS, LEGISLATIVE_VELOCITY_RISK_LABELS, AGENT_RISK_WORKFLOW_LABELS, STAKEHOLDER_IMPACT_LABELS, COALITION_DYNAMICS_LABELS, VOTING_PATTERNS_LABELS, CROSS_SESSION_INTELLIGENCE_LABELS, } from './language-ui.js';
11
+ export { PAGE_TITLES, PAGE_DESCRIPTIONS, SECTION_HEADINGS, NO_ARTICLES_MESSAGES, SKIP_LINK_TEXTS, ARTICLE_TYPE_LABELS, READ_TIME_LABELS, BACK_TO_NEWS_LABELS, ARTICLE_NAV_LABELS, RELATED_ARTICLES_NAV_LABELS, BREADCRUMB_HOME_LABELS, BREADCRUMB_NEWS_LABELS, TIMELINE_HEADINGS, COMPARISON_BEFORE_LABELS, COMPARISON_AFTER_LABELS, KEY_FIGURES_HEADINGS, AI_SECTION_CONTENT, FILTER_LABELS, SOURCES_HEADING_LABELS, HEADER_SUBTITLE_LABELS, THEME_TOGGLE_LABELS, FOOTER_ABOUT_HEADING_LABELS, FOOTER_ABOUT_TEXT_LABELS, FOOTER_QUICK_LINKS_LABELS, FOOTER_BUILT_BY_LABELS, FOOTER_LANGUAGES_LABELS, TOC_ARIA_LABELS, RELATED_ANALYSIS_LABELS, ANALYSIS_TRANSPARENCY_LABELS, ANALYSIS_SUMMARY_LABELS, METHODOLOGY_LABELS, TRANSPARENCY_DISCLOSURE_LABELS, CLASSIFICATION_ANALYSIS_LABELS, THREAT_ASSESSMENT_LABELS, RISK_SCORING_LABELS, DEEP_ANALYSIS_LABELS, VIEW_SOURCE_LABELS, OPEN_SOURCE_NOTE_LABELS, AI_ANALYSIS_GUIDE_LABELS, SWOT_FRAMEWORK_LABELS, RISK_METHODOLOGY_LABELS, THREAT_FRAMEWORK_LABELS, CLASSIFICATION_GUIDE_LABELS, STYLE_GUIDE_LABELS, SIGNIFICANCE_CLASSIFICATION_LABELS, ACTOR_MAPPING_LABELS, FORCES_ANALYSIS_LABELS, IMPACT_MATRIX_LABELS, POLITICAL_THREAT_LANDSCAPE_LABELS, ACTOR_THREAT_PROFILING_LABELS, CONSEQUENCE_TREES_LABELS, LEGISLATIVE_DISRUPTION_LABELS, RISK_MATRIX_LABELS, QUANTITATIVE_SWOT_LABELS, POLITICAL_CAPITAL_RISK_LABELS, LEGISLATIVE_VELOCITY_RISK_LABELS, AGENT_RISK_WORKFLOW_LABELS, STAKEHOLDER_IMPACT_LABELS, COALITION_DYNAMICS_LABELS, VOTING_PATTERNS_LABELS, CROSS_SESSION_INTELLIGENCE_LABELS, SYNTHESIS_SUMMARY_LABELS, DOCUMENT_ANALYSIS_LABELS, SIGNIFICANCE_SCORING_LABELS, } from './language-ui.js';
12
12
  export type { AISection, RelationshipLabels, RelatedAnalysisStrings } from './language-ui.js';
13
13
  export { WEEK_AHEAD_TITLES, MONTH_AHEAD_TITLES, WEEKLY_REVIEW_TITLES, MONTHLY_REVIEW_TITLES, MOTIONS_TITLES, BREAKING_NEWS_TITLES, COMMITTEE_REPORTS_TITLES, PROPOSITIONS_TITLES, PROPOSITIONS_STRINGS, EDITORIAL_STRINGS, MOTIONS_STRINGS, WEEK_AHEAD_STRINGS, WEEK_AHEAD_STAKEHOLDER_STRINGS, BREAKING_STRINGS, DEEP_ANALYSIS_STRINGS, COMMITTEE_ANALYSIS_CONTENT_STRINGS, SWOT_STRINGS, DASHBOARD_STRINGS, SWOT_BUILDER_STRINGS, DASHBOARD_BUILDER_STRINGS, MULTI_DIMENSIONAL_SWOT_STRINGS, LOCALIZED_KEYWORDS, MONTH_IN_REVIEW_STRINGS, ANALYSIS_QUALITY_LABELS, ANALYSIS_INSIGHTS_HEADING, } from './language-articles.js';
14
14
  //# sourceMappingURL=languages.d.ts.map
@@ -10,6 +10,6 @@
10
10
  * - **language-articles** — Article-type title generators and body-text strings
11
11
  */
12
12
  export { ALL_LANGUAGES, LANGUAGE_PRESETS, LANGUAGE_FLAGS, LANGUAGE_NAMES, getLocalizedString, isSupportedLanguage, getTextDirection, } from './language-core.js';
13
- export { PAGE_TITLES, PAGE_DESCRIPTIONS, SECTION_HEADINGS, NO_ARTICLES_MESSAGES, SKIP_LINK_TEXTS, ARTICLE_TYPE_LABELS, READ_TIME_LABELS, BACK_TO_NEWS_LABELS, ARTICLE_NAV_LABELS, AI_SECTION_CONTENT, FILTER_LABELS, SOURCES_HEADING_LABELS, HEADER_SUBTITLE_LABELS, THEME_TOGGLE_LABELS, FOOTER_ABOUT_HEADING_LABELS, FOOTER_ABOUT_TEXT_LABELS, FOOTER_QUICK_LINKS_LABELS, FOOTER_BUILT_BY_LABELS, FOOTER_LANGUAGES_LABELS, TOC_ARIA_LABELS, RELATED_ANALYSIS_LABELS, ANALYSIS_TRANSPARENCY_LABELS, ANALYSIS_SUMMARY_LABELS, METHODOLOGY_LABELS, TRANSPARENCY_DISCLOSURE_LABELS, CLASSIFICATION_ANALYSIS_LABELS, THREAT_ASSESSMENT_LABELS, RISK_SCORING_LABELS, DEEP_ANALYSIS_LABELS, VIEW_SOURCE_LABELS, OPEN_SOURCE_NOTE_LABELS, AI_ANALYSIS_GUIDE_LABELS, SWOT_FRAMEWORK_LABELS, RISK_METHODOLOGY_LABELS, THREAT_FRAMEWORK_LABELS, CLASSIFICATION_GUIDE_LABELS, STYLE_GUIDE_LABELS, SIGNIFICANCE_CLASSIFICATION_LABELS, ACTOR_MAPPING_LABELS, FORCES_ANALYSIS_LABELS, IMPACT_MATRIX_LABELS, POLITICAL_THREAT_LANDSCAPE_LABELS, ACTOR_THREAT_PROFILING_LABELS, CONSEQUENCE_TREES_LABELS, LEGISLATIVE_DISRUPTION_LABELS, RISK_MATRIX_LABELS, QUANTITATIVE_SWOT_LABELS, POLITICAL_CAPITAL_RISK_LABELS, LEGISLATIVE_VELOCITY_RISK_LABELS, AGENT_RISK_WORKFLOW_LABELS, STAKEHOLDER_IMPACT_LABELS, COALITION_DYNAMICS_LABELS, VOTING_PATTERNS_LABELS, CROSS_SESSION_INTELLIGENCE_LABELS, } from './language-ui.js';
13
+ export { PAGE_TITLES, PAGE_DESCRIPTIONS, SECTION_HEADINGS, NO_ARTICLES_MESSAGES, SKIP_LINK_TEXTS, ARTICLE_TYPE_LABELS, READ_TIME_LABELS, BACK_TO_NEWS_LABELS, ARTICLE_NAV_LABELS, RELATED_ARTICLES_NAV_LABELS, BREADCRUMB_HOME_LABELS, BREADCRUMB_NEWS_LABELS, TIMELINE_HEADINGS, COMPARISON_BEFORE_LABELS, COMPARISON_AFTER_LABELS, KEY_FIGURES_HEADINGS, AI_SECTION_CONTENT, FILTER_LABELS, SOURCES_HEADING_LABELS, HEADER_SUBTITLE_LABELS, THEME_TOGGLE_LABELS, FOOTER_ABOUT_HEADING_LABELS, FOOTER_ABOUT_TEXT_LABELS, FOOTER_QUICK_LINKS_LABELS, FOOTER_BUILT_BY_LABELS, FOOTER_LANGUAGES_LABELS, TOC_ARIA_LABELS, RELATED_ANALYSIS_LABELS, ANALYSIS_TRANSPARENCY_LABELS, ANALYSIS_SUMMARY_LABELS, METHODOLOGY_LABELS, TRANSPARENCY_DISCLOSURE_LABELS, CLASSIFICATION_ANALYSIS_LABELS, THREAT_ASSESSMENT_LABELS, RISK_SCORING_LABELS, DEEP_ANALYSIS_LABELS, VIEW_SOURCE_LABELS, OPEN_SOURCE_NOTE_LABELS, AI_ANALYSIS_GUIDE_LABELS, SWOT_FRAMEWORK_LABELS, RISK_METHODOLOGY_LABELS, THREAT_FRAMEWORK_LABELS, CLASSIFICATION_GUIDE_LABELS, STYLE_GUIDE_LABELS, SIGNIFICANCE_CLASSIFICATION_LABELS, ACTOR_MAPPING_LABELS, FORCES_ANALYSIS_LABELS, IMPACT_MATRIX_LABELS, POLITICAL_THREAT_LANDSCAPE_LABELS, ACTOR_THREAT_PROFILING_LABELS, CONSEQUENCE_TREES_LABELS, LEGISLATIVE_DISRUPTION_LABELS, RISK_MATRIX_LABELS, QUANTITATIVE_SWOT_LABELS, POLITICAL_CAPITAL_RISK_LABELS, LEGISLATIVE_VELOCITY_RISK_LABELS, AGENT_RISK_WORKFLOW_LABELS, STAKEHOLDER_IMPACT_LABELS, COALITION_DYNAMICS_LABELS, VOTING_PATTERNS_LABELS, CROSS_SESSION_INTELLIGENCE_LABELS, SYNTHESIS_SUMMARY_LABELS, DOCUMENT_ANALYSIS_LABELS, SIGNIFICANCE_SCORING_LABELS, } from './language-ui.js';
14
14
  export { WEEK_AHEAD_TITLES, MONTH_AHEAD_TITLES, WEEKLY_REVIEW_TITLES, MONTHLY_REVIEW_TITLES, MOTIONS_TITLES, BREAKING_NEWS_TITLES, COMMITTEE_REPORTS_TITLES, PROPOSITIONS_TITLES, PROPOSITIONS_STRINGS, EDITORIAL_STRINGS, MOTIONS_STRINGS, WEEK_AHEAD_STRINGS, WEEK_AHEAD_STAKEHOLDER_STRINGS, BREAKING_STRINGS, DEEP_ANALYSIS_STRINGS, COMMITTEE_ANALYSIS_CONTENT_STRINGS, SWOT_STRINGS, DASHBOARD_STRINGS, SWOT_BUILDER_STRINGS, DASHBOARD_BUILDER_STRINGS, MULTI_DIMENSIONAL_SWOT_STRINGS, LOCALIZED_KEYWORDS, MONTH_IN_REVIEW_STRINGS, ANALYSIS_QUALITY_LABELS, ANALYSIS_INSIGHTS_HEADING, } from './language-articles.js';
15
15
  //# sourceMappingURL=languages.js.map
@@ -1,274 +1,8 @@
1
1
  /**
2
2
  * @module Generators/AnalysisBuilders
3
- * @description Pure functions that construct {@link DeepAnalysis} objects from
4
- * strategy-specific article data. Each builder extracts the "5W + Impact"
5
- * framework fields from raw parliamentary data so the HTML renderer can
6
- * produce a uniform deep-analysis section across all article types.
7
- *
8
- * These mappers never fetch data or produce side effects — they only transform.
3
+ * @description Barrel re-export the implementation has been refactored into
4
+ * bounded-context modules under {@link module:Generators/Builders}.
5
+ * All public symbols remain accessible at this path for backward compatibility.
9
6
  */
10
- import type { DeepAnalysis, VotingRecord, VotingPattern, VotingAnomaly, MotionsQuestion, WeekAheadData, DateRange, CommitteeData, LanguageCode, BreakingNewsFeedData, SwotAnalysis, DashboardConfig, IntelligenceMindmap, MultiDimensionalSwot } from '../types/index.js';
11
- import type { PipelineData } from './propositions-content.js';
12
- import { AI_MARKER } from '../constants/analysis-constants.js';
13
- /**
14
- * Re-export AI_MARKER from the shared constants module so existing consumers
15
- * (tests, other generators) can continue importing from this file without
16
- * breaking changes. The canonical definition lives in
17
- * `src/constants/analysis-constants.ts` to avoid circular ESM dependencies.
18
- */
19
- export { AI_MARKER };
20
- /**
21
- * Build deep analysis for voting-based articles (motions, weekly/monthly review).
22
- *
23
- * @param dateFrom - Period start date
24
- * @param dateTo - Period end date
25
- * @param records - Voting records
26
- * @param patterns - Voting patterns
27
- * @param anomalies - Anomalies detected
28
- * @param questions - Parliamentary questions
29
- * @returns Deep analysis object
30
- */
31
- export declare function buildVotingAnalysis(dateFrom: string, dateTo: string, records: readonly VotingRecord[], patterns: readonly VotingPattern[], anomalies: readonly VotingAnomaly[], questions: readonly MotionsQuestion[]): DeepAnalysis;
32
- /**
33
- * Build deep analysis for week-ahead/month-ahead articles.
34
- *
35
- * @param weekData - Aggregated week/month data
36
- * @param dateRange - Date range for the preview period
37
- * @param label - "week" or "month"
38
- * @returns Deep analysis object
39
- */
40
- export declare function buildProspectiveAnalysis(weekData: WeekAheadData, dateRange: DateRange, label: string): DeepAnalysis;
41
- /**
42
- * Build deep analysis for breaking news articles.
43
- *
44
- * @param date - Publication date
45
- * @param feedData - EP feed data
46
- * @param anomalyRaw - Raw anomaly text
47
- * @param coalitionRaw - Raw coalition text
48
- * @param lang - Target display language (default: 'en')
49
- * @returns Deep analysis object
50
- */
51
- export declare function buildBreakingAnalysis(date: string, feedData: BreakingNewsFeedData | undefined, anomalyRaw: string, coalitionRaw: string, lang?: string): DeepAnalysis;
52
- /**
53
- * Build deep analysis for propositions articles.
54
- *
55
- * @param proposalsHtml - Proposals HTML (used to detect content presence)
56
- * @param pipelineData - Pipeline metrics
57
- * @param date - Publication date
58
- * @param lang - Target display language (default: 'en')
59
- * @param adoptedTextsHtml - Adopted texts HTML (also used to detect content presence)
60
- * @returns Deep analysis object
61
- */
62
- export declare function buildPropositionsAnalysis(proposalsHtml: string, pipelineData: PipelineData | null, date: string, lang?: string, adoptedTextsHtml?: string): DeepAnalysis;
63
- /**
64
- * Build deep analysis for committee reports articles.
65
- *
66
- * @param committees - Committee data list
67
- * @param date - Publication date
68
- * @param lang - Target language code for localized content
69
- * @returns Deep analysis object, or `null` when all committee data is placeholder
70
- */
71
- export declare function buildCommitteeAnalysis(committees: readonly CommitteeData[], date: string, lang?: LanguageCode): DeepAnalysis | null;
72
- /**
73
- * Build SWOT analysis for voting-based articles (motions, weekly/monthly review).
74
- *
75
- * @param records - Voting records
76
- * @param patterns - Voting patterns
77
- * @param anomalies - Detected anomalies
78
- * @param lang - Target language code
79
- * @returns SWOT analysis data
80
- */
81
- export declare function buildVotingSwot(records: readonly VotingRecord[], patterns: readonly VotingPattern[], anomalies: readonly VotingAnomaly[], lang?: LanguageCode): SwotAnalysis;
82
- /**
83
- * Build SWOT analysis for week-ahead / month-ahead articles.
84
- *
85
- * @param weekData - Aggregated week/month data
86
- * @param _label - "week" or "month" (reserved for future localisation)
87
- * @param lang - Target language code
88
- * @returns SWOT analysis data
89
- */
90
- export declare function buildProspectiveSwot(weekData: WeekAheadData, _label: string, lang?: LanguageCode): SwotAnalysis;
91
- /**
92
- * Build SWOT analysis for breaking news articles.
93
- *
94
- * @param feedData - EP feed data
95
- * @param anomalyRaw - Raw anomaly text
96
- * @param coalitionRaw - Raw coalition text
97
- * @param lang - Target language code
98
- * @returns SWOT analysis data
99
- */
100
- export declare function buildBreakingSwot(feedData: BreakingNewsFeedData | undefined, anomalyRaw: string, coalitionRaw: string, lang?: LanguageCode): SwotAnalysis;
101
- /**
102
- * Build SWOT analysis for propositions articles.
103
- *
104
- * @param pipelineData - Pipeline metrics
105
- * @param lang - Target language code
106
- * @returns SWOT analysis data
107
- */
108
- export declare function buildPropositionsSwot(pipelineData: PipelineData | null, lang?: LanguageCode): SwotAnalysis;
109
- /**
110
- * Build SWOT analysis for committee reports articles.
111
- *
112
- * @param committees - Committee data list
113
- * @param lang - Target language code
114
- * @returns SWOT analysis data, or `null` when all committee data is placeholder
115
- */
116
- export declare function buildCommitteeSwot(committees: readonly CommitteeData[], lang?: LanguageCode): SwotAnalysis | null;
117
- /**
118
- * Build dashboard for voting-based articles (motions, weekly/monthly review).
119
- * Includes a coalition alignment radar chart and stakeholder impact scorecard.
120
- *
121
- * @param records - Voting records
122
- * @param patterns - Voting patterns
123
- * @param anomalies - Detected anomalies
124
- * @param lang - Target language code
125
- * @returns Dashboard configuration with coalition and stakeholder intelligence
126
- */
127
- export declare function buildVotingDashboard(records: readonly VotingRecord[], patterns: readonly VotingPattern[], anomalies: readonly VotingAnomaly[], lang?: LanguageCode): DashboardConfig;
128
- /**
129
- * Build dashboard for week-ahead / month-ahead articles.
130
- * Includes pipeline status bars and trend analytics panels.
131
- *
132
- * @param weekData - Aggregated week/month data
133
- * @param _label - "week" or "month" (reserved for future localisation)
134
- * @param lang - Target language code
135
- * @returns Dashboard configuration with pipeline and trend intelligence
136
- */
137
- export declare function buildProspectiveDashboard(weekData: WeekAheadData, _label: string, lang?: LanguageCode): DashboardConfig;
138
- /**
139
- * Build dashboard for breaking news articles.
140
- * Includes activity trend sparklines for cross-article analysis.
141
- *
142
- * @param feedData - EP feed data
143
- * @param lang - Target language code
144
- * @returns Dashboard configuration with trend intelligence
145
- */
146
- export declare function buildBreakingDashboard(feedData: BreakingNewsFeedData | undefined, lang?: LanguageCode): DashboardConfig;
147
- /**
148
- * Build dashboard for propositions articles.
149
- * Includes color-coded pipeline status chart and stakeholder scorecard.
150
- *
151
- * @param pipelineData - Pipeline metrics
152
- * @param lang - Target language code
153
- * @returns Dashboard configuration with pipeline intelligence panels
154
- */
155
- export declare function buildPropositionsDashboard(pipelineData: PipelineData | null, lang?: LanguageCode): DashboardConfig;
156
- /**
157
- * Build dashboard for committee reports articles.
158
- * Includes document trend analytics alongside committee activity metrics.
159
- *
160
- * @param committees - Committee data list
161
- * @param lang - Target language code
162
- * @returns Dashboard configuration, or `null` when all committee data is placeholder
163
- */
164
- export declare function buildCommitteeDashboard(committees: readonly CommitteeData[], lang?: LanguageCode): DashboardConfig | null;
165
- /**
166
- * Build intelligence mindmap for voting analysis articles.
167
- *
168
- * Constructs a policy domain intelligence map with political group nodes
169
- * as the primary domain layer, voting pattern sub-topics, and anomaly actors.
170
- *
171
- * @param records - Voting records for the period
172
- * @param patterns - Political group voting pattern data
173
- * @param anomalies - Detected voting anomalies
174
- * @param _lang - Reserved for future localisation (default: 'en')
175
- * @returns Intelligence mindmap data, or null when all data is placeholder
176
- */
177
- export declare function buildVotingMindmap(records: readonly VotingRecord[], patterns: readonly VotingPattern[], anomalies: readonly VotingAnomaly[], _lang?: LanguageCode): IntelligenceMindmap | null;
178
- /**
179
- * Build intelligence mindmap for week-ahead / month-ahead (prospective) articles.
180
- *
181
- * Maps scheduled parliamentary activities by policy domain with committee nodes
182
- * and pipeline bottleneck indicators.
183
- *
184
- * @param weekData - Aggregated week/month-ahead data
185
- * @param _lang - Reserved for future localisation (default: 'en')
186
- * @returns Intelligence mindmap data
187
- */
188
- export declare function buildProspectiveMindmap(weekData: WeekAheadData, _lang?: LanguageCode): IntelligenceMindmap;
189
- /**
190
- * Build intelligence mindmap for breaking news articles.
191
- *
192
- * Maps EP feed categories (adopted texts, events, procedures, MEP updates)
193
- * as policy domain nodes with recent activity sub-nodes.
194
- *
195
- * @param feedData - Breaking news EP feed data
196
- * @param _lang - Reserved for future localisation (default: 'en')
197
- * @returns Intelligence mindmap data
198
- */
199
- export declare function buildBreakingMindmap(feedData: BreakingNewsFeedData | undefined, _lang?: LanguageCode): IntelligenceMindmap | null;
200
- /**
201
- * Build intelligence mindmap for propositions / legislative pipeline articles.
202
- *
203
- * Maps the legislative pipeline stages as policy domain nodes with procedure
204
- * health and throughput indicators.
205
- *
206
- * @param pipelineData - Legislative pipeline metrics (null when unavailable)
207
- * @param _lang - Reserved for future localisation (default: 'en')
208
- * @returns Intelligence mindmap data
209
- */
210
- export declare function buildPropositionsMindmap(pipelineData: {
211
- healthScore: number;
212
- throughput: number;
213
- } | null, _lang?: LanguageCode): IntelligenceMindmap;
214
- /**
215
- * Build intelligence mindmap for committee reports articles.
216
- *
217
- * Maps committee activity as policy domain nodes with document output
218
- * and inter-committee relationship indicators.
219
- *
220
- * @param committees - Committee data list
221
- * @param _lang - Reserved for future localisation (default: 'en')
222
- * @returns Intelligence mindmap data, or null when all data is placeholder
223
- */
224
- export declare function buildCommitteeMindmap(committees: readonly CommitteeData[], _lang?: LanguageCode): IntelligenceMindmap | null;
225
- /**
226
- * Build multi-dimensional SWOT analysis for voting-based articles.
227
- *
228
- * Produces dimension-specific breakdowns (political, economic, social,
229
- * legal, geopolitical), temporal assessments, and stakeholder views
230
- * derived from voting records, patterns, and anomaly data.
231
- *
232
- * @param records - Voting records
233
- * @param patterns - Voting patterns
234
- * @param anomalies - Detected anomalies
235
- * @param lang - Target language code
236
- * @returns Multi-dimensional SWOT data
237
- */
238
- export declare function buildVotingMultiDimensionalSwot(records: readonly VotingRecord[], patterns: readonly VotingPattern[], anomalies: readonly VotingAnomaly[], lang?: LanguageCode): MultiDimensionalSwot;
239
- /**
240
- * Build multi-dimensional SWOT analysis for prospective (week/month-ahead) articles.
241
- *
242
- * @param weekData - Aggregated week/month data
243
- * @param _label - "week" or "month" (reserved for future localisation)
244
- * @param lang - Target language code
245
- * @returns Multi-dimensional SWOT data
246
- */
247
- export declare function buildProspectiveMultiDimensionalSwot(weekData: WeekAheadData, _label: string, lang?: LanguageCode): MultiDimensionalSwot;
248
- /**
249
- * Build multi-dimensional SWOT analysis for breaking news articles.
250
- *
251
- * @param feedData - EP feed data
252
- * @param anomalyRaw - Raw anomaly text
253
- * @param coalitionRaw - Raw coalition text
254
- * @param lang - Target language code
255
- * @returns Multi-dimensional SWOT data
256
- */
257
- export declare function buildBreakingMultiDimensionalSwot(feedData: BreakingNewsFeedData | undefined, anomalyRaw: string, coalitionRaw: string, lang?: LanguageCode): MultiDimensionalSwot;
258
- /**
259
- * Build multi-dimensional SWOT analysis for propositions articles.
260
- *
261
- * @param pipelineData - Pipeline metrics
262
- * @param lang - Target language code
263
- * @returns Multi-dimensional SWOT data
264
- */
265
- export declare function buildPropositionsMultiDimensionalSwot(pipelineData: PipelineData | null, lang?: LanguageCode): MultiDimensionalSwot;
266
- /**
267
- * Build multi-dimensional SWOT analysis for committee reports articles.
268
- *
269
- * @param committees - Committee data list
270
- * @param lang - Target language code
271
- * @returns Multi-dimensional SWOT data, or `null` when all committee data is placeholder
272
- */
273
- export declare function buildCommitteeMultiDimensionalSwot(committees: readonly CommitteeData[], lang?: LanguageCode): MultiDimensionalSwot | null;
7
+ export { AI_MARKER, buildVotingAnalysis, buildVotingSwot, buildVotingDashboard, buildVotingMindmap, buildVotingMultiDimensionalSwot, buildProspectiveAnalysis, buildProspectiveSwot, buildProspectiveDashboard, buildProspectiveMindmap, buildProspectiveMultiDimensionalSwot, buildBreakingAnalysis, buildBreakingSwot, buildBreakingDashboard, buildBreakingMindmap, buildBreakingMultiDimensionalSwot, buildPropositionsAnalysis, buildPropositionsSwot, buildPropositionsDashboard, buildPropositionsMindmap, buildPropositionsMultiDimensionalSwot, buildCommitteeAnalysis, buildCommitteeSwot, buildCommitteeDashboard, buildCommitteeMindmap, buildCommitteeMultiDimensionalSwot, } from './builders/index.js';
274
8
  //# sourceMappingURL=analysis-builders.d.ts.map