riksdagsmonitor 0.8.21 → 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.
- package/README.md +53 -1
- package/dist/lib/dashboards/party-dashboard.js +2 -1
- package/dist/lib/dashboards/party-dashboard.js.map +1 -1
- package/dist/lib/dashboards/risk-dashboard.js +2 -1
- package/dist/lib/dashboards/risk-dashboard.js.map +1 -1
- package/dist/lib/shared/index.d.ts +0 -1
- package/dist/lib/shared/index.d.ts.map +1 -1
- package/dist/lib/shared/index.js +3 -1
- package/dist/lib/shared/index.js.map +1 -1
- package/dist/lib/shared/register-globals.d.ts +1 -1
- package/dist/lib/shared/register-globals.d.ts.map +1 -1
- package/dist/lib/shared/register-globals.js +7 -1
- package/dist/lib/shared/register-globals.js.map +1 -1
- package/package.json +54 -22
- package/dist/scripts/analysis-reader.d.ts +0 -241
- package/dist/scripts/analysis-reader.d.ts.map +0 -1
- package/dist/scripts/analysis-reader.js +0 -495
- package/dist/scripts/analysis-reader.js.map +0 -1
- package/dist/scripts/article-quality-enhancer.d.ts +0 -148
- package/dist/scripts/article-quality-enhancer.d.ts.map +0 -1
- package/dist/scripts/article-quality-enhancer.js +0 -430
- package/dist/scripts/article-quality-enhancer.js.map +0 -1
- package/dist/scripts/article-template/constants.d.ts +0 -104
- package/dist/scripts/article-template/constants.d.ts.map +0 -1
- package/dist/scripts/article-template/constants.js +0 -225
- package/dist/scripts/article-template/constants.js.map +0 -1
- package/dist/scripts/article-template/helpers.d.ts +0 -83
- package/dist/scripts/article-template/helpers.d.ts.map +0 -1
- package/dist/scripts/article-template/helpers.js +0 -236
- package/dist/scripts/article-template/helpers.js.map +0 -1
- package/dist/scripts/article-template/index.d.ts +0 -39
- package/dist/scripts/article-template/index.d.ts.map +0 -1
- package/dist/scripts/article-template/index.js +0 -37
- package/dist/scripts/article-template/index.js.map +0 -1
- package/dist/scripts/article-template/registry.d.ts +0 -64
- package/dist/scripts/article-template/registry.d.ts.map +0 -1
- package/dist/scripts/article-template/registry.js +0 -405
- package/dist/scripts/article-template/registry.js.map +0 -1
- package/dist/scripts/article-template/template.d.ts +0 -18
- package/dist/scripts/article-template/template.d.ts.map +0 -1
- package/dist/scripts/article-template/template.js +0 -359
- package/dist/scripts/article-template/template.js.map +0 -1
- package/dist/scripts/article-template/types.d.ts +0 -90
- package/dist/scripts/article-template/types.d.ts.map +0 -1
- package/dist/scripts/article-template/types.js +0 -96
- package/dist/scripts/article-template/types.js.map +0 -1
- package/dist/scripts/article-template.d.ts +0 -18
- package/dist/scripts/article-template.d.ts.map +0 -1
- package/dist/scripts/article-template.js +0 -18
- package/dist/scripts/article-template.js.map +0 -1
- package/dist/scripts/catalog-downloaded-data.d.ts +0 -66
- package/dist/scripts/catalog-downloaded-data.d.ts.map +0 -1
- package/dist/scripts/catalog-downloaded-data.js +0 -239
- package/dist/scripts/catalog-downloaded-data.js.map +0 -1
- package/dist/scripts/check-cia-schema-updates.d.ts +0 -186
- package/dist/scripts/check-cia-schema-updates.d.ts.map +0 -1
- package/dist/scripts/check-cia-schema-updates.js +0 -363
- package/dist/scripts/check-cia-schema-updates.js.map +0 -1
- package/dist/scripts/data-transformers/calendar.d.ts +0 -16
- package/dist/scripts/data-transformers/calendar.d.ts.map +0 -1
- package/dist/scripts/data-transformers/calendar.js +0 -137
- package/dist/scripts/data-transformers/calendar.js.map +0 -1
- package/dist/scripts/data-transformers/constants/committee-names.d.ts +0 -15
- package/dist/scripts/data-transformers/constants/committee-names.d.ts.map +0 -1
- package/dist/scripts/data-transformers/constants/committee-names.js +0 -30
- package/dist/scripts/data-transformers/constants/committee-names.js.map +0 -1
- package/dist/scripts/data-transformers/constants/content-labels-part1.d.ts +0 -11
- package/dist/scripts/data-transformers/constants/content-labels-part1.d.ts.map +0 -1
- package/dist/scripts/data-transformers/constants/content-labels-part1.js +0 -900
- package/dist/scripts/data-transformers/constants/content-labels-part1.js.map +0 -1
- package/dist/scripts/data-transformers/constants/content-labels-part2.d.ts +0 -11
- package/dist/scripts/data-transformers/constants/content-labels-part2.d.ts.map +0 -1
- package/dist/scripts/data-transformers/constants/content-labels-part2.js +0 -900
- package/dist/scripts/data-transformers/constants/content-labels-part2.js.map +0 -1
- package/dist/scripts/data-transformers/constants/content-labels.d.ts +0 -13
- package/dist/scripts/data-transformers/constants/content-labels.d.ts.map +0 -1
- package/dist/scripts/data-transformers/constants/content-labels.js +0 -18
- package/dist/scripts/data-transformers/constants/content-labels.js.map +0 -1
- package/dist/scripts/data-transformers/constants/index.d.ts +0 -15
- package/dist/scripts/data-transformers/constants/index.d.ts.map +0 -1
- package/dist/scripts/data-transformers/constants/index.js +0 -15
- package/dist/scripts/data-transformers/constants/index.js.map +0 -1
- package/dist/scripts/data-transformers/constants/locale-map.d.ts +0 -13
- package/dist/scripts/data-transformers/constants/locale-map.d.ts.map +0 -1
- package/dist/scripts/data-transformers/constants/locale-map.js +0 -17
- package/dist/scripts/data-transformers/constants/locale-map.js.map +0 -1
- package/dist/scripts/data-transformers/constants.d.ts +0 -14
- package/dist/scripts/data-transformers/constants.d.ts.map +0 -1
- package/dist/scripts/data-transformers/constants.js +0 -14
- package/dist/scripts/data-transformers/constants.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.d.ts +0 -64
- package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.js +0 -805
- package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/cia-overview-section.d.ts +0 -50
- package/dist/scripts/data-transformers/content-generators/cia-overview-section.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/cia-overview-section.js +0 -310
- package/dist/scripts/data-transformers/content-generators/cia-overview-section.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/committee.d.ts +0 -12
- package/dist/scripts/data-transformers/content-generators/committee.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/committee.js +0 -247
- package/dist/scripts/data-transformers/content-generators/committee.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/dashboard-section.d.ts +0 -124
- package/dist/scripts/data-transformers/content-generators/dashboard-section.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/dashboard-section.js +0 -564
- package/dist/scripts/data-transformers/content-generators/dashboard-section.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.d.ts +0 -82
- package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.js +0 -321
- package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/generic.d.ts +0 -12
- package/dist/scripts/data-transformers/content-generators/generic.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/generic.js +0 -295
- package/dist/scripts/data-transformers/content-generators/generic.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/index.d.ts +0 -84
- package/dist/scripts/data-transformers/content-generators/index.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/index.js +0 -47
- package/dist/scripts/data-transformers/content-generators/index.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/interpellations.d.ts +0 -12
- package/dist/scripts/data-transformers/content-generators/interpellations.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/interpellations.js +0 -124
- package/dist/scripts/data-transformers/content-generators/interpellations.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/mindmap-section.d.ts +0 -137
- package/dist/scripts/data-transformers/content-generators/mindmap-section.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/mindmap-section.js +0 -286
- package/dist/scripts/data-transformers/content-generators/mindmap-section.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/month-ahead.d.ts +0 -17
- package/dist/scripts/data-transformers/content-generators/month-ahead.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/month-ahead.js +0 -212
- package/dist/scripts/data-transformers/content-generators/month-ahead.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/monthly-review.d.ts +0 -17
- package/dist/scripts/data-transformers/content-generators/monthly-review.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/monthly-review.js +0 -173
- package/dist/scripts/data-transformers/content-generators/monthly-review.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/motions.d.ts +0 -12
- package/dist/scripts/data-transformers/content-generators/motions.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/motions.js +0 -158
- package/dist/scripts/data-transformers/content-generators/motions.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/newsworthiness.d.ts +0 -62
- package/dist/scripts/data-transformers/content-generators/newsworthiness.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/newsworthiness.js +0 -254
- package/dist/scripts/data-transformers/content-generators/newsworthiness.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/propositions.d.ts +0 -12
- package/dist/scripts/data-transformers/content-generators/propositions.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/propositions.js +0 -263
- package/dist/scripts/data-transformers/content-generators/propositions.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/sankey-section.d.ts +0 -92
- package/dist/scripts/data-transformers/content-generators/sankey-section.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/sankey-section.js +0 -257
- package/dist/scripts/data-transformers/content-generators/sankey-section.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/shared.d.ts +0 -139
- package/dist/scripts/data-transformers/content-generators/shared.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/shared.js +0 -935
- package/dist/scripts/data-transformers/content-generators/shared.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/swot-section.d.ts +0 -50
- package/dist/scripts/data-transformers/content-generators/swot-section.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/swot-section.js +0 -177
- package/dist/scripts/data-transformers/content-generators/swot-section.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/week-ahead.d.ts +0 -12
- package/dist/scripts/data-transformers/content-generators/week-ahead.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/week-ahead.js +0 -332
- package/dist/scripts/data-transformers/content-generators/week-ahead.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators.d.ts +0 -15
- package/dist/scripts/data-transformers/content-generators.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators.js +0 -14
- package/dist/scripts/data-transformers/content-generators.js.map +0 -1
- package/dist/scripts/data-transformers/document-analysis.d.ts +0 -58
- package/dist/scripts/data-transformers/document-analysis.d.ts.map +0 -1
- package/dist/scripts/data-transformers/document-analysis.js +0 -396
- package/dist/scripts/data-transformers/document-analysis.js.map +0 -1
- package/dist/scripts/data-transformers/helpers.d.ts +0 -144
- package/dist/scripts/data-transformers/helpers.d.ts.map +0 -1
- package/dist/scripts/data-transformers/helpers.js +0 -408
- package/dist/scripts/data-transformers/helpers.js.map +0 -1
- package/dist/scripts/data-transformers/index.d.ts +0 -45
- package/dist/scripts/data-transformers/index.d.ts.map +0 -1
- package/dist/scripts/data-transformers/index.js +0 -66
- package/dist/scripts/data-transformers/index.js.map +0 -1
- package/dist/scripts/data-transformers/metadata.d.ts +0 -42
- package/dist/scripts/data-transformers/metadata.d.ts.map +0 -1
- package/dist/scripts/data-transformers/metadata.js +0 -385
- package/dist/scripts/data-transformers/metadata.js.map +0 -1
- package/dist/scripts/data-transformers/policy-analysis.d.ts +0 -105
- package/dist/scripts/data-transformers/policy-analysis.d.ts.map +0 -1
- package/dist/scripts/data-transformers/policy-analysis.js +0 -686
- package/dist/scripts/data-transformers/policy-analysis.js.map +0 -1
- package/dist/scripts/data-transformers/risk-analysis.d.ts +0 -104
- package/dist/scripts/data-transformers/risk-analysis.d.ts.map +0 -1
- package/dist/scripts/data-transformers/risk-analysis.js +0 -279
- package/dist/scripts/data-transformers/risk-analysis.js.map +0 -1
- package/dist/scripts/data-transformers/types.d.ts +0 -260
- package/dist/scripts/data-transformers/types.d.ts.map +0 -1
- package/dist/scripts/data-transformers/types.js +0 -11
- package/dist/scripts/data-transformers/types.js.map +0 -1
- package/dist/scripts/data-transformers.d.ts +0 -23
- package/dist/scripts/data-transformers.d.ts.map +0 -1
- package/dist/scripts/data-transformers.js +0 -35
- package/dist/scripts/data-transformers.js.map +0 -1
- package/dist/scripts/deep-inspection/index.d.ts +0 -55
- package/dist/scripts/deep-inspection/index.d.ts.map +0 -1
- package/dist/scripts/deep-inspection/index.js +0 -66
- package/dist/scripts/deep-inspection/index.js.map +0 -1
- package/dist/scripts/detect-swedish-leakage.d.ts +0 -69
- package/dist/scripts/detect-swedish-leakage.d.ts.map +0 -1
- package/dist/scripts/detect-swedish-leakage.js +0 -417
- package/dist/scripts/detect-swedish-leakage.js.map +0 -1
- package/dist/scripts/editorial-framework.d.ts +0 -121
- package/dist/scripts/editorial-framework.d.ts.map +0 -1
- package/dist/scripts/editorial-framework.js +0 -364
- package/dist/scripts/editorial-framework.js.map +0 -1
- package/dist/scripts/editorial-pillars.d.ts +0 -43
- package/dist/scripts/editorial-pillars.d.ts.map +0 -1
- package/dist/scripts/editorial-pillars.js +0 -215
- package/dist/scripts/editorial-pillars.js.map +0 -1
- package/dist/scripts/extract-news-metadata.d.ts +0 -12
- package/dist/scripts/extract-news-metadata.d.ts.map +0 -1
- package/dist/scripts/extract-news-metadata.js +0 -107
- package/dist/scripts/extract-news-metadata.js.map +0 -1
- package/dist/scripts/extract-vocabulary.d.ts +0 -15
- package/dist/scripts/extract-vocabulary.d.ts.map +0 -1
- package/dist/scripts/extract-vocabulary.js +0 -255
- package/dist/scripts/extract-vocabulary.js.map +0 -1
- package/dist/scripts/fix-article-navigation.d.ts +0 -37
- package/dist/scripts/fix-article-navigation.d.ts.map +0 -1
- package/dist/scripts/fix-article-navigation.js +0 -198
- package/dist/scripts/fix-article-navigation.js.map +0 -1
- package/dist/scripts/fix-keywords-localization.d.ts +0 -18
- package/dist/scripts/fix-keywords-localization.d.ts.map +0 -1
- package/dist/scripts/fix-keywords-localization.js +0 -270
- package/dist/scripts/fix-keywords-localization.js.map +0 -1
- package/dist/scripts/fix-old-articles-branding.d.ts +0 -17
- package/dist/scripts/fix-old-articles-branding.d.ts.map +0 -1
- package/dist/scripts/fix-old-articles-branding.js +0 -229
- package/dist/scripts/fix-old-articles-branding.js.map +0 -1
- package/dist/scripts/generate-news-backport.d.ts +0 -16
- package/dist/scripts/generate-news-backport.d.ts.map +0 -1
- package/dist/scripts/generate-news-backport.js +0 -379
- package/dist/scripts/generate-news-backport.js.map +0 -1
- package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.d.ts +0 -141
- package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.js +0 -546
- package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.js.map +0 -1
- package/dist/scripts/generate-news-enhanced/analysis-cache.d.ts +0 -59
- package/dist/scripts/generate-news-enhanced/analysis-cache.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced/analysis-cache.js +0 -116
- package/dist/scripts/generate-news-enhanced/analysis-cache.js.map +0 -1
- package/dist/scripts/generate-news-enhanced/analysis-labels.d.ts +0 -58
- package/dist/scripts/generate-news-enhanced/analysis-labels.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced/analysis-labels.js +0 -144
- package/dist/scripts/generate-news-enhanced/analysis-labels.js.map +0 -1
- package/dist/scripts/generate-news-enhanced/config.d.ts +0 -58
- package/dist/scripts/generate-news-enhanced/config.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced/config.js +0 -286
- package/dist/scripts/generate-news-enhanced/config.js.map +0 -1
- package/dist/scripts/generate-news-enhanced/generators.d.ts +0 -119
- package/dist/scripts/generate-news-enhanced/generators.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced/generators.js +0 -2131
- package/dist/scripts/generate-news-enhanced/generators.js.map +0 -1
- package/dist/scripts/generate-news-enhanced/helpers.d.ts +0 -122
- package/dist/scripts/generate-news-enhanced/helpers.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced/helpers.js +0 -468
- package/dist/scripts/generate-news-enhanced/helpers.js.map +0 -1
- package/dist/scripts/generate-news-enhanced/index.d.ts +0 -19
- package/dist/scripts/generate-news-enhanced/index.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced/index.js +0 -221
- package/dist/scripts/generate-news-enhanced/index.js.map +0 -1
- package/dist/scripts/generate-news-enhanced/swot-analyzer.d.ts +0 -46
- package/dist/scripts/generate-news-enhanced/swot-analyzer.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced/swot-analyzer.js +0 -1227
- package/dist/scripts/generate-news-enhanced/swot-analyzer.js.map +0 -1
- package/dist/scripts/generate-news-enhanced/types.d.ts +0 -34
- package/dist/scripts/generate-news-enhanced/types.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced/types.js +0 -9
- package/dist/scripts/generate-news-enhanced/types.js.map +0 -1
- package/dist/scripts/generate-news-enhanced.d.ts +0 -25
- package/dist/scripts/generate-news-enhanced.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced.js +0 -37
- package/dist/scripts/generate-news-enhanced.js.map +0 -1
- package/dist/scripts/generate-news-indexes/constants.d.ts +0 -20
- package/dist/scripts/generate-news-indexes/constants.d.ts.map +0 -1
- package/dist/scripts/generate-news-indexes/constants.js +0 -308
- package/dist/scripts/generate-news-indexes/constants.js.map +0 -1
- package/dist/scripts/generate-news-indexes/helpers.d.ts +0 -73
- package/dist/scripts/generate-news-indexes/helpers.d.ts.map +0 -1
- package/dist/scripts/generate-news-indexes/helpers.js +0 -352
- package/dist/scripts/generate-news-indexes/helpers.js.map +0 -1
- package/dist/scripts/generate-news-indexes/index.d.ts +0 -20
- package/dist/scripts/generate-news-indexes/index.d.ts.map +0 -1
- package/dist/scripts/generate-news-indexes/index.js +0 -75
- package/dist/scripts/generate-news-indexes/index.js.map +0 -1
- package/dist/scripts/generate-news-indexes/template.d.ts +0 -25
- package/dist/scripts/generate-news-indexes/template.d.ts.map +0 -1
- package/dist/scripts/generate-news-indexes/template.js +0 -644
- package/dist/scripts/generate-news-indexes/template.js.map +0 -1
- package/dist/scripts/generate-news-indexes/types.d.ts +0 -96
- package/dist/scripts/generate-news-indexes/types.d.ts.map +0 -1
- package/dist/scripts/generate-news-indexes/types.js +0 -9
- package/dist/scripts/generate-news-indexes/types.js.map +0 -1
- package/dist/scripts/generate-news-indexes.d.ts +0 -20
- package/dist/scripts/generate-news-indexes.d.ts.map +0 -1
- package/dist/scripts/generate-news-indexes.js +0 -19
- package/dist/scripts/generate-news-indexes.js.map +0 -1
- package/dist/scripts/generate-rss.d.ts +0 -48
- package/dist/scripts/generate-rss.d.ts.map +0 -1
- package/dist/scripts/generate-rss.js +0 -299
- package/dist/scripts/generate-rss.js.map +0 -1
- package/dist/scripts/generate-sitemap-html.d.ts +0 -79
- package/dist/scripts/generate-sitemap-html.d.ts.map +0 -1
- package/dist/scripts/generate-sitemap-html.js +0 -878
- package/dist/scripts/generate-sitemap-html.js.map +0 -1
- package/dist/scripts/generate-sitemap.d.ts +0 -23
- package/dist/scripts/generate-sitemap.d.ts.map +0 -1
- package/dist/scripts/generate-sitemap.js +0 -476
- package/dist/scripts/generate-sitemap.js.map +0 -1
- package/dist/scripts/generate-types-from-cia-schemas.d.ts +0 -176
- package/dist/scripts/generate-types-from-cia-schemas.d.ts.map +0 -1
- package/dist/scripts/generate-types-from-cia-schemas.js +0 -318
- package/dist/scripts/generate-types-from-cia-schemas.js.map +0 -1
- package/dist/scripts/government-role-validator.d.ts +0 -65
- package/dist/scripts/government-role-validator.d.ts.map +0 -1
- package/dist/scripts/government-role-validator.js +0 -217
- package/dist/scripts/government-role-validator.js.map +0 -1
- package/dist/scripts/html-utils.d.ts +0 -17
- package/dist/scripts/html-utils.d.ts.map +0 -1
- package/dist/scripts/html-utils.js +0 -29
- package/dist/scripts/html-utils.js.map +0 -1
- package/dist/scripts/load-cia-stats.d.ts +0 -89
- package/dist/scripts/load-cia-stats.d.ts.map +0 -1
- package/dist/scripts/load-cia-stats.js +0 -400
- package/dist/scripts/load-cia-stats.js.map +0 -1
- package/dist/scripts/mcp-client/client.d.ts +0 -73
- package/dist/scripts/mcp-client/client.d.ts.map +0 -1
- package/dist/scripts/mcp-client/client.js +0 -526
- package/dist/scripts/mcp-client/client.js.map +0 -1
- package/dist/scripts/mcp-client/document-types.d.ts +0 -23
- package/dist/scripts/mcp-client/document-types.d.ts.map +0 -1
- package/dist/scripts/mcp-client/document-types.js +0 -62
- package/dist/scripts/mcp-client/document-types.js.map +0 -1
- package/dist/scripts/mcp-client/index.d.ts +0 -34
- package/dist/scripts/mcp-client/index.d.ts.map +0 -1
- package/dist/scripts/mcp-client/index.js +0 -67
- package/dist/scripts/mcp-client/index.js.map +0 -1
- package/dist/scripts/mcp-client/transport.d.ts +0 -32
- package/dist/scripts/mcp-client/transport.d.ts.map +0 -1
- package/dist/scripts/mcp-client/transport.js +0 -102
- package/dist/scripts/mcp-client/transport.js.map +0 -1
- package/dist/scripts/mcp-client.d.ts +0 -18
- package/dist/scripts/mcp-client.d.ts.map +0 -1
- package/dist/scripts/mcp-client.js +0 -18
- package/dist/scripts/mcp-client.js.map +0 -1
- package/dist/scripts/mcp-query-cli.d.ts +0 -25
- package/dist/scripts/mcp-query-cli.d.ts.map +0 -1
- package/dist/scripts/mcp-query-cli.js +0 -66
- package/dist/scripts/mcp-query-cli.js.map +0 -1
- package/dist/scripts/news-types/breaking-news.d.ts +0 -178
- package/dist/scripts/news-types/breaking-news.d.ts.map +0 -1
- package/dist/scripts/news-types/breaking-news.js +0 -432
- package/dist/scripts/news-types/breaking-news.js.map +0 -1
- package/dist/scripts/news-types/committee-reports.d.ts +0 -212
- package/dist/scripts/news-types/committee-reports.d.ts.map +0 -1
- package/dist/scripts/news-types/committee-reports.js +0 -404
- package/dist/scripts/news-types/committee-reports.js.map +0 -1
- package/dist/scripts/news-types/month-ahead.d.ts +0 -71
- package/dist/scripts/news-types/month-ahead.d.ts.map +0 -1
- package/dist/scripts/news-types/month-ahead.js +0 -392
- package/dist/scripts/news-types/month-ahead.js.map +0 -1
- package/dist/scripts/news-types/monthly-review.d.ts +0 -61
- package/dist/scripts/news-types/monthly-review.d.ts.map +0 -1
- package/dist/scripts/news-types/monthly-review.js +0 -417
- package/dist/scripts/news-types/monthly-review.js.map +0 -1
- package/dist/scripts/news-types/motions.d.ts +0 -214
- package/dist/scripts/news-types/motions.d.ts.map +0 -1
- package/dist/scripts/news-types/motions.js +0 -447
- package/dist/scripts/news-types/motions.js.map +0 -1
- package/dist/scripts/news-types/propositions.d.ts +0 -204
- package/dist/scripts/news-types/propositions.d.ts.map +0 -1
- package/dist/scripts/news-types/propositions.js +0 -401
- package/dist/scripts/news-types/propositions.js.map +0 -1
- package/dist/scripts/news-types/week-ahead.d.ts +0 -231
- package/dist/scripts/news-types/week-ahead.d.ts.map +0 -1
- package/dist/scripts/news-types/week-ahead.js +0 -441
- package/dist/scripts/news-types/week-ahead.js.map +0 -1
- package/dist/scripts/news-types/weekly-review/analysis.d.ts +0 -47
- package/dist/scripts/news-types/weekly-review/analysis.d.ts.map +0 -1
- package/dist/scripts/news-types/weekly-review/analysis.js +0 -276
- package/dist/scripts/news-types/weekly-review/analysis.js.map +0 -1
- package/dist/scripts/news-types/weekly-review/data-loader.d.ts +0 -51
- package/dist/scripts/news-types/weekly-review/data-loader.d.ts.map +0 -1
- package/dist/scripts/news-types/weekly-review/data-loader.js +0 -298
- package/dist/scripts/news-types/weekly-review/data-loader.js.map +0 -1
- package/dist/scripts/news-types/weekly-review/generator.d.ts +0 -18
- package/dist/scripts/news-types/weekly-review/generator.d.ts.map +0 -1
- package/dist/scripts/news-types/weekly-review/generator.js +0 -284
- package/dist/scripts/news-types/weekly-review/generator.js.map +0 -1
- package/dist/scripts/news-types/weekly-review/index.d.ts +0 -20
- package/dist/scripts/news-types/weekly-review/index.d.ts.map +0 -1
- package/dist/scripts/news-types/weekly-review/index.js +0 -23
- package/dist/scripts/news-types/weekly-review/index.js.map +0 -1
- package/dist/scripts/news-types/weekly-review/types.d.ts +0 -72
- package/dist/scripts/news-types/weekly-review/types.d.ts.map +0 -1
- package/dist/scripts/news-types/weekly-review/types.js +0 -20
- package/dist/scripts/news-types/weekly-review/types.js.map +0 -1
- package/dist/scripts/news-types/weekly-review/validation.d.ts +0 -10
- package/dist/scripts/news-types/weekly-review/validation.d.ts.map +0 -1
- package/dist/scripts/news-types/weekly-review/validation.js +0 -95
- package/dist/scripts/news-types/weekly-review/validation.js.map +0 -1
- package/dist/scripts/news-types/weekly-review.d.ts +0 -15
- package/dist/scripts/news-types/weekly-review.d.ts.map +0 -1
- package/dist/scripts/news-types/weekly-review.js +0 -14
- package/dist/scripts/news-types/weekly-review.js.map +0 -1
- package/dist/scripts/party-variants.d.ts +0 -23
- package/dist/scripts/party-variants.d.ts.map +0 -1
- package/dist/scripts/party-variants.js +0 -50
- package/dist/scripts/party-variants.js.map +0 -1
- package/dist/scripts/pipeline/index.d.ts +0 -19
- package/dist/scripts/pipeline/index.d.ts.map +0 -1
- package/dist/scripts/pipeline/index.js +0 -17
- package/dist/scripts/pipeline/index.js.map +0 -1
- package/dist/scripts/pipeline/orchestrator.d.ts +0 -56
- package/dist/scripts/pipeline/orchestrator.d.ts.map +0 -1
- package/dist/scripts/pipeline/orchestrator.js +0 -147
- package/dist/scripts/pipeline/orchestrator.js.map +0 -1
- package/dist/scripts/pipeline/types.d.ts +0 -117
- package/dist/scripts/pipeline/types.d.ts.map +0 -1
- package/dist/scripts/pipeline/types.js +0 -13
- package/dist/scripts/pipeline/types.js.map +0 -1
- package/dist/scripts/pipeline/validation.d.ts +0 -66
- package/dist/scripts/pipeline/validation.d.ts.map +0 -1
- package/dist/scripts/pipeline/validation.js +0 -129
- package/dist/scripts/pipeline/validation.js.map +0 -1
- package/dist/scripts/populate-analysis-data.d.ts +0 -41
- package/dist/scripts/populate-analysis-data.d.ts.map +0 -1
- package/dist/scripts/populate-analysis-data.js +0 -255
- package/dist/scripts/populate-analysis-data.js.map +0 -1
- package/dist/scripts/pre-article-analysis/data-downloader.d.ts +0 -80
- package/dist/scripts/pre-article-analysis/data-downloader.d.ts.map +0 -1
- package/dist/scripts/pre-article-analysis/data-downloader.js +0 -230
- package/dist/scripts/pre-article-analysis/data-downloader.js.map +0 -1
- package/dist/scripts/pre-article-analysis/data-persistence.d.ts +0 -141
- package/dist/scripts/pre-article-analysis/data-persistence.d.ts.map +0 -1
- package/dist/scripts/pre-article-analysis/data-persistence.js +0 -345
- package/dist/scripts/pre-article-analysis/data-persistence.js.map +0 -1
- package/dist/scripts/pre-article-analysis/markdown-serializer.d.ts +0 -158
- package/dist/scripts/pre-article-analysis/markdown-serializer.d.ts.map +0 -1
- package/dist/scripts/pre-article-analysis/markdown-serializer.js +0 -648
- package/dist/scripts/pre-article-analysis/markdown-serializer.js.map +0 -1
- package/dist/scripts/pre-article-analysis/pdf-converter.d.ts +0 -58
- package/dist/scripts/pre-article-analysis/pdf-converter.d.ts.map +0 -1
- package/dist/scripts/pre-article-analysis/pdf-converter.js +0 -142
- package/dist/scripts/pre-article-analysis/pdf-converter.js.map +0 -1
- package/dist/scripts/pre-article-analysis.d.ts +0 -41
- package/dist/scripts/pre-article-analysis.d.ts.map +0 -1
- package/dist/scripts/pre-article-analysis.js +0 -591
- package/dist/scripts/pre-article-analysis.js.map +0 -1
- package/dist/scripts/scb-client.d.ts +0 -104
- package/dist/scripts/scb-client.d.ts.map +0 -1
- package/dist/scripts/scb-client.js +0 -286
- package/dist/scripts/scb-client.js.map +0 -1
- package/dist/scripts/scb-context.d.ts +0 -88
- package/dist/scripts/scb-context.d.ts.map +0 -1
- package/dist/scripts/scb-context.js +0 -307
- package/dist/scripts/scb-context.js.map +0 -1
- package/dist/scripts/shared/version.d.ts +0 -9
- package/dist/scripts/shared/version.d.ts.map +0 -1
- package/dist/scripts/shared/version.js +0 -28
- package/dist/scripts/shared/version.js.map +0 -1
- package/dist/scripts/statistical-claims-detector.d.ts +0 -119
- package/dist/scripts/statistical-claims-detector.d.ts.map +0 -1
- package/dist/scripts/statistical-claims-detector.js +0 -391
- package/dist/scripts/statistical-claims-detector.js.map +0 -1
- package/dist/scripts/sync-cia-schemas.d.ts +0 -52
- package/dist/scripts/sync-cia-schemas.d.ts.map +0 -1
- package/dist/scripts/sync-cia-schemas.js +0 -195
- package/dist/scripts/sync-cia-schemas.js.map +0 -1
- package/dist/scripts/translation-dictionary.d.ts +0 -45
- package/dist/scripts/translation-dictionary.d.ts.map +0 -1
- package/dist/scripts/translation-dictionary.js +0 -3642
- package/dist/scripts/translation-dictionary.js.map +0 -1
- package/dist/scripts/types/article.d.ts +0 -392
- package/dist/scripts/types/article.d.ts.map +0 -1
- package/dist/scripts/types/article.js +0 -6
- package/dist/scripts/types/article.js.map +0 -1
- package/dist/scripts/types/content.d.ts +0 -167
- package/dist/scripts/types/content.d.ts.map +0 -1
- package/dist/scripts/types/content.js +0 -6
- package/dist/scripts/types/content.js.map +0 -1
- package/dist/scripts/types/editorial.d.ts +0 -17
- package/dist/scripts/types/editorial.d.ts.map +0 -1
- package/dist/scripts/types/editorial.js +0 -6
- package/dist/scripts/types/editorial.js.map +0 -1
- package/dist/scripts/types/language.d.ts +0 -7
- package/dist/scripts/types/language.d.ts.map +0 -1
- package/dist/scripts/types/language.js +0 -6
- package/dist/scripts/types/language.js.map +0 -1
- package/dist/scripts/types/mcp.d.ts +0 -117
- package/dist/scripts/types/mcp.d.ts.map +0 -1
- package/dist/scripts/types/mcp.js +0 -6
- package/dist/scripts/types/mcp.js.map +0 -1
- package/dist/scripts/types/party.d.ts +0 -9
- package/dist/scripts/types/party.d.ts.map +0 -1
- package/dist/scripts/types/party.js +0 -6
- package/dist/scripts/types/party.js.map +0 -1
- package/dist/scripts/types/validation.d.ts +0 -136
- package/dist/scripts/types/validation.d.ts.map +0 -1
- package/dist/scripts/types/validation.js +0 -6
- package/dist/scripts/types/validation.js.map +0 -1
- package/dist/scripts/types/workflow.d.ts +0 -78
- package/dist/scripts/types/workflow.d.ts.map +0 -1
- package/dist/scripts/types/workflow.js +0 -6
- package/dist/scripts/types/workflow.js.map +0 -1
- package/dist/scripts/update-stats-from-cia.d.ts +0 -44
- package/dist/scripts/update-stats-from-cia.d.ts.map +0 -1
- package/dist/scripts/update-stats-from-cia.js +0 -310
- package/dist/scripts/update-stats-from-cia.js.map +0 -1
- package/dist/scripts/validate-against-cia-schemas.d.ts +0 -126
- package/dist/scripts/validate-against-cia-schemas.d.ts.map +0 -1
- package/dist/scripts/validate-against-cia-schemas.js +0 -299
- package/dist/scripts/validate-against-cia-schemas.js.map +0 -1
- package/dist/scripts/validate-cross-references.d.ts +0 -49
- package/dist/scripts/validate-cross-references.d.ts.map +0 -1
- package/dist/scripts/validate-cross-references.js +0 -183
- package/dist/scripts/validate-cross-references.js.map +0 -1
- package/dist/scripts/validate-file-ownership.d.ts +0 -68
- package/dist/scripts/validate-file-ownership.d.ts.map +0 -1
- package/dist/scripts/validate-file-ownership.js +0 -135
- package/dist/scripts/validate-file-ownership.js.map +0 -1
- package/dist/scripts/validate-news-translations.d.ts +0 -27
- package/dist/scripts/validate-news-translations.d.ts.map +0 -1
- package/dist/scripts/validate-news-translations.js +0 -258
- package/dist/scripts/validate-news-translations.js.map +0 -1
- package/dist/scripts/validate-translations.d.ts +0 -162
- package/dist/scripts/validate-translations.d.ts.map +0 -1
- package/dist/scripts/validate-translations.js +0 -378
- package/dist/scripts/validate-translations.js.map +0 -1
- package/dist/scripts/workflow-state-coordinator.d.ts +0 -354
- package/dist/scripts/workflow-state-coordinator.d.ts.map +0 -1
- package/dist/scripts/workflow-state-coordinator.js +0 -876
- package/dist/scripts/workflow-state-coordinator.js.map +0 -1
- package/dist/scripts/world-bank-client.d.ts +0 -122
- package/dist/scripts/world-bank-client.d.ts.map +0 -1
- package/dist/scripts/world-bank-client.js +0 -192
- package/dist/scripts/world-bank-client.js.map +0 -1
- package/dist/scripts/world-bank-context.d.ts +0 -88
- package/dist/scripts/world-bank-context.d.ts.map +0 -1
- package/dist/scripts/world-bank-context.js +0 -331
- package/dist/scripts/world-bank-context.js.map +0 -1
|
@@ -1,408 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module data-transformers/helpers
|
|
3
|
-
* @description Low-level utility functions for the data transformation
|
|
4
|
-
* pipeline: URL sanitisation, Swedish-language span generation, date
|
|
5
|
-
* formatting, text cleaning, and document metadata helpers.
|
|
6
|
-
*
|
|
7
|
-
* @author Hack23 AB
|
|
8
|
-
* @license Apache-2.0
|
|
9
|
-
*/
|
|
10
|
-
import { escapeHtml } from '../html-utils.js';
|
|
11
|
-
import { LOCALE_MAP, COMMITTEE_NAMES, CONTENT_LABELS } from './constants.js';
|
|
12
|
-
/**
|
|
13
|
-
* Sanitize a URL for safe use in href attributes.
|
|
14
|
-
* Rejects javascript:, data:, vbscript: schemes and returns '#' for invalid URLs.
|
|
15
|
-
* Also escapes HTML attribute characters in the URL.
|
|
16
|
-
*/
|
|
17
|
-
export function sanitizeUrl(url) {
|
|
18
|
-
if (!url || typeof url !== 'string')
|
|
19
|
-
return '#';
|
|
20
|
-
const trimmed = url.trim();
|
|
21
|
-
// Block dangerous schemes
|
|
22
|
-
if (/^(javascript|data|vbscript):/i.test(trimmed))
|
|
23
|
-
return '#';
|
|
24
|
-
// Only allow http, https, and relative URLs
|
|
25
|
-
if (/^[a-z]+:/i.test(trimmed) && !/^https?:/i.test(trimmed))
|
|
26
|
-
return '#';
|
|
27
|
-
// Escape HTML attribute characters
|
|
28
|
-
return trimmed.replace(/&/g, '&').replace(/"/g, '"').replace(/'/g, ''').replace(/</g, '<').replace(/>/g, '>');
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Emit a Swedish-language span.
|
|
32
|
-
*
|
|
33
|
-
* The span always carries both the `lang="sv"` accessibility attribute AND
|
|
34
|
-
* `data-translate="true"` so that `translateSwedishContent()` (in
|
|
35
|
-
* `translation-dictionary.ts`) can locate every Swedish phrase, look it up
|
|
36
|
-
* in the per-language dictionary, and replace or clean the marker before the
|
|
37
|
-
* article is written to disk.
|
|
38
|
-
*
|
|
39
|
-
* - **SV articles**: the marker lets validation tooling verify original text
|
|
40
|
-
* is present; `translateSwedishContent()` strips the marker but keeps the
|
|
41
|
-
* Swedish text unchanged.
|
|
42
|
-
* - **Non-SV articles**: `translateSwedishContent()` attempts dictionary
|
|
43
|
-
* translation via `translatePhrase()` and removes the marker regardless
|
|
44
|
-
* of whether a match was found, so no `data-translate` attributes remain
|
|
45
|
-
* in the final HTML.
|
|
46
|
-
*
|
|
47
|
-
* @param escapedText - Already HTML-escaped text content
|
|
48
|
-
* @param _lang - Target article language (kept only for backward
|
|
49
|
-
* compatibility; currently not used by this function)
|
|
50
|
-
*/
|
|
51
|
-
export function svSpan(escapedText, _lang) {
|
|
52
|
-
// NOTE: `_lang` is intentionally unused and retained solely so existing
|
|
53
|
-
// call sites do not need to be updated; all spans are marked as Swedish.
|
|
54
|
-
return `<span data-translate="true" lang="sv">${escapedText}</span>`;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Get localized label with fallback to English
|
|
58
|
-
*/
|
|
59
|
-
export function L(lang, key) {
|
|
60
|
-
const langLabels = CONTENT_LABELS[lang];
|
|
61
|
-
const value = langLabels?.[key];
|
|
62
|
-
if (value !== undefined)
|
|
63
|
-
return value;
|
|
64
|
-
return CONTENT_LABELS.en[key];
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Check if date is today
|
|
68
|
-
*/
|
|
69
|
-
export function isTodayDate(date) {
|
|
70
|
-
const today = new Date();
|
|
71
|
-
return date.getDate() === today.getDate() &&
|
|
72
|
-
date.getMonth() === today.getMonth() &&
|
|
73
|
-
date.getFullYear() === today.getFullYear();
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Format day name (Monday, Tuesday, etc.) using Intl for all 14 languages
|
|
77
|
-
*/
|
|
78
|
-
export function formatDayName(date, lang = 'en') {
|
|
79
|
-
const locale = LOCALE_MAP[lang] || lang;
|
|
80
|
-
try {
|
|
81
|
-
return new Intl.DateTimeFormat(locale, { weekday: 'long' }).format(date);
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
return new Intl.DateTimeFormat('en-GB', { weekday: 'long' }).format(date);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Format day label (e.g., "February 10 - Monday") using Intl for all 14 languages
|
|
89
|
-
*/
|
|
90
|
-
export function formatDayLabel(date, lang = 'en') {
|
|
91
|
-
const locale = LOCALE_MAP[lang] || lang;
|
|
92
|
-
try {
|
|
93
|
-
const dayName = formatDayName(date, lang);
|
|
94
|
-
const monthDay = new Intl.DateTimeFormat(locale, { month: 'long', day: 'numeric' }).format(date);
|
|
95
|
-
return `${monthDay} - ${dayName}`;
|
|
96
|
-
}
|
|
97
|
-
catch {
|
|
98
|
-
const dayName = formatDayName(date, 'en');
|
|
99
|
-
const monthDay = new Intl.DateTimeFormat('en-GB', { month: 'long', day: 'numeric' }).format(date);
|
|
100
|
-
return `${monthDay} - ${dayName}`;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Determine if event is high priority
|
|
105
|
-
*/
|
|
106
|
-
export function isHighPriority(event) {
|
|
107
|
-
const title = (event.title || event.rubrik || '').toLowerCase();
|
|
108
|
-
return (title.includes('pm') ||
|
|
109
|
-
title.includes('prime minister') ||
|
|
110
|
-
title.includes('statsminister') ||
|
|
111
|
-
title.includes('vote') ||
|
|
112
|
-
title.includes('votering') ||
|
|
113
|
-
title.includes('eu') ||
|
|
114
|
-
title.includes('summit'));
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Parse author and party from raw Swedish motion text.
|
|
118
|
-
* Handles "av Fredrik Olovsson m.fl. (S)" and similar patterns.
|
|
119
|
-
*/
|
|
120
|
-
export function parseMotionAuthorParty(text) {
|
|
121
|
-
const m = text.match(/\bav\s+([^(]+?)\s+\(([A-ZÅÄÖ]{1,5})\)/u);
|
|
122
|
-
if (m)
|
|
123
|
-
return { author: m[1].trim().replace(/\s+/g, ' '), party: m[2] };
|
|
124
|
-
return null;
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Clean raw Swedish motion notis text into a readable subject.
|
|
128
|
-
* Strips "Motion till riksdagen XXXX av AUTHOR (PARTY) med anledning av..."
|
|
129
|
-
* and truncates at "Förslag till riksdagsbeslut".
|
|
130
|
-
*/
|
|
131
|
-
export function cleanMotionText(raw) {
|
|
132
|
-
// Minimum cleaned text length before falling back to raw; max excerpt lengths
|
|
133
|
-
const MIN_CLEANED = 20;
|
|
134
|
-
const MAX_CLEANED = 300;
|
|
135
|
-
const MAX_RAW_FALLBACK = 200;
|
|
136
|
-
// Truncate at formal ballot section
|
|
137
|
-
let text = raw.replace(/Förslag till riksdagsbeslut[\s\S]*/i, '').trim();
|
|
138
|
-
// Strip leading "Motion till riksdagen YYYY/YY:NNN av AUTHOR (PARTY) " prefix
|
|
139
|
-
text = text.replace(/^Motion till riksdagen\s+\S+\s+av\s+[^(]+\([A-ZÅÄÖ]{1,5}\)\s*/i, '').trim();
|
|
140
|
-
// Strip "med anledning av prop. YYYY/YY:NNN " prefix
|
|
141
|
-
text = text.replace(/^med anledning av prop\.\s+\S+\s*/i, '').trim();
|
|
142
|
-
return text.length > MIN_CLEANED ? text.slice(0, MAX_CLEANED) : raw.slice(0, MAX_RAW_FALLBACK);
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Detect when a text string is an MP/politician profile page excerpt rather than
|
|
146
|
-
* document content. Returns true for texts that begin with Swedish MP-status phrases
|
|
147
|
-
* or contain profile-specific markers such as:
|
|
148
|
-
* - "Tjänstgörande riksdagsledamot …" (active MP)
|
|
149
|
-
* - "Tidigare riksdagsledamot …" (former MP)
|
|
150
|
-
* - "Avgången riksdagsledamot …" (resigned MP)
|
|
151
|
-
* - "Tillgänglig ersättare …" (substitute MP)
|
|
152
|
-
* - "Tjänstgörande ersättare …" (active substitute)
|
|
153
|
-
* - "Tidigare ersättare …" (former substitute)
|
|
154
|
-
* - "Tjänstgörande statsrådsersättare" (acting minister substitute)
|
|
155
|
-
* - "Tidigare statsråd …" (former minister)
|
|
156
|
-
* - "Tidigare statsminister …" (former PM)
|
|
157
|
-
* - "Inga uppdrag" (no assignments)
|
|
158
|
-
* - "Avgången …" (resigned)
|
|
159
|
-
* - "Avliden YYYY-MM-DD …" (deceased MP)
|
|
160
|
-
*
|
|
161
|
-
* This data comes from the riksdag API's person/ledamot profile pages, and must never
|
|
162
|
-
* appear in article document-entry content.
|
|
163
|
-
*/
|
|
164
|
-
export function isPersonProfileText(text) {
|
|
165
|
-
if (!text)
|
|
166
|
-
return false;
|
|
167
|
-
const trimmed = text.trimStart();
|
|
168
|
-
// Ordered from most specific to least; any match → it is a person profile excerpt
|
|
169
|
-
return (/^Tjänstgörande riksdagsledamot/u.test(trimmed) ||
|
|
170
|
-
/^Tidigare riksdagsledamot/u.test(trimmed) ||
|
|
171
|
-
/^Avgången riksdagsledamot/u.test(trimmed) ||
|
|
172
|
-
/^Tillgänglig ersättare/u.test(trimmed) ||
|
|
173
|
-
/^Tjänstgörande ersättare/u.test(trimmed) ||
|
|
174
|
-
/^Tidigare ersättare/u.test(trimmed) ||
|
|
175
|
-
/^Tjänstgörande statsrådsersättare/u.test(trimmed) ||
|
|
176
|
-
/^Tidigare statsråd/u.test(trimmed) ||
|
|
177
|
-
/^Tidigare statsminister/u.test(trimmed) ||
|
|
178
|
-
/^Inga uppdrag/u.test(trimmed) ||
|
|
179
|
-
/^Avgången/u.test(trimmed) ||
|
|
180
|
-
// Deceased: "Avliden YYYY-MM-DD ..."
|
|
181
|
-
/^Avliden\s+\d{4}-\d{2}-\d{2}/u.test(trimmed) ||
|
|
182
|
-
// Contains riksdag email address — always a profile page
|
|
183
|
-
/[a-zA-Z0-9._%+-]+@riksdagen\.se/u.test(trimmed) ||
|
|
184
|
-
// Contains "Aktuella uppdrag Riksdagsledamot" — profile header
|
|
185
|
-
/Aktuella uppdrag\s+Riksdagsledamot/u.test(trimmed));
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Build a descriptive proposition summary from the ministry organ.
|
|
189
|
-
* Returns a ministry-specific framing sentence.
|
|
190
|
-
*/
|
|
191
|
-
export function propSummaryFromOrgan(organ, lang) {
|
|
192
|
-
const ministryMap = {
|
|
193
|
-
Justitiedepartementet: { sv: 'Justitiedepartementets förslag rör rättsliga förändringar.', en: 'This Justice Ministry proposal amends existing legal framework.' },
|
|
194
|
-
Finansdepartementet: { sv: 'Finansdepartementets förslag påverkar statsbudget eller finansreglering.', en: 'This Finance Ministry proposal has fiscal or budgetary implications.' },
|
|
195
|
-
Försvarsdepartementet: { sv: 'Försvarsdepartementets förslag rör försvars- eller säkerhetspolitik.', en: 'This Defence Ministry proposal concerns national security or defence posture.' },
|
|
196
|
-
Utbildningsdepartementet: { sv: 'Utbildningsdepartementets förslag berör skolsystem eller forskning.', en: 'This Education Ministry proposal affects schools, universities or research funding.' },
|
|
197
|
-
Socialdepartementet: { sv: 'Socialdepartementets förslag rör välfärd eller socialpolitik.', en: 'This Social Affairs Ministry proposal affects welfare entitlements or social services.' },
|
|
198
|
-
Miljödepartementet: { sv: 'Klimat- och miljödepartementets förslag rör klimat- eller miljöpolitik.', en: 'This Climate and Environment Ministry proposal targets emissions or ecological regulation.' },
|
|
199
|
-
'Klimat- och miljödepartementet': { sv: 'Klimat- och miljödepartementets förslag rör klimat- eller miljöpolitik.', en: 'This Climate and Environment Ministry proposal targets emissions or ecological regulation.' },
|
|
200
|
-
'Klimat- och näringslivsdepartementet': { sv: 'Klimat- och näringslivsdepartementets förslag rör klimat- och näringspolitik.', en: 'This Climate and Enterprise Ministry proposal addresses both environmental and industrial policy.' },
|
|
201
|
-
Utrikesdepartementet: { sv: 'Utrikesdepartementets förslag rör utrikespolitik eller internationella relationer.', en: 'This Foreign Affairs Ministry proposal concerns international relations or Sweden’s global obligations.' },
|
|
202
|
-
Infrastrukturdepartementet: { sv: 'Infrastrukturdepartementets förslag rör transport eller samhällsinfrastruktur.', en: 'This Infrastructure Ministry proposal affects transport networks or public utilities.' },
|
|
203
|
-
};
|
|
204
|
-
const entry = ministryMap[organ];
|
|
205
|
-
if (!entry)
|
|
206
|
-
return '';
|
|
207
|
-
return lang === 'sv' ? entry.sv : entry.en;
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* Generate enhanced summary from document metadata when summary field is missing
|
|
211
|
-
* Uses document type, subtype, organ, and other metadata to create informative placeholder
|
|
212
|
-
*/
|
|
213
|
-
export function generateEnhancedSummary(doc, type, lang) {
|
|
214
|
-
// For motions/interpellations: clean raw Swedish notis text before returning.
|
|
215
|
-
// Note: cleanMotionText() only handles motion-specific boilerplate ("Motion till riksdagen",
|
|
216
|
-
// "Förslag till riksdagsbeslut"); interpellation text without those phrases is returned as-is.
|
|
217
|
-
if ((type === 'motion' || type === 'interpellation') && (doc.summary || doc.notis)) {
|
|
218
|
-
const raw = (doc.summary || doc.notis || '');
|
|
219
|
-
// Skip person-profile data (e.g. "Tjänstgörande riksdagsledamot...", "Avliden 2011-09-20...")
|
|
220
|
-
if (!isPersonProfileText(raw)) {
|
|
221
|
-
if (raw.includes('Motion till riksdagen') || raw.includes('Förslag till riksdagsbeslut')) {
|
|
222
|
-
return cleanMotionText(raw);
|
|
223
|
-
}
|
|
224
|
-
return raw;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
// If we have a real summary or notis (not person profile data), use it as-is
|
|
228
|
-
if (doc.summary || doc.notis) {
|
|
229
|
-
const text = doc.summary || doc.notis || '';
|
|
230
|
-
if (!isPersonProfileText(text)) {
|
|
231
|
-
return text;
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
// Generate enhanced summary based on metadata
|
|
235
|
-
const organ = doc.organ || doc.committee;
|
|
236
|
-
const subtyp = doc.subtyp || doc.subtype;
|
|
237
|
-
const doktyp = doc.doktyp || doc.documentType;
|
|
238
|
-
// Build contextual summary based on available metadata
|
|
239
|
-
const parts = [];
|
|
240
|
-
if (type === 'report' && organ) {
|
|
241
|
-
const labelVal = L(lang, 'committeeReport');
|
|
242
|
-
parts.push(`${organ} ${typeof labelVal === 'string' ? labelVal : ''}`);
|
|
243
|
-
if (subtyp) {
|
|
244
|
-
const onVal = L(lang, 'on');
|
|
245
|
-
parts.push(`${typeof onVal === 'string' ? onVal : ''} ${subtyp}`);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
else if (type === 'proposition') {
|
|
249
|
-
// Try ministry-specific framing first
|
|
250
|
-
const ministrySummary = organ ? propSummaryFromOrgan(organ, lang) : '';
|
|
251
|
-
if (ministrySummary) {
|
|
252
|
-
return ministrySummary;
|
|
253
|
-
}
|
|
254
|
-
const propLabel = L(lang, 'governmentProposition');
|
|
255
|
-
parts.push(typeof propLabel === 'string' ? propLabel : '');
|
|
256
|
-
if (organ) {
|
|
257
|
-
const referredVal = L(lang, 'referredTo');
|
|
258
|
-
parts.push(`${typeof referredVal === 'string' ? referredVal : ''} ${organ}`);
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
else if (type === 'motion') {
|
|
262
|
-
const author = (doc.intressent_namn !== 'Unknown' ? doc.intressent_namn : null) || doc.author;
|
|
263
|
-
const party = doc.parti !== 'Unknown' ? doc.parti : undefined;
|
|
264
|
-
if (author && party) {
|
|
265
|
-
const motionByVal = L(lang, 'motionBy');
|
|
266
|
-
parts.push(`${typeof motionByVal === 'string' ? motionByVal : ''} ${author} (${party})`);
|
|
267
|
-
}
|
|
268
|
-
else if (author) {
|
|
269
|
-
const motionByVal = L(lang, 'motionBy');
|
|
270
|
-
parts.push(`${typeof motionByVal === 'string' ? motionByVal : ''} ${author}`);
|
|
271
|
-
}
|
|
272
|
-
else {
|
|
273
|
-
const parlMotion = L(lang, 'parliamentaryMotion');
|
|
274
|
-
parts.push(typeof parlMotion === 'string' ? parlMotion : '');
|
|
275
|
-
}
|
|
276
|
-
if (subtyp) {
|
|
277
|
-
const onVal = L(lang, 'on');
|
|
278
|
-
parts.push(`${typeof onVal === 'string' ? onVal : ''} ${subtyp}`);
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
|
-
else if (type === 'interpellation') {
|
|
282
|
-
// NOTE: do NOT prefix with author/party here — renderInterpellationEntry()
|
|
283
|
-
// already renders a dedicated "Filed by:" line, so including it in the
|
|
284
|
-
// summary would duplicate the attribution.
|
|
285
|
-
// Include target minister (mottagare) if available
|
|
286
|
-
// NOTE: do NOT escapeHtml here — callers escape the returned summary string
|
|
287
|
-
if (doc.mottagare) {
|
|
288
|
-
parts.push(`→ ${doc.mottagare}`);
|
|
289
|
-
}
|
|
290
|
-
if (subtyp) {
|
|
291
|
-
const onVal = L(lang, 'on');
|
|
292
|
-
parts.push(`${typeof onVal === 'string' ? onVal : ''} ${subtyp}`);
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
// Add document type information if useful
|
|
296
|
-
if (doktyp && doktyp !== type) {
|
|
297
|
-
parts.push(`(${doktyp})`);
|
|
298
|
-
}
|
|
299
|
-
// Fallback to default if no useful metadata
|
|
300
|
-
if (parts.length === 0) {
|
|
301
|
-
const fallback = type === 'report' ? L(lang, 'reportDefault') :
|
|
302
|
-
type === 'proposition' ? L(lang, 'propDefault') :
|
|
303
|
-
type === 'interpellation' ? L(lang, 'interpellationDefault') :
|
|
304
|
-
L(lang, 'motionDefault');
|
|
305
|
-
return typeof fallback === 'string' ? fallback : '';
|
|
306
|
-
}
|
|
307
|
-
return parts.join(' ') + '.';
|
|
308
|
-
}
|
|
309
|
-
/**
|
|
310
|
-
* Get human-readable committee name from code
|
|
311
|
-
*/
|
|
312
|
-
export function getCommitteeName(code, lang) {
|
|
313
|
-
if (!code) {
|
|
314
|
-
const unknownVal = L(lang, 'unknown');
|
|
315
|
-
return typeof unknownVal === 'string' ? unknownVal : 'Unknown';
|
|
316
|
-
}
|
|
317
|
-
if (code === 'unknown') {
|
|
318
|
-
const otherVal = L(lang, 'otherCommittee');
|
|
319
|
-
return typeof otherVal === 'string' ? otherVal : 'Other committees';
|
|
320
|
-
}
|
|
321
|
-
const entry = COMMITTEE_NAMES[code];
|
|
322
|
-
if (!entry)
|
|
323
|
-
return code;
|
|
324
|
-
// Use Swedish name for sv, English for all others (other languages get translated via data-translate)
|
|
325
|
-
return lang === 'sv' ? entry.sv : entry.en;
|
|
326
|
-
}
|
|
327
|
-
/**
|
|
328
|
-
* Extract the most analytically useful excerpt from full document text.
|
|
329
|
-
* Returns first substantive paragraph (skips short headings/metadata lines).
|
|
330
|
-
*/
|
|
331
|
-
export function extractKeyPassage(fullText, maxChars = 600) {
|
|
332
|
-
if (!fullText)
|
|
333
|
-
return '';
|
|
334
|
-
// Strip HTML tags if present
|
|
335
|
-
let plain = fullText.replace(/<[^>]+>/g, ' ');
|
|
336
|
-
// Strip markdown links — keep link text, remove URL: [text](url) → text
|
|
337
|
-
plain = plain.replace(/\[([^\]]*)\]\([^)]+\)/g, '$1');
|
|
338
|
-
// Strip bare URLs (http/https)
|
|
339
|
-
plain = plain.replace(/https?:\/\/[^\s)]+/g, '');
|
|
340
|
-
// Collapse whitespace
|
|
341
|
-
plain = plain.replace(/\s+/g, ' ').trim();
|
|
342
|
-
if (plain.length <= maxChars)
|
|
343
|
-
return plain;
|
|
344
|
-
// Find a sentence boundary near maxChars
|
|
345
|
-
const cut = plain.lastIndexOf('.', maxChars);
|
|
346
|
-
return cut > 100 ? plain.slice(0, cut + 1) : plain.slice(0, maxChars) + '…';
|
|
347
|
-
}
|
|
348
|
-
/**
|
|
349
|
-
* Normalise a raw `parti` field to a canonical party key.
|
|
350
|
-
* Maps missing, empty, or any capitalisation of 'unknown' to 'other'.
|
|
351
|
-
* Used in both generateMotionsContent (party grouping) and
|
|
352
|
-
* generateOppositionStrategySection so both sections treat the sentinel
|
|
353
|
-
* identically regardless of capitalisation.
|
|
354
|
-
*/
|
|
355
|
-
export function normalizePartyKey(parti) {
|
|
356
|
-
const raw = typeof parti === 'string' ? parti.trim() : '';
|
|
357
|
-
return !raw || raw.toLowerCase() === 'unknown' ? 'other' : raw;
|
|
358
|
-
}
|
|
359
|
-
/**
|
|
360
|
-
* Look up party motion success rate from CIA context.
|
|
361
|
-
* Returns null when data is unavailable so callers can skip the annotation.
|
|
362
|
-
*/
|
|
363
|
-
export function partyMotionSuccessRate(party, cia) {
|
|
364
|
-
if (!cia || !party)
|
|
365
|
-
return null;
|
|
366
|
-
const p = cia.partyPerformance.find(x => x.id === party || x.partyName.toLowerCase().startsWith(party.toLowerCase()));
|
|
367
|
-
return p ? p.metrics.successRate : null;
|
|
368
|
-
}
|
|
369
|
-
/**
|
|
370
|
-
* Format a document publication date for display.
|
|
371
|
-
* Returns an HTML string like
|
|
372
|
-
* `<span class="doc-date"><strong>Published:</strong> <time datetime="2026-03-04">2026-03-04</time></span>`
|
|
373
|
-
* using the localized "Published" label, or empty string if datum is missing.
|
|
374
|
-
*/
|
|
375
|
-
export function formatDocumentDate(doc, lang) {
|
|
376
|
-
const datum = doc.datum;
|
|
377
|
-
if (!datum)
|
|
378
|
-
return '';
|
|
379
|
-
const publishedLabel = L(lang, 'published');
|
|
380
|
-
return `<span class="doc-date"><strong>${escapeHtml(String(publishedLabel))}:</strong> <time datetime="${escapeHtml(datum)}">${escapeHtml(datum)}</time></span>`;
|
|
381
|
-
}
|
|
382
|
-
/**
|
|
383
|
-
* Filter documents to only include those published within a given number of days.
|
|
384
|
-
* Documents without a `datum` field are kept (benefit of the doubt).
|
|
385
|
-
*
|
|
386
|
-
* @param docs - Array of raw documents
|
|
387
|
-
* @param maxAgeDays - Maximum age in days (default 30)
|
|
388
|
-
* @returns Filtered array containing only fresh documents
|
|
389
|
-
*/
|
|
390
|
-
export function filterFreshDocuments(docs, maxAgeDays = 30) {
|
|
391
|
-
// Normalize cutoff to midnight UTC so day-based threshold is consistent
|
|
392
|
-
const now = new Date();
|
|
393
|
-
const cutoffMs = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate()) - maxAgeDays * 24 * 60 * 60 * 1000;
|
|
394
|
-
return docs.filter(doc => {
|
|
395
|
-
if (!doc.datum) {
|
|
396
|
-
// keep documents without dates (benefit of the doubt)
|
|
397
|
-
return true;
|
|
398
|
-
}
|
|
399
|
-
// Interpret datum (YYYY-MM-DD) as midnight UTC for deterministic comparison
|
|
400
|
-
const docTime = Date.parse(`${doc.datum}T00:00:00Z`);
|
|
401
|
-
if (Number.isNaN(docTime)) {
|
|
402
|
-
// If the date cannot be parsed, keep the document rather than dropping it
|
|
403
|
-
return true;
|
|
404
|
-
}
|
|
405
|
-
return docTime >= cutoffMs;
|
|
406
|
-
});
|
|
407
|
-
}
|
|
408
|
-
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../scripts/data-transformers/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module data-transformers
|
|
3
|
-
* @description Barrel re-export preserving the original public API.
|
|
4
|
-
* All consumers that previously imported from `./data-transformers.js`
|
|
5
|
-
* continue to work without changes via this barrel file.
|
|
6
|
-
*
|
|
7
|
-
* The monolithic module has been decomposed into bounded-context modules:
|
|
8
|
-
* - **types** — shared interfaces (RawCalendarEvent, RawDocument, …)
|
|
9
|
-
* - **constants** — CONTENT_LABELS, COMMITTEE_NAMES, LOCALE_MAP
|
|
10
|
-
* - **helpers** — utility functions (sanitizeUrl, svSpan, L, date formatting, …)
|
|
11
|
-
* - **calendar** — transformCalendarToEventGrid, extractWatchPoints, extractTopics
|
|
12
|
-
* - **content-generators** — per-article-type HTML generators
|
|
13
|
-
* - **policy-analysis** — detectPolicyDomains, generatePolicySignificance, …
|
|
14
|
-
* - **document-analysis** — groupMotionsByProposition, renderMotionEntry, …
|
|
15
|
-
* - **metadata** — generateMetadata, calculateReadTime, generateContentTitle, …
|
|
16
|
-
*
|
|
17
|
-
* @author Hack23 AB
|
|
18
|
-
* @license Apache-2.0
|
|
19
|
-
*/
|
|
20
|
-
export type { RawCalendarEvent, RawDocument, CIAContext, WeekAheadData, ArticleContentData, MonthlyMetrics, } from './types.js';
|
|
21
|
-
export { CONTENT_LABELS } from './constants.js';
|
|
22
|
-
export { L, isPersonProfileText, formatDocumentDate, filterFreshDocuments } from './helpers.js';
|
|
23
|
-
export { transformCalendarToEventGrid, extractTopics, extractWatchPoints } from './calendar.js';
|
|
24
|
-
export { groupMotionsByProposition, groupPropositionsByCommittee, calculateInfluenceScore } from './document-analysis.js';
|
|
25
|
-
export type { ConfidenceLevel, NarrativeFrame } from './policy-analysis.js';
|
|
26
|
-
export { assessConfidenceLevel, detectNarrativeFrames } from './policy-analysis.js';
|
|
27
|
-
export type { RiskLevel, CoalitionRiskIndex, CoalitionRiskComponents, AnomalyFlag, TrendDirection, TrendDataPoint, TrendComparison } from './risk-analysis.js';
|
|
28
|
-
export { calculateCoalitionRiskIndex, detectAnomalousPatterns, generateTrendComparison } from './risk-analysis.js';
|
|
29
|
-
export { generateSwotSection, generateDashboardSection, generateStakeholderSwotSection, generateEconomicDashboardSection, findIndicatorsForDomains, buildEconomicCharts, buildEconomicTables, scoreNewsworthiness, generateMindmapSection, generateSankeySection, generateCiaOverviewSection, buildAIMindmapAnalysis, buildMindmapOptionsFromAnalysis, generateInterpellationsContent, } from './content-generators.js';
|
|
30
|
-
export type { SwotSectionOptions, DashboardSectionOptions, StakeholderSwotSectionOptions, StakeholderSwot, EconomicDashboardOptions, EconomicDataPoint, NewsworthinessScore, NewsworthinessDimension, MindmapSectionOptions, MindmapBranch, MindmapBranchColor, MindmapDimension, AIMindmapItem, AIMindmapItemWeight, SubBranch, MindmapConnection, AIMindmapAnalysis, SankeySectionOptions, SankeyNode, SankeyFlow, SankeyNodeColor, CiaOverviewSectionOptions, } from './content-generators.js';
|
|
31
|
-
export { generateMetadata, calculateReadTime, generateContentTitle, generateSources, } from './metadata.js';
|
|
32
|
-
import type { Language } from '../types/language.js';
|
|
33
|
-
import type { ArticleType } from '../types/article.js';
|
|
34
|
-
import type { ArticleContentData } from './types.js';
|
|
35
|
-
/**
|
|
36
|
-
* Generate article content from MCP data.
|
|
37
|
-
* Dispatches to the appropriate content generator based on article type.
|
|
38
|
-
*
|
|
39
|
-
* @param data - Structured data from MCP API calls
|
|
40
|
-
* @param type - Article type determining the rendering strategy
|
|
41
|
-
* @param lang - Target language (defaults to English)
|
|
42
|
-
* @returns Generated HTML content string
|
|
43
|
-
*/
|
|
44
|
-
export declare function generateArticleContent(data: ArticleContentData, type: ArticleType | string, lang?: Language): string;
|
|
45
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../scripts/data-transformers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAE,CAAC,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGhG,OAAO,EAAE,4BAA4B,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGhG,OAAO,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAG1H,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGpF,YAAY,EAAE,SAAS,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/J,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAGnH,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,8BAA8B,EAC9B,gCAAgC,EAChC,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,6BAA6B,EAC7B,eAAe,EACf,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,eAAe,EACf,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAiB,MAAM,YAAY,CAAC;AAYpE;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,WAAW,GAAG,MAAM,EAC1B,IAAI,GAAE,QAAe,GACpB,MAAM,CAqBR"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module data-transformers
|
|
3
|
-
* @description Barrel re-export preserving the original public API.
|
|
4
|
-
* All consumers that previously imported from `./data-transformers.js`
|
|
5
|
-
* continue to work without changes via this barrel file.
|
|
6
|
-
*
|
|
7
|
-
* The monolithic module has been decomposed into bounded-context modules:
|
|
8
|
-
* - **types** — shared interfaces (RawCalendarEvent, RawDocument, …)
|
|
9
|
-
* - **constants** — CONTENT_LABELS, COMMITTEE_NAMES, LOCALE_MAP
|
|
10
|
-
* - **helpers** — utility functions (sanitizeUrl, svSpan, L, date formatting, …)
|
|
11
|
-
* - **calendar** — transformCalendarToEventGrid, extractWatchPoints, extractTopics
|
|
12
|
-
* - **content-generators** — per-article-type HTML generators
|
|
13
|
-
* - **policy-analysis** — detectPolicyDomains, generatePolicySignificance, …
|
|
14
|
-
* - **document-analysis** — groupMotionsByProposition, renderMotionEntry, …
|
|
15
|
-
* - **metadata** — generateMetadata, calculateReadTime, generateContentTitle, …
|
|
16
|
-
*
|
|
17
|
-
* @author Hack23 AB
|
|
18
|
-
* @license Apache-2.0
|
|
19
|
-
*/
|
|
20
|
-
// ── Re-export constants ────────────────────────────────────────────────────
|
|
21
|
-
export { CONTENT_LABELS } from './constants.js';
|
|
22
|
-
// ── Re-export helpers ──────────────────────────────────────────────────────
|
|
23
|
-
export { L, isPersonProfileText, formatDocumentDate, filterFreshDocuments } from './helpers.js';
|
|
24
|
-
// ── Re-export calendar ─────────────────────────────────────────────────────
|
|
25
|
-
export { transformCalendarToEventGrid, extractTopics, extractWatchPoints } from './calendar.js';
|
|
26
|
-
// ── Re-export document analysis ────────────────────────────────────────────
|
|
27
|
-
export { groupMotionsByProposition, groupPropositionsByCommittee, calculateInfluenceScore } from './document-analysis.js';
|
|
28
|
-
export { assessConfidenceLevel, detectNarrativeFrames } from './policy-analysis.js';
|
|
29
|
-
export { calculateCoalitionRiskIndex, detectAnomalousPatterns, generateTrendComparison } from './risk-analysis.js';
|
|
30
|
-
// ── Re-export SWOT & Dashboard section generators ─────────────────────────
|
|
31
|
-
export { generateSwotSection, generateDashboardSection, generateStakeholderSwotSection, generateEconomicDashboardSection, findIndicatorsForDomains, buildEconomicCharts, buildEconomicTables, scoreNewsworthiness, generateMindmapSection, generateSankeySection, generateCiaOverviewSection, buildAIMindmapAnalysis, buildMindmapOptionsFromAnalysis, generateInterpellationsContent, } from './content-generators.js';
|
|
32
|
-
// ── Re-export metadata ─────────────────────────────────────────────────────
|
|
33
|
-
export { generateMetadata, calculateReadTime, generateContentTitle, generateSources, } from './metadata.js';
|
|
34
|
-
import { generateWeekAheadContent, generateCommitteeContent, generatePropositionsContent, generateMotionsContent, generateInterpellationsContent, generateGenericContent, generateMonthlyReviewContent, generateMonthAheadContent, } from './content-generators.js';
|
|
35
|
-
/**
|
|
36
|
-
* Generate article content from MCP data.
|
|
37
|
-
* Dispatches to the appropriate content generator based on article type.
|
|
38
|
-
*
|
|
39
|
-
* @param data - Structured data from MCP API calls
|
|
40
|
-
* @param type - Article type determining the rendering strategy
|
|
41
|
-
* @param lang - Target language (defaults to English)
|
|
42
|
-
* @returns Generated HTML content string
|
|
43
|
-
*/
|
|
44
|
-
export function generateArticleContent(data, type, lang = 'en') {
|
|
45
|
-
switch (type) {
|
|
46
|
-
case 'week-ahead':
|
|
47
|
-
return generateWeekAheadContent(data, lang);
|
|
48
|
-
case 'month-ahead':
|
|
49
|
-
return generateMonthAheadContent(data, lang);
|
|
50
|
-
case 'committee-reports':
|
|
51
|
-
return generateCommitteeContent(data, lang);
|
|
52
|
-
case 'propositions':
|
|
53
|
-
return generatePropositionsContent(data, lang);
|
|
54
|
-
case 'motions':
|
|
55
|
-
return generateMotionsContent(data, lang);
|
|
56
|
-
case 'interpellations':
|
|
57
|
-
return generateInterpellationsContent(data, lang);
|
|
58
|
-
case 'monthly-review':
|
|
59
|
-
return generateMonthlyReviewContent(data, lang);
|
|
60
|
-
case 'weekly-review':
|
|
61
|
-
case 'breaking':
|
|
62
|
-
default:
|
|
63
|
-
return generateGenericContent(data, lang);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../scripts/data-transformers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAYH,8EAA8E;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,8EAA8E;AAC9E,OAAO,EAAE,CAAC,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEhG,8EAA8E;AAC9E,OAAO,EAAE,4BAA4B,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEhG,8EAA8E;AAC9E,OAAO,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAI1H,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAIpF,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAEnH,6EAA6E;AAC7E,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,8BAA8B,EAC9B,gCAAgC,EAChC,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;AA0BjC,8EAA8E;AAC9E,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,GAChB,MAAM,eAAe,CAAC;AAMvB,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,sBAAsB,EACtB,8BAA8B,EAC9B,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAwB,EACxB,IAA0B,EAC1B,OAAiB,IAAI;IAErB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,YAAY;YACf,OAAO,wBAAwB,CAAC,IAAqB,EAAE,IAAI,CAAC,CAAC;QAC/D,KAAK,aAAa;YAChB,OAAO,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/C,KAAK,mBAAmB;YACtB,OAAO,wBAAwB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9C,KAAK,cAAc;YACjB,OAAO,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjD,KAAK,SAAS;YACZ,OAAO,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5C,KAAK,iBAAiB;YACpB,OAAO,8BAA8B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACpD,KAAK,gBAAgB;YACnB,OAAO,4BAA4B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClD,KAAK,eAAe,CAAC;QACrB,KAAK,UAAU,CAAC;QAChB;YACE,OAAO,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module data-transformers/metadata
|
|
3
|
-
* @description SEO metadata generation, reading-time calculation,
|
|
4
|
-
* source attribution, and content-title generation for articles.
|
|
5
|
-
* Handles keyword localisation across 14 supported languages.
|
|
6
|
-
*
|
|
7
|
-
* @author Hack23 AB
|
|
8
|
-
* @license Apache-2.0
|
|
9
|
-
*/
|
|
10
|
-
import type { Language } from '../types/language.js';
|
|
11
|
-
import type { ArticleMetadata, ArticleType } from '../types/article.js';
|
|
12
|
-
import type { ArticleContentData, RawDocument } from './types.js';
|
|
13
|
-
/**
|
|
14
|
-
* Generate article metadata
|
|
15
|
-
*/
|
|
16
|
-
export declare function generateMetadata(data: ArticleContentData, type: ArticleType | string, lang?: Language): ArticleMetadata;
|
|
17
|
-
/**
|
|
18
|
-
* Calculate estimated read time
|
|
19
|
-
*/
|
|
20
|
-
export declare function calculateReadTime(content: string): string;
|
|
21
|
-
/**
|
|
22
|
-
* Generate a content-aware article title derived from the policy domains found in documents.
|
|
23
|
-
*
|
|
24
|
-
* Extracts the top 2 policy themes from the provided documents and returns a
|
|
25
|
-
* language-specific title that reflects the actual content. Returns `null` when
|
|
26
|
-
* fewer than 2 distinct domains can be detected so callers can fall back to
|
|
27
|
-
* their static titles.
|
|
28
|
-
*
|
|
29
|
-
* @param documents - Source documents to analyse for policy themes
|
|
30
|
-
* @param lang - Target language code (e.g. `'en'`, `'sv'`, `'de'`)
|
|
31
|
-
* @param articleType - Article type: `'motions'` | `'propositions'` | `'committee-reports'`
|
|
32
|
-
* @returns Content-based `{ title, subtitle }`, or `null` when analysis is insufficient
|
|
33
|
-
*/
|
|
34
|
-
export declare function generateContentTitle(documents: RawDocument[], lang: Language | string, articleType: 'motions' | 'propositions' | 'committee-reports'): {
|
|
35
|
-
title: string;
|
|
36
|
-
subtitle: string;
|
|
37
|
-
} | null;
|
|
38
|
-
/**
|
|
39
|
-
* Generate article sources list
|
|
40
|
-
*/
|
|
41
|
-
export declare function generateSources(tools?: string[]): string[];
|
|
42
|
-
//# sourceMappingURL=metadata.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../scripts/data-transformers/metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA8FlE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,WAAW,GAAG,MAAM,EAAE,IAAI,GAAE,QAAe,GAAG,eAAe,CA8F7H;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASzD;AAoHD;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,WAAW,EAAE,EACxB,IAAI,EAAE,QAAQ,GAAG,MAAM,EACvB,WAAW,EAAE,SAAS,GAAG,cAAc,GAAG,mBAAmB,GAC5D;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAuB5C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,CA6B9D"}
|