riksdagsmonitor 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.
- 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 +53 -21
- 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 -531
- 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 -42
- package/dist/scripts/pre-article-analysis.d.ts.map +0 -1
- package/dist/scripts/pre-article-analysis.js +0 -642
- 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,176 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* @module Infrastructure/TypeGeneration
|
|
4
|
-
* @category Infrastructure
|
|
5
|
-
*
|
|
6
|
-
* @title CIA Schema Type Generator - TypeScript Type Safety Infrastructure
|
|
7
|
-
*
|
|
8
|
-
* @description
|
|
9
|
-
* **INTELLIGENCE OPERATIVE PERSPECTIVE**
|
|
10
|
-
*
|
|
11
|
-
* This module generates TypeScript type definitions from CIA JSON schemas,
|
|
12
|
-
* providing compile-time type safety for political data processing. While appearing
|
|
13
|
-
* as a technical infrastructure task, type safety serves a critical intelligence
|
|
14
|
-
* function: preventing data corruption bugs that could propagate incorrect
|
|
15
|
-
* information through the analytical pipeline.
|
|
16
|
-
*
|
|
17
|
-
* **TYPE SAFETY IN INTELLIGENCE SYSTEMS:**
|
|
18
|
-
* Intelligence analysis depends on data accuracy. TypeScript type generation ensures:
|
|
19
|
-
* 1. **Shape Validation**: Data matches expected structure before processing
|
|
20
|
-
* 2. **Property Typos**: Catches misspelled field names at compile time
|
|
21
|
-
* 3. **Type Mismatches**: Prevents treating numbers as strings or vice versa
|
|
22
|
-
* 4. **Null Handling**: Explicit handling of optional vs. required fields
|
|
23
|
-
* 5. **API Contract**: Ensures MCP tool responses match expected types
|
|
24
|
-
*
|
|
25
|
-
* **CIA SCHEMA CONVERSION PROCESS:**
|
|
26
|
-
* The generator converts JSON Schema β TypeScript types:
|
|
27
|
-
* 1. Load JSON schema from schemas/cia/ directory
|
|
28
|
-
* 2. Parse schema structure (properties, required fields, type constraints)
|
|
29
|
-
* 3. Generate TypeScript interface with all properties
|
|
30
|
-
* 4. Add JSDoc comments from schema descriptions
|
|
31
|
-
* 5. Handle nested objects and arrays recursively
|
|
32
|
-
* 6. Generate Union types for enum fields
|
|
33
|
-
* 7. Write to types/ directory
|
|
34
|
-
*
|
|
35
|
-
* **SUPPORTED SCHEMA CONVERSIONS:**
|
|
36
|
-
* - **String Types**: Converted to TypeScript string
|
|
37
|
-
* - **Number Types**: integer and number mapped appropriately
|
|
38
|
-
* - **Boolean Types**: Converted to TypeScript boolean
|
|
39
|
-
* - **Array Types**: Generated as T[] arrays
|
|
40
|
-
* - **Nested Objects**: Recursive interface generation
|
|
41
|
-
* - **Enum Types**: Union type generation (type field = 'value1' | 'value2')
|
|
42
|
-
* - **Optional Fields**: Generated as property?: type notation
|
|
43
|
-
* - **Date Fields**: ISO 8601 strings typed as string (runtime validation needed)
|
|
44
|
-
*
|
|
45
|
-
* **GENERATED TYPE EXAMPLES:**
|
|
46
|
-
* From CIA voting schema generates:
|
|
47
|
-
* ```typescript
|
|
48
|
-
* interface Vote {
|
|
49
|
-
* id: string;
|
|
50
|
-
* documentId: string;
|
|
51
|
-
* date: string; // ISO 8601
|
|
52
|
-
* topic: string;
|
|
53
|
-
* memberVotes: MemberVote[];
|
|
54
|
-
* totalYes: number;
|
|
55
|
-
* totalNo: number;
|
|
56
|
-
* totalAbstain: number;
|
|
57
|
-
* passed: boolean;
|
|
58
|
-
* }
|
|
59
|
-
* ```
|
|
60
|
-
*
|
|
61
|
-
* **WORKFLOW:**
|
|
62
|
-
* 1. Run during build process: `npm run generate-types-from-cia-schemas`
|
|
63
|
-
* 2. Scans schemas/cia/ for all .schema.json files
|
|
64
|
-
* 3. Generates corresponding TypeScript .d.ts files
|
|
65
|
-
* 4. Reports success/failure for each schema
|
|
66
|
-
* 5. Errors block build (type safety non-negotiable)
|
|
67
|
-
*
|
|
68
|
-
* **SCHEMA EVOLUTION HANDLING:**
|
|
69
|
-
* When CIA platform adds/removes schema fields:
|
|
70
|
-
* 1. Developer manually updates schema files
|
|
71
|
-
* 2. Type generation runs and creates new .d.ts
|
|
72
|
-
* 3. TypeScript compiler finds references to removed fields
|
|
73
|
-
* 4. Developer updates code to new schema
|
|
74
|
-
* 5. Types are regenerated with updated definitions
|
|
75
|
-
*
|
|
76
|
-
* **TYPESCRIPT COMPILATION INTEGRATION:**
|
|
77
|
-
* Generated types used in compilation:
|
|
78
|
-
* - `import type { Vote } from '../types/Vote'`
|
|
79
|
-
* - Compiler validates against generated interface
|
|
80
|
-
* - Prevents data shape mismatches at runtime
|
|
81
|
-
* - IDE autocomplete from generated types
|
|
82
|
-
*
|
|
83
|
-
* **OPTIONAL FEATURE:**
|
|
84
|
-
* Type generation is optional - projects can use without types:
|
|
85
|
-
* - Dynamic typing still works without generated types
|
|
86
|
-
* - Benefits optional, not required
|
|
87
|
-
* - Recommended for production systems
|
|
88
|
-
* - Improves development velocity through IDE support
|
|
89
|
-
*
|
|
90
|
-
* **PERFORMANCE CONSIDERATIONS:**
|
|
91
|
-
* - Type generation: ~50ms per schema
|
|
92
|
-
* - Compilation: Uses cached types if unchanged
|
|
93
|
-
* - No runtime overhead (types erased during compilation)
|
|
94
|
-
* - Improves IDE responsiveness through type information
|
|
95
|
-
*
|
|
96
|
-
* **FAILURE MODES:**
|
|
97
|
-
* - Invalid schema JSON: Detailed error identifying issue
|
|
98
|
-
* - Unsupported schema features: Warning with fallback to any
|
|
99
|
-
* - File write errors: Reports permission or disk issues
|
|
100
|
-
* - Circular references: Detected and handled with type aliases
|
|
101
|
-
*
|
|
102
|
-
* **GDPR COMPLIANCE:**
|
|
103
|
-
* Generated types include personal data fields:
|
|
104
|
-
* - Member names and IDs
|
|
105
|
-
* - Department affiliations
|
|
106
|
-
* - Vote patterns
|
|
107
|
-
* - Committee assignments
|
|
108
|
-
* Types help ensure proper data handling:
|
|
109
|
-
* - Explicit marking of sensitive fields
|
|
110
|
-
* - Runtime validation can check data classifications
|
|
111
|
-
* - Type information supports audit requirements
|
|
112
|
-
*
|
|
113
|
-
* **INTELLIGENCE APPLICATIONS:**
|
|
114
|
-
* Type safety supports intelligence workflows:
|
|
115
|
-
* - Analysts rely on accurate data shape for reports
|
|
116
|
-
* - Prevents data corruption in analytical pipelines
|
|
117
|
-
* - Enables automated data quality checking
|
|
118
|
-
* - Supports integration testing across data systems
|
|
119
|
-
*
|
|
120
|
-
* @osint Schema Integrity Monitoring
|
|
121
|
-
* - Detects when CIA platform changes schema unexpectedly
|
|
122
|
-
* - Generation failures alert to schema compatibility issues
|
|
123
|
-
* - Type mismatches reveal integration problems
|
|
124
|
-
* - Enables early detection of API changes
|
|
125
|
-
*
|
|
126
|
-
* @risk Data Integrity Assurance
|
|
127
|
-
* - Type checking prevents data shape errors
|
|
128
|
-
* - Compile-time validation catches logic errors
|
|
129
|
-
* - IDE support reduces runtime errors
|
|
130
|
-
* - Build fails if types don't match data
|
|
131
|
-
*
|
|
132
|
-
* @gdpr Data Classification Support
|
|
133
|
-
* - Generated types can include data classification
|
|
134
|
-
* - Sensitive fields explicitly marked
|
|
135
|
-
* - Supports audit trail for data handling
|
|
136
|
-
* - Runtime validation enforces data policies
|
|
137
|
-
*
|
|
138
|
-
* @security Type-Based Security
|
|
139
|
-
* - Prevents injection attacks through type constraints
|
|
140
|
-
* - String types prevent code injection
|
|
141
|
-
* - Enum types prevent unexpected value injection
|
|
142
|
-
* - Object shape validation prevents prototype pollution
|
|
143
|
-
*
|
|
144
|
-
* @author Hack23 AB (Data Infrastructure & Type Safety)
|
|
145
|
-
* @license Apache-2.0
|
|
146
|
-
* @version 2.0.0
|
|
147
|
-
* @since 2024-06-15
|
|
148
|
-
* @see https://json-schema-to-typescript.com/ (Type Generation Library)
|
|
149
|
-
* @see schemas/cia/ (JSON Schema Definitions)
|
|
150
|
-
* @see types/ (Generated TypeScript Definitions)
|
|
151
|
-
* @see Issue #76 (Type Safety Enhancement)
|
|
152
|
-
*/
|
|
153
|
-
declare class CIATypeGenerator {
|
|
154
|
-
private readonly schemasDir;
|
|
155
|
-
private readonly typesDir;
|
|
156
|
-
private readonly results;
|
|
157
|
-
constructor();
|
|
158
|
-
/**
|
|
159
|
-
* Generate TypeScript types from a single schema
|
|
160
|
-
*/
|
|
161
|
-
generateTypesForSchema(schemaFile: string): Promise<boolean>;
|
|
162
|
-
/**
|
|
163
|
-
* Generate types for all CIA schemas
|
|
164
|
-
*/
|
|
165
|
-
generateAllTypes(): Promise<number>;
|
|
166
|
-
/**
|
|
167
|
-
* Create index.d.ts that exports all types
|
|
168
|
-
*/
|
|
169
|
-
createIndexFile(): Promise<void>;
|
|
170
|
-
/**
|
|
171
|
-
* Print generation summary
|
|
172
|
-
*/
|
|
173
|
-
printSummary(): void;
|
|
174
|
-
}
|
|
175
|
-
export default CIATypeGenerator;
|
|
176
|
-
//# sourceMappingURL=generate-types-from-cia-schemas.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate-types-from-cia-schemas.d.ts","sourceRoot":"","sources":["../../scripts/generate-types-from-cia-schemas.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsJG;AAoBH,cAAM,gBAAgB;IACpB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;;IAW5C;;OAEG;IACG,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4ClE;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IA6CzC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBtC;;OAEG;IACH,YAAY,IAAI,IAAI;CAwBrB;AAmBD,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,318 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* @module Infrastructure/TypeGeneration
|
|
4
|
-
* @category Infrastructure
|
|
5
|
-
*
|
|
6
|
-
* @title CIA Schema Type Generator - TypeScript Type Safety Infrastructure
|
|
7
|
-
*
|
|
8
|
-
* @description
|
|
9
|
-
* **INTELLIGENCE OPERATIVE PERSPECTIVE**
|
|
10
|
-
*
|
|
11
|
-
* This module generates TypeScript type definitions from CIA JSON schemas,
|
|
12
|
-
* providing compile-time type safety for political data processing. While appearing
|
|
13
|
-
* as a technical infrastructure task, type safety serves a critical intelligence
|
|
14
|
-
* function: preventing data corruption bugs that could propagate incorrect
|
|
15
|
-
* information through the analytical pipeline.
|
|
16
|
-
*
|
|
17
|
-
* **TYPE SAFETY IN INTELLIGENCE SYSTEMS:**
|
|
18
|
-
* Intelligence analysis depends on data accuracy. TypeScript type generation ensures:
|
|
19
|
-
* 1. **Shape Validation**: Data matches expected structure before processing
|
|
20
|
-
* 2. **Property Typos**: Catches misspelled field names at compile time
|
|
21
|
-
* 3. **Type Mismatches**: Prevents treating numbers as strings or vice versa
|
|
22
|
-
* 4. **Null Handling**: Explicit handling of optional vs. required fields
|
|
23
|
-
* 5. **API Contract**: Ensures MCP tool responses match expected types
|
|
24
|
-
*
|
|
25
|
-
* **CIA SCHEMA CONVERSION PROCESS:**
|
|
26
|
-
* The generator converts JSON Schema β TypeScript types:
|
|
27
|
-
* 1. Load JSON schema from schemas/cia/ directory
|
|
28
|
-
* 2. Parse schema structure (properties, required fields, type constraints)
|
|
29
|
-
* 3. Generate TypeScript interface with all properties
|
|
30
|
-
* 4. Add JSDoc comments from schema descriptions
|
|
31
|
-
* 5. Handle nested objects and arrays recursively
|
|
32
|
-
* 6. Generate Union types for enum fields
|
|
33
|
-
* 7. Write to types/ directory
|
|
34
|
-
*
|
|
35
|
-
* **SUPPORTED SCHEMA CONVERSIONS:**
|
|
36
|
-
* - **String Types**: Converted to TypeScript string
|
|
37
|
-
* - **Number Types**: integer and number mapped appropriately
|
|
38
|
-
* - **Boolean Types**: Converted to TypeScript boolean
|
|
39
|
-
* - **Array Types**: Generated as T[] arrays
|
|
40
|
-
* - **Nested Objects**: Recursive interface generation
|
|
41
|
-
* - **Enum Types**: Union type generation (type field = 'value1' | 'value2')
|
|
42
|
-
* - **Optional Fields**: Generated as property?: type notation
|
|
43
|
-
* - **Date Fields**: ISO 8601 strings typed as string (runtime validation needed)
|
|
44
|
-
*
|
|
45
|
-
* **GENERATED TYPE EXAMPLES:**
|
|
46
|
-
* From CIA voting schema generates:
|
|
47
|
-
* ```typescript
|
|
48
|
-
* interface Vote {
|
|
49
|
-
* id: string;
|
|
50
|
-
* documentId: string;
|
|
51
|
-
* date: string; // ISO 8601
|
|
52
|
-
* topic: string;
|
|
53
|
-
* memberVotes: MemberVote[];
|
|
54
|
-
* totalYes: number;
|
|
55
|
-
* totalNo: number;
|
|
56
|
-
* totalAbstain: number;
|
|
57
|
-
* passed: boolean;
|
|
58
|
-
* }
|
|
59
|
-
* ```
|
|
60
|
-
*
|
|
61
|
-
* **WORKFLOW:**
|
|
62
|
-
* 1. Run during build process: `npm run generate-types-from-cia-schemas`
|
|
63
|
-
* 2. Scans schemas/cia/ for all .schema.json files
|
|
64
|
-
* 3. Generates corresponding TypeScript .d.ts files
|
|
65
|
-
* 4. Reports success/failure for each schema
|
|
66
|
-
* 5. Errors block build (type safety non-negotiable)
|
|
67
|
-
*
|
|
68
|
-
* **SCHEMA EVOLUTION HANDLING:**
|
|
69
|
-
* When CIA platform adds/removes schema fields:
|
|
70
|
-
* 1. Developer manually updates schema files
|
|
71
|
-
* 2. Type generation runs and creates new .d.ts
|
|
72
|
-
* 3. TypeScript compiler finds references to removed fields
|
|
73
|
-
* 4. Developer updates code to new schema
|
|
74
|
-
* 5. Types are regenerated with updated definitions
|
|
75
|
-
*
|
|
76
|
-
* **TYPESCRIPT COMPILATION INTEGRATION:**
|
|
77
|
-
* Generated types used in compilation:
|
|
78
|
-
* - `import type { Vote } from '../types/Vote'`
|
|
79
|
-
* - Compiler validates against generated interface
|
|
80
|
-
* - Prevents data shape mismatches at runtime
|
|
81
|
-
* - IDE autocomplete from generated types
|
|
82
|
-
*
|
|
83
|
-
* **OPTIONAL FEATURE:**
|
|
84
|
-
* Type generation is optional - projects can use without types:
|
|
85
|
-
* - Dynamic typing still works without generated types
|
|
86
|
-
* - Benefits optional, not required
|
|
87
|
-
* - Recommended for production systems
|
|
88
|
-
* - Improves development velocity through IDE support
|
|
89
|
-
*
|
|
90
|
-
* **PERFORMANCE CONSIDERATIONS:**
|
|
91
|
-
* - Type generation: ~50ms per schema
|
|
92
|
-
* - Compilation: Uses cached types if unchanged
|
|
93
|
-
* - No runtime overhead (types erased during compilation)
|
|
94
|
-
* - Improves IDE responsiveness through type information
|
|
95
|
-
*
|
|
96
|
-
* **FAILURE MODES:**
|
|
97
|
-
* - Invalid schema JSON: Detailed error identifying issue
|
|
98
|
-
* - Unsupported schema features: Warning with fallback to any
|
|
99
|
-
* - File write errors: Reports permission or disk issues
|
|
100
|
-
* - Circular references: Detected and handled with type aliases
|
|
101
|
-
*
|
|
102
|
-
* **GDPR COMPLIANCE:**
|
|
103
|
-
* Generated types include personal data fields:
|
|
104
|
-
* - Member names and IDs
|
|
105
|
-
* - Department affiliations
|
|
106
|
-
* - Vote patterns
|
|
107
|
-
* - Committee assignments
|
|
108
|
-
* Types help ensure proper data handling:
|
|
109
|
-
* - Explicit marking of sensitive fields
|
|
110
|
-
* - Runtime validation can check data classifications
|
|
111
|
-
* - Type information supports audit requirements
|
|
112
|
-
*
|
|
113
|
-
* **INTELLIGENCE APPLICATIONS:**
|
|
114
|
-
* Type safety supports intelligence workflows:
|
|
115
|
-
* - Analysts rely on accurate data shape for reports
|
|
116
|
-
* - Prevents data corruption in analytical pipelines
|
|
117
|
-
* - Enables automated data quality checking
|
|
118
|
-
* - Supports integration testing across data systems
|
|
119
|
-
*
|
|
120
|
-
* @osint Schema Integrity Monitoring
|
|
121
|
-
* - Detects when CIA platform changes schema unexpectedly
|
|
122
|
-
* - Generation failures alert to schema compatibility issues
|
|
123
|
-
* - Type mismatches reveal integration problems
|
|
124
|
-
* - Enables early detection of API changes
|
|
125
|
-
*
|
|
126
|
-
* @risk Data Integrity Assurance
|
|
127
|
-
* - Type checking prevents data shape errors
|
|
128
|
-
* - Compile-time validation catches logic errors
|
|
129
|
-
* - IDE support reduces runtime errors
|
|
130
|
-
* - Build fails if types don't match data
|
|
131
|
-
*
|
|
132
|
-
* @gdpr Data Classification Support
|
|
133
|
-
* - Generated types can include data classification
|
|
134
|
-
* - Sensitive fields explicitly marked
|
|
135
|
-
* - Supports audit trail for data handling
|
|
136
|
-
* - Runtime validation enforces data policies
|
|
137
|
-
*
|
|
138
|
-
* @security Type-Based Security
|
|
139
|
-
* - Prevents injection attacks through type constraints
|
|
140
|
-
* - String types prevent code injection
|
|
141
|
-
* - Enum types prevent unexpected value injection
|
|
142
|
-
* - Object shape validation prevents prototype pollution
|
|
143
|
-
*
|
|
144
|
-
* @author Hack23 AB (Data Infrastructure & Type Safety)
|
|
145
|
-
* @license Apache-2.0
|
|
146
|
-
* @version 2.0.0
|
|
147
|
-
* @since 2024-06-15
|
|
148
|
-
* @see https://json-schema-to-typescript.com/ (Type Generation Library)
|
|
149
|
-
* @see schemas/cia/ (JSON Schema Definitions)
|
|
150
|
-
* @see types/ (Generated TypeScript Definitions)
|
|
151
|
-
* @see Issue #76 (Type Safety Enhancement)
|
|
152
|
-
*/
|
|
153
|
-
import fs from 'node:fs/promises';
|
|
154
|
-
import path from 'node:path';
|
|
155
|
-
import { fileURLToPath } from 'node:url';
|
|
156
|
-
import { compile } from 'json-schema-to-typescript';
|
|
157
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
158
|
-
const __dirname = path.dirname(__filename);
|
|
159
|
-
class CIATypeGenerator {
|
|
160
|
-
schemasDir;
|
|
161
|
-
typesDir;
|
|
162
|
-
results;
|
|
163
|
-
constructor() {
|
|
164
|
-
this.schemasDir = path.join(__dirname, '..', 'schemas', 'cia');
|
|
165
|
-
this.typesDir = path.join(__dirname, '..', 'types');
|
|
166
|
-
this.results = {
|
|
167
|
-
generated: [],
|
|
168
|
-
failed: []
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Generate TypeScript types from a single schema
|
|
173
|
-
*/
|
|
174
|
-
async generateTypesForSchema(schemaFile) {
|
|
175
|
-
const schemaName = schemaFile.replace('.schema.json', '');
|
|
176
|
-
console.log(`π Generating types for: ${schemaName}...`);
|
|
177
|
-
try {
|
|
178
|
-
const schemaPath = path.join(this.schemasDir, schemaFile);
|
|
179
|
-
const schemaContent = await fs.readFile(schemaPath, 'utf8');
|
|
180
|
-
const schema = JSON.parse(schemaContent);
|
|
181
|
-
// Generate TypeScript types
|
|
182
|
-
const types = await compile(schema, schemaName, {
|
|
183
|
-
bannerComment: `/**
|
|
184
|
-
* Auto-generated TypeScript types from CIA JSON Schema
|
|
185
|
-
* Schema: ${schemaFile}
|
|
186
|
-
* Generated: ${new Date().toISOString()}
|
|
187
|
-
*
|
|
188
|
-
* DO NOT EDIT MANUALLY - This file is auto-generated
|
|
189
|
-
* Run 'npm run generate-types' to regenerate
|
|
190
|
-
*/`,
|
|
191
|
-
style: {
|
|
192
|
-
semi: true,
|
|
193
|
-
singleQuote: true,
|
|
194
|
-
tabWidth: 2
|
|
195
|
-
}
|
|
196
|
-
});
|
|
197
|
-
// Save types to file
|
|
198
|
-
const typesPath = path.join(this.typesDir, `${schemaName}.d.ts`);
|
|
199
|
-
await fs.writeFile(typesPath, types, 'utf8');
|
|
200
|
-
console.log(` β
Generated: ${schemaName}.d.ts`);
|
|
201
|
-
this.results.generated.push(schemaName);
|
|
202
|
-
return true;
|
|
203
|
-
}
|
|
204
|
-
catch (error) {
|
|
205
|
-
console.error(` β Failed: ${schemaName} - ${error.message}`);
|
|
206
|
-
this.results.failed.push({
|
|
207
|
-
schema: schemaName,
|
|
208
|
-
error: error.message
|
|
209
|
-
});
|
|
210
|
-
return false;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Generate types for all CIA schemas
|
|
215
|
-
*/
|
|
216
|
-
async generateAllTypes() {
|
|
217
|
-
console.log('π CIA Type Generation');
|
|
218
|
-
console.log('='.repeat(50));
|
|
219
|
-
console.log(`π Schemas directory: ${this.schemasDir}`);
|
|
220
|
-
console.log(`π Types directory: ${this.typesDir}`);
|
|
221
|
-
console.log('');
|
|
222
|
-
// Ensure types directory exists
|
|
223
|
-
await fs.mkdir(this.typesDir, { recursive: true });
|
|
224
|
-
// Get all schema files
|
|
225
|
-
let schemaFiles;
|
|
226
|
-
try {
|
|
227
|
-
const files = await fs.readdir(this.schemasDir);
|
|
228
|
-
schemaFiles = files.filter((f) => f.endsWith('.schema.json'));
|
|
229
|
-
}
|
|
230
|
-
catch (_error) {
|
|
231
|
-
console.error('β Could not read schemas directory');
|
|
232
|
-
console.error(' Run "npm run sync-schemas" first to download schemas');
|
|
233
|
-
return 1;
|
|
234
|
-
}
|
|
235
|
-
if (schemaFiles.length === 0) {
|
|
236
|
-
console.log('β οΈ No schema files found');
|
|
237
|
-
console.log(' Run "npm run sync-schemas" first to download schemas');
|
|
238
|
-
return 1;
|
|
239
|
-
}
|
|
240
|
-
console.log(`π Found ${schemaFiles.length} schema file(s)`);
|
|
241
|
-
console.log('');
|
|
242
|
-
// Generate types for each schema
|
|
243
|
-
for (const schemaFile of schemaFiles) {
|
|
244
|
-
await this.generateTypesForSchema(schemaFile);
|
|
245
|
-
}
|
|
246
|
-
// Create index file
|
|
247
|
-
await this.createIndexFile();
|
|
248
|
-
// Print summary
|
|
249
|
-
this.printSummary();
|
|
250
|
-
// Return exit code
|
|
251
|
-
return this.results.failed.length === 0 ? 0 : 1;
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Create index.d.ts that exports all types
|
|
255
|
-
*/
|
|
256
|
-
async createIndexFile() {
|
|
257
|
-
const imports = this.results.generated
|
|
258
|
-
.map((name) => `export * from './${name}';`)
|
|
259
|
-
.join('\n');
|
|
260
|
-
const indexContent = `/**
|
|
261
|
-
* CIA Data Types - Index
|
|
262
|
-
* Auto-generated from CIA JSON Schemas
|
|
263
|
-
* Generated: ${new Date().toISOString()}
|
|
264
|
-
*
|
|
265
|
-
* DO NOT EDIT MANUALLY
|
|
266
|
-
*/
|
|
267
|
-
|
|
268
|
-
${imports}
|
|
269
|
-
`;
|
|
270
|
-
const indexPath = path.join(this.typesDir, 'index.d.ts');
|
|
271
|
-
await fs.writeFile(indexPath, indexContent, 'utf8');
|
|
272
|
-
console.log('');
|
|
273
|
-
console.log('π¦ Created index.d.ts');
|
|
274
|
-
}
|
|
275
|
-
/**
|
|
276
|
-
* Print generation summary
|
|
277
|
-
*/
|
|
278
|
-
printSummary() {
|
|
279
|
-
console.log('');
|
|
280
|
-
console.log('='.repeat(50));
|
|
281
|
-
console.log('π Type Generation Summary');
|
|
282
|
-
console.log('='.repeat(50));
|
|
283
|
-
console.log(`β
Generated: ${this.results.generated.length}`);
|
|
284
|
-
console.log(`β Failed: ${this.results.failed.length}`);
|
|
285
|
-
if (this.results.failed.length > 0) {
|
|
286
|
-
console.log('');
|
|
287
|
-
console.log('β οΈ Failed generations:');
|
|
288
|
-
for (const failure of this.results.failed) {
|
|
289
|
-
console.log(` - ${failure.schema}: ${failure.error}`);
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
console.log('');
|
|
293
|
-
console.log(`π Types saved to: ${this.typesDir}`);
|
|
294
|
-
console.log('='.repeat(50));
|
|
295
|
-
console.log('');
|
|
296
|
-
console.log('π‘ Usage:');
|
|
297
|
-
console.log(' import type { OverviewDashboard } from "./types/overview-dashboard";');
|
|
298
|
-
console.log(' import type * as CIATypes from "./types";');
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
// Main execution
|
|
302
|
-
async function main() {
|
|
303
|
-
try {
|
|
304
|
-
const generator = new CIATypeGenerator();
|
|
305
|
-
const exitCode = await generator.generateAllTypes();
|
|
306
|
-
process.exit(exitCode);
|
|
307
|
-
}
|
|
308
|
-
catch (error) {
|
|
309
|
-
console.error('π₯ Fatal error:', error);
|
|
310
|
-
process.exit(1);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
// Run if called directly
|
|
314
|
-
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
315
|
-
main();
|
|
316
|
-
}
|
|
317
|
-
export default CIATypeGenerator;
|
|
318
|
-
//# sourceMappingURL=generate-types-from-cia-schemas.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate-types-from-cia-schemas.js","sourceRoot":"","sources":["../../scripts/generate-types-from-cia-schemas.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsJG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEpD,MAAM,UAAU,GAAW,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1D,MAAM,SAAS,GAAW,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAYnD,MAAM,gBAAgB;IACH,UAAU,CAAS;IACnB,QAAQ,CAAS;IACjB,OAAO,CAAoB;IAE5C;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG;YACb,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAAC,UAAkB;QAC7C,MAAM,UAAU,GAAW,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,4BAA4B,UAAU,KAAK,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,MAAM,UAAU,GAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YAClE,MAAM,aAAa,GAAW,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACpE,MAAM,MAAM,GAA4B,IAAI,CAAC,KAAK,CAAC,aAAa,CAA4B,CAAC;YAE7F,4BAA4B;YAC5B,MAAM,KAAK,GAAW,MAAM,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE;gBACtD,aAAa,EAAE;;aAEV,UAAU;gBACP,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;;;;IAIpC;gBACI,KAAK,EAAE;oBACL,IAAI,EAAE,IAAI;oBACV,WAAW,EAAE,IAAI;oBACjB,QAAQ,EAAE,CAAC;iBACZ;aACF,CAAC,CAAC;YAEH,qBAAqB;YACrB,MAAM,SAAS,GAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC;YACzE,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAE7C,OAAO,CAAC,GAAG,CAAC,mBAAmB,UAAU,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAExC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,gBAAgB,UAAU,MAAO,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1E,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;gBACvB,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAG,KAAe,CAAC,OAAO;aAChC,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,gCAAgC;QAChC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEnD,uBAAuB;QACvB,IAAI,WAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,KAAK,GAAa,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1D,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,MAAe,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACpD,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;YACzE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;YACvE,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,CAAC,MAAM,iBAAiB,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,iCAAiC;QACjC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAChD,CAAC;QAED,oBAAoB;QACpB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE7B,gBAAgB;QAChB,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,mBAAmB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACnB,MAAM,OAAO,GAAW,IAAI,CAAC,OAAO,CAAC,SAAS;aAC3C,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,oBAAoB,IAAI,IAAI,CAAC;aACnD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,YAAY,GAAW;;;gBAGjB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;;;;;EAKtC,OAAO;CACR,CAAC;QAEE,MAAM,SAAS,GAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACjE,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QAEpD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAEvD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACvC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,QAAQ,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC9D,CAAC;CACF;AAED,iBAAiB;AACjB,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,SAAS,GAAqB,IAAI,gBAAgB,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAW,MAAM,SAAS,CAAC,gBAAgB,EAAE,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,yBAAyB;AACzB,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,IAAI,EAAE,CAAC;AACT,CAAC;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module government-role-validator
|
|
3
|
-
* @description Validates government role attributions against the CIA platform's
|
|
4
|
-
* authoritative government role member data (view_riksdagen_goverment_role_member_sample.csv).
|
|
5
|
-
*
|
|
6
|
-
* ROOT CAUSE PREVENTION: Agentic workflows previously hallucinated government titles
|
|
7
|
-
* (e.g. calling Lotta Edholm "Deputy Prime Minister" when she is gymnasie-, hΓΆgskole-
|
|
8
|
-
* och forskningsminister, and the actual Vice statsminister is Ebba Busch (KD)).
|
|
9
|
-
* This module provides a validation layer that cross-references names against
|
|
10
|
-
* known government roles from the CIA data export.
|
|
11
|
-
*
|
|
12
|
-
* The CSV is downloaded from:
|
|
13
|
-
* https://raw.githubusercontent.com/Hack23/cia/refs/heads/master/service.data.impl/sample-data/view_riksdagen_goverment_role_member_sample.csv
|
|
14
|
-
*
|
|
15
|
-
* @author Hack23 AB
|
|
16
|
-
* @license Apache-2.0
|
|
17
|
-
*/
|
|
18
|
-
/** A single government role record from the CIA data export. */
|
|
19
|
-
export interface GovernmentRoleMember {
|
|
20
|
-
readonly roleId: string;
|
|
21
|
-
readonly department: string;
|
|
22
|
-
readonly roleCode: string;
|
|
23
|
-
readonly firstName: string;
|
|
24
|
-
readonly lastName: string;
|
|
25
|
-
readonly fromDate: string;
|
|
26
|
-
readonly toDate: string;
|
|
27
|
-
readonly personId: string;
|
|
28
|
-
readonly party: string;
|
|
29
|
-
readonly active: boolean;
|
|
30
|
-
}
|
|
31
|
-
/** Result of validating a name + claimed role against known data. */
|
|
32
|
-
export interface RoleValidationResult {
|
|
33
|
-
readonly valid: boolean;
|
|
34
|
-
readonly name: string;
|
|
35
|
-
readonly claimedRole: string;
|
|
36
|
-
readonly actualRoles: readonly GovernmentRoleMember[];
|
|
37
|
-
readonly suggestion: string;
|
|
38
|
-
}
|
|
39
|
-
export declare function loadGovernmentRoleMembers(repoRoot?: string): GovernmentRoleMember[];
|
|
40
|
-
/** Clear the cache (useful for testing). */
|
|
41
|
-
export declare function clearCache(): void;
|
|
42
|
-
/**
|
|
43
|
-
* Find all government roles for a person by last name (and optionally first name).
|
|
44
|
-
* Returns roles sorted by most recent first.
|
|
45
|
-
*/
|
|
46
|
-
export declare function findRolesForPerson(lastName: string, firstName?: string, repoRoot?: string): GovernmentRoleMember[];
|
|
47
|
-
/**
|
|
48
|
-
* Get the current (most recent active, or most recent) role for a person.
|
|
49
|
-
*/
|
|
50
|
-
export declare function getCurrentRole(lastName: string, firstName?: string, repoRoot?: string): GovernmentRoleMember | undefined;
|
|
51
|
-
/**
|
|
52
|
-
* Validate whether a claimed government role title is correct for a person.
|
|
53
|
-
* Returns a validation result with the actual role and a correction suggestion.
|
|
54
|
-
*
|
|
55
|
-
* @param fullName - Full name of the person (e.g. "Lotta Edholm")
|
|
56
|
-
* @param claimedRole - The role attributed in the article (e.g. "Deputy Prime Minister")
|
|
57
|
-
* @param repoRoot - Optional repository root path
|
|
58
|
-
*/
|
|
59
|
-
export declare function validateGovernmentRole(fullName: string, claimedRole: string, repoRoot?: string): RoleValidationResult;
|
|
60
|
-
/**
|
|
61
|
-
* Get a formatted role description for a person suitable for article text.
|
|
62
|
-
* Returns the most current role in "RoleCode FirstName LastName (Party)" format.
|
|
63
|
-
*/
|
|
64
|
-
export declare function getFormattedRole(lastName: string, firstName?: string, repoRoot?: string): string | undefined;
|
|
65
|
-
//# sourceMappingURL=government-role-validator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"government-role-validator.d.ts","sourceRoot":"","sources":["../../scripts/government-role-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,gEAAgE;AAChE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,qEAAqE;AACrE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAqED,wBAAgB,yBAAyB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAkBnF;AAED,4CAA4C;AAC5C,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,oBAAoB,EAAE,CAYxB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,oBAAoB,GAAG,SAAS,CAKlC;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,oBAAoB,CAiEtB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,GAAG,SAAS,CAIpB"}
|