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.
Files changed (546) hide show
  1. package/README.md +53 -1
  2. package/dist/lib/dashboards/party-dashboard.js +2 -1
  3. package/dist/lib/dashboards/party-dashboard.js.map +1 -1
  4. package/dist/lib/dashboards/risk-dashboard.js +2 -1
  5. package/dist/lib/dashboards/risk-dashboard.js.map +1 -1
  6. package/dist/lib/shared/index.d.ts +0 -1
  7. package/dist/lib/shared/index.d.ts.map +1 -1
  8. package/dist/lib/shared/index.js +3 -1
  9. package/dist/lib/shared/index.js.map +1 -1
  10. package/dist/lib/shared/register-globals.d.ts +1 -1
  11. package/dist/lib/shared/register-globals.d.ts.map +1 -1
  12. package/dist/lib/shared/register-globals.js +7 -1
  13. package/dist/lib/shared/register-globals.js.map +1 -1
  14. package/package.json +53 -21
  15. package/dist/scripts/analysis-reader.d.ts +0 -241
  16. package/dist/scripts/analysis-reader.d.ts.map +0 -1
  17. package/dist/scripts/analysis-reader.js +0 -531
  18. package/dist/scripts/analysis-reader.js.map +0 -1
  19. package/dist/scripts/article-quality-enhancer.d.ts +0 -148
  20. package/dist/scripts/article-quality-enhancer.d.ts.map +0 -1
  21. package/dist/scripts/article-quality-enhancer.js +0 -430
  22. package/dist/scripts/article-quality-enhancer.js.map +0 -1
  23. package/dist/scripts/article-template/constants.d.ts +0 -104
  24. package/dist/scripts/article-template/constants.d.ts.map +0 -1
  25. package/dist/scripts/article-template/constants.js +0 -225
  26. package/dist/scripts/article-template/constants.js.map +0 -1
  27. package/dist/scripts/article-template/helpers.d.ts +0 -83
  28. package/dist/scripts/article-template/helpers.d.ts.map +0 -1
  29. package/dist/scripts/article-template/helpers.js +0 -236
  30. package/dist/scripts/article-template/helpers.js.map +0 -1
  31. package/dist/scripts/article-template/index.d.ts +0 -39
  32. package/dist/scripts/article-template/index.d.ts.map +0 -1
  33. package/dist/scripts/article-template/index.js +0 -37
  34. package/dist/scripts/article-template/index.js.map +0 -1
  35. package/dist/scripts/article-template/registry.d.ts +0 -64
  36. package/dist/scripts/article-template/registry.d.ts.map +0 -1
  37. package/dist/scripts/article-template/registry.js +0 -405
  38. package/dist/scripts/article-template/registry.js.map +0 -1
  39. package/dist/scripts/article-template/template.d.ts +0 -18
  40. package/dist/scripts/article-template/template.d.ts.map +0 -1
  41. package/dist/scripts/article-template/template.js +0 -359
  42. package/dist/scripts/article-template/template.js.map +0 -1
  43. package/dist/scripts/article-template/types.d.ts +0 -90
  44. package/dist/scripts/article-template/types.d.ts.map +0 -1
  45. package/dist/scripts/article-template/types.js +0 -96
  46. package/dist/scripts/article-template/types.js.map +0 -1
  47. package/dist/scripts/article-template.d.ts +0 -18
  48. package/dist/scripts/article-template.d.ts.map +0 -1
  49. package/dist/scripts/article-template.js +0 -18
  50. package/dist/scripts/article-template.js.map +0 -1
  51. package/dist/scripts/catalog-downloaded-data.d.ts +0 -66
  52. package/dist/scripts/catalog-downloaded-data.d.ts.map +0 -1
  53. package/dist/scripts/catalog-downloaded-data.js +0 -239
  54. package/dist/scripts/catalog-downloaded-data.js.map +0 -1
  55. package/dist/scripts/check-cia-schema-updates.d.ts +0 -186
  56. package/dist/scripts/check-cia-schema-updates.d.ts.map +0 -1
  57. package/dist/scripts/check-cia-schema-updates.js +0 -363
  58. package/dist/scripts/check-cia-schema-updates.js.map +0 -1
  59. package/dist/scripts/data-transformers/calendar.d.ts +0 -16
  60. package/dist/scripts/data-transformers/calendar.d.ts.map +0 -1
  61. package/dist/scripts/data-transformers/calendar.js +0 -137
  62. package/dist/scripts/data-transformers/calendar.js.map +0 -1
  63. package/dist/scripts/data-transformers/constants/committee-names.d.ts +0 -15
  64. package/dist/scripts/data-transformers/constants/committee-names.d.ts.map +0 -1
  65. package/dist/scripts/data-transformers/constants/committee-names.js +0 -30
  66. package/dist/scripts/data-transformers/constants/committee-names.js.map +0 -1
  67. package/dist/scripts/data-transformers/constants/content-labels-part1.d.ts +0 -11
  68. package/dist/scripts/data-transformers/constants/content-labels-part1.d.ts.map +0 -1
  69. package/dist/scripts/data-transformers/constants/content-labels-part1.js +0 -900
  70. package/dist/scripts/data-transformers/constants/content-labels-part1.js.map +0 -1
  71. package/dist/scripts/data-transformers/constants/content-labels-part2.d.ts +0 -11
  72. package/dist/scripts/data-transformers/constants/content-labels-part2.d.ts.map +0 -1
  73. package/dist/scripts/data-transformers/constants/content-labels-part2.js +0 -900
  74. package/dist/scripts/data-transformers/constants/content-labels-part2.js.map +0 -1
  75. package/dist/scripts/data-transformers/constants/content-labels.d.ts +0 -13
  76. package/dist/scripts/data-transformers/constants/content-labels.d.ts.map +0 -1
  77. package/dist/scripts/data-transformers/constants/content-labels.js +0 -18
  78. package/dist/scripts/data-transformers/constants/content-labels.js.map +0 -1
  79. package/dist/scripts/data-transformers/constants/index.d.ts +0 -15
  80. package/dist/scripts/data-transformers/constants/index.d.ts.map +0 -1
  81. package/dist/scripts/data-transformers/constants/index.js +0 -15
  82. package/dist/scripts/data-transformers/constants/index.js.map +0 -1
  83. package/dist/scripts/data-transformers/constants/locale-map.d.ts +0 -13
  84. package/dist/scripts/data-transformers/constants/locale-map.d.ts.map +0 -1
  85. package/dist/scripts/data-transformers/constants/locale-map.js +0 -17
  86. package/dist/scripts/data-transformers/constants/locale-map.js.map +0 -1
  87. package/dist/scripts/data-transformers/constants.d.ts +0 -14
  88. package/dist/scripts/data-transformers/constants.d.ts.map +0 -1
  89. package/dist/scripts/data-transformers/constants.js +0 -14
  90. package/dist/scripts/data-transformers/constants.js.map +0 -1
  91. package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.d.ts +0 -64
  92. package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.d.ts.map +0 -1
  93. package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.js +0 -805
  94. package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.js.map +0 -1
  95. package/dist/scripts/data-transformers/content-generators/cia-overview-section.d.ts +0 -50
  96. package/dist/scripts/data-transformers/content-generators/cia-overview-section.d.ts.map +0 -1
  97. package/dist/scripts/data-transformers/content-generators/cia-overview-section.js +0 -310
  98. package/dist/scripts/data-transformers/content-generators/cia-overview-section.js.map +0 -1
  99. package/dist/scripts/data-transformers/content-generators/committee.d.ts +0 -12
  100. package/dist/scripts/data-transformers/content-generators/committee.d.ts.map +0 -1
  101. package/dist/scripts/data-transformers/content-generators/committee.js +0 -247
  102. package/dist/scripts/data-transformers/content-generators/committee.js.map +0 -1
  103. package/dist/scripts/data-transformers/content-generators/dashboard-section.d.ts +0 -124
  104. package/dist/scripts/data-transformers/content-generators/dashboard-section.d.ts.map +0 -1
  105. package/dist/scripts/data-transformers/content-generators/dashboard-section.js +0 -564
  106. package/dist/scripts/data-transformers/content-generators/dashboard-section.js.map +0 -1
  107. package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.d.ts +0 -82
  108. package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.d.ts.map +0 -1
  109. package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.js +0 -321
  110. package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.js.map +0 -1
  111. package/dist/scripts/data-transformers/content-generators/generic.d.ts +0 -12
  112. package/dist/scripts/data-transformers/content-generators/generic.d.ts.map +0 -1
  113. package/dist/scripts/data-transformers/content-generators/generic.js +0 -295
  114. package/dist/scripts/data-transformers/content-generators/generic.js.map +0 -1
  115. package/dist/scripts/data-transformers/content-generators/index.d.ts +0 -84
  116. package/dist/scripts/data-transformers/content-generators/index.d.ts.map +0 -1
  117. package/dist/scripts/data-transformers/content-generators/index.js +0 -47
  118. package/dist/scripts/data-transformers/content-generators/index.js.map +0 -1
  119. package/dist/scripts/data-transformers/content-generators/interpellations.d.ts +0 -12
  120. package/dist/scripts/data-transformers/content-generators/interpellations.d.ts.map +0 -1
  121. package/dist/scripts/data-transformers/content-generators/interpellations.js +0 -124
  122. package/dist/scripts/data-transformers/content-generators/interpellations.js.map +0 -1
  123. package/dist/scripts/data-transformers/content-generators/mindmap-section.d.ts +0 -137
  124. package/dist/scripts/data-transformers/content-generators/mindmap-section.d.ts.map +0 -1
  125. package/dist/scripts/data-transformers/content-generators/mindmap-section.js +0 -286
  126. package/dist/scripts/data-transformers/content-generators/mindmap-section.js.map +0 -1
  127. package/dist/scripts/data-transformers/content-generators/month-ahead.d.ts +0 -17
  128. package/dist/scripts/data-transformers/content-generators/month-ahead.d.ts.map +0 -1
  129. package/dist/scripts/data-transformers/content-generators/month-ahead.js +0 -212
  130. package/dist/scripts/data-transformers/content-generators/month-ahead.js.map +0 -1
  131. package/dist/scripts/data-transformers/content-generators/monthly-review.d.ts +0 -17
  132. package/dist/scripts/data-transformers/content-generators/monthly-review.d.ts.map +0 -1
  133. package/dist/scripts/data-transformers/content-generators/monthly-review.js +0 -173
  134. package/dist/scripts/data-transformers/content-generators/monthly-review.js.map +0 -1
  135. package/dist/scripts/data-transformers/content-generators/motions.d.ts +0 -12
  136. package/dist/scripts/data-transformers/content-generators/motions.d.ts.map +0 -1
  137. package/dist/scripts/data-transformers/content-generators/motions.js +0 -158
  138. package/dist/scripts/data-transformers/content-generators/motions.js.map +0 -1
  139. package/dist/scripts/data-transformers/content-generators/newsworthiness.d.ts +0 -62
  140. package/dist/scripts/data-transformers/content-generators/newsworthiness.d.ts.map +0 -1
  141. package/dist/scripts/data-transformers/content-generators/newsworthiness.js +0 -254
  142. package/dist/scripts/data-transformers/content-generators/newsworthiness.js.map +0 -1
  143. package/dist/scripts/data-transformers/content-generators/propositions.d.ts +0 -12
  144. package/dist/scripts/data-transformers/content-generators/propositions.d.ts.map +0 -1
  145. package/dist/scripts/data-transformers/content-generators/propositions.js +0 -263
  146. package/dist/scripts/data-transformers/content-generators/propositions.js.map +0 -1
  147. package/dist/scripts/data-transformers/content-generators/sankey-section.d.ts +0 -92
  148. package/dist/scripts/data-transformers/content-generators/sankey-section.d.ts.map +0 -1
  149. package/dist/scripts/data-transformers/content-generators/sankey-section.js +0 -257
  150. package/dist/scripts/data-transformers/content-generators/sankey-section.js.map +0 -1
  151. package/dist/scripts/data-transformers/content-generators/shared.d.ts +0 -139
  152. package/dist/scripts/data-transformers/content-generators/shared.d.ts.map +0 -1
  153. package/dist/scripts/data-transformers/content-generators/shared.js +0 -935
  154. package/dist/scripts/data-transformers/content-generators/shared.js.map +0 -1
  155. package/dist/scripts/data-transformers/content-generators/swot-section.d.ts +0 -50
  156. package/dist/scripts/data-transformers/content-generators/swot-section.d.ts.map +0 -1
  157. package/dist/scripts/data-transformers/content-generators/swot-section.js +0 -177
  158. package/dist/scripts/data-transformers/content-generators/swot-section.js.map +0 -1
  159. package/dist/scripts/data-transformers/content-generators/week-ahead.d.ts +0 -12
  160. package/dist/scripts/data-transformers/content-generators/week-ahead.d.ts.map +0 -1
  161. package/dist/scripts/data-transformers/content-generators/week-ahead.js +0 -332
  162. package/dist/scripts/data-transformers/content-generators/week-ahead.js.map +0 -1
  163. package/dist/scripts/data-transformers/content-generators.d.ts +0 -15
  164. package/dist/scripts/data-transformers/content-generators.d.ts.map +0 -1
  165. package/dist/scripts/data-transformers/content-generators.js +0 -14
  166. package/dist/scripts/data-transformers/content-generators.js.map +0 -1
  167. package/dist/scripts/data-transformers/document-analysis.d.ts +0 -58
  168. package/dist/scripts/data-transformers/document-analysis.d.ts.map +0 -1
  169. package/dist/scripts/data-transformers/document-analysis.js +0 -396
  170. package/dist/scripts/data-transformers/document-analysis.js.map +0 -1
  171. package/dist/scripts/data-transformers/helpers.d.ts +0 -144
  172. package/dist/scripts/data-transformers/helpers.d.ts.map +0 -1
  173. package/dist/scripts/data-transformers/helpers.js +0 -408
  174. package/dist/scripts/data-transformers/helpers.js.map +0 -1
  175. package/dist/scripts/data-transformers/index.d.ts +0 -45
  176. package/dist/scripts/data-transformers/index.d.ts.map +0 -1
  177. package/dist/scripts/data-transformers/index.js +0 -66
  178. package/dist/scripts/data-transformers/index.js.map +0 -1
  179. package/dist/scripts/data-transformers/metadata.d.ts +0 -42
  180. package/dist/scripts/data-transformers/metadata.d.ts.map +0 -1
  181. package/dist/scripts/data-transformers/metadata.js +0 -385
  182. package/dist/scripts/data-transformers/metadata.js.map +0 -1
  183. package/dist/scripts/data-transformers/policy-analysis.d.ts +0 -105
  184. package/dist/scripts/data-transformers/policy-analysis.d.ts.map +0 -1
  185. package/dist/scripts/data-transformers/policy-analysis.js +0 -686
  186. package/dist/scripts/data-transformers/policy-analysis.js.map +0 -1
  187. package/dist/scripts/data-transformers/risk-analysis.d.ts +0 -104
  188. package/dist/scripts/data-transformers/risk-analysis.d.ts.map +0 -1
  189. package/dist/scripts/data-transformers/risk-analysis.js +0 -279
  190. package/dist/scripts/data-transformers/risk-analysis.js.map +0 -1
  191. package/dist/scripts/data-transformers/types.d.ts +0 -260
  192. package/dist/scripts/data-transformers/types.d.ts.map +0 -1
  193. package/dist/scripts/data-transformers/types.js +0 -11
  194. package/dist/scripts/data-transformers/types.js.map +0 -1
  195. package/dist/scripts/data-transformers.d.ts +0 -23
  196. package/dist/scripts/data-transformers.d.ts.map +0 -1
  197. package/dist/scripts/data-transformers.js +0 -35
  198. package/dist/scripts/data-transformers.js.map +0 -1
  199. package/dist/scripts/deep-inspection/index.d.ts +0 -55
  200. package/dist/scripts/deep-inspection/index.d.ts.map +0 -1
  201. package/dist/scripts/deep-inspection/index.js +0 -66
  202. package/dist/scripts/deep-inspection/index.js.map +0 -1
  203. package/dist/scripts/detect-swedish-leakage.d.ts +0 -69
  204. package/dist/scripts/detect-swedish-leakage.d.ts.map +0 -1
  205. package/dist/scripts/detect-swedish-leakage.js +0 -417
  206. package/dist/scripts/detect-swedish-leakage.js.map +0 -1
  207. package/dist/scripts/editorial-framework.d.ts +0 -121
  208. package/dist/scripts/editorial-framework.d.ts.map +0 -1
  209. package/dist/scripts/editorial-framework.js +0 -364
  210. package/dist/scripts/editorial-framework.js.map +0 -1
  211. package/dist/scripts/editorial-pillars.d.ts +0 -43
  212. package/dist/scripts/editorial-pillars.d.ts.map +0 -1
  213. package/dist/scripts/editorial-pillars.js +0 -215
  214. package/dist/scripts/editorial-pillars.js.map +0 -1
  215. package/dist/scripts/extract-news-metadata.d.ts +0 -12
  216. package/dist/scripts/extract-news-metadata.d.ts.map +0 -1
  217. package/dist/scripts/extract-news-metadata.js +0 -107
  218. package/dist/scripts/extract-news-metadata.js.map +0 -1
  219. package/dist/scripts/extract-vocabulary.d.ts +0 -15
  220. package/dist/scripts/extract-vocabulary.d.ts.map +0 -1
  221. package/dist/scripts/extract-vocabulary.js +0 -255
  222. package/dist/scripts/extract-vocabulary.js.map +0 -1
  223. package/dist/scripts/fix-article-navigation.d.ts +0 -37
  224. package/dist/scripts/fix-article-navigation.d.ts.map +0 -1
  225. package/dist/scripts/fix-article-navigation.js +0 -198
  226. package/dist/scripts/fix-article-navigation.js.map +0 -1
  227. package/dist/scripts/fix-keywords-localization.d.ts +0 -18
  228. package/dist/scripts/fix-keywords-localization.d.ts.map +0 -1
  229. package/dist/scripts/fix-keywords-localization.js +0 -270
  230. package/dist/scripts/fix-keywords-localization.js.map +0 -1
  231. package/dist/scripts/fix-old-articles-branding.d.ts +0 -17
  232. package/dist/scripts/fix-old-articles-branding.d.ts.map +0 -1
  233. package/dist/scripts/fix-old-articles-branding.js +0 -229
  234. package/dist/scripts/fix-old-articles-branding.js.map +0 -1
  235. package/dist/scripts/generate-news-backport.d.ts +0 -16
  236. package/dist/scripts/generate-news-backport.d.ts.map +0 -1
  237. package/dist/scripts/generate-news-backport.js +0 -379
  238. package/dist/scripts/generate-news-backport.js.map +0 -1
  239. package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.d.ts +0 -141
  240. package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.d.ts.map +0 -1
  241. package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.js +0 -546
  242. package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.js.map +0 -1
  243. package/dist/scripts/generate-news-enhanced/analysis-cache.d.ts +0 -59
  244. package/dist/scripts/generate-news-enhanced/analysis-cache.d.ts.map +0 -1
  245. package/dist/scripts/generate-news-enhanced/analysis-cache.js +0 -116
  246. package/dist/scripts/generate-news-enhanced/analysis-cache.js.map +0 -1
  247. package/dist/scripts/generate-news-enhanced/analysis-labels.d.ts +0 -58
  248. package/dist/scripts/generate-news-enhanced/analysis-labels.d.ts.map +0 -1
  249. package/dist/scripts/generate-news-enhanced/analysis-labels.js +0 -144
  250. package/dist/scripts/generate-news-enhanced/analysis-labels.js.map +0 -1
  251. package/dist/scripts/generate-news-enhanced/config.d.ts +0 -58
  252. package/dist/scripts/generate-news-enhanced/config.d.ts.map +0 -1
  253. package/dist/scripts/generate-news-enhanced/config.js +0 -286
  254. package/dist/scripts/generate-news-enhanced/config.js.map +0 -1
  255. package/dist/scripts/generate-news-enhanced/generators.d.ts +0 -119
  256. package/dist/scripts/generate-news-enhanced/generators.d.ts.map +0 -1
  257. package/dist/scripts/generate-news-enhanced/generators.js +0 -2131
  258. package/dist/scripts/generate-news-enhanced/generators.js.map +0 -1
  259. package/dist/scripts/generate-news-enhanced/helpers.d.ts +0 -122
  260. package/dist/scripts/generate-news-enhanced/helpers.d.ts.map +0 -1
  261. package/dist/scripts/generate-news-enhanced/helpers.js +0 -468
  262. package/dist/scripts/generate-news-enhanced/helpers.js.map +0 -1
  263. package/dist/scripts/generate-news-enhanced/index.d.ts +0 -19
  264. package/dist/scripts/generate-news-enhanced/index.d.ts.map +0 -1
  265. package/dist/scripts/generate-news-enhanced/index.js +0 -221
  266. package/dist/scripts/generate-news-enhanced/index.js.map +0 -1
  267. package/dist/scripts/generate-news-enhanced/swot-analyzer.d.ts +0 -46
  268. package/dist/scripts/generate-news-enhanced/swot-analyzer.d.ts.map +0 -1
  269. package/dist/scripts/generate-news-enhanced/swot-analyzer.js +0 -1227
  270. package/dist/scripts/generate-news-enhanced/swot-analyzer.js.map +0 -1
  271. package/dist/scripts/generate-news-enhanced/types.d.ts +0 -34
  272. package/dist/scripts/generate-news-enhanced/types.d.ts.map +0 -1
  273. package/dist/scripts/generate-news-enhanced/types.js +0 -9
  274. package/dist/scripts/generate-news-enhanced/types.js.map +0 -1
  275. package/dist/scripts/generate-news-enhanced.d.ts +0 -25
  276. package/dist/scripts/generate-news-enhanced.d.ts.map +0 -1
  277. package/dist/scripts/generate-news-enhanced.js +0 -37
  278. package/dist/scripts/generate-news-enhanced.js.map +0 -1
  279. package/dist/scripts/generate-news-indexes/constants.d.ts +0 -20
  280. package/dist/scripts/generate-news-indexes/constants.d.ts.map +0 -1
  281. package/dist/scripts/generate-news-indexes/constants.js +0 -308
  282. package/dist/scripts/generate-news-indexes/constants.js.map +0 -1
  283. package/dist/scripts/generate-news-indexes/helpers.d.ts +0 -73
  284. package/dist/scripts/generate-news-indexes/helpers.d.ts.map +0 -1
  285. package/dist/scripts/generate-news-indexes/helpers.js +0 -352
  286. package/dist/scripts/generate-news-indexes/helpers.js.map +0 -1
  287. package/dist/scripts/generate-news-indexes/index.d.ts +0 -20
  288. package/dist/scripts/generate-news-indexes/index.d.ts.map +0 -1
  289. package/dist/scripts/generate-news-indexes/index.js +0 -75
  290. package/dist/scripts/generate-news-indexes/index.js.map +0 -1
  291. package/dist/scripts/generate-news-indexes/template.d.ts +0 -25
  292. package/dist/scripts/generate-news-indexes/template.d.ts.map +0 -1
  293. package/dist/scripts/generate-news-indexes/template.js +0 -644
  294. package/dist/scripts/generate-news-indexes/template.js.map +0 -1
  295. package/dist/scripts/generate-news-indexes/types.d.ts +0 -96
  296. package/dist/scripts/generate-news-indexes/types.d.ts.map +0 -1
  297. package/dist/scripts/generate-news-indexes/types.js +0 -9
  298. package/dist/scripts/generate-news-indexes/types.js.map +0 -1
  299. package/dist/scripts/generate-news-indexes.d.ts +0 -20
  300. package/dist/scripts/generate-news-indexes.d.ts.map +0 -1
  301. package/dist/scripts/generate-news-indexes.js +0 -19
  302. package/dist/scripts/generate-news-indexes.js.map +0 -1
  303. package/dist/scripts/generate-rss.d.ts +0 -48
  304. package/dist/scripts/generate-rss.d.ts.map +0 -1
  305. package/dist/scripts/generate-rss.js +0 -299
  306. package/dist/scripts/generate-rss.js.map +0 -1
  307. package/dist/scripts/generate-sitemap-html.d.ts +0 -79
  308. package/dist/scripts/generate-sitemap-html.d.ts.map +0 -1
  309. package/dist/scripts/generate-sitemap-html.js +0 -878
  310. package/dist/scripts/generate-sitemap-html.js.map +0 -1
  311. package/dist/scripts/generate-sitemap.d.ts +0 -23
  312. package/dist/scripts/generate-sitemap.d.ts.map +0 -1
  313. package/dist/scripts/generate-sitemap.js +0 -476
  314. package/dist/scripts/generate-sitemap.js.map +0 -1
  315. package/dist/scripts/generate-types-from-cia-schemas.d.ts +0 -176
  316. package/dist/scripts/generate-types-from-cia-schemas.d.ts.map +0 -1
  317. package/dist/scripts/generate-types-from-cia-schemas.js +0 -318
  318. package/dist/scripts/generate-types-from-cia-schemas.js.map +0 -1
  319. package/dist/scripts/government-role-validator.d.ts +0 -65
  320. package/dist/scripts/government-role-validator.d.ts.map +0 -1
  321. package/dist/scripts/government-role-validator.js +0 -217
  322. package/dist/scripts/government-role-validator.js.map +0 -1
  323. package/dist/scripts/html-utils.d.ts +0 -17
  324. package/dist/scripts/html-utils.d.ts.map +0 -1
  325. package/dist/scripts/html-utils.js +0 -29
  326. package/dist/scripts/html-utils.js.map +0 -1
  327. package/dist/scripts/load-cia-stats.d.ts +0 -89
  328. package/dist/scripts/load-cia-stats.d.ts.map +0 -1
  329. package/dist/scripts/load-cia-stats.js +0 -400
  330. package/dist/scripts/load-cia-stats.js.map +0 -1
  331. package/dist/scripts/mcp-client/client.d.ts +0 -73
  332. package/dist/scripts/mcp-client/client.d.ts.map +0 -1
  333. package/dist/scripts/mcp-client/client.js +0 -526
  334. package/dist/scripts/mcp-client/client.js.map +0 -1
  335. package/dist/scripts/mcp-client/document-types.d.ts +0 -23
  336. package/dist/scripts/mcp-client/document-types.d.ts.map +0 -1
  337. package/dist/scripts/mcp-client/document-types.js +0 -62
  338. package/dist/scripts/mcp-client/document-types.js.map +0 -1
  339. package/dist/scripts/mcp-client/index.d.ts +0 -34
  340. package/dist/scripts/mcp-client/index.d.ts.map +0 -1
  341. package/dist/scripts/mcp-client/index.js +0 -67
  342. package/dist/scripts/mcp-client/index.js.map +0 -1
  343. package/dist/scripts/mcp-client/transport.d.ts +0 -32
  344. package/dist/scripts/mcp-client/transport.d.ts.map +0 -1
  345. package/dist/scripts/mcp-client/transport.js +0 -102
  346. package/dist/scripts/mcp-client/transport.js.map +0 -1
  347. package/dist/scripts/mcp-client.d.ts +0 -18
  348. package/dist/scripts/mcp-client.d.ts.map +0 -1
  349. package/dist/scripts/mcp-client.js +0 -18
  350. package/dist/scripts/mcp-client.js.map +0 -1
  351. package/dist/scripts/mcp-query-cli.d.ts +0 -25
  352. package/dist/scripts/mcp-query-cli.d.ts.map +0 -1
  353. package/dist/scripts/mcp-query-cli.js +0 -66
  354. package/dist/scripts/mcp-query-cli.js.map +0 -1
  355. package/dist/scripts/news-types/breaking-news.d.ts +0 -178
  356. package/dist/scripts/news-types/breaking-news.d.ts.map +0 -1
  357. package/dist/scripts/news-types/breaking-news.js +0 -432
  358. package/dist/scripts/news-types/breaking-news.js.map +0 -1
  359. package/dist/scripts/news-types/committee-reports.d.ts +0 -212
  360. package/dist/scripts/news-types/committee-reports.d.ts.map +0 -1
  361. package/dist/scripts/news-types/committee-reports.js +0 -404
  362. package/dist/scripts/news-types/committee-reports.js.map +0 -1
  363. package/dist/scripts/news-types/month-ahead.d.ts +0 -71
  364. package/dist/scripts/news-types/month-ahead.d.ts.map +0 -1
  365. package/dist/scripts/news-types/month-ahead.js +0 -392
  366. package/dist/scripts/news-types/month-ahead.js.map +0 -1
  367. package/dist/scripts/news-types/monthly-review.d.ts +0 -61
  368. package/dist/scripts/news-types/monthly-review.d.ts.map +0 -1
  369. package/dist/scripts/news-types/monthly-review.js +0 -417
  370. package/dist/scripts/news-types/monthly-review.js.map +0 -1
  371. package/dist/scripts/news-types/motions.d.ts +0 -214
  372. package/dist/scripts/news-types/motions.d.ts.map +0 -1
  373. package/dist/scripts/news-types/motions.js +0 -447
  374. package/dist/scripts/news-types/motions.js.map +0 -1
  375. package/dist/scripts/news-types/propositions.d.ts +0 -204
  376. package/dist/scripts/news-types/propositions.d.ts.map +0 -1
  377. package/dist/scripts/news-types/propositions.js +0 -401
  378. package/dist/scripts/news-types/propositions.js.map +0 -1
  379. package/dist/scripts/news-types/week-ahead.d.ts +0 -231
  380. package/dist/scripts/news-types/week-ahead.d.ts.map +0 -1
  381. package/dist/scripts/news-types/week-ahead.js +0 -441
  382. package/dist/scripts/news-types/week-ahead.js.map +0 -1
  383. package/dist/scripts/news-types/weekly-review/analysis.d.ts +0 -47
  384. package/dist/scripts/news-types/weekly-review/analysis.d.ts.map +0 -1
  385. package/dist/scripts/news-types/weekly-review/analysis.js +0 -276
  386. package/dist/scripts/news-types/weekly-review/analysis.js.map +0 -1
  387. package/dist/scripts/news-types/weekly-review/data-loader.d.ts +0 -51
  388. package/dist/scripts/news-types/weekly-review/data-loader.d.ts.map +0 -1
  389. package/dist/scripts/news-types/weekly-review/data-loader.js +0 -298
  390. package/dist/scripts/news-types/weekly-review/data-loader.js.map +0 -1
  391. package/dist/scripts/news-types/weekly-review/generator.d.ts +0 -18
  392. package/dist/scripts/news-types/weekly-review/generator.d.ts.map +0 -1
  393. package/dist/scripts/news-types/weekly-review/generator.js +0 -284
  394. package/dist/scripts/news-types/weekly-review/generator.js.map +0 -1
  395. package/dist/scripts/news-types/weekly-review/index.d.ts +0 -20
  396. package/dist/scripts/news-types/weekly-review/index.d.ts.map +0 -1
  397. package/dist/scripts/news-types/weekly-review/index.js +0 -23
  398. package/dist/scripts/news-types/weekly-review/index.js.map +0 -1
  399. package/dist/scripts/news-types/weekly-review/types.d.ts +0 -72
  400. package/dist/scripts/news-types/weekly-review/types.d.ts.map +0 -1
  401. package/dist/scripts/news-types/weekly-review/types.js +0 -20
  402. package/dist/scripts/news-types/weekly-review/types.js.map +0 -1
  403. package/dist/scripts/news-types/weekly-review/validation.d.ts +0 -10
  404. package/dist/scripts/news-types/weekly-review/validation.d.ts.map +0 -1
  405. package/dist/scripts/news-types/weekly-review/validation.js +0 -95
  406. package/dist/scripts/news-types/weekly-review/validation.js.map +0 -1
  407. package/dist/scripts/news-types/weekly-review.d.ts +0 -15
  408. package/dist/scripts/news-types/weekly-review.d.ts.map +0 -1
  409. package/dist/scripts/news-types/weekly-review.js +0 -14
  410. package/dist/scripts/news-types/weekly-review.js.map +0 -1
  411. package/dist/scripts/party-variants.d.ts +0 -23
  412. package/dist/scripts/party-variants.d.ts.map +0 -1
  413. package/dist/scripts/party-variants.js +0 -50
  414. package/dist/scripts/party-variants.js.map +0 -1
  415. package/dist/scripts/pipeline/index.d.ts +0 -19
  416. package/dist/scripts/pipeline/index.d.ts.map +0 -1
  417. package/dist/scripts/pipeline/index.js +0 -17
  418. package/dist/scripts/pipeline/index.js.map +0 -1
  419. package/dist/scripts/pipeline/orchestrator.d.ts +0 -56
  420. package/dist/scripts/pipeline/orchestrator.d.ts.map +0 -1
  421. package/dist/scripts/pipeline/orchestrator.js +0 -147
  422. package/dist/scripts/pipeline/orchestrator.js.map +0 -1
  423. package/dist/scripts/pipeline/types.d.ts +0 -117
  424. package/dist/scripts/pipeline/types.d.ts.map +0 -1
  425. package/dist/scripts/pipeline/types.js +0 -13
  426. package/dist/scripts/pipeline/types.js.map +0 -1
  427. package/dist/scripts/pipeline/validation.d.ts +0 -66
  428. package/dist/scripts/pipeline/validation.d.ts.map +0 -1
  429. package/dist/scripts/pipeline/validation.js +0 -129
  430. package/dist/scripts/pipeline/validation.js.map +0 -1
  431. package/dist/scripts/populate-analysis-data.d.ts +0 -41
  432. package/dist/scripts/populate-analysis-data.d.ts.map +0 -1
  433. package/dist/scripts/populate-analysis-data.js +0 -255
  434. package/dist/scripts/populate-analysis-data.js.map +0 -1
  435. package/dist/scripts/pre-article-analysis/data-downloader.d.ts +0 -80
  436. package/dist/scripts/pre-article-analysis/data-downloader.d.ts.map +0 -1
  437. package/dist/scripts/pre-article-analysis/data-downloader.js +0 -230
  438. package/dist/scripts/pre-article-analysis/data-downloader.js.map +0 -1
  439. package/dist/scripts/pre-article-analysis/data-persistence.d.ts +0 -141
  440. package/dist/scripts/pre-article-analysis/data-persistence.d.ts.map +0 -1
  441. package/dist/scripts/pre-article-analysis/data-persistence.js +0 -345
  442. package/dist/scripts/pre-article-analysis/data-persistence.js.map +0 -1
  443. package/dist/scripts/pre-article-analysis/markdown-serializer.d.ts +0 -158
  444. package/dist/scripts/pre-article-analysis/markdown-serializer.d.ts.map +0 -1
  445. package/dist/scripts/pre-article-analysis/markdown-serializer.js +0 -648
  446. package/dist/scripts/pre-article-analysis/markdown-serializer.js.map +0 -1
  447. package/dist/scripts/pre-article-analysis/pdf-converter.d.ts +0 -58
  448. package/dist/scripts/pre-article-analysis/pdf-converter.d.ts.map +0 -1
  449. package/dist/scripts/pre-article-analysis/pdf-converter.js +0 -142
  450. package/dist/scripts/pre-article-analysis/pdf-converter.js.map +0 -1
  451. package/dist/scripts/pre-article-analysis.d.ts +0 -42
  452. package/dist/scripts/pre-article-analysis.d.ts.map +0 -1
  453. package/dist/scripts/pre-article-analysis.js +0 -642
  454. package/dist/scripts/pre-article-analysis.js.map +0 -1
  455. package/dist/scripts/scb-client.d.ts +0 -104
  456. package/dist/scripts/scb-client.d.ts.map +0 -1
  457. package/dist/scripts/scb-client.js +0 -286
  458. package/dist/scripts/scb-client.js.map +0 -1
  459. package/dist/scripts/scb-context.d.ts +0 -88
  460. package/dist/scripts/scb-context.d.ts.map +0 -1
  461. package/dist/scripts/scb-context.js +0 -307
  462. package/dist/scripts/scb-context.js.map +0 -1
  463. package/dist/scripts/shared/version.d.ts +0 -9
  464. package/dist/scripts/shared/version.d.ts.map +0 -1
  465. package/dist/scripts/shared/version.js +0 -28
  466. package/dist/scripts/shared/version.js.map +0 -1
  467. package/dist/scripts/statistical-claims-detector.d.ts +0 -119
  468. package/dist/scripts/statistical-claims-detector.d.ts.map +0 -1
  469. package/dist/scripts/statistical-claims-detector.js +0 -391
  470. package/dist/scripts/statistical-claims-detector.js.map +0 -1
  471. package/dist/scripts/sync-cia-schemas.d.ts +0 -52
  472. package/dist/scripts/sync-cia-schemas.d.ts.map +0 -1
  473. package/dist/scripts/sync-cia-schemas.js +0 -195
  474. package/dist/scripts/sync-cia-schemas.js.map +0 -1
  475. package/dist/scripts/translation-dictionary.d.ts +0 -45
  476. package/dist/scripts/translation-dictionary.d.ts.map +0 -1
  477. package/dist/scripts/translation-dictionary.js +0 -3642
  478. package/dist/scripts/translation-dictionary.js.map +0 -1
  479. package/dist/scripts/types/article.d.ts +0 -392
  480. package/dist/scripts/types/article.d.ts.map +0 -1
  481. package/dist/scripts/types/article.js +0 -6
  482. package/dist/scripts/types/article.js.map +0 -1
  483. package/dist/scripts/types/content.d.ts +0 -167
  484. package/dist/scripts/types/content.d.ts.map +0 -1
  485. package/dist/scripts/types/content.js +0 -6
  486. package/dist/scripts/types/content.js.map +0 -1
  487. package/dist/scripts/types/editorial.d.ts +0 -17
  488. package/dist/scripts/types/editorial.d.ts.map +0 -1
  489. package/dist/scripts/types/editorial.js +0 -6
  490. package/dist/scripts/types/editorial.js.map +0 -1
  491. package/dist/scripts/types/language.d.ts +0 -7
  492. package/dist/scripts/types/language.d.ts.map +0 -1
  493. package/dist/scripts/types/language.js +0 -6
  494. package/dist/scripts/types/language.js.map +0 -1
  495. package/dist/scripts/types/mcp.d.ts +0 -117
  496. package/dist/scripts/types/mcp.d.ts.map +0 -1
  497. package/dist/scripts/types/mcp.js +0 -6
  498. package/dist/scripts/types/mcp.js.map +0 -1
  499. package/dist/scripts/types/party.d.ts +0 -9
  500. package/dist/scripts/types/party.d.ts.map +0 -1
  501. package/dist/scripts/types/party.js +0 -6
  502. package/dist/scripts/types/party.js.map +0 -1
  503. package/dist/scripts/types/validation.d.ts +0 -136
  504. package/dist/scripts/types/validation.d.ts.map +0 -1
  505. package/dist/scripts/types/validation.js +0 -6
  506. package/dist/scripts/types/validation.js.map +0 -1
  507. package/dist/scripts/types/workflow.d.ts +0 -78
  508. package/dist/scripts/types/workflow.d.ts.map +0 -1
  509. package/dist/scripts/types/workflow.js +0 -6
  510. package/dist/scripts/types/workflow.js.map +0 -1
  511. package/dist/scripts/update-stats-from-cia.d.ts +0 -44
  512. package/dist/scripts/update-stats-from-cia.d.ts.map +0 -1
  513. package/dist/scripts/update-stats-from-cia.js +0 -310
  514. package/dist/scripts/update-stats-from-cia.js.map +0 -1
  515. package/dist/scripts/validate-against-cia-schemas.d.ts +0 -126
  516. package/dist/scripts/validate-against-cia-schemas.d.ts.map +0 -1
  517. package/dist/scripts/validate-against-cia-schemas.js +0 -299
  518. package/dist/scripts/validate-against-cia-schemas.js.map +0 -1
  519. package/dist/scripts/validate-cross-references.d.ts +0 -49
  520. package/dist/scripts/validate-cross-references.d.ts.map +0 -1
  521. package/dist/scripts/validate-cross-references.js +0 -183
  522. package/dist/scripts/validate-cross-references.js.map +0 -1
  523. package/dist/scripts/validate-file-ownership.d.ts +0 -68
  524. package/dist/scripts/validate-file-ownership.d.ts.map +0 -1
  525. package/dist/scripts/validate-file-ownership.js +0 -135
  526. package/dist/scripts/validate-file-ownership.js.map +0 -1
  527. package/dist/scripts/validate-news-translations.d.ts +0 -27
  528. package/dist/scripts/validate-news-translations.d.ts.map +0 -1
  529. package/dist/scripts/validate-news-translations.js +0 -258
  530. package/dist/scripts/validate-news-translations.js.map +0 -1
  531. package/dist/scripts/validate-translations.d.ts +0 -162
  532. package/dist/scripts/validate-translations.d.ts.map +0 -1
  533. package/dist/scripts/validate-translations.js +0 -378
  534. package/dist/scripts/validate-translations.js.map +0 -1
  535. package/dist/scripts/workflow-state-coordinator.d.ts +0 -354
  536. package/dist/scripts/workflow-state-coordinator.d.ts.map +0 -1
  537. package/dist/scripts/workflow-state-coordinator.js +0 -876
  538. package/dist/scripts/workflow-state-coordinator.js.map +0 -1
  539. package/dist/scripts/world-bank-client.d.ts +0 -122
  540. package/dist/scripts/world-bank-client.d.ts.map +0 -1
  541. package/dist/scripts/world-bank-client.js +0 -192
  542. package/dist/scripts/world-bank-client.js.map +0 -1
  543. package/dist/scripts/world-bank-context.d.ts +0 -88
  544. package/dist/scripts/world-bank-context.d.ts.map +0 -1
  545. package/dist/scripts/world-bank-context.js +0 -331
  546. package/dist/scripts/world-bank-context.js.map +0 -1
@@ -1,359 +0,0 @@
1
- /**
2
- * @module article-template/template
3
- * @description Main article HTML template generator producing complete
4
- * HTML5 documents with Schema.org structured data, Open Graph / Twitter
5
- * Card metadata, hreflang tags, and 14-language support.
6
- *
7
- * @author Hack23 AB
8
- * @license Apache-2.0
9
- */
10
- import { escapeHtml } from '../html-utils.js';
11
- import { CONTENT_LABELS } from '../data-transformers.js';
12
- import { SITE_TAGLINE, OG_LOCALE_MAP, TYPE_LABELS, ALL_LANG_CODES } from './constants.js';
13
- import { getStyleClass } from './registry.js';
14
- import { ARTICLE_TYPE_NAMES } from './types.js';
15
- import { getBreadcrumbName, getFooterLabel, getNewsIndexFilename, sanitizeArticleBody, fixHtmlNesting, formatDate, generateEventCalendar, generateWatchSection, generateArticleLanguageSwitcher, generateSiteFooter, hreflangCode, } from './helpers.js';
16
- /**
17
- * Map a political intelligence classification level to its corresponding icon emoji.
18
- * Returns the appropriate colour-coded circle for use in classification badges.
19
- */
20
- function getClassificationIcon(level) {
21
- switch (level) {
22
- case 'CRITICAL': return '🔴';
23
- case 'HIGH': return '🟠';
24
- case 'LOW': return '🟢';
25
- case 'MEDIUM': return '🟡';
26
- }
27
- // Exhaustiveness guard – runtime fallback for deserialized data
28
- return (((_) => '⚪')(level));
29
- }
30
- /**
31
- * Sanitize dynamic values used in CSS class suffixes.
32
- * Keeps only safe class-token characters.
33
- */
34
- function toSafeClassToken(value) {
35
- return value.toLowerCase().replace(/[^a-z0-9_-]/g, '-');
36
- }
37
- /**
38
- * Generate complete article HTML document.
39
- *
40
- * @param data - Article data including title, subtitle, content, events, watchPoints, etc.
41
- * @returns Complete HTML5 document string
42
- */
43
- export function generateArticleHTML(data) {
44
- const { slug, title, subtitle, date, type, articleType, readTime = '5 min read', lang = 'en', locale, content, events = [], watchPoints = [], sources = [], keywords = [], tags = [], sections = [], significance, urgency, classificationLevel, riskLevel, confidenceLabel, } = data;
45
- // Use proper OG locale for the language
46
- const ogLocale = locale || OG_LOCALE_MAP[lang] || 'en_US';
47
- const dateObj = new Date(date);
48
- const formattedDate = formatDate(dateObj, lang);
49
- const isoDate = dateObj.toISOString().split('T')[0] ?? '';
50
- // Fix invalid HTML nesting once so both the rendered body and JSON-LD are consistent
51
- const fixedContent = fixHtmlNesting(content);
52
- // Fall back to English labels if language not supported.
53
- // When articleType is set, prefer the per-type localized name from
54
- // ARTICLE_TYPE_NAMES (e.g. "Propositioner") over the category label
55
- // from TYPE_LABELS (e.g. "Analysis"). Fall back to TYPE_LABELS when
56
- // articleType is omitted or has no entry.
57
- const typeLabel = (articleType && ARTICLE_TYPE_NAMES[articleType]?.[lang])
58
- || (articleType && ARTICLE_TYPE_NAMES[articleType]?.['en'])
59
- || TYPE_LABELS[lang]?.[type]
60
- || TYPE_LABELS.en[type]
61
- || 'News';
62
- // Derive the per-type CSS class from the registry (e.g. 'article-type-propositions')
63
- // Only apply when articleType is explicitly set — ArticleCategory values are not
64
- // valid ArticleType keys, so falling back to `type` would silently resolve to
65
- // the 'breaking' default. When omitted, keep the base `.news-article` styling.
66
- const articleTypeClass = articleType ? ` ${getStyleClass(articleType)}` : '';
67
- // Generate hreflang tags for all available language variants
68
- const isRTL = lang === 'ar' || lang === 'he';
69
- const dirAttr = isRTL ? ' dir="rtl"' : '';
70
- const baseSlug = slug.replace(`-${lang}.html`, '');
71
- return `<!DOCTYPE html>
72
- <html lang="${hreflangCode(lang)}"${dirAttr}>
73
- <head>
74
- <meta charset="UTF-8">
75
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
76
- <meta http-equiv="Content-Security-Policy" content="default-src 'self' https:; script-src 'self' 'unsafe-inline' https:; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: https:; connect-src 'self' https:; base-uri 'self'; form-action 'self'">
77
- <title>${escapeHtml(title)}</title>
78
- <meta name="description" content="${escapeHtml(subtitle).substring(0, 160)}">
79
- <meta name="keywords" content="${keywords.join(', ')}">
80
- <meta name="author" content="James Pether Sörling, CISSP, CISM">
81
- <link rel="canonical" href="https://riksdagsmonitor.com/news/${slug}">
82
-
83
- <!-- Open Graph / Social Media -->
84
- <meta property="og:title" content="${escapeHtml(title)}">
85
- <meta property="og:description" content="${escapeHtml(subtitle).substring(0, 200)}">
86
- <meta property="og:type" content="article">
87
- <meta property="og:url" content="https://riksdagsmonitor.com/news/${slug}">
88
- <meta property="og:image" content="https://riksdagsmonitor.com/images/og-image-news.webp">
89
- <meta property="og:image:width" content="1200">
90
- <meta property="og:image:height" content="630">
91
- <meta property="og:image:alt" content="Riksdagsmonitor - Swedish Parliament Intelligence">
92
- <meta property="og:locale" content="${ogLocale}">
93
- <meta property="og:site_name" content="Riksdagsmonitor - Swedish Parliament Intelligence">
94
- <meta property="article:published_time" content="${dateObj.toISOString()}">
95
- <meta property="article:modified_time" content="${dateObj.toISOString()}">
96
- <meta property="article:author" content="James Pether Sörling">
97
- <meta property="article:section" content="${typeLabel}">
98
- ${tags.map(tag => ` <meta property="article:tag" content="${escapeHtml(tag)}">`).join('\n')}
99
-
100
- <!-- Twitter Card -->
101
- <meta name="twitter:card" content="summary_large_image">
102
- <meta name="twitter:title" content="${escapeHtml(title)}">
103
- <meta name="twitter:description" content="${escapeHtml(subtitle).substring(0, 200)}">
104
- <meta name="twitter:image" content="https://riksdagsmonitor.com/images/og-image-news.webp">
105
- <meta name="twitter:image:alt" content="Riksdagsmonitor - Swedish Parliament Intelligence">
106
- <meta name="twitter:site" content="@riksdagsmonitor">
107
- <meta name="twitter:creator" content="@jamessorling">
108
- <meta name="twitter:label1" content="${CONTENT_LABELS[lang]?.twitterLabel1 ?? CONTENT_LABELS.en.twitterLabel1}">
109
- <meta name="twitter:data1" content="${readTime}">
110
- <meta name="twitter:label2" content="${CONTENT_LABELS[lang]?.twitterLabel2 ?? CONTENT_LABELS.en.twitterLabel2}">
111
- <meta name="twitter:data2" content="${typeLabel}">
112
- ${typeof significance === 'number' ? `
113
- <!-- Political Significance -->
114
- <meta name="article:significance" content="${significance}">${urgency ? `
115
- <meta name="article:urgency" content="${escapeHtml(urgency)}">` : ''}` : ''}
116
- ${classificationLevel || riskLevel || confidenceLabel ? `<!-- Political Intelligence Classification -->` : ''}${classificationLevel ? `
117
- <meta name="article:classification" content="${escapeHtml(classificationLevel)}">` : ''}${riskLevel ? `
118
- <meta name="article:risk-level" content="${escapeHtml(riskLevel)}">` : ''}${confidenceLabel ? `
119
- <meta name="article:confidence" content="${escapeHtml(confidenceLabel)}">` : ''}
120
-
121
- <!-- Hreflang for language alternatives -->
122
- ${ALL_LANG_CODES.map(l => ` <link rel="alternate" hreflang="${hreflangCode(l)}" href="https://riksdagsmonitor.com/news/${baseSlug}-${l}.html">`).join('\n')}
123
- <link rel="alternate" hreflang="x-default" href="https://riksdagsmonitor.com/news/${baseSlug}-en.html">
124
-
125
- <!-- Favicons -->
126
- <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32.png">
127
- <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16.png">
128
- <link rel="icon" type="image/png" sizes="96x96" href="/images/favicon-96x96.png">
129
- <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon.png">
130
- <link rel="icon" href="/favicon.ico" sizes="48x48">
131
- <link rel="manifest" href="/site.webmanifest">
132
- <meta name="theme-color" content="#0a0e27">
133
-
134
- <!-- Google Fonts -->
135
- <link rel="preconnect" href="https://fonts.googleapis.com">
136
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
137
- <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
138
- <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Orbitron:wght@500;600;700&family=Share+Tech+Mono&display=swap" media="print" onload="this.media='all'">
139
- <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Orbitron:wght@500;600;700&family=Share+Tech+Mono&display=swap"></noscript>
140
-
141
- <!-- Main stylesheet — includes all article styles + component/theme imports -->
142
- <link rel="stylesheet" href="../styles.css">
143
-
144
- <!-- Anti-flash: apply saved theme before first paint -->
145
- <script>(function(){var key='riksdagsmonitor-theme';var t=null;try{t=localStorage.getItem(key);}catch(e){}if(t!=='dark'&&t!=='light'){if(t!==null){try{localStorage.removeItem(key);}catch(e){}}t=(window.matchMedia&&window.matchMedia('(prefers-color-scheme: dark)').matches)?'dark':'light';}document.documentElement.setAttribute('data-theme',t);}());</script>
146
-
147
- <!-- Schema.org NewsArticle structured data -->
148
- <script type="application/ld+json">
149
- {
150
- "@context": "https://schema.org",
151
- "@type": "NewsArticle",
152
- "headline": "${escapeHtml(title)}",
153
- "alternativeHeadline": "${escapeHtml(subtitle).substring(0, 100)}",
154
- "description": "${escapeHtml(subtitle).substring(0, 200)}",
155
- "datePublished": "${dateObj.toISOString()}",
156
- "dateModified": "${dateObj.toISOString()}",
157
- "author": {
158
- "@type": "Person",
159
- "name": "James Pether Sörling",
160
- "jobTitle": "${CONTENT_LABELS[lang]?.jobTitle ?? CONTENT_LABELS.en.jobTitle}",
161
- "affiliation": {
162
- "@type": "Organization",
163
- "name": "Hack23 AB"
164
- },
165
- "url": "https://riksdagsmonitor.com"
166
- },
167
- "publisher": {
168
- "@type": "Organization",
169
- "name": "Riksdagsmonitor",
170
- "url": "https://riksdagsmonitor.com",
171
- "logo": {
172
- "@type": "ImageObject",
173
- "url": "https://riksdagsmonitor.com/images/android-chrome-512x512.png",
174
- "width": 512,
175
- "height": 512
176
- }
177
- },
178
- "image": {
179
- "@type": "ImageObject",
180
- "url": "https://riksdagsmonitor.com/images/og-image-news.webp",
181
- "width": 1200,
182
- "height": 630
183
- },
184
- "articleSection": "${typeLabel}",
185
- "articleBody": "${sanitizeArticleBody(escapeHtml(fixedContent))}...",
186
- "wordCount": ${Math.ceil(fixedContent.length / 5)},
187
- "inLanguage": "${hreflangCode(lang)}",
188
- "keywords": "${keywords.join(', ')}",
189
- "about": {
190
- "@type": "Thing",
191
- "name": "Swedish Parliament",
192
- "sameAs": "https://www.wikidata.org/wiki/Q1968818"
193
- },
194
- "isAccessibleForFree": true,
195
- "isPartOf": {
196
- "@type": "WebSite",
197
- "name": "Riksdagsmonitor",
198
- "url": "https://riksdagsmonitor.com"
199
- },
200
- "mainEntityOfPage": {
201
- "@type": "WebPage",
202
- "@id": "https://riksdagsmonitor.com/news/${slug}"
203
- }${tags.length > 0 ? `,
204
- "mentions": [${tags.map(tag => `
205
- {
206
- "@type": "Thing",
207
- "name": "${escapeHtml(tag)}"
208
- }`).join(',')}
209
- ]` : ''}${typeof significance === 'number' ? `,
210
- "additionalProperty": [
211
- {
212
- "@type": "PropertyValue",
213
- "name": "politicalSignificance",
214
- "value": ${significance}
215
- }${urgency ? `,
216
- {
217
- "@type": "PropertyValue",
218
- "name": "editorialUrgency",
219
- "value": "${urgency}"
220
- }` : ''}
221
- ]` : ''}
222
- }
223
- </script>
224
-
225
- <!-- BreadcrumbList structured data -->
226
- <script type="application/ld+json">
227
- {
228
- "@context": "https://schema.org",
229
- "@type": "BreadcrumbList",
230
- "itemListElement": [
231
- {
232
- "@type": "ListItem",
233
- "position": 1,
234
- "name": "${getBreadcrumbName(lang, 'home')}",
235
- "item": "https://riksdagsmonitor.com/"
236
- },
237
- {
238
- "@type": "ListItem",
239
- "position": 2,
240
- "name": "${getBreadcrumbName(lang, 'news')}",
241
- "item": "https://riksdagsmonitor.com/news/index.html"
242
- },
243
- {
244
- "@type": "ListItem",
245
- "position": 3,
246
- "name": "${escapeHtml(title).substring(0, 50)}",
247
- "item": "https://riksdagsmonitor.com/news/${slug}"
248
- }
249
- ]
250
- }
251
- </script>
252
-
253
- <!-- Organization structured data -->
254
- <script type="application/ld+json">
255
- {
256
- "@context": "https://schema.org",
257
- "@type": "Organization",
258
- "name": "Riksdagsmonitor",
259
- "url": "https://riksdagsmonitor.com",
260
- "logo": "https://riksdagsmonitor.com/images/android-chrome-512x512.png",
261
- "description": "${CONTENT_LABELS[lang]?.siteDescription ?? CONTENT_LABELS.en.siteDescription}",
262
- "foundingDate": "2020",
263
- "founder": {
264
- "@type": "Person",
265
- "name": "James Pether Sörling"
266
- },
267
- "sameAs": [
268
- "https://github.com/Hack23/riksdagsmonitor"
269
- ],
270
- "contactPoint": {
271
- "@type": "ContactPoint",
272
- "contactType": "Technical Support",
273
- "url": "https://github.com/Hack23/riksdagsmonitor/issues"
274
- }
275
- }
276
- </script>
277
-
278
- </head>
279
- <body>
280
- <a href="#main-content" class="skip-link">${getFooterLabel(lang, 'skipToContent')}</a>
281
- <button id="theme-toggle" class="theme-toggle-btn" type="button"
282
- aria-pressed="false"
283
- aria-label="${getFooterLabel(lang, 'themeToDark')}"
284
- title="${getFooterLabel(lang, 'themeToDark')}"
285
- data-label-dark="${getFooterLabel(lang, 'themeToLight')}"
286
- data-label-light="${getFooterLabel(lang, 'themeToDark')}">
287
- <span class="theme-icon" aria-hidden="true">🌙</span>
288
- </button>
289
- ${generateArticleLanguageSwitcher(baseSlug, lang)}
290
-
291
- <div class="article-top-nav">
292
- <a href="${getNewsIndexFilename(ALL_LANG_CODES.includes(lang) ? lang : 'en')}" class="back-to-news">
293
- \u2190 ${getFooterLabel(lang, 'backToNews')}
294
- </a>
295
- </div>
296
-
297
- <article id="main-content" class="news-article${articleTypeClass}">
298
- <header class="article-header">
299
- <div class="hero-banner">
300
- <img src="../images/riksdagsmonitornews-banner.webp" alt="" class="hero-banner-bg" width="1536" height="1024" loading="eager" aria-hidden="true">
301
- </div>
302
- <div class="hero-header-text">
303
- <h1>${escapeHtml(title)}</h1>
304
- <div class="site-tagline">${SITE_TAGLINE[lang] || SITE_TAGLINE.en}</div>
305
- </div>
306
- <a href="${getNewsIndexFilename(ALL_LANG_CODES.includes(lang) ? lang : 'en')}" aria-label="Riksdagsmonitor News">
307
- <img src="../images/riksdagsmonitornews-logo.webp" alt="Riksdagsmonitor News" class="article-site-logo" width="64" height="64" loading="eager">
308
- </a>
309
- <div class="article-meta">
310
- <time datetime="${isoDate}">${formattedDate}</time>
311
- <span class="separator">•</span>
312
- <span class="type-badge">${typeLabel}</span>
313
- <span class="separator">•</span>
314
- <span>${readTime}</span>${classificationLevel ? `
315
- <span class="separator">•</span>
316
- <span class="type-badge classification-badge classification-${toSafeClassToken(classificationLevel)}" aria-label="Classification: ${escapeHtml(classificationLevel)}">${getClassificationIcon(classificationLevel)} ${escapeHtml(classificationLevel)}</span>` : ''}${riskLevel ? `
317
- <span class="separator">•</span>
318
- <span class="type-badge risk-badge risk-${toSafeClassToken(riskLevel)}" aria-label="Risk: ${escapeHtml(riskLevel.toUpperCase())}">⚠️ ${escapeHtml(riskLevel.toUpperCase())} RISK</span>` : ''}
319
- </div>
320
- </header>
321
-
322
- ${events.length > 0 ? generateEventCalendar(events, lang) : ''}
323
-
324
- <div class="article-content prose">
325
- <p class="lede">
326
- ${escapeHtml(subtitle)}
327
- </p>
328
-
329
- ${fixedContent}
330
-
331
- ${watchPoints.length > 0 ? generateWatchSection(watchPoints, lang) : ''}
332
-
333
- ${sections.length > 0 ? sections.map(s => `<div id="${escapeHtml(s.id)}" class="${escapeHtml(s.className ?? 'article-section')}">${s.html}</div>`).join('\n') : ''}
334
- </div>
335
-
336
- <footer class="article-footer">
337
- <div class="article-sources">
338
- <h3>${getFooterLabel(lang, 'sourcesTitle')}</h3>
339
- <p><strong>${getFooterLabel(lang, 'dataSources')}:</strong> ${sources.join(', ')}</p>
340
- <p><strong>${getFooterLabel(lang, 'generatedBy')}:</strong> ${getFooterLabel(lang, 'generatedByValue')}</p>
341
- <p><strong>${getFooterLabel(lang, 'analysisTools')}:</strong> ${getFooterLabel(lang, 'analysisToolsValue')}</p>
342
- </div>
343
-
344
- <div class="article-nav">
345
- <a href="${getNewsIndexFilename(ALL_LANG_CODES.includes(lang) ? lang : 'en')}" class="back-to-news">
346
- \u2190 ${getFooterLabel(lang, 'backToNews')}
347
- </a>
348
- </div>
349
- </footer>
350
- </article>
351
-
352
- ${generateSiteFooter(lang)}
353
-
354
- <script type="module" src="../scripts/back-to-top.ts"></script>
355
- <script src="../js/theme-toggle.js"></script>
356
- </body>
357
- </html>`;
358
- }
359
- //# sourceMappingURL=template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../../scripts/article-template/template.ts"],"names":[],"mappings":"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"}
@@ -1,90 +0,0 @@
1
- /**
2
- * @module article-template/types
3
- * @description Extended type system for the modular article template
4
- * architecture. These types complement the core `ArticleData` /
5
- * `ArticleType` definitions and introduce per-type layout and AI-directive
6
- * configuration objects consumed by the template registry.
7
- *
8
- * @author Hack23 AB
9
- * @license Apache-2.0
10
- */
11
- import type { ArticleType } from '../types/article.js';
12
- import type { Language } from '../types/language.js';
13
- /** Number of content columns the article body should use */
14
- export type ColumnCount = 1 | 2 | 3;
15
- /** Controls the breadcrumb display density */
16
- export type BreadcrumbStyle = 'full' | 'compact';
17
- /**
18
- * Per-type layout configuration passed to the template renderer.
19
- * Values are intentionally minimal — the cyberpunk CSS handles the visual
20
- * treatment; this struct only captures structural decisions.
21
- */
22
- export interface LayoutConfig {
23
- /** Primary column count for the article body */
24
- readonly columns: ColumnCount;
25
- /** Whether to render a sidebar panel (e.g. SWOT summary widget) */
26
- readonly sidebar: boolean;
27
- /** Whether to render an expanded hero section with an accent banner */
28
- readonly heroSection: boolean;
29
- /** Compact breadcrumb omits the article title segment */
30
- readonly breadcrumbStyle: BreadcrumbStyle;
31
- }
32
- /** Tone the AI should adopt when generating content for a given section */
33
- export type ContentTone = 'analytical' | 'urgent' | 'reflective' | 'informational' | 'investigative';
34
- /**
35
- * Directive object that shapes the tone, length and structural constraints
36
- * for an AI-generated article section. These are injected into generation
37
- * prompts to enforce consistent Economist-style political journalism.
38
- */
39
- export interface AIStyleDirective {
40
- /** Internal name of the section this directive governs */
41
- readonly section: string;
42
- /** Desired editorial tone */
43
- readonly tone: ContentTone;
44
- /** Recommended maximum word count for this section */
45
- readonly maxWords: number;
46
- /** Whether the AI should include sub-headings within this section */
47
- readonly requiresSubheadings: boolean;
48
- /** Stakeholders that must be addressed in the analysis */
49
- readonly stakeholderFocus: readonly string[];
50
- /**
51
- * Style rubric for this section. Each entry is a single-sentence
52
- * instruction included verbatim in generation prompts.
53
- */
54
- readonly rubric: readonly string[];
55
- }
56
- /**
57
- * A complete per-type template configuration stored in the registry.
58
- * The `styleClass` is appended to the `<article>` element so the CSS
59
- * custom-property cascade delivers the correct accent colour palette.
60
- */
61
- export interface ArticleTemplate {
62
- /** The article type this template governs */
63
- readonly type: ArticleType;
64
- /**
65
- * CSS class added to the `<article>` element, e.g.
66
- * `"article-type-propositions"`. Combined with `.news-article` to form
67
- * the full selector `.news-article.article-type-propositions`.
68
- */
69
- readonly styleClass: string;
70
- /** Structural layout hints for the renderer */
71
- readonly layout: LayoutConfig;
72
- /**
73
- * Per-section AI directives. Keys are freeform section names
74
- * (e.g. `"lede"`, `"swot"`, `"key-takeaways"`).
75
- */
76
- readonly aiDirectives: Readonly<Record<string, AIStyleDirective>>;
77
- /** Human-readable description for documentation/tooling */
78
- readonly description: string;
79
- }
80
- /**
81
- * Global style rubric that applies to every article type.
82
- * Individual directives may override or extend these rules.
83
- */
84
- export declare const GLOBAL_STYLE_RUBRIC: readonly string[];
85
- /**
86
- * Localised display names for each article type across all 14 languages.
87
- * Used in article meta bars, type badges and accessibility labels.
88
- */
89
- export declare const ARTICLE_TYPE_NAMES: Readonly<Record<ArticleType, Readonly<Record<Language, string>>>>;
90
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../scripts/article-template/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAMrD,4DAA4D;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEpC,8CAA8C;AAC9C,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,SAAS,CAAC;AAEjD;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,gDAAgD;IAChD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC3C;AAMD,2EAA2E;AAC3E,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,QAAQ,GACR,YAAY,GACZ,eAAe,GACf,eAAe,CAAC;AAEpB;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;IACtC,0DAA0D;IAC1D,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAMD;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAClE,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAMD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAQvC,CAAC;AAMX;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CA6DvF,CAAC"}
@@ -1,96 +0,0 @@
1
- /**
2
- * @module article-template/types
3
- * @description Extended type system for the modular article template
4
- * architecture. These types complement the core `ArticleData` /
5
- * `ArticleType` definitions and introduce per-type layout and AI-directive
6
- * configuration objects consumed by the template registry.
7
- *
8
- * @author Hack23 AB
9
- * @license Apache-2.0
10
- */
11
- // ---------------------------------------------------------------------------
12
- // Style rubric shared across all article types
13
- // ---------------------------------------------------------------------------
14
- /**
15
- * Global style rubric that applies to every article type.
16
- * Individual directives may override or extend these rules.
17
- */
18
- export const GLOBAL_STYLE_RUBRIC = [
19
- 'Headings: max 10 words, active voice, no filler phrases.',
20
- 'Paragraphs: 2–4 sentences, analytical not merely descriptive.',
21
- 'Lists: max 7 items per list, ordered by significance.',
22
- 'SWOT entries: 15–40 words each, specific facts not generic statements.',
23
- 'Dashboard interpretations: 1–2 sentences, data-driven conclusions only.',
24
- 'Avoid passive voice; prefer subject–verb–object sentence structure.',
25
- 'Numbers: use figures (not words) for quantities ≥ 10.',
26
- ];
27
- // ---------------------------------------------------------------------------
28
- // Language-keyed type-name localizations
29
- // ---------------------------------------------------------------------------
30
- /**
31
- * Localised display names for each article type across all 14 languages.
32
- * Used in article meta bars, type badges and accessibility labels.
33
- */
34
- export const ARTICLE_TYPE_NAMES = {
35
- 'week-ahead': {
36
- en: 'Week Ahead', sv: 'Veckan framåt', da: 'Ugen forude', no: 'Uken fremover',
37
- fi: 'Tuleva viikko', de: 'Woche voraus', fr: 'Semaine à venir', es: 'Semana próxima',
38
- nl: 'Week vooruit', ar: 'الأسبوع القادم', he: 'השבוע הקרוב', ja: '来週の展望',
39
- ko: '다음 주 전망', zh: '下周展望',
40
- },
41
- 'month-ahead': {
42
- en: 'Month Ahead', sv: 'Månaden framåt', da: 'Måneden forude', no: 'Måneden fremover',
43
- fi: 'Tuleva kuukausi', de: 'Monat voraus', fr: 'Mois à venir', es: 'Mes próximo',
44
- nl: 'Maand vooruit', ar: 'الشهر القادم', he: 'החודש הקרוב', ja: '来月の展望',
45
- ko: '다음 달 전망', zh: '下月展望',
46
- },
47
- 'weekly-review': {
48
- en: 'Weekly Review', sv: 'Veckans återblick', da: 'Ugens tilbageblik', no: 'Ukens tilbakeblikk',
49
- fi: 'Viikon katsaus', de: 'Wochenrückblick', fr: 'Revue hebdomadaire', es: 'Revisión semanal',
50
- nl: 'Weekoverzicht', ar: 'مراجعة الأسبوع', he: 'סיכום שבועי', ja: '週間レビュー',
51
- ko: '주간 리뷰', zh: '每周回顾',
52
- },
53
- 'monthly-review': {
54
- en: 'Monthly Review', sv: 'Månadsöversikt', da: 'Månedsoversigt', no: 'Månedsoversikt',
55
- fi: 'Kuukausikatsaus', de: 'Monatsrückblick', fr: 'Bilan mensuel', es: 'Revisión mensual',
56
- nl: 'Maandoverzicht', ar: 'مراجعة شهرية', he: 'סיכום חודשי', ja: '月間レビュー',
57
- ko: '월간 리뷰', zh: '月度回顾',
58
- },
59
- 'committee-reports': {
60
- en: 'Committee Reports', sv: 'Utskottsrapporter', da: 'Udvalgsrapporter', no: 'Utvalgsrapporter',
61
- fi: 'Valiokuntaraportit', de: 'Ausschussberichte', fr: 'Rapports de commission',
62
- es: 'Informes de comité', nl: 'Commissierapporten', ar: 'تقارير اللجان',
63
- he: 'דוחות ועדה', ja: '委員会報告', ko: '위원회 보고서', zh: '委员会报告',
64
- },
65
- 'propositions': {
66
- en: 'Government Propositions', sv: 'Propositioner', da: 'Propositioner', no: 'Proposisjoner',
67
- fi: 'Hallituksen esitykset', de: 'Regierungsvorlagen', fr: 'Propositions gouvernementales',
68
- es: 'Proposiciones del gobierno', nl: 'Regeringsvoorstellen', ar: 'مقترحات الحكومة',
69
- he: 'הצעות ממשלה', ja: '政府提案', ko: '정부 법안', zh: '政府提案',
70
- },
71
- 'motions': {
72
- en: 'Opposition Motions', sv: 'Oppositionsmotioner', da: 'Oppositionsforslag',
73
- no: 'Opposisjonsforslag', fi: 'Oppositiomotiot', de: 'Oppositionsanträge',
74
- fr: 'Motions d\'opposition', es: 'Mociones de oposición', nl: 'Oppositiemoties',
75
- ar: 'مقترحات المعارضة', he: 'הצעות אופוזיציה', ja: '野党動議', ko: '야당 동의',
76
- zh: '反对党动议',
77
- },
78
- 'interpellations': {
79
- en: 'Interpellation Debates', sv: 'Interpellationsdebatter', da: 'Interpellationsdebatter',
80
- no: 'Interpellasjonsdebatter', fi: 'Interpellaatiodebatit', de: 'Interpellationsdebatten',
81
- fr: 'Débats d\'interpellation', es: 'Debates de interpelación', nl: 'Interpellatiedebatten',
82
- ar: 'نقاشات الاستجواب', he: 'דיוני בירור', ja: '質問討論', ko: '대정부 질문', zh: '质询辩论',
83
- },
84
- 'breaking': {
85
- en: 'Breaking News', sv: 'Senaste nytt', da: 'Seneste nyt', no: 'Siste nytt',
86
- fi: 'Tuoreet uutiset', de: 'Eilmeldung', fr: 'Dernière heure', es: 'Última hora',
87
- nl: 'Laatste nieuws', ar: 'أخبار عاجلة', he: 'חדשות אחרונות', ja: '速報', ko: '속보', zh: '突发新闻',
88
- },
89
- 'deep-inspection': {
90
- en: 'Deep Inspection', sv: 'Djupanalys', da: 'Dybdeanalyse', no: 'Dybdeanalyse',
91
- fi: 'Syvyysanalyysi', de: 'Tiefenanalyse', fr: 'Analyse approfondie',
92
- es: 'Análisis profundo', nl: 'Diepgaande analyse', ar: 'تحليل معمق',
93
- he: 'ניתוח מעמיק', ja: '詳細分析', ko: '심층 분석', zh: '深度分析',
94
- },
95
- };
96
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../scripts/article-template/types.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- /**
2
- * @module article-template
3
- * @description Public API barrel for the article template modules.
4
- *
5
- * Implementation split into focused modules under `./article-template/`:
6
- *
7
- * | Module | Lines | Responsibility |
8
- * |------------- |-------|---------------------------------------------------|
9
- * | constants.ts | ~190 | i18n lookup tables (breadcrumbs, footer, taglines) |
10
- * | helpers.ts | ~145 | date formatting, sanitisation, HTML sections |
11
- * | template.ts | ~270 | main generateArticleHTML function |
12
- * | index.ts | ~28 | barrel re-export |
13
- *
14
- * @author Hack23 AB
15
- * @license Apache-2.0
16
- */
17
- export { generateArticleHTML, generateEventCalendar, generateWatchSection, generateArticleLanguageSwitcher, generateSiteFooter, fixHtmlNesting, default } from './article-template/index.js';
18
- //# sourceMappingURL=article-template.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"article-template.d.ts","sourceRoot":"","sources":["../../scripts/article-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,kBAAkB,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1,18 +0,0 @@
1
- /**
2
- * @module article-template
3
- * @description Public API barrel for the article template modules.
4
- *
5
- * Implementation split into focused modules under `./article-template/`:
6
- *
7
- * | Module | Lines | Responsibility |
8
- * |------------- |-------|---------------------------------------------------|
9
- * | constants.ts | ~190 | i18n lookup tables (breadcrumbs, footer, taglines) |
10
- * | helpers.ts | ~145 | date formatting, sanitisation, HTML sections |
11
- * | template.ts | ~270 | main generateArticleHTML function |
12
- * | index.ts | ~28 | barrel re-export |
13
- *
14
- * @author Hack23 AB
15
- * @license Apache-2.0
16
- */
17
- export { generateArticleHTML, generateEventCalendar, generateWatchSection, generateArticleLanguageSwitcher, generateSiteFooter, fixHtmlNesting, default } from './article-template/index.js';
18
- //# sourceMappingURL=article-template.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"article-template.js","sourceRoot":"","sources":["../../scripts/article-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,kBAAkB,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC"}